@mndrk/agx 2.0.38 → 2.0.39

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 (440) hide show
  1. package/cloud-runtime/standalone/.next/BUILD_ID +1 -1
  2. package/cloud-runtime/standalone/.next/build-manifest.json +4 -4
  3. package/cloud-runtime/standalone/.next/prerender-manifest.json +3 -3
  4. package/cloud-runtime/standalone/.next/required-server-files.json +4 -4
  5. package/cloud-runtime/standalone/.next/server/app/_global-error/page/build-manifest.json +2 -2
  6. package/cloud-runtime/standalone/.next/server/app/_global-error.html +2 -2
  7. package/cloud-runtime/standalone/.next/server/app/_global-error.rsc +1 -1
  8. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  9. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  10. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  11. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  12. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  13. package/cloud-runtime/standalone/.next/server/app/_not-found/page/build-manifest.json +2 -2
  14. package/cloud-runtime/standalone/.next/server/app/_not-found.html +2 -2
  15. package/cloud-runtime/standalone/.next/server/app/_not-found.rsc +1 -1
  16. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  17. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  18. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  19. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  20. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  21. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  22. package/cloud-runtime/standalone/.next/server/app/agents/[id]/page/build-manifest.json +2 -2
  23. package/cloud-runtime/standalone/.next/server/app/agents/page/build-manifest.json +2 -2
  24. package/cloud-runtime/standalone/.next/server/app/agents.html +2 -2
  25. package/cloud-runtime/standalone/.next/server/app/agents.rsc +1 -1
  26. package/cloud-runtime/standalone/.next/server/app/agents.segments/_full.segment.rsc +1 -1
  27. package/cloud-runtime/standalone/.next/server/app/agents.segments/_head.segment.rsc +1 -1
  28. package/cloud-runtime/standalone/.next/server/app/agents.segments/_index.segment.rsc +1 -1
  29. package/cloud-runtime/standalone/.next/server/app/agents.segments/_tree.segment.rsc +1 -1
  30. package/cloud-runtime/standalone/.next/server/app/agents.segments/agents/__PAGE__.segment.rsc +1 -1
  31. package/cloud-runtime/standalone/.next/server/app/agents.segments/agents.segment.rsc +1 -1
  32. package/cloud-runtime/standalone/.next/server/app/api/agent-specs/route.js.nft.json +1 -1
  33. package/cloud-runtime/standalone/.next/server/app/api/agents/[id]/profile/route.js.nft.json +1 -1
  34. package/cloud-runtime/standalone/.next/server/app/api/agents/export/route.js.nft.json +1 -1
  35. package/cloud-runtime/standalone/.next/server/app/api/automations/create/route.js.nft.json +1 -1
  36. package/cloud-runtime/standalone/.next/server/app/api/automations/route.js.nft.json +1 -1
  37. package/cloud-runtime/standalone/.next/server/app/api/chat/route.js.nft.json +1 -1
  38. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/route.js.nft.json +1 -1
  39. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/[id]/signal/route.js.nft.json +1 -1
  40. package/cloud-runtime/standalone/.next/server/app/api/chat-runs/route.js.nft.json +1 -1
  41. package/cloud-runtime/standalone/.next/server/app/api/file-search/route.js.nft.json +1 -1
  42. package/cloud-runtime/standalone/.next/server/app/api/graphs/[graphId]/nodes/[nodeId]/route.js.nft.json +1 -1
  43. package/cloud-runtime/standalone/.next/server/app/api/health/route.js.nft.json +1 -1
  44. package/cloud-runtime/standalone/.next/server/app/api/history/route.js.nft.json +1 -1
  45. package/cloud-runtime/standalone/.next/server/app/api/history/status/route.js.nft.json +1 -1
  46. package/cloud-runtime/standalone/.next/server/app/api/knowledge-notes/route.js.nft.json +1 -1
  47. package/cloud-runtime/standalone/.next/server/app/api/learnings/route.js.nft.json +1 -1
  48. package/cloud-runtime/standalone/.next/server/app/api/logs/route.js.nft.json +1 -1
  49. package/cloud-runtime/standalone/.next/server/app/api/logs/stream/route.js.nft.json +1 -1
  50. package/cloud-runtime/standalone/.next/server/app/api/memories/route.js.nft.json +1 -1
  51. package/cloud-runtime/standalone/.next/server/app/api/messages/[id]/route.js.nft.json +1 -1
  52. package/cloud-runtime/standalone/.next/server/app/api/migrate/teams-to-projects/route.js.nft.json +1 -1
  53. package/cloud-runtime/standalone/.next/server/app/api/migrate/workspaces-to-projects/route.js.nft.json +1 -1
  54. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/cancel/route.js.nft.json +1 -1
  55. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/signal/route.js.nft.json +1 -1
  56. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/start/route.js.nft.json +1 -1
  57. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/status/route.js.nft.json +1 -1
  58. package/cloud-runtime/standalone/.next/server/app/api/participants/route.js.nft.json +1 -1
  59. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/agents/route.js.nft.json +1 -1
  60. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/memory/route.js.nft.json +1 -1
  61. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v1/route.js.nft.json +1 -1
  62. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v2/route.js.nft.json +1 -1
  63. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
  64. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/skills/route.js.nft.json +1 -1
  65. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/threads/route.js.nft.json +1 -1
  66. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/variables/route.js.nft.json +1 -1
  67. package/cloud-runtime/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
  68. package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/cancel/route.js.nft.json +1 -1
  69. package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/route.js.nft.json +1 -1
  70. package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/runs/route.js.nft.json +1 -1
  71. package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/agents/route.js.nft.json +1 -1
  72. package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/poll/route.js.nft.json +1 -1
  73. package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/route.js.nft.json +1 -1
  74. package/cloud-runtime/standalone/.next/server/app/api/queue/complete/route.js.nft.json +1 -1
  75. package/cloud-runtime/standalone/.next/server/app/api/queue/route.js.nft.json +1 -1
  76. package/cloud-runtime/standalone/.next/server/app/api/reactions/route.js.nft.json +1 -1
  77. package/cloud-runtime/standalone/.next/server/app/api/repos/[id]/knowledge/route.js.nft.json +1 -1
  78. package/cloud-runtime/standalone/.next/server/app/api/schedules/debug/route.js.nft.json +1 -1
  79. package/cloud-runtime/standalone/.next/server/app/api/schedules/poll/route.js.nft.json +1 -1
  80. package/cloud-runtime/standalone/.next/server/app/api/schedules/route.js.nft.json +1 -1
  81. package/cloud-runtime/standalone/.next/server/app/api/search/route.js.nft.json +1 -1
  82. package/cloud-runtime/standalone/.next/server/app/api/skills/assign/route.js.nft.json +1 -1
  83. package/cloud-runtime/standalone/.next/server/app/api/skills/available/route.js.nft.json +1 -1
  84. package/cloud-runtime/standalone/.next/server/app/api/skills/detail/route.js.nft.json +1 -1
  85. package/cloud-runtime/standalone/.next/server/app/api/skills/history/route.js.nft.json +1 -1
  86. package/cloud-runtime/standalone/.next/server/app/api/skills/learn/route.js.nft.json +1 -1
  87. package/cloud-runtime/standalone/.next/server/app/api/skills/route.js.nft.json +1 -1
  88. package/cloud-runtime/standalone/.next/server/app/api/skills/unlearn/route.js.nft.json +1 -1
  89. package/cloud-runtime/standalone/.next/server/app/api/summarize/route.js.nft.json +1 -1
  90. package/cloud-runtime/standalone/.next/server/app/api/system/db-status/route.js.nft.json +1 -1
  91. package/cloud-runtime/standalone/.next/server/app/api/task-drafts/route.js.nft.json +1 -1
  92. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js.nft.json +1 -1
  93. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/route.js.nft.json +1 -1
  94. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/costs/route.js.nft.json +1 -1
  95. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/dependencies/route.js.nft.json +1 -1
  96. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/events/route.js.nft.json +1 -1
  97. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/history/route.js.nft.json +1 -1
  98. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/metrics/route.js.nft.json +1 -1
  99. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/pause/route.js.nft.json +1 -1
  100. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/replan/route.js.nft.json +1 -1
  101. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/restart/route.js.nft.json +1 -1
  102. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/resume/route.js.nft.json +1 -1
  103. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/rollback/route.js.nft.json +1 -1
  104. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/route.js.nft.json +1 -1
  105. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/schedule/route.js.nft.json +1 -1
  106. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/start/route.js.nft.json +1 -1
  107. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/stop/route.js.nft.json +1 -1
  108. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/heartbeat/route.js.nft.json +1 -1
  109. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/history/route.js.nft.json +1 -1
  110. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/logs/route.js.nft.json +1 -1
  111. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/logs/stream/route.js.nft.json +1 -1
  112. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/comments/route.js.nft.json +1 -1
  113. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/complete/route.js.nft.json +1 -1
  114. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/fail/route.js.nft.json +1 -1
  115. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/resume/route.js.nft.json +1 -1
  116. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/start/route.js.nft.json +1 -1
  117. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/stop/route.js.nft.json +1 -1
  118. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js.nft.json +1 -1
  119. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
  120. package/cloud-runtime/standalone/.next/server/app/api/tasks/assign-orphans/route.js.nft.json +1 -1
  121. package/cloud-runtime/standalone/.next/server/app/api/tasks/extract/route.js.nft.json +1 -1
  122. package/cloud-runtime/standalone/.next/server/app/api/tasks/route.js.nft.json +1 -1
  123. package/cloud-runtime/standalone/.next/server/app/api/tasks/stream/route.js.nft.json +1 -1
  124. package/cloud-runtime/standalone/.next/server/app/api/thread-repos/route.js.nft.json +1 -1
  125. package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route.js.nft.json +1 -1
  126. package/cloud-runtime/standalone/.next/server/app/api/threads/route.js.nft.json +1 -1
  127. package/cloud-runtime/standalone/.next/server/app/api/user-settings/route.js.nft.json +1 -1
  128. package/cloud-runtime/standalone/.next/server/app/automations/page/build-manifest.json +2 -2
  129. package/cloud-runtime/standalone/.next/server/app/automations.html +2 -2
  130. package/cloud-runtime/standalone/.next/server/app/automations.rsc +1 -1
  131. package/cloud-runtime/standalone/.next/server/app/automations.segments/_full.segment.rsc +1 -1
  132. package/cloud-runtime/standalone/.next/server/app/automations.segments/_head.segment.rsc +1 -1
  133. package/cloud-runtime/standalone/.next/server/app/automations.segments/_index.segment.rsc +1 -1
  134. package/cloud-runtime/standalone/.next/server/app/automations.segments/_tree.segment.rsc +1 -1
  135. package/cloud-runtime/standalone/.next/server/app/automations.segments/automations/__PAGE__.segment.rsc +1 -1
  136. package/cloud-runtime/standalone/.next/server/app/automations.segments/automations.segment.rsc +1 -1
  137. package/cloud-runtime/standalone/.next/server/app/board/page/build-manifest.json +2 -2
  138. package/cloud-runtime/standalone/.next/server/app/board.html +2 -2
  139. package/cloud-runtime/standalone/.next/server/app/board.rsc +1 -1
  140. package/cloud-runtime/standalone/.next/server/app/board.segments/_full.segment.rsc +1 -1
  141. package/cloud-runtime/standalone/.next/server/app/board.segments/_head.segment.rsc +1 -1
  142. package/cloud-runtime/standalone/.next/server/app/board.segments/_index.segment.rsc +1 -1
  143. package/cloud-runtime/standalone/.next/server/app/board.segments/_tree.segment.rsc +1 -1
  144. package/cloud-runtime/standalone/.next/server/app/board.segments/board/__PAGE__.segment.rsc +1 -1
  145. package/cloud-runtime/standalone/.next/server/app/board.segments/board.segment.rsc +1 -1
  146. package/cloud-runtime/standalone/.next/server/app/execution-graph/page/build-manifest.json +2 -2
  147. package/cloud-runtime/standalone/.next/server/app/execution-graph.html +2 -2
  148. package/cloud-runtime/standalone/.next/server/app/execution-graph.rsc +1 -1
  149. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_full.segment.rsc +1 -1
  150. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_head.segment.rsc +1 -1
  151. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_index.segment.rsc +1 -1
  152. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_tree.segment.rsc +1 -1
  153. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/execution-graph/__PAGE__.segment.rsc +1 -1
  154. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/execution-graph.segment.rsc +1 -1
  155. package/cloud-runtime/standalone/.next/server/app/index.html +2 -2
  156. package/cloud-runtime/standalone/.next/server/app/index.rsc +1 -1
  157. package/cloud-runtime/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  158. package/cloud-runtime/standalone/.next/server/app/index.segments/_full.segment.rsc +1 -1
  159. package/cloud-runtime/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  160. package/cloud-runtime/standalone/.next/server/app/index.segments/_index.segment.rsc +1 -1
  161. package/cloud-runtime/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  162. package/cloud-runtime/standalone/.next/server/app/page/build-manifest.json +2 -2
  163. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/automations/page/build-manifest.json +2 -2
  164. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/graph/[taskId]/page/build-manifest.json +2 -2
  165. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page/build-manifest.json +2 -2
  166. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/page/build-manifest.json +2 -2
  167. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page/build-manifest.json +2 -2
  168. package/cloud-runtime/standalone/.next/server/app/projects/orphans/page/build-manifest.json +2 -2
  169. package/cloud-runtime/standalone/.next/server/app/projects/orphans.html +2 -2
  170. package/cloud-runtime/standalone/.next/server/app/projects/orphans.rsc +1 -1
  171. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_full.segment.rsc +1 -1
  172. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_head.segment.rsc +1 -1
  173. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_index.segment.rsc +1 -1
  174. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_tree.segment.rsc +1 -1
  175. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects/orphans/__PAGE__.segment.rsc +1 -1
  176. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects/orphans.segment.rsc +1 -1
  177. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects.segment.rsc +1 -1
  178. package/cloud-runtime/standalone/.next/server/app/projects/page/build-manifest.json +2 -2
  179. package/cloud-runtime/standalone/.next/server/app/projects.html +2 -2
  180. package/cloud-runtime/standalone/.next/server/app/projects.rsc +1 -1
  181. package/cloud-runtime/standalone/.next/server/app/projects.segments/_full.segment.rsc +1 -1
  182. package/cloud-runtime/standalone/.next/server/app/projects.segments/_head.segment.rsc +1 -1
  183. package/cloud-runtime/standalone/.next/server/app/projects.segments/_index.segment.rsc +1 -1
  184. package/cloud-runtime/standalone/.next/server/app/projects.segments/_tree.segment.rsc +1 -1
  185. package/cloud-runtime/standalone/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +1 -1
  186. package/cloud-runtime/standalone/.next/server/app/projects.segments/projects.segment.rsc +1 -1
  187. package/cloud-runtime/standalone/.next/server/app/settings/page/build-manifest.json +2 -2
  188. package/cloud-runtime/standalone/.next/server/app/settings.html +2 -2
  189. package/cloud-runtime/standalone/.next/server/app/settings.rsc +1 -1
  190. package/cloud-runtime/standalone/.next/server/app/settings.segments/_full.segment.rsc +1 -1
  191. package/cloud-runtime/standalone/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  192. package/cloud-runtime/standalone/.next/server/app/settings.segments/_index.segment.rsc +1 -1
  193. package/cloud-runtime/standalone/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
  194. package/cloud-runtime/standalone/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +1 -1
  195. package/cloud-runtime/standalone/.next/server/app/settings.segments/settings.segment.rsc +1 -1
  196. package/cloud-runtime/standalone/.next/server/app/skills/page/build-manifest.json +2 -2
  197. package/cloud-runtime/standalone/.next/server/app/skills.html +2 -2
  198. package/cloud-runtime/standalone/.next/server/app/skills.rsc +1 -1
  199. package/cloud-runtime/standalone/.next/server/app/skills.segments/_full.segment.rsc +1 -1
  200. package/cloud-runtime/standalone/.next/server/app/skills.segments/_head.segment.rsc +1 -1
  201. package/cloud-runtime/standalone/.next/server/app/skills.segments/_index.segment.rsc +1 -1
  202. package/cloud-runtime/standalone/.next/server/app/skills.segments/_tree.segment.rsc +1 -1
  203. package/cloud-runtime/standalone/.next/server/app/skills.segments/skills/__PAGE__.segment.rsc +1 -1
  204. package/cloud-runtime/standalone/.next/server/app/skills.segments/skills.segment.rsc +1 -1
  205. package/cloud-runtime/standalone/.next/server/app/status/page/build-manifest.json +2 -2
  206. package/cloud-runtime/standalone/.next/server/app/status.html +2 -2
  207. package/cloud-runtime/standalone/.next/server/app/status.rsc +1 -1
  208. package/cloud-runtime/standalone/.next/server/app/status.segments/_full.segment.rsc +1 -1
  209. package/cloud-runtime/standalone/.next/server/app/status.segments/_head.segment.rsc +1 -1
  210. package/cloud-runtime/standalone/.next/server/app/status.segments/_index.segment.rsc +1 -1
  211. package/cloud-runtime/standalone/.next/server/app/status.segments/_tree.segment.rsc +1 -1
  212. package/cloud-runtime/standalone/.next/server/app/status.segments/status/__PAGE__.segment.rsc +1 -1
  213. package/cloud-runtime/standalone/.next/server/app/status.segments/status.segment.rsc +1 -1
  214. package/cloud-runtime/standalone/.next/server/app/thread/[id]/page/build-manifest.json +2 -2
  215. package/cloud-runtime/standalone/.next/server/app/welcome/page/build-manifest.json +2 -2
  216. package/cloud-runtime/standalone/.next/server/app/welcome.html +2 -2
  217. package/cloud-runtime/standalone/.next/server/app/welcome.rsc +1 -1
  218. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_full.segment.rsc +1 -1
  219. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_head.segment.rsc +1 -1
  220. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_index.segment.rsc +1 -1
  221. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_tree.segment.rsc +1 -1
  222. package/cloud-runtime/standalone/.next/server/app/welcome.segments/welcome/__PAGE__.segment.rsc +1 -1
  223. package/cloud-runtime/standalone/.next/server/app/welcome.segments/welcome.segment.rsc +1 -1
  224. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__01cd082e._.js +2 -2
  225. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__0936925d._.js +1 -1
  226. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__0c3dd73b._.js +6 -6
  227. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__1b0bb735._.js +2 -2
  228. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__1c86bf6e._.js +5 -5
  229. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__20c58b41._.js +2 -2
  230. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__2126c763._.js +2 -2
  231. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__255b11f2._.js +1 -1
  232. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__277ed37d._.js +1 -1
  233. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__2f06f568._.js +2 -2
  234. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__30bd0c87._.js +2 -2
  235. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__374cd94c._.js +2 -2
  236. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__3785024c._.js +2 -2
  237. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__379604d4._.js +2 -2
  238. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__3c8f1de6._.js +2 -2
  239. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__3d0df5a8._.js +2 -2
  240. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4014ed70._.js +7 -7
  241. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__42fcb81c._.js +16 -16
  242. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4a3cd6ac._.js +2 -2
  243. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4bce7db7._.js +23 -23
  244. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__4e522535._.js +2 -2
  245. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__50c24784._.js +1 -1
  246. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__50ddd3ce._.js +1 -1
  247. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__529a6e1c._.js +12 -12
  248. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__59d1cdd8._.js +1 -1
  249. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__628d686b._.js +1 -1
  250. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__644e6285._.js +3 -3
  251. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__65755104._.js +2 -2
  252. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__73c20995._.js +2 -2
  253. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__762ab29c._.js +3 -3
  254. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__8125bbc3._.js +6 -6
  255. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__85275b88._.js +1 -1
  256. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__89666394._.js +3 -3
  257. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__8c0fb154._.js +2 -2
  258. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__8f5cac13._.js +3 -3
  259. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__91b22098._.js +2 -2
  260. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__92924218._.js +2 -2
  261. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__96ae701e._.js +1 -1
  262. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__98ce983b._.js +1 -1
  263. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__9a9fd39f._.js +6 -6
  264. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__9ad4e385._.js +1 -1
  265. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__a01ddd0b._.js +3 -3
  266. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__a099c992._.js +14 -14
  267. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__a9b949c3._.js +2 -2
  268. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__af7a73fd._.js +1 -1
  269. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__bd43017b._.js +1 -1
  270. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__bf6fb108._.js +2 -2
  271. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c122c54a._.js +2 -2
  272. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c4ea4921._.js +1 -1
  273. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__d57e800e._.js +2 -2
  274. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__db469f1b._.js +1 -1
  275. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__dec3e1b7._.js +4 -4
  276. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__f1147a4a._.js +2 -2
  277. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__f5597fea._.js +2 -2
  278. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__f8c94cb3._.js +2 -2
  279. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__f9f7f2df._.js +2 -2
  280. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__fa79d53f._.js +11 -11
  281. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__fb14cd4a._.js +1 -1
  282. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__fcf0b40a._.js +1 -1
  283. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ffb21023._.js +2 -2
  284. package/cloud-runtime/standalone/.next/server/chunks/_17e53c87._.js +1 -1
  285. package/cloud-runtime/standalone/.next/server/middleware-build-manifest.js +2 -2
  286. package/cloud-runtime/standalone/.next/server/middleware-manifest.json +5 -5
  287. package/cloud-runtime/standalone/.next/server/pages/404.html +2 -2
  288. package/cloud-runtime/standalone/.next/server/pages/500.html +2 -2
  289. package/cloud-runtime/standalone/.next/server/server-reference-manifest.js +1 -1
  290. package/cloud-runtime/standalone/.next/server/server-reference-manifest.json +1 -1
  291. package/cloud-runtime/standalone/.next/static/chunks/{dfff51033c303fc7.js → ee5f1457fbc593e1.js} +1 -1
  292. package/cloud-runtime/standalone/.next/static/chunks/{turbopack-22475f0dd0c18f92.js → turbopack-e1d640f2fbe4fa5e.js} +1 -1
  293. package/cloud-runtime/standalone/coverage/clover.xml +1208 -0
  294. package/cloud-runtime/standalone/coverage/coverage-final.json +29 -0
  295. package/cloud-runtime/standalone/coverage/lcov-report/app/api/audit/index.html +116 -0
  296. package/cloud-runtime/standalone/coverage/lcov-report/app/api/audit/route.ts.html +208 -0
  297. package/cloud-runtime/standalone/coverage/lcov-report/app/api/auth/[...nextauth]/index.html +116 -0
  298. package/cloud-runtime/standalone/coverage/lcov-report/app/api/auth/[...nextauth]/route.ts.html +166 -0
  299. package/cloud-runtime/standalone/coverage/lcov-report/app/api/auth/daemon-secret/index.html +116 -0
  300. package/cloud-runtime/standalone/coverage/lcov-report/app/api/auth/daemon-secret/route.ts.html +532 -0
  301. package/cloud-runtime/standalone/coverage/lcov-report/app/api/auth/status/index.html +116 -0
  302. package/cloud-runtime/standalone/coverage/lcov-report/app/api/auth/status/route.ts.html +178 -0
  303. package/cloud-runtime/standalone/coverage/lcov-report/app/api/learnings/index.html +116 -0
  304. package/cloud-runtime/standalone/coverage/lcov-report/app/api/learnings/route.ts.html +262 -0
  305. package/cloud-runtime/standalone/coverage/lcov-report/app/api/logs/stream/index.html +116 -0
  306. package/cloud-runtime/standalone/coverage/lcov-report/app/api/logs/stream/route.ts.html +448 -0
  307. package/cloud-runtime/standalone/coverage/lcov-report/app/api/queue/complete/index.html +116 -0
  308. package/cloud-runtime/standalone/coverage/lcov-report/app/api/queue/complete/route.ts.html +331 -0
  309. package/cloud-runtime/standalone/coverage/lcov-report/app/api/queue/index.html +116 -0
  310. package/cloud-runtime/standalone/coverage/lcov-report/app/api/queue/route.ts.html +505 -0
  311. package/cloud-runtime/standalone/coverage/lcov-report/app/api/stage-prompts/index.html +116 -0
  312. package/cloud-runtime/standalone/coverage/lcov-report/app/api/stage-prompts/route.ts.html +412 -0
  313. package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/[id]/advance/index.html +116 -0
  314. package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/[id]/advance/route.ts.html +304 -0
  315. package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/[id]/index.html +116 -0
  316. package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/[id]/logs/index.html +116 -0
  317. package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/[id]/logs/route.ts.html +202 -0
  318. package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/[id]/route.ts.html +373 -0
  319. package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/index.html +116 -0
  320. package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/route.ts.html +499 -0
  321. package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/stream/index.html +116 -0
  322. package/cloud-runtime/standalone/coverage/lcov-report/app/api/tasks/stream/route.ts.html +349 -0
  323. package/cloud-runtime/standalone/coverage/lcov-report/base.css +224 -0
  324. package/cloud-runtime/standalone/coverage/lcov-report/block-navigation.js +87 -0
  325. package/cloud-runtime/standalone/coverage/lcov-report/components/AuthProvider.tsx.html +259 -0
  326. package/cloud-runtime/standalone/coverage/lcov-report/components/ChatInterface.tsx.html +1228 -0
  327. package/cloud-runtime/standalone/coverage/lcov-report/components/KanbanBoard.tsx.html +1024 -0
  328. package/cloud-runtime/standalone/coverage/lcov-report/components/Layout.tsx.html +211 -0
  329. package/cloud-runtime/standalone/coverage/lcov-report/components/LearningsPanel.tsx.html +535 -0
  330. package/cloud-runtime/standalone/coverage/lcov-report/components/LogTimeline.tsx.html +415 -0
  331. package/cloud-runtime/standalone/coverage/lcov-report/components/SortableTaskCard.tsx.html +358 -0
  332. package/cloud-runtime/standalone/coverage/lcov-report/components/StagePills.tsx.html +439 -0
  333. package/cloud-runtime/standalone/coverage/lcov-report/components/TaskCard.tsx.html +514 -0
  334. package/cloud-runtime/standalone/coverage/lcov-report/components/TaskCardOverlay.tsx.html +256 -0
  335. package/cloud-runtime/standalone/coverage/lcov-report/components/TaskDetail.tsx.html +622 -0
  336. package/cloud-runtime/standalone/coverage/lcov-report/components/TaskList.tsx.html +253 -0
  337. package/cloud-runtime/standalone/coverage/lcov-report/components/index.html +281 -0
  338. package/cloud-runtime/standalone/coverage/lcov-report/favicon.png +0 -0
  339. package/cloud-runtime/standalone/coverage/lcov-report/hooks/index.html +116 -0
  340. package/cloud-runtime/standalone/coverage/lcov-report/hooks/useTasks.ts.html +1042 -0
  341. package/cloud-runtime/standalone/coverage/lcov-report/index.html +341 -0
  342. package/cloud-runtime/standalone/coverage/lcov-report/lib/auth-client.ts.html +202 -0
  343. package/cloud-runtime/standalone/coverage/lcov-report/lib/auth-server.ts.html +172 -0
  344. package/cloud-runtime/standalone/coverage/lcov-report/lib/auth.ts.html +265 -0
  345. package/cloud-runtime/standalone/coverage/lcov-report/lib/db.ts.html +1252 -0
  346. package/cloud-runtime/standalone/coverage/lcov-report/lib/index.html +131 -0
  347. package/cloud-runtime/standalone/coverage/lcov-report/lib/orchestrator.ts.html +409 -0
  348. package/cloud-runtime/standalone/coverage/lcov-report/lib/security.ts.html +1165 -0
  349. package/cloud-runtime/standalone/coverage/lcov-report/lib/supabase-server.ts.html +175 -0
  350. package/cloud-runtime/standalone/coverage/lcov-report/lib/supabase.ts.html +157 -0
  351. package/cloud-runtime/standalone/coverage/lcov-report/prettify.css +1 -0
  352. package/cloud-runtime/standalone/coverage/lcov-report/prettify.js +2 -0
  353. package/cloud-runtime/standalone/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  354. package/cloud-runtime/standalone/coverage/lcov-report/sorter.js +210 -0
  355. package/cloud-runtime/standalone/coverage/lcov.info +2386 -0
  356. package/cloud-runtime/standalone/docs/LIMITS.md +63 -0
  357. package/cloud-runtime/standalone/docs/architecture/ADR-001-hybrid-to-full-sqlite.md +345 -0
  358. package/cloud-runtime/standalone/docs/baseline/baseline-report.json +1009 -0
  359. package/cloud-runtime/standalone/docs/baseline/critical-queries.md +105 -0
  360. package/cloud-runtime/standalone/docs/baseline/lock-metrics.json +21 -0
  361. package/cloud-runtime/standalone/docs/baseline/read-latency.json +146 -0
  362. package/cloud-runtime/standalone/docs/baseline/restore-time.json +10 -0
  363. package/cloud-runtime/standalone/docs/baseline/write-metrics.json +803 -0
  364. package/cloud-runtime/standalone/docs/decisions/sqlite-migration-adr.md +327 -0
  365. package/cloud-runtime/standalone/docs/error-code-mapping.md +74 -0
  366. package/cloud-runtime/standalone/docs/migration-plan.md +120 -0
  367. package/cloud-runtime/standalone/docs/migration-spec.md +345 -0
  368. package/cloud-runtime/standalone/docs/pg-sqlite-compatibility-matrix.md +554 -0
  369. package/cloud-runtime/standalone/docs/project-agent-migration-status.md +229 -0
  370. package/cloud-runtime/standalone/docs/runbook-shadow-read.md +66 -0
  371. package/cloud-runtime/standalone/docs/runbook.md +155 -0
  372. package/cloud-runtime/standalone/docs/specs/cli-postgres-removal.md +69 -0
  373. package/cloud-runtime/standalone/docs/specs/thread-mentions.md +53 -0
  374. package/cloud-runtime/standalone/docs/superpowers/plans/2026-04-01-prompt-scheduler.md +1907 -0
  375. package/cloud-runtime/standalone/docs/superpowers/plans/2026-04-02-sqlite-migration.md +1047 -0
  376. package/cloud-runtime/standalone/docs/transcript.txt +282 -0
  377. package/cloud-runtime/standalone/docs/ux/GlobalChatFlow.storyboard +23 -0
  378. package/cloud-runtime/standalone/docs/ux/assistant-chat-cli.md +32 -0
  379. package/cloud-runtime/standalone/instrumentation.ts +32 -0
  380. package/cloud-runtime/standalone/mcp/dist/constants.js +66 -0
  381. package/cloud-runtime/standalone/mcp/dist/db.js +220 -0
  382. package/cloud-runtime/standalone/mcp/dist/index.js +7 -0
  383. package/cloud-runtime/standalone/mcp/dist/security.js +18 -0
  384. package/cloud-runtime/standalone/mcp/dist/server.js +240 -0
  385. package/cloud-runtime/standalone/mcp/dist/task-context.js +287 -0
  386. package/cloud-runtime/standalone/mcp/dist/test-client.js +82 -0
  387. package/cloud-runtime/standalone/mcp/dist/tools/audit.js +69 -0
  388. package/cloud-runtime/standalone/mcp/dist/tools/learnings.js +88 -0
  389. package/cloud-runtime/standalone/mcp/dist/tools/queue.js +312 -0
  390. package/cloud-runtime/standalone/mcp/dist/tools/tasks.js +244 -0
  391. package/cloud-runtime/standalone/mcp/dist/types.js +74 -0
  392. package/cloud-runtime/standalone/node_modules/@img/sharp-darwin-arm64/lib/sharp-darwin-arm64.node +0 -0
  393. package/cloud-runtime/standalone/node_modules/@img/{sharp-linux-x64 → sharp-darwin-arm64}/package.json +7 -13
  394. package/cloud-runtime/standalone/node_modules/@img/{sharp-libvips-linux-x64 → sharp-libvips-darwin-arm64}/README.md +2 -2
  395. package/cloud-runtime/standalone/node_modules/@img/{sharp-libvips-linux-x64 → sharp-libvips-darwin-arm64}/lib/glib-2.0/include/glibconfig.h +8 -9
  396. package/cloud-runtime/standalone/node_modules/@img/{sharp-libvips-linux-x64/lib/libvips-cpp.so.8.17.3 → sharp-libvips-darwin-arm64/lib/libvips-cpp.8.17.3.dylib} +0 -0
  397. package/cloud-runtime/standalone/node_modules/@img/{sharp-libvips-linux-x64 → sharp-libvips-darwin-arm64}/package.json +5 -11
  398. package/cloud-runtime/standalone/notes/comments-context-demo.md +141 -0
  399. package/cloud-runtime/standalone/notes/comments-context-plan.md +119 -0
  400. package/cloud-runtime/standalone/notes/context-audit.md +21 -0
  401. package/cloud-runtime/standalone/notes/project-layer-plan.md +30 -0
  402. package/cloud-runtime/standalone/notes/project-layer.md +123 -0
  403. package/cloud-runtime/standalone/notes/temporal-migration-design.md +199 -0
  404. package/cloud-runtime/standalone/playwright-report/data/00d55996f37c1506b90144c85493dd85032c13e5.png +0 -0
  405. package/cloud-runtime/standalone/playwright-report/data/0b9d409e57237ae111d7ba258d3dfe64dc368456.png +0 -0
  406. package/cloud-runtime/standalone/playwright-report/data/b33d5e80a15bd1deda4415b9d318ef73f581c950.png +0 -0
  407. package/cloud-runtime/standalone/playwright-report/data/b55684161aa440d0614595e13c91338f0420abbb.md +131 -0
  408. package/cloud-runtime/standalone/playwright-report/data/b9913957ae07e7565c38ddd71215be79b1ceb017.png +0 -0
  409. package/cloud-runtime/standalone/playwright-report/data/c3538be8ebbebc9fe4a7df8f12f04483af4a0d91.png +0 -0
  410. package/cloud-runtime/standalone/playwright-report/data/fe638f64ff5e36f1c30325564565662d3f57da87.md +180 -0
  411. package/cloud-runtime/standalone/playwright-report/index.html +85 -0
  412. package/cloud-runtime/standalone/server.js +1 -1
  413. package/cloud-runtime/standalone/test-results/auth-Authentication-Flow-S-aff25-sion-across-page-navigation-chromium/test-failed-1.png +0 -0
  414. package/cloud-runtime/standalone/test-results/comments-Task-comments-add-4dc59-nd-persists-it-for-the-task-chromium/error-context.md +131 -0
  415. package/cloud-runtime/standalone/test-results/comments-Task-comments-add-4dc59-nd-persists-it-for-the-task-chromium/test-failed-1.png +0 -0
  416. package/cloud-runtime/standalone/test-results/kanban-Kanban-Board-Stage--4082a-er-planning-after-ideation--chromium/error-context.md +180 -0
  417. package/cloud-runtime/standalone/test-results/kanban-Kanban-Board-Stage--4082a-er-planning-after-ideation--chromium/test-failed-1.png +0 -0
  418. package/cloud-runtime/standalone/test-results/kanban-Kanban-Board-Stage-Columns-displays-all-9-SDLC-stages-chromium/error-context.md +180 -0
  419. package/cloud-runtime/standalone/test-results/kanban-Kanban-Board-Stage-Columns-displays-all-9-SDLC-stages-chromium/test-failed-1.png +0 -0
  420. package/cloud-runtime/standalone/test-results/kanban-Kanban-Board-Task-D-b6d98-ys-tasks-in-correct-columns-chromium/error-context.md +180 -0
  421. package/cloud-runtime/standalone/test-results/kanban-Kanban-Board-Task-D-b6d98-ys-tasks-in-correct-columns-chromium/test-failed-1.png +0 -0
  422. package/cloud-runtime/standalone/test-results/kanban-Kanban-Board-Task-Display-shows-task-count-per-column-chromium/test-failed-1.png +0 -0
  423. package/cloud-runtime/standalone/test-results/kanban-Task-Lifecycle-can-advance-task-through-all-stages-chromium/test-failed-1.png +0 -0
  424. package/cloud-runtime/standalone/tsconfig.json +1 -2
  425. package/cloud-runtime/standalone/tsconfig.tsbuildinfo +1 -0
  426. package/package.json +1 -1
  427. package/cloud-runtime/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/README.md +0 -46
  428. package/cloud-runtime/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/glib-2.0/include/glibconfig.h +0 -221
  429. package/cloud-runtime/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/index.js +0 -1
  430. package/cloud-runtime/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/lib/libvips-cpp.so.8.17.3 +0 -0
  431. package/cloud-runtime/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/package.json +0 -42
  432. package/cloud-runtime/standalone/node_modules/@img/sharp-libvips-linuxmusl-x64/versions.json +0 -30
  433. package/cloud-runtime/standalone/node_modules/@img/sharp-linux-x64/lib/sharp-linux-x64.node +0 -0
  434. package/cloud-runtime/standalone/node_modules/@img/sharp-linuxmusl-x64/lib/sharp-linuxmusl-x64.node +0 -0
  435. package/cloud-runtime/standalone/node_modules/@img/sharp-linuxmusl-x64/package.json +0 -46
  436. /package/cloud-runtime/standalone/.next/static/{V5ruh627UpcC-LTWDgYk8 → 9PXl40CrFxI8nirdJ1A-T}/_buildManifest.js +0 -0
  437. /package/cloud-runtime/standalone/.next/static/{V5ruh627UpcC-LTWDgYk8 → 9PXl40CrFxI8nirdJ1A-T}/_clientMiddlewareManifest.json +0 -0
  438. /package/cloud-runtime/standalone/.next/static/{V5ruh627UpcC-LTWDgYk8 → 9PXl40CrFxI8nirdJ1A-T}/_ssgManifest.js +0 -0
  439. /package/cloud-runtime/standalone/node_modules/@img/{sharp-libvips-linux-x64 → sharp-libvips-darwin-arm64}/lib/index.js +0 -0
  440. /package/cloud-runtime/standalone/node_modules/@img/{sharp-libvips-linux-x64 → sharp-libvips-darwin-arm64}/versions.json +0 -0
