@mndrk/agx 2.4.6 → 2.4.8

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 (364) 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_29a06140._.js +1 -1
  211. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_4d88e4dc._.js +91 -0
  212. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_4dec65a2._.js +1 -1
  213. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_50e3a6e3._.js +1 -1
  214. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_56a2544c._.js +1 -1
  215. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_5843a1a1._.js +1 -1
  216. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_a15e73a6._.js +1 -1
  217. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_bd72806a._.js +1 -1
  218. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_c101ba9e._.js +1 -1
  219. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_c530bd77._.js +11 -0
  220. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_d69937f2._.js +91 -0
  221. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_e2867b32._.js +3 -0
  222. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_e32b0cab._.js +91 -0
  223. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_5ab8f104._.js +1 -1
  224. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_db_ts_77c23d6c._.js +1 -1
  225. 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
  226. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__1e0fd816._.js +3 -0
  227. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__42499ecf._.js +3 -0
  228. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__5f31e40b._.js +3 -0
  229. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__636799fb._.js +3 -0
  230. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{[root-of-the-server]__4bf7d5b9._.js → [root-of-the-server]__74436f61._.js} +2 -2
  231. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__9434d6d7._.js +3 -0
  232. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__bd339da0._.js +3 -0
  233. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__d08d7899._.js +3 -0
  234. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__e02a457c._.js +3 -0
  235. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__e3a1fef0._.js +3 -0
  236. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__f802e7d1._.js +3 -0
  237. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__ff96bb77._.js +3 -0
  238. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_6a2ba8f0._.js +3 -0
  239. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_7cb6b08a._.js +3 -0
  240. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_a0f42923._.js +7 -0
  241. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_a93c1059._.js +3 -0
  242. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{apps_local_components_PromptJobBoard_tsx_281b2873._.js → apps_local_04cb9fd5._.js} +3 -3
  243. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_15502af8._.js +3 -0
  244. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_16eaf7ae._.js +3 -0
  245. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_3c11c068._.js +8 -0
  246. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_89b49aad._.js +7 -0
  247. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_988d29c0._.js +1 -1
  248. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_ae1a134f._.js +7 -0
  249. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_agents_page_tsx_2a02508d._.js +1 -1
  250. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_folders_page_tsx_72fb68e5._.js +1 -1
  251. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_layout_tsx_3bb31889._.js +1 -1
  252. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_page_tsx_76330306._.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_eec36ab6._.js +1 -1
  259. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{apps_local_7d1abfbf._.js → apps_local_f1c9872a._.js} +2 -2
  260. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_fed01721._.js +1 -1
  261. package/cloud-runtime/standalone/apps/local/.next/server/functions-config-manifest.json +3 -0
  262. package/cloud-runtime/standalone/apps/local/.next/server/middleware-manifest.json +5 -5
  263. package/cloud-runtime/standalone/apps/local/.next/server/next-font-manifest.js +1 -1
  264. package/cloud-runtime/standalone/apps/local/.next/server/next-font-manifest.json +4 -0
  265. package/cloud-runtime/standalone/apps/local/.next/server/pages/404.html +2 -2
  266. package/cloud-runtime/standalone/apps/local/.next/server/pages/500.html +2 -2
  267. package/cloud-runtime/standalone/apps/local/.next/server/server-reference-manifest.js +1 -1
  268. package/cloud-runtime/standalone/apps/local/.next/server/server-reference-manifest.json +1 -1
  269. package/cloud-runtime/standalone/apps/local/.next/static/chunks/08e75b35d6c52269.js +1 -0
  270. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0d22a723b9b96e65.js +1 -0
  271. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{cb19d71dd7ffb935.js → 1585dd5f9ec4866a.js} +1 -1
  272. package/cloud-runtime/standalone/apps/local/.next/static/chunks/1bc8cc9cbb99c1ed.js +1 -0
  273. package/cloud-runtime/standalone/apps/local/.next/static/chunks/2586c0baa16e9a0d.js +16 -0
  274. package/cloud-runtime/standalone/apps/local/.next/static/chunks/2aa24a251622fd06.js +5 -0
  275. package/cloud-runtime/standalone/apps/local/.next/static/chunks/39513207112d6828.js +1 -0
  276. package/cloud-runtime/standalone/apps/local/.next/static/chunks/3fce625820bc2bd4.js +16 -0
  277. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{8d8fe711583a59f0.js → 41ae15220fc19bf7.js} +2 -2
  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/{74e3a3e93be78db8.js → 8b87c2521c519a1f.js} +9 -9
  282. package/cloud-runtime/standalone/apps/local/.next/static/chunks/90dd4ab03ab145d1.js +16 -0
  283. package/cloud-runtime/standalone/apps/local/.next/static/chunks/93749b45e2700808.js +16 -0
  284. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{48feca51cf97c8a7.js → 9bb8f1406365af81.js} +1 -1
  285. package/cloud-runtime/standalone/apps/local/.next/static/chunks/b4aa71020acae46f.js +16 -0
  286. package/cloud-runtime/standalone/apps/local/.next/static/chunks/c352706a0ad7e35d.js +1 -0
  287. package/cloud-runtime/standalone/apps/local/.next/static/chunks/c5436b2b7e8f0ca9.js +16 -0
  288. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{1600dd6ff8607d8f.js → c9a2c4b55bb76f4f.js} +6 -6
  289. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{1fbcd40dccee738f.js → cf33cb29946990e3.js} +2 -2
  290. package/cloud-runtime/standalone/apps/local/.next/static/chunks/d6a9cc66254693b8.js +1 -0
  291. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{9e703dd5d95e9557.js → e3bdd1e0f385114e.js} +1 -1
  292. package/cloud-runtime/standalone/apps/local/.next/static/chunks/ed606d6f94457578.css +1 -0
  293. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{6ffcd12eabd7c65e.js → f71d73895d228547.js} +1 -1
  294. package/cloud-runtime/standalone/apps/local/.next/static/chunks/f750d2f1882d31a8.js +5 -0
  295. package/cloud-runtime/standalone/apps/local/app/api/automations/route.ts +2 -10
  296. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/objectives/[objectiveId]/program/route.ts +77 -0
  297. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/workspace/export/route.ts +35 -0
  298. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/workspace/import/route.ts +91 -0
  299. package/cloud-runtime/standalone/apps/local/app/api/prompt-jobs/route.ts +1 -8
  300. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/layout.tsx +1 -1
  301. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/thread/page.tsx +14 -0
  302. package/cloud-runtime/standalone/apps/local/components/AutomationsBoard.tsx +15 -15
  303. package/cloud-runtime/standalone/apps/local/components/PromptJobBoard.tsx +7 -12
  304. package/cloud-runtime/standalone/apps/local/components/TrackerBoard.tsx +39 -1
  305. package/cloud-runtime/standalone/apps/local/components/projects/FoldersSummaryCard.tsx +51 -196
  306. package/cloud-runtime/standalone/apps/local/components/projects/FoldersView.tsx +662 -784
  307. package/cloud-runtime/standalone/apps/local/components/projects/ObjectiveScheduledTasksPanel.tsx +7 -10
  308. package/cloud-runtime/standalone/apps/local/components/projects/ProjectHome.tsx +4 -4
  309. package/cloud-runtime/standalone/apps/local/components/projects/ProjectObjectivesWorkspace.tsx +118 -0
  310. package/cloud-runtime/standalone/apps/local/components/projects/ProjectSettings.tsx +81 -7
  311. package/cloud-runtime/standalone/apps/local/components/thread/WorkspaceSidebar.tsx +13 -3
  312. package/cloud-runtime/standalone/apps/local/components/tracking/TrackerSetup.tsx +22 -14
  313. package/cloud-runtime/standalone/apps/local/hooks/useProjectWorkspace.ts +117 -0
  314. package/cloud-runtime/standalone/apps/local/lib/db/projects.ts +14 -10
  315. package/cloud-runtime/standalone/apps/local/lib/project-workspace.ts +80 -0
  316. package/cloud-runtime/standalone/apps/local/lib/task-context.ts +39 -4
  317. package/cloud-runtime/standalone/apps/local/lib/tracker/adapters/github/adapter.tsx +40 -4
  318. package/cloud-runtime/standalone/apps/local/lib/workspace-yaml.ts +164 -0
  319. package/cloud-runtime/standalone/apps/local/src/objectives/program/index.ts +7 -0
  320. package/cloud-runtime/standalone/apps/local/src/objectives/program/repository.ts +60 -0
  321. package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/objective-worker.ts +12 -0
  322. package/cloud-runtime/standalone/apps/local/src/scheduling/status.ts +42 -0
  323. package/cloud-runtime/standalone/apps/local/worker/index.js +14 -9
  324. package/lib/commands/workspace.js +145 -7
  325. package/package.json +1 -1
  326. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_09d85861._.js +0 -91
  327. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_25136564._.js +0 -11
  328. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_2caf4398._.js +0 -91
  329. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_31ca7a35._.js +0 -91
  330. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/9fb8c_lucide-react_dist_esm_icons_8c8ee1bc._.js +0 -3
  331. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__23838f87._.js +0 -3
  332. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__3b4708d5._.js +0 -3
  333. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__49cbf624._.js +0 -3
  334. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__49cdd178._.js +0 -3
  335. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__55ed4ff9._.js +0 -3
  336. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__7a31a76d._.js +0 -3
  337. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__a61463b8._.js +0 -7
  338. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__bb42490f._.js +0 -3
  339. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__ee9351f9._.js +0 -3
  340. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0ecd68e8._.js +0 -3
  341. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_347d036d._.js +0 -7
  342. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_5c140c38._.js +0 -7
  343. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_f99c22fd._.js +0 -3
  344. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_30d021de._.js +0 -3
  345. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_3b90cb76._.js +0 -18
  346. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_9f36c765._.js +0 -3
  347. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_8cc1a335._.js +0 -3
  348. package/cloud-runtime/standalone/apps/local/.next/static/chunks/1d8b2726979134e5.js +0 -16
  349. package/cloud-runtime/standalone/apps/local/.next/static/chunks/692103d55fcd0328.js +0 -5
  350. package/cloud-runtime/standalone/apps/local/.next/static/chunks/6952b44e247d594a.js +0 -16
  351. package/cloud-runtime/standalone/apps/local/.next/static/chunks/6bfdc40a24e65ca2.js +0 -1
  352. package/cloud-runtime/standalone/apps/local/.next/static/chunks/7ff071e8a33d2fd8.js +0 -16
  353. package/cloud-runtime/standalone/apps/local/.next/static/chunks/87e4fb11329a358d.js +0 -1
  354. package/cloud-runtime/standalone/apps/local/.next/static/chunks/92467c495ad08a85.js +0 -5
  355. package/cloud-runtime/standalone/apps/local/.next/static/chunks/941f7f3626ec442c.js +0 -16
  356. package/cloud-runtime/standalone/apps/local/.next/static/chunks/94a66d2d19268d25.js +0 -5
  357. package/cloud-runtime/standalone/apps/local/.next/static/chunks/add53c2fe147af75.css +0 -1
  358. package/cloud-runtime/standalone/apps/local/.next/static/chunks/b35865f64b56d6f4.js +0 -1
  359. package/cloud-runtime/standalone/apps/local/.next/static/chunks/d662272e49df1950.js +0 -20
  360. package/cloud-runtime/standalone/apps/local/.next/static/chunks/e0d68c6af17c8c87.js +0 -1
  361. package/cloud-runtime/standalone/apps/local/.next/static/chunks/f154e2ed7753f8ee.js +0 -16
  362. /package/cloud-runtime/standalone/apps/local/.next/static/{fipnHmd6JPn9sTuFdYS0y → O3Yu8lY-DN5fauB8GipIL}/_buildManifest.js +0 -0
  363. /package/cloud-runtime/standalone/apps/local/.next/static/{fipnHmd6JPn9sTuFdYS0y → O3Yu8lY-DN5fauB8GipIL}/_clientMiddlewareManifest.json +0 -0
  364. /package/cloud-runtime/standalone/apps/local/.next/static/{fipnHmd6JPn9sTuFdYS0y → O3Yu8lY-DN5fauB8GipIL}/_ssgManifest.js +0 -0
