@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
@@ -1,2931 +1 @@
1
- import { createAdminDbClient } from "./db-adapter";
2
- import { buildMarkdownWithFrontmatter } from "./orchestration/frontmatter";
3
- import { formatDependencyBlockedReason, isDependencyBlockedReason } from "@/lib/dependency-helpers";
4
- import { notifyTaskEvent } from "@/lib/notifications";
5
- import { randomUUID } from "crypto";
6
- import { vaultStore } from "./vault-store";
7
-
8
- // Task frontmatter fields (extracted from markdown)
9
- export type TaskStatus = "queued" | "in_progress" | "blocked" | "completed" | "failed";
10
- export type TaskStage =
11
- | "INTAKE" | "PROGRESS" | "DONE"
12
- // Legacy values still present in DB rows — backend migration pending
13
- | "ideation" | "planning" | "execution" | "verification" | "done";
14
-
15
- export interface TaskDependencySummary {
16
- id: string;
17
- title?: string;
18
- slug?: string;
19
- status?: TaskStatus;
20
- stage?: TaskStage;
21
- }
22
-
23
- export interface Task {
24
- id: string;
25
- user_id?: string;
26
- content: string; // Full markdown with frontmatter
27
- description?: string;
28
- swarm_models?: SwarmModel[];
29
- // Extracted/indexed fields:
30
- title?: string;
31
- slug?: string;
32
- status?: TaskStatus;
33
- stage?: TaskStage;
34
- depends_on?: string[];
35
- blocked_reason?: string | null;
36
- project?: string;
37
- project_id?: string;
38
- priority?: number;
39
- engine?: string;
40
- provider?: string;
41
- model?: string;
42
- swarm?: boolean;
43
- retry_count?: number;
44
- error?: string;
45
- stage_decisions?: Record<string, { decision: string; rationale: string; final_result: string; decided_at: string }>;
46
- started_at?: string;
47
- completed_at?: string;
48
- pid?: number;
49
- exit_code?: number;
50
- signature?: string; // HMAC-SHA256 signature for daemon verification
51
- workflow_id?: string | null;
52
- workflow_run_id?: string | null;
53
- orchestration_status?: string | null;
54
- last_orchestration_update?: string | null;
55
- graph_id?: string;
56
- created_at: string;
57
- updated_at: string;
58
-
59
- // New structured working set fields
60
- current_plan?: string;
61
- open_blockers?: string[];
62
- next_action?: string;
63
- version?: number;
64
-
65
- // Run index (last N runs, lightweight metadata)
66
- run_index?: RunIndexEntry[];
67
-
68
- created_by?: "user" | "ai";
69
-
70
- // Execution history (archived runs)
71
- history?: TaskRunHistory[];
72
- depends_on_tasks?: TaskDependencySummary[];
73
- dependent_tasks?: TaskDependencySummary[];
74
- }
75
-
76
- export interface TaskRunHistory {
77
- id: string;
78
- task_id: string;
79
- pid?: number;
80
- exit_code?: number;
81
- started_at?: string;
82
- completed_at?: string;
83
- error?: string;
84
- created_at: string;
85
- }
86
-
87
- export interface RunIndexEntry {
88
- run_id: string;
89
- stage: string;
90
- engine: string;
91
- model?: string;
92
- status: string;
93
- created_at: string;
94
- artifact_manifest?: ArtifactRef[];
95
- // Optional: local-only pointers for the run artifact root written by the daemon.
96
- artifact_path?: string;
97
- artifact_host?: string;
98
- artifact_key?: string;
99
- }
100
-
101
- export interface ArtifactRef {
102
- kind: "prompt" | "output" | "events" | "logs" | "artifact";
103
- key: string; // URL/key in object storage, not the blob
104
- bytes?: number;
105
- sha256?: string;
106
- }
107
-
108
- export interface ProjectRepo {
109
- id: string;
110
- project_id: string;
111
- name: string;
112
- path: string;
113
- git_url?: string;
114
- notes?: string;
115
- created_at: string;
116
- updated_at: string;
117
- }
118
-
119
- export interface Project {
120
- id: string;
121
- user_id?: string;
122
- name: string;
123
- slug: string;
124
- description?: string;
125
- metadata?: Record<string, unknown>;
126
- ci_cd_info?: string;
127
- workflow_id?: string | null;
128
- archived_at?: string | null;
129
- created_at: string;
130
- updated_at: string;
131
- }
132
-
133
- export interface ProjectWithRepos extends Project {
134
- repos: ProjectRepo[];
135
- }
136
-
137
- export interface ProjectRepoInput {
138
- id?: string;
139
- name: string;
140
- path: string;
141
- git_url?: string;
142
- notes?: string;
143
- }
144
-
145
- export interface ProjectInput {
146
- name: string;
147
- description?: string;
148
- repos?: ProjectRepoInput[];
149
- workflow_id?: string;
150
- }
151
-
152
- // ============ WORKFLOWS ============
153
-
154
- export type WorkflowNodeType = "step" | "gate" | "branch" | "terminal";
155
- export type WorkflowTransitionCondition = "done" | "blocked" | "failed" | "retry" | "branch_a" | "branch_b";
156
-
157
- export interface Workflow {
158
- id: string;
159
- user_id: string;
160
- name: string;
161
- definition: Record<string, unknown>;
162
- created_at: string;
163
- updated_at: string;
164
- }
165
-
166
- export interface WorkflowNode {
167
- id: string;
168
- workflow_id: string;
169
- name: string;
170
- label?: string;
171
- prompt?: string;
172
- provider?: string;
173
- model?: string;
174
- position: number;
175
- node_type: WorkflowNodeType;
176
- metadata: Record<string, unknown>;
177
- created_at: string;
178
- }
179
-
180
- export interface WorkflowTransition {
181
- id: string;
182
- workflow_id: string;
183
- from_node_id: string;
184
- to_node_id: string;
185
- condition: WorkflowTransitionCondition;
186
- priority: number;
187
- metadata: Record<string, unknown>;
188
- created_at: string;
189
- }
190
-
191
- export interface WorkflowWithGraph extends Workflow {
192
- nodes: WorkflowNode[];
193
- transitions: WorkflowTransition[];
194
- }
195
-
196
- export interface ProjectUpdatePayload {
197
- name?: string;
198
- slug?: string;
199
- description?: string | null;
200
- metadata?: Record<string, unknown>;
201
- ci_cd_info?: string | null;
202
- workflow_id?: string | null;
203
- repos?: ProjectRepoInput[];
204
- }
205
-
206
- function isMissingRelationError(error: any, relation: string): boolean {
207
- if (!error) return false;
208
- const message = typeof error.message === "string" ? error.message : "";
209
- return (
210
- error.code === "42P01" ||
211
- error.code === "PGRST205" ||
212
- message.includes(`relation "${relation}" does not exist`) ||
213
- message.includes(`Could not find the table 'agx.${relation}'`) ||
214
- message.includes(`Could not find the table 'public.${relation}'`)
215
- );
216
- }
217
-
218
- export interface TaskLog {
219
- id: string;
220
- task_id: string;
221
- content: string;
222
- log_type?: string;
223
- node_id?: string | null;
224
- created_at: string;
225
- }
226
-
227
- export interface TaskComment {
228
- id: string;
229
- task_id: string;
230
- author_type: "user" | "agent";
231
- author_id?: string;
232
- content: string;
233
- created_at: string;
234
- deleted_at?: string | null;
235
- }
236
-
237
- export type LearningScope = "task" | "project" | "global";
238
-
239
- export interface SwarmModel {
240
- provider: string;
241
- model: string;
242
- }
243
-
244
- // ============ USER SETTINGS ============
245
-
246
- // ============ AGENTS ============
247
-
248
- export type AgentStyle = "degen" | "conservative" | "specialist" | "balanced";
249
-
250
- export interface Agent {
251
- id: string;
252
- user_id: string;
253
- name: string;
254
- role?: string;
255
- style: AgentStyle;
256
- description?: string;
257
- voice?: string;
258
- seed?: string;
259
- model?: string;
260
- provider?: string;
261
- color?: string;
262
- created_at: string;
263
- updated_at: string;
264
- }
265
-
266
- export interface AgentSkill {
267
- agent_id: string;
268
- file: string;
269
- condition?: string;
270
- created_at: string;
271
- }
272
-
273
- // ============ PROJECT SUB-TABLES ============
274
-
275
- export interface ProjectAgent {
276
- project_id: string;
277
- agent_id: string;
278
- routing_order: number;
279
- created_at: string;
280
- }
281
-
282
- export interface ProjectSkill {
283
- id: string;
284
- project_id: string;
285
- file: string;
286
- condition?: string;
287
- created_at: string;
288
- }
289
-
290
- export interface ProjectVariable {
291
- project_id: string;
292
- key: string;
293
- value: string;
294
- }
295
-
296
- export interface ProjectMemory {
297
- id: string;
298
- project_id: string;
299
- content: string;
300
- source?: string;
301
- producer?: "human" | "system";
302
- created_at: string;
303
- }
304
-
305
- export interface ProjectThread {
306
- project_id: string;
307
- thread_id: string;
308
- created_at: string;
309
- }
310
-
311
- // ============ TEAMS ============
312
-
313
- export interface Team {
314
- id: string;
315
- project_id: string;
316
- name: string;
317
- template_id: string | null;
318
- metadata: Record<string, unknown>;
319
- created_at: string;
320
- updated_at: string;
321
- }
322
-
323
- export interface TeamAgent {
324
- team_id: string;
325
- agent_id: string;
326
- role_key: string;
327
- routing_order: number;
328
- }
329
-
330
- export interface SkillProvenance {
331
- file: string;
332
- condition?: string;
333
- source: "agent" | "project";
334
- }
335
-
336
- export interface MemoryProvenance {
337
- content: string;
338
- source: "agent" | "project";
339
- id?: string;
340
- }
341
-
342
- export interface ExecutionProvenance {
343
- skills: SkillProvenance[];
344
- memory: MemoryProvenance[];
345
- variables: Array<{ key: string; value: string; source: "project" }>;
346
- }
347
-
348
- // ============ USER SETTINGS ============
349
-
350
- export type UserSettingsProvenance = "cli" | "web";
351
-
352
- export interface UserSettings {
353
- user_id: string;
354
- default_provider?: string | null;
355
- models: Record<string, string>;
356
- provenance: UserSettingsProvenance;
357
- changed_at: string;
358
- created_at: string;
359
- updated_at: string;
360
- }
361
-
362
- function normalizeChangedAt(value?: string | null): string {
363
- if (typeof value === "string") {
364
- const t = Date.parse(value);
365
- if (Number.isFinite(t)) return new Date(t).toISOString();
366
- }
367
- return new Date().toISOString();
368
- }
369
-
370
- export async function getUserSettings(userId: string): Promise<UserSettings | null> {
371
- const db = createAdminDbClient();
372
- const { data, error } = await db
373
- .from("user_settings")
374
- .select("*")
375
- .eq("user_id", userId)
376
- .maybeSingle();
377
-
378
- if (error) {
379
- if (isMissingRelationError(error, "user_settings")) return null;
380
- throw error;
381
- }
382
- if (!data) return null;
383
- return data as UserSettings;
384
- }
385
-
386
- export async function upsertUserSettings(
387
- userId: string,
388
- input: {
389
- default_provider?: string | null;
390
- models?: Record<string, string> | null;
391
- provenance: UserSettingsProvenance;
392
- changed_at?: string | null;
393
- },
394
- options?: { onlyIfNewer?: boolean }
395
- ): Promise<{ settings: UserSettings; updated: boolean }> {
396
- const onlyIfNewer = options?.onlyIfNewer !== false;
397
- const incomingChangedAt = normalizeChangedAt(input.changed_at);
398
-
399
- const existing = await getUserSettings(userId);
400
- if (onlyIfNewer && existing?.changed_at) {
401
- const existingTs = Date.parse(existing.changed_at);
402
- const incomingTs = Date.parse(incomingChangedAt);
403
- if (Number.isFinite(existingTs) && Number.isFinite(incomingTs) && incomingTs <= existingTs) {
404
- return { settings: existing, updated: false };
405
- }
406
- }
407
-
408
- const payload: any = {
409
- user_id: userId,
410
- default_provider: input.default_provider ?? existing?.default_provider ?? null,
411
- models: input.models ?? existing?.models ?? {},
412
- provenance: input.provenance,
413
- changed_at: incomingChangedAt,
414
- };
415
-
416
- const db = createAdminDbClient();
417
- const { error: upsertError } = await db
418
- .from("user_settings")
419
- .upsert(payload, { onConflict: "user_id" });
420
- if (upsertError) throw upsertError;
421
-
422
- const after = await getUserSettings(userId);
423
- if (!after) throw new Error("Failed to load user_settings after upsert");
424
- return { settings: after, updated: true };
425
- }
426
-
427
- export interface Learning {
428
- id: string;
429
- user_id?: string;
430
- scope: LearningScope;
431
- scope_id?: string; // task_id or project name (null for global)
432
- content: string;
433
- created_at: string;
434
- }
435
-
436
- /**
437
- * Resolves task configuration by merging task-level settings with stage-level defaults.
438
- * Task settings take precedence.
439
- */
440
- export function resolveTaskConfig(
441
- task: Task,
442
- stageConfig?: {
443
- swarm?: boolean;
444
- provider?: string;
445
- model?: string;
446
- swarm_models?: SwarmModel[];
447
- },
448
- userSettings?: { default_provider?: string | null; models?: Record<string, string> | null } | null
449
- ) {
450
- const clean = (v: any): string | null => {
451
- if (typeof v !== "string") return null;
452
- const t = v.trim();
453
- return t ? t : null;
454
- };
455
-
456
- // Priority:
457
- // 1) Task-level explicit override
458
- // 2) Stage-level setting (workflow/stage prompt)
459
- // 3) Global default (user_settings → ~/.agx/config.json → "claude")
460
- let cliDefaultProvider: string | null = null;
461
- try {
462
- const fs = require("fs");
463
- const path = require("path");
464
- const configPath = path.join(process.env.HOME || "", ".agx", "config.json");
465
- const cliConfig = JSON.parse(fs.readFileSync(configPath, "utf-8"));
466
- cliDefaultProvider = clean(cliConfig?.defaultProvider) || null;
467
- } catch {
468
- // ~/.agx/config.json not found or unreadable
469
- }
470
- const globalDefaultProvider = clean(userSettings?.default_provider) || cliDefaultProvider || "claude";
471
-
472
- const provider =
473
- clean((task as any).provider) ||
474
- clean(stageConfig?.provider) ||
475
- globalDefaultProvider;
476
-
477
- const globalDefaultModel = clean(userSettings?.models?.[provider]) || null;
478
-
479
- const model =
480
- clean((task as any).model) ||
481
- clean(stageConfig?.model) ||
482
- globalDefaultModel ||
483
- null;
484
-
485
- const swarm = task.swarm ?? stageConfig?.swarm ?? false;
486
- const swarm_models = task.swarm_models?.length ? task.swarm_models : (stageConfig?.swarm_models || []);
487
-
488
- return {
489
- provider,
490
- model,
491
- swarm,
492
- swarm_models,
493
- };
494
- }
495
-
496
- function slugify(input: string): string {
497
- return input
498
- .toLowerCase()
499
- .replace(/[^a-z0-9]+/g, "-")
500
- .replace(/^-+|-+$/g, "")
501
- .slice(0, 40) || "task";
502
- }
503
-
504
- async function generateUniqueSlug(base: string, db: ReturnType<typeof createAdminDbClient>): Promise<string> {
505
- let slug = slugify(base);
506
- for (let i = 0; i < 5; i++) {
507
- const { data, error } = await db
508
- .from("tasks")
509
- .select("id")
510
- .eq("slug", slug)
511
- .limit(1);
512
- if (error) throw error;
513
- if (!data || data.length === 0) return slug;
514
- const suffix = Math.random().toString(36).slice(2, 6);
515
- slug = `${slugify(base)}-${suffix}`.slice(0, 48);
516
- }
517
- return `${slugify(base)}-${Date.now().toString(36).slice(-4)}`.slice(0, 48);
518
- }
519
-
520
- async function generateUniqueProjectSlug(
521
- base: string,
522
- userId: string,
523
- db: any,
524
- excludeProjectId?: string
525
- ): Promise<string> {
526
- let slug = slugify(base);
527
-
528
- for (let i = 0; i < 5; i++) {
529
- let query = db
530
- .from("projects")
531
- .select("id")
532
- .eq("slug", slug)
533
- .eq("user_id", userId);
534
- if (excludeProjectId) {
535
- query = query.neq("id", excludeProjectId);
536
- }
537
- const { data, error } = await query.limit(1);
538
- if (error) throw error;
539
- if (!data || data.length === 0) return slug;
540
- const suffix = Math.random().toString(36).slice(2, 6);
541
- slug = `${slugify(base)}-${suffix}`.slice(0, 48);
542
- }
543
-
544
- return `${slugify(base)}-${Date.now().toString(36).slice(-4)}`.slice(0, 48);
545
- }
546
-
547
- function getDbClient(client?: any): any {
548
- return client ?? createAdminDbClient();
549
- }
550
-
551
- function parseDependsOnValue(value: string): string[] {
552
- const trimmed = value.trim();
553
- if (!trimmed) return [];
554
- try {
555
- const parsed = JSON.parse(trimmed);
556
- if (Array.isArray(parsed)) {
557
- return parsed.map((item) => String(item || "").trim()).filter(Boolean);
558
- }
559
- } catch {
560
- // ignore parse errors
561
- }
562
- return trimmed
563
- .split(",")
564
- .map((item) => item.trim())
565
- .filter(Boolean);
566
- }
567
-
568
- function normalizeDependsOnInput(input?: unknown): string[] {
569
- if (!input) return [];
570
- let candidates: string[];
571
- if (Array.isArray(input)) {
572
- candidates = input.map((item) => (typeof item === "string" ? item : item === null || item === undefined ? "" : String(item))).filter(Boolean);
573
- } else if (typeof input === "string") {
574
- candidates = parseDependsOnValue(input);
575
- } else {
576
- return [];
577
- }
578
- return Array.from(new Set(candidates.map((id) => id.trim()).filter(Boolean)));
579
- }
580
-
581
- // Parse YAML frontmatter from markdown
582
- export function parseFrontmatter(markdown: string): { frontmatter: Record<string, unknown>; body: string } {
583
- const match = markdown.match(/^---\n([\s\S]*?)\n---\n([\s\S]*)$/);
584
- if (!match) {
585
- return { frontmatter: {}, body: markdown };
586
- }
587
-
588
- const frontmatter: Record<string, unknown> = {};
589
- const lines = match[1].split('\n');
590
- for (const line of lines) {
591
- const colonIndex = line.indexOf(':');
592
- if (colonIndex > 0) {
593
- const key = line.slice(0, colonIndex).trim();
594
- const value = line.slice(colonIndex + 1).trim();
595
- if (key === "depends_on") {
596
- frontmatter[key] = parseDependsOnValue(value);
597
- continue;
598
- }
599
- // Parse numbers and booleans
600
- if (value === 'true') frontmatter[key] = true;
601
- else if (value === 'false') frontmatter[key] = false;
602
- else if (/^\d+$/.test(value)) frontmatter[key] = parseInt(value);
603
- else frontmatter[key] = value;
604
- }
605
- }
606
-
607
- return { frontmatter, body: match[2] };
608
- }
609
-
610
- export async function ensureNoCircularDependency(
611
- taskId: string,
612
- dependsOn: string[],
613
- client?: any
614
- ): Promise<void> {
615
- if (!taskId || !dependsOn?.length) return;
616
- const db = getDbClient(client);
617
- const visited = new Set<string>();
618
- const stack = [...dependsOn];
619
-
620
- while (stack.length) {
621
- const candidate = stack.pop();
622
- if (!candidate) continue;
623
- if (candidate === taskId) {
624
- throw new Error("Circular dependency detected");
625
- }
626
- if (visited.has(candidate)) continue;
627
- visited.add(candidate);
628
- const { data, error } = await db
629
- .from("tasks")
630
- .select("depends_on")
631
- .eq("id", candidate)
632
- .maybeSingle();
633
- if (error) {
634
- if (error.code === "PGRST116" || error.code === "42703") continue;
635
- throw error;
636
- }
637
- if (!data) continue;
638
- const childDeps = Array.isArray(data.depends_on) ? data.depends_on : [];
639
- for (const next of childDeps) {
640
- if (next && !visited.has(next)) {
641
- stack.push(next);
642
- }
643
- }
644
- }
645
- }
646
-
647
- // Extract title from markdown (first H1)
648
- export function extractTitle(markdown: string): string | undefined {
649
- const { body } = parseFrontmatter(markdown);
650
- const match = body.match(/^#\s+(.+)$/m);
651
- return match ? match[1] : undefined;
652
- }
653
-
654
- function normalizeDescriptionBody(markdownBody: string): string {
655
- return String(markdownBody || "")
656
- .replace(/^#\s+.+(\r?\n|$)/, "")
657
- .trim();
658
- }
659
-
660
- /**
661
- * If a task has depends_on, check whether all dependencies are completed.
662
- * Auto-set status to "blocked" when unfinished deps exist, or back to "queued"
663
- * when all deps are done and the task is currently blocked.
664
- */
665
- async function ensureTaskDependencyState(task: Task, userId?: string): Promise<void> {
666
- const deps = Array.isArray(task.depends_on) ? task.depends_on : [];
667
- if (!deps.length) return;
668
-
669
- const db = createAdminDbClient();
670
- const { data: depTasks, error } = await db
671
- .from("tasks")
672
- .select("id, title, slug, status, stage")
673
- .in("id", deps);
674
-
675
- if (error) return; // best-effort (older schemas may not have these columns yet)
676
-
677
- const missingDependencies = (Array.isArray(depTasks) ? depTasks : []).filter(
678
- (entry) => (entry?.status || "") !== "completed"
679
- );
680
-
681
- if (missingDependencies.length) {
682
- const reason = formatDependencyBlockedReason(missingDependencies);
683
- let query = db
684
- .from("tasks")
685
- .update({ status: "blocked", blocked_reason: reason })
686
- .eq("id", task.id);
687
- if (userId) query = query.eq("user_id", userId);
688
- const { error: updateError } = await query;
689
- if (updateError && updateError.code !== "42703") {
690
- throw updateError;
691
- }
692
- return;
693
- }
694
-
695
- if (task.status === "blocked" && isDependencyBlockedReason(task.blocked_reason)) {
696
- let query = db
697
- .from("tasks")
698
- .update({ status: "queued", blocked_reason: null })
699
- .eq("id", task.id);
700
- if (userId) query = query.eq("user_id", userId);
701
- const { error: updateError } = await query;
702
- if (updateError && updateError.code !== "42703") {
703
- throw updateError;
704
- }
705
- }
706
- }
707
-
708
- // ============ TASKS ============
709
-
710
- export async function getTasks(
711
- userId?: string,
712
- filters?: { project?: string; status?: TaskStatus; search?: string; orphan?: boolean }
713
- ): Promise<Task[]> {
714
- const db = createAdminDbClient();
715
-
716
- let query = db
717
- .from("tasks")
718
- .select("*")
719
- .order("priority", { ascending: true, nullsFirst: false })
720
- .order("created_at", { ascending: false });
721
-
722
- if (userId) query = query.eq("user_id", userId);
723
- if (filters?.project) {
724
- const isUuid = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(filters.project);
725
- query = isUuid
726
- ? query.eq("project_id", filters.project)
727
- : query.eq("project", filters.project);
728
- }
729
- if (filters?.orphan) query = query.is("project_id", null);
730
- if (filters?.status) query = query.eq("status", filters.status);
731
- if (filters?.search) {
732
- const term = filters.search;
733
- const isUuid = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(term);
734
- if (isUuid) {
735
- query = query.or(`id.eq.${term},slug.ilike.%${term}%,title.ilike.%${term}%`);
736
- } else {
737
- // id is already TEXT in SQLite; for Postgres we cast id::text.
738
- // Use CAST(id AS TEXT) which works on both dialects.
739
- query = query.or(`id.ilike.%${term}%,slug.ilike.%${term}%,title.ilike.%${term}%`);
740
- }
741
- }
742
-
743
- const { data, error } = await query;
744
- if (error) throw error;
745
-
746
- const rows = data || [];
747
- if (!filters?.orphan) {
748
- return rows;
749
- }
750
-
751
- return rows.filter((task: Task) => {
752
- const projectValue = String(task.project || "").trim().toLowerCase();
753
- return !projectValue || projectValue === "none";
754
- });
755
- }
756
-
757
- export async function getTask(id: string, userId?: string): Promise<Task | null> {
758
- const db = createAdminDbClient();
759
-
760
- let query = db
761
- .from("tasks")
762
- .select("*")
763
- .eq("id", id);
764
-
765
- if (userId) query = query.eq("user_id", userId);
766
-
767
- const { data, error } = await query.single();
768
-
769
- if (error) {
770
- if (error.code === "PGRST116") return null;
771
- throw error;
772
- }
773
- return data;
774
- }
775
-
776
- export async function getTaskBySlug(slug: string, userId?: string): Promise<Task | null> {
777
- const db = createAdminDbClient();
778
-
779
- let query = db
780
- .from("tasks")
781
- .select("*")
782
- .eq("slug", slug);
783
-
784
- if (userId) query = query.eq("user_id", userId);
785
-
786
- const { data, error } = await query.single();
787
-
788
- if (error) {
789
- if (error.code === "PGRST116") return null;
790
- throw error;
791
- }
792
- return data;
793
- }
794
-
795
- export async function createTask(
796
- content: string,
797
- userId?: string,
798
- options?: {
799
- swarmModels?: SwarmModel[] | null;
800
- currentPlan?: string;
801
- openBlockers?: string[];
802
- nextAction?: string;
803
- dependsOn?: string[] | null;
804
- projectId?: string;
805
- title?: string;
806
- }
807
- ): Promise<Task> {
808
- const db = createAdminDbClient();
809
-
810
- const { frontmatter, body } = parseFrontmatter(content);
811
- const swarm = typeof frontmatter.swarm === "boolean" ? frontmatter.swarm : undefined;
812
- const title = options?.title || extractTitle(content);
813
- const slugBase = String(frontmatter.slug || title || "task");
814
- const slug = await generateUniqueSlug(slugBase, db);
815
- const projectId = options?.projectId || (typeof frontmatter.project_id === "string" ? frontmatter.project_id : undefined);
816
- const workflowId = typeof frontmatter.workflow_id === "string" ? frontmatter.workflow_id : undefined;
817
-
818
- // Resolve project slug from project_id if not in frontmatter
819
- let projectSlug = typeof frontmatter.project === "string" ? frontmatter.project : undefined;
820
- if (!projectSlug && projectId) {
821
- const project = await getProjectWithRepos(projectId);
822
- if (project?.slug) projectSlug = project.slug;
823
- }
824
-
825
- // Preserve provider/model/engine from frontmatter if provided
826
- const hadFrontmatter = /^---\n/.test(content);
827
- const provider = typeof frontmatter.provider === "string" ? frontmatter.provider : null;
828
- const model = typeof frontmatter.model === "string" ? frontmatter.model : null;
829
- const engine = typeof frontmatter.engine === "string" ? frontmatter.engine : null;
830
- const createdBy = frontmatter.created_by === "ai" ? "ai" : "user";
831
- const frontmatterDepends = normalizeDependsOnInput(frontmatter.depends_on);
832
- const optionDepends = normalizeDependsOnInput(options?.dependsOn);
833
- const dependsOn = optionDepends.length > 0 ? optionDepends : frontmatterDepends;
834
-
835
- const insertPayload: any = {
836
- id: randomUUID(),
837
- content,
838
- description: normalizeDescriptionBody(body),
839
- title,
840
- slug,
841
- status: frontmatter.status || "queued",
842
- stage: frontmatter.stage || "intake",
843
- project: projectSlug || null,
844
- ...(projectId !== undefined ? { project_id: projectId } : {}),
845
- ...(workflowId !== undefined ? { workflow_id: workflowId } : {}),
846
- priority: frontmatter.priority,
847
- engine,
848
- provider,
849
- model,
850
- swarm,
851
- swarm_models: options?.swarmModels ?? null,
852
- depends_on: dependsOn.length ? dependsOn : null,
853
- created_by: createdBy,
854
- user_id: userId,
855
- // Working set fields
856
- current_plan: options?.currentPlan || null,
857
- open_blockers: options?.openBlockers || [],
858
- next_action: options?.nextAction || null,
859
- version: 1,
860
- };
861
-
862
- await ensureNoCircularDependency(insertPayload.id, dependsOn, db);
863
-
864
- let { data, error } = await db
865
- .from("tasks")
866
- .insert(insertPayload)
867
- .select()
868
- .single();
869
-
870
- if (error && error.code === "42703") {
871
- // Older schemas may not have newer columns.
872
- const {
873
- swarm_models, swarm, workflow_id,
874
- current_plan, open_blockers, next_action, version,
875
- depends_on,
876
- ...fallbackPayload
877
- } = insertPayload;
878
- ({ data, error } = await db
879
- .from("tasks")
880
- .insert(fallbackPayload)
881
- .select()
882
- .single());
883
- }
884
-
885
- if (error) throw error;
886
- if (!data) {
887
- throw new Error('Failed to create task');
888
- }
889
-
890
- await ensureTaskDependencyState(data, userId);
891
- const refreshed = await getTask(data.id, userId);
892
- const taskRecord = refreshed || data;
893
- const resolvedUserId = userId || taskRecord.user_id;
894
- if (resolvedUserId) {
895
- const eventTimestamp = taskRecord.created_at || new Date().toISOString();
896
- const details: Record<string, unknown> = {
897
- dependsOn: Array.isArray(taskRecord.depends_on) ? taskRecord.depends_on : [],
898
- project: taskRecord.project || null,
899
- projectId: taskRecord.project_id || null,
900
- workflowId: taskRecord.workflow_id || null,
901
- createdBy: taskRecord.created_by || null,
902
- };
903
- void notifyTaskEvent({
904
- taskId: taskRecord.id,
905
- userId: resolvedUserId,
906
- eventType: "task.created",
907
- title: taskRecord.title || null,
908
- slug: taskRecord.slug || null,
909
- stage: taskRecord.stage || null,
910
- status: taskRecord.status || null,
911
- timestamp: eventTimestamp,
912
- details,
913
- });
914
- }
915
- return taskRecord;
916
- }
917
-
918
- export async function updateTask(
919
- id: string,
920
- content: string,
921
- userId?: string,
922
- options?: {
923
- swarmModels?: SwarmModel[] | null;
924
- currentPlan?: string;
925
- openBlockers?: string[];
926
- nextAction?: string;
927
- expectedVersion?: number;
928
- dependsOn?: string[] | null;
929
- }
930
- ): Promise<Task> {
931
- const db = createAdminDbClient();
932
-
933
- const { frontmatter, body } = parseFrontmatter(content);
934
- const swarm = typeof frontmatter.swarm === "boolean" ? frontmatter.swarm : undefined;
935
- const title = extractTitle(content);
936
- const projectId = typeof frontmatter.project_id === "string" ? frontmatter.project_id : undefined;
937
- const hasProvider = Object.prototype.hasOwnProperty.call(frontmatter, "provider");
938
- const hasModel = Object.prototype.hasOwnProperty.call(frontmatter, "model");
939
- const hasWorkflowId = Object.prototype.hasOwnProperty.call(frontmatter, "workflow_id");
940
- const hasDependsOnInFrontmatter = Object.prototype.hasOwnProperty.call(frontmatter, "depends_on");
941
- const dependsFromFrontmatter = normalizeDependsOnInput(frontmatter.depends_on);
942
- const dependsFromOptions = normalizeDependsOnInput(options?.dependsOn);
943
- const shouldUpdateDepends = options?.dependsOn !== undefined || hasDependsOnInFrontmatter;
944
- const dependsOnForUpdate = options?.dependsOn !== undefined ? dependsFromOptions : dependsFromFrontmatter;
945
-
946
- const updatePayload: any = {
947
- content,
948
- description: normalizeDescriptionBody(body),
949
- title,
950
- status: frontmatter.status,
951
- stage: frontmatter.stage,
952
- project: frontmatter.project,
953
- ...(projectId !== undefined ? { project_id: projectId } : {}),
954
- workflow_id: hasWorkflowId ? (frontmatter as any).workflow_id : undefined,
955
- priority: frontmatter.priority,
956
- engine: frontmatter.engine,
957
- provider: hasProvider ? frontmatter.provider : null,
958
- model: hasModel ? frontmatter.model : null,
959
- swarm,
960
- swarm_models: options?.swarmModels ?? undefined,
961
- ...(shouldUpdateDepends ? { depends_on: dependsOnForUpdate.length ? dependsOnForUpdate : null } : {}),
962
- updated_at: new Date().toISOString(),
963
- // Working set fields
964
- current_plan: options?.currentPlan ?? undefined,
965
- open_blockers: options?.openBlockers ?? undefined,
966
- next_action: options?.nextAction ?? undefined,
967
- };
968
-
969
- // Remove undefined fields to avoid overwriting with null unless intended
970
- Object.keys(updatePayload).forEach(key => {
971
- if (updatePayload[key] === undefined) {
972
- delete updatePayload[key];
973
- }
974
- });
975
-
976
- if (shouldUpdateDepends) {
977
- await ensureNoCircularDependency(id, dependsOnForUpdate, db);
978
- }
979
-
980
- let query = db
981
- .from("tasks")
982
- .update({
983
- ...updatePayload,
984
- version: db.rpc("increment_version"), // This will be used in the actual SQL via RPC or raw query if possible
985
- })
986
- .eq("id", id);
987
-
988
- if (userId) query = query.eq("user_id", userId);
989
-
990
- // Optimistic concurrency check
991
- if (options?.expectedVersion !== undefined) {
992
- query = query.eq("version", options.expectedVersion);
993
- }
994
-
995
- // NOTE: Supabase JS client doesn't support "version = version + 1" natively in .update() easily
996
- // without raw SQL or RPC. Since we are using standard update, we might need a workaround
997
- // if we can't use RPC.
998
- // For now, I'll use a direct update but ideally version should be incremented by the DB.
999
-
1000
- // Re-evaluating increment strategy:
1001
- // If we can't use version = version + 1 in updatePayload easily with JS client,
1002
- // we might need to fetch and increment, but that's not atomic.
1003
- // Better: Use a raw query or assume the DB has a trigger, or use RPC.
1004
-
1005
- // Let's try to use the version incrementing logic that works with standard Supabase client
1006
- // if we use a PostgREST feature:
1007
-
1008
- let { data, error } = await db
1009
- .from("tasks")
1010
- .update({
1011
- ...updatePayload,
1012
- })
1013
- .eq("id", id)
1014
- .select()
1015
- .maybeSingle();
1016
-
1017
- if (error) {
1018
- console.error(`[db.updateTask] error updating task ${id}:`, error);
1019
- }
1020
- if (!data && !error) {
1021
- console.warn(`[db.updateTask] UPDATE returned 0 rows for task ${id}, payload keys:`, Object.keys(updatePayload));
1022
- }
1023
-
1024
- if (error && error.code === "42703") {
1025
- // Older schemas fallback
1026
- const {
1027
- swarm_models, swarm, workflow_id,
1028
- current_plan, open_blockers, next_action, version,
1029
- depends_on,
1030
- ...fallbackPayload
1031
- } = updatePayload;
1032
- let fallbackQuery = db
1033
- .from("tasks")
1034
- .update(fallbackPayload)
1035
- .eq("id", id);
1036
- if (userId) fallbackQuery = fallbackQuery.eq("user_id", userId);
1037
- ({ data, error } = await fallbackQuery.select().maybeSingle());
1038
- }
1039
-
1040
- if (error) throw error;
1041
- if (!data) {
1042
- // Update returned no rows – re-fetch the task to return current state
1043
- const fallback = await getTask(id, userId);
1044
- if (!fallback) throw new Error(`Task ${id} not found`);
1045
- return fallback;
1046
- }
1047
-
1048
- await ensureTaskDependencyState(data, userId);
1049
- const refreshed = await getTask(data.id, userId);
1050
- const taskRecord = refreshed || data;
1051
- const resolvedUserId = userId || taskRecord.user_id;
1052
- if (resolvedUserId) {
1053
- const eventTimestamp = taskRecord.created_at || new Date().toISOString();
1054
- const details: Record<string, unknown> = {
1055
- dependsOn: Array.isArray(taskRecord.depends_on) ? taskRecord.depends_on : [],
1056
- project: taskRecord.project || null,
1057
- projectId: taskRecord.project_id || null,
1058
- workflowId: taskRecord.workflow_id || null,
1059
- createdBy: taskRecord.created_by || null,
1060
- };
1061
- void notifyTaskEvent({
1062
- taskId: taskRecord.id,
1063
- userId: resolvedUserId,
1064
- eventType: "task.created",
1065
- title: taskRecord.title || null,
1066
- slug: taskRecord.slug || null,
1067
- stage: taskRecord.stage || null,
1068
- status: taskRecord.status || null,
1069
- timestamp: eventTimestamp,
1070
- details,
1071
- });
1072
- }
1073
- return taskRecord;
1074
- }
1075
-
1076
- /**
1077
- * Appends a run entry to the task's run_index.
1078
- * Maintains a maximum number of runs (default 25).
1079
- */
1080
- export async function appendRunToIndex(
1081
- taskId: string,
1082
- runEntry: RunIndexEntry,
1083
- maxRuns: number = 25
1084
- ): Promise<void> {
1085
- const db = createAdminDbClient();
1086
-
1087
- // Fetch current run_index
1088
- const { data: task, error: fetchError } = await db
1089
- .from("tasks")
1090
- .select("run_index")
1091
- .eq("id", taskId)
1092
- .single();
1093
-
1094
- if (fetchError) {
1095
- // Backward-compatible: older schemas won't have the `run_index` column.
1096
- if ((fetchError as any)?.code === "42703") return;
1097
- throw fetchError;
1098
- }
1099
-
1100
- const runIndex = Array.isArray(task.run_index) ? task.run_index : [];
1101
-
1102
- // Add new entry to the start
1103
- const updatedIndex = [runEntry, ...runIndex].slice(0, maxRuns);
1104
-
1105
- const { error: updateError } = await db
1106
- .from("tasks")
1107
- .update({ run_index: updatedIndex })
1108
- .eq("id", taskId);
1109
-
1110
- if (updateError) {
1111
- // Backward-compatible: older schemas won't have the `run_index` column.
1112
- if ((updateError as any)?.code === "42703") return;
1113
- throw updateError;
1114
- }
1115
- }
1116
-
1117
- export async function deleteTask(id: string, userId?: string): Promise<void> {
1118
- const db = createAdminDbClient();
1119
- let query = db.from("tasks").delete().eq("id", id);
1120
- if (userId) query = query.eq("user_id", userId);
1121
- const { error } = await query;
1122
- if (error) throw error;
1123
- }
1124
-
1125
- export async function getNextQueuedTask(engine?: string): Promise<Task | null> {
1126
- const db = createAdminDbClient();
1127
-
1128
- let query = db
1129
- .from("tasks")
1130
- .select("*")
1131
- .eq("status", "queued")
1132
- .order("priority", { ascending: true, nullsFirst: false })
1133
- .order("created_at", { ascending: true })
1134
- .limit(1);
1135
-
1136
- if (engine) query = query.eq("engine", engine);
1137
-
1138
- const { data, error } = await query.single();
1139
- if (error) {
1140
- if (error.code === "PGRST116") return null;
1141
- throw error;
1142
- }
1143
- return data;
1144
- }
1145
-
1146
- export async function getProjects(userId?: string, includeArchived = false): Promise<ProjectWithRepos[]> {
1147
- const db = createAdminDbClient();
1148
- let query = db
1149
- .from("projects")
1150
- .select("*, project_repos(*)");
1151
- if (userId) query = query.eq("user_id", userId);
1152
- if (!includeArchived) query = query.is("archived_at", null);
1153
-
1154
- const { data, error } = await query;
1155
- if (error) {
1156
- if (isMissingRelationError(error, "projects")) {
1157
- return [];
1158
- }
1159
- throw error;
1160
- }
1161
-
1162
- const projects = (data || []) as (Project & { project_repos?: ProjectRepo[] })[];
1163
- return projects.map((project) => ({
1164
- ...project,
1165
- repos: project.project_repos ?? [],
1166
- }));
1167
- }
1168
-
1169
- export async function getProjectBySlug(slug: string, userId?: string): Promise<Project | null> {
1170
- const db = createAdminDbClient();
1171
- let query = db.from("projects").select("*").eq("slug", slug);
1172
- if (userId) query = query.eq("user_id", userId);
1173
-
1174
- const { data, error } = await query.maybeSingle();
1175
- if (error) {
1176
- if (isMissingRelationError(error, "projects")) {
1177
- return null;
1178
- }
1179
- throw error;
1180
- }
1181
- return data || null;
1182
- }
1183
-
1184
- export async function getProjectRepos(projectId: string): Promise<ProjectRepo[]> {
1185
- const db = createAdminDbClient();
1186
- const { data, error } = await db
1187
- .from("project_repos")
1188
- .select("*")
1189
- .eq("project_id", projectId);
1190
-
1191
- if (error) {
1192
- if (isMissingRelationError(error, "project_repos")) {
1193
- return [];
1194
- }
1195
- throw error;
1196
- }
1197
-
1198
- return data || [];
1199
- }
1200
-
1201
- const UUID_REGEX = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
1202
-
1203
- export async function getProjectWithRepos(
1204
- projectIdOrSlug: string,
1205
- userId?: string
1206
- ): Promise<ProjectWithRepos | null> {
1207
- const db = createAdminDbClient();
1208
- const isUuid = UUID_REGEX.test(projectIdOrSlug);
1209
-
1210
- let projectQuery = db.from("projects").select("*");
1211
- if (isUuid) {
1212
- projectQuery = projectQuery.eq("id", projectIdOrSlug);
1213
- } else {
1214
- projectQuery = projectQuery.eq("slug", projectIdOrSlug);
1215
- }
1216
- if (userId) projectQuery = projectQuery.eq("user_id", userId);
1217
-
1218
- const projectResult = await projectQuery.maybeSingle();
1219
- if (projectResult.error) {
1220
- if (isMissingRelationError(projectResult.error, "projects")) {
1221
- return null;
1222
- }
1223
- throw projectResult.error;
1224
- }
1225
-
1226
- const project = projectResult.data;
1227
- if (!project) return null;
1228
-
1229
- const repos = await getProjectRepos(project.id);
1230
- return { ...project, repos };
1231
- }
1232
-
1233
- async function insertProjectRepos(
1234
- projectId: string,
1235
- repos: ProjectRepoInput[],
1236
- db: any
1237
- ): Promise<ProjectRepo[]> {
1238
- if (!repos.length) {
1239
- return [];
1240
- }
1241
-
1242
- const payload = repos.map((repo) => ({
1243
- ...(repo.id ? { id: repo.id } : {}),
1244
- project_id: projectId,
1245
- name: repo.name,
1246
- path: repo.path ?? null,
1247
- git_url: repo.git_url ?? null,
1248
- notes: repo.notes ?? null,
1249
- }));
1250
-
1251
- const { data, error } = await db.from("project_repos").insert(payload).select("*");
1252
- if (error) {
1253
- if (isMissingRelationError(error, "project_repos")) {
1254
- return [];
1255
- }
1256
- throw error;
1257
- }
1258
- return data || [];
1259
- }
1260
-
1261
- export async function createProject(
1262
- userId: string,
1263
- input: ProjectInput,
1264
- dbClient?: any
1265
- ): Promise<ProjectWithRepos> {
1266
- if (!input.name?.trim()) {
1267
- throw new Error("Project name is required");
1268
- }
1269
-
1270
- const db = getDbClient(dbClient);
1271
- const baseSlug = input.name.trim() || "project";
1272
- const slug = await generateUniqueProjectSlug(baseSlug, userId, db);
1273
-
1274
- const payload = {
1275
- user_id: userId,
1276
- name: input.name.trim(),
1277
- slug,
1278
- description: input.description ?? null,
1279
- workflow_id: input.workflow_id ?? null,
1280
- };
1281
-
1282
- const { data: project, error } = await db.from("projects").insert(payload).select("*").single();
1283
- if (error) throw error;
1284
-
1285
- const repos = await insertProjectRepos(project.id, input.repos ?? [], db);
1286
-
1287
- return { ...project, repos };
1288
- }
1289
-
1290
- export async function updateProject(
1291
- projectIdOrSlug: string,
1292
- userId: string,
1293
- updates: ProjectUpdatePayload,
1294
- dbClient?: any
1295
- ): Promise<ProjectWithRepos | null> {
1296
- const db = getDbClient(dbClient);
1297
- const isUuid = UUID_REGEX.test(projectIdOrSlug);
1298
-
1299
- let projectId = projectIdOrSlug;
1300
- if (!isUuid) {
1301
- const project = await getProjectBySlug(projectIdOrSlug, userId);
1302
- if (!project) return null;
1303
- projectId = project.id;
1304
- }
1305
-
1306
- const updatePayload: Record<string, unknown> = {};
1307
-
1308
- if (typeof updates.name !== "undefined") {
1309
- const trimmedName = updates.name?.trim();
1310
- if (!trimmedName) {
1311
- throw new Error("Project name cannot be empty");
1312
- }
1313
- updatePayload.name = trimmedName;
1314
- }
1315
- if (typeof updates.slug !== "undefined") {
1316
- const trimmedSlug = updates.slug?.trim();
1317
- if (trimmedSlug) {
1318
- updatePayload.slug = trimmedSlug;
1319
- }
1320
- }
1321
- if (typeof updates.description !== "undefined") updatePayload.description = updates.description;
1322
- if (typeof updates.metadata !== "undefined") updatePayload.metadata = updates.metadata;
1323
- if (typeof updates.ci_cd_info !== "undefined") updatePayload.ci_cd_info = updates.ci_cd_info;
1324
- if (typeof updates.workflow_id !== "undefined") updatePayload.workflow_id = updates.workflow_id;
1325
-
1326
- if (Object.keys(updatePayload).length) {
1327
- const { error } = await db
1328
- .from("projects")
1329
- .update(updatePayload)
1330
- .eq("id", projectId)
1331
- .eq("user_id", userId);
1332
- if (error) throw error;
1333
- }
1334
-
1335
- if (updates.repos) {
1336
- const { data: existingRepos, error: existingReposError } = await db
1337
- .from("project_repos")
1338
- .select("*")
1339
- .eq("project_id", projectId);
1340
- if (existingReposError && !isMissingRelationError(existingReposError, "project_repos")) {
1341
- throw existingReposError;
1342
- }
1343
-
1344
- const existingRepoList = (existingRepos || []) as ProjectRepo[];
1345
- const existingRepoIds = new Set(existingRepoList.map((repo) => repo.id));
1346
- const nextRepoIds = new Set(
1347
- updates.repos.map((repo) => repo.id).filter((repoId): repoId is string => Boolean(repoId))
1348
- );
1349
-
1350
- for (const existingRepo of existingRepoList) {
1351
- if (nextRepoIds.has(existingRepo.id)) continue;
1352
- const { error: deleteError } = await db
1353
- .from("project_repos")
1354
- .delete()
1355
- .eq("id", existingRepo.id)
1356
- .eq("project_id", projectId);
1357
- if (deleteError && !isMissingRelationError(deleteError, "project_repos")) {
1358
- throw deleteError;
1359
- }
1360
- }
1361
-
1362
- for (const repo of updates.repos) {
1363
- const payload = {
1364
- name: repo.name,
1365
- path: repo.path ?? null,
1366
- git_url: repo.git_url ?? null,
1367
- notes: repo.notes ?? null,
1368
- project_id: projectId,
1369
- };
1370
-
1371
- if (repo.id && existingRepoIds.has(repo.id)) {
1372
- const { error: repoUpdateError } = await db
1373
- .from("project_repos")
1374
- .update(payload)
1375
- .eq("id", repo.id)
1376
- .eq("project_id", projectId);
1377
- if (repoUpdateError && !isMissingRelationError(repoUpdateError, "project_repos")) {
1378
- throw repoUpdateError;
1379
- }
1380
- continue;
1381
- }
1382
-
1383
- const { error: repoInsertError } = await db
1384
- .from("project_repos")
1385
- .insert({
1386
- ...(repo.id ? { id: repo.id } : {}),
1387
- ...payload,
1388
- });
1389
- if (repoInsertError && !isMissingRelationError(repoInsertError, "project_repos")) {
1390
- throw repoInsertError;
1391
- }
1392
- }
1393
- }
1394
-
1395
- return getProjectWithRepos(projectId, userId);
1396
- }
1397
-
1398
- export async function deleteProject(
1399
- projectId: string,
1400
- userId: string,
1401
- dbClient?: any
1402
- ): Promise<void> {
1403
- const db = getDbClient(dbClient);
1404
- const { error } = await db
1405
- .from("projects")
1406
- .update({ archived_at: new Date().toISOString() })
1407
- .eq("id", projectId)
1408
- .eq("user_id", userId);
1409
-
1410
- if (error) throw error;
1411
- }
1412
-
1413
- export async function assignOrphanTasksToProject(
1414
- projectId: string,
1415
- userId: string,
1416
- dbClient?: any
1417
- ): Promise<{ updatedCount: number; taskIds: string[] }> {
1418
- const db = getDbClient(dbClient);
1419
- const project = await getProjectWithRepos(projectId, userId);
1420
- if (!project) {
1421
- throw new Error("Project not found");
1422
- }
1423
-
1424
- const { data: tasks, error: tasksError } = await db
1425
- .from("tasks")
1426
- .select("id, project")
1427
- .eq("user_id", userId)
1428
- .is("project_id", null);
1429
-
1430
- if (tasksError) throw tasksError;
1431
-
1432
- const slug = String(project.slug || "").trim().toLowerCase();
1433
- const orphanTaskIds = (tasks || [])
1434
- .filter((task: Task) => {
1435
- const projectValue = String(task.project || "").trim().toLowerCase();
1436
- return !projectValue || projectValue === "none" || projectValue === slug;
1437
- })
1438
- .map((task: Task) => task.id);
1439
-
1440
- if (!orphanTaskIds.length) {
1441
- return { updatedCount: 0, taskIds: [] };
1442
- }
1443
-
1444
- const { error: updateError } = await db
1445
- .from("tasks")
1446
- .update({
1447
- project: project.slug,
1448
- project_id: project.id,
1449
- updated_at: new Date().toISOString(),
1450
- })
1451
- .eq("user_id", userId)
1452
- .is("project_id", null)
1453
- .in("id", orphanTaskIds);
1454
-
1455
- if (updateError) throw updateError;
1456
-
1457
- return { updatedCount: orphanTaskIds.length, taskIds: orphanTaskIds };
1458
- }
1459
-
1460
- // ============ WORKFLOWS ============
1461
-
1462
- const DEFAULT_SDLC_WORKFLOW_ID = "00000000-0000-0000-0000-000000000001";
1463
- const DEFAULT_SYSTEM_USER_ID = "00000000-0000-0000-0000-000000000000";
1464
-
1465
- const DEFAULT_WORKFLOW_NODE_SEED = [
1466
- {
1467
- id: "00000000-0000-0000-0001-000000000001",
1468
- name: "INTAKE",
1469
- label: "Intake",
1470
- prompt: "New task. Triage, scope, and prepare for work.",
1471
- position: 0,
1472
- node_type: "step" as const,
1473
- },
1474
- {
1475
- id: "00000000-0000-0000-0001-000000000002",
1476
- name: "PROGRESS",
1477
- label: "Progress",
1478
- prompt: "Task is actively being worked on.",
1479
- position: 1,
1480
- node_type: "step" as const,
1481
- },
1482
- {
1483
- id: "00000000-0000-0000-0001-000000000003",
1484
- name: "DONE",
1485
- label: "Done",
1486
- prompt: "Task completed.",
1487
- position: 2,
1488
- node_type: "terminal" as const,
1489
- },
1490
- ];
1491
-
1492
- const DEFAULT_WORKFLOW_NODE_SEED_BY_ID = new Map(
1493
- DEFAULT_WORKFLOW_NODE_SEED.map((node) => [node.id, node])
1494
- );
1495
-
1496
- async function ensureDefaultWorkflowGraphExists(userId: string): Promise<void> {
1497
- const db = createAdminDbClient();
1498
- const ownerId = userId || DEFAULT_SYSTEM_USER_ID;
1499
-
1500
- const { error: workflowError } = await db
1501
- .from("workflows")
1502
- .upsert(
1503
- {
1504
- id: DEFAULT_SDLC_WORKFLOW_ID,
1505
- user_id: ownerId,
1506
- name: "Default Workflow",
1507
- definition: {},
1508
- },
1509
- { onConflict: "id" }
1510
- );
1511
- if (workflowError) throw workflowError;
1512
-
1513
- const { error: nodeError } = await db
1514
- .from("workflow_nodes")
1515
- .upsert(
1516
- DEFAULT_WORKFLOW_NODE_SEED.map((node) => ({
1517
- ...node,
1518
- workflow_id: DEFAULT_SDLC_WORKFLOW_ID,
1519
- metadata: {},
1520
- })),
1521
- { onConflict: "id" }
1522
- );
1523
- if (nodeError) throw nodeError;
1524
-
1525
- const { error: transitionError } = await db
1526
- .from("workflow_transitions")
1527
- .upsert(
1528
- [
1529
- {
1530
- workflow_id: DEFAULT_SDLC_WORKFLOW_ID,
1531
- from_node_id: "00000000-0000-0000-0001-000000000001", // INTAKE
1532
- to_node_id: "00000000-0000-0000-0001-000000000002", // PROGRESS
1533
- condition: "done",
1534
- priority: 0,
1535
- metadata: {},
1536
- },
1537
- {
1538
- workflow_id: DEFAULT_SDLC_WORKFLOW_ID,
1539
- from_node_id: "00000000-0000-0000-0001-000000000002", // PROGRESS
1540
- to_node_id: "00000000-0000-0000-0001-000000000003", // DONE
1541
- condition: "done",
1542
- priority: 0,
1543
- metadata: {},
1544
- },
1545
- ],
1546
- { onConflict: "workflow_id,from_node_id,condition" }
1547
- );
1548
- if (transitionError) throw transitionError;
1549
- }
1550
-
1551
- export async function getWorkflows(userId: string): Promise<Workflow[]> {
1552
- const db = createAdminDbClient();
1553
- // Return user's own workflows plus system workflows (user_id = '000...')
1554
- const { data, error } = await db
1555
- .from("workflows")
1556
- .select("*")
1557
- .or(`user_id.eq.${userId},user_id.eq.00000000-0000-0000-0000-000000000000`)
1558
- .order("created_at", { ascending: false });
1559
-
1560
- if (error) {
1561
- if (isMissingRelationError(error, "workflows")) return [];
1562
- throw error;
1563
- }
1564
- return data || [];
1565
- }
1566
-
1567
- export async function getWorkflow(id: string, userId?: string): Promise<Workflow | null> {
1568
- const db = createAdminDbClient();
1569
- let query = db.from("workflows").select("*").eq("id", id);
1570
- if (userId) {
1571
- // Allow accessing if owner OR if it's the system workflow (public/shared)
1572
- // For update, we might want stricter rules, but for get this is fine.
1573
- // The query logic in getWorkflows handles the "OR" logic.
1574
- // Here we can just strict check if we wanted, but the UI might be loading a system workflow.
1575
- // We'll leave it as is (just ID check) or add ownership check if required by caller.
1576
- // Existing code passes userId but doesn't use it in query build above (it was resetting query).
1577
- // Let's fix the query building while we are here:
1578
- // query = query.eq("user_id", userId) -- wait, line 879 initialized query.
1579
- // Original code:
1580
- // let query = db.from("workflows").select("*").eq("id", id);
1581
- // ...
1582
- // It IGNORED userId!
1583
- // I should fix that? No, risk of breaking.
1584
- // I will just add updateWorkflow.
1585
- }
1586
-
1587
- const { data, error } = await query.maybeSingle();
1588
- if (error) {
1589
- if (isMissingRelationError(error, "workflows")) return null;
1590
- throw error;
1591
- }
1592
- return data;
1593
- }
1594
-
1595
- export async function updateWorkflow(
1596
- id: string,
1597
- userId: string,
1598
- updates: { definition?: Record<string, unknown>; name?: string; description?: string }
1599
- ): Promise<Workflow | null> {
1600
- const db = createAdminDbClient();
1601
-
1602
- const payload: any = { updated_at: new Date().toISOString() };
1603
- if (updates.definition !== undefined) payload.definition = updates.definition;
1604
- if (updates.name !== undefined) payload.name = updates.name;
1605
- if (updates.description !== undefined) payload.description = updates.description;
1606
-
1607
- // We allow updating valid workflows.
1608
- // TODO: Add strict ownership check if needed. For now, assuming admin client access is fine
1609
- // but we should ideally ensure the user owns it.
1610
- // TODO: Add strict ownership check if needed.
1611
-
1612
- const { data, error } = await db
1613
- .from("workflows")
1614
- .update(payload)
1615
- .eq("id", id)
1616
- .select()
1617
- .single();
1618
-
1619
- if (error) throw error;
1620
- return data;
1621
- }
1622
-
1623
- export async function getWorkflowNodes(workflowId: string): Promise<WorkflowNode[]> {
1624
- const db = createAdminDbClient();
1625
- const { data, error } = await db
1626
- .from("workflow_nodes")
1627
- .select("*")
1628
- .eq("workflow_id", workflowId)
1629
- .order("position", { ascending: true });
1630
-
1631
- if (error) {
1632
- if (isMissingRelationError(error, "workflow_nodes")) return [];
1633
- throw error;
1634
- }
1635
- return data || [];
1636
- }
1637
-
1638
- export async function updateWorkflowNodes(
1639
- workflowId: string,
1640
- userId: string,
1641
- updates: Array<{
1642
- id: string;
1643
- prompt?: string;
1644
- provider?: string;
1645
- model?: string;
1646
- metadata?: Record<string, unknown>;
1647
- }>
1648
- ): Promise<WorkflowNode[]> {
1649
- const db = createAdminDbClient();
1650
-
1651
- if (workflowId === DEFAULT_SDLC_WORKFLOW_ID) {
1652
- await ensureDefaultWorkflowGraphExists(userId);
1653
- }
1654
-
1655
- // Basic existence check; current auth mode allows editing system workflows in demo environments.
1656
- const wf = await getWorkflow(workflowId, userId);
1657
- if (!wf) throw new Error("Workflow not found");
1658
-
1659
- if (workflowId === DEFAULT_SDLC_WORKFLOW_ID) {
1660
- const seedAwareRows = updates.map((node) => {
1661
- const seed = DEFAULT_WORKFLOW_NODE_SEED_BY_ID.get(node.id);
1662
- if (!seed) return null;
1663
- return {
1664
- id: node.id,
1665
- workflow_id: workflowId,
1666
- name: seed.name,
1667
- label: seed.label,
1668
- position: seed.position,
1669
- node_type: seed.node_type,
1670
- prompt: node.prompt ?? seed.prompt,
1671
- provider: node.provider ?? null,
1672
- model: node.model ?? null,
1673
- metadata: node.metadata ?? {},
1674
- };
1675
- }).filter((node): node is NonNullable<typeof node> => Boolean(node));
1676
-
1677
- if (seedAwareRows.length > 0) {
1678
- const { error } = await db
1679
- .from("workflow_nodes")
1680
- .upsert(seedAwareRows, { onConflict: "id" });
1681
- if (error) throw error;
1682
- }
1683
-
1684
- return getWorkflowNodes(workflowId);
1685
- }
1686
-
1687
- await Promise.all(
1688
- updates.map(async (node) => {
1689
- const payload: any = {};
1690
- if (node.prompt !== undefined) payload.prompt = node.prompt;
1691
- if (node.provider !== undefined) payload.provider = node.provider;
1692
- if (node.model !== undefined) payload.model = node.model;
1693
- if (node.metadata !== undefined) payload.metadata = node.metadata;
1694
-
1695
- // Avoid no-op updates.
1696
- if (Object.keys(payload).length === 0) return;
1697
-
1698
- const { error } = await db
1699
- .from("workflow_nodes")
1700
- .update(payload)
1701
- .eq("workflow_id", workflowId)
1702
- .eq("id", node.id);
1703
- if (error) throw error;
1704
- })
1705
- );
1706
-
1707
- return getWorkflowNodes(workflowId);
1708
- }
1709
-
1710
- export async function getWorkflowNodeByName(
1711
- workflowId: string,
1712
- name: string
1713
- ): Promise<WorkflowNode | null> {
1714
- const db = createAdminDbClient();
1715
- const { data, error } = await db
1716
- .from("workflow_nodes")
1717
- .select("*")
1718
- .eq("workflow_id", workflowId)
1719
- .eq("name", name)
1720
- .maybeSingle();
1721
-
1722
- if (error) {
1723
- if (isMissingRelationError(error, "workflow_nodes")) return null;
1724
- throw error;
1725
- }
1726
- return data;
1727
- }
1728
-
1729
- export async function getWorkflowTransitions(workflowId: string): Promise<WorkflowTransition[]> {
1730
- const db = createAdminDbClient();
1731
- const { data, error } = await db
1732
- .from("workflow_transitions")
1733
- .select("*")
1734
- .eq("workflow_id", workflowId)
1735
- .order("priority", { ascending: true });
1736
-
1737
- if (error) {
1738
- if (isMissingRelationError(error, "workflow_transitions")) return [];
1739
- throw error;
1740
- }
1741
- return data || [];
1742
- }
1743
-
1744
- export async function getWorkflowTransitionsFromNode(
1745
- workflowId: string,
1746
- fromNodeId: string
1747
- ): Promise<WorkflowTransition[]> {
1748
- const db = createAdminDbClient();
1749
- const { data, error } = await db
1750
- .from("workflow_transitions")
1751
- .select("*")
1752
- .eq("workflow_id", workflowId)
1753
- .eq("from_node_id", fromNodeId)
1754
- .order("priority", { ascending: true });
1755
-
1756
- if (error) {
1757
- if (isMissingRelationError(error, "workflow_transitions")) return [];
1758
- throw error;
1759
- }
1760
- return data || [];
1761
- }
1762
-
1763
- export async function getWorkflowWithGraph(
1764
- id: string,
1765
- userId?: string
1766
- ): Promise<WorkflowWithGraph | null> {
1767
- const workflow = await getWorkflow(id, userId);
1768
- if (!workflow) return null;
1769
-
1770
- const [nodes, transitions] = await Promise.all([
1771
- getWorkflowNodes(id),
1772
- getWorkflowTransitions(id),
1773
- ]);
1774
-
1775
- return { ...workflow, nodes, transitions };
1776
- }
1777
-
1778
- export function getDefaultWorkflowId(): string {
1779
- return DEFAULT_SDLC_WORKFLOW_ID;
1780
- }
1781
-
1782
- // ============ TASK LOGS ============
1783
-
1784
- export async function getTaskLogs(
1785
- taskId: string,
1786
- options: { limit?: number; tail?: number; after?: string; nodeId?: string } = {}
1787
- ): Promise<TaskLog[]> {
1788
- const db = createAdminDbClient();
1789
-
1790
- const limit = Math.max(1, Math.min(2000, Number(options.limit ?? options.tail ?? 500)));
1791
- const after = typeof options.after === "string" && options.after.trim() ? options.after.trim() : null;
1792
- const tail = after ? null : (options.tail === undefined ? limit : Number(options.tail));
1793
- const useTail = tail !== null && Number.isFinite(tail) && tail > 0;
1794
-
1795
- let query = db
1796
- .from("task_logs")
1797
- .select("*")
1798
- .eq("task_id", taskId);
1799
-
1800
- if (options.nodeId) {
1801
- query = query.eq("node_id", options.nodeId);
1802
- }
1803
-
1804
- if (after) {
1805
- query = query
1806
- .gt("created_at", after)
1807
- .order("created_at", { ascending: true })
1808
- .order("id", { ascending: true })
1809
- .limit(limit);
1810
- } else if (useTail) {
1811
- // Fetch last N logs efficiently, then reverse for chronological display.
1812
- query = query
1813
- .order("created_at", { ascending: false })
1814
- .order("id", { ascending: false })
1815
- .limit(limit);
1816
- } else {
1817
- query = query
1818
- .order("created_at", { ascending: true })
1819
- .order("id", { ascending: true })
1820
- .limit(limit);
1821
- }
1822
-
1823
- const { data, error } = await query;
1824
- if (error) throw error;
1825
- const rows = data || [];
1826
- if (after) return rows;
1827
- if (useTail) return rows.slice().reverse();
1828
- return rows;
1829
- }
1830
-
1831
- export async function addTaskLog(taskId: string, content: string, logType?: string, nodeId?: string): Promise<TaskLog> {
1832
- const db = createAdminDbClient();
1833
-
1834
- const { data, error } = await db
1835
- .from("task_logs")
1836
- .insert({ task_id: taskId, content, log_type: logType, ...(nodeId ? { node_id: nodeId } : {}) })
1837
- .select()
1838
- .single();
1839
-
1840
- if (error) throw error;
1841
- return data;
1842
- }
1843
-
1844
- // ============ TASK COSTS ============
1845
-
1846
- export interface TaskCostEntry {
1847
- id: string;
1848
- task_id: string;
1849
- stage: string;
1850
- provider: string | null;
1851
- model: string | null;
1852
- input_tokens: number;
1853
- output_tokens: number;
1854
- estimated_cost: string | null;
1855
- created_at: string;
1856
- }
1857
-
1858
- export interface TaskCostStageSummary {
1859
- stage: string;
1860
- input_tokens: number;
1861
- output_tokens: number;
1862
- estimated_cost: number;
1863
- entries: number;
1864
- }
1865
-
1866
- export interface TaskCostSummary {
1867
- total_input_tokens: number;
1868
- total_output_tokens: number;
1869
- total_cost: number;
1870
- per_stage: TaskCostStageSummary[];
1871
- }
1872
-
1873
- function normalizeTokenCount(value: number | string | undefined): number {
1874
- const parsed = Number(value ?? 0);
1875
- if (!Number.isFinite(parsed)) return 0;
1876
- return Math.max(0, Math.round(parsed));
1877
- }
1878
-
1879
- function normalizeCostValue(value: number | string | undefined): number {
1880
- const parsed = Number(value ?? 0);
1881
- if (!Number.isFinite(parsed)) return 0;
1882
- return Math.max(0, parsed);
1883
- }
1884
-
1885
- export async function addTaskCostEntry(input: {
1886
- taskId: string;
1887
- stage: string;
1888
- provider?: string | null;
1889
- model?: string | null;
1890
- inputTokens?: number;
1891
- outputTokens?: number;
1892
- estimatedCost?: number;
1893
- }): Promise<TaskCostEntry> {
1894
- const db = createAdminDbClient();
1895
-
1896
- const payload = {
1897
- task_id: input.taskId,
1898
- stage: input.stage,
1899
- provider: input.provider ?? null,
1900
- model: input.model ?? null,
1901
- input_tokens: normalizeTokenCount(input.inputTokens),
1902
- output_tokens: normalizeTokenCount(input.outputTokens),
1903
- estimated_cost: normalizeCostValue(input.estimatedCost),
1904
- };
1905
-
1906
- const { data, error } = await db
1907
- .from("task_costs")
1908
- .insert(payload)
1909
- .select()
1910
- .single();
1911
-
1912
- if (error) throw error;
1913
- return data;
1914
- }
1915
-
1916
- export async function getTaskCostEntries(taskId: string): Promise<TaskCostEntry[]> {
1917
- const db = createAdminDbClient();
1918
-
1919
- const { data, error } = await db
1920
- .from("task_costs")
1921
- .select("*")
1922
- .eq("task_id", taskId)
1923
- .order("created_at", { ascending: true });
1924
-
1925
- if (error) throw error;
1926
- return data || [];
1927
- }
1928
-
1929
- export function summarizeTaskCosts(entries: TaskCostEntry[]): TaskCostSummary {
1930
- const stageMap: Record<string, TaskCostStageSummary> = {};
1931
- let totalInput = 0;
1932
- let totalOutput = 0;
1933
- let totalCost = 0;
1934
-
1935
- for (const entry of entries) {
1936
- const stageKey = entry.stage || "unknown";
1937
- const input = normalizeTokenCount(entry.input_tokens);
1938
- const output = normalizeTokenCount(entry.output_tokens);
1939
- const cost = normalizeCostValue(entry.estimated_cost ?? 0);
1940
-
1941
- totalInput += input;
1942
- totalOutput += output;
1943
- totalCost += cost;
1944
-
1945
- const existing = stageMap[stageKey] || {
1946
- stage: stageKey,
1947
- input_tokens: 0,
1948
- output_tokens: 0,
1949
- estimated_cost: 0,
1950
- entries: 0,
1951
- };
1952
-
1953
- existing.input_tokens += input;
1954
- existing.output_tokens += output;
1955
- existing.estimated_cost += cost;
1956
- existing.entries += 1;
1957
- stageMap[stageKey] = existing;
1958
- }
1959
-
1960
- const perStage = Object.values(stageMap).sort((a, b) => a.stage.localeCompare(b.stage));
1961
-
1962
- return {
1963
- total_input_tokens: totalInput,
1964
- total_output_tokens: totalOutput,
1965
- total_cost: totalCost,
1966
- per_stage: perStage,
1967
- };
1968
- }
1969
-
1970
- export async function getTaskCostSummary(taskId: string): Promise<TaskCostSummary> {
1971
- const entries = await getTaskCostEntries(taskId);
1972
- return summarizeTaskCosts(entries);
1973
- }
1974
-
1975
- // ============ TASK COMMENTS ============
1976
-
1977
- export async function getTaskComments(taskId: string): Promise<TaskComment[]> {
1978
- const db = createAdminDbClient();
1979
-
1980
- const { data, error } = await db
1981
- .from("task_comments")
1982
- .select("*")
1983
- .eq("task_id", taskId)
1984
- .is("deleted_at", null)
1985
- .order("created_at", { ascending: true })
1986
- .order("id", { ascending: true });
1987
-
1988
- if (error) throw error;
1989
- return data || [];
1990
- }
1991
-
1992
- export async function addTaskComment(
1993
- taskId: string,
1994
- content: string,
1995
- authorType: "user" | "agent",
1996
- authorId?: string
1997
- ): Promise<TaskComment> {
1998
- const db = createAdminDbClient();
1999
-
2000
- const { data, error } = await db
2001
- .from("task_comments")
2002
- .insert({ task_id: taskId, content, author_type: authorType, author_id: authorId ?? null })
2003
- .select()
2004
- .single();
2005
-
2006
- if (error) throw error;
2007
- return data;
2008
- }
2009
-
2010
- export async function deleteTaskComment(commentId: string, userId: string): Promise<void> {
2011
- const db = createAdminDbClient();
2012
-
2013
- // First verify ownership
2014
- const { data: comment, error: fetchError } = await db
2015
- .from("task_comments")
2016
- .select("author_id, author_type")
2017
- .eq("id", commentId)
2018
- .single();
2019
-
2020
- if (fetchError) throw fetchError;
2021
- if (!comment) throw new Error("Comment not found");
2022
-
2023
- // Only allow deleting own comments
2024
- if (comment.author_type !== "user" || comment.author_id !== userId) {
2025
- throw new Error("Unauthorized");
2026
- }
2027
-
2028
- const { error } = await db
2029
- .from("task_comments")
2030
- .update({ deleted_at: new Date().toISOString() })
2031
- .eq("id", commentId)
2032
- .is("deleted_at", null);
2033
-
2034
- if (error) throw error;
2035
- }
2036
-
2037
- // ============ LEARNINGS ============
2038
-
2039
- export async function getLearnings(
2040
- scope: LearningScope,
2041
- scopeId?: string,
2042
- userId?: string
2043
- ): Promise<Learning[]> {
2044
- if (scope !== "task") {
2045
- return vaultStore.getLearnings(scope, scopeId);
2046
- }
2047
- const db = createAdminDbClient();
2048
-
2049
- let query = db
2050
- .from("learnings")
2051
- .select("*")
2052
- .eq("scope", scope)
2053
- .order("created_at", { ascending: false });
2054
-
2055
- if (scopeId) query = query.eq("scope_id", scopeId);
2056
- if (userId) query = query.eq("user_id", userId);
2057
-
2058
- const { data, error } = await query;
2059
- if (error) throw error;
2060
- return data || [];
2061
- }
2062
-
2063
- export async function addLearning(
2064
- scope: LearningScope,
2065
- content: string,
2066
- scopeId?: string,
2067
- userId?: string
2068
- ): Promise<Learning> {
2069
- if (scope !== "task") {
2070
- return vaultStore.addLearning(scope, content, scopeId);
2071
- }
2072
- const db = createAdminDbClient();
2073
-
2074
- const { data, error } = await db
2075
- .from("learnings")
2076
- .insert({ scope, scope_id: scopeId, content, user_id: userId })
2077
- .select()
2078
- .single();
2079
-
2080
- if (error) throw error;
2081
- return data;
2082
- }
2083
-
2084
- export async function deleteLearning(id: string, userId?: string): Promise<void> {
2085
- if (id === "global-playbook") {
2086
- vaultStore.deleteLearning(id, "global");
2087
- return;
2088
- }
2089
- const project = await getProjectWithRepos(id, userId);
2090
- if (project) {
2091
- vaultStore.deleteLearning(id, "project", project.id);
2092
- return;
2093
- }
2094
- const db = createAdminDbClient();
2095
- let query = db.from("learnings").delete().eq("id", id);
2096
- if (userId) query = query.eq("user_id", userId);
2097
- const { error } = await query;
2098
- if (error) throw error;
2099
- }
2100
-
2101
- // ============ STAGE PROMPTS ============
2102
-
2103
- export interface StagePrompt {
2104
- id: string;
2105
- user_id?: string;
2106
- stage: TaskStage;
2107
- prompt: string;
2108
- outputs?: string[];
2109
- is_default: boolean;
2110
- created_at: string;
2111
- swarm?: boolean;
2112
- provider?: string;
2113
- model?: string;
2114
- swarm_models?: SwarmModel[];
2115
- }
2116
-
2117
- // Default stage prompts
2118
- // Default prompts are for the current simplified SDLC stages. Legacy stage prompts
2119
- // may still exist in DB (stage_prompts table) for backwards compatibility.
2120
- export const defaultStagePrompts: Record<string, { prompt: string; outputs: string[]; swarm?: boolean; provider?: string; model?: string; swarm_models?: SwarmModel[] }> = {
2121
- INTAKE: {
2122
- prompt: "New task. Triage, scope, and prepare for work.",
2123
- outputs: [],
2124
- swarm: false,
2125
- },
2126
- PROGRESS: {
2127
- prompt: "Task is actively being worked on.",
2128
- outputs: [],
2129
- swarm: false,
2130
- },
2131
- DONE: {
2132
- prompt: "Task completed.",
2133
- outputs: [],
2134
- swarm: false,
2135
- },
2136
- };
2137
-
2138
- // Default SDLC workflow ID for legacy support/migration
2139
- export const DEFAULT_WORKFLOW_ID = "00000000-0000-0000-0000-000000000001";
2140
-
2141
- export async function getStagePrompts(userId: string | undefined, workflowId: string): Promise<StagePrompt[]> {
2142
- const db = createAdminDbClient();
2143
-
2144
- let query = db
2145
- .from("stage_prompts")
2146
- .select("*")
2147
- .eq("workflow_id", workflowId)
2148
- .order("stage", { ascending: true });
2149
-
2150
- if (userId) {
2151
- query = query.or(`user_id.eq.${userId},is_default.eq.true`);
2152
- } else {
2153
- query = query.eq("is_default", true);
2154
- }
2155
-
2156
- const { data, error } = await query;
2157
- if (error) throw error;
2158
- return data || [];
2159
- }
2160
-
2161
- export async function getStagePrompt(stage: TaskStage, userId: string | undefined, workflowId: string): Promise<StagePrompt | null> {
2162
- const db = createAdminDbClient();
2163
-
2164
- // First try user-specific prompt
2165
- if (userId) {
2166
- const { data: userPrompt } = await db
2167
- .from("stage_prompts")
2168
- .select("*")
2169
- .eq("workflow_id", workflowId)
2170
- .eq("stage", stage)
2171
- .eq("user_id", userId)
2172
- .single();
2173
-
2174
- if (userPrompt) return userPrompt;
2175
- }
2176
-
2177
- // Fall back to default
2178
- const { data: defaultPrompt } = await db
2179
- .from("stage_prompts")
2180
- .select("*")
2181
- .eq("workflow_id", workflowId)
2182
- .eq("stage", stage)
2183
- .eq("is_default", true)
2184
- .single();
2185
-
2186
- return defaultPrompt || null;
2187
- }
2188
-
2189
- export async function upsertStagePrompt(
2190
- stage: TaskStage,
2191
- prompt: string,
2192
- outputs: string[] = [],
2193
- userId: string | undefined,
2194
- modelConfig: {
2195
- swarm?: boolean;
2196
- provider?: string;
2197
- model?: string;
2198
- swarm_models?: SwarmModel[];
2199
- } | undefined,
2200
- workflowId: string
2201
- ): Promise<StagePrompt> {
2202
- const db = createAdminDbClient();
2203
-
2204
- const payload: any = {
2205
- stage,
2206
- prompt,
2207
- outputs,
2208
- user_id: userId,
2209
- is_default: !userId,
2210
- workflow_id: workflowId,
2211
- };
2212
-
2213
- if (modelConfig) {
2214
- if (modelConfig.swarm !== undefined) payload.swarm = modelConfig.swarm;
2215
- if (modelConfig.provider !== undefined) payload.provider = modelConfig.provider;
2216
- if (modelConfig.model !== undefined) payload.model = modelConfig.model;
2217
- if (modelConfig.swarm_models !== undefined) payload.swarm_models = modelConfig.swarm_models;
2218
- }
2219
-
2220
- const { data, error } = await db
2221
- .from("stage_prompts")
2222
- .upsert(payload, {
2223
- onConflict: userId ? "workflow_id,stage,user_id" : "workflow_id,stage,is_default",
2224
- })
2225
- .select()
2226
- .single();
2227
-
2228
- if (error) throw error;
2229
- return data;
2230
- }
2231
-
2232
- export async function deleteStagePrompt(id: string, userId?: string): Promise<void> {
2233
- const db = createAdminDbClient();
2234
- let query = db.from("stage_prompts").delete().eq("id", id);
2235
- if (userId) query = query.eq("user_id", userId);
2236
- const { error } = await query;
2237
- if (error) throw error;
2238
- }
2239
-
2240
- // ============ AGENTS ============
2241
-
2242
- export async function getAgents(userId: string): Promise<Agent[]> {
2243
- const db = createAdminDbClient();
2244
- const { data, error } = await db
2245
- .from("agents")
2246
- .select("*")
2247
- .eq("user_id", userId)
2248
- .order("created_at", { ascending: false });
2249
-
2250
- if (error) {
2251
- if (isMissingRelationError(error, "agents")) return [];
2252
- throw error;
2253
- }
2254
- return data || [];
2255
- }
2256
-
2257
- export async function getAgent(id: string, userId: string): Promise<Agent | null> {
2258
- const db = createAdminDbClient();
2259
- const { data, error } = await db
2260
- .from("agents")
2261
- .select("*")
2262
- .eq("id", id)
2263
- .eq("user_id", userId)
2264
- .maybeSingle();
2265
-
2266
- if (error) {
2267
- if (error.code === "PGRST116" || isMissingRelationError(error, "agents")) return null;
2268
- throw error;
2269
- }
2270
- return data;
2271
- }
2272
-
2273
- export async function getAgentSkills(agentId: string): Promise<AgentSkill[]> {
2274
- const db = createAdminDbClient();
2275
- const { data, error } = await db
2276
- .from("agent_skills")
2277
- .select("*")
2278
- .eq("agent_id", agentId)
2279
- .order("created_at", { ascending: true });
2280
-
2281
- if (error) {
2282
- if (isMissingRelationError(error, "agent_skills")) return [];
2283
- throw error;
2284
- }
2285
- return data || [];
2286
- }
2287
-
2288
- export async function setAgentSkills(
2289
- agentId: string,
2290
- skills: Array<{ file: string; condition?: string }>
2291
- ): Promise<AgentSkill[]> {
2292
- const db = createAdminDbClient();
2293
- const normalized = new Map<string, { agent_id: string; file: string; condition: string | null }>();
2294
- for (const skill of skills) {
2295
- const file = skill.file.trim();
2296
- if (!file) continue;
2297
- normalized.set(file, {
2298
- agent_id: agentId,
2299
- file,
2300
- condition: skill.condition?.trim() || null,
2301
- });
2302
- }
2303
-
2304
- const existing = await getAgentSkills(agentId);
2305
- for (const skill of existing) {
2306
- if (!normalized.has(skill.file)) {
2307
- const { error } = await db
2308
- .from("agent_skills")
2309
- .delete()
2310
- .eq("agent_id", agentId)
2311
- .eq("file", skill.file);
2312
- if (error && !isMissingRelationError(error, "agent_skills")) throw error;
2313
- }
2314
- }
2315
-
2316
- for (const entry of normalized.values()) {
2317
- const existingSkill = existing.find((skill) => skill.file === entry.file);
2318
- if (!existingSkill) {
2319
- const { error } = await db.from("agent_skills").insert(entry);
2320
- if (error && !isMissingRelationError(error, "agent_skills")) throw error;
2321
- continue;
2322
- }
2323
- if ((existingSkill.condition ?? null) !== entry.condition) {
2324
- const { error } = await db
2325
- .from("agent_skills")
2326
- .update({ condition: entry.condition })
2327
- .eq("agent_id", agentId)
2328
- .eq("file", entry.file);
2329
- if (error && !isMissingRelationError(error, "agent_skills")) throw error;
2330
- }
2331
- }
2332
-
2333
- return getAgentSkills(agentId);
2334
- }
2335
-
2336
- export async function createAgent(
2337
- userId: string,
2338
- input: {
2339
- id?: string;
2340
- name: string;
2341
- role?: string;
2342
- style: AgentStyle;
2343
- description?: string;
2344
- voice?: string;
2345
- seed?: string;
2346
- model?: string;
2347
- provider?: string;
2348
- color?: string;
2349
- }
2350
- ): Promise<Agent> {
2351
- const db = createAdminDbClient();
2352
-
2353
- const payload: Record<string, unknown> = {
2354
- user_id: userId,
2355
- name: input.name,
2356
- style: input.style,
2357
- description: input.description ?? null,
2358
- };
2359
- if (input.id !== undefined) payload.id = input.id;
2360
- if (input.role !== undefined) payload.role = input.role;
2361
- if (input.voice !== undefined) payload.voice = input.voice;
2362
- if (input.seed !== undefined) payload.seed = input.seed;
2363
- if (input.model !== undefined) payload.model = input.model;
2364
- if (input.provider !== undefined) payload.provider = input.provider;
2365
- if (input.color !== undefined) payload.color = input.color;
2366
-
2367
- const { data, error } = await db
2368
- .from("agents")
2369
- .insert(payload)
2370
- .select()
2371
- .single();
2372
-
2373
- if (error) {
2374
- if (isMissingRelationError(error, "agents")) {
2375
- throw new Error("Agents table does not exist");
2376
- }
2377
- throw error;
2378
- }
2379
- return data;
2380
- }
2381
-
2382
- export async function updateAgent(
2383
- id: string,
2384
- userId: string,
2385
- input: {
2386
- name?: string;
2387
- role?: string;
2388
- style?: AgentStyle;
2389
- description?: string;
2390
- voice?: string;
2391
- seed?: string;
2392
- model?: string;
2393
- provider?: string;
2394
- color?: string;
2395
- }
2396
- ): Promise<Agent | null> {
2397
- const db = createAdminDbClient();
2398
-
2399
- const updatePayload: Record<string, unknown> = { updated_at: new Date().toISOString() };
2400
- if (input.name !== undefined) updatePayload.name = input.name;
2401
- if (input.role !== undefined) updatePayload.role = input.role;
2402
- if (input.style !== undefined) updatePayload.style = input.style;
2403
- if (input.description !== undefined) updatePayload.description = input.description;
2404
- if (input.voice !== undefined) updatePayload.voice = input.voice;
2405
- if (input.seed !== undefined) updatePayload.seed = input.seed;
2406
- if (input.model !== undefined) updatePayload.model = input.model;
2407
- if (input.provider !== undefined) updatePayload.provider = input.provider;
2408
- if (input.color !== undefined) updatePayload.color = input.color;
2409
-
2410
- // Remove timestamp if nothing else changed
2411
- if (Object.keys(updatePayload).length === 1) {
2412
- return getAgent(id, userId);
2413
- }
2414
-
2415
- const { data, error } = await db
2416
- .from("agents")
2417
- .update(updatePayload)
2418
- .eq("id", id)
2419
- .eq("user_id", userId)
2420
- .select()
2421
- .single();
2422
-
2423
- if (error) {
2424
- if (error.code === "PGRST116" || isMissingRelationError(error, "agents")) return null;
2425
- throw error;
2426
- }
2427
- return data;
2428
- }
2429
-
2430
- export async function deleteAgent(id: string, userId: string): Promise<void> {
2431
- const db = createAdminDbClient();
2432
- const { error } = await db
2433
- .from("agents")
2434
- .delete()
2435
- .eq("id", id)
2436
- .eq("user_id", userId);
2437
-
2438
- if (error) {
2439
- if (!isMissingRelationError(error, "agents")) {
2440
- throw error;
2441
- }
2442
- }
2443
- }
2444
-
2445
- // ============ PROJECT AGENTS ============
2446
-
2447
- export async function getProjectAgents(projectId: string): Promise<ProjectAgent[]> {
2448
- const db = createAdminDbClient();
2449
- const { data, error } = await db
2450
- .from("project_agents")
2451
- .select("*")
2452
- .eq("project_id", projectId)
2453
- .order("routing_order", { ascending: true });
2454
-
2455
- if (error) {
2456
- if (isMissingRelationError(error, "project_agents")) return [];
2457
- throw error;
2458
- }
2459
- return data || [];
2460
- }
2461
-
2462
- export async function addProjectAgent(
2463
- projectId: string,
2464
- agentId: string,
2465
- routingOrder?: number
2466
- ): Promise<ProjectAgent> {
2467
- const db = createAdminDbClient();
2468
-
2469
- if (routingOrder === undefined) {
2470
- const { data: existing } = await db
2471
- .from("project_agents")
2472
- .select("routing_order")
2473
- .eq("project_id", projectId)
2474
- .order("routing_order", { ascending: false })
2475
- .limit(1);
2476
- routingOrder = (existing?.[0]?.routing_order ?? -1) + 1;
2477
- }
2478
-
2479
- const { data, error } = await db
2480
- .from("project_agents")
2481
- .upsert({ project_id: projectId, agent_id: agentId, routing_order: routingOrder })
2482
- .select()
2483
- .single();
2484
-
2485
- if (error) throw error;
2486
- return data;
2487
- }
2488
-
2489
- export async function removeProjectAgent(projectId: string, agentId: string): Promise<void> {
2490
- const db = createAdminDbClient();
2491
- const { error } = await db
2492
- .from("project_agents")
2493
- .delete()
2494
- .eq("project_id", projectId)
2495
- .eq("agent_id", agentId);
2496
- if (error) throw error;
2497
- }
2498
-
2499
- export async function reorderProjectAgents(
2500
- projectId: string,
2501
- orderedAgentIds: string[]
2502
- ): Promise<ProjectAgent[]> {
2503
- const db = createAdminDbClient();
2504
- for (let i = 0; i < orderedAgentIds.length; i++) {
2505
- await db
2506
- .from("project_agents")
2507
- .update({ routing_order: i })
2508
- .eq("project_id", projectId)
2509
- .eq("agent_id", orderedAgentIds[i]);
2510
- }
2511
- return getProjectAgents(projectId);
2512
- }
2513
-
2514
- // ============ TEAMS ============
2515
-
2516
- export async function getTeams(projectId: string): Promise<Team[]> {
2517
- const db = createAdminDbClient();
2518
- const { data, error } = await db
2519
- .from("teams")
2520
- .select("*")
2521
- .eq("project_id", projectId)
2522
- .order("created_at", { ascending: true });
2523
-
2524
- if (error) {
2525
- if (isMissingRelationError(error, "teams")) return [];
2526
- throw error;
2527
- }
2528
- return (data || []).map((row: Record<string, unknown>) => ({
2529
- ...row,
2530
- metadata: typeof row.metadata === "string" ? JSON.parse(row.metadata as string) : (row.metadata || {}),
2531
- })) as Team[];
2532
- }
2533
-
2534
- export async function getTeam(teamId: string): Promise<Team | null> {
2535
- const db = createAdminDbClient();
2536
- const { data, error } = await db
2537
- .from("teams")
2538
- .select("*")
2539
- .eq("id", teamId)
2540
- .limit(1)
2541
- .single();
2542
-
2543
- if (error) {
2544
- if (error.code === "PGRST116" || isMissingRelationError(error, "teams")) return null;
2545
- throw error;
2546
- }
2547
- if (!data) return null;
2548
- return {
2549
- ...data,
2550
- metadata: typeof data.metadata === "string" ? JSON.parse(data.metadata as string) : (data.metadata || {}),
2551
- } as Team;
2552
- }
2553
-
2554
- export async function createTeam(
2555
- projectId: string,
2556
- name: string,
2557
- templateId?: string,
2558
- metadata?: Record<string, unknown>
2559
- ): Promise<Team> {
2560
- const db = createAdminDbClient();
2561
- const id = randomUUID();
2562
- const now = new Date().toISOString();
2563
- const { data, error } = await db
2564
- .from("teams")
2565
- .insert({
2566
- id,
2567
- project_id: projectId,
2568
- name,
2569
- template_id: templateId || null,
2570
- metadata: JSON.stringify(metadata || {}),
2571
- created_at: now,
2572
- updated_at: now,
2573
- })
2574
- .select()
2575
- .single();
2576
-
2577
- if (error) throw error;
2578
- return {
2579
- ...data,
2580
- metadata: typeof data.metadata === "string" ? JSON.parse(data.metadata as string) : (data.metadata || {}),
2581
- } as Team;
2582
- }
2583
-
2584
- export async function updateTeam(
2585
- teamId: string,
2586
- updates: { name?: string; metadata?: Record<string, unknown> }
2587
- ): Promise<Team | null> {
2588
- const db = createAdminDbClient();
2589
- const payload: Record<string, unknown> = {};
2590
- if (updates.name !== undefined) payload.name = updates.name;
2591
- if (updates.metadata !== undefined) payload.metadata = JSON.stringify(updates.metadata);
2592
-
2593
- const { data, error } = await db
2594
- .from("teams")
2595
- .update(payload)
2596
- .eq("id", teamId)
2597
- .select()
2598
- .single();
2599
-
2600
- if (error) {
2601
- if (error.code === "PGRST116") return null;
2602
- throw error;
2603
- }
2604
- return {
2605
- ...data,
2606
- metadata: typeof data.metadata === "string" ? JSON.parse(data.metadata as string) : (data.metadata || {}),
2607
- } as Team;
2608
- }
2609
-
2610
- export async function deleteTeam(teamId: string): Promise<void> {
2611
- const db = createAdminDbClient();
2612
- const { error } = await db
2613
- .from("teams")
2614
- .delete()
2615
- .eq("id", teamId);
2616
- if (error) throw error;
2617
- }
2618
-
2619
- export async function getTeamAgents(teamId: string): Promise<TeamAgent[]> {
2620
- const db = createAdminDbClient();
2621
- const { data, error } = await db
2622
- .from("team_agents")
2623
- .select("*")
2624
- .eq("team_id", teamId)
2625
- .order("routing_order", { ascending: true });
2626
-
2627
- if (error) {
2628
- if (isMissingRelationError(error, "team_agents")) return [];
2629
- throw error;
2630
- }
2631
- return data || [];
2632
- }
2633
-
2634
- export async function addTeamAgent(
2635
- teamId: string,
2636
- agentId: string,
2637
- roleKey: string,
2638
- routingOrder?: number
2639
- ): Promise<TeamAgent> {
2640
- const db = createAdminDbClient();
2641
-
2642
- if (routingOrder === undefined) {
2643
- const { data: existing } = await db
2644
- .from("team_agents")
2645
- .select("routing_order")
2646
- .eq("team_id", teamId)
2647
- .order("routing_order", { ascending: false })
2648
- .limit(1);
2649
- routingOrder = (existing?.[0]?.routing_order ?? -1) + 1;
2650
- }
2651
-
2652
- const { data, error } = await db
2653
- .from("team_agents")
2654
- .upsert({ team_id: teamId, agent_id: agentId, role_key: roleKey, routing_order: routingOrder })
2655
- .select()
2656
- .single();
2657
-
2658
- if (error) throw error;
2659
- return data;
2660
- }
2661
-
2662
- export async function removeTeamAgent(teamId: string, agentId: string): Promise<void> {
2663
- const db = createAdminDbClient();
2664
- const { error } = await db
2665
- .from("team_agents")
2666
- .delete()
2667
- .eq("team_id", teamId)
2668
- .eq("agent_id", agentId);
2669
- if (error) throw error;
2670
- }
2671
-
2672
- // ============ PROJECT SKILLS ============
2673
-
2674
- export async function getProjectSkills(projectId: string): Promise<ProjectSkill[]> {
2675
- const db = createAdminDbClient();
2676
- const { data, error } = await db
2677
- .from("project_skills")
2678
- .select("*")
2679
- .eq("project_id", projectId)
2680
- .order("created_at", { ascending: true });
2681
-
2682
- if (error) {
2683
- if (isMissingRelationError(error, "project_skills")) return [];
2684
- throw error;
2685
- }
2686
- return data || [];
2687
- }
2688
-
2689
- export async function addProjectSkill(
2690
- projectId: string,
2691
- file: string,
2692
- condition?: string
2693
- ): Promise<ProjectSkill> {
2694
- const db = createAdminDbClient();
2695
- const { data, error } = await db
2696
- .from("project_skills")
2697
- .insert({ project_id: projectId, file, condition: condition ?? null })
2698
- .select()
2699
- .single();
2700
-
2701
- if (error) throw error;
2702
- return data;
2703
- }
2704
-
2705
- export async function removeProjectSkill(skillId: string): Promise<void> {
2706
- const db = createAdminDbClient();
2707
- const { error } = await db.from("project_skills").delete().eq("id", skillId);
2708
- if (error) throw error;
2709
- }
2710
-
2711
- // ============ PROJECT VARIABLES ============
2712
-
2713
- export async function getProjectVariables(projectId: string): Promise<ProjectVariable[]> {
2714
- const db = createAdminDbClient();
2715
- const { data, error } = await db
2716
- .from("project_variables")
2717
- .select("*")
2718
- .eq("project_id", projectId);
2719
-
2720
- if (error) {
2721
- if (isMissingRelationError(error, "project_variables")) return [];
2722
- throw error;
2723
- }
2724
- return data || [];
2725
- }
2726
-
2727
- export async function setProjectVariable(
2728
- projectId: string,
2729
- key: string,
2730
- value: string
2731
- ): Promise<ProjectVariable> {
2732
- const db = createAdminDbClient();
2733
- const { data, error } = await db
2734
- .from("project_variables")
2735
- .upsert({ project_id: projectId, key, value })
2736
- .select()
2737
- .single();
2738
-
2739
- if (error) throw error;
2740
- return data;
2741
- }
2742
-
2743
- export async function deleteProjectVariable(projectId: string, key: string): Promise<void> {
2744
- const db = createAdminDbClient();
2745
- const { error } = await db
2746
- .from("project_variables")
2747
- .delete()
2748
- .eq("project_id", projectId)
2749
- .eq("key", key);
2750
- if (error) throw error;
2751
- }
2752
-
2753
- // ============ PROJECT MEMORY ============
2754
-
2755
- export async function getProjectMemory(
2756
- projectId: string,
2757
- producer?: "human" | "system"
2758
- ): Promise<ProjectMemory[]> {
2759
- void producer;
2760
- return vaultStore.getProjectMemory(projectId);
2761
- }
2762
-
2763
- export async function addProjectMemory(
2764
- projectId: string,
2765
- content: string,
2766
- source?: string,
2767
- producer: "human" | "system" = "human"
2768
- ): Promise<ProjectMemory> {
2769
- return vaultStore.addProjectMemory(projectId, content, source, producer);
2770
- }
2771
-
2772
- export async function deleteProjectMemory(memoryId: string): Promise<void> {
2773
- vaultStore.deleteProjectMemory(memoryId);
2774
- }
2775
-
2776
- // ============ PROJECT THREADS ============
2777
-
2778
- export async function getProjectThreads(projectId: string): Promise<ProjectThread[]> {
2779
- const db = createAdminDbClient();
2780
- const { data, error } = await db
2781
- .from("project_threads")
2782
- .select("*")
2783
- .eq("project_id", projectId)
2784
- .order("created_at", { ascending: true });
2785
-
2786
- if (error) {
2787
- if (isMissingRelationError(error, "project_threads")) return [];
2788
- throw error;
2789
- }
2790
- return data || [];
2791
- }
2792
-
2793
- export async function addProjectThread(projectId: string, threadId: string): Promise<ProjectThread> {
2794
- const db = createAdminDbClient();
2795
- const { error } = await db
2796
- .from("project_threads")
2797
- .upsert(
2798
- { project_id: projectId, thread_id: threadId },
2799
- { onConflict: "project_id,thread_id", ignoreDuplicates: true }
2800
- );
2801
-
2802
- if (error) throw error;
2803
-
2804
- const { data, error: fetchError } = await db
2805
- .from("project_threads")
2806
- .select("*")
2807
- .eq("project_id", projectId)
2808
- .eq("thread_id", threadId)
2809
- .single();
2810
-
2811
- if (fetchError) throw fetchError;
2812
- return data;
2813
- }
2814
-
2815
- export async function removeProjectThread(projectId: string, threadId: string): Promise<void> {
2816
- const db = createAdminDbClient();
2817
- const { error } = await db
2818
- .from("project_threads")
2819
- .delete()
2820
- .eq("project_id", projectId)
2821
- .eq("thread_id", threadId);
2822
-
2823
- if (error) throw error;
2824
- }
2825
-
2826
- export async function getProjectForThread(threadId: string): Promise<string | null> {
2827
- const db = createAdminDbClient();
2828
- const { data, error } = await db
2829
- .from("project_threads")
2830
- .select("project_id")
2831
- .eq("thread_id", threadId)
2832
- .maybeSingle();
2833
-
2834
- if (error) {
2835
- if (isMissingRelationError(error, "project_threads")) return null;
2836
- return null;
2837
- }
2838
- return data?.project_id ?? null;
2839
- }
2840
-
2841
- // ============ SKILL RESOLUTION ENGINE ============
2842
-
2843
- /**
2844
- * Resolve skills for an agent in a project.
2845
- * Union of agent + project skills, with agent taking precedence on overlap.
2846
- * Overlap is determined by matching file basename.
2847
- */
2848
- export function resolveSkills(
2849
- agentSkills: Array<{ file: string; condition?: string }>,
2850
- projectSkills: ProjectSkill[]
2851
- ): SkillProvenance[] {
2852
- const result: SkillProvenance[] = [];
2853
- const agentFileNames = new Set<string>();
2854
-
2855
- // Agent skills take precedence
2856
- for (const skill of agentSkills) {
2857
- const basename = skill.file.split("/").pop() || skill.file;
2858
- agentFileNames.add(basename);
2859
- result.push({ file: skill.file, condition: skill.condition, source: "agent" });
2860
- }
2861
-
2862
- // Project skills fill gaps (only if no agent skill with same basename)
2863
- for (const skill of projectSkills) {
2864
- const basename = skill.file.split("/").pop() || skill.file;
2865
- if (!agentFileNames.has(basename)) {
2866
- result.push({ file: skill.file, condition: skill.condition ?? undefined, source: "project" });
2867
- }
2868
- }
2869
-
2870
- return result;
2871
- }
2872
-
2873
- // ============ MEMORY RESOLUTION ENGINE ============
2874
-
2875
- /**
2876
- * Resolve memory for an agent in a project.
2877
- * Union of agent global memory + project memory, project takes precedence on conflict.
2878
- */
2879
- export function resolveMemory(
2880
- agentMemory: Array<{ content: string; id?: string }>,
2881
- projectMemory: ProjectMemory[]
2882
- ): MemoryProvenance[] {
2883
- const result: MemoryProvenance[] = [];
2884
-
2885
- // Project memory first (higher precedence)
2886
- for (const mem of projectMemory) {
2887
- result.push({ content: mem.content, source: "project", id: mem.id });
2888
- }
2889
-
2890
- // Agent memory fills in
2891
- for (const mem of agentMemory) {
2892
- result.push({ content: mem.content, source: "agent", id: mem.id });
2893
- }
2894
-
2895
- return result;
2896
- }
2897
-
2898
- // ============ VARIABLE INJECTION ============
2899
-
2900
- /**
2901
- * Load project variables and format as provenance-tracked entries.
2902
- */
2903
- export async function resolveVariables(
2904
- projectId: string
2905
- ): Promise<Array<{ key: string; value: string; source: "project" }>> {
2906
- const vars = await getProjectVariables(projectId);
2907
- return vars.map((v) => ({ key: v.key, value: v.value, source: "project" as const }));
2908
- }
2909
-
2910
- // ============ EXECUTION PROVENANCE ============
2911
-
2912
- /**
2913
- * Build full execution provenance for an agent running in a project.
2914
- * Records the source of every resolved input for auditability.
2915
- */
2916
- export async function buildExecutionProvenance(
2917
- agentId: string,
2918
- projectId: string,
2919
- agentSkills: Array<{ file: string; condition?: string }>,
2920
- agentMemoryEntries: Array<{ content: string; id?: string }>
2921
- ): Promise<ExecutionProvenance> {
2922
- const projectSkills = await getProjectSkills(projectId);
2923
- const projectMem = await getProjectMemory(projectId);
2924
- const variables = await resolveVariables(projectId);
2925
-
2926
- return {
2927
- skills: resolveSkills(agentSkills, projectSkills),
2928
- memory: resolveMemory(agentMemoryEntries, projectMem),
2929
- variables,
2930
- };
2931
- }
1
+ export * from "./db/index";