@@ -0,0 +1,74 @@
1
+ export const STAGE_ORDER = [
2
+ "ideation",
3
+ "planning",
4
+ "coding",
5
+ "qa",
6
+ "acceptance",
7
+ "pr",
8
+ "pr_review",
9
+ "merge",
10
+ "done",
11
+ ];
12
+ /**
13
+ * Resolves task configuration by merging task-level settings with stage-level defaults.
14
+ * Task settings take precedence.
15
+ */
16
+ export function resolveTaskConfig(task, stageConfig) {
17
+ const provider = task.provider || stageConfig?.provider || "unspecified";
18
+ const model = task.model || stageConfig?.model || "unspecified";
19
+ const swarm = task.swarm ?? stageConfig?.swarm ?? false;
20
+ const swarm_models = task.swarm_models?.length ? task.swarm_models : (stageConfig?.swarm_models || []);
21
+ return {
22
+ provider,
23
+ model,
24
+ swarm,
25
+ swarm_models,
26
+ };
27
+ }
28
+ // Parse YAML frontmatter from markdown
29
+ export function parseFrontmatter(markdown) {
30
+ const match = markdown.match(/^---\n([\s\S]*?)\n---\n([\s\S]*)$/);
31
+ if (!match) {
32
+ return { frontmatter: {}, body: markdown };
33
+ }
34
+ const frontmatter = {};
35
+ const lines = match[1].split('\n');
36
+ for (const line of lines) {
37
+ const colonIndex = line.indexOf(':');
38
+ if (colonIndex > 0) {
39
+ const key = line.slice(0, colonIndex).trim();
40
+ const value = line.slice(colonIndex + 1).trim();
41
+ // Parse numbers and booleans
42
+ if (value === 'true')
43
+ frontmatter[key] = true;
44
+ else if (value === 'false')
45
+ frontmatter[key] = false;
46
+ else if (/^\d+$/.test(value))
47
+ frontmatter[key] = parseInt(value);
48
+ else
49
+ frontmatter[key] = value;
50
+ }
51
+ }
52
+ return { frontmatter, body: match[2] };
53
+ }
54
+ // Extract title from markdown (first H1)
55
+ export function extractTitle(markdown) {
56
+ const { body } = parseFrontmatter(markdown);
57
+ const match = body.match(/^#\s+(.+)$/m);
58
+ return match ? match[1] : undefined;
59
+ }
60
+ // Build content from frontmatter and body
61
+ export function buildContent(frontmatter, body) {
62
+ const frontmatterStr = Object.entries(frontmatter)
63
+ .map(([k, v]) => `${k}: ${v}`)
64
+ .join("\n");
65
+ return `---\n${frontmatterStr}\n---\n${body}`;
66
+ }
67
+ // Get next SDLC stage
68
+ export function getNextStage(currentStage) {
69
+ const index = STAGE_ORDER.indexOf(currentStage);
70
+ if (index === -1 || index >= STAGE_ORDER.length - 1)
71
+ return null;
72
+ return STAGE_ORDER[index + 1];
73
+ }
74
+ //# sourceMappingURL=types.js.map
@@ -1,13 +1,13 @@
1
1
  {
2
- "name": "@img/sharp-linux-x64",
2
+ "name": "@img/sharp-darwin-arm64",
3
3
  "version": "0.34.5",
4
- "description": "Prebuilt sharp for use with Linux (glibc) x64",
4
+ "description": "Prebuilt sharp for use with macOS 64-bit ARM",
5
5
  "author": "Lovell Fuller <npm@lovell.info>",
6
6
  "homepage": "https://sharp.pixelplumbing.com",
7
7
  "repository": {
8
8
  "type": "git",
9
9
  "url": "git+https://github.com/lovell/sharp.git",
10
- "directory": "npm/linux-x64"
10
+ "directory": "npm/darwin-arm64"
11
11
  },
12
12
  "license": "Apache-2.0",
13
13
  "funding": {
@@ -15,7 +15,7 @@
15
15
  },
16
16
  "preferUnplugged": true,
17
17
  "optionalDependencies": {
18
- "@img/sharp-libvips-linux-x64": "1.2.4"
18
+ "@img/sharp-libvips-darwin-arm64": "1.2.4"
19
19
  },
20
20
  "files": [
21
21
  "lib"
@@ -25,22 +25,16 @@
25
25
  },
26
26
  "type": "commonjs",
27
27
  "exports": {
28
- "./sharp.node": "./lib/sharp-linux-x64.node",
28
+ "./sharp.node": "./lib/sharp-darwin-arm64.node",
29
29
  "./package": "./package.json"
30
30
  },
31
31
  "engines": {
32
32
  "node": "^18.17.0 || ^20.3.0 || >=21.0.0"
33
33
  },
34
- "config": {
35
- "glibc": ">=2.26"
36
- },
37
34
  "os": [
38
- "linux"
39
- ],
40
- "libc": [
41
- "glibc"
35
+ "darwin"
42
36
  ],
43
37
  "cpu": [
44
- "x64"
38
+ "arm64"
45
39
  ]
46
40
  }
@@ -1,6 +1,6 @@
1
- # `@img/sharp-libvips-linux-x64`
1
+ # `@img/sharp-libvips-darwin-arm64`
2
2
 
3
- Prebuilt libvips and dependencies for use with sharp on Linux (glibc) x64.
3
+ Prebuilt libvips and dependencies for use with sharp on macOS 64-bit ARM.
4
4
 
5
5
  ## Licensing
6
6
 
@@ -63,15 +63,15 @@ typedef unsigned int guint32;
63
63
 
64
64
  #define G_HAVE_GINT64 1 /* deprecated, always true */
65
65
 
66
- typedef signed long gint64;
67
- typedef unsigned long guint64;
66
+ G_GNUC_EXTENSION typedef signed long long gint64;
67
+ G_GNUC_EXTENSION typedef unsigned long long guint64;
68
68
 
69
- #define G_GINT64_CONSTANT(val) (val##L)
70
- #define G_GUINT64_CONSTANT(val) (val##UL)
69
+ #define G_GINT64_CONSTANT(val) (G_GNUC_EXTENSION (val##LL))
70
+ #define G_GUINT64_CONSTANT(val) (G_GNUC_EXTENSION (val##ULL))
71
71
 
72
- #define G_GINT64_MODIFIER "l"
73
- #define G_GINT64_FORMAT "li"
74
- #define G_GUINT64_FORMAT "lu"
72
+ #define G_GINT64_MODIFIER "ll"
73
+ #define G_GINT64_FORMAT "lli"
74
+ #define G_GUINT64_FORMAT "llu"
75
75
 
76
76
 
77
77
  #define GLIB_SIZEOF_VOID_P 8
@@ -121,7 +121,6 @@ typedef unsigned long guintptr;
121
121
 
122
122
  #define G_VA_COPY va_copy
123
123
 
124
- #define G_VA_COPY_AS_ARRAY 1
125
124
 
126
125
  #define G_HAVE_ISO_VARARGS 1
127
126
 
@@ -203,7 +202,7 @@ typedef int GPid;
203
202
 
204
203
  #define GLIB_SYSDEF_AF_UNIX 1
205
204
  #define GLIB_SYSDEF_AF_INET 2
206
- #define GLIB_SYSDEF_AF_INET6 10
205
+ #define GLIB_SYSDEF_AF_INET6 30
207
206
 
208
207
  #define GLIB_SYSDEF_MSG_OOB 1
209
208
  #define GLIB_SYSDEF_MSG_PEEK 2
@@ -1,13 +1,13 @@
1
1
  {
2
- "name": "@img/sharp-libvips-linux-x64",
2
+ "name": "@img/sharp-libvips-darwin-arm64",
3
3
  "version": "1.2.4",
4
- "description": "Prebuilt libvips and dependencies for use with sharp on Linux (glibc) x64",
4
+ "description": "Prebuilt libvips and dependencies for use with sharp on macOS 64-bit ARM",
5
5
  "author": "Lovell Fuller <npm@lovell.info>",
6
6
  "homepage": "https://sharp.pixelplumbing.com",
7
7
  "repository": {
8
8
  "type": "git",
9
9
  "url": "git+https://github.com/lovell/sharp-libvips.git",
10
- "directory": "npm/linux-x64"
10
+ "directory": "npm/darwin-arm64"
11
11
  },
12
12
  "license": "LGPL-3.0-or-later",
13
13
  "funding": {
@@ -27,16 +27,10 @@
27
27
  "./package": "./package.json",
28
28
  "./versions": "./versions.json"
29
29
  },
30
- "config": {
31
- "glibc": ">=2.26"
32
- },
33
30
  "os": [
34
- "linux"
35
- ],
36
- "libc": [
37
- "glibc"
31
+ "darwin"
38
32
  ],
39
33
  "cpu": [
40
- "x64"
34
+ "arm64"
41
35
  ]
42
36
  }
@@ -0,0 +1,141 @@
1
+ # Demo: Task Comments as Execution Context
2
+
3
+ ## What was built
4
+ - Task comments are part of signed execution context.
5
+ - `lib/task-context.ts` composes prompt context with a `COMMENTS` section and computes `comments_digest` (SHA-256 over ordered comments).
6
+ - Signed payload producers re-compute digest and re-sign when comments change:
7
+ - `POST /api/tasks/[id]/comments`
8
+ - `DELETE /api/tasks/[id]/comments/[commentId]`
9
+ - `GET /api/tasks/[id]`
10
+ - `POST /api/queue` (pull)
11
+ - MCP `tasks.get` and `queue.pull`
12
+ - Signature includes `comments_digest`, so stale signatures are invalid after comment mutations.
13
+
14
+ ## Acceptance status (2026-02-07)
15
+ - E2E blocked in this sandbox by port restrictions (cannot bind localhost on `127.0.0.1:3100`).
16
+ - Cloud sync blocked in this sandbox: `tsx` IPC socket bind blocked.
17
+ - Rerun in an environment that allows localhost binds + IPC sockets and has DB credentials, then record results here.
18
+
19
+ ## Local setup (required for demo)
20
+ 1. Install dependencies:
21
+ ```bash
22
+ npm install
23
+ ```
24
+ 2. Configure env:
25
+ ```bash
26
+ cp .env.example .env.local
27
+ # Fill in DB values for:
28
+ # - NEXT_PUBLIC_DB_URL (or DB_URL)
29
+ # - DB_SERVICE_ROLE_KEY
30
+ ```
31
+ 3. Run dev server:
32
+ ```bash
33
+ npm run dev
34
+ ```
35
+ Expected:
36
+ - App available at `http://localhost:3000`.
37
+ - Auth + task data load via DB.
38
+
39
+ ## Demo (UI)
40
+ 1. Start the app: `npm run dev`
41
+ 2. Open dashboard and select a task.
42
+ 3. Add a comment in `Comments`.
43
+ 4. Confirm it appears in timeline.
44
+ 5. Refresh and verify prompt/context now includes the comment.
45
+
46
+ Expected:
47
+ - `COMMENTS` section includes the new entry.
48
+ - `comments_digest` changes after each comment mutation.
49
+ - Returned `signature` matches the new digest.
50
+
51
+ ## Demo (API)
52
+ 1. Add comment:
53
+ ```bash
54
+ curl -X POST "http://localhost:3000/api/tasks/<taskId>/comments" \
55
+ -H "Content-Type: application/json" \
56
+ -H "Authorization: Bearer <access_token>" \
57
+ -d '{"content":"Add context here"}'
58
+ ```
59
+ 2. Fetch task:
60
+ ```bash
61
+ curl -X GET "http://localhost:3000/api/tasks/<taskId>" \
62
+ -H "Authorization: Bearer <access_token>"
63
+ ```
64
+ 3. Verify:
65
+ - `comments_digest` present and updated.
66
+ - `context.prompt` contains `COMMENTS`.
67
+ - `signature` changes when digest changes.
68
+
69
+ ## Demo (Queue/MCP)
70
+ 1. Pull via queue (`POST /api/queue`) or MCP (`queue.pull`).
71
+ 2. Verify returned prompt includes `COMMENTS` and digest/signature fields.
72
+ 3. Add another comment and pull again; verify digest/signature roll forward.
73
+
74
+ ## E2E (Playwright) — rerun commands
75
+ ```bash
76
+ npm run test:e2e:sandbox -- e2e/comments.spec.ts
77
+ ```
78
+ If you are not in a sandbox and want to override host/port:
79
+ ```bash
80
+ SANDBOX=1 CLOUD_SYNC_DISABLED=1 E2E_HOST=0.0.0.0 E2E_PORT=3101 npx playwright test e2e/comments.spec.ts
81
+ ```
82
+ Expected:
83
+ - Playwright starts Next.js dev server.
84
+ - Browser flow creates a comment and validates digest/signature changes.
85
+
86
+ ## Cloud sync (MCP log) — rerun commands
87
+ ```bash
88
+ export DB_URL="https://<project>.db.co"
89
+ export DB_SERVICE_ROLE_KEY="<service-role-key>"
90
+ node mcp/tmp-log.mjs
91
+ ```
92
+ Expected:
93
+ - MCP tool connects and writes a task log entry for this acceptance run.
94
+
95
+ ## Evidence (this environment)
96
+ - `npm run test:e2e:sandbox -- e2e/comments.spec.ts` failed (Next.js web server did not start; no URL visited):
97
+ - Command output:
98
+ - `> agx-cloud@0.1.0 test:e2e:sandbox`
99
+ - `> SANDBOX=1 CLOUD_SYNC_DISABLED=1 E2E_HOST=127.0.0.1 E2E_PORT=3100 playwright test e2e/comments.spec.ts`
100
+ - `[WebServer] (node:11097) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.`
101
+ - `[WebServer] (Use \`node --trace-warnings ...\` to show where the warning was created)`
102
+ - `[WebServer] ⚠ Warning: Next.js inferred your workspace root, but it may not be correct.`
103
+ - `[WebServer] We detected multiple lockfiles and selected the directory of /Users/mendrika/package-lock.json as the root directory.`
104
+ - `[WebServer] Detected additional lockfiles:`
105
+ - `[WebServer] * /Users/mendrika/Projects/Agents/agx-cloud/package-lock.json`
106
+ - `[WebServer] (node:11098) Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env being set.`
107
+ - `[WebServer] (Use \`node --trace-warnings ...\` to show where the warning was created)`
108
+ - `[WebServer] ⨯ Failed to start server`
109
+ - `[WebServer] Error: listen EPERM: operation not permitted 127.0.0.1:3100`
110
+ - `[WebServer] at <unknown> (Error: listen EPERM: operation not permitted 127.0.0.1:3100) {`
111
+ - `[WebServer] code: 'EPERM'`
112
+ - `[WebServer] errno: -1`
113
+ - `[WebServer] syscall: 'listen'`
114
+ - `[WebServer] address: '127.0.0.1'`
115
+ - `[WebServer] port: 3100`
116
+ - `[WebServer] }`
117
+ - `Error: Process from config.webServer exited early.`
118
+ - `DB_URL=https://iicvrgtzktvsrestfqif.db.co DB_SERVICE_ROLE_KEY="<service-role-key>" node mcp/tmp-log.mjs` failed (IPC socket blocked):
119
+ - Command output:
120
+ - `Error: listen EPERM: operation not permitted /tmp/tsx-501/11143.pipe`
121
+ - `at Server.setupListenHandle [as _listen2] (node:net:1918:21)`
122
+ - `at listenInCluster (node:net:1997:12)`
123
+ - `at Server.listen (node:net:2119:5)`
124
+ - `at file:///Users/mendrika/Projects/Agents/agx-cloud/mcp/node_modules/tsx/dist/cli.mjs:53:31537`
125
+ - `code: 'EPERM' errno: -1 syscall: 'listen' address: '/tmp/tsx-501/11143.pipe'`
126
+ - `Node.js v25.5.0`
127
+ - `Failed to log via MCP: McpError: MCP error -32000: Connection closed`
128
+ - `at McpError.fromError (file:///Users/mendrika/Projects/Agents/agx-cloud/mcp/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js:2035:16)`
129
+ - `at Client._onclose (file:///Users/mendrika/Projects/Agents/agx-cloud/mcp/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js:259:32)`
130
+ - `at _transport.onclose (file:///Users/mendrika/Projects/Agents/agx-cloud/mcp/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js:223:18)`
131
+ - `at ChildProcess.<anonymous> (file:///Users/mendrika/Projects/Agents/agx-cloud/mcp/node_modules/@modelcontextprotocol/sdk/dist/esm/client/stdio.js:85:31)`
132
+ - `at ChildProcess.emit (node:events:508:20)`
133
+ - `at maybeClose (node:internal/child_process:1084:16)`
134
+ - `at ChildProcess._handle.onexit (node:internal/child_process:304:5) {`
135
+ - `code: -32000`
136
+ - `data: undefined`
137
+ - `}`
138
+
139
+ ## Notes
140
+ - Comments beginning with `[execution/` or `Execution result from agx` are excluded from prompt context.
141
+ - Clients should treat signature/digest mismatch as fatal and re-pull task context before continuing execution.
@@ -0,0 +1,119 @@
1
+ # Comments as execution context (ideation)
2
+
3
+ ## Goal
4
+ - Ensure task comments become first-class context that cloud-signed tasks hand to agents, and document the scope for the implementation work.
5
+
6
+ ## Current state summary
7
+ - A dedicated `task_comments` table exists, plus a React timeline (`LogTimeline`) and API routes (`/api/tasks/[id]/comments`) to fetch/add comments.
8
+ - `lib/task-context.ts` builds a prompt that already includes `COMMENTS` and computes a `comments_digest` that is injected into the signed payload in `/api/queue`.
9
+ - The digest is covered by the HMAC implementation (`signTask`/`verifyTaskSignature`), and unit tests already assert digest changes affect the signature.
10
+
11
+ ## Identified gaps
12
+ 1. The MCP server (cloud API used by CLI/aggregator) still only returns task frontmatter; it neither fetches comment rows nor re-signs with digest, so CLI/agents pulling via MCP lose the context and security binding.
13
+ 2. Daemon/CLI workflows currently depend on db-reachable APIs; adding comment context requires confirming the aggregator pulls the new prompt/`comments_digest` instead of reusing stale signatures.
14
+ 3. There is no documented procedure for ensuring user comments trigger a new signed context before the daemon executes (the queue route handles it, but we should double-check aggregator flows).
15
+
16
+ ## Progress since last review
17
+ - `queue/pull` already builds and signs the full task context (prompt + `comments_digest`) when marking tasks as in_progress.
18
+ - `tasks/get` now uses `buildTaskContext`, so MCP clients retrieving a task receive the same comment/learning context and digest that the queue path returns.
19
+ - Added regression coverage for `/api/tasks/[id]` GET that mocks `buildTaskContext` and asserts the comments/`comments_digest` payload is merged before returning the task, ensuring the API surface matches what daemons receive.
20
+
21
+ ## Research takeaways (this turn)
22
+ - `queue/pull` calls `buildTaskContext`, so each pull loads the latest comments/learnings/stage prompt, recomputes `comments_digest`, and re-signs (and persists) the task signature whenever the digest changes, keeping the daemon-bound payload consistent with on-disk comments.
23
+ - `/api/queue` already has regression coverage showing that updating the digest triggers a new HMAC signature and persistence, which means any CLI/aggregator hitting that endpoint will automatically receive the refreshed signature once comments mutate.
24
+ - `tasks/get` invokes `buildTaskContext` and merges the resulting prompt/digest into the API response, so MCP clients that re-fetch a task while waiting for work receive the same signed context the daemon executes with.
25
+ - The same `buildTaskContext` helper is shared by `queue/pull` and `tasks/get`, ensuring future changes to comment rendering or digest computation stay in sync across daemon queue pulls and CLI/task fetches.
26
+
27
+
28
+ ## Updated approach
29
+ 1. Keep MCP queue pulls responsible for signing the comment-bound digest and persisting the new signature whenever the digest changes.
30
+ 2. Mirror the same context-building logic in MCP `tasks/get` so any client fetching a task still sees the digest and prompt the daemon will execute with.
31
+ 3. Document the expectations for comments as signed context, including how clients should handle new/edited comments (re-fetch, re-validate signature) and what happens if a comment arrives while the daemon is running.
32
+ 4. Surface tests (or test ideas) that exercise adding a comment, recomputing the digest, and ensuring the queued signature updates so we can catch regressions.
33
+
34
+ ## Signed comment expectations (cloud context)
35
+
36
+ - `buildTaskContext` already concatenates the comments timeline, the current stage prompt, and required learnings before returning `comments_digest`. Any cloud-signed payload (`/api/queue`, `queue/pull`, etc.) must go through this helper so the daemon sees the most recent instructions.
37
+ - When a user posts a comment through `/api/tasks/[id]/comments`, the route re-runs `buildTaskContext`, extracts the refreshed `comments_digest`, and re-signs the task before persisting it (see the `signTask` call inside the POST handler). That ensures the stored signature always reflects the comment set that will drive execution.
38
+ - Clients that mutate comments—whether via the web UI or the MCP `tasks/log`/`tasks/comments` tools—should immediately re-fetch `/api/tasks/[id]` or the MCP `tasks/get` result to pull the rebuilt prompt, the new `comments_digest`, and the updated signature. If the signed payload differs from what the daemon previously received, treat it as a signal to halt the running work and pull again once the new context is verified.
39
+ - Aggregators and daemons must continue to verify signatures on every queue pull. Because the signature covers `comments_digest`, replaying a cached signature after a comment change should surface as a verification failure, preventing execution with an outdated instruction set.
40
+ - Operators should expect that comments can arrive mid-run; the safest workflow is to re-verify or re-pull whenever a comment mutation is observed, and to rely on the queue path’s automatic re-signing to keep the daemon-bound payload consistent.
41
+
42
+ ## Example request/response flows
43
+
44
+ 1. **Comment addition:**
45
+ - **Request:** `POST /api/tasks/123/comments` with body `{
46
+ "body": "Agent, please prioritize the new issue.",
47
+ "user_id": "user-abc"
48
+ }`.
49
+ - **Actions:** handler inserts the comment, calls `buildTaskContext(task)`, picks up the new `COMMENTS` section and digest, then signs the refreshed payload (including `comments_digest`) before updating `tasks.signature`.
50
+ - **Response:** `{
51
+ "id": 123,
52
+ "comments_digest": "sha256-xyz",
53
+ "signature": "hmac-abc",
54
+ "context": {
55
+ "prompt": "...COMMENTS...",
56
+ "comments": [...]
57
+ }
58
+ }` (clients should treat `signature`/`comments_digest` as the new ground truth and discard any cached payload tied to the previous digest).
59
+
60
+ 2. **Daemon queue pull:**
61
+ - **Request:** `POST /api/queue/pull` with daemon credentials and the task ID it is about to execute.
62
+ - **Actions:** queue route rebuilds the task context, recomputes `comments_digest`, and, if the digest differs from the stored value, re-signs and persists the task. The endpoint returns the signed payload so the daemon runs the latest prompt+comments.
63
+ - **Response:** same structure as the stored task but with the current `comments_digest` and `signature`. The daemon must verify the signature before executing and, if verification fails, abort and re-pull.
64
+
65
+ 3. **MCP task fetch:**
66
+ - **Request:** `GET /mcp/tasks/get?task_id=123` (or the equivalent CLI `tasks/get`).
67
+ - **Actions:** MCP `tasks.get` calls `buildTaskContext`, merges the `comments_digest` and prompt into the payload, and re-signs if necessary before returning.
68
+ - **Response:** `{
69
+ "task": {...},
70
+ "comments_digest": "sha256-xyz",
71
+ "signature": "hmac-abc",
72
+ "context": {...}
73
+ }`.
74
+
75
+ ## Failure handling & verification guidance
76
+
77
+ - Clients (daemons, aggregators, or operators) that observe a comment mutation must treat signature/digest mismatches as fatal: do not proceed with the previously cached execution context. Instead, trigger a refresh (`/api/tasks/[id]` or `/api/queue/pull`) and verify the returned `signature` over the new `comments_digest` before continuing.
78
+ - If signature verification fails even after re-fetching the task, assume the comment context may have been tampered with or left partially applied; log the failure, halt further execution, and surface the issue through the operator webhook/log stream so the issue can be investigated before retrying.
79
+ - The queue pull endpoint already recomputes the digest, but daemons should still verify the signature locally to detect any corruption between the cloud response and their cached copy.
80
+ - For MCP consumers that write comments via CLI tooling, ensure those commands re-fetch the signed task afterward so the digest and signature accompanying follow-on work are consistent; do not rely on eventual re-pulls alone since a new comment might be the trigger for higher-priority instructions.
81
+
82
+ ## Regression test checklist
83
+
84
+ 1. **`/api/tasks/[id]/comments` POST:**
85
+ - Mock `buildTaskContext` to return a digest that changes after the comment is inserted.
86
+ - Assert the route re-signs the task, persists the new `signature`, and includes the updated `comments_digest` in the response.
87
+ - Verify downstream handlers (e.g., task fetch) are supplied with the new digest as soon as the route completes.
88
+
89
+ 2. **`/api/queue/pull`:**
90
+ - Seed a task with an existing `comments_digest`/`signature`, then insert a comment that changes the digest.
91
+ - Confirm `queue/pull` recomputes the digest, re-signs the task, stores the new signature, and returns the refreshed `comments_digest` to the daemon.
92
+ - Ensure the daemon-side signature verification helper fails when presented with the old digest/signature pair (so we catch regressions where verification is skipped).
93
+
94
+ 3. **MCP `tasks/get` (cloud API):**
95
+ - Stub `buildTaskContext` to return different digests before and after a comment mutation.
96
+ - Assert the MCP helper merges the new `comments_digest` into the response and re-signs the payload before returning.
97
+ - Add an end-to-end test that simulates the CLI fetching a task after posting a comment and verifies the signature verification step accepts the new digest and rejects the old one.
98
+
99
+ 4. **Tooling/verification notes:**
100
+ - Tests need low-level access to `signTask`/`verifyTaskSignature` to assert a digest change truly rotates the signature; stubbed helpers should mirror the production logic, otherwise we risk false positives.
101
+ - Logging or metric hooks should capture signature verification failures so we can detect clients that skip the re-fetch cycle; add assertions in tests that the failure path is exercised when mismatched signatures appear.
102
+
103
+ ## Effort estimate
104
+ - MCP server enhancement (prompt generation + digest handling): 1.5–2 days
105
+ - Tests/documentation + stash/hand-off notes: 0.5 day
106
+ - Total: ~2–2.5 working days (assuming no additional infra blockers).
107
+
108
+ ## Unknowns / questions
109
+ - Does the CLI/aggregator currently read the MCP `task.signature` and verify it before execution, or will we need to update it to replay the new digest?
110
+ - Are there any other sources of editable context (e.g., learnings or logs) that also need digesting in the same signed payload?
111
+ - What user_id should new comments/learnings be attached to when we insert/update them via MCP (the cloud API)?
112
+ - Are there rate limits or permission guardrails that will prevent us from re-signing tasks with new digests on every pull?
113
+ - Should there be an explicit signal (webhook, SSE, etc.) to the daemon/aggregator when comments change so we can safely abort the current execution and re-pull the refreshed signature?
114
+ - Do comment edits (not just additions) automatically move through the same digest/resign flow, or do we need an extra hook for edit operations?
115
+
116
+ ## Next concrete steps
117
+ 1. (Done) Expanded regression coverage by adding a MCP queue/pull test that ensures `comments_digest` changes trigger re-signing and persistence in the MCP workflow.
118
+ 2. (Done) Document the signed-comment expectations for clients/operators, covering the re-fetch workflow, required validation steps, and how daemons should behave when a comment arrives while running.
119
+ 3. Validate aggregator/daemon signature verification flow end-to-end and capture any outstanding requirements before moving to planning/coding.
@@ -0,0 +1,21 @@
1
+ # Context handling audit
2
+
3
+ ## agx-cloud
4
+
5
+ - `lib/task-context.ts` builds the signed execution context sent to agents. It gathers comments for a task, fetches learnings scoped to the task/project/global buckets, resolves the stage prompt from `stage_prompts`, and then renders a multi-section prompt (`STAGE PROMPT`, `TASK META`, `COMMENTS`, `LEARNINGS (task|project|global)`). The resulting `TaskContext` (prompt + `comments_digest`) is spread into the responses from `/api/tasks`, `/api/queue`, and several MCP helpers so daemons/agx cli receive all the metadata they need before executing a stage.
6
+ - The current schema only stores a loose `project` string per task; there is no structured project record or repo metadata backing `project_context`, so anything beyond the simple label is runtime-only and held in notes (see `notes/project-layer.md`).
7
+ - APIs such as `app/api/tasks/route.ts`, `/api/tasks/[id]/comments`, and the MCP CLI (`mcp/src/tools/*.ts`) all call `buildTaskContext`, meaning the pipeline already supports injecting richer context if we extend the helper.
8
+
9
+ ## agx CLI
10
+
11
+ - `lib/executor.js` builds stage prompts entirely on the CLI side. It reads a stage name from the task metadata, looks up `STAGE_CONFIG` to retrieve the hard-coded instructions (e.g., "Create detailed plan with tasks, milestones, and dependencies" for planning), and then emits a `buildPrompt` that wraps the static prompt, the full task content, and a fixed instruction list (`[checkpoint]`, etc.). No cloud-provided context or learnings are merged in.
12
+ - Tasks created with `agx new` collect frontmatter that includes the `project` string (`index.js` around lines 2976-3025), but the CLI only ships that text as part of the task payload; it does not know anything about repo paths, CI/CD hints, or aggregated learnings tied to a project entity.
13
+ - Helper scripts like `lib/worker.js` and `lib/realtime.js` print the raw `project` label when reporting progress, but they never refer to a richer project object or project-specific metadata.
14
+
15
+ ## Gaps to close for the new project layer
16
+
17
+ 1. The CLI has no way to request or receive structured `project_context` data (repo mapping, CI/CD notes, stack learnings) when invoking a task; it simply reruns the stale frontmatter/stage prompt mix that predates the planned feature.
18
+ 2. The cloud already centralizes comments, stage prompts, and learnings via `buildTaskContext`, so extending that helper to add project metadata would give every downstream caller the enriched view we need, but the current schema/API surface lacks a `projects` entity to base that metadata on.
19
+ 3. We must define how a project is stored (schema/migrations), how tasks learn of their parent project (FK, slug, etc.), and how the CLI/daemon request it when building prompts.
20
+
21
+ Next action: finish this audit by matching whichever `lib/db` helpers and DB migrations will need updates so we can define the new `projects` and `project_repos` tables with the right FK relationships.
@@ -0,0 +1,30 @@
1
+ # Project layer plan for agx-cloud agx-agent flow
2
+
3
+ ## Summary
4
+ - Capture how the CLI/daemon should obtain and surface structured project metadata, repo mapping, CI/CD hints, and learnings so that agents execute with a consistent context from idea through release.
5
+ - Define the data model, API surfaces, and prompt pipeline changes needed to treat projects as first-class entities shared between agx-cloud, agx CLI, and MCP/daemon workloads.
6
+
7
+ ## Task breakdown
8
+ | ID | Task | Details | Dependencies | Owner | Effort |
9
+ | --- | --- | --- | --- | --- | --- |
10
+ | T1 | Schema & FK design | Define `projects` + `project_repos`, link `tasks`/`learnings` to `project_id`, and sketch migrations + RLS updates. | None | Backend | 2d |
11
+ | T2 | Project APIs & MCP enrichment | Add CRUD endpoints, ensure `/api/tasks` + `/api/queue` embed `project_context`, and extend MCP helpers (`tasks.get`, `queue.pull`) and `buildTaskContext`. | T1 | Backend | 2d |
12
+ | T3 | CLI/daemon prompt flow | Pass `project_context` through `agx run/new` + `lib/executor.js`, render `PROJECT CONTEXT` + `REPO MAP`, and make learnings resolve project-scoped history. | T2 | CLI | 1d |
13
+ | T4 | Cloud UI surfaces | Add project management views/forms, show context/CI status in dashboard/task detail, and link learnings to projects. | T2 | Frontend | 1.5d |
14
+ | T5 | Testing & documentation | Update regression tests (task context, MCP) and document how project context flows; detail how CLI/UI should refresh when project metadata changes. | T2, T3, T4 | Full stack | 1d |
15
+
16
+ ## Milestones
17
+ 1. **Foundation (Deadline TBD)** – Schema/migration + API surfaces exist, ensuring `project_context` can be signed and delivered to any task consumer.
18
+ 2. **Context surfaces** – CLI/daemon prompts and cloud UI display the enriched project metadata so agents have repo mappings, CI/CD info, and learnings.
19
+ 3. **Rollout + coverage** – Tests/docs updated, learnings pipeline scoped to projects, and rollout notes outline how to migrate existing tasks.
20
+
21
+ ## Dependencies
22
+ - Schema migration must precede any backend or CLI work that references `projects`/`project_repos` columns.
23
+ - MCP helpers and `buildTaskContext` need the final project payload before CLI/daemon prompt changes are merged.
24
+ - Frontend components use the new APIs, so backend endpoints must be ready before the UI surfaces can be wired.
25
+ - Learnings pipeline relies on a stable project identifier; ensure `scope_id` updates once the project row exists.
26
+
27
+ ## Next concrete steps
28
+ 1. Solidify the migration SQL and update `lib/db` helpers/policies to expose `projects` + `project_repos` with the necessary joins.
29
+ 2. Extend `buildTaskContext` and the MCP helpers to include the new `project_context` section so every agent sees the metadata.
30
+ 3. Note that cloud API sync (writing to DB) will validate once the schema and MCP endpoints are running; record the plan via the MCP task log or equivalent once the server is accessible.