@@ -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,
@@ -234,9 +234,45 @@ export class GitHubAdapter implements TrackerAdapter {
234
234
  return [];
235
235
  }
236
236
 
237
- async handleApiKeyConnect(_projectId: string, _apiKey: string): Promise<void> {
238
- throw new Error(
239
- "GitHub requires OAuth authentication use the Connect button instead",
240
- );
237
+ async handleApiKeyConnect(projectId: string, apiKey: string): Promise<void> {
238
+ const token = apiKey.trim();
239
+ if (!token) throw new Error("Personal Access Token is required");
240
+
241
+ const res = await fetch("https://api.github.com/user", {
242
+ headers: {
243
+ Authorization: `Bearer ${token}`,
244
+ Accept: "application/vnd.github+json",
245
+ "X-GitHub-Api-Version": "2022-11-28",
246
+ },
247
+ });
248
+
249
+ if (res.status === 401) {
250
+ throw new Error("Invalid Personal Access Token");
251
+ }
252
+ if (res.status === 403) {
253
+ throw new Error("Token lacks required permissions or is rate-limited");
254
+ }
255
+ if (!res.ok) {
256
+ throw new Error(`GitHub API error (${res.status})`);
257
+ }
258
+
259
+ const user = (await res.json()) as { login?: string };
260
+ if (!user.login) {
261
+ throw new Error("Could not read user login from GitHub");
262
+ }
263
+
264
+ const scopeHeader = res.headers.get("x-oauth-scopes") ?? "";
265
+ const scopes = scopeHeader
266
+ .split(",")
267
+ .map((s) => s.trim())
268
+ .filter((s) => s.length > 0);
269
+
270
+ saveGithubTokens(projectId, {
271
+ accessToken: token,
272
+ refreshToken: null,
273
+ expiresAt: null,
274
+ login: user.login,
275
+ scopes,
276
+ });
241
277
  }
242
278
  }
