@mndrk/agx 2.4.5 → 2.4.7

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 (360) hide show
  1. package/cloud-runtime/standalone/apps/local/.next/BUILD_ID +1 -1
  2. package/cloud-runtime/standalone/apps/local/.next/app-path-routes-manifest.json +4 -0
  3. package/cloud-runtime/standalone/apps/local/.next/build-manifest.json +2 -2
  4. package/cloud-runtime/standalone/apps/local/.next/prerender-manifest.json +3 -3
  5. package/cloud-runtime/standalone/apps/local/.next/routes-manifest.json +33 -0
  6. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.html +2 -2
  7. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.rsc +1 -1
  8. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  9. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  10. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  11. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  12. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  13. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  14. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.html +2 -2
  15. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.rsc +2 -2
  16. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  17. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  18. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  19. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  20. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  21. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  22. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/[id]/page.js.nft.json +1 -1
  23. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/[id]/page_client-reference-manifest.js +1 -1
  24. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page.js.nft.json +1 -1
  25. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page_client-reference-manifest.js +1 -1
  26. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.html +2 -2
  27. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.rsc +3 -3
  28. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_full.segment.rsc +3 -3
  29. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_head.segment.rsc +1 -1
  30. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_index.segment.rsc +2 -2
  31. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_tree.segment.rsc +2 -2
  32. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/agents/__PAGE__.segment.rsc +2 -2
  33. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/agents.segment.rsc +1 -1
  34. package/cloud-runtime/standalone/apps/local/.next/server/app/api/agent-specs/route.js.nft.json +1 -1
  35. package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/[id]/profile/route.js.nft.json +1 -1
  36. package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/export/route.js.nft.json +1 -1
  37. package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat/route.js.nft.json +1 -1
  38. package/cloud-runtime/standalone/apps/local/.next/server/app/api/file-search/route.js.nft.json +1 -1
  39. package/cloud-runtime/standalone/apps/local/.next/server/app/api/participants/route.js.nft.json +1 -1
  40. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/activities/route.js +1 -1
  41. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/activities/route.js.nft.json +1 -1
  42. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/notes/[noteId]/route.js.nft.json +1 -1
  43. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/notes/route.js.nft.json +1 -1
  44. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/program/route/app-paths-manifest.json +3 -0
  45. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/program/route/build-manifest.json +11 -0
  46. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/program/route/server-reference-manifest.json +4 -0
  47. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/program/route.js +13 -0
  48. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/program/route.js.map +5 -0
  49. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/program/route.js.nft.json +1 -0
  50. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/program/route_client-reference-manifest.js +2 -0
  51. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/route.js.nft.json +1 -1
  52. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/scheduled-tasks/route.js.nft.json +1 -1
  53. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/validate/route.js.nft.json +1 -1
  54. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route.js.nft.json +1 -1
  55. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
  56. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/search/route.js.nft.json +1 -1
  57. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/teams/route.js.nft.json +1 -1
  58. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/export/route/app-paths-manifest.json +3 -0
  59. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/export/route/build-manifest.json +11 -0
  60. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/export/route/server-reference-manifest.json +4 -0
  61. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/export/route.js +11 -0
  62. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/export/route.js.map +5 -0
  63. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/export/route.js.nft.json +1 -0
  64. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/export/route_client-reference-manifest.js +2 -0
  65. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/import/route/app-paths-manifest.json +3 -0
  66. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/import/route/build-manifest.json +11 -0
  67. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/import/route/server-reference-manifest.json +4 -0
  68. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/import/route.js +11 -0
  69. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/import/route.js.map +5 -0
  70. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/import/route.js.nft.json +1 -0
  71. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/import/route_client-reference-manifest.js +2 -0
  72. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/route.js.nft.json +1 -1
  73. package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/poll/route.js.nft.json +1 -1
  74. package/cloud-runtime/standalone/apps/local/.next/server/app/api/providers/check/[id]/route.js.nft.json +1 -1
  75. package/cloud-runtime/standalone/apps/local/.next/server/app/api/providers/route.js.nft.json +1 -1
  76. package/cloud-runtime/standalone/apps/local/.next/server/app/api/queue/route.js.nft.json +1 -1
  77. package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/debug/route.js.nft.json +1 -1
  78. package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/poll/route.js.nft.json +1 -1
  79. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/assign/route.js.nft.json +1 -1
  80. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/available/route.js.nft.json +1 -1
  81. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/detail/route.js.nft.json +1 -1
  82. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/history/route.js.nft.json +1 -1
  83. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/learn/route.js.nft.json +1 -1
  84. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/route.js.nft.json +1 -1
  85. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/unlearn/route.js.nft.json +1 -1
  86. package/cloud-runtime/standalone/apps/local/.next/server/app/api/status/route.js.nft.json +1 -1
  87. package/cloud-runtime/standalone/apps/local/.next/server/app/api/summarize/route.js.nft.json +1 -1
  88. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js.nft.json +1 -1
  89. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/comments/route.js.nft.json +1 -1
  90. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js.nft.json +1 -1
  91. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
  92. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/route.js.nft.json +1 -1
  93. package/cloud-runtime/standalone/apps/local/.next/server/app/api/threads/knowledge/route.js.nft.json +1 -1
  94. package/cloud-runtime/standalone/apps/local/.next/server/app/api/threads/route.js.nft.json +1 -1
  95. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/items/[id]/recap/route.js.nft.json +1 -1
  96. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/runs/scripted/route.js.nft.json +1 -1
  97. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/status/route.js.nft.json +1 -1
  98. package/cloud-runtime/standalone/apps/local/.next/server/app/api/update-check/route.js.nft.json +1 -1
  99. package/cloud-runtime/standalone/apps/local/.next/server/app/index.html +2 -2
  100. package/cloud-runtime/standalone/apps/local/.next/server/app/index.rsc +3 -3
  101. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  102. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_full.segment.rsc +3 -3
  103. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_head.segment.rsc +1 -1
  104. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_index.segment.rsc +2 -2
  105. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  106. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos/page_client-reference-manifest.js +1 -1
  107. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.html +2 -2
  108. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.rsc +2 -2
  109. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/_full.segment.rsc +2 -2
  110. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/_head.segment.rsc +1 -1
  111. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/_index.segment.rsc +2 -2
  112. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/_tree.segment.rsc +2 -2
  113. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/integrations/github/select-repos/__PAGE__.segment.rsc +1 -1
  114. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/integrations/github/select-repos.segment.rsc +1 -1
  115. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/integrations/github.segment.rsc +1 -1
  116. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/integrations.segment.rsc +1 -1
  117. package/cloud-runtime/standalone/apps/local/.next/server/app/page_client-reference-manifest.js +1 -1
  118. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page.js.nft.json +1 -1
  119. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page_client-reference-manifest.js +1 -1
  120. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page.js.nft.json +1 -1
  121. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page_client-reference-manifest.js +1 -1
  122. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page.js.nft.json +1 -1
  123. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page_client-reference-manifest.js +1 -1
  124. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page.js.nft.json +1 -1
  125. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page_client-reference-manifest.js +1 -1
  126. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/notifications/page.js.nft.json +1 -1
  127. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/notifications/page_client-reference-manifest.js +1 -1
  128. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page.js.nft.json +1 -1
  129. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page_client-reference-manifest.js +1 -1
  130. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page.js.nft.json +1 -1
  131. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page_client-reference-manifest.js +1 -1
  132. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page.js.nft.json +1 -1
  133. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
  134. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/page.js.nft.json +1 -1
  135. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/page_client-reference-manifest.js +1 -1
  136. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page.js.nft.json +1 -1
  137. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page_client-reference-manifest.js +1 -1
  138. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page.js.nft.json +1 -1
  139. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page_client-reference-manifest.js +1 -1
  140. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page.js.nft.json +1 -1
  141. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page_client-reference-manifest.js +1 -1
  142. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page.js.nft.json +1 -1
  143. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page_client-reference-manifest.js +1 -1
  144. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page.js.nft.json +1 -1
  145. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page_client-reference-manifest.js +1 -1
  146. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page.js.nft.json +1 -1
  147. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page_client-reference-manifest.js +1 -1
  148. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page.js.nft.json +1 -1
  149. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page_client-reference-manifest.js +1 -1
  150. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page.js.nft.json +1 -1
  151. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page_client-reference-manifest.js +1 -1
  152. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/page/app-paths-manifest.json +3 -0
  153. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/page/build-manifest.json +18 -0
  154. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/page/next-font-manifest.json +11 -0
  155. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/page/react-loadable-manifest.json +1 -0
  156. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/page/server-reference-manifest.json +4 -0
  157. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/page.js +16 -0
  158. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/page.js.map +5 -0
  159. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/page.js.nft.json +1 -0
  160. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/page_client-reference-manifest.js +2 -0
  161. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/[tracker]/page.js.nft.json +1 -1
  162. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/[tracker]/page_client-reference-manifest.js +1 -1
  163. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/connect/page.js.nft.json +1 -1
  164. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/connect/page_client-reference-manifest.js +1 -1
  165. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/page.js.nft.json +1 -1
  166. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/page_client-reference-manifest.js +1 -1
  167. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/page.js.nft.json +1 -1
  168. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  169. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.html +2 -2
  170. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.rsc +3 -3
  171. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_full.segment.rsc +3 -3
  172. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_head.segment.rsc +1 -1
  173. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_index.segment.rsc +2 -2
  174. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
  175. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +2 -2
  176. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/projects.segment.rsc +1 -1
  177. package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page.js.nft.json +1 -1
  178. package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  179. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.html +2 -2
  180. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.rsc +3 -3
  181. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_full.segment.rsc +3 -3
  182. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_head.segment.rsc +1 -1
  183. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_index.segment.rsc +2 -2
  184. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_tree.segment.rsc +2 -2
  185. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/setup/__PAGE__.segment.rsc +2 -2
  186. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/setup.segment.rsc +1 -1
  187. package/cloud-runtime/standalone/apps/local/.next/server/app/status/page_client-reference-manifest.js +1 -1
  188. package/cloud-runtime/standalone/apps/local/.next/server/app/status.html +2 -2
  189. package/cloud-runtime/standalone/apps/local/.next/server/app/status.rsc +2 -2
  190. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_full.segment.rsc +2 -2
  191. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_head.segment.rsc +1 -1
  192. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_index.segment.rsc +2 -2
  193. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_tree.segment.rsc +2 -2
  194. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/status/__PAGE__.segment.rsc +1 -1
  195. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/status.segment.rsc +1 -1
  196. package/cloud-runtime/standalone/apps/local/.next/server/app-paths-manifest.json +4 -0
  197. package/cloud-runtime/standalone/apps/local/.next/server/chunks/30bdd_server_app_api_projects_[id]_workspace_export_route_actions_e161f108.js +3 -0
  198. package/cloud-runtime/standalone/apps/local/.next/server/chunks/30bdd_server_app_api_projects_[id]_workspace_import_route_actions_10d2bce2.js +3 -0
  199. package/cloud-runtime/standalone/apps/local/.next/server/chunks/7255d_app_api_projects_[id]_objectives_[objectiveId]_program_route_actions_e6cdbc76.js +3 -0
  200. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__1563ebff._.js +2 -2
  201. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__3fdd57cb._.js +1 -1
  202. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__45af4365._.js +1 -1
  203. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__683b7ad7._.js +1 -1
  204. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__736d5859._.js +1 -1
  205. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__96b5ea56._.js +3 -0
  206. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__ba72d342._.js +5 -5
  207. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__c3188470._.js +1 -1
  208. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__eb69343e._.js +3 -0
  209. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_1d99e7a5._.js +1 -1
  210. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_4d88e4dc._.js +91 -0
  211. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_4dec65a2._.js +1 -1
  212. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_50e3a6e3._.js +1 -1
  213. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_56a2544c._.js +1 -1
  214. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_5843a1a1._.js +1 -1
  215. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_a15e73a6._.js +1 -1
  216. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_bd72806a._.js +1 -1
  217. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_c101ba9e._.js +1 -1
  218. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_c530bd77._.js +11 -0
  219. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_d69937f2._.js +91 -0
  220. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_e2867b32._.js +3 -0
  221. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_e32b0cab._.js +91 -0
  222. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_5ab8f104._.js +1 -1
  223. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_db_ts_77c23d6c._.js +1 -1
  224. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/0da96_local__next-internal_server_app_projects_[slug]_thread_page_actions_3ceeb59b.js +3 -0
  225. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__1e0fd816._.js +3 -0
  226. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__42499ecf._.js +3 -0
  227. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__5f31e40b._.js +3 -0
  228. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__636799fb._.js +3 -0
  229. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{[root-of-the-server]__4bf7d5b9._.js → [root-of-the-server]__74436f61._.js} +2 -2
  230. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__9434d6d7._.js +3 -0
  231. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__bd339da0._.js +3 -0
  232. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__d08d7899._.js +3 -0
  233. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__e02a457c._.js +3 -0
  234. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__e3a1fef0._.js +3 -0
  235. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__f802e7d1._.js +3 -0
  236. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__ff96bb77._.js +3 -0
  237. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_6a2ba8f0._.js +3 -0
  238. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_7cb6b08a._.js +3 -0
  239. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_a0f42923._.js +7 -0
  240. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_a93c1059._.js +3 -0
  241. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{apps_local_components_PromptJobBoard_tsx_281b2873._.js → apps_local_04cb9fd5._.js} +3 -3
  242. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_15502af8._.js +3 -0
  243. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_16eaf7ae._.js +3 -0
  244. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_3c11c068._.js +8 -0
  245. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_89b49aad._.js +7 -0
  246. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_988d29c0._.js +1 -1
  247. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_ae1a134f._.js +7 -0
  248. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_agents_page_tsx_2a02508d._.js +1 -1
  249. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_folders_page_tsx_72fb68e5._.js +1 -1
  250. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_layout_tsx_3bb31889._.js +1 -1
  251. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_page_tsx_76330306._.js +1 -1
  252. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_teams_[teamId]_page_tsx_6dcfdd52._.js +1 -1
  253. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_b8e580cc._.js +4 -0
  254. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_TrackerBoard_tsx_98970bab._.js +2 -2
  255. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{apps_local_app_projects_[slug]_thread_[threadId]_page_tsx_2a1d1d5e._.js → apps_local_components_chat-ui_ChatContainer_tsx_47371955._.js} +2 -2
  256. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_projects_ProjectObjectivesWorkspace_tsx_751ab3d3._.js +3 -3
  257. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_eb223411._.js +18 -0
  258. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{apps_local_7d1abfbf._.js → apps_local_f1c9872a._.js} +2 -2
  259. package/cloud-runtime/standalone/apps/local/.next/server/functions-config-manifest.json +3 -0
  260. package/cloud-runtime/standalone/apps/local/.next/server/middleware-manifest.json +5 -5
  261. package/cloud-runtime/standalone/apps/local/.next/server/next-font-manifest.js +1 -1
  262. package/cloud-runtime/standalone/apps/local/.next/server/next-font-manifest.json +4 -0
  263. package/cloud-runtime/standalone/apps/local/.next/server/pages/404.html +2 -2
  264. package/cloud-runtime/standalone/apps/local/.next/server/pages/500.html +2 -2
  265. package/cloud-runtime/standalone/apps/local/.next/server/server-reference-manifest.js +1 -1
  266. package/cloud-runtime/standalone/apps/local/.next/server/server-reference-manifest.json +1 -1
  267. package/cloud-runtime/standalone/apps/local/.next/static/chunks/08e75b35d6c52269.js +1 -0
  268. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0d22a723b9b96e65.js +1 -0
  269. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{cb19d71dd7ffb935.js → 1585dd5f9ec4866a.js} +1 -1
  270. package/cloud-runtime/standalone/apps/local/.next/static/chunks/1bc8cc9cbb99c1ed.js +1 -0
  271. package/cloud-runtime/standalone/apps/local/.next/static/chunks/2586c0baa16e9a0d.js +16 -0
  272. package/cloud-runtime/standalone/apps/local/.next/static/chunks/2aa24a251622fd06.js +5 -0
  273. package/cloud-runtime/standalone/apps/local/.next/static/chunks/39513207112d6828.js +1 -0
  274. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{74e3a3e93be78db8.js → 40857295bb9226c4.js} +7 -7
  275. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{8b5d6f5bade8c4ea.js → 41ae15220fc19bf7.js} +2 -2
  276. package/cloud-runtime/standalone/apps/local/.next/static/chunks/5092f14c2bf43204.js +16 -0
  277. package/cloud-runtime/standalone/apps/local/.next/static/chunks/5159169343ce6d2f.css +1 -0
  278. package/cloud-runtime/standalone/apps/local/.next/static/chunks/67b36c70b72e0e10.js +1 -0
  279. package/cloud-runtime/standalone/apps/local/.next/static/chunks/7bfbfcd072f8d61e.js +20 -0
  280. package/cloud-runtime/standalone/apps/local/.next/static/chunks/7cf26dd04166f32f.js +6 -0
  281. package/cloud-runtime/standalone/apps/local/.next/static/chunks/90dcb743d23feeca.js +16 -0
  282. package/cloud-runtime/standalone/apps/local/.next/static/chunks/93749b45e2700808.js +16 -0
  283. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{48feca51cf97c8a7.js → 9bb8f1406365af81.js} +1 -1
  284. package/cloud-runtime/standalone/apps/local/.next/static/chunks/b4aa71020acae46f.js +16 -0
  285. package/cloud-runtime/standalone/apps/local/.next/static/chunks/c352706a0ad7e35d.js +1 -0
  286. package/cloud-runtime/standalone/apps/local/.next/static/chunks/c5436b2b7e8f0ca9.js +16 -0
  287. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{1600dd6ff8607d8f.js → c9a2c4b55bb76f4f.js} +6 -6
  288. package/cloud-runtime/standalone/apps/local/.next/static/chunks/d6a9cc66254693b8.js +1 -0
  289. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{9e703dd5d95e9557.js → e3bdd1e0f385114e.js} +1 -1
  290. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{93b2b6aa0c9593f6.js → e6d4118b7c32d11c.js} +1 -1
  291. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{6ffcd12eabd7c65e.js → f71d73895d228547.js} +1 -1
  292. package/cloud-runtime/standalone/apps/local/.next/static/chunks/f750d2f1882d31a8.js +5 -0
  293. package/cloud-runtime/standalone/apps/local/app/api/automations/route.ts +2 -10
  294. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/objectives/[objectiveId]/program/route.ts +77 -0
  295. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/workspace/export/route.ts +35 -0
  296. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/workspace/import/route.ts +91 -0
  297. package/cloud-runtime/standalone/apps/local/app/api/prompt-jobs/route.ts +1 -8
  298. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/layout.tsx +1 -1
  299. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/teams/[teamId]/page.tsx +58 -2
  300. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/thread/page.tsx +14 -0
  301. package/cloud-runtime/standalone/apps/local/components/AutomationsBoard.tsx +15 -15
  302. package/cloud-runtime/standalone/apps/local/components/PromptJobBoard.tsx +80 -45
  303. package/cloud-runtime/standalone/apps/local/components/projects/FoldersSummaryCard.tsx +51 -196
  304. package/cloud-runtime/standalone/apps/local/components/projects/FoldersView.tsx +662 -784
  305. package/cloud-runtime/standalone/apps/local/components/projects/ObjectiveScheduledTasksPanel.tsx +85 -249
  306. package/cloud-runtime/standalone/apps/local/components/projects/ProjectHome.tsx +4 -4
  307. package/cloud-runtime/standalone/apps/local/components/projects/ProjectObjectivesWorkspace.tsx +118 -0
  308. package/cloud-runtime/standalone/apps/local/components/projects/ProjectSettings.tsx +81 -7
  309. package/cloud-runtime/standalone/apps/local/components/thread/WorkspaceSidebar.tsx +15 -5
  310. package/cloud-runtime/standalone/apps/local/hooks/useProjectWorkspace.ts +117 -0
  311. package/cloud-runtime/standalone/apps/local/lib/db/projects.ts +14 -10
  312. package/cloud-runtime/standalone/apps/local/lib/project-workspace.ts +80 -0
  313. package/cloud-runtime/standalone/apps/local/lib/task-context.ts +39 -4
  314. package/cloud-runtime/standalone/apps/local/lib/workspace-yaml.ts +164 -0
  315. package/cloud-runtime/standalone/apps/local/src/objectives/program/index.ts +7 -0
  316. package/cloud-runtime/standalone/apps/local/src/objectives/program/repository.ts +60 -0
  317. package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/objective-worker.ts +12 -0
  318. package/cloud-runtime/standalone/apps/local/src/scheduling/status.ts +42 -0
  319. package/cloud-runtime/standalone/apps/local/worker/index.js +15 -10
  320. package/lib/commands/workspace.js +145 -7
  321. package/package.json +1 -1
  322. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_09d85861._.js +0 -91
  323. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_25136564._.js +0 -11
  324. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_2caf4398._.js +0 -91
  325. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_31ca7a35._.js +0 -91
  326. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/9fb8c_lucide-react_dist_esm_icons_8c8ee1bc._.js +0 -3
  327. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__3b4708d5._.js +0 -3
  328. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__49cbf624._.js +0 -3
  329. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__49cdd178._.js +0 -3
  330. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__55ed4ff9._.js +0 -3
  331. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__7a31a76d._.js +0 -3
  332. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__7e3c2ea1._.js +0 -7
  333. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__bb42490f._.js +0 -3
  334. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__dbda910b._.js +0 -7
  335. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__ee9351f9._.js +0 -3
  336. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_347d036d._.js +0 -7
  337. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_917d90b4._.js +0 -3
  338. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_f99c22fd._.js +0 -3
  339. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_3b90cb76._.js +0 -18
  340. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_9f36c765._.js +0 -3
  341. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_a2835b49._.js +0 -3
  342. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_8cc1a335._.js +0 -3
  343. package/cloud-runtime/standalone/apps/local/.next/static/chunks/1d8b2726979134e5.js +0 -16
  344. package/cloud-runtime/standalone/apps/local/.next/static/chunks/55a31773f8c2833f.js +0 -20
  345. package/cloud-runtime/standalone/apps/local/.next/static/chunks/6952b44e247d594a.js +0 -16
  346. package/cloud-runtime/standalone/apps/local/.next/static/chunks/6bfdc40a24e65ca2.js +0 -1
  347. package/cloud-runtime/standalone/apps/local/.next/static/chunks/7c8515a24aeea102.js +0 -1
  348. package/cloud-runtime/standalone/apps/local/.next/static/chunks/7ff071e8a33d2fd8.js +0 -16
  349. package/cloud-runtime/standalone/apps/local/.next/static/chunks/80446e085a3aad56.css +0 -1
  350. package/cloud-runtime/standalone/apps/local/.next/static/chunks/87e4fb11329a358d.js +0 -1
  351. package/cloud-runtime/standalone/apps/local/.next/static/chunks/941f7f3626ec442c.js +0 -16
  352. package/cloud-runtime/standalone/apps/local/.next/static/chunks/94a66d2d19268d25.js +0 -5
  353. package/cloud-runtime/standalone/apps/local/.next/static/chunks/9c29ef447bef1576.js +0 -5
  354. package/cloud-runtime/standalone/apps/local/.next/static/chunks/a9111ccc979d4933.js +0 -5
  355. package/cloud-runtime/standalone/apps/local/.next/static/chunks/b35865f64b56d6f4.js +0 -1
  356. package/cloud-runtime/standalone/apps/local/.next/static/chunks/d2b34ade19d9d8da.js +0 -1
  357. package/cloud-runtime/standalone/apps/local/.next/static/chunks/f154e2ed7753f8ee.js +0 -16
  358. /package/cloud-runtime/standalone/apps/local/.next/static/{C3-tP4djbU34_g7VoIFac → xVMVGrzDjtD1H0bGL76NJ}/_buildManifest.js +0 -0
  359. /package/cloud-runtime/standalone/apps/local/.next/static/{C3-tP4djbU34_g7VoIFac → xVMVGrzDjtD1H0bGL76NJ}/_clientMiddlewareManifest.json +0 -0
  360. /package/cloud-runtime/standalone/apps/local/.next/static/{C3-tP4djbU34_g7VoIFac → xVMVGrzDjtD1H0bGL76NJ}/_ssgManifest.js +0 -0