@@ -0,0 +1,164 @@
1
+ import { dump, load } from "js-yaml";
2
+ import type { WorkspaceEntry } from "./db";
3
+ import { listWorkspaceCategories } from "./workspace-categories";
4
+
5
+ export interface WorkspaceYamlCategory {
6
+ id: string;
7
+ label: string;
8
+ }
9
+
10
+ export interface WorkspaceYamlEntry {
11
+ category: string;
12
+ name: string;
13
+ purpose: string | null;
14
+ }
15
+
16
+ export interface WorkspaceYamlDocument {
17
+ version: 1;
18
+ categories: WorkspaceYamlCategory[];
19
+ entries: WorkspaceYamlEntry[];
20
+ }
21
+
22
+ const knownCategoryLabels = new Map<string, string>(
23
+ listWorkspaceCategories().map((category) => [category.id, category.label]),
24
+ );
25
+
26
+ function normalizeRequiredString(value: unknown, field: string): string {
27
+ if (typeof value !== "string" || value.trim().length === 0) {
28
+ throw new Error(`Invalid or missing '${field}'`);
29
+ }
30
+
31
+ return value.trim();
32
+ }
33
+
34
+ function normalizeOptionalPurpose(value: unknown, field: string): string | null {
35
+ if (value === undefined || value === null) {
36
+ return null;
37
+ }
38
+
39
+ if (typeof value !== "string") {
40
+ throw new Error(`Invalid '${field}'`);
41
+ }
42
+
43
+ const trimmed = value.trim();
44
+ return trimmed.length > 0 ? trimmed : null;
45
+ }
46
+
47
+ function fallbackCategoryLabel(categoryId: string): string {
48
+ return categoryId
49
+ .split(/[_-]+/)
50
+ .filter(Boolean)
51
+ .map((part) => part.charAt(0).toUpperCase() + part.slice(1))
52
+ .join(" ") || categoryId;
53
+ }
54
+
55
+ function categoryKey(category: string, name: string): string {
56
+ return `${category}\u0000${name}`;
57
+ }
58
+
59
+ export function serializeWorkspace(entries: WorkspaceEntry[]): string {
60
+ const sortedEntries = [...entries].sort((a, b) => {
61
+ if (a.category !== b.category) return a.category.localeCompare(b.category);
62
+ if (a.sort_order !== b.sort_order) return a.sort_order - b.sort_order;
63
+ return a.name.localeCompare(b.name);
64
+ });
65
+
66
+ const categories = new Map<string, WorkspaceYamlCategory>();
67
+ for (const entry of sortedEntries) {
68
+ if (!categories.has(entry.category)) {
69
+ categories.set(entry.category, {
70
+ id: entry.category,
71
+ label: knownCategoryLabels.get(entry.category) ?? fallbackCategoryLabel(entry.category),
72
+ });
73
+ }
74
+ }
75
+
76
+ const doc: WorkspaceYamlDocument = {
77
+ version: 1,
78
+ categories: Array.from(categories.values()),
79
+ entries: sortedEntries.map((entry) => ({
80
+ category: entry.category,
81
+ name: entry.name,
82
+ purpose: entry.purpose ?? null,
83
+ })),
84
+ };
85
+
86
+ return dump(doc, {
87
+ lineWidth: 120,
88
+ noRefs: true,
89
+ sortKeys: false,
90
+ });
91
+ }
92
+
93
+ export function deserializeWorkspace(yaml: string): WorkspaceYamlDocument {
94
+ const parsed = load(yaml);
95
+
96
+ if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
97
+ throw new Error("Invalid YAML: expected an object at the root level");
98
+ }
99
+
100
+ const doc = parsed as Record<string, unknown>;
101
+ if (doc.version !== 1) {
102
+ throw new Error(`Unsupported version: ${doc.version ?? "missing"}. Only version 1 is supported.`);
103
+ }
104
+ if (!Array.isArray(doc.categories)) {
105
+ throw new Error("Invalid YAML: missing or invalid 'categories' array");
106
+ }
107
+ if (!Array.isArray(doc.entries)) {
108
+ throw new Error("Invalid YAML: missing or invalid 'entries' array");
109
+ }
110
+
111
+ const seenCategories = new Set<string>();
112
+ const categories = doc.categories.map((entry, index) => {
113
+ if (!entry || typeof entry !== "object" || Array.isArray(entry)) {
114
+ throw new Error(`Invalid category entry at index ${index}`);
115
+ }
116
+
117
+ const category = entry as Record<string, unknown>;
118
+ const id = normalizeRequiredString(category.id, `categories[${index}].id`);
119
+ const label = normalizeRequiredString(category.label, `categories[${index}].label`);
120
+
121
+ if (seenCategories.has(id)) {
122
+ throw new Error(`Duplicate category id '${id}'`);
123
+ }
124
+ seenCategories.add(id);
125
+
126
+ return { id, label };
127
+ });
128
+
129
+ const categoryIds = new Set(categories.map((category) => category.id));
130
+ const seenEntries = new Set<string>();
131
+
132
+ const entries = doc.entries.map((entry, index) => {
133
+ if (!entry || typeof entry !== "object" || Array.isArray(entry)) {
134
+ throw new Error(`Invalid workspace entry at index ${index}`);
135
+ }
136
+
137
+ const workspaceEntry = entry as Record<string, unknown>;
138
+ if ("path" in workspaceEntry) {
139
+ throw new Error(`Invalid workspace entry at index ${index}: 'path' is not allowed`);
140
+ }
141
+
142
+ const category = normalizeRequiredString(workspaceEntry.category, `entries[${index}].category`);
143
+ const name = normalizeRequiredString(workspaceEntry.name, `entries[${index}].name`);
144
+ const purpose = normalizeOptionalPurpose(workspaceEntry.purpose, `entries[${index}].purpose`);
145
+
146
+ if (!categoryIds.has(category)) {
147
+ throw new Error(`Entry '${name}' references unknown category '${category}'`);
148
+ }
149
+
150
+ const key = categoryKey(category, name);
151
+ if (seenEntries.has(key)) {
152
+ throw new Error(`Duplicate workspace entry '${category}/${name}'`);
153
+ }
154
+ seenEntries.add(key);
155
+
156
+ return { category, name, purpose };
157
+ });
158
+
159
+ return {
160
+ version: 1,
161
+ categories,
162
+ entries,
163
+ };
164
+ }
@@ -0,0 +1,7 @@
1
+ export {
2
+ PROGRAM_FILENAME,
3
+ getProgramPath,
4
+ readProgram,
5
+ writeProgram,
6
+ } from "./repository";
7
+ export type { ObjectiveProgram } from "./repository";
@@ -0,0 +1,60 @@
1
+ import fs from "fs";
2
+ import path from "path";
3
+ import { homedir } from "os";
4
+
5
+ export const PROGRAM_FILENAME = "program.md";
6
+
7
+ function resolveAgxDataDir(): string {
8
+ const configured = process.env.AGX_DATA_DIR?.trim();
9
+ if (configured) return path.resolve(configured);
10
+ return path.join(homedir(), ".agx");
11
+ }
12
+
13
+ export function getProgramPath(projectSlug: string, objectiveKey: string): string {
14
+ return path.join(
15
+ resolveAgxDataDir(),
16
+ "projects",
17
+ projectSlug,
18
+ "objectives",
19
+ objectiveKey,
20
+ PROGRAM_FILENAME,
21
+ );
22
+ }
23
+
24
+ export interface ObjectiveProgram {
25
+ path: string;
26
+ content: string | null;
27
+ updatedAt: string | null;
28
+ }
29
+
30
+ export function readProgram(projectSlug: string, objectiveKey: string): ObjectiveProgram {
31
+ const filePath = getProgramPath(projectSlug, objectiveKey);
32
+ if (!fs.existsSync(filePath)) {
33
+ return { path: filePath, content: null, updatedAt: null };
34
+ }
35
+ try {
36
+ const content = fs.readFileSync(filePath, "utf8");
37
+ const stat = fs.statSync(filePath);
38
+ return { path: filePath, content, updatedAt: stat.mtime.toISOString() };
39
+ } catch {
40
+ return { path: filePath, content: null, updatedAt: null };
41
+ }
42
+ }
43
+
44
+ export function writeProgram(
45
+ projectSlug: string,
46
+ objectiveKey: string,
47
+ content: string,
48
+ ): ObjectiveProgram {
49
+ const filePath = getProgramPath(projectSlug, objectiveKey);
50
+ fs.mkdirSync(path.dirname(filePath), { recursive: true });
51
+ const trimmed = content.replace(/\s+$/g, "");
52
+ if (trimmed.length === 0) {
53
+ if (fs.existsSync(filePath)) fs.unlinkSync(filePath);
54
+ return { path: filePath, content: null, updatedAt: null };
55
+ }
56
+ const body = trimmed + "\n";
57
+ fs.writeFileSync(filePath, body, "utf8");
58
+ const stat = fs.statSync(filePath);
59
+ return { path: filePath, content: body, updatedAt: stat.mtime.toISOString() };
60
+ }
@@ -7,6 +7,7 @@ import {
7
7
  import { getIssueActiveAgents, type IssueActiveAgent } from '@/lib/linear-run-store';
8
8
  import { getActivityRepository } from '@/src/objectives/activities/repository';
9
9
  import { getNoteRepository } from '@/src/objectives/notes';
10
+ import { readProgram } from '@/src/objectives/program';
10
11
  import {
11
12
  loadProjectObjectiveContext,
12
13
  persistProjectObjectiveMetadata,
@@ -220,6 +221,17 @@ export async function buildObjectiveObservation(opts: {
220
221
  `Progress: ${objective.progress}% | Status: ${objective.status}`,
221
222
  );
222
223
 
224
+ // PROGRAM (objective-level prompt: goal / definition of better / blast radius / learnings)
225
+ const program = readProgram(projectSlug, objective.key);
226
+ sections.push('', 'PROGRAM', `path: ${program.path}`);
227
+ if (program.content && program.content.trim().length > 0) {
228
+ sections.push(program.content.trim());
229
+ } else {
230
+ sections.push(
231
+ '(empty) No program has been authored for this objective yet. Before committing to a direction, surface this to the user in chat: ask what "better" means for this objective (the success metric), what paths/systems are in-scope, and any constraints. Capture the answer by writing to the path above.',
232
+ );
233
+ }
234
+
223
235
  // NOTES
224
236
  if (notes.length > 0) {
225
237
  sections.push(
@@ -0,0 +1,42 @@
1
+ type ScheduleState = "active" | "paused" | "stopped" | string;
2
+
3
+ interface ScheduledRunStatusInput {
4
+ state: ScheduleState;
5
+ nextScheduledAt: number | null | undefined;
6
+ lastCompletedAt: number | null | undefined;
7
+ inProgress?: boolean;
8
+ now?: number;
9
+ }
10
+
11
+ interface IntervalScheduleStatusInput {
12
+ state: ScheduleState;
13
+ lastCompletedAt: number | null | undefined;
14
+ intervalMs: number;
15
+ inProgress?: boolean;
16
+ now?: number;
17
+ }
18
+
19
+ export function isScheduledRunOverdue({
20
+ state,
21
+ nextScheduledAt,
22
+ lastCompletedAt,
23
+ inProgress = false,
24
+ now = Date.now(),
25
+ }: ScheduledRunStatusInput): boolean {
26
+ if (state !== "active" || inProgress) return false;
27
+ if (nextScheduledAt == null || nextScheduledAt >= now) return false;
28
+ if (lastCompletedAt != null && lastCompletedAt >= nextScheduledAt) return false;
29
+ return true;
30
+ }
31
+
32
+ export function isIntervalScheduleOverdue({
33
+ state,
34
+ lastCompletedAt,
35
+ intervalMs,
36
+ inProgress = false,
37
+ now = Date.now(),
38
+ }: IntervalScheduleStatusInput): boolean {
39
+ if (state !== "active" || inProgress) return false;
40
+ if (lastCompletedAt == null) return false;
41
+ return lastCompletedAt + intervalMs < now;
42
+ }
@@ -7904,19 +7904,22 @@ async function getProjectForThread(threadId) {
7904
7904
  return data?.project_id ?? null;
7905
7905
  }
7906
7906
  async function getProjectWorkspace(projectId) {
7907
- const db2 = createAdminDbClient();
7908
- const { data, error } = await db2.from("workspace_entries").select("*").eq("project_id", projectId).order("category", { ascending: true }).order("sort_order", { ascending: true }).order("name", { ascending: true });
7909
- if (error) {
7910
- if (isMissingRelationError(error, "workspace_entries")) return {};
7911
- throw error;
7912
- }
7913
- const entries = data || [];
7907
+ const entries = await getProjectWorkspaceEntries(projectId);
7914
7908
  return entries.reduce((acc, entry) => {
7915
7909
  if (!acc[entry.category]) acc[entry.category] = [];
7916
7910
  acc[entry.category].push(entry);
7917
7911
  return acc;
7918
7912
  }, {});
7919
7913
  }
7914
+ async function getProjectWorkspaceEntries(projectId) {
7915
+ const db2 = createAdminDbClient();
7916
+ const { data, error } = await db2.from("workspace_entries").select("*").eq("project_id", projectId).order("category", { ascending: true }).order("sort_order", { ascending: true }).order("name", { ascending: true });
7917
+ if (error) {
7918
+ if (isMissingRelationError(error, "workspace_entries")) return [];
7919
+ throw error;
7920
+ }
7921
+ return data || [];
7922
+ }
7920
7923
  async function createWorkspaceEntry(projectId, entry) {
7921
7924
  const db2 = createAdminDbClient();
7922
7925
  const id = (0, import_crypto.randomUUID)();
@@ -7928,7 +7931,7 @@ async function createWorkspaceEntry(projectId, entry) {
7928
7931
  name: entry.name,
7929
7932
  path: entry.path || null,
7930
7933
  purpose: entry.purpose || null,
7931
- sort_order: 0,
7934
+ sort_order: entry.sort_order ?? 0,
7932
7935
  created_at: now,
7933
7936
  updated_at: now
7934
7937
  }).select().single();
@@ -7942,6 +7945,7 @@ async function updateWorkspaceEntry(projectId, entryId, updates) {
7942
7945
  if (updates.path !== void 0) payload.path = updates.path;
7943
7946
  if (updates.purpose !== void 0) payload.purpose = updates.purpose;
7944
7947
  if (updates.sort_order !== void 0) payload.sort_order = updates.sort_order;
7948
+ payload.updated_at = (/* @__PURE__ */ new Date()).toISOString();
7945
7949
  const { data, error } = await db2.from("workspace_entries").update(payload).eq("id", entryId).eq("project_id", projectId).select().single();
7946
7950
  if (error) {
7947
7951
  if (error.code === "PGRST116") return null;
@@ -9138,6 +9142,7 @@ __export(db_exports, {
9138
9142
  getProjectVariables: () => getProjectVariables,
9139
9143
  getProjectWithRepos: () => getProjectWithRepos,
9140
9144
  getProjectWorkspace: () => getProjectWorkspace,
9145
+ getProjectWorkspaceEntries: () => getProjectWorkspaceEntries,
9141
9146
  getProjects: () => getProjects,
9142
9147
  getStagePrompt: () => getStagePrompt,
9143
9148
  getStagePrompts: () => getStagePrompts,
@@ -13032,6 +13037,7 @@ async function saveThreadRepoSelections(rootMessageId, repoIds) {
13032
13037
  var import_fs12, import_path12, import_os12, DatabaseSyncCtor5, HISTORY_DIR2, DB_PATH3, LEGACY_THREAD_ID, REACTION_TYPES, ACTIVE_AGENT_PROCESS_STALE_MS, ACTIVE_CHAT_RUN_STALE_MS, ALLOWED_TRANSITIONS, ReactionStoreError, withDatabase;
13033
13038
  var init_history_store = __esm({
13034
13039
  "apps/local/lib/history-store.ts"() {
13040
+ "use strict";
13035
13041
  init_sqlite_compat();
13036
13042
  import_fs12 = require("fs");
13037
13043
  import_path12 = __toESM(require("path"));
@@ -13057,7 +13063,6 @@ var init_history_store = __esm({
13057
13063
  blocked: /* @__PURE__ */ new Set(["ack", "blocked", "working"])
13058
13064
  };
13059
13065
  ReactionStoreError = class extends Error {
13060
- status;
13061
13066
  constructor(message, status) {
13062
13067
  super(message);
13063
13068
  this.name = "ReactionStoreError";