@@ -1,16 +1,15 @@
1
1
  "use client";
2
2
 
3
+ import type { ChangeEvent } from "react";
3
4
  import { useCallback, useRef, useState } from "react";
4
5
  import { useRouter } from "next/navigation";
5
6
  import {
6
- Settings,
7
7
  FolderGit2,
8
8
  Download,
9
9
  Upload,
10
10
  Trash2,
11
11
  AlertTriangle,
12
12
  Plus,
13
- X,
14
13
  } from "lucide-react";
15
14
  import type { ProjectWithAgents, ProjectRepoInput } from "@/hooks/useProjects";
16
15
 
@@ -106,15 +105,17 @@ export function ProjectSettings({ project, onUpdate, onDelete }: ProjectSettings
106
105
  );
107
106
 
108
107
  // --- Team Config ---
109
- const fileInputRef = useRef<HTMLInputElement>(null);
108
+ const teamFileInputRef = useRef<HTMLInputElement>(null);
110
109
  const [teamStatus, setTeamStatus] = useState<string | null>(null);
110
+ const workspaceFileInputRef = useRef<HTMLInputElement>(null);
111
+ const [workspaceStatus, setWorkspaceStatus] = useState<string | null>(null);
111
112
 
112
113
  const handleExportYaml = useCallback(() => {
113
114
  window.open(`/api/projects/${project.id}/teams/export`, "_blank");
114
115
  }, [project.id]);
115
116
 
116
117
  const handleImportYaml = useCallback(
117
- async (e: React.ChangeEvent<HTMLInputElement>) => {
118
+ async (e: ChangeEvent<HTMLInputElement>) => {
118
119
  const file = e.target.files?.[0];
119
120
  if (!file) return;
120
121
 
@@ -137,12 +138,46 @@ export function ProjectSettings({ project, onUpdate, onDelete }: ProjectSettings
137
138
  }
138
139
 
139
140
  // Reset file input
140
- if (fileInputRef.current) fileInputRef.current.value = "";
141
+ if (teamFileInputRef.current) teamFileInputRef.current.value = "";
141
142
  setTimeout(() => setTeamStatus(null), 4000);
142
143
  },
143
144
  [project.id],
144
145
  );
145
146
 
147
+ const handleExportWorkspaceYaml = useCallback(() => {
148
+ window.open(`/api/projects/${project.id}/workspace/export`, "_blank");
149
+ }, [project.id]);
150
+
151
+ const handleImportWorkspaceYaml = useCallback(
152
+ async (e: ChangeEvent<HTMLInputElement>) => {
153
+ const file = e.target.files?.[0];
154
+ if (!file) return;
155
+
156
+ try {
157
+ const content = await file.text();
158
+ const res = await fetch(`/api/projects/${project.id}/workspace/import`, {
159
+ method: "POST",
160
+ headers: { "Content-Type": "application/x-yaml" },
161
+ body: content,
162
+ });
163
+
164
+ if (res.ok) {
165
+ setWorkspaceStatus("Import successful");
166
+ router.refresh();
167
+ } else {
168
+ const body = await res.json().catch(() => ({}));
169
+ setWorkspaceStatus(`Import failed: ${body.error || res.statusText}`);
170
+ }
171
+ } catch {
172
+ setWorkspaceStatus("Import failed");
173
+ }
174
+
175
+ if (workspaceFileInputRef.current) workspaceFileInputRef.current.value = "";
176
+ setTimeout(() => setWorkspaceStatus(null), 4000);
177
+ },
178
+ [project.id, router],
179
+ );
180
+
146
181
  // --- Danger Zone ---
147
182
  const [confirmDelete, setConfirmDelete] = useState(false);
148
183
  const [deleting, setDeleting] = useState(false);
@@ -309,7 +344,7 @@ export function ProjectSettings({ project, onUpdate, onDelete }: ProjectSettings
309
344
  <Upload className="w-4 h-4" />
310
345
  Import YAML
311
346
  <input
312
- ref={fileInputRef}
347
+ ref={teamFileInputRef}
313
348
  type="file"
314
349
  accept=".yaml,.yml"
315
350
  onChange={handleImportYaml}
@@ -319,7 +354,46 @@ export function ProjectSettings({ project, onUpdate, onDelete }: ProjectSettings
319
354
  </div>
320
355
  </section>
321
356
 
322
- {/* Section 4: Danger Zone */}
357
+ {/* Section 4: Workspace Map YAML */}
358
+ <section className="rounded-2xl border border-zinc-800 bg-zinc-900/50 p-6 space-y-4">
359
+ <div className="flex items-center justify-between border-b border-zinc-800 pb-3">
360
+ <h2 className="text-sm font-bold uppercase tracking-widest text-zinc-400">
361
+ Workspace Map YAML
362
+ </h2>
363
+ {workspaceStatus && (
364
+ <span className="text-xs text-zinc-500">{workspaceStatus}</span>
365
+ )}
366
+ </div>
367
+
368
+ <p className="text-sm text-zinc-500">
369
+ Export the portable workspace map structure without local paths, or import a shared YAML skeleton that
370
+ teammates can map on this machine.
371
+ </p>
372
+
373
+ <div className="flex items-center gap-3">
374
+ <button
375
+ onClick={handleExportWorkspaceYaml}
376
+ className="flex items-center gap-2 px-4 py-2 rounded-xl border border-zinc-700 bg-zinc-800/50 hover:bg-zinc-800 transition-colors text-sm text-zinc-300"
377
+ >
378
+ <Download className="w-4 h-4" />
379
+ Export YAML
380
+ </button>
381
+
382
+ <label className="flex items-center gap-2 px-4 py-2 rounded-xl border border-zinc-700 bg-zinc-800/50 hover:bg-zinc-800 transition-colors text-sm text-zinc-300 cursor-pointer">
383
+ <Upload className="w-4 h-4" />
384
+ Import YAML
385
+ <input
386
+ ref={workspaceFileInputRef}
387
+ type="file"
388
+ accept=".yaml,.yml"
389
+ onChange={handleImportWorkspaceYaml}
390
+ className="hidden"
391
+ />
392
+ </label>
393
+ </div>
394
+ </section>
395
+
396
+ {/* Section 5: Danger Zone */}
323
397
  <section className="rounded-2xl border border-red-900/50 bg-zinc-900/50 p-6 space-y-4">
324
398
  <div className="flex items-center gap-2 border-b border-red-900/30 pb-3">
325
399
  <AlertTriangle className="w-4 h-4 text-red-500" />
@@ -832,7 +832,7 @@ export function WorkspaceSidebar({
832
832
  </RailTooltip>
833
833
  )}
834
834
  {stageShow.folders && (
835
- <RailTooltip label="Folders">
835
+ <RailTooltip label="Workspace Map">
836
836
  <Link href={`/projects/${collapsedSlug}/folders`} className={`workspace-sidebar__rail-icon${activeProjectView === "folders" ? " workspace-sidebar__rail-icon--active" : ""}`}>
837
837
  <FolderGit2 size={16} />
838
838
  </Link>
@@ -981,11 +981,11 @@ export function WorkspaceSidebar({
981
981
  </div>
982
982
  </div>
983
983
 
984
- {/* Work group — visible from stage 2+ */}
984
+ {/* Automation group — visible from stage 2+ */}
985
985
  {showWorkGroup && (
986
986
  <div className="mb-3">
987
987
  <div className="workspace-sidebar__section-header">
988
- <p className="workspace-sidebar__section-label">Work</p>
988
+ <p className="workspace-sidebar__section-label">Automation</p>
989
989
  </div>
990
990
  <div className="px-2 flex flex-col gap-0.5">
991
991
  {stageShow.objectives && (
@@ -1098,7 +1098,17 @@ export function WorkspaceSidebar({
1098
1098
  </span>
1099
1099
  )}
1100
1100
  </button>
1101
- ) : null}
1101
+ ) : (
1102
+ <Link
1103
+ href={`/projects/${selectedProject.slug}/thread`}
1104
+ onClick={closeTouchDrawer}
1105
+ className={`workspace-sidebar__nav-item ${isActiveProjectThread ? "workspace-sidebar__nav-item--active" : ""}`}
1106
+ aria-current={isActiveProjectThread ? "page" : undefined}
1107
+ >
1108
+ <MessageSquare size={14} className="flex-shrink-0 text-[var(--muted-foreground)]" />
1109
+ <span className="workspace-sidebar__workspace-title text-sm">Chat</span>
1110
+ </Link>
1111
+ )}
1102
1112
  </div>
1103
1113
  </div>
1104
1114
  </div>
@@ -1132,7 +1142,7 @@ export function WorkspaceSidebar({
1132
1142
  aria-current={isActiveProjectFolders ? "page" : undefined}
1133
1143
  >
1134
1144
  <FolderGit2 size={14} className="flex-shrink-0 text-[var(--muted-foreground)]" />
1135
- <span className="workspace-sidebar__workspace-title text-sm">Folders</span>
1145
+ <span className="workspace-sidebar__workspace-title text-sm">Workspace Map</span>
1136
1146
  </Link>
1137
1147
  </div>
1138
1148
  )}
@@ -0,0 +1,117 @@
1
+ "use client";
2
+
3
+ import { useCallback, useEffect, useState } from "react";
4
+ import type { WorkspaceEntry } from "@/lib/db/types";
5
+ import type { ProjectWorkspace } from "@/lib/project-workspace";
6
+ import { countWorkspaceEntries } from "@/lib/project-workspace";
7
+
8
+ interface CreateWorkspaceEntryInput {
9
+ category: string;
10
+ name: string;
11
+ path?: string | null;
12
+ purpose?: string | null;
13
+ }
14
+
15
+ interface UpdateWorkspaceEntryInput {
16
+ name?: string;
17
+ path?: string | null;
18
+ purpose?: string | null;
19
+ sort_order?: number;
20
+ }
21
+
22
+ async function readErrorMessage(response: Response, fallback: string): Promise<string> {
23
+ const body = await response.json().catch(() => ({}));
24
+ return typeof body.error === "string" ? body.error : fallback;
25
+ }
26
+
27
+ export function useProjectWorkspace(projectId: string) {
28
+ const [workspace, setWorkspace] = useState<ProjectWorkspace>({});
29
+ const [isLoading, setIsLoading] = useState(false);
30
+ const [error, setError] = useState<Error | null>(null);
31
+
32
+ const fetchWorkspace = useCallback(async () => {
33
+ if (!projectId) {
34
+ setWorkspace({});
35
+ setIsLoading(false);
36
+ setError(null);
37
+ return;
38
+ }
39
+
40
+ setIsLoading(true);
41
+ try {
42
+ const response = await fetch(`/api/projects/${projectId}/workspace`);
43
+ if (!response.ok) {
44
+ throw new Error(await readErrorMessage(response, "Failed to fetch workspace map"));
45
+ }
46
+ const data = await response.json();
47
+ setWorkspace(data.workspace ?? {});
48
+ setError(null);
49
+ } catch (err) {
50
+ setError(err instanceof Error ? err : new Error("Unknown error"));
51
+ } finally {
52
+ setIsLoading(false);
53
+ }
54
+ }, [projectId]);
55
+
56
+ useEffect(() => {
57
+ void fetchWorkspace();
58
+ }, [fetchWorkspace]);
59
+
60
+ const createEntry = useCallback(
61
+ async (input: CreateWorkspaceEntryInput) => {
62
+ const response = await fetch(`/api/projects/${projectId}/workspace`, {
63
+ method: "POST",
64
+ headers: { "Content-Type": "application/json" },
65
+ body: JSON.stringify(input),
66
+ });
67
+ if (!response.ok) {
68
+ throw new Error(await readErrorMessage(response, "Failed to create workspace entry"));
69
+ }
70
+ const data = await response.json();
71
+ await fetchWorkspace();
72
+ return data.entry as WorkspaceEntry;
73
+ },
74
+ [fetchWorkspace, projectId],
75
+ );
76
+
77
+ const updateEntry = useCallback(
78
+ async (entryId: string, updates: UpdateWorkspaceEntryInput) => {
79
+ const response = await fetch(`/api/projects/${projectId}/workspace/${entryId}`, {
80
+ method: "PATCH",
81
+ headers: { "Content-Type": "application/json" },
82
+ body: JSON.stringify(updates),
83
+ });
84
+ if (!response.ok) {
85
+ throw new Error(await readErrorMessage(response, "Failed to update workspace entry"));
86
+ }
87
+ const data = await response.json();
88
+ await fetchWorkspace();
89
+ return data.entry as WorkspaceEntry;
90
+ },
91
+ [fetchWorkspace, projectId],
92
+ );
93
+
94
+ const deleteEntry = useCallback(
95
+ async (entryId: string) => {
96
+ const response = await fetch(`/api/projects/${projectId}/workspace/${entryId}`, {
97
+ method: "DELETE",
98
+ });
99
+ if (!response.ok) {
100
+ throw new Error(await readErrorMessage(response, "Failed to delete workspace entry"));
101
+ }
102
+ await fetchWorkspace();
103
+ },
104
+ [fetchWorkspace, projectId],
105
+ );
106
+
107
+ return {
108
+ workspace,
109
+ entryCount: countWorkspaceEntries(workspace),
110
+ isLoading,
111
+ error,
112
+ refetch: fetchWorkspace,
113
+ createEntry,
114
+ updateEntry,
115
+ deleteEntry,
116
+ };
117
+ }
@@ -582,6 +582,15 @@ export async function getProjectForThread(threadId: string): Promise<string | nu
582
582
  }
583
583
 
584
584
  export async function getProjectWorkspace(projectId: string): Promise<Record<string, WorkspaceEntry[]>> {
585
+ const entries = await getProjectWorkspaceEntries(projectId);
586
+ return entries.reduce<Record<string, WorkspaceEntry[]>>((acc, entry) => {
587
+ if (!acc[entry.category]) acc[entry.category] = [];
588
+ acc[entry.category].push(entry);
589
+ return acc;
590
+ }, {});
591
+ }
592
+
593
+ export async function getProjectWorkspaceEntries(projectId: string): Promise<WorkspaceEntry[]> {
585
594
  const db = createAdminDbClient();
586
595
  const { data, error } = await db
587
596
  .from("workspace_entries")
@@ -592,20 +601,15 @@ export async function getProjectWorkspace(projectId: string): Promise<Record<str
592
601
  .order("name", { ascending: true });
593
602
 
594
603
  if (error) {
595
- if (isMissingRelationError(error, "workspace_entries")) return {};
604
+ if (isMissingRelationError(error, "workspace_entries")) return [];
596
605
  throw error;
597
606
  }
598
- const entries = (data || []) as WorkspaceEntry[];
599
- return entries.reduce<Record<string, WorkspaceEntry[]>>((acc, entry) => {
600
- if (!acc[entry.category]) acc[entry.category] = [];
601
- acc[entry.category].push(entry);
602
- return acc;
603
- }, {});
607
+ return (data || []) as WorkspaceEntry[];
604
608
  }
605
609
 
606
610
  export async function createWorkspaceEntry(
607
611
  projectId: string,
608
- entry: { category: string; name: string; path?: string; purpose?: string }
612
+ entry: { category: string; name: string; path?: string | null; purpose?: string | null; sort_order?: number }
609
613
  ): Promise<WorkspaceEntry> {
610
614
  const db = createAdminDbClient();
611
615
  const id = randomUUID();
@@ -619,7 +623,7 @@ export async function createWorkspaceEntry(
619
623
  name: entry.name,
620
624
  path: entry.path || null,
621
625
  purpose: entry.purpose || null,
622
- sort_order: 0,
626
+ sort_order: entry.sort_order ?? 0,
623
627
  created_at: now,
624
628
  updated_at: now,
625
629
  })
@@ -641,6 +645,7 @@ export async function updateWorkspaceEntry(
641
645
  if (updates.path !== undefined) payload.path = updates.path;
642
646
  if (updates.purpose !== undefined) payload.purpose = updates.purpose;
643
647
  if (updates.sort_order !== undefined) payload.sort_order = updates.sort_order;
648
+ payload.updated_at = new Date().toISOString();
644
649
 
645
650
  const { data, error } = await db
646
651
  .from("workspace_entries")
@@ -689,4 +694,3 @@ export async function getWorkspaceMapForContext(
689
694
  purpose: (row.purpose as string) || null,
690
695
  }));
691
696
  }
692
-
@@ -0,0 +1,80 @@
1
+ import type { WorkspaceEntry } from "@/lib/db/types";
2
+ import {
3
+ DEFAULT_WORKSPACE_CATEGORIES,
4
+ getWorkspaceCategory,
5
+ WORKSPACE_CATEGORY_IDS,
6
+ } from "@/lib/workspace-categories";
7
+
8
+ export type ProjectWorkspace = Record<string, WorkspaceEntry[]>;
9
+
10
+ export interface WorkspaceCategoryGroup {
11
+ id: string;
12
+ label: string;
13
+ entries: WorkspaceEntry[];
14
+ isPreset: boolean;
15
+ isEmpty: boolean;
16
+ }
17
+
18
+ export function isPresetWorkspaceCategory(category: string): boolean {
19
+ return WORKSPACE_CATEGORY_IDS.includes(category as (typeof WORKSPACE_CATEGORY_IDS)[number]);
20
+ }
21
+
22
+ export function formatWorkspaceCategoryLabel(category: string): string {
23
+ const trimmed = category.trim();
24
+ const preset = trimmed ? getWorkspaceCategory(trimmed as (typeof WORKSPACE_CATEGORY_IDS)[number]) : null;
25
+ if (preset) return preset.label;
26
+ if (!trimmed) return "Custom";
27
+
28
+ return trimmed
29
+ .replace(/[_-]+/g, " ")
30
+ .replace(/\s+/g, " ")
31
+ .replace(/\b\w/g, (char) => char.toUpperCase());
32
+ }
33
+
34
+ function sortEntries(entries: WorkspaceEntry[]): WorkspaceEntry[] {
35
+ return [...entries].sort((left, right) => {
36
+ if (left.sort_order !== right.sort_order) {
37
+ return left.sort_order - right.sort_order;
38
+ }
39
+ return left.name.localeCompare(right.name);
40
+ });
41
+ }
42
+
43
+ export function countWorkspaceEntries(workspace: ProjectWorkspace): number {
44
+ return Object.values(workspace).reduce((total, entries) => total + entries.length, 0);
45
+ }
46
+
47
+ export function buildWorkspaceCategoryGroups(
48
+ workspace: ProjectWorkspace,
49
+ extraCategories: string[] = [],
50
+ ): WorkspaceCategoryGroup[] {
51
+ const presetGroups: WorkspaceCategoryGroup[] = DEFAULT_WORKSPACE_CATEGORIES.map((category) => {
52
+ const entries = sortEntries(workspace[category.id] ?? []);
53
+ return {
54
+ id: category.id,
55
+ label: category.label,
56
+ entries,
57
+ isPreset: true,
58
+ isEmpty: entries.length === 0,
59
+ };
60
+ });
61
+
62
+ const customCategoryIds = [...new Set([...Object.keys(workspace), ...extraCategories])]
63
+ .map((category) => category.trim())
64
+ .filter((category) => category.length > 0)
65
+ .filter((category) => !isPresetWorkspaceCategory(category))
66
+ .sort((left, right) => formatWorkspaceCategoryLabel(left).localeCompare(formatWorkspaceCategoryLabel(right)));
67
+
68
+ const customGroups: WorkspaceCategoryGroup[] = customCategoryIds.map((category) => {
69
+ const entries = sortEntries(workspace[category] ?? []);
70
+ return {
71
+ id: category,
72
+ label: formatWorkspaceCategoryLabel(category),
73
+ entries,
74
+ isPreset: false,
75
+ isEmpty: entries.length === 0,
76
+ };
77
+ });
78
+
79
+ return [...presetGroups, ...customGroups];
80
+ }
@@ -20,8 +20,8 @@ import {
20
20
  getProjectBySlug,
21
21
  getProjectMemory,
22
22
  getProjectRepos,
23
+ getWorkspaceMapForContext,
23
24
  getProjectWithRepos,
24
-
25
25
  TaskRunHistory,
26
26
  defaultStagePrompts,
27
27
  DEFAULT_WORKFLOW_ID,
@@ -64,6 +64,11 @@ export interface StageConfig {
64
64
  export interface ProjectContext {
65
65
  project: Project | null;
66
66
  repos: ProjectRepo[];
67
+ workspace_map: Array<{
68
+ location: string;
69
+ path: string | null;
70
+ purpose: string | null;
71
+ }>;
67
72
  learnings: string[];
68
73
  }
69
74
 
@@ -285,6 +290,31 @@ function formatRepoLines(repos: ProjectRepo[]): string {
285
290
  .join("\n");
286
291
  }
287
292
 
293
+ function escapeMarkdownTableCell(value: string | null | undefined): string {
294
+ return String(value ?? "")
295
+ .replace(/\r\n?/g, "\n")
296
+ .replace(/\|/g, "\\|")
297
+ .replace(/\n/g, "<br />");
298
+ }
299
+
300
+ function formatWorkspaceMapSection(
301
+ workspaceMap: Array<{ location: string; path: string | null; purpose: string | null }>
302
+ ): string | null {
303
+ const mappedRows = workspaceMap.filter((entry) => entry.path);
304
+ if (!mappedRows.length) return null;
305
+
306
+ const rows = mappedRows.map((entry) =>
307
+ `| ${escapeMarkdownTableCell(entry.location)} | ${escapeMarkdownTableCell(entry.path)} | ${escapeMarkdownTableCell(entry.purpose)} |`
308
+ );
309
+
310
+ return [
311
+ "WORKSPACE MAP",
312
+ "| Location | Path | Purpose |",
313
+ "|----------|------|---------|",
314
+ ...rows,
315
+ ].join("\n");
316
+ }
317
+
288
318
  async function resolveProjectContext(task: Task, _projectLearnings: Learning[]): Promise<ProjectContext | null> {
289
319
  const projectId = task.project_id;
290
320
  const projectSlug = task.project || undefined;
@@ -306,7 +336,10 @@ async function resolveProjectContext(task: Task, _projectLearnings: Learning[]):
306
336
  return null;
307
337
  }
308
338
 
309
- const projectKnowledge = await getProjectMemory(projectWithRepos.id, "human");
339
+ const [projectKnowledge, workspace_map] = await Promise.all([
340
+ getProjectMemory(projectWithRepos.id, "human"),
341
+ getWorkspaceMapForContext(projectWithRepos.id),
342
+ ]);
310
343
  const projectSystemNote = getKnowledgeNote("project", projectWithRepos.id);
311
344
 
312
345
  if (projectWithRepos.repos.length > 0) {
@@ -337,6 +370,7 @@ async function resolveProjectContext(task: Task, _projectLearnings: Learning[]):
337
370
  return {
338
371
  project: projectWithRepos,
339
372
  repos: projectWithRepos.repos ?? [],
373
+ workspace_map,
340
374
  learnings: [
341
375
  ...projectKnowledge.map((entry) => entry.content),
342
376
  ...(projectSystemNote?.content ? [`[System-generated] ${projectSystemNote.content}`] : []),
@@ -404,18 +438,19 @@ export function buildTaskPrompt(args: {
404
438
  const projectContextSections = project_context?.project
405
439
  ? [
406
440
  `PROJECT CONTEXT\n${formatProjectMetadata(project_context.project)}`,
441
+ formatWorkspaceMapSection(project_context.workspace_map),
407
442
  `REPOSITORY MAP\n${formatRepoLines(project_context.repos)}`,
408
443
  `PROJECT KNOWLEDGE\n${formatList(project_context.learnings, "(none)")}`,
409
- ]
444
+ ].filter(Boolean)
410
445
  : [];
411
446
 
412
447
  const sections = [
413
448
  stage_config.prompt ? `STAGE PROMPT\n${stage_config.prompt}` : null,
414
449
  "EXECUTION RULES\n- Do not use AGX MCP tools or AGX MCP servers for this task.\n- Complete work using local edits, shell commands, and allowed HTTP APIs only.",
415
450
  `TASK META\n${metaLines.join("\n")}`,
451
+ ...projectContextSections,
416
452
  `TASK\n${description || "(empty)"}`,
417
453
  `COMMENTS\n${formatList(commentLines, "(none)")}`,
418
- ...projectContextSections,
419
454
  `TASK KNOWLEDGE\n${formatList(learnings.task.map((l) => l.content), "(none)")}`,
420
455
  `GLOBAL KNOWLEDGE\n${formatList(learnings.global.map((l) => l.content), "(none)")}`,
421
456
  agent_memories?.length ? `PAST LEARNINGS (from previous tasks)\n${formatList(agent_memories, "(none)")}` : null,