@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
@@ -1,4 +1,4 @@
1
- module.exports=[254799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},902157,(e,t,r)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},750227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},660526,(e,t,r)=>{t.exports=e.x("node:os",()=>require("node:os"))},522734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},814747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},446786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},233405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},500874,(e,t,r)=>{t.exports=e.x("buffer",()=>require("buffer"))},666680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},924868,(e,t,r)=>{t.exports=e.x("fs/promises",()=>require("fs/promises"))},224361,(e,t,r)=>{t.exports=e.x("util",()=>require("util"))},214348,e=>{"use strict";var t=e.i(522734),r=e.i(446786),s=e.i(814747),i=e.i(801243);let{DatabaseSync:o}=process.getBuiltinModule("node:sqlite"),a=process.env.AGX_GROUP_CHAT_DIR?.trim()||s.default.join(r.default.homedir(),".agx","group-chat"),n=s.default.join(a,"history.sqlite");function u(e){return"scripted"===e?"scripted":"chat"}function c(e){let t,r=e.chat_created_at??e.created_at,s=e.chat_completed_at??null,i=function(e,t){switch(e){case"queued":return"queued";case"running":case"awaiting_user":case"blocked":return"running";case"completed":return"success";case"failed":return"failed";case"cancelled":return"cancelled";default:return t}}(e.chat_status,e.status);return{id:e.id,projectId:e.project_id,projectSlug:e.project_slug,issueId:e.issue_id,issueIdentifier:e.issue_identifier,issueTitle:e.issue_title,issueStatus:e.issue_status,issueAssignee:e.issue_assignee,threadId:e.thread_id,rootMessageId:e.root_message_id,chatRunId:e.chat_run_id,agentId:e.agent_id,agentName:e.agent_name,mode:u(e.mode),sessionTitle:"chat"===u(e.mode)&&(t=String(e.root_content??"").replace(/\[reaction\s+[^\]]*\]/gi,"").replace(/\[agx:[^\]]*\]/g,"").replace(/\[checkpoint\]/g,"").replace(/\[criteria:\s*[^\]]*\]/g,"").replace(/\[done\]/g,"").replace(/\[blocked[^\]]*\]/g,"").replace(/^\[SKIP\]$/gm,"").replace(/\s+/g," ").trim())?t.length>72?`${t.slice(0,69).trimEnd()}...`:t:null,status:i,durationMs:null!=s?Math.max(s-r,0):null,lastError:e.chat_last_error??e.error,recapFilePath:e.recap_file_path??null,startedAt:new Date(r).toISOString(),updatedAt:new Date((e.chat_updated_at??e.updated_at)||e.updated_at).toISOString(),completedAt:"number"==typeof s?new Date(s).toISOString():null}}async function l(e){await t.promises.mkdir(a,{recursive:!0});let r=new o(n);(0,i.pragmaSet)(r,"journal_mode = WAL");try{r.exec(`
1
+ module.exports=[254799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},902157,(e,t,r)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},750227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},660526,(e,t,r)=>{t.exports=e.x("node:os",()=>require("node:os"))},522734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},814747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},446786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},233405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},500874,(e,t,r)=>{t.exports=e.x("buffer",()=>require("buffer"))},666680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},924868,(e,t,r)=>{t.exports=e.x("fs/promises",()=>require("fs/promises"))},224361,(e,t,r)=>{t.exports=e.x("util",()=>require("util"))},214348,e=>{"use strict";var t=e.i(522734),r=e.i(446786),s=e.i(814747),i=e.i(801243);let{DatabaseSync:a}=process.getBuiltinModule("node:sqlite"),o=process.env.AGX_GROUP_CHAT_DIR?.trim()||s.default.join(r.default.homedir(),".agx","group-chat"),n=s.default.join(o,"history.sqlite");function u(e){return"scripted"===e?"scripted":"chat"}function c(e){let t,r=e.chat_created_at??e.created_at,s=e.chat_completed_at??null,i=function(e,t){switch(e){case"queued":return"queued";case"running":case"awaiting_user":case"blocked":return"running";case"completed":return"success";case"failed":return"failed";case"cancelled":return"cancelled";default:return t}}(e.chat_status,e.status);return{id:e.id,projectId:e.project_id,projectSlug:e.project_slug,issueId:e.issue_id,issueIdentifier:e.issue_identifier,issueTitle:e.issue_title,issueStatus:e.issue_status,issueAssignee:e.issue_assignee,threadId:e.thread_id,rootMessageId:e.root_message_id,chatRunId:e.chat_run_id,agentId:e.agent_id,agentName:e.agent_name,mode:u(e.mode),sessionTitle:"chat"===u(e.mode)&&(t=String(e.root_content??"").replace(/\[reaction\s+[^\]]*\]/gi,"").replace(/\[agx:[^\]]*\]/g,"").replace(/\[checkpoint\]/g,"").replace(/\[criteria:\s*[^\]]*\]/g,"").replace(/\[done\]/g,"").replace(/\[blocked[^\]]*\]/g,"").replace(/^\[SKIP\]$/gm,"").replace(/\s+/g," ").trim())?t.length>72?`${t.slice(0,69).trimEnd()}...`:t:null,status:i,durationMs:null!=s?Math.max(s-r,0):null,lastError:e.chat_last_error??e.error,recapFilePath:e.recap_file_path??null,startedAt:new Date(r).toISOString(),updatedAt:new Date((e.chat_updated_at??e.updated_at)||e.updated_at).toISOString(),completedAt:"number"==typeof s?new Date(s).toISOString():null}}async function l(e){await t.promises.mkdir(o,{recursive:!0});let r=new a(n);(0,i.pragmaSet)(r,"journal_mode = WAL");try{r.exec(`
2
2
  CREATE TABLE IF NOT EXISTS chat_runs (
3
3
  id TEXT PRIMARY KEY,
4
4
  thread_id TEXT NOT NULL,
@@ -59,7 +59,7 @@ module.exports=[254799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},
59
59
  CREATE UNIQUE INDEX IF NOT EXISTS idx_linear_runs_chat_run_id
60
60
  ON linear_runs (chat_run_id)
61
61
  WHERE chat_run_id IS NOT NULL;
62
- `);let t=r.prepare("PRAGMA table_info(linear_runs)").all();return t.some(e=>"mode"===e.name)||r.exec("ALTER TABLE linear_runs ADD COLUMN mode TEXT NOT NULL DEFAULT 'chat';"),t.some(e=>"recap_file_path"===e.name)||r.exec("ALTER TABLE linear_runs ADD COLUMN recap_file_path TEXT;"),e(r)}finally{r.close()}}async function d(e){var t;let r=e.issueId.trim(),s=(t=e.projectId??null,t?.trim()||null),i=Number.isFinite(e.limit)?Math.min(Math.max(Number(e.limit),1),100):50;return l(e=>{let t=[r],o=["lr.issue_id = ?"];return s&&(o.push("lr.project_id = ?"),t.push(s)),t.push(i),e.prepare(`SELECT
62
+ `);let t=r.prepare("PRAGMA table_info(linear_runs)").all();return t.some(e=>"mode"===e.name)||r.exec("ALTER TABLE linear_runs ADD COLUMN mode TEXT NOT NULL DEFAULT 'chat';"),t.some(e=>"recap_file_path"===e.name)||r.exec("ALTER TABLE linear_runs ADD COLUMN recap_file_path TEXT;"),e(r)}finally{r.close()}}async function d(e){var t;let r=e.issueId.trim(),s=(t=e.projectId??null,t?.trim()||null),i=Number.isFinite(e.limit)?Math.min(Math.max(Number(e.limit),1),100):50;return l(e=>{let t=[r],a=["lr.issue_id = ?"];return s&&(a.push("lr.project_id = ?"),t.push(s)),t.push(i),e.prepare(`SELECT
63
63
  lr.*,
64
64
  cr.status AS chat_status,
65
65
  cr.last_error AS chat_last_error,
@@ -72,7 +72,7 @@ module.exports=[254799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},
72
72
  SELECT id FROM chat_runs WHERE thread_id = lr.thread_id ORDER BY updated_at DESC LIMIT 1
73
73
  )
74
74
  LEFT JOIN messages msg ON msg.thread_id = lr.thread_id AND msg.id = lr.root_message_id
75
- WHERE ${o.join(" AND ")}
75
+ WHERE ${a.join(" AND ")}
76
76
  ORDER BY lr.created_at DESC
77
77
  LIMIT ?`).all(...t).map(c)})}async function p(e){return l(t=>{let r=e?.trim(),s=r?`SELECT DISTINCT lr.issue_id, lr.agent_id, lr.agent_name
78
78
  FROM linear_runs lr
@@ -85,7 +85,7 @@ module.exports=[254799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},
85
85
  INNER JOIN chat_runs cr ON cr.id = (
86
86
  SELECT id FROM chat_runs WHERE thread_id = lr.thread_id ORDER BY updated_at DESC LIMIT 1
87
87
  )
88
- WHERE cr.status IN ('queued', 'running')`;return(r?t.prepare(s).all(e.trim()):t.prepare(s).all()).map(e=>({issueId:e.issue_id,agentId:e.agent_id,agentName:e.agent_name}))})}e.s(["getIssueActiveAgents",()=>p,"listLinearRuns",()=>d])},857155,e=>{"use strict";var t=e.i(577820),r=e.i(297761),s=e.i(214348),i=e.i(577251);e.i(533111);var o=e.i(782557),a=e.i(700014);let n="project_objective_health_history",u={"on track":"on_track","at risk":"at_risk","off track":"off_track",done:"done"};function c(e){return!!e&&"object"==typeof e&&!Array.isArray(e)}function l(e){return"number"==typeof e&&Number.isFinite(e)?Math.max(0,Math.min(100,Math.round(e))):0}function d(e){return"string"==typeof e&&e.trim()?e.trim():void 0}function p(...e){let t=e.flatMap(e=>e??[]),r=[];for(let e of[...t].sort((e,t)=>Date.parse(e.recordedAt)-Date.parse(t.recordedAt))){let t=r[r.length-1]??null;t&&t.progress===e.progress&&t.status===e.status&&(!t.source||!e.source||t.source===e.source)&&5e3>=Math.abs(Date.parse(e.recordedAt)-Date.parse(t.recordedAt))||r.push(e)}return r}var T=e.i(374371),_=e.i(994281);let E={on_track:"On track",at_risk:"At risk",off_track:"Off track",done:"Done"};async function m(e){let t=Date.now(),r="";try{return await (0,T.runCliResponse)({provider:e.provider,model:e.model,prompt:e.prompt,identity:e.identity,self:e.self,skills:e.skills,systemContext:e.systemContext,passthroughArgs:e.cliArgs?e.cliArgs.split(/\s+/).filter(Boolean):void 0,onDelta:e=>{r+=e},onSpawn:e.onSpawn}),{output:r,error:"",durationMs:Date.now()-t,status:"success"}}catch(e){return{output:r,error:e instanceof Error?e.message:String(e),durationMs:Date.now()-t,status:"failed"}}}function g(e){try{let t=JSON.parse(e);return t&&"object"==typeof t&&!Array.isArray(t)?t:null}catch{return null}}function h(e){let t=e.trim();if(!t)return null;let r=g(t);if(r)return r;let s=t.indexOf("{"),i=t.lastIndexOf("}");return -1===s||i<=s?null:g(t.slice(s,i+1))}function N(e){return"number"==typeof e&&Number.isFinite(e)?(0,_.normalizeProjectHealthProgress)(e):null}function j(e){return"string"==typeof e&&e.trim()?(0,_.normalizeProjectHealthStatus)(e):null}function f(e,t,r){return`${e}: ${t}% ${E[r]}`}function I(e){return[`- id: ${e.id}`,` identifier: ${e.identifier}`,` title: ${e.title}`,` status: ${e.status}`,` assignee: ${e.assignee??"Unassigned"}`,e.url?` url: ${e.url}`:null].filter(e=>!!e).join("\n")}async function b(e){let{job:a,objectiveContext:n}=e,{project:u,workspace:c,objective:l}=n,d=u.slug??u.id,[{issues:p},T,_,E]=await Promise.all([(0,r.listObjectiveTrackerIssues)({projectId:u.id,objectiveKey:l.key,projectSlug:d,refresh:!0}),(0,s.getIssueActiveAgents)(u.id),Promise.resolve((0,i.getActivityRepository)(d,l.key).list({limit:20})),Promise.resolve((0,o.getNoteRepository)(d,l.key).readAll())]),m=new Set(p.map(e=>e.id)),g=T.filter(e=>m.has(e.issueId)),h=(0,r.filterObjectiveTrackerIssuesForAction)(p,g.map(e=>e.issueId)),N=(0,t.getPromptJobStore)().listJobs({objectiveId:l.id}).filter(e=>e.id!==a.id),j=c.objectives.filter(e=>e.id!==l.id),f=[];f.push("GOAL",l.title,l.summary?.trim()||"No summary provided."),f.push("","CURRENT STATE",`Progress: ${l.progress}% | Status: ${l.status}`),E.length>0&&f.push("","NOTES",...E.map(e=>`### ${e.title}
89
- ${e.body}`));let b=_.activities??[];return b.length>0&&f.push("","RECENT ACTIVITY",...b.map(e=>{let t=e.createdAt.replace("T"," ").replace(/\.\d+Z$/,"").slice(0,16);return`- [${t}] ${e.body.split("\n")[0]}`})),p.length>0?f.push("","LINEAR TICKETS",p.map(e=>I(e)).join("\n\n")):f.push("","LINEAR TICKETS","- None."),g.length>0&&f.push("","ACTIVE SESSIONS",...g.map(e=>`- ${e.issueId}: running with ${e.agentName}`)),N.length>0&&f.push("","SCHEDULED TASKS",...N.map(e=>`- ${e.name} | state: ${e.state} | last outcome: ${e.lastOutcome??"none"}`)),j.length>0&&f.push("","PROJECT CONTEXT",...j.map(e=>`- ${e.title} (${e.key}) | ${e.progress}% | ${e.status}`)),f.push("","GUIDANCE",a.prompt.trim()||"No additional guidance provided."),f.push("","ELIGIBLE TICKETS",h.length>0?h.map(e=>I(e)).join("\n\n"):"- None."),f.push("","---","What single action most advances this objective right now?"),{prompt:f.join("\n"),issues:p,eligibleIssues:h,activeIssueAgents:g}}async function L(t){let r=Date.now();try{if(!t.job.projectId||!t.job.objectiveId)throw Error("Objective worker jobs require projectId and objectiveId.");let s=await (0,a.loadProjectObjectiveContext)(t.job.projectId,t.job.objectiveId);if(!s)throw Error("Objective context could not be resolved for this scheduled task.");let i=await b({job:t.job,objectiveContext:s}),o=await m({...t.controllerContext,prompt:i.prompt,systemContext:'You are deciding what action an objective worker should take next.\nReturn ONLY raw JSON with no markdown fences or commentary.\nValid responses:\n{"action":"work_ticket","ticketId":"ticket-id","reason":"...","objectiveProgress":42,"objectiveStatus":"at_risk","projectProgress":35,"projectStatus":"at_risk"}\n{"action":"run_prompt","prompt":"detailed instructions","reason":"...","objectiveProgress":42,"objectiveStatus":"at_risk"}\n{"action":"stop","reason":"...","objectiveProgress":42,"objectiveStatus":"at_risk"}\nRules:\n- "work_ticket": ticketId must exactly match one of the ELIGIBLE TICKETS ids.\n- "run_prompt": for work not captured by existing tickets. When no tickets are actionable and the objective is not done, use this to plan: review notes, refine the last plan, or outline next steps. The prompt should instruct the agent to append to an existing note when one is relevant rather than creating a new note.\n- "stop": only when the objective is done or genuinely no action (including planning) adds value.\nPercentages must be integers 0-100.\nStatuses: on_track, at_risk, off_track, done.',cliArgs:t.cliArgs,onSpawn:t.onSpawn});if("success"!==o.status)return{...o,output:o.output||"Objective controller failed before selecting an action."};let T=h(o.output),E="string"==typeof T?.action?T.action.trim().toLowerCase():"string"==typeof T?.decision?T.decision.trim().toLowerCase():"",g="work"===E?"work_ticket":E;if(!g){let e=o.output??"";console.warn(`[objective-worker] empty action from controller (job=${t.job.id}, outputLen=${e.length}, parsed=${T?"object":"null"}):`,e.slice(0,500))}let I="string"==typeof T?.reason?T.reason.trim():"",L=N(T?.objectiveProgress),O=j(T?.objectiveStatus),A=N(T?.projectProgress),v=j(T?.projectStatus),S="string"==typeof T?.projectNote?T.projectNote.trim():"",y="string"==typeof T?.objectiveNote?T.objectiveNote.trim():"",R=new Date().toISOString(),k=null!==L&&O?f("Objective health",L,O):null,w=null!==A&&v?f("Project health",A,v):null,x=null!==L&&null!==O?{objectiveId:s.objective.id,objectiveKey:s.objective.key,progress:L,status:O,recordedAt:R,source:`scheduled-task:${t.job.id}`,note:y||void 0}:null,D=null!==L&&null!==O&&(L!==s.objective.progress||O!==s.objective.status),X=D?(0,_.upsertProjectObjective)(s.workspace,{...s.objective,progress:L,status:O,updatedAt:R}):s.workspace,C=null!==A&&null!==v?{progress:A,status:v,updatedAt:R,source:`scheduled-task:${t.job.id}`,objectiveId:s.objective.id,objectiveKey:s.objective.key,note:S||void 0}:null,U=e=>{let t=e;return C&&(t=(0,_.writeProjectHealthSnapshot)(t,C)),x&&(t=function(e,t){let r=t.objectiveId.trim();if(!r)return e;let s=function(e,t){if(!c(e)||!t.trim())return[];let r=e[n];if(!c(r))return[];let s=r[t.trim()];return Array.isArray(s)?p(s.map(e=>(function(e){if(!c(e))return null;let t=function(e){if("string"!=typeof e)return null;let t=e.trim().toLowerCase();return"on_track"===t||"at_risk"===t||"off_track"===t||"done"===t?t:u[t]??null}(e.status),r=function(e){if("string"!=typeof e)return null;let t=Date.parse(e);return Number.isNaN(t)?null:new Date(t).toISOString()}(e.recordedAt);return t&&r?{progress:l(e.progress),status:t,recordedAt:r,source:d(e.source),note:d(e.note),objectiveId:d(e.objectiveId)??null,objectiveKey:d(e.objectiveKey)??null}:null})(e)).filter(e=>!!e)):[]}(e,r),i=p(s,[t]).slice(-200),o=c(e[n])?e[n]:{};return{...e,[n]:{...o,[r]:i.map(e=>({progress:l(e.progress),status:e.status,recordedAt:e.recordedAt,...e.source?{source:e.source}:{},...e.note?{note:e.note}:{},...e.objectiveId?{objectiveId:e.objectiveId}:{},...e.objectiveKey?{objectiveKey:e.objectiveKey}:{}}))}}}(t,x)),t};D?await (0,a.persistProjectObjectiveWorkspace)({projectId:s.project.id,currentMetadata:s.project.metadata,workspace:X,transformMetadata:U}):(x||C)&&await (0,a.persistProjectObjectiveMetadata)({projectId:s.project.id,currentMetadata:s.project.metadata,transformMetadata:U});let{dispatchObjectiveAction:M}=await e.A(371020),$=await M({action:g,parsed:T,reason:I,job:t.job,controllerContext:t.controllerContext,sessionAgent:t.sessionAgent,objectiveContext:s,eligibleIssues:i.eligibleIssues,issues:i.issues,healthSummaries:{objectiveHealthSummary:k,projectHealthSummary:w,objectiveNote:y,projectNote:S},cliArgs:t.cliArgs,onSpawn:t.onSpawn,startMs:r}),{logActionReceipt:P}=await e.A(371020);return await P($,{jobId:t.job.id,projectId:t.job.projectId,objectiveId:t.job.objectiveId}),{output:$.result,error:"failed"===$.status?$.result:"",durationMs:Date.now()-r,status:$.status}}catch(e){return{output:"",error:e instanceof Error?e.message:String(e),durationMs:Date.now()-r,status:"failed"}}}e.s(["buildObjectiveObservation",()=>b,"executeObjectiveWorker",()=>L,"extractFirstJsonObject",()=>h],857155)}];
88
+ WHERE cr.status IN ('queued', 'running')`;return(r?t.prepare(s).all(e.trim()):t.prepare(s).all()).map(e=>({issueId:e.issue_id,agentId:e.agent_id,agentName:e.agent_name}))})}e.s(["getIssueActiveAgents",()=>p,"listLinearRuns",()=>d])},857155,e=>{"use strict";var t=e.i(577820),r=e.i(297761),s=e.i(214348),i=e.i(577251);e.i(533111);var a=e.i(782557),o=e.i(522734),n=e.i(814747),u=e.i(446786),c=e.i(700014);let l="project_objective_health_history",d={"on track":"on_track","at risk":"at_risk","off track":"off_track",done:"done"};function p(e){return!!e&&"object"==typeof e&&!Array.isArray(e)}function T(e){return"number"==typeof e&&Number.isFinite(e)?Math.max(0,Math.min(100,Math.round(e))):0}function _(e){return"string"==typeof e&&e.trim()?e.trim():void 0}function E(...e){let t=e.flatMap(e=>e??[]),r=[];for(let e of[...t].sort((e,t)=>Date.parse(e.recordedAt)-Date.parse(t.recordedAt))){let t=r[r.length-1]??null;t&&t.progress===e.progress&&t.status===e.status&&(!t.source||!e.source||t.source===e.source)&&5e3>=Math.abs(Date.parse(e.recordedAt)-Date.parse(t.recordedAt))||r.push(e)}return r}var h=e.i(374371),m=e.i(994281);let g={on_track:"On track",at_risk:"At risk",off_track:"Off track",done:"Done"};async function j(e){let t=Date.now(),r="";try{return await (0,h.runCliResponse)({provider:e.provider,model:e.model,prompt:e.prompt,identity:e.identity,self:e.self,skills:e.skills,systemContext:e.systemContext,passthroughArgs:e.cliArgs?e.cliArgs.split(/\s+/).filter(Boolean):void 0,onDelta:e=>{r+=e},onSpawn:e.onSpawn}),{output:r,error:"",durationMs:Date.now()-t,status:"success"}}catch(e){return{output:r,error:e instanceof Error?e.message:String(e),durationMs:Date.now()-t,status:"failed"}}}function f(e){try{let t=JSON.parse(e);return t&&"object"==typeof t&&!Array.isArray(t)?t:null}catch{return null}}function N(e){let t=e.trim();if(!t)return null;let r=f(t);if(r)return r;let s=t.indexOf("{"),i=t.lastIndexOf("}");return -1===s||i<=s?null:f(t.slice(s,i+1))}function I(e){return"number"==typeof e&&Number.isFinite(e)?(0,m.normalizeProjectHealthProgress)(e):null}function b(e){return"string"==typeof e&&e.trim()?(0,m.normalizeProjectHealthStatus)(e):null}function L(e,t,r){return`${e}: ${t}% ${g[r]}`}function A(e){return[`- id: ${e.id}`,` identifier: ${e.identifier}`,` title: ${e.title}`,` status: ${e.status}`,` assignee: ${e.assignee??"Unassigned"}`,e.url?` url: ${e.url}`:null].filter(e=>!!e).join("\n")}async function v(e){let{job:c,objectiveContext:l}=e,{project:d,workspace:p,objective:T}=l,_=d.slug??d.id,[{issues:E},h,m,g]=await Promise.all([(0,r.listObjectiveTrackerIssues)({projectId:d.id,objectiveKey:T.key,projectSlug:_,refresh:!0}),(0,s.getIssueActiveAgents)(d.id),Promise.resolve((0,i.getActivityRepository)(_,T.key).list({limit:20})),Promise.resolve((0,a.getNoteRepository)(_,T.key).readAll())]),j=new Set(E.map(e=>e.id)),f=h.filter(e=>j.has(e.issueId)),N=(0,r.filterObjectiveTrackerIssuesForAction)(E,f.map(e=>e.issueId)),I=(0,t.getPromptJobStore)().listJobs({objectiveId:T.id}).filter(e=>e.id!==c.id),b=p.objectives.filter(e=>e.id!==T.id),L=[];L.push("GOAL",T.title,T.summary?.trim()||"No summary provided."),L.push("","CURRENT STATE",`Progress: ${T.progress}% | Status: ${T.status}`);let v=function(e,t){let r,s=n.default.join((r=process.env.AGX_DATA_DIR?.trim())?n.default.resolve(r):n.default.join((0,u.homedir)(),".agx"),"projects",e,"objectives",t,"program.md");if(!o.default.existsSync(s))return{path:s,content:null,updatedAt:null};try{let e=o.default.readFileSync(s,"utf8"),t=o.default.statSync(s);return{path:s,content:e,updatedAt:t.mtime.toISOString()}}catch{return{path:s,content:null,updatedAt:null}}}(_,T.key);L.push("","PROGRAM",`path: ${v.path}`),v.content&&v.content.trim().length>0?L.push(v.content.trim()):L.push('(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.'),g.length>0&&L.push("","NOTES",...g.map(e=>`### ${e.title}
89
+ ${e.body}`));let O=m.activities??[];return O.length>0&&L.push("","RECENT ACTIVITY",...O.map(e=>{let t=e.createdAt.replace("T"," ").replace(/\.\d+Z$/,"").slice(0,16);return`- [${t}] ${e.body.split("\n")[0]}`})),E.length>0?L.push("","LINEAR TICKETS",E.map(e=>A(e)).join("\n\n")):L.push("","LINEAR TICKETS","- None."),f.length>0&&L.push("","ACTIVE SESSIONS",...f.map(e=>`- ${e.issueId}: running with ${e.agentName}`)),I.length>0&&L.push("","SCHEDULED TASKS",...I.map(e=>`- ${e.name} | state: ${e.state} | last outcome: ${e.lastOutcome??"none"}`)),b.length>0&&L.push("","PROJECT CONTEXT",...b.map(e=>`- ${e.title} (${e.key}) | ${e.progress}% | ${e.status}`)),L.push("","GUIDANCE",c.prompt.trim()||"No additional guidance provided."),L.push("","ELIGIBLE TICKETS",N.length>0?N.map(e=>A(e)).join("\n\n"):"- None."),L.push("","---","What single action most advances this objective right now?"),{prompt:L.join("\n"),issues:E,eligibleIssues:N,activeIssueAgents:f}}async function O(t){let r=Date.now();try{if(!t.job.projectId||!t.job.objectiveId)throw Error("Objective worker jobs require projectId and objectiveId.");let s=await (0,c.loadProjectObjectiveContext)(t.job.projectId,t.job.objectiveId);if(!s)throw Error("Objective context could not be resolved for this scheduled task.");let i=await v({job:t.job,objectiveContext:s}),a=await j({...t.controllerContext,prompt:i.prompt,systemContext:'You are deciding what action an objective worker should take next.\nReturn ONLY raw JSON with no markdown fences or commentary.\nValid responses:\n{"action":"work_ticket","ticketId":"ticket-id","reason":"...","objectiveProgress":42,"objectiveStatus":"at_risk","projectProgress":35,"projectStatus":"at_risk"}\n{"action":"run_prompt","prompt":"detailed instructions","reason":"...","objectiveProgress":42,"objectiveStatus":"at_risk"}\n{"action":"stop","reason":"...","objectiveProgress":42,"objectiveStatus":"at_risk"}\nRules:\n- "work_ticket": ticketId must exactly match one of the ELIGIBLE TICKETS ids.\n- "run_prompt": for work not captured by existing tickets. When no tickets are actionable and the objective is not done, use this to plan: review notes, refine the last plan, or outline next steps. The prompt should instruct the agent to append to an existing note when one is relevant rather than creating a new note.\n- "stop": only when the objective is done or genuinely no action (including planning) adds value.\nPercentages must be integers 0-100.\nStatuses: on_track, at_risk, off_track, done.',cliArgs:t.cliArgs,onSpawn:t.onSpawn});if("success"!==a.status)return{...a,output:a.output||"Objective controller failed before selecting an action."};let o=N(a.output),n="string"==typeof o?.action?o.action.trim().toLowerCase():"string"==typeof o?.decision?o.decision.trim().toLowerCase():"",u="work"===n?"work_ticket":n;if(!u){let e=a.output??"";console.warn(`[objective-worker] empty action from controller (job=${t.job.id}, outputLen=${e.length}, parsed=${o?"object":"null"}):`,e.slice(0,500))}let h="string"==typeof o?.reason?o.reason.trim():"",g=I(o?.objectiveProgress),f=b(o?.objectiveStatus),A=I(o?.projectProgress),O=b(o?.projectStatus),S="string"==typeof o?.projectNote?o.projectNote.trim():"",y="string"==typeof o?.objectiveNote?o.objectiveNote.trim():"",R=new Date().toISOString(),w=null!==g&&f?L("Objective health",g,f):null,k=null!==A&&O?L("Project health",A,O):null,x=null!==g&&null!==f?{objectiveId:s.objective.id,objectiveKey:s.objective.key,progress:g,status:f,recordedAt:R,source:`scheduled-task:${t.job.id}`,note:y||void 0}:null,D=null!==g&&null!==f&&(g!==s.objective.progress||f!==s.objective.status),X=D?(0,m.upsertProjectObjective)(s.workspace,{...s.objective,progress:g,status:f,updatedAt:R}):s.workspace,C=null!==A&&null!==O?{progress:A,status:O,updatedAt:R,source:`scheduled-task:${t.job.id}`,objectiveId:s.objective.id,objectiveKey:s.objective.key,note:S||void 0}:null,U=e=>{let t=e;return C&&(t=(0,m.writeProjectHealthSnapshot)(t,C)),x&&(t=function(e,t){let r=t.objectiveId.trim();if(!r)return e;let s=function(e,t){if(!p(e)||!t.trim())return[];let r=e[l];if(!p(r))return[];let s=r[t.trim()];return Array.isArray(s)?E(s.map(e=>(function(e){if(!p(e))return null;let t=function(e){if("string"!=typeof e)return null;let t=e.trim().toLowerCase();return"on_track"===t||"at_risk"===t||"off_track"===t||"done"===t?t:d[t]??null}(e.status),r=function(e){if("string"!=typeof e)return null;let t=Date.parse(e);return Number.isNaN(t)?null:new Date(t).toISOString()}(e.recordedAt);return t&&r?{progress:T(e.progress),status:t,recordedAt:r,source:_(e.source),note:_(e.note),objectiveId:_(e.objectiveId)??null,objectiveKey:_(e.objectiveKey)??null}:null})(e)).filter(e=>!!e)):[]}(e,r),i=E(s,[t]).slice(-200),a=p(e[l])?e[l]:{};return{...e,[l]:{...a,[r]:i.map(e=>({progress:T(e.progress),status:e.status,recordedAt:e.recordedAt,...e.source?{source:e.source}:{},...e.note?{note:e.note}:{},...e.objectiveId?{objectiveId:e.objectiveId}:{},...e.objectiveKey?{objectiveKey:e.objectiveKey}:{}}))}}}(t,x)),t};D?await (0,c.persistProjectObjectiveWorkspace)({projectId:s.project.id,currentMetadata:s.project.metadata,workspace:X,transformMetadata:U}):(x||C)&&await (0,c.persistProjectObjectiveMetadata)({projectId:s.project.id,currentMetadata:s.project.metadata,transformMetadata:U});let{dispatchObjectiveAction:M}=await e.A(371020),$=await M({action:u,parsed:o,reason:h,job:t.job,controllerContext:t.controllerContext,sessionAgent:t.sessionAgent,objectiveContext:s,eligibleIssues:i.eligibleIssues,issues:i.issues,healthSummaries:{objectiveHealthSummary:w,projectHealthSummary:k,objectiveNote:y,projectNote:S},cliArgs:t.cliArgs,onSpawn:t.onSpawn,startMs:r}),{logActionReceipt:P}=await e.A(371020);return await P($,{jobId:t.job.id,projectId:t.job.projectId,objectiveId:t.job.objectiveId}),{output:$.result,error:"failed"===$.status?$.result:"",durationMs:Date.now()-r,status:$.status}}catch(e){return{output:"",error:e instanceof Error?e.message:String(e),durationMs:Date.now()-r,status:"failed"}}}e.s(["buildObjectiveObservation",()=>v,"executeObjectiveWorker",()=>O,"extractFirstJsonObject",()=>N],857155)}];
90
90
 
91
91
  //# sourceMappingURL=%5Broot-of-the-server%5D__ba72d342._.js.map
@@ -109,6 +109,6 @@ Current note:
109
109
  ${t||"(empty)"}
110
110
 
111
111
  Task:
112
- ${n}`,a="";try{await (0,r.runCliResponse)({provider:"claude",model:"claude-haiku-4-5-20251001",prompt:o,onDelta:e=>{a+=e}})}catch(e){return console.warn("[project-knowledge] LLM call failed:",e),[]}let i=a.trim().replace(/^```(?:json)?\s*/i,"").replace(/\s*```\s*$/,"").trim();try{let e=JSON.parse(i);if(!e||"object"!=typeof e||Array.isArray(e))return[];let t="string"==typeof e.updated_note?e.updated_note.trim():"";if(e.no_change||!t)return[];return[{updated_note:t,change_summary:"string"==typeof e.change_summary?e.change_summary.trim():void 0,no_change:!1}]}catch{return console.warn("[project-knowledge] Failed to parse LLM response:",i.slice(0,200)),[]}}async function S(e,t,r){if(0===r.length)return 0;let n=r[0];return n&&n.updated_note?.trim()?+!!(0,s.upsertKnowledgeNote)({scope:"project",subjectId:e,content:n.updated_note.trim(),changeSummary:n.change_summary,sourceType:"task_completion",sourceId:t,metadata:{task_id:t}}).changed:0}async function T(e,t,r){let n=await E(t);if(!n)return;let o=await y(r,(0,s.getKnowledgeNote)("project",n)?.content??"");if(0===o.length)return;let a=await S(n,e,o);a>0&&console.log(`[project-knowledge] Stored ${a} project knowledge entries for task ${e}`)}e.s(["extractAndStoreMemories",()=>f,"extractAndStoreProjectKnowledge",()=>T,"resolveMemoryAgentId",()=>_],582743)},689303,e=>{"use strict";var t=e.i(488877);function r(e){let r=[];for(let n of e){if(!n.id){let e=String(n.notes??"").trim();if(!e)continue;r.push({repoId:"",repoName:n.name,path:n.path??null,content:e,producer:"human"});continue}let e=t.vaultStore.getKnowledgeNote("repo",n.id),o=e?.content.trim()||String(n.notes??"").trim();o&&r.push({repoId:n.id,repoName:n.name,path:n.path??null,content:o,producer:"human"})}return r}e.s(["listResolvedRepoKnowledge",()=>r])},323218,e=>{"use strict";var t=e.i(254799),r=e.i(173426),n=e.i(779429),o=e.i(689303),a=e.i(33878),i=e.i(488877),s=e.i(582743);e.i(426491);var d=e.i(515140),u=e.i(448643),c=e.i(863014),l=e.i(38193);async function p(e){let t=(0,r.createAdminDbClient)(),{data:n,error:o}=await t.from("task_comments").select("*").eq("task_id",e).is("deleted_at",null).order("created_at",{ascending:!0}).order("id",{ascending:!0});if(o){let e="string"==typeof o.message?o.message:"";if("42P01"===o.code||"PGRST205"===o.code||e.includes('relation "task_comments" does not exist')||e.includes("Could not find the table 'agx.task_comments'")||e.includes("Could not find the table 'public.task_comments'"))return[];throw o}return n||[]}async function g(e){let t=(0,r.createAdminDbClient)(),n=e.user_id,o=t.from("learnings").select("*").eq("scope","task").eq("scope_id",e.id);n&&o.eq("user_id",n);let[{data:a,error:s}]=await Promise.all([o]);if(s)throw s;return{task:a||[],project:[],global:i.vaultStore.getLearnings("global")||[]}}async function m(e){let t,n=e.stage;if(!n)return{prompt:null};let o=(0,r.createAdminDbClient)(),a=(t=e.workflow_id)&&/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(t)?e.workflow_id:"";if(!a&&e.project_id)try{let t=await (0,c.getProjectWithRepos)(e.project_id,e.user_id);t?.workflow_id&&(a=t.workflow_id)}catch{}a||(a=l.DEFAULT_WORKFLOW_ID);try{let{data:e,error:t}=await o.from("workflow_nodes").select("*").eq("workflow_id",a).eq("name",n).maybeSingle();if(!t&&e){let t=e.metadata&&"object"==typeof e.metadata?e.metadata:{},r="boolean"==typeof t.swarm&&t.swarm,n=Array.isArray(t.swarm_models)?t.swarm_models:void 0;if(e.prompt)return{prompt:e.prompt,swarm:r,provider:e.provider||void 0,model:e.model||void 0,swarm_models:n};return{prompt:null,swarm:r,provider:e.provider||void 0,model:e.model||void 0,swarm_models:n}}}catch{}try{let t=[];t.push(o.from("stage_prompts").select("*").eq("stage",n).eq("is_default",!0).eq("workflow_id",a).maybeSingle()),e.user_id&&t.push(o.from("stage_prompts").select("*").eq("stage",n).eq("user_id",e.user_id).eq("workflow_id",a).maybeSingle());let r=await Promise.all(t),i=r[0]?.data||null,s=e.user_id?r[1]?.data:null,d=s?.prompt||i?.prompt||null;if(d)return{prompt:d,swarm:s?.swarm??i?.swarm??!1,provider:s?.provider||i?.provider,model:s?.model||i?.model,swarm_models:s?.swarm_models||i?.swarm_models}}catch{}let i=l.defaultStagePrompts[n];return i?.prompt?{prompt:i.prompt,swarm:i.swarm??!1,provider:i.provider,model:i.model,swarm_models:i.swarm_models}:{prompt:null}}async function _(e,t){let r=e.project_id,n=e.project||void 0,i=null;if(r&&(i=await (0,c.getProjectWithRepos)(r,e.user_id)),!i&&n){let t=await (0,c.getProjectBySlug)(n,e.user_id);if(t){let e=await (0,c.getProjectRepos)(t.id);i={...t,repos:e}}}if(!i)return null;let s=await (0,c.getProjectMemory)(i.id,"human"),d=(0,a.getKnowledgeNote)("project",i.id);if(i.repos.length>0){let e=(0,o.listResolvedRepoKnowledge)(i.repos),t=new Map;for(let r of e){if(!r.repoId)continue;let e="system"===r.producer?`[System-generated] ${r.content}`:r.content,n=t.get(r.repoId)??[];n.push(e),t.set(r.repoId,n)}i={...i,repos:i.repos.map(e=>({...e,notes:t.has(e.id)?t.get(e.id).join("\n\n"):e.notes}))}}return{project:i,repos:i.repos??[],learnings:[...s.map(e=>e.content),...d?.content?[`[System-generated] ${d.content}`]:[]]}}async function h(e){let r,[o,a,i,c]=await Promise.all([p(e.id),g(e),m(e),e.user_id?(0,u.getUserSettings)(e.user_id):Promise.resolve(null)]),l=await _(e,a.project),{frontmatter:h}=(0,d.parseFrontmatter)(e.content),f=(0,s.resolveMemoryAgentId)({defaultUserId:e.user_id||"system",frontmatter:h}),E=h.no_memory?[]:function(e,t=5){try{return(0,n.getSQLiteDb)().prepare("SELECT content FROM agent_memory WHERE agent_id = ? ORDER BY created_at DESC LIMIT ?").all(e,t).map(e=>e.content)}catch{return[]}}(f),y=(r=JSON.stringify(o.map(e=>({id:e.id,task_id:e.task_id,author_type:e.author_type||null,author_id:e.author_id||null,content:e.content||"",created_at:e.created_at||null}))),(0,t.createHash)("sha256").update(r).digest("hex")),S="string"==typeof e.stage&&e.stage.trim()?e.stage.trim():"",T=i.prompt??null,A={};if(T&&S){A[S]=T;let e=S.toLowerCase();A[e]||(A[e]=T)}let w=T&&S?[{stage:S,prompt:T}]:[];return{comments:o,learnings:a,agent_memories:E,stage_config:i,stage_prompt:T,stage_prompts:A,stage_objective:T,stageObjective:T,stagePrompts:w,project_context:l,comments_digest:y,user_settings:c}}e.s(["buildTaskContext",()=>h])},703329,550201,e=>{"use strict";function t(e,t){if(void 0===e)return t;let r=e.trim().toLowerCase();return"1"===r||"true"===r||"yes"===r||"on"===r||"0"!==r&&"false"!==r&&"no"!==r&&"off"!==r&&t}function r(){return t(process.env.AGX_GRAPH_DUAL_WRITE,!0)}function n(){return t(process.env.AGX_GRAPH_PARITY_LOGGING,!0)}function o(){return!t(process.env.AGX_GRAPH_READ_PATH_KILL_SWITCH,!1)&&"v2"===(process.env.AGX_GRAPH_READ_PATH_MODE||"v1").trim().toLowerCase()}e.s(["isDualWriteEnabled",()=>r,"isParityLoggingEnabled",()=>n,"isV2ReadPathEnabled",()=>o],550201);let a=new Set(["done","passed","failed","skipped"]),i=new Set(["running","awaiting_human","blocked"]),s=new Set(["done","passed","skipped"]);function d(e,t){let r=String(e||"").trim().toUpperCase();return"INTAKE"===r||"PROGRESS"===r||"DONE"===r?r:t}function u(e){let t,r=Object.values(e.nodes);if(0===r.length)return"queued";let n=r.filter(e=>"gate"===e.type&&e.required).every(e=>"passed"===e.status||"skipped"===e.status);return 0!==(t=e.doneCriteria?.completionSinkNodeIds??[]).length&&t.every(t=>{let r=e.nodes[t];return!!(r&&s.has(r.status))})&&n||r.every(e=>a.has(e.status))&&n?"completed":r.some(e=>"failed"===e.status)?"failed":r.some(e=>"blocked"===e.status)?"blocked":r.some(e=>i.has(e.status))||r.filter(e=>"done"===e.status||"passed"===e.status).length>0?"in_progress":"queued"}function c(e,t="INTAKE"){let r,n,o=u(e),i="completed"===(r=u(e))?"DONE":"in_progress"===r||"blocked"===r||"failed"===r?"PROGRESS":t,s="completed"===o?100:0===(n=Object.values(e.nodes)).length?0:Math.max(0,Math.min(100,Math.round(n.filter(e=>a.has(e.status)).length/n.length*100)));return{status:o,stage:i,progressPercent:s}}function l(e){var t;let r,o,a,i,s,u=(t={taskId:e.task.id,source:e.source,legacy:{status:e.task.status,stage:e.task.stage,progressPercent:e.legacyProgressPercent??null},v2:c(e.graph,d(e.task.stage||"INTAKE","INTAKE"))},o=[],a="queued"===(r=String(t.legacy.status||"").trim().toLowerCase())||"in_progress"===r||"blocked"===r||"completed"===r||"failed"===r?r:"queued",i=d(t.legacy.stage,"INTAKE"),s=Number.isFinite(Number(t.legacy.progressPercent))?Number(t.legacy.progressPercent):null,(a!==t.v2.status&&o.push({field:"status",legacy:a,v2:t.v2.status}),i!==t.v2.stage&&o.push({field:"stage",legacy:i,v2:t.v2.stage}),null!==s&&s!==t.v2.progressPercent&&o.push({field:"progressPercent",legacy:s,v2:t.v2.progressPercent}),0===o.length)?null:{taskId:t.taskId,source:t.source,diffs:o});return u&&n()&&console.warn("[graph-parity-diff]",JSON.stringify(u)),u}e.s(["logParityDiff",()=>l,"projectLegacyCompatFromGraph",()=>c],703329)},574749,e=>{"use strict";e.i(426491);var t=e.i(515140),r=e.i(550201),n=e.i(703329),o=e.i(951336);function a(e){if(!e)return[];if(Array.isArray(e))return Array.from(new Set(e.map(e=>String(e||"").trim()).filter(Boolean)));if("string"==typeof e){let t=e.trim();if(!t)return[];try{let e=JSON.parse(t);if(Array.isArray(e))return Array.from(new Set(e.map(e=>String(e||"").trim()).filter(Boolean)))}catch{}return Array.from(new Set(t.split(",").map(e=>e.trim()).filter(Boolean)))}return[]}function i(e){if(a(e.depends_on).length||"string"!=typeof e?.content)return e;let{frontmatter:r}=(0,t.parseFrontmatter)(e.content||""),n=a(r.depends_on);return n.length?{...e,depends_on:n}:e}function s(e){return"blocked"!==e.status||e.blocked_reason||e.stage&&"intake"!==e.stage.toLowerCase()?e.blocked_reason:"Awaiting approval"}async function d(e){if(!(0,r.isV2ReadPathEnabled)())return{...i(e),blocked_reason:s(e),read_path_source:"v1"};try{let t=await (0,o.getGraph)(e.id);if(!t)return{...i(e),read_path_source:"v1"};let r=(0,n.projectLegacyCompatFromGraph)(t,e.stage||"INTAKE"),a="queued"===r.status&&e.status&&"queued"!==e.status?e.status:r.status,d="completed"===a?"DONE":r.stage;(0,n.logParityDiff)({source:"read_path",task:e,graph:t});let u={...i(e),status:a,stage:d};return{...u,blocked_reason:s(u),read_path_source:"v2"}}catch(t){return console.error("Failed to project task from v2 graph; using v1 compatibility mode",t),{...i(e),read_path_source:"v1"}}}async function u(e){return Promise.all(e.map(e=>d(e)))}e.s(["projectTaskReadModel",()=>d,"projectTaskReadModels",()=>u])}];
112
+ ${n}`,a="";try{await (0,r.runCliResponse)({provider:"claude",model:"claude-haiku-4-5-20251001",prompt:o,onDelta:e=>{a+=e}})}catch(e){return console.warn("[project-knowledge] LLM call failed:",e),[]}let i=a.trim().replace(/^```(?:json)?\s*/i,"").replace(/\s*```\s*$/,"").trim();try{let e=JSON.parse(i);if(!e||"object"!=typeof e||Array.isArray(e))return[];let t="string"==typeof e.updated_note?e.updated_note.trim():"";if(e.no_change||!t)return[];return[{updated_note:t,change_summary:"string"==typeof e.change_summary?e.change_summary.trim():void 0,no_change:!1}]}catch{return console.warn("[project-knowledge] Failed to parse LLM response:",i.slice(0,200)),[]}}async function S(e,t,r){if(0===r.length)return 0;let n=r[0];return n&&n.updated_note?.trim()?+!!(0,s.upsertKnowledgeNote)({scope:"project",subjectId:e,content:n.updated_note.trim(),changeSummary:n.change_summary,sourceType:"task_completion",sourceId:t,metadata:{task_id:t}}).changed:0}async function T(e,t,r){let n=await E(t);if(!n)return;let o=await y(r,(0,s.getKnowledgeNote)("project",n)?.content??"");if(0===o.length)return;let a=await S(n,e,o);a>0&&console.log(`[project-knowledge] Stored ${a} project knowledge entries for task ${e}`)}e.s(["extractAndStoreMemories",()=>f,"extractAndStoreProjectKnowledge",()=>T,"resolveMemoryAgentId",()=>_],582743)},689303,e=>{"use strict";var t=e.i(488877);function r(e){let r=[];for(let n of e){if(!n.id){let e=String(n.notes??"").trim();if(!e)continue;r.push({repoId:"",repoName:n.name,path:n.path??null,content:e,producer:"human"});continue}let e=t.vaultStore.getKnowledgeNote("repo",n.id),o=e?.content.trim()||String(n.notes??"").trim();o&&r.push({repoId:n.id,repoName:n.name,path:n.path??null,content:o,producer:"human"})}return r}e.s(["listResolvedRepoKnowledge",()=>r])},323218,e=>{"use strict";var t=e.i(254799),r=e.i(173426),n=e.i(779429),o=e.i(689303),a=e.i(33878),i=e.i(488877),s=e.i(582743);e.i(426491);var d=e.i(515140),u=e.i(448643),c=e.i(863014),l=e.i(38193);async function p(e){let t=(0,r.createAdminDbClient)(),{data:n,error:o}=await t.from("task_comments").select("*").eq("task_id",e).is("deleted_at",null).order("created_at",{ascending:!0}).order("id",{ascending:!0});if(o){let e="string"==typeof o.message?o.message:"";if("42P01"===o.code||"PGRST205"===o.code||e.includes('relation "task_comments" does not exist')||e.includes("Could not find the table 'agx.task_comments'")||e.includes("Could not find the table 'public.task_comments'"))return[];throw o}return n||[]}async function g(e){let t=(0,r.createAdminDbClient)(),n=e.user_id,o=t.from("learnings").select("*").eq("scope","task").eq("scope_id",e.id);n&&o.eq("user_id",n);let[{data:a,error:s}]=await Promise.all([o]);if(s)throw s;return{task:a||[],project:[],global:i.vaultStore.getLearnings("global")||[]}}async function m(e){let t,n=e.stage;if(!n)return{prompt:null};let o=(0,r.createAdminDbClient)(),a=(t=e.workflow_id)&&/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(t)?e.workflow_id:"";if(!a&&e.project_id)try{let t=await (0,c.getProjectWithRepos)(e.project_id,e.user_id);t?.workflow_id&&(a=t.workflow_id)}catch{}a||(a=l.DEFAULT_WORKFLOW_ID);try{let{data:e,error:t}=await o.from("workflow_nodes").select("*").eq("workflow_id",a).eq("name",n).maybeSingle();if(!t&&e){let t=e.metadata&&"object"==typeof e.metadata?e.metadata:{},r="boolean"==typeof t.swarm&&t.swarm,n=Array.isArray(t.swarm_models)?t.swarm_models:void 0;if(e.prompt)return{prompt:e.prompt,swarm:r,provider:e.provider||void 0,model:e.model||void 0,swarm_models:n};return{prompt:null,swarm:r,provider:e.provider||void 0,model:e.model||void 0,swarm_models:n}}}catch{}try{let t=[];t.push(o.from("stage_prompts").select("*").eq("stage",n).eq("is_default",!0).eq("workflow_id",a).maybeSingle()),e.user_id&&t.push(o.from("stage_prompts").select("*").eq("stage",n).eq("user_id",e.user_id).eq("workflow_id",a).maybeSingle());let r=await Promise.all(t),i=r[0]?.data||null,s=e.user_id?r[1]?.data:null,d=s?.prompt||i?.prompt||null;if(d)return{prompt:d,swarm:s?.swarm??i?.swarm??!1,provider:s?.provider||i?.provider,model:s?.model||i?.model,swarm_models:s?.swarm_models||i?.swarm_models}}catch{}let i=l.defaultStagePrompts[n];return i?.prompt?{prompt:i.prompt,swarm:i.swarm??!1,provider:i.provider,model:i.model,swarm_models:i.swarm_models}:{prompt:null}}async function _(e,t){let r=e.project_id,n=e.project||void 0,i=null;if(r&&(i=await (0,c.getProjectWithRepos)(r,e.user_id)),!i&&n){let t=await (0,c.getProjectBySlug)(n,e.user_id);if(t){let e=await (0,c.getProjectRepos)(t.id);i={...t,repos:e}}}if(!i)return null;let[s,d]=await Promise.all([(0,c.getProjectMemory)(i.id,"human"),(0,c.getWorkspaceMapForContext)(i.id)]),u=(0,a.getKnowledgeNote)("project",i.id);if(i.repos.length>0){let e=(0,o.listResolvedRepoKnowledge)(i.repos),t=new Map;for(let r of e){if(!r.repoId)continue;let e="system"===r.producer?`[System-generated] ${r.content}`:r.content,n=t.get(r.repoId)??[];n.push(e),t.set(r.repoId,n)}i={...i,repos:i.repos.map(e=>({...e,notes:t.has(e.id)?t.get(e.id).join("\n\n"):e.notes}))}}return{project:i,repos:i.repos??[],workspace_map:d,learnings:[...s.map(e=>e.content),...u?.content?[`[System-generated] ${u.content}`]:[]]}}async function h(e){let r,[o,a,i,c]=await Promise.all([p(e.id),g(e),m(e),e.user_id?(0,u.getUserSettings)(e.user_id):Promise.resolve(null)]),l=await _(e,a.project),{frontmatter:h}=(0,d.parseFrontmatter)(e.content),f=(0,s.resolveMemoryAgentId)({defaultUserId:e.user_id||"system",frontmatter:h}),E=h.no_memory?[]:function(e,t=5){try{return(0,n.getSQLiteDb)().prepare("SELECT content FROM agent_memory WHERE agent_id = ? ORDER BY created_at DESC LIMIT ?").all(e,t).map(e=>e.content)}catch{return[]}}(f),y=(r=JSON.stringify(o.map(e=>({id:e.id,task_id:e.task_id,author_type:e.author_type||null,author_id:e.author_id||null,content:e.content||"",created_at:e.created_at||null}))),(0,t.createHash)("sha256").update(r).digest("hex")),S="string"==typeof e.stage&&e.stage.trim()?e.stage.trim():"",T=i.prompt??null,A={};if(T&&S){A[S]=T;let e=S.toLowerCase();A[e]||(A[e]=T)}let w=T&&S?[{stage:S,prompt:T}]:[];return{comments:o,learnings:a,agent_memories:E,stage_config:i,stage_prompt:T,stage_prompts:A,stage_objective:T,stageObjective:T,stagePrompts:w,project_context:l,comments_digest:y,user_settings:c}}e.s(["buildTaskContext",()=>h])},703329,550201,e=>{"use strict";function t(e,t){if(void 0===e)return t;let r=e.trim().toLowerCase();return"1"===r||"true"===r||"yes"===r||"on"===r||"0"!==r&&"false"!==r&&"no"!==r&&"off"!==r&&t}function r(){return t(process.env.AGX_GRAPH_DUAL_WRITE,!0)}function n(){return t(process.env.AGX_GRAPH_PARITY_LOGGING,!0)}function o(){return!t(process.env.AGX_GRAPH_READ_PATH_KILL_SWITCH,!1)&&"v2"===(process.env.AGX_GRAPH_READ_PATH_MODE||"v1").trim().toLowerCase()}e.s(["isDualWriteEnabled",()=>r,"isParityLoggingEnabled",()=>n,"isV2ReadPathEnabled",()=>o],550201);let a=new Set(["done","passed","failed","skipped"]),i=new Set(["running","awaiting_human","blocked"]),s=new Set(["done","passed","skipped"]);function d(e,t){let r=String(e||"").trim().toUpperCase();return"INTAKE"===r||"PROGRESS"===r||"DONE"===r?r:t}function u(e){let t,r=Object.values(e.nodes);if(0===r.length)return"queued";let n=r.filter(e=>"gate"===e.type&&e.required).every(e=>"passed"===e.status||"skipped"===e.status);return 0!==(t=e.doneCriteria?.completionSinkNodeIds??[]).length&&t.every(t=>{let r=e.nodes[t];return!!(r&&s.has(r.status))})&&n||r.every(e=>a.has(e.status))&&n?"completed":r.some(e=>"failed"===e.status)?"failed":r.some(e=>"blocked"===e.status)?"blocked":r.some(e=>i.has(e.status))||r.filter(e=>"done"===e.status||"passed"===e.status).length>0?"in_progress":"queued"}function c(e,t="INTAKE"){let r,n,o=u(e),i="completed"===(r=u(e))?"DONE":"in_progress"===r||"blocked"===r||"failed"===r?"PROGRESS":t,s="completed"===o?100:0===(n=Object.values(e.nodes)).length?0:Math.max(0,Math.min(100,Math.round(n.filter(e=>a.has(e.status)).length/n.length*100)));return{status:o,stage:i,progressPercent:s}}function l(e){var t;let r,o,a,i,s,u=(t={taskId:e.task.id,source:e.source,legacy:{status:e.task.status,stage:e.task.stage,progressPercent:e.legacyProgressPercent??null},v2:c(e.graph,d(e.task.stage||"INTAKE","INTAKE"))},o=[],a="queued"===(r=String(t.legacy.status||"").trim().toLowerCase())||"in_progress"===r||"blocked"===r||"completed"===r||"failed"===r?r:"queued",i=d(t.legacy.stage,"INTAKE"),s=Number.isFinite(Number(t.legacy.progressPercent))?Number(t.legacy.progressPercent):null,(a!==t.v2.status&&o.push({field:"status",legacy:a,v2:t.v2.status}),i!==t.v2.stage&&o.push({field:"stage",legacy:i,v2:t.v2.stage}),null!==s&&s!==t.v2.progressPercent&&o.push({field:"progressPercent",legacy:s,v2:t.v2.progressPercent}),0===o.length)?null:{taskId:t.taskId,source:t.source,diffs:o});return u&&n()&&console.warn("[graph-parity-diff]",JSON.stringify(u)),u}e.s(["logParityDiff",()=>l,"projectLegacyCompatFromGraph",()=>c],703329)},574749,e=>{"use strict";e.i(426491);var t=e.i(515140),r=e.i(550201),n=e.i(703329),o=e.i(951336);function a(e){if(!e)return[];if(Array.isArray(e))return Array.from(new Set(e.map(e=>String(e||"").trim()).filter(Boolean)));if("string"==typeof e){let t=e.trim();if(!t)return[];try{let e=JSON.parse(t);if(Array.isArray(e))return Array.from(new Set(e.map(e=>String(e||"").trim()).filter(Boolean)))}catch{}return Array.from(new Set(t.split(",").map(e=>e.trim()).filter(Boolean)))}return[]}function i(e){if(a(e.depends_on).length||"string"!=typeof e?.content)return e;let{frontmatter:r}=(0,t.parseFrontmatter)(e.content||""),n=a(r.depends_on);return n.length?{...e,depends_on:n}:e}function s(e){return"blocked"!==e.status||e.blocked_reason||e.stage&&"intake"!==e.stage.toLowerCase()?e.blocked_reason:"Awaiting approval"}async function d(e){if(!(0,r.isV2ReadPathEnabled)())return{...i(e),blocked_reason:s(e),read_path_source:"v1"};try{let t=await (0,o.getGraph)(e.id);if(!t)return{...i(e),read_path_source:"v1"};let r=(0,n.projectLegacyCompatFromGraph)(t,e.stage||"INTAKE"),a="queued"===r.status&&e.status&&"queued"!==e.status?e.status:r.status,d="completed"===a?"DONE":r.stage;(0,n.logParityDiff)({source:"read_path",task:e,graph:t});let u={...i(e),status:a,stage:d};return{...u,blocked_reason:s(u),read_path_source:"v2"}}catch(t){return console.error("Failed to project task from v2 graph; using v1 compatibility mode",t),{...i(e),read_path_source:"v1"}}}async function u(e){return Promise.all(e.map(e=>d(e)))}e.s(["projectTaskReadModel",()=>d,"projectTaskReadModels",()=>u])}];
113
113
 
114
114
  //# sourceMappingURL=%5Broot-of-the-server%5D__c3188470._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[650837,640911,e=>{"use strict";let t=process.env.AGX_LOG_ENDPOINT||"https://www.runagx.com/api/logs/ingest",r="1"!==process.env.AGX_DISABLE_REMOTE_LOGGING,a=[],o=null;function n(e){r&&(a.push(e),a.length>=50?i():o||(o=setTimeout(()=>{o=null,i()},5e3)))}async function i(){if(0===a.length)return;let e=a.splice(0);try{await fetch(t,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}catch{}}e.s(["logger",0,{error(e,t){console.error(e,t??""),n({level:"error",message:e,context:t})},warn(e,t){console.warn(e,t??""),n({level:"warn",message:e,context:t})},info(e,t){console.log(e,t??""),n({level:"info",message:e,context:t})},formatError:function(e){return e instanceof Error?{name:e.name,message:e.message,stack:e.stack}:{message:String(e)}}}],640911),e.s([],650837)},918622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},556704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},832319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},324725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},193695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},233405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},522734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},814747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},446786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},769025,e=>{"use strict";function t(e,t){let r=e.prepare(`PRAGMA ${t}`).get();if(!r)return;let a=Object.values(r);return a.length>0?a[0]:void 0}function r(e,t){return e.prepare(`PRAGMA ${t}`).all()}function a(e,t){e.exec(`PRAGMA ${t}`)}function o(e,t){e.exec("BEGIN");try{let r=t();return e.exec("COMMIT"),r}catch(t){throw e.exec("ROLLBACK"),t}}function n(e,t){return(...r)=>{e.exec("BEGIN");try{let a=t(...r);return e.exec("COMMIT"),a}catch(t){throw e.exec("ROLLBACK"),t}}}e.s(["pragmaAll",()=>r,"pragmaGet",()=>t,"pragmaSet",()=>a,"transaction",()=>o,"transactionFn",()=>n])},744071,e=>{"use strict";let t={id:"2c3cc1ca-956d-4b62-b295-4d2d3374103f",email:process.env.AGX_BOARD_USER_EMAIL||"local@agx.board",name:process.env.AGX_BOARD_USER_NAME||"Local Board User"};e.s(["LOCAL_USER",0,t])},452377,e=>{"use strict";e.x("node:sqlite",()=>require("node:sqlite"),!0);var t=e.i(769025),r=e.i(522734),a=e.i(446786),o=e.i(814747);let n="3.35.0",i=["json1"],s=["fts5"],l=["nfs","smb","cifs","efs","fuse.sshfs"];function c(e,t){try{if("json1"===t)return e.prepare("SELECT json('{}')").get(),!0;if("fts5"===t)return e.exec("CREATE VIRTUAL TABLE IF NOT EXISTS _fts5_check USING fts5(x)"),e.exec("DROP TABLE IF EXISTS _fts5_check"),!0;return!1}catch{return!1}}function d(d,u){let p=[],f=d.prepare("SELECT sqlite_version() as v").get();for(let e of(0>function(e,t){let r=e.split(".").map(Number),a=t.split(".").map(Number);for(let e=0;e<3;e++){let t=(r[e]||0)-(a[e]||0);if(0!==t)return t}return 0}(f.v,n)&&p.push({kind:"version_mismatch",message:`SQLite version ${f.v} is below minimum ${n}`,found:f.v,required:`>= ${n}`,fix:"Ensure Node.js >= 22.16 is installed (node:sqlite is built-in)"}),i))c(d,e)||p.push({kind:"missing_extension",message:`Required SQLite extension '${e}' is not available`,required:e,fix:`Rebuild SQLite with -DSQLITE_ENABLE_${e.toUpperCase()}=1, or use a system SQLite that includes it`});for(let e of s)c(d,e)||console.warn(`[startup] Recommended SQLite extension '${e}' is not available. Full-text search will be disabled.`);let h=function(t){"linux"!==a.default.platform()&&a.default.platform();try{let n=o.default.resolve(t),{execSync:i}=e.r(233405);if("darwin"===a.default.platform());else{let e=r.default.readFileSync("/proc/mounts","utf-8"),t="",a="unknown";for(let r of e.split("\n")){let[,e,o]=r.split(/\s+/);e&&n.startsWith(e)&&e.length>t.length&&(t=e,a=o||"unknown")}return a}}catch{}return null}(u);h&&l.some(e=>h.toLowerCase().includes(e))&&p.push({kind:"filesystem_error",message:`Database path '${u}' is on a network filesystem (${h})`,path:u,found:h,fix:"Move the database file to a local SSD. WAL mode requires local filesystem with reliable fsync."});try{(0,t.pragmaSet)(d,"journal_mode = wal"),(0,t.pragmaSet)(d,"foreign_keys = 1"),(0,t.pragmaSet)(d,"busy_timeout = 5000"),(0,t.pragmaSet)(d,"synchronous = 1"),(0,t.pragmaSet)(d,"cache_size = -64000");let e=(0,t.pragmaGet)(d,"journal_mode").toLowerCase(),r=new Set(["wal","delete"]);if(!r.has(e)){(0,t.pragmaSet)(d,"journal_mode = DELETE");let e=(0,t.pragmaGet)(d,"journal_mode").toLowerCase();r.has(e)?((0,t.pragmaSet)(d,"synchronous = FULL"),console.warn(`[startup] WAL unavailable, using journal_mode=${e} with synchronous=FULL`)):p.push({kind:"pragma_error",message:`Failed to set journal_mode (got '${e}', tried WAL then DELETE)`,found:e,required:"wal or delete",fix:"Ensure the database file is on a local filesystem and no other process holds an exclusive lock."})}}catch(e){p.push({kind:"pragma_error",message:`Failed to apply required PRAGMAs: ${e.message}`,fix:"Check file permissions and ensure the database is not read-only."})}return p}e.s(["validateSQLiteEnvironment",()=>d])},254799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},902157,(e,t,r)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},750227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},660526,(e,t,r)=>{t.exports=e.x("node:os",()=>require("node:os"))},500874,(e,t,r)=>{t.exports=e.x("buffer",()=>require("buffer"))},666680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},173426,e=>{"use strict";function t(){let{createAdminDbClientSQLite:t}=e.r(779429);return t()}e.i(744071),e.s(["createAdminDbClient",()=>t])},108088,e=>{"use strict";var t=e.i(173426);e.i(650837);var r=e.i(640911);let a=[{value:"task.created",label:"Task created",description:"Fires immediately when a new task is added to the queue."},{value:"task.stage_complete",label:"Stage completed",description:"Emitted whenever a stage finishes and the task advances."},{value:"task.completed",label:"Task completed",description:"When the task reaches a completed status (done)."},{value:"task.failed",label:"Task failed",description:"When the task may have errored, including cancellations."},{value:"task.blocked",label:"Task blocked",description:"When the agent raises the task as blocked awaiting manual input."}].map(e=>e.value);class o extends Error{}function n(e){let t;if("string"!=typeof e)throw Error("Webhook URL is required");let r=e.trim();if(!r)throw Error("Webhook URL is required");try{t=new URL(r)}catch{throw Error("Webhook URL must be a valid URL")}if("http:"!==t.protocol&&"https:"!==t.protocol)throw Error("Webhook URL must use http or https");return t.toString()}function i(e){if(!Array.isArray(e))return[];let t=new Set;for(let r of e){if("string"!=typeof r)continue;let e=r.trim();e&&a.includes(e)&&t.add(e)}return Array.from(t)}function s(e){let t=Array.isArray(e.events)?e.events.filter(e=>"string"==typeof e).map(e=>e.trim()).filter(e=>a.includes(e)):[];return{id:String(e.id),user_id:String(e.user_id),url:String(e.url),name:null!=e.name?String(e.name):null,events:t,enabled:!1!==e.enabled,created_at:String(e.created_at),updated_at:String(e.updated_at)}}async function l(e,t){if(function(e,t){if(!e||"object"!=typeof e)return!1;let r=e.code,a="string"==typeof e.message?e.message:"";return"42P01"===r||"PGRST205"===r||a.includes(`relation "${t}" does not exist`)||a.includes(`Could not find the table 'agx.${t}'`)||a.includes(`Could not find the table 'public.${t}'`)}(t,e))throw new o(`Missing relation: ${e}`);throw t}async function c(e){let r=(0,t.createAdminDbClient)(),{data:a,error:o}=await r.from("notification_webhooks").select("*").eq("user_id",e).order("created_at",{ascending:!1});return(o&&await l("notification_webhooks",o),a)?(Array.isArray(a)?a:[a]).map(s):[]}async function d(e,r){let a=(0,t.createAdminDbClient)(),{data:o,error:n}=await a.from("notification_webhooks").select("*").eq("user_id",e).eq("id",r).maybeSingle();if(n){if(n?.code==="PGRST116")return null;await l("notification_webhooks",n)}return o?s(o):null}async function u(e,r){let a=n(r.url),o=i(r.events);if(!o.length)throw Error("At least one supported event is required");let c={user_id:e,url:a,name:r.name?r.name.trim():null,events:o,enabled:!1!==r.enabled},d=(0,t.createAdminDbClient)(),{data:u,error:p}=await d.from("notification_webhooks").insert(c).select("*").single();if(p&&await l("notification_webhooks",p),!u)throw Error("Failed to create webhook");return s(u)}async function p(e,r,a){let o={};if(void 0!==a.url&&(o.url=n(a.url)),void 0!==a.name&&(o.name=a.name?a.name.trim():null),void 0!==a.events){let e=i(a.events||void 0);if(!e.length)throw Error("At least one supported event is required");o.events=e}if(void 0!==a.enabled&&(o.enabled=a.enabled),0===Object.keys(o).length)throw Error("No changes provided");let c=(0,t.createAdminDbClient)(),{data:d,error:u}=await c.from("notification_webhooks").update(o).eq("id",r).eq("user_id",e).select("*").single();if(u&&await l("notification_webhooks",u),!d)throw Error("Webhook not found");return s(d)}async function f(e,r){let a=(0,t.createAdminDbClient)(),{error:o}=await a.from("notification_webhooks").delete().eq("id",r).eq("user_id",e);o&&await l("notification_webhooks",o)}async function h(e){if(!e.userId)return;let t=[];try{t=await c(e.userId)}catch(e){if(e instanceof o)return void console.debug("[notifications] notification_webhooks schema not ready, skipping");r.logger.error("[notifications] failed to load webhooks",r.logger.formatError(e));return}let a=t.filter(t=>t.enabled&&t.events.includes(e.eventType));if(!a.length)return;let n=e.timestamp||new Date().toISOString(),i={eventType:e.eventType,taskId:e.taskId,userId:e.userId,title:e.title||null,slug:e.slug||null,stage:e.stage||null,previousStage:e.previousStage||null,nextStage:e.nextStage||null,status:e.status||null,error:e.error||null,timestamp:n,details:e.details||{}};await Promise.all(a.map(async e=>{let t=new AbortController,a=setTimeout(()=>t.abort(),1e4);try{let a=await fetch(e.url,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(i),signal:t.signal});a.ok||r.logger.error(`[notifications] webhook ${e.url} responded with ${a.status}`)}catch(t){r.logger.error(`[notifications] failed to send to ${e.url}`,r.logger.formatError(t))}finally{clearTimeout(a)}}))}e.s(["SchemaNotReadyError",()=>o,"createNotificationWebhook",()=>u,"deleteNotificationWebhook",()=>f,"getNotificationWebhook",()=>d,"listNotificationWebhooks",()=>c,"notifyTaskEvent",()=>h,"updateNotificationWebhook",()=>p],108088)},858253,e=>{"use strict";var t=e.i(260476);let r=[{id:"repositories",label:"Repositories",icon:"GitBranch"},{id:"docs",label:"Docs",icon:"FileText"},{id:"config",label:"Config",icon:"Settings"},{id:"scripts",label:"Scripts",icon:"Terminal"}];r.map(e=>({...e})),r.map(e=>[e.id,e]);let a=new Map(r.map(e=>({...e})).map(e=>[e.id,e.label]));function o(e,t){if("string"!=typeof e||0===e.trim().length)throw Error(`Invalid or missing '${t}'`);return e.trim()}function n(e){let r=[...e].sort((e,t)=>e.category!==t.category?e.category.localeCompare(t.category):e.sort_order!==t.sort_order?e.sort_order-t.sort_order:e.name.localeCompare(t.name)),o=new Map;for(let e of r){var n;o.has(e.category)||o.set(e.category,{id:e.category,label:a.get(e.category)??((n=e.category).split(/[_-]+/).filter(Boolean).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" ")||n)})}let i={version:1,categories:Array.from(o.values()),entries:r.map(e=>({category:e.category,name:e.name,purpose:e.purpose??null}))};return(0,t.dump)(i,{lineWidth:120,noRefs:!0,sortKeys:!1})}function i(e){let r=(0,t.load)(e);if(!r||"object"!=typeof r||Array.isArray(r))throw Error("Invalid YAML: expected an object at the root level");if(1!==r.version)throw Error(`Unsupported version: ${r.version??"missing"}. Only version 1 is supported.`);if(!Array.isArray(r.categories))throw Error("Invalid YAML: missing or invalid 'categories' array");if(!Array.isArray(r.entries))throw Error("Invalid YAML: missing or invalid 'entries' array");let a=new Set,n=r.categories.map((e,t)=>{if(!e||"object"!=typeof e||Array.isArray(e))throw Error(`Invalid category entry at index ${t}`);let r=o(e.id,`categories[${t}].id`),n=o(e.label,`categories[${t}].label`);if(a.has(r))throw Error(`Duplicate category id '${r}'`);return a.add(r),{id:r,label:n}}),i=new Set(n.map(e=>e.id)),s=new Set;return{version:1,categories:n,entries:r.entries.map((e,t)=>{if(!e||"object"!=typeof e||Array.isArray(e))throw Error(`Invalid workspace entry at index ${t}`);if("path"in e)throw Error(`Invalid workspace entry at index ${t}: 'path' is not allowed`);let r=o(e.category,`entries[${t}].category`),a=o(e.name,`entries[${t}].name`),n=function(e,t){if(null==e)return null;if("string"!=typeof e)throw Error(`Invalid '${t}'`);let r=e.trim();return r.length>0?r:null}(e.purpose,`entries[${t}].purpose`);if(!i.has(r))throw Error(`Entry '${a}' references unknown category '${r}'`);let l=`${r}\u0000${a}`;if(s.has(l))throw Error(`Duplicate workspace entry '${r}/${a}'`);return s.add(l),{category:r,name:a,purpose:n}})}}e.s(["deserializeWorkspace",()=>i,"serializeWorkspace",()=>n],858253)},890964,e=>{"use strict";var t=e.i(692988),r=e.i(635595),a=e.i(75473),o=e.i(923435),n=e.i(418475),i=e.i(303482),s=e.i(976287),l=e.i(774462),c=e.i(111998),d=e.i(201516),u=e.i(68877),p=e.i(259460),f=e.i(257714),h=e.i(502073),m=e.i(187345),g=e.i(193695);e.i(293777);var w=e.i(274321),y=e.i(732470);e.i(426491);var v=e.i(863014);e.i(650837);var x=e.i(640911),b=e.i(858253);async function E(e,t){try{let{id:e}=await t.params,r=await (0,v.getProjectWithRepos)(e);if(!r)return y.NextResponse.json({error:"Project not found"},{status:404});let a=await (0,v.getProjectWorkspaceEntries)(r.id),o=(0,b.serializeWorkspace)(a),n=`workspace-${r.slug||r.id}.yaml`;return new y.NextResponse(o,{status:200,headers:{"Content-Type":"text/yaml; charset=utf-8","Content-Disposition":`attachment; filename="${n}"`}})}catch(e){return x.logger.error("Error exporting workspace YAML",x.logger.formatError(e)),y.NextResponse.json({error:"Failed to export workspace YAML"},{status:500})}}e.s(["GET",()=>E,"dynamic",0,"force-dynamic","runtime",0,"nodejs"],24230);var k=e.i(24230);let A=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/projects/[id]/workspace/export/route",pathname:"/api/projects/[id]/workspace/export",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/local/app/api/projects/[id]/workspace/export/route.ts",nextConfigOutput:"standalone",userland:k}),{workAsyncStorage:R,workUnitAsyncStorage:_,serverHooks:S}=A;function C(){return(0,a.patchFetch)({workAsyncStorage:R,workUnitAsyncStorage:_})}async function T(e,t,a){A.isDev&&(0,o.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let y="/api/projects/[id]/workspace/export/route";y=y.replace(/\/index$/,"")||"/";let v=await A.prepare(e,t,{srcPage:y,multiZoneDraftMode:!1});if(!v)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:x,params:b,nextConfig:E,parsedUrl:k,isDraftMode:R,prerenderManifest:_,routerServerContext:S,isOnDemandRevalidate:C,revalidateOnlyGenerated:T,resolvedPathname:q,clientReferenceManifest:L,serverActionsManifest:$}=v,j=(0,s.normalizeAppPath)(y),N=!!(_.dynamicRoutes[j]||_.routes[q]),I=async()=>((null==S?void 0:S.render404)?await S.render404(e,t,k,!1):t.end("This page could not be found"),null);if(N&&!R){let e=!!_.routes[q],t=_.dynamicRoutes[j];if(t&&!1===t.fallback&&!e){if(E.experimental.adapterPath)return await I();throw new g.NoFallbackError}}let O=null;!N||A.isDev||R||(O="/index"===(O=q)?"/":O);let P=!0===A.isDev||!N,D=N&&!P;$&&L&&(0,i.setManifestsSingleton)({page:y,clientReferenceManifest:L,serverActionsManifest:$});let U=e.method||"GET",M=(0,n.getTracer)(),G=M.getActiveScopeSpan(),W={params:b,prerenderManifest:_,renderOpts:{experimental:{authInterrupts:!!E.experimental.authInterrupts},cacheComponents:!!E.cacheComponents,supportsDynamicResponse:P,incrementalCache:(0,o.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:E.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,o)=>A.onRequestError(e,t,a,o,S)},sharedContext:{buildId:x}},F=new l.NodeNextRequest(e),B=new l.NodeNextResponse(t),H=c.NextRequestAdapter.fromNodeNextRequest(F,(0,c.signalFromNodeResponse)(t));try{let i=async e=>A.handle(H,W).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=M.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let a=r.get("next.route");if(a){let t=`${U} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${U} ${y}`)}),s=!!(0,o.getRequestMeta)(e,"minimalMode"),l=async o=>{var n,l;let c=async({previousCacheEntry:r})=>{try{if(!s&&C&&T&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await i(o);e.fetchMetrics=W.renderOpts.fetchMetrics;let l=W.renderOpts.pendingWaitUntil;l&&a.waitUntil&&(a.waitUntil(l),l=void 0);let c=W.renderOpts.collectedTags;if(!N)return await (0,p.sendResponse)(F,B,n,W.renderOpts.pendingWaitUntil),null;{let e=await n.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(n.headers);c&&(t[m.NEXT_CACHE_TAGS_HEADER]=c),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,a=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=m.INFINITE_CACHE?void 0:W.renderOpts.collectedExpire;return{value:{kind:w.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await A.onRequestError(e,t,{routerKind:"App Router",routePath:y,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:C})},!1,S),t}},d=await A.handleResponse({req:e,nextConfig:E,cacheKey:O,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:_,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:T,responseGenerator:c,waitUntil:a.waitUntil,isMinimalMode:s});if(!N)return null;if((null==d||null==(n=d.value)?void 0:n.kind)!==w.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(l=d.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});s||t.setHeader("x-nextjs-cache",C?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),R&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let g=(0,f.fromNodeOutgoingHttpHeaders)(d.value.headers);return s&&N||g.delete(m.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||g.get("Cache-Control")||g.set("Cache-Control",(0,h.getCacheControlHeader)(d.cacheControl)),await (0,p.sendResponse)(F,B,new Response(d.value.body,{headers:g,status:d.value.status||200})),null};G?await l(G):await M.withPropagatedContext(e.headers,()=>M.trace(d.BaseServerSpan.handleRequest,{spanName:`${U} ${y}`,kind:n.SpanKind.SERVER,attributes:{"http.method":U,"http.target":e.url}},l))}catch(t){if(t instanceof g.NoFallbackError||await A.onRequestError(e,t,{routerKind:"App Router",routePath:j,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:C})},!1,S),N)throw t;return await (0,p.sendResponse)(F,B,new Response(null,{status:500})),null}}e.s(["handler",()=>T,"patchFetch",()=>C,"routeModule",()=>A,"serverHooks",()=>S,"workAsyncStorage",()=>R,"workUnitAsyncStorage",()=>_],890964)}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__eb69343e._.js.map
@@ -1,4 +1,4 @@
1
- module.exports=[623775,e=>{"use strict";e.i(237718),e.i(133);var t=e.i(842851),r=e.i(393018),o=e.i(167361),a=e.i(262504),s=e.i(840427),n=e.i(749010),g=e.i(484167),i=e.i(103292),d=e.i(735066),l=e.i(480223),c=e.i(890838),p=e.i(981261),u=e.i(32868);e.s(["DEFAULT_WORKFLOW_ID",()=>n.DEFAULT_WORKFLOW_ID,"IDENTIFIER_PREFIX_REGEX",()=>t.IDENTIFIER_PREFIX_REGEX,"addLearning",()=>l.addLearning,"addProjectAgent",()=>s.addProjectAgent,"addProjectMemory",()=>s.addProjectMemory,"addProjectSkill",()=>s.addProjectSkill,"addProjectThread",()=>s.addProjectThread,"addTaskComment",()=>d.addTaskComment,"addTaskCostEntry",()=>i.addTaskCostEntry,"addTaskLog",()=>g.addTaskLog,"addTeamAgent",()=>p.addTeamAgent,"appendRunToIndex",()=>a.appendRunToIndex,"assignOrphanTasksToProject",()=>s.assignOrphanTasksToProject,"buildExecutionProvenance",()=>u.buildExecutionProvenance,"createAgent",()=>c.createAgent,"createProject",()=>s.createProject,"createTask",()=>a.createTask,"createTeam",()=>p.createTeam,"createWorkspaceEntry",()=>s.createWorkspaceEntry,"defaultStagePrompts",()=>n.defaultStagePrompts,"deleteAgent",()=>c.deleteAgent,"deleteLearning",()=>l.deleteLearning,"deleteProject",()=>s.deleteProject,"deleteProjectMemory",()=>s.deleteProjectMemory,"deleteProjectVariable",()=>s.deleteProjectVariable,"deleteStagePrompt",()=>n.deleteStagePrompt,"deleteTask",()=>a.deleteTask,"deleteTaskComment",()=>d.deleteTaskComment,"deleteTeam",()=>p.deleteTeam,"deleteWorkspaceEntry",()=>s.deleteWorkspaceEntry,"ensureNoCircularDependency",()=>r.ensureNoCircularDependency,"extractTitle",()=>r.extractTitle,"generateUniqueProjectSlug",()=>r.generateUniqueProjectSlug,"generateUniqueSlug",()=>r.generateUniqueSlug,"getAgent",()=>c.getAgent,"getAgentSkills",()=>c.getAgentSkills,"getAgents",()=>c.getAgents,"getDbClient",()=>r.getDbClient,"getDefaultWorkflowId",()=>n.getDefaultWorkflowId,"getLearnings",()=>l.getLearnings,"getNextQueuedTask",()=>a.getNextQueuedTask,"getProjectAgents",()=>s.getProjectAgents,"getProjectBySlug",()=>s.getProjectBySlug,"getProjectForThread",()=>s.getProjectForThread,"getProjectMemory",()=>s.getProjectMemory,"getProjectRepos",()=>s.getProjectRepos,"getProjectSkills",()=>s.getProjectSkills,"getProjectThreads",()=>s.getProjectThreads,"getProjectVariables",()=>s.getProjectVariables,"getProjectWithRepos",()=>s.getProjectWithRepos,"getProjectWorkspace",()=>s.getProjectWorkspace,"getProjects",()=>s.getProjects,"getStagePrompt",()=>n.getStagePrompt,"getStagePrompts",()=>n.getStagePrompts,"getTask",()=>a.getTask,"getTaskBySlug",()=>a.getTaskBySlug,"getTaskComments",()=>d.getTaskComments,"getTaskCostEntries",()=>i.getTaskCostEntries,"getTaskCostSummary",()=>i.getTaskCostSummary,"getTaskLogs",()=>g.getTaskLogs,"getTasks",()=>a.getTasks,"getTeam",()=>p.getTeam,"getTeamAgents",()=>p.getTeamAgents,"getTeams",()=>p.getTeams,"getUserSettings",()=>o.getUserSettings,"getWorkflow",()=>n.getWorkflow,"getWorkflowNodeByName",()=>n.getWorkflowNodeByName,"getWorkflowNodes",()=>n.getWorkflowNodes,"getWorkflowTransitions",()=>n.getWorkflowTransitions,"getWorkflowTransitionsFromNode",()=>n.getWorkflowTransitionsFromNode,"getWorkflowWithGraph",()=>n.getWorkflowWithGraph,"getWorkflows",()=>n.getWorkflows,"getWorkspaceMapForContext",()=>s.getWorkspaceMapForContext,"isMissingRelationError",()=>r.isMissingRelationError,"normalizeDependsOnInput",()=>r.normalizeDependsOnInput,"parseDependsOnValue",()=>r.parseDependsOnValue,"parseFrontmatter",()=>r.parseFrontmatter,"removeProjectAgent",()=>s.removeProjectAgent,"removeProjectSkill",()=>s.removeProjectSkill,"removeProjectThread",()=>s.removeProjectThread,"removeTeamAgent",()=>p.removeTeamAgent,"reorderProjectAgents",()=>s.reorderProjectAgents,"resolveMemory",()=>u.resolveMemory,"resolveSkills",()=>u.resolveSkills,"resolveTaskConfig",()=>r.resolveTaskConfig,"resolveVariables",()=>u.resolveVariables,"setAgentSkills",()=>c.setAgentSkills,"setProjectVariable",()=>s.setProjectVariable,"slugify",()=>r.slugify,"summarizeTaskCosts",()=>i.summarizeTaskCosts,"updateAgent",()=>c.updateAgent,"updateProject",()=>s.updateProject,"updateTask",()=>a.updateTask,"updateTeam",()=>p.updateTeam,"updateWorkflow",()=>n.updateWorkflow,"updateWorkflowNodes",()=>n.updateWorkflowNodes,"updateWorkspaceEntry",()=>s.updateWorkspaceEntry,"upsertStagePrompt",()=>n.upsertStagePrompt,"upsertUserSettings",()=>o.upsertUserSettings,"validateIdentifierPrefix",()=>t.validateIdentifierPrefix],607421),e.i(607421),e.s(["DEFAULT_WORKFLOW_ID",()=>n.DEFAULT_WORKFLOW_ID,"IDENTIFIER_PREFIX_REGEX",()=>t.IDENTIFIER_PREFIX_REGEX,"addLearning",()=>l.addLearning,"addProjectAgent",()=>s.addProjectAgent,"addProjectMemory",()=>s.addProjectMemory,"addProjectSkill",()=>s.addProjectSkill,"addProjectThread",()=>s.addProjectThread,"addTaskComment",()=>d.addTaskComment,"addTaskCostEntry",()=>i.addTaskCostEntry,"addTaskLog",()=>g.addTaskLog,"addTeamAgent",()=>p.addTeamAgent,"appendRunToIndex",()=>a.appendRunToIndex,"assignOrphanTasksToProject",()=>s.assignOrphanTasksToProject,"buildExecutionProvenance",()=>u.buildExecutionProvenance,"createAgent",()=>c.createAgent,"createProject",()=>s.createProject,"createTask",()=>a.createTask,"createTeam",()=>p.createTeam,"createWorkspaceEntry",()=>s.createWorkspaceEntry,"defaultStagePrompts",()=>n.defaultStagePrompts,"deleteAgent",()=>c.deleteAgent,"deleteLearning",()=>l.deleteLearning,"deleteProject",()=>s.deleteProject,"deleteProjectMemory",()=>s.deleteProjectMemory,"deleteProjectVariable",()=>s.deleteProjectVariable,"deleteStagePrompt",()=>n.deleteStagePrompt,"deleteTask",()=>a.deleteTask,"deleteTaskComment",()=>d.deleteTaskComment,"deleteTeam",()=>p.deleteTeam,"deleteWorkspaceEntry",()=>s.deleteWorkspaceEntry,"ensureNoCircularDependency",()=>r.ensureNoCircularDependency,"extractTitle",()=>r.extractTitle,"generateUniqueProjectSlug",()=>r.generateUniqueProjectSlug,"generateUniqueSlug",()=>r.generateUniqueSlug,"getAgent",()=>c.getAgent,"getAgentSkills",()=>c.getAgentSkills,"getAgents",()=>c.getAgents,"getDbClient",()=>r.getDbClient,"getDefaultWorkflowId",()=>n.getDefaultWorkflowId,"getLearnings",()=>l.getLearnings,"getNextQueuedTask",()=>a.getNextQueuedTask,"getProjectAgents",()=>s.getProjectAgents,"getProjectBySlug",()=>s.getProjectBySlug,"getProjectForThread",()=>s.getProjectForThread,"getProjectMemory",()=>s.getProjectMemory,"getProjectRepos",()=>s.getProjectRepos,"getProjectSkills",()=>s.getProjectSkills,"getProjectThreads",()=>s.getProjectThreads,"getProjectVariables",()=>s.getProjectVariables,"getProjectWithRepos",()=>s.getProjectWithRepos,"getProjectWorkspace",()=>s.getProjectWorkspace,"getProjects",()=>s.getProjects,"getStagePrompt",()=>n.getStagePrompt,"getStagePrompts",()=>n.getStagePrompts,"getTask",()=>a.getTask,"getTaskBySlug",()=>a.getTaskBySlug,"getTaskComments",()=>d.getTaskComments,"getTaskCostEntries",()=>i.getTaskCostEntries,"getTaskCostSummary",()=>i.getTaskCostSummary,"getTaskLogs",()=>g.getTaskLogs,"getTasks",()=>a.getTasks,"getTeam",()=>p.getTeam,"getTeamAgents",()=>p.getTeamAgents,"getTeams",()=>p.getTeams,"getUserSettings",()=>o.getUserSettings,"getWorkflow",()=>n.getWorkflow,"getWorkflowNodeByName",()=>n.getWorkflowNodeByName,"getWorkflowNodes",()=>n.getWorkflowNodes,"getWorkflowTransitions",()=>n.getWorkflowTransitions,"getWorkflowTransitionsFromNode",()=>n.getWorkflowTransitionsFromNode,"getWorkflowWithGraph",()=>n.getWorkflowWithGraph,"getWorkflows",()=>n.getWorkflows,"getWorkspaceMapForContext",()=>s.getWorkspaceMapForContext,"isMissingRelationError",()=>r.isMissingRelationError,"normalizeDependsOnInput",()=>r.normalizeDependsOnInput,"parseDependsOnValue",()=>r.parseDependsOnValue,"parseFrontmatter",()=>r.parseFrontmatter,"removeProjectAgent",()=>s.removeProjectAgent,"removeProjectSkill",()=>s.removeProjectSkill,"removeProjectThread",()=>s.removeProjectThread,"removeTeamAgent",()=>p.removeTeamAgent,"reorderProjectAgents",()=>s.reorderProjectAgents,"resolveMemory",()=>u.resolveMemory,"resolveSkills",()=>u.resolveSkills,"resolveTaskConfig",()=>r.resolveTaskConfig,"resolveVariables",()=>u.resolveVariables,"setAgentSkills",()=>c.setAgentSkills,"setProjectVariable",()=>s.setProjectVariable,"slugify",()=>r.slugify,"summarizeTaskCosts",()=>i.summarizeTaskCosts,"updateAgent",()=>c.updateAgent,"updateProject",()=>s.updateProject,"updateTask",()=>a.updateTask,"updateTeam",()=>p.updateTeam,"updateWorkflow",()=>n.updateWorkflow,"updateWorkflowNodes",()=>n.updateWorkflowNodes,"updateWorkspaceEntry",()=>s.updateWorkspaceEntry,"upsertStagePrompt",()=>n.upsertStagePrompt,"upsertUserSettings",()=>o.upsertUserSettings,"validateIdentifierPrefix",()=>t.validateIdentifierPrefix],623775)},309113,e=>{"use strict";e.i(870611);var t=e.i(938281),r=e.i(902157),o=e.i(750227),a=e.i(660526);let s=new Set(["running","working"]),n=`Review the thread, assess whether the work is complete enough to move into review, and if not, produce one concise steering message that combines:
1
+ module.exports=[623775,e=>{"use strict";e.i(237718),e.i(133);var t=e.i(842851),r=e.i(393018),o=e.i(167361),a=e.i(262504),s=e.i(840427),n=e.i(749010),g=e.i(484167),i=e.i(103292),d=e.i(735066),l=e.i(480223),c=e.i(890838),p=e.i(981261),u=e.i(32868);e.s(["DEFAULT_WORKFLOW_ID",()=>n.DEFAULT_WORKFLOW_ID,"IDENTIFIER_PREFIX_REGEX",()=>t.IDENTIFIER_PREFIX_REGEX,"addLearning",()=>l.addLearning,"addProjectAgent",()=>s.addProjectAgent,"addProjectMemory",()=>s.addProjectMemory,"addProjectSkill",()=>s.addProjectSkill,"addProjectThread",()=>s.addProjectThread,"addTaskComment",()=>d.addTaskComment,"addTaskCostEntry",()=>i.addTaskCostEntry,"addTaskLog",()=>g.addTaskLog,"addTeamAgent",()=>p.addTeamAgent,"appendRunToIndex",()=>a.appendRunToIndex,"assignOrphanTasksToProject",()=>s.assignOrphanTasksToProject,"buildExecutionProvenance",()=>u.buildExecutionProvenance,"createAgent",()=>c.createAgent,"createProject",()=>s.createProject,"createTask",()=>a.createTask,"createTeam",()=>p.createTeam,"createWorkspaceEntry",()=>s.createWorkspaceEntry,"defaultStagePrompts",()=>n.defaultStagePrompts,"deleteAgent",()=>c.deleteAgent,"deleteLearning",()=>l.deleteLearning,"deleteProject",()=>s.deleteProject,"deleteProjectMemory",()=>s.deleteProjectMemory,"deleteProjectVariable",()=>s.deleteProjectVariable,"deleteStagePrompt",()=>n.deleteStagePrompt,"deleteTask",()=>a.deleteTask,"deleteTaskComment",()=>d.deleteTaskComment,"deleteTeam",()=>p.deleteTeam,"deleteWorkspaceEntry",()=>s.deleteWorkspaceEntry,"ensureNoCircularDependency",()=>r.ensureNoCircularDependency,"extractTitle",()=>r.extractTitle,"generateUniqueProjectSlug",()=>r.generateUniqueProjectSlug,"generateUniqueSlug",()=>r.generateUniqueSlug,"getAgent",()=>c.getAgent,"getAgentSkills",()=>c.getAgentSkills,"getAgents",()=>c.getAgents,"getDbClient",()=>r.getDbClient,"getDefaultWorkflowId",()=>n.getDefaultWorkflowId,"getLearnings",()=>l.getLearnings,"getNextQueuedTask",()=>a.getNextQueuedTask,"getProjectAgents",()=>s.getProjectAgents,"getProjectBySlug",()=>s.getProjectBySlug,"getProjectForThread",()=>s.getProjectForThread,"getProjectMemory",()=>s.getProjectMemory,"getProjectRepos",()=>s.getProjectRepos,"getProjectSkills",()=>s.getProjectSkills,"getProjectThreads",()=>s.getProjectThreads,"getProjectVariables",()=>s.getProjectVariables,"getProjectWithRepos",()=>s.getProjectWithRepos,"getProjectWorkspace",()=>s.getProjectWorkspace,"getProjectWorkspaceEntries",()=>s.getProjectWorkspaceEntries,"getProjects",()=>s.getProjects,"getStagePrompt",()=>n.getStagePrompt,"getStagePrompts",()=>n.getStagePrompts,"getTask",()=>a.getTask,"getTaskBySlug",()=>a.getTaskBySlug,"getTaskComments",()=>d.getTaskComments,"getTaskCostEntries",()=>i.getTaskCostEntries,"getTaskCostSummary",()=>i.getTaskCostSummary,"getTaskLogs",()=>g.getTaskLogs,"getTasks",()=>a.getTasks,"getTeam",()=>p.getTeam,"getTeamAgents",()=>p.getTeamAgents,"getTeams",()=>p.getTeams,"getUserSettings",()=>o.getUserSettings,"getWorkflow",()=>n.getWorkflow,"getWorkflowNodeByName",()=>n.getWorkflowNodeByName,"getWorkflowNodes",()=>n.getWorkflowNodes,"getWorkflowTransitions",()=>n.getWorkflowTransitions,"getWorkflowTransitionsFromNode",()=>n.getWorkflowTransitionsFromNode,"getWorkflowWithGraph",()=>n.getWorkflowWithGraph,"getWorkflows",()=>n.getWorkflows,"getWorkspaceMapForContext",()=>s.getWorkspaceMapForContext,"isMissingRelationError",()=>r.isMissingRelationError,"normalizeDependsOnInput",()=>r.normalizeDependsOnInput,"parseDependsOnValue",()=>r.parseDependsOnValue,"parseFrontmatter",()=>r.parseFrontmatter,"removeProjectAgent",()=>s.removeProjectAgent,"removeProjectSkill",()=>s.removeProjectSkill,"removeProjectThread",()=>s.removeProjectThread,"removeTeamAgent",()=>p.removeTeamAgent,"reorderProjectAgents",()=>s.reorderProjectAgents,"resolveMemory",()=>u.resolveMemory,"resolveSkills",()=>u.resolveSkills,"resolveTaskConfig",()=>r.resolveTaskConfig,"resolveVariables",()=>u.resolveVariables,"setAgentSkills",()=>c.setAgentSkills,"setProjectVariable",()=>s.setProjectVariable,"slugify",()=>r.slugify,"summarizeTaskCosts",()=>i.summarizeTaskCosts,"updateAgent",()=>c.updateAgent,"updateProject",()=>s.updateProject,"updateTask",()=>a.updateTask,"updateTeam",()=>p.updateTeam,"updateWorkflow",()=>n.updateWorkflow,"updateWorkflowNodes",()=>n.updateWorkflowNodes,"updateWorkspaceEntry",()=>s.updateWorkspaceEntry,"upsertStagePrompt",()=>n.upsertStagePrompt,"upsertUserSettings",()=>o.upsertUserSettings,"validateIdentifierPrefix",()=>t.validateIdentifierPrefix],607421),e.i(607421),e.s(["DEFAULT_WORKFLOW_ID",()=>n.DEFAULT_WORKFLOW_ID,"IDENTIFIER_PREFIX_REGEX",()=>t.IDENTIFIER_PREFIX_REGEX,"addLearning",()=>l.addLearning,"addProjectAgent",()=>s.addProjectAgent,"addProjectMemory",()=>s.addProjectMemory,"addProjectSkill",()=>s.addProjectSkill,"addProjectThread",()=>s.addProjectThread,"addTaskComment",()=>d.addTaskComment,"addTaskCostEntry",()=>i.addTaskCostEntry,"addTaskLog",()=>g.addTaskLog,"addTeamAgent",()=>p.addTeamAgent,"appendRunToIndex",()=>a.appendRunToIndex,"assignOrphanTasksToProject",()=>s.assignOrphanTasksToProject,"buildExecutionProvenance",()=>u.buildExecutionProvenance,"createAgent",()=>c.createAgent,"createProject",()=>s.createProject,"createTask",()=>a.createTask,"createTeam",()=>p.createTeam,"createWorkspaceEntry",()=>s.createWorkspaceEntry,"defaultStagePrompts",()=>n.defaultStagePrompts,"deleteAgent",()=>c.deleteAgent,"deleteLearning",()=>l.deleteLearning,"deleteProject",()=>s.deleteProject,"deleteProjectMemory",()=>s.deleteProjectMemory,"deleteProjectVariable",()=>s.deleteProjectVariable,"deleteStagePrompt",()=>n.deleteStagePrompt,"deleteTask",()=>a.deleteTask,"deleteTaskComment",()=>d.deleteTaskComment,"deleteTeam",()=>p.deleteTeam,"deleteWorkspaceEntry",()=>s.deleteWorkspaceEntry,"ensureNoCircularDependency",()=>r.ensureNoCircularDependency,"extractTitle",()=>r.extractTitle,"generateUniqueProjectSlug",()=>r.generateUniqueProjectSlug,"generateUniqueSlug",()=>r.generateUniqueSlug,"getAgent",()=>c.getAgent,"getAgentSkills",()=>c.getAgentSkills,"getAgents",()=>c.getAgents,"getDbClient",()=>r.getDbClient,"getDefaultWorkflowId",()=>n.getDefaultWorkflowId,"getLearnings",()=>l.getLearnings,"getNextQueuedTask",()=>a.getNextQueuedTask,"getProjectAgents",()=>s.getProjectAgents,"getProjectBySlug",()=>s.getProjectBySlug,"getProjectForThread",()=>s.getProjectForThread,"getProjectMemory",()=>s.getProjectMemory,"getProjectRepos",()=>s.getProjectRepos,"getProjectSkills",()=>s.getProjectSkills,"getProjectThreads",()=>s.getProjectThreads,"getProjectVariables",()=>s.getProjectVariables,"getProjectWithRepos",()=>s.getProjectWithRepos,"getProjectWorkspace",()=>s.getProjectWorkspace,"getProjectWorkspaceEntries",()=>s.getProjectWorkspaceEntries,"getProjects",()=>s.getProjects,"getStagePrompt",()=>n.getStagePrompt,"getStagePrompts",()=>n.getStagePrompts,"getTask",()=>a.getTask,"getTaskBySlug",()=>a.getTaskBySlug,"getTaskComments",()=>d.getTaskComments,"getTaskCostEntries",()=>i.getTaskCostEntries,"getTaskCostSummary",()=>i.getTaskCostSummary,"getTaskLogs",()=>g.getTaskLogs,"getTasks",()=>a.getTasks,"getTeam",()=>p.getTeam,"getTeamAgents",()=>p.getTeamAgents,"getTeams",()=>p.getTeams,"getUserSettings",()=>o.getUserSettings,"getWorkflow",()=>n.getWorkflow,"getWorkflowNodeByName",()=>n.getWorkflowNodeByName,"getWorkflowNodes",()=>n.getWorkflowNodes,"getWorkflowTransitions",()=>n.getWorkflowTransitions,"getWorkflowTransitionsFromNode",()=>n.getWorkflowTransitionsFromNode,"getWorkflowWithGraph",()=>n.getWorkflowWithGraph,"getWorkflows",()=>n.getWorkflows,"getWorkspaceMapForContext",()=>s.getWorkspaceMapForContext,"isMissingRelationError",()=>r.isMissingRelationError,"normalizeDependsOnInput",()=>r.normalizeDependsOnInput,"parseDependsOnValue",()=>r.parseDependsOnValue,"parseFrontmatter",()=>r.parseFrontmatter,"removeProjectAgent",()=>s.removeProjectAgent,"removeProjectSkill",()=>s.removeProjectSkill,"removeProjectThread",()=>s.removeProjectThread,"removeTeamAgent",()=>p.removeTeamAgent,"reorderProjectAgents",()=>s.reorderProjectAgents,"resolveMemory",()=>u.resolveMemory,"resolveSkills",()=>u.resolveSkills,"resolveTaskConfig",()=>r.resolveTaskConfig,"resolveVariables",()=>u.resolveVariables,"setAgentSkills",()=>c.setAgentSkills,"setProjectVariable",()=>s.setProjectVariable,"slugify",()=>r.slugify,"summarizeTaskCosts",()=>i.summarizeTaskCosts,"updateAgent",()=>c.updateAgent,"updateProject",()=>s.updateProject,"updateTask",()=>a.updateTask,"updateTeam",()=>p.updateTeam,"updateWorkflow",()=>n.updateWorkflow,"updateWorkflowNodes",()=>n.updateWorkflowNodes,"updateWorkspaceEntry",()=>s.updateWorkspaceEntry,"upsertStagePrompt",()=>n.upsertStagePrompt,"upsertUserSettings",()=>o.upsertUserSettings,"validateIdentifierPrefix",()=>t.validateIdentifierPrefix],623775)},309113,e=>{"use strict";e.i(870611);var t=e.i(938281),r=e.i(902157),o=e.i(750227),a=e.i(660526);let s=new Set(["running","working"]),n=`Review the thread, assess whether the work is complete enough to move into review, and if not, produce one concise steering message that combines:
2
2
  1. what has been accomplished vs. what remains
3
3
  2. the concrete next steps needed to move toward shipping`,g=`You MUST respond with ONLY a JSON object, no markdown fences, no extra text:
4
4
  {"isDone": true/false, "message": "your assessment"}
@@ -1,3 +1,3 @@
1
- module.exports=[615501,(e,t,a)=>{"use strict";t.exports=e.r(185615).vendored["react-rsc"].ReactJsxRuntime},698134,88007,e=>{"use strict";let t=new Map;function a(e){if(t.has(e.type))throw Error(`Tracker adapter "${e.type}" is already registered`);t.set(e.type,e)}function r(e){let a=t.get(e);if(!a)throw Error(`Unknown tracker type: "${e}". Available: ${i().join(", ")}`);return a}function s(e){return t.get(e)??null}function i(){return[...t.keys()]}function n(){return[...t.values()]}e.s(["getAdapter",()=>r,"getAdapterOrNull",()=>s,"listAdapterTypes",()=>i,"listAdapters",()=>n,"registerAdapter",()=>a],88007);var o=e.i(581001),l=e.i(404258),d=e.i(615501);function c({className:e}){return(0,d.jsx)("svg",{className:e,viewBox:"0 0 24 24",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",children:(0,d.jsx)("path",{d:"M2.886 4.18A11.982 11.982 0 0 1 11.99 0C18.624 0 24 5.376 24 12.009c0 3.64-1.62 6.903-4.18 9.105L2.887 4.18ZM1.817 5.626l16.556 16.556c-.524.33-1.075.62-1.65.866L.951 7.277c.247-.575.537-1.126.866-1.65ZM.322 9.163l14.515 14.515c-.71.172-1.443.282-2.195.322L0 11.358a12 12 0 0 1 .322-2.195Zm-.17 4.862 9.823 9.824a12.02 12.02 0 0 1-9.824-9.824Z"})})}function u(e){let t=e.trim().toLowerCase();return["done","completed","closed"].includes(t)?"done":["cancelled","canceled","duplicate"].includes(t)?"cancelled":["in progress","in review","started","testing","deployed","in deployment"].includes(t)?"in_progress":"todo"}async function p(e,t){throw Error("Linear OAuth callback must be handled by the route handler")}async function g(e){let t=(0,o.getLinearClient)(e);if(!t)return{connected:!1};try{let e=await t.viewer;return{connected:!0,user:{id:e.id,name:e.name,avatarUrl:void 0}}}catch{return{connected:!1}}}async function m(t){let{deleteProjectTicketToken:a}=await e.A(836400);a(t,"linear")}function y(e){return{id:e.id,name:e.name??`Cycle ${e.number}`,type:"cycle"}}e.i(78362);var h=e.i(754493),w=e.i(607495);function f({className:e}){return(0,d.jsx)("svg",{className:e,viewBox:"0 0 100 100",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",children:(0,d.jsx)("path",{d:"M94.6 12.2c-1.4-1.6-3.4-2.5-5.6-2.5H10.8c-2.1 0-4.1.9-5.6 2.5C3.8 13.8 3 15.8 3 17.9v64.2c0 2.1.8 4.1 2.2 5.7 1.5 1.6 3.5 2.5 5.6 2.5h78.2c2.2 0 4.2-.9 5.6-2.5 1.5-1.6 2.2-3.6 2.2-5.7V17.9c.1-2.1-.6-4.1-2.2-5.7zM50 72.4L27.6 50 50 27.6 72.4 50 50 72.4z"})})}var A=e.i(593964),k=e.i(666680);let v=new Map;function I(e){for(let[t,a]of v)e-a.createdAt>6e5&&v.delete(t)}var b=e.i(765973),C=e.i(793391),T=e.i(896252);function x({className:e}){return(0,d.jsx)("svg",{className:e,viewBox:"0 0 24 24",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",children:(0,d.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0024 12c0-6.63-5.37-12-12-12z"})})}function S(e){let t="merged"===e.state?"done":"closed"===e.state?"cancelled":e.draft?"todo":"in_progress",a=`PR #${e.number}`;return{id:e.id,trackerId:e.id,trackerType:"github",identifier:a,title:e.title,description:e.body,status:e.draft?"draft":e.state,statusCategory:t,assignee:e.authorLogin?{id:e.authorLogin,name:e.authorLogin}:void 0,labels:["pr",...e.labels],createdAt:new Date(e.createdAt).toISOString(),updatedAt:new Date(e.updatedAt).toISOString(),url:e.url,group:{id:e.repoId,name:e.repoId}}}function L(e){let t="closed"===e.state?"done":"todo",a=`#${e.number}`;return{id:e.id,trackerId:e.id,trackerType:"github",identifier:a,title:e.title,description:e.body,status:e.state,statusCategory:t,assignee:e.authorLogin?{id:e.authorLogin,name:e.authorLogin}:void 0,labels:["issue",...e.labels],createdAt:new Date(e.createdAt).toISOString(),updatedAt:new Date(e.updatedAt).toISOString(),url:e.url,group:{id:e.repoId,name:e.repoId}}}e.i(242617),a(new class{type="linear";displayName="Linear";groupLabel="Cycle";icon=c;getAuthUrl(e){let t;return t=new URL((0,l.getConfiguredAppBaseUrl)()).port||"41741",`https://www.runagx.com/integrations/linear/auth?port=${t}`}async handleCallback(e,t){return p(e,t)}async getStatus(e){return g(e)}async disconnect(e){return m(e)}async listItems(t,a){let{ensureLinearIssueCache:r,listLinearIssueSummaries:s}=await e.A(58723),{getIssueActivityMap:i}=await e.A(138720),n=!a.cursor;await r({projectId:t,refresh:n});let o=a.hasActivity?await i(t):void 0,{listCachedTrackerItems:l}=await e.A(410437),d=await l({trackerType:"linear",search:a.search,statuses:a.statuses,statusCategories:a.statusCategories,assigneeIds:a.assigneeIds,groupIds:a.groupIds,cursor:a.cursor,limit:a.limit,sortBy:a.sortBy??"activity",sortDir:a.sortDir,hasActivity:a.hasActivity,activityMap:o});return{items:d.issues.map(e=>({id:e.id,trackerId:e.trackerId||`linear:${e.teamId??"default"}`,trackerType:"linear",identifier:e.identifier,title:e.title,description:e.description??void 0,status:e.status,statusCategory:e.statusCategory,assignee:e.assignee?{id:e.assigneeId??e.assignee,name:e.assignee,avatarUrl:void 0}:void 0,priority:void 0,labels:e.labels??[],createdAt:e.pulledAt,updatedAt:e.updatedAt,url:e.url??`https://linear.app/issue/${e.identifier}`})),pageInfo:d.pageInfo}}async getItem(t,a){let{getCachedTrackerItemContexts:r}=await e.A(410437),s=(await r([a]))[0];if(!s)throw Error(`Item ${a} not found`);return{id:s.id,trackerId:s.trackerId||`linear:${s.teamId??"default"}`,trackerType:"linear",identifier:s.identifier,title:s.title,description:s.description??void 0,status:s.status,statusCategory:s.statusCategory,assignee:s.assignee?{id:s.assigneeId??s.assignee,name:s.assignee,avatarUrl:void 0}:void 0,labels:s.labels??[],createdAt:s.pulledAt,updatedAt:s.updatedAt,url:s.url??`https://linear.app/issue/${s.identifier}`,comments:[],activity:[],metadata:{teamId:s.teamId,teamName:s.teamName,teamKey:s.teamKey,cycleId:s.cycleId,cycleName:s.cycleName,cycleNumber:s.cycleNumber,isAssignedToMe:s.isAssignedToMe}}}async updateItem(t,a,r){let s=(0,o.getLinearClient)(t);if(!s)throw Error("Not connected to Linear");if(r.status){let t=await s.updateIssueStatus(a,r.status),{updateCachedTrackerItemStatus:i}=await e.A(410437);return await i({issueId:a,status:t.status??r.status,updatedAt:t.updatedAt}),{id:a,trackerId:"linear:default",trackerType:"linear",identifier:t.identifier,title:t.title,status:t.status??r.status,statusCategory:u(t.status??r.status),assignee:t.assignee?{id:t.assignee,name:t.assignee}:void 0,labels:[],createdAt:t.updatedAt,updatedAt:t.updatedAt,url:t.url??`https://linear.app/issue/${t.identifier}`}}throw Error("Only status updates are currently supported")}async addComment(e,t,a){throw Error("Linear addComment not yet implemented")}async getActivity(e,t){return[]}async listGroups(e){let t=(0,o.getLinearClient)(e);return t?(await t.cycles()).map(y):[]}async listStatuses(e){let t=(0,o.getLinearClient)(e);if(!t)return[];try{let e=await t.workflowStates(),a=new Set;return e.map(e=>({id:e.id,name:e.name,category:u(e.name)})).filter(e=>!a.has(e.name)&&(a.add(e.name),!0))}catch{return[{id:"todo",name:"Todo",category:"todo"},{id:"in_progress",name:"In Progress",category:"in_progress"},{id:"done",name:"Done",category:"done"},{id:"cancelled",name:"Cancelled",category:"cancelled"}]}}async listAssignees(e){let t=(0,o.getLinearClient)(e);return t?(await t.users()).map(e=>({id:e.id,name:e.name,avatarUrl:void 0})):[]}async handleApiKeyConnect(t,a){let{saveProjectTicketToken:r}=await e.A(836400);r(t,"linear",{accessToken:a})}async handleTokenDelivery(t,a){let r=a.access_token;if(!r)throw Error("Missing access_token");let{saveProjectTicketToken:s}=await e.A(836400),i=a.expires_in?Number(a.expires_in):void 0;s(t,"linear",{accessToken:r,...i&&{expiresAt:Date.now()+1e3*i}})}getMcpConfig(e){let t=(0,o.getProjectTicketToken)(e,"linear");return{name:"linear",url:"https://mcp.linear.app/sse",headers:t?{Authorization:`Bearer ${t.accessToken}`}:{}}}renderGroupLabel(e){return"cycle"===e.type?`Cycle: ${e.name}`:e.name}}),a(new class{type="jira";displayName="Jira Cloud";groupLabel="Sprint";icon=f;getAuthUrl(e){return(0,h.getJiraAuthUrl)(e)}async handleCallback(e,t){let a=await (0,h.exchangeJiraCode)(t),r=(await (0,h.getAccessibleResources)(a.accessToken))[0];if(!r)throw Error("No accessible Jira resources found");return(0,h.saveJiraToken)(e,{accessToken:a.accessToken,refreshToken:a.refreshToken,expiresAt:a.expiresAt,cloudId:r.id,siteUrl:r.url}),{accessToken:a.accessToken,refreshToken:a.refreshToken,expiresAt:a.expiresAt}}async getStatus(e){let t=(0,h.getJiraToken)(e);if(!t?.accessToken||!t?.cloudId)return{connected:!1};try{let t=await (0,h.getJiraClient)(e);if(!t)return{connected:!1};let a=await t.getMyself();return{connected:!0,user:{id:a.id,name:a.name,avatarUrl:a.avatarUrl}}}catch{return{connected:!1}}}async disconnect(t){(0,h.deleteJiraToken)(t);let{removeTrackerConnection:a}=await e.A(169447);a(t,"jira")}async listItems(t,a){let{ensureJiraIssueCache:r,mapJiraIssue:s}=await e.A(119130),i=(0,h.getJiraToken)(t),n=!a.cursor;await r({projectId:t,refresh:n});let{listCachedTrackerItems:o}=await e.A(410437),l=await o({trackerType:"jira",search:a.search,statuses:a.statuses,statusCategories:a.statusCategories,assigneeIds:a.assigneeIds,groupIds:a.groupIds,cursor:a.cursor,limit:a.limit,sortBy:a.sortBy??"activity",sortDir:a.sortDir,hasActivity:a.hasActivity}),d=i?.siteUrl??"https://example.atlassian.net";return{items:l.issues.map(e=>({id:e.id,trackerId:e.trackerId||"jira:default",trackerType:"jira",identifier:e.identifier,title:e.title,description:e.description??void 0,status:e.status,statusCategory:e.statusCategory,assignee:e.assignee?{id:e.assigneeId??e.assignee,name:e.assignee}:void 0,labels:e.labels??[],createdAt:e.pulledAt,updatedAt:e.updatedAt,url:e.url??`${d}/browse/${e.identifier}`})),pageInfo:l.pageInfo}}async getItem(t,a){let{getJiraIssueDetail:r}=await e.A(119130);return r(t,a)}async updateItem(t,a,r){let s=await (0,h.getJiraClient)(t);if(!s)throw Error("Not connected to Jira");if(r.status){let e=await s.getTransitions(a),t=e.find(e=>e.to.name===r.status||e.name===r.status);if(!t)throw Error(`No transition to status "${r.status}" available. Valid transitions: ${e.map(e=>e.name).join(", ")}`);await s.transitionIssue(a,t.id)}r.assigneeId&&await s.updateIssue(a,{assignee:{accountId:r.assigneeId}}),r.labels&&await s.updateIssue(a,{labels:r.labels});let i=(0,h.getJiraToken)(t),n=i?.siteUrl??"https://example.atlassian.net",o=await s.getIssue(a),{mapJiraIssue:l}=await e.A(119130);return l(o,n)}async addComment(e,t,a){let r=await (0,h.getJiraClient)(e);if(!r)throw Error("Not connected to Jira");await r.addComment(t,a)}async getActivity(e,t){let a=await (0,h.getJiraClient)(e);return a?(await a.getActivity(t)).map(e=>({id:e.id,type:"update",description:e.items.map(e=>`${e.field}: ${e.fromString??""} → ${e.toString??""}`).join(", "),actor:{id:e.author.accountId,name:e.author.displayName},createdAt:e.created})):[]}async listGroups(e){let t=await (0,h.getJiraClient)(e);if(!t)return[];try{let e=await t.getBoards(),a=[];for(let r of e.slice(0,5))for(let e of(await t.getSprints(r.id)))("active"===e.state||"future"===e.state)&&a.push({id:String(e.id),name:e.name,type:"sprint"});return a}catch{return[]}}async listStatuses(e){let t=await (0,h.getJiraClient)(e);if(!t)return[];try{let e=await t.getStatuses(),a=new Set,r=[];for(let t of e)a.has(t.name)||(a.add(t.name),r.push({id:t.id,name:t.name,category:(0,w.jiraStatusCategoryToCanonical)(t.statusCategory?.key)}));return r}catch{return[]}}async listAssignees(t){let a=await (0,h.getJiraClient)(t);if(!a)return[];(0,h.getJiraToken)(t);let{listCachedTrackerItems:r}=await e.A(410437),s=await r({trackerType:"jira",limit:1}),i=s.issues[0]?.teamKey;if(!i)return[];try{return(await a.getAssignableUsers(i)).map(e=>({id:e.accountId,name:e.displayName,avatarUrl:e.avatarUrls?.["48x48"]}))}catch{return[]}}async handleApiKeyConnect(e,t){throw Error("Jira Cloud requires OAuth authentication — use the Connect button instead")}async handleTokenDelivery(e,t){let a=t.access_token,r=t.cloud_id,s=t.site_url;if(!a||!r||!s)throw Error("Missing required Jira token fields (access_token, cloud_id, site_url)");let i=t.expires_in?Number(t.expires_in):void 0;(0,h.saveJiraToken)(e,{accessToken:a,refreshToken:t.refresh_token,cloudId:r,siteUrl:s,...i&&{expiresAt:Date.now()+1e3*i}})}getMcpConfig(e){let t=(0,h.getJiraToken)(e);return{name:"jira",url:"https://mcp.atlassian.com/v1/sse",headers:t?{Authorization:`Bearer ${t.accessToken}`}:{}}}renderGroupLabel(e){return"sprint"===e.type?`Sprint: ${e.name}`:e.name}}),a(new class{type="github";displayName="GitHub";icon=x;groupLabel="Repo";getAuthUrl(e){let t,a,r=(I(t=Date.now()),a=k.default.randomBytes(16).toString("hex"),v.set(a,{projectId:e,createdAt:t}),a),s=new URL((0,l.getConfiguredAppBaseUrl)()).port||process.env.PORT||"3000",i=`http://localhost:${s}/api/trackers/github/token-receive`,n=new URL("https://www.runagx.com/connect/github");return n.searchParams.set("session",r),n.searchParams.set("return",i),n.searchParams.set("project",e),n.toString()}async handleCallback(e,t){throw Error("GitHub uses token delivery, not code exchange")}async handleTokenDelivery(e,t){let a,r,s=t.session?.trim(),i=t.access_token?.trim(),n=t.refresh_token,o=t.expires_at,l=t.login?.trim(),d=t.scopes??"";if(!s)throw Error("Missing session");let c=(I(a=Date.now()),(r=v.get(s))?a-r.createdAt>6e5?(v.delete(s),null):(v.delete(s),r):null);if(!c)throw Error("Invalid or expired session");if(c.projectId!==e)throw Error("Session project mismatch");if(!i)throw Error("Missing access_token");if(!l)throw Error("Missing login");let u=o&&""!==o&&!Number.isNaN(Number(o))?Number(o):null,p=d.split(",").map(e=>e.trim()).filter(e=>e.length>0);(0,A.saveGithubTokens)(e,{accessToken:i,refreshToken:n&&n.length>0?n:null,expiresAt:u,login:l,scopes:p})}async getStatus(e){let t=(0,A.loadGithubTokens)(e);return t?{connected:!0,user:{id:t.login,name:t.login}}:{connected:!1}}async disconnect(t){(0,A.clearGithubTokens)(t);let{removeTrackerConnection:a}=await e.A(169447);a(t,"github")}async listItems(e,t){let a=t.groupIds&&t.groupIds.length>0?t.groupIds:null,r=a?a.flatMap(e=>(0,C.listGithubPrs)({repoId:e})):(0,C.listGithubPrs)({}),s=a?a.flatMap(e=>(0,T.listGithubIssuesByRepo)(e)):(0,T.listAllGithubIssues)();return{items:[...r.map(S),...s.map(L)].sort((e,t)=>e.updatedAt<t.updatedAt?1:-1),pageInfo:{hasNextPage:!1,endCursor:null}}}async getItem(e,t){throw Error("GitHub adapter does not support issue items")}async updateItem(e,t,a){throw Error("GitHub adapter does not support issue updates")}async addComment(e,t,a){throw Error("GitHub adapter does not support comments")}async getActivity(e,t){return[]}async listGroups(e){return(0,b.listGithubRepos)().map(e=>({id:e.id,name:e.name,type:"repo"}))}async listStatuses(e){return[{id:"open",name:"Open",category:"todo"},{id:"in_progress",name:"Open PR",category:"in_progress"},{id:"draft",name:"Draft",category:"todo"},{id:"merged",name:"Merged",category:"done"},{id:"closed",name:"Closed",category:"cancelled"}]}async listAssignees(e){return[]}async handleApiKeyConnect(e,t){throw Error("GitHub requires OAuth authentication — use the Connect button instead")}}),e.s([],698134)}];
1
+ module.exports=[615501,(e,t,a)=>{"use strict";t.exports=e.r(185615).vendored["react-rsc"].ReactJsxRuntime},698134,88007,e=>{"use strict";let t=new Map;function a(e){if(t.has(e.type))throw Error(`Tracker adapter "${e.type}" is already registered`);t.set(e.type,e)}function r(e){let a=t.get(e);if(!a)throw Error(`Unknown tracker type: "${e}". Available: ${i().join(", ")}`);return a}function s(e){return t.get(e)??null}function i(){return[...t.keys()]}function n(){return[...t.values()]}e.s(["getAdapter",()=>r,"getAdapterOrNull",()=>s,"listAdapterTypes",()=>i,"listAdapters",()=>n,"registerAdapter",()=>a],88007);var o=e.i(581001),l=e.i(404258),d=e.i(615501);function c({className:e}){return(0,d.jsx)("svg",{className:e,viewBox:"0 0 24 24",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",children:(0,d.jsx)("path",{d:"M2.886 4.18A11.982 11.982 0 0 1 11.99 0C18.624 0 24 5.376 24 12.009c0 3.64-1.62 6.903-4.18 9.105L2.887 4.18ZM1.817 5.626l16.556 16.556c-.524.33-1.075.62-1.65.866L.951 7.277c.247-.575.537-1.126.866-1.65ZM.322 9.163l14.515 14.515c-.71.172-1.443.282-2.195.322L0 11.358a12 12 0 0 1 .322-2.195Zm-.17 4.862 9.823 9.824a12.02 12.02 0 0 1-9.824-9.824Z"})})}function u(e){let t=e.trim().toLowerCase();return["done","completed","closed"].includes(t)?"done":["cancelled","canceled","duplicate"].includes(t)?"cancelled":["in progress","in review","started","testing","deployed","in deployment"].includes(t)?"in_progress":"todo"}async function p(e,t){throw Error("Linear OAuth callback must be handled by the route handler")}async function g(e){let t=(0,o.getLinearClient)(e);if(!t)return{connected:!1};try{let e=await t.viewer;return{connected:!0,user:{id:e.id,name:e.name,avatarUrl:void 0}}}catch{return{connected:!1}}}async function m(t){let{deleteProjectTicketToken:a}=await e.A(836400);a(t,"linear")}function y(e){return{id:e.id,name:e.name??`Cycle ${e.number}`,type:"cycle"}}e.i(78362);var h=e.i(754493),w=e.i(607495);function f({className:e}){return(0,d.jsx)("svg",{className:e,viewBox:"0 0 100 100",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",children:(0,d.jsx)("path",{d:"M94.6 12.2c-1.4-1.6-3.4-2.5-5.6-2.5H10.8c-2.1 0-4.1.9-5.6 2.5C3.8 13.8 3 15.8 3 17.9v64.2c0 2.1.8 4.1 2.2 5.7 1.5 1.6 3.5 2.5 5.6 2.5h78.2c2.2 0 4.2-.9 5.6-2.5 1.5-1.6 2.2-3.6 2.2-5.7V17.9c.1-2.1-.6-4.1-2.2-5.7zM50 72.4L27.6 50 50 27.6 72.4 50 50 72.4z"})})}var A=e.i(593964),k=e.i(666680);let v=new Map;function I(e){for(let[t,a]of v)e-a.createdAt>6e5&&v.delete(t)}var b=e.i(765973),C=e.i(793391),T=e.i(896252);function x({className:e}){return(0,d.jsx)("svg",{className:e,viewBox:"0 0 24 24",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",children:(0,d.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0024 12c0-6.63-5.37-12-12-12z"})})}function S(e){let t="merged"===e.state?"done":"closed"===e.state?"cancelled":e.draft?"todo":"in_progress",a=`PR #${e.number}`;return{id:e.id,trackerId:e.id,trackerType:"github",identifier:a,title:e.title,description:e.body,status:e.draft?"draft":e.state,statusCategory:t,assignee:e.authorLogin?{id:e.authorLogin,name:e.authorLogin}:void 0,labels:["pr",...e.labels],createdAt:new Date(e.createdAt).toISOString(),updatedAt:new Date(e.updatedAt).toISOString(),url:e.url,group:{id:e.repoId,name:e.repoId}}}function E(e){let t="closed"===e.state?"done":"todo",a=`#${e.number}`;return{id:e.id,trackerId:e.id,trackerType:"github",identifier:a,title:e.title,description:e.body,status:e.state,statusCategory:t,assignee:e.authorLogin?{id:e.authorLogin,name:e.authorLogin}:void 0,labels:["issue",...e.labels],createdAt:new Date(e.createdAt).toISOString(),updatedAt:new Date(e.updatedAt).toISOString(),url:e.url,group:{id:e.repoId,name:e.repoId}}}e.i(242617),a(new class{type="linear";displayName="Linear";groupLabel="Cycle";icon=c;getAuthUrl(e){let t;return t=new URL((0,l.getConfiguredAppBaseUrl)()).port||"41741",`https://www.runagx.com/integrations/linear/auth?port=${t}`}async handleCallback(e,t){return p(e,t)}async getStatus(e){return g(e)}async disconnect(e){return m(e)}async listItems(t,a){let{ensureLinearIssueCache:r,listLinearIssueSummaries:s}=await e.A(58723),{getIssueActivityMap:i}=await e.A(138720),n=!a.cursor;await r({projectId:t,refresh:n});let o=a.hasActivity?await i(t):void 0,{listCachedTrackerItems:l}=await e.A(410437),d=await l({trackerType:"linear",search:a.search,statuses:a.statuses,statusCategories:a.statusCategories,assigneeIds:a.assigneeIds,groupIds:a.groupIds,cursor:a.cursor,limit:a.limit,sortBy:a.sortBy??"activity",sortDir:a.sortDir,hasActivity:a.hasActivity,activityMap:o});return{items:d.issues.map(e=>({id:e.id,trackerId:e.trackerId||`linear:${e.teamId??"default"}`,trackerType:"linear",identifier:e.identifier,title:e.title,description:e.description??void 0,status:e.status,statusCategory:e.statusCategory,assignee:e.assignee?{id:e.assigneeId??e.assignee,name:e.assignee,avatarUrl:void 0}:void 0,priority:void 0,labels:e.labels??[],createdAt:e.pulledAt,updatedAt:e.updatedAt,url:e.url??`https://linear.app/issue/${e.identifier}`})),pageInfo:d.pageInfo}}async getItem(t,a){let{getCachedTrackerItemContexts:r}=await e.A(410437),s=(await r([a]))[0];if(!s)throw Error(`Item ${a} not found`);return{id:s.id,trackerId:s.trackerId||`linear:${s.teamId??"default"}`,trackerType:"linear",identifier:s.identifier,title:s.title,description:s.description??void 0,status:s.status,statusCategory:s.statusCategory,assignee:s.assignee?{id:s.assigneeId??s.assignee,name:s.assignee,avatarUrl:void 0}:void 0,labels:s.labels??[],createdAt:s.pulledAt,updatedAt:s.updatedAt,url:s.url??`https://linear.app/issue/${s.identifier}`,comments:[],activity:[],metadata:{teamId:s.teamId,teamName:s.teamName,teamKey:s.teamKey,cycleId:s.cycleId,cycleName:s.cycleName,cycleNumber:s.cycleNumber,isAssignedToMe:s.isAssignedToMe}}}async updateItem(t,a,r){let s=(0,o.getLinearClient)(t);if(!s)throw Error("Not connected to Linear");if(r.status){let t=await s.updateIssueStatus(a,r.status),{updateCachedTrackerItemStatus:i}=await e.A(410437);return await i({issueId:a,status:t.status??r.status,updatedAt:t.updatedAt}),{id:a,trackerId:"linear:default",trackerType:"linear",identifier:t.identifier,title:t.title,status:t.status??r.status,statusCategory:u(t.status??r.status),assignee:t.assignee?{id:t.assignee,name:t.assignee}:void 0,labels:[],createdAt:t.updatedAt,updatedAt:t.updatedAt,url:t.url??`https://linear.app/issue/${t.identifier}`}}throw Error("Only status updates are currently supported")}async addComment(e,t,a){throw Error("Linear addComment not yet implemented")}async getActivity(e,t){return[]}async listGroups(e){let t=(0,o.getLinearClient)(e);return t?(await t.cycles()).map(y):[]}async listStatuses(e){let t=(0,o.getLinearClient)(e);if(!t)return[];try{let e=await t.workflowStates(),a=new Set;return e.map(e=>({id:e.id,name:e.name,category:u(e.name)})).filter(e=>!a.has(e.name)&&(a.add(e.name),!0))}catch{return[{id:"todo",name:"Todo",category:"todo"},{id:"in_progress",name:"In Progress",category:"in_progress"},{id:"done",name:"Done",category:"done"},{id:"cancelled",name:"Cancelled",category:"cancelled"}]}}async listAssignees(e){let t=(0,o.getLinearClient)(e);return t?(await t.users()).map(e=>({id:e.id,name:e.name,avatarUrl:void 0})):[]}async handleApiKeyConnect(t,a){let{saveProjectTicketToken:r}=await e.A(836400);r(t,"linear",{accessToken:a})}async handleTokenDelivery(t,a){let r=a.access_token;if(!r)throw Error("Missing access_token");let{saveProjectTicketToken:s}=await e.A(836400),i=a.expires_in?Number(a.expires_in):void 0;s(t,"linear",{accessToken:r,...i&&{expiresAt:Date.now()+1e3*i}})}getMcpConfig(e){let t=(0,o.getProjectTicketToken)(e,"linear");return{name:"linear",url:"https://mcp.linear.app/sse",headers:t?{Authorization:`Bearer ${t.accessToken}`}:{}}}renderGroupLabel(e){return"cycle"===e.type?`Cycle: ${e.name}`:e.name}}),a(new class{type="jira";displayName="Jira Cloud";groupLabel="Sprint";icon=f;getAuthUrl(e){return(0,h.getJiraAuthUrl)(e)}async handleCallback(e,t){let a=await (0,h.exchangeJiraCode)(t),r=(await (0,h.getAccessibleResources)(a.accessToken))[0];if(!r)throw Error("No accessible Jira resources found");return(0,h.saveJiraToken)(e,{accessToken:a.accessToken,refreshToken:a.refreshToken,expiresAt:a.expiresAt,cloudId:r.id,siteUrl:r.url}),{accessToken:a.accessToken,refreshToken:a.refreshToken,expiresAt:a.expiresAt}}async getStatus(e){let t=(0,h.getJiraToken)(e);if(!t?.accessToken||!t?.cloudId)return{connected:!1};try{let t=await (0,h.getJiraClient)(e);if(!t)return{connected:!1};let a=await t.getMyself();return{connected:!0,user:{id:a.id,name:a.name,avatarUrl:a.avatarUrl}}}catch{return{connected:!1}}}async disconnect(t){(0,h.deleteJiraToken)(t);let{removeTrackerConnection:a}=await e.A(169447);a(t,"jira")}async listItems(t,a){let{ensureJiraIssueCache:r,mapJiraIssue:s}=await e.A(119130),i=(0,h.getJiraToken)(t),n=!a.cursor;await r({projectId:t,refresh:n});let{listCachedTrackerItems:o}=await e.A(410437),l=await o({trackerType:"jira",search:a.search,statuses:a.statuses,statusCategories:a.statusCategories,assigneeIds:a.assigneeIds,groupIds:a.groupIds,cursor:a.cursor,limit:a.limit,sortBy:a.sortBy??"activity",sortDir:a.sortDir,hasActivity:a.hasActivity}),d=i?.siteUrl??"https://example.atlassian.net";return{items:l.issues.map(e=>({id:e.id,trackerId:e.trackerId||"jira:default",trackerType:"jira",identifier:e.identifier,title:e.title,description:e.description??void 0,status:e.status,statusCategory:e.statusCategory,assignee:e.assignee?{id:e.assigneeId??e.assignee,name:e.assignee}:void 0,labels:e.labels??[],createdAt:e.pulledAt,updatedAt:e.updatedAt,url:e.url??`${d}/browse/${e.identifier}`})),pageInfo:l.pageInfo}}async getItem(t,a){let{getJiraIssueDetail:r}=await e.A(119130);return r(t,a)}async updateItem(t,a,r){let s=await (0,h.getJiraClient)(t);if(!s)throw Error("Not connected to Jira");if(r.status){let e=await s.getTransitions(a),t=e.find(e=>e.to.name===r.status||e.name===r.status);if(!t)throw Error(`No transition to status "${r.status}" available. Valid transitions: ${e.map(e=>e.name).join(", ")}`);await s.transitionIssue(a,t.id)}r.assigneeId&&await s.updateIssue(a,{assignee:{accountId:r.assigneeId}}),r.labels&&await s.updateIssue(a,{labels:r.labels});let i=(0,h.getJiraToken)(t),n=i?.siteUrl??"https://example.atlassian.net",o=await s.getIssue(a),{mapJiraIssue:l}=await e.A(119130);return l(o,n)}async addComment(e,t,a){let r=await (0,h.getJiraClient)(e);if(!r)throw Error("Not connected to Jira");await r.addComment(t,a)}async getActivity(e,t){let a=await (0,h.getJiraClient)(e);return a?(await a.getActivity(t)).map(e=>({id:e.id,type:"update",description:e.items.map(e=>`${e.field}: ${e.fromString??""} → ${e.toString??""}`).join(", "),actor:{id:e.author.accountId,name:e.author.displayName},createdAt:e.created})):[]}async listGroups(e){let t=await (0,h.getJiraClient)(e);if(!t)return[];try{let e=await t.getBoards(),a=[];for(let r of e.slice(0,5))for(let e of(await t.getSprints(r.id)))("active"===e.state||"future"===e.state)&&a.push({id:String(e.id),name:e.name,type:"sprint"});return a}catch{return[]}}async listStatuses(e){let t=await (0,h.getJiraClient)(e);if(!t)return[];try{let e=await t.getStatuses(),a=new Set,r=[];for(let t of e)a.has(t.name)||(a.add(t.name),r.push({id:t.id,name:t.name,category:(0,w.jiraStatusCategoryToCanonical)(t.statusCategory?.key)}));return r}catch{return[]}}async listAssignees(t){let a=await (0,h.getJiraClient)(t);if(!a)return[];(0,h.getJiraToken)(t);let{listCachedTrackerItems:r}=await e.A(410437),s=await r({trackerType:"jira",limit:1}),i=s.issues[0]?.teamKey;if(!i)return[];try{return(await a.getAssignableUsers(i)).map(e=>({id:e.accountId,name:e.displayName,avatarUrl:e.avatarUrls?.["48x48"]}))}catch{return[]}}async handleApiKeyConnect(e,t){throw Error("Jira Cloud requires OAuth authentication — use the Connect button instead")}async handleTokenDelivery(e,t){let a=t.access_token,r=t.cloud_id,s=t.site_url;if(!a||!r||!s)throw Error("Missing required Jira token fields (access_token, cloud_id, site_url)");let i=t.expires_in?Number(t.expires_in):void 0;(0,h.saveJiraToken)(e,{accessToken:a,refreshToken:t.refresh_token,cloudId:r,siteUrl:s,...i&&{expiresAt:Date.now()+1e3*i}})}getMcpConfig(e){let t=(0,h.getJiraToken)(e);return{name:"jira",url:"https://mcp.atlassian.com/v1/sse",headers:t?{Authorization:`Bearer ${t.accessToken}`}:{}}}renderGroupLabel(e){return"sprint"===e.type?`Sprint: ${e.name}`:e.name}}),a(new class{type="github";displayName="GitHub";icon=x;groupLabel="Repo";getAuthUrl(e){let t,a,r=(I(t=Date.now()),a=k.default.randomBytes(16).toString("hex"),v.set(a,{projectId:e,createdAt:t}),a),s=new URL((0,l.getConfiguredAppBaseUrl)()).port||process.env.PORT||"3000",i=`http://localhost:${s}/api/trackers/github/token-receive`,n=new URL("https://www.runagx.com/connect/github");return n.searchParams.set("session",r),n.searchParams.set("return",i),n.searchParams.set("project",e),n.toString()}async handleCallback(e,t){throw Error("GitHub uses token delivery, not code exchange")}async handleTokenDelivery(e,t){let a,r,s=t.session?.trim(),i=t.access_token?.trim(),n=t.refresh_token,o=t.expires_at,l=t.login?.trim(),d=t.scopes??"";if(!s)throw Error("Missing session");let c=(I(a=Date.now()),(r=v.get(s))?a-r.createdAt>6e5?(v.delete(s),null):(v.delete(s),r):null);if(!c)throw Error("Invalid or expired session");if(c.projectId!==e)throw Error("Session project mismatch");if(!i)throw Error("Missing access_token");if(!l)throw Error("Missing login");let u=o&&""!==o&&!Number.isNaN(Number(o))?Number(o):null,p=d.split(",").map(e=>e.trim()).filter(e=>e.length>0);(0,A.saveGithubTokens)(e,{accessToken:i,refreshToken:n&&n.length>0?n:null,expiresAt:u,login:l,scopes:p})}async getStatus(e){let t=(0,A.loadGithubTokens)(e);return t?{connected:!0,user:{id:t.login,name:t.login}}:{connected:!1}}async disconnect(t){(0,A.clearGithubTokens)(t);let{removeTrackerConnection:a}=await e.A(169447);a(t,"github")}async listItems(e,t){let a=t.groupIds&&t.groupIds.length>0?t.groupIds:null,r=a?a.flatMap(e=>(0,C.listGithubPrs)({repoId:e})):(0,C.listGithubPrs)({}),s=a?a.flatMap(e=>(0,T.listGithubIssuesByRepo)(e)):(0,T.listAllGithubIssues)();return{items:[...r.map(S),...s.map(E)].sort((e,t)=>e.updatedAt<t.updatedAt?1:-1),pageInfo:{hasNextPage:!1,endCursor:null}}}async getItem(e,t){throw Error("GitHub adapter does not support issue items")}async updateItem(e,t,a){throw Error("GitHub adapter does not support issue updates")}async addComment(e,t,a){throw Error("GitHub adapter does not support comments")}async getActivity(e,t){return[]}async listGroups(e){return(0,b.listGithubRepos)().map(e=>({id:e.id,name:e.name,type:"repo"}))}async listStatuses(e){return[{id:"open",name:"Open",category:"todo"},{id:"in_progress",name:"Open PR",category:"in_progress"},{id:"draft",name:"Draft",category:"todo"},{id:"merged",name:"Merged",category:"done"},{id:"closed",name:"Closed",category:"cancelled"}]}async listAssignees(e){return[]}async handleApiKeyConnect(e,t){let a=t.trim();if(!a)throw Error("Personal Access Token is required");let r=await fetch("https://api.github.com/user",{headers:{Authorization:`Bearer ${a}`,Accept:"application/vnd.github+json","X-GitHub-Api-Version":"2022-11-28"}});if(401===r.status)throw Error("Invalid Personal Access Token");if(403===r.status)throw Error("Token lacks required permissions or is rate-limited");if(!r.ok)throw Error(`GitHub API error (${r.status})`);let s=await r.json();if(!s.login)throw Error("Could not read user login from GitHub");let i=(r.headers.get("x-oauth-scopes")??"").split(",").map(e=>e.trim()).filter(e=>e.length>0);(0,A.saveGithubTokens)(e,{accessToken:a,refreshToken:null,expiresAt:null,login:s.login,scopes:i})}}),e.s([],698134)}];
2
2
 
3
3
  //# sourceMappingURL=apps_local_29a06140._.js.map
@@ -0,0 +1,91 @@
1
+ module.exports=[641922,953610,e=>{"use strict";var t=e.i(522734),r=e.i(814747),i=e.i(446786);function s(e,t){let s;return r.default.join((s=process.env.AGX_DATA_DIR?.trim())?r.default.resolve(s):r.default.join((0,i.homedir)(),".agx"),"projects",e,"objectives",t,"program.md")}function a(e,r){let i=s(e,r);if(!t.default.existsSync(i))return{path:i,content:null,updatedAt:null};try{let e=t.default.readFileSync(i,"utf8"),r=t.default.statSync(i);return{path:i,content:e,updatedAt:r.mtime.toISOString()}}catch{return{path:i,content:null,updatedAt:null}}}function n(e,i,a){let n=s(e,i);t.default.mkdirSync(r.default.dirname(n),{recursive:!0});let o=a.replace(/\s+$/g,"");if(0===o.length)return t.default.existsSync(n)&&t.default.unlinkSync(n),{path:n,content:null,updatedAt:null};let u=o+"\n";t.default.writeFileSync(n,u,"utf8");let c=t.default.statSync(n);return{path:n,content:u,updatedAt:c.mtime.toISOString()}}e.s(["readProgram",()=>a,"writeProgram",()=>n],953610),e.s([],641922)},11061,e=>{"use strict";var t=e.i(522734),r=e.i(446786),i=e.i(814747),s=e.i(769025);let{DatabaseSync:a}=process.getBuiltinModule("node:sqlite"),n=process.env.AGX_GROUP_CHAT_DIR?.trim()||i.default.join(r.default.homedir(),".agx","group-chat"),o=i.default.join(n,"history.sqlite");function u(e){return"scripted"===e?"scripted":"chat"}function c(e){let t,r=e.chat_created_at??e.created_at,i=e.chat_completed_at??null,s=function(e,t){switch(e){case"queued":return"queued";case"running":case"awaiting_user":case"blocked":return"running";case"completed":return"success";case"failed":return"failed";case"cancelled":return"cancelled";default:return t}}(e.chat_status,e.status);return{id:e.id,projectId:e.project_id,projectSlug:e.project_slug,issueId:e.issue_id,issueIdentifier:e.issue_identifier,issueTitle:e.issue_title,issueStatus:e.issue_status,issueAssignee:e.issue_assignee,threadId:e.thread_id,rootMessageId:e.root_message_id,chatRunId:e.chat_run_id,agentId:e.agent_id,agentName:e.agent_name,mode:u(e.mode),sessionTitle:"chat"===u(e.mode)&&(t=String(e.root_content??"").replace(/\[reaction\s+[^\]]*\]/gi,"").replace(/\[agx:[^\]]*\]/g,"").replace(/\[checkpoint\]/g,"").replace(/\[criteria:\s*[^\]]*\]/g,"").replace(/\[done\]/g,"").replace(/\[blocked[^\]]*\]/g,"").replace(/^\[SKIP\]$/gm,"").replace(/\s+/g," ").trim())?t.length>72?`${t.slice(0,69).trimEnd()}...`:t:null,status:s,durationMs:null!=i?Math.max(i-r,0):null,lastError:e.chat_last_error??e.error,recapFilePath:e.recap_file_path??null,startedAt:new Date(r).toISOString(),updatedAt:new Date((e.chat_updated_at??e.updated_at)||e.updated_at).toISOString(),completedAt:"number"==typeof i?new Date(i).toISOString():null}}async function l(e){await t.promises.mkdir(n,{recursive:!0});let r=new a(o);(0,s.pragmaSet)(r,"journal_mode = WAL");try{r.exec(`
2
+ CREATE TABLE IF NOT EXISTS chat_runs (
3
+ id TEXT PRIMARY KEY,
4
+ thread_id TEXT NOT NULL,
5
+ root_message_id TEXT,
6
+ user_id TEXT NOT NULL,
7
+ project_slug TEXT,
8
+ status TEXT NOT NULL,
9
+ current_step INTEGER NOT NULL DEFAULT 0,
10
+ max_steps INTEGER NOT NULL DEFAULT 10,
11
+ steps_used INTEGER NOT NULL DEFAULT 0,
12
+ last_error TEXT,
13
+ active_participant_ids TEXT NOT NULL DEFAULT '[]',
14
+ payload_json TEXT,
15
+ result_json TEXT,
16
+ created_at INTEGER NOT NULL,
17
+ updated_at INTEGER NOT NULL,
18
+ completed_at INTEGER
19
+ );
20
+ CREATE TABLE IF NOT EXISTS messages (
21
+ thread_id TEXT NOT NULL,
22
+ id TEXT NOT NULL,
23
+ role TEXT NOT NULL,
24
+ participant_id TEXT,
25
+ content TEXT NOT NULL,
26
+ timestamp INTEGER NOT NULL,
27
+ root_message_id TEXT,
28
+ parent_message_id TEXT,
29
+ depth INTEGER NOT NULL DEFAULT 0,
30
+ thread_status TEXT,
31
+ outcome_note TEXT,
32
+ PRIMARY KEY (thread_id, id)
33
+ );
34
+ CREATE TABLE IF NOT EXISTS linear_runs (
35
+ id TEXT PRIMARY KEY,
36
+ project_id TEXT,
37
+ project_slug TEXT,
38
+ issue_id TEXT NOT NULL,
39
+ issue_identifier TEXT NOT NULL,
40
+ issue_title TEXT NOT NULL,
41
+ issue_status TEXT NOT NULL,
42
+ issue_assignee TEXT,
43
+ thread_id TEXT NOT NULL,
44
+ root_message_id TEXT,
45
+ chat_run_id TEXT,
46
+ agent_id TEXT NOT NULL,
47
+ agent_name TEXT NOT NULL,
48
+ mode TEXT NOT NULL DEFAULT 'chat',
49
+ status TEXT NOT NULL DEFAULT 'queued',
50
+ error TEXT,
51
+ recap_file_path TEXT,
52
+ created_at INTEGER NOT NULL,
53
+ updated_at INTEGER NOT NULL
54
+ );
55
+ CREATE INDEX IF NOT EXISTS idx_linear_runs_issue_created
56
+ ON linear_runs (issue_id, created_at DESC);
57
+ CREATE INDEX IF NOT EXISTS idx_linear_runs_project_issue_created
58
+ ON linear_runs (project_id, issue_id, created_at DESC);
59
+ CREATE UNIQUE INDEX IF NOT EXISTS idx_linear_runs_chat_run_id
60
+ ON linear_runs (chat_run_id)
61
+ WHERE chat_run_id IS NOT NULL;
62
+ `);let t=r.prepare("PRAGMA table_info(linear_runs)").all();return t.some(e=>"mode"===e.name)||r.exec("ALTER TABLE linear_runs ADD COLUMN mode TEXT NOT NULL DEFAULT 'chat';"),t.some(e=>"recap_file_path"===e.name)||r.exec("ALTER TABLE linear_runs ADD COLUMN recap_file_path TEXT;"),e(r)}finally{r.close()}}async function d(e){var t;let r=e.issueId.trim(),i=(t=e.projectId??null,t?.trim()||null),s=Number.isFinite(e.limit)?Math.min(Math.max(Number(e.limit),1),100):50;return l(e=>{let t=[r],a=["lr.issue_id = ?"];return i&&(a.push("lr.project_id = ?"),t.push(i)),t.push(s),e.prepare(`SELECT
63
+ lr.*,
64
+ cr.status AS chat_status,
65
+ cr.last_error AS chat_last_error,
66
+ cr.created_at AS chat_created_at,
67
+ cr.updated_at AS chat_updated_at,
68
+ cr.completed_at AS chat_completed_at,
69
+ msg.content AS root_content
70
+ FROM linear_runs lr
71
+ LEFT JOIN chat_runs cr ON cr.id = (
72
+ SELECT id FROM chat_runs WHERE thread_id = lr.thread_id ORDER BY updated_at DESC LIMIT 1
73
+ )
74
+ LEFT JOIN messages msg ON msg.thread_id = lr.thread_id AND msg.id = lr.root_message_id
75
+ WHERE ${a.join(" AND ")}
76
+ ORDER BY lr.created_at DESC
77
+ LIMIT ?`).all(...t).map(c)})}async function p(e){return l(t=>{let r=e?.trim(),i=r?`SELECT DISTINCT lr.issue_id, lr.agent_id, lr.agent_name
78
+ FROM linear_runs lr
79
+ INNER JOIN chat_runs cr ON cr.id = (
80
+ SELECT id FROM chat_runs WHERE thread_id = lr.thread_id ORDER BY updated_at DESC LIMIT 1
81
+ )
82
+ WHERE cr.status IN ('queued', 'running')
83
+ AND lr.project_id = ?`:`SELECT DISTINCT lr.issue_id, lr.agent_id, lr.agent_name
84
+ FROM linear_runs lr
85
+ INNER JOIN chat_runs cr ON cr.id = (
86
+ SELECT id FROM chat_runs WHERE thread_id = lr.thread_id ORDER BY updated_at DESC LIMIT 1
87
+ )
88
+ WHERE cr.status IN ('queued', 'running')`;return(r?t.prepare(i).all(e.trim()):t.prepare(i).all()).map(e=>({issueId:e.issue_id,agentId:e.agent_id,agentName:e.agent_name}))})}e.s(["getIssueActiveAgents",()=>p,"listLinearRuns",()=>d])},720395,e=>{"use strict";var t=e.i(84516),r=e.i(29764),i=e.i(11061),s=e.i(124985);e.i(243174);var a=e.i(248821);e.i(641922);var n=e.i(953610),o=e.i(901977);let u="project_objective_health_history",c={"on track":"on_track","at risk":"at_risk","off track":"off_track",done:"done"};function l(e){return!!e&&"object"==typeof e&&!Array.isArray(e)}function d(e){return"number"==typeof e&&Number.isFinite(e)?Math.max(0,Math.min(100,Math.round(e))):0}function p(e){return"string"==typeof e&&e.trim()?e.trim():void 0}function T(...e){let t=e.flatMap(e=>e??[]),r=[];for(let e of[...t].sort((e,t)=>Date.parse(e.recordedAt)-Date.parse(t.recordedAt))){let t=r[r.length-1]??null;t&&t.progress===e.progress&&t.status===e.status&&(!t.source||!e.source||t.source===e.source)&&5e3>=Math.abs(Date.parse(e.recordedAt)-Date.parse(t.recordedAt))||r.push(e)}return r}var _=e.i(460275),m=e.i(765443);let E={on_track:"On track",at_risk:"At risk",off_track:"Off track",done:"Done"};async function h(e){let t=Date.now(),r="";try{return await (0,_.runCliResponse)({provider:e.provider,model:e.model,prompt:e.prompt,identity:e.identity,self:e.self,skills:e.skills,systemContext:e.systemContext,passthroughArgs:e.cliArgs?e.cliArgs.split(/\s+/).filter(Boolean):void 0,onDelta:e=>{r+=e},onSpawn:e.onSpawn}),{output:r,error:"",durationMs:Date.now()-t,status:"success"}}catch(e){return{output:r,error:e instanceof Error?e.message:String(e),durationMs:Date.now()-t,status:"failed"}}}function g(e){try{let t=JSON.parse(e);return t&&"object"==typeof t&&!Array.isArray(t)?t:null}catch{return null}}function j(e){let t=e.trim();if(!t)return null;let r=g(t);if(r)return r;let i=t.indexOf("{"),s=t.lastIndexOf("}");return -1===i||s<=i?null:g(t.slice(i,s+1))}function f(e){return"number"==typeof e&&Number.isFinite(e)?(0,m.normalizeProjectHealthProgress)(e):null}function N(e){return"string"==typeof e&&e.trim()?(0,m.normalizeProjectHealthStatus)(e):null}function I(e,t,r){return`${e}: ${t}% ${E[r]}`}function b(e){return[`- id: ${e.id}`,` identifier: ${e.identifier}`,` title: ${e.title}`,` status: ${e.status}`,` assignee: ${e.assignee??"Unassigned"}`,e.url?` url: ${e.url}`:null].filter(e=>!!e).join("\n")}async function L(e){let{job:o,objectiveContext:u}=e,{project:c,workspace:l,objective:d}=u,p=c.slug??c.id,[{issues:T},_,m,E]=await Promise.all([(0,r.listObjectiveTrackerIssues)({projectId:c.id,objectiveKey:d.key,projectSlug:p,refresh:!0}),(0,i.getIssueActiveAgents)(c.id),Promise.resolve((0,s.getActivityRepository)(p,d.key).list({limit:20})),Promise.resolve((0,a.getNoteRepository)(p,d.key).readAll())]),h=new Set(T.map(e=>e.id)),g=_.filter(e=>h.has(e.issueId)),j=(0,r.filterObjectiveTrackerIssuesForAction)(T,g.map(e=>e.issueId)),f=(0,t.getPromptJobStore)().listJobs({objectiveId:d.id}).filter(e=>e.id!==o.id),N=l.objectives.filter(e=>e.id!==d.id),I=[];I.push("GOAL",d.title,d.summary?.trim()||"No summary provided."),I.push("","CURRENT STATE",`Progress: ${d.progress}% | Status: ${d.status}`);let L=(0,n.readProgram)(p,d.key);I.push("","PROGRAM",`path: ${L.path}`),L.content&&L.content.trim().length>0?I.push(L.content.trim()):I.push('(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.'),E.length>0&&I.push("","NOTES",...E.map(e=>`### ${e.title}
89
+ ${e.body}`));let v=m.activities??[];return v.length>0&&I.push("","RECENT ACTIVITY",...v.map(e=>{let t=e.createdAt.replace("T"," ").replace(/\.\d+Z$/,"").slice(0,16);return`- [${t}] ${e.body.split("\n")[0]}`})),T.length>0?I.push("","LINEAR TICKETS",T.map(e=>b(e)).join("\n\n")):I.push("","LINEAR TICKETS","- None."),g.length>0&&I.push("","ACTIVE SESSIONS",...g.map(e=>`- ${e.issueId}: running with ${e.agentName}`)),f.length>0&&I.push("","SCHEDULED TASKS",...f.map(e=>`- ${e.name} | state: ${e.state} | last outcome: ${e.lastOutcome??"none"}`)),N.length>0&&I.push("","PROJECT CONTEXT",...N.map(e=>`- ${e.title} (${e.key}) | ${e.progress}% | ${e.status}`)),I.push("","GUIDANCE",o.prompt.trim()||"No additional guidance provided."),I.push("","ELIGIBLE TICKETS",j.length>0?j.map(e=>b(e)).join("\n\n"):"- None."),I.push("","---","What single action most advances this objective right now?"),{prompt:I.join("\n"),issues:T,eligibleIssues:j,activeIssueAgents:g}}async function v(t){let r=Date.now();try{if(!t.job.projectId||!t.job.objectiveId)throw Error("Objective worker jobs require projectId and objectiveId.");let i=await (0,o.loadProjectObjectiveContext)(t.job.projectId,t.job.objectiveId);if(!i)throw Error("Objective context could not be resolved for this scheduled task.");let s=await L({job:t.job,objectiveContext:i}),a=await h({...t.controllerContext,prompt:s.prompt,systemContext:'You are deciding what action an objective worker should take next.\nReturn ONLY raw JSON with no markdown fences or commentary.\nValid responses:\n{"action":"work_ticket","ticketId":"ticket-id","reason":"...","objectiveProgress":42,"objectiveStatus":"at_risk","projectProgress":35,"projectStatus":"at_risk"}\n{"action":"run_prompt","prompt":"detailed instructions","reason":"...","objectiveProgress":42,"objectiveStatus":"at_risk"}\n{"action":"stop","reason":"...","objectiveProgress":42,"objectiveStatus":"at_risk"}\nRules:\n- "work_ticket": ticketId must exactly match one of the ELIGIBLE TICKETS ids.\n- "run_prompt": for work not captured by existing tickets. When no tickets are actionable and the objective is not done, use this to plan: review notes, refine the last plan, or outline next steps. The prompt should instruct the agent to append to an existing note when one is relevant rather than creating a new note.\n- "stop": only when the objective is done or genuinely no action (including planning) adds value.\nPercentages must be integers 0-100.\nStatuses: on_track, at_risk, off_track, done.',cliArgs:t.cliArgs,onSpawn:t.onSpawn});if("success"!==a.status)return{...a,output:a.output||"Objective controller failed before selecting an action."};let n=j(a.output),_="string"==typeof n?.action?n.action.trim().toLowerCase():"string"==typeof n?.decision?n.decision.trim().toLowerCase():"",E="work"===_?"work_ticket":_;if(!E){let e=a.output??"";console.warn(`[objective-worker] empty action from controller (job=${t.job.id}, outputLen=${e.length}, parsed=${n?"object":"null"}):`,e.slice(0,500))}let g="string"==typeof n?.reason?n.reason.trim():"",b=f(n?.objectiveProgress),v=N(n?.objectiveStatus),A=f(n?.projectProgress),S=N(n?.projectStatus),O="string"==typeof n?.projectNote?n.projectNote.trim():"",y="string"==typeof n?.objectiveNote?n.objectiveNote.trim():"",w=new Date().toISOString(),k=null!==b&&v?I("Objective health",b,v):null,R=null!==A&&S?I("Project health",A,S):null,D=null!==b&&null!==v?{objectiveId:i.objective.id,objectiveKey:i.objective.key,progress:b,status:v,recordedAt:w,source:`scheduled-task:${t.job.id}`,note:y||void 0}:null,X=null!==b&&null!==v&&(b!==i.objective.progress||v!==i.objective.status),C=X?(0,m.upsertProjectObjective)(i.workspace,{...i.objective,progress:b,status:v,updatedAt:w}):i.workspace,U=null!==A&&null!==S?{progress:A,status:S,updatedAt:w,source:`scheduled-task:${t.job.id}`,objectiveId:i.objective.id,objectiveKey:i.objective.key,note:O||void 0}:null,M=e=>{let t=e;return U&&(t=(0,m.writeProjectHealthSnapshot)(t,U)),D&&(t=function(e,t){let r=t.objectiveId.trim();if(!r)return e;let i=function(e,t){if(!l(e)||!t.trim())return[];let r=e[u];if(!l(r))return[];let i=r[t.trim()];return Array.isArray(i)?T(i.map(e=>(function(e){if(!l(e))return null;let t=function(e){if("string"!=typeof e)return null;let t=e.trim().toLowerCase();return"on_track"===t||"at_risk"===t||"off_track"===t||"done"===t?t:c[t]??null}(e.status),r=function(e){if("string"!=typeof e)return null;let t=Date.parse(e);return Number.isNaN(t)?null:new Date(t).toISOString()}(e.recordedAt);return t&&r?{progress:d(e.progress),status:t,recordedAt:r,source:p(e.source),note:p(e.note),objectiveId:p(e.objectiveId)??null,objectiveKey:p(e.objectiveKey)??null}:null})(e)).filter(e=>!!e)):[]}(e,r),s=T(i,[t]).slice(-200),a=l(e[u])?e[u]:{};return{...e,[u]:{...a,[r]:s.map(e=>({progress:d(e.progress),status:e.status,recordedAt:e.recordedAt,...e.source?{source:e.source}:{},...e.note?{note:e.note}:{},...e.objectiveId?{objectiveId:e.objectiveId}:{},...e.objectiveKey?{objectiveKey:e.objectiveKey}:{}}))}}}(t,D)),t};X?await (0,o.persistProjectObjectiveWorkspace)({projectId:i.project.id,currentMetadata:i.project.metadata,workspace:C,transformMetadata:M}):(D||U)&&await (0,o.persistProjectObjectiveMetadata)({projectId:i.project.id,currentMetadata:i.project.metadata,transformMetadata:M});let{dispatchObjectiveAction:$}=await e.A(688671),P=await $({action:E,parsed:n,reason:g,job:t.job,controllerContext:t.controllerContext,sessionAgent:t.sessionAgent,objectiveContext:i,eligibleIssues:s.eligibleIssues,issues:s.issues,healthSummaries:{objectiveHealthSummary:k,projectHealthSummary:R,objectiveNote:y,projectNote:O},cliArgs:t.cliArgs,onSpawn:t.onSpawn,startMs:r}),{logActionReceipt:x}=await e.A(688671);return await x(P,{jobId:t.job.id,projectId:t.job.projectId,objectiveId:t.job.objectiveId}),{output:P.result,error:"failed"===P.status?P.result:"",durationMs:Date.now()-r,status:P.status}}catch(e){return{output:"",error:e instanceof Error?e.message:String(e),durationMs:Date.now()-r,status:"failed"}}}e.s(["buildObjectiveObservation",()=>L,"executeObjectiveWorker",()=>v,"extractFirstJsonObject",()=>j],720395)},688671,e=>{e.v(e=>Promise.resolve().then(()=>e(917435)))}];
90
+
91
+ //# sourceMappingURL=apps_local_4d88e4dc._.js.map
@@ -42,6 +42,6 @@ Current note:
42
42
  ${t||"(empty)"}
43
43
 
44
44
  Task:
45
- ${n}`,a="";try{await (0,r.runCliResponse)({provider:"claude",model:"claude-haiku-4-5-20251001",prompt:o,onDelta:e=>{a+=e}})}catch(e){return console.warn("[project-knowledge] LLM call failed:",e),[]}let i=a.trim().replace(/^```(?:json)?\s*/i,"").replace(/\s*```\s*$/,"").trim();try{let e=JSON.parse(i);if(!e||"object"!=typeof e||Array.isArray(e))return[];let t="string"==typeof e.updated_note?e.updated_note.trim():"";if(e.no_change||!t)return[];return[{updated_note:t,change_summary:"string"==typeof e.change_summary?e.change_summary.trim():void 0,no_change:!1}]}catch{return console.warn("[project-knowledge] Failed to parse LLM response:",i.slice(0,200)),[]}}async function E(e,t,r){if(0===r.length)return 0;let n=r[0];return n&&n.updated_note?.trim()?+!!(0,s.upsertKnowledgeNote)({scope:"project",subjectId:e,content:n.updated_note.trim(),changeSummary:n.change_summary,sourceType:"task_completion",sourceId:t,metadata:{task_id:t}}).changed:0}async function v(e,t,r){let n=await w(t);if(!n)return;let o=await y(r,(0,s.getKnowledgeNote)("project",n)?.content??"");if(0===o.length)return;let a=await E(n,e,o);a>0&&console.log(`[project-knowledge] Stored ${a} project knowledge entries for task ${e}`)}e.s(["extractAndStoreMemories",()=>h,"extractAndStoreProjectKnowledge",()=>v,"resolveMemoryAgentId",()=>f],582743)},689303,e=>{"use strict";var t=e.i(488877);function r(e){let r=[];for(let n of e){if(!n.id){let e=String(n.notes??"").trim();if(!e)continue;r.push({repoId:"",repoName:n.name,path:n.path??null,content:e,producer:"human"});continue}let e=t.vaultStore.getKnowledgeNote("repo",n.id),o=e?.content.trim()||String(n.notes??"").trim();o&&r.push({repoId:n.id,repoName:n.name,path:n.path??null,content:o,producer:"human"})}return r}e.s(["listResolvedRepoKnowledge",()=>r])},323218,e=>{"use strict";var t=e.i(254799),r=e.i(173426),n=e.i(779429),o=e.i(689303),a=e.i(33878),i=e.i(488877),s=e.i(582743);e.i(426491);var l=e.i(515140),d=e.i(448643),c=e.i(863014),u=e.i(38193);async function p(e){let t=(0,r.createAdminDbClient)(),{data:n,error:o}=await t.from("task_comments").select("*").eq("task_id",e).is("deleted_at",null).order("created_at",{ascending:!0}).order("id",{ascending:!0});if(o){let e="string"==typeof o.message?o.message:"";if("42P01"===o.code||"PGRST205"===o.code||e.includes('relation "task_comments" does not exist')||e.includes("Could not find the table 'agx.task_comments'")||e.includes("Could not find the table 'public.task_comments'"))return[];throw o}return n||[]}async function m(e){let t=(0,r.createAdminDbClient)(),n=e.user_id,o=t.from("learnings").select("*").eq("scope","task").eq("scope_id",e.id);n&&o.eq("user_id",n);let[{data:a,error:s}]=await Promise.all([o]);if(s)throw s;return{task:a||[],project:[],global:i.vaultStore.getLearnings("global")||[]}}async function g(e){let t,n=e.stage;if(!n)return{prompt:null};let o=(0,r.createAdminDbClient)(),a=(t=e.workflow_id)&&/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(t)?e.workflow_id:"";if(!a&&e.project_id)try{let t=await (0,c.getProjectWithRepos)(e.project_id,e.user_id);t?.workflow_id&&(a=t.workflow_id)}catch{}a||(a=u.DEFAULT_WORKFLOW_ID);try{let{data:e,error:t}=await o.from("workflow_nodes").select("*").eq("workflow_id",a).eq("name",n).maybeSingle();if(!t&&e){let t=e.metadata&&"object"==typeof e.metadata?e.metadata:{},r="boolean"==typeof t.swarm&&t.swarm,n=Array.isArray(t.swarm_models)?t.swarm_models:void 0;if(e.prompt)return{prompt:e.prompt,swarm:r,provider:e.provider||void 0,model:e.model||void 0,swarm_models:n};return{prompt:null,swarm:r,provider:e.provider||void 0,model:e.model||void 0,swarm_models:n}}}catch{}try{let t=[];t.push(o.from("stage_prompts").select("*").eq("stage",n).eq("is_default",!0).eq("workflow_id",a).maybeSingle()),e.user_id&&t.push(o.from("stage_prompts").select("*").eq("stage",n).eq("user_id",e.user_id).eq("workflow_id",a).maybeSingle());let r=await Promise.all(t),i=r[0]?.data||null,s=e.user_id?r[1]?.data:null,l=s?.prompt||i?.prompt||null;if(l)return{prompt:l,swarm:s?.swarm??i?.swarm??!1,provider:s?.provider||i?.provider,model:s?.model||i?.model,swarm_models:s?.swarm_models||i?.swarm_models}}catch{}let i=u.defaultStagePrompts[n];return i?.prompt?{prompt:i.prompt,swarm:i.swarm??!1,provider:i.provider,model:i.model,swarm_models:i.swarm_models}:{prompt:null}}async function f(e,t){let r=e.project_id,n=e.project||void 0,i=null;if(r&&(i=await (0,c.getProjectWithRepos)(r,e.user_id)),!i&&n){let t=await (0,c.getProjectBySlug)(n,e.user_id);if(t){let e=await (0,c.getProjectRepos)(t.id);i={...t,repos:e}}}if(!i)return null;let s=await (0,c.getProjectMemory)(i.id,"human"),l=(0,a.getKnowledgeNote)("project",i.id);if(i.repos.length>0){let e=(0,o.listResolvedRepoKnowledge)(i.repos),t=new Map;for(let r of e){if(!r.repoId)continue;let e="system"===r.producer?`[System-generated] ${r.content}`:r.content,n=t.get(r.repoId)??[];n.push(e),t.set(r.repoId,n)}i={...i,repos:i.repos.map(e=>({...e,notes:t.has(e.id)?t.get(e.id).join("\n\n"):e.notes}))}}return{project:i,repos:i.repos??[],learnings:[...s.map(e=>e.content),...l?.content?[`[System-generated] ${l.content}`]:[]]}}async function _(e){let r,[o,a,i,c]=await Promise.all([p(e.id),m(e),g(e),e.user_id?(0,d.getUserSettings)(e.user_id):Promise.resolve(null)]),u=await f(e,a.project),{frontmatter:_}=(0,l.parseFrontmatter)(e.content),h=(0,s.resolveMemoryAgentId)({defaultUserId:e.user_id||"system",frontmatter:_}),w=_.no_memory?[]:function(e,t=5){try{return(0,n.getSQLiteDb)().prepare("SELECT content FROM agent_memory WHERE agent_id = ? ORDER BY created_at DESC LIMIT ?").all(e,t).map(e=>e.content)}catch{return[]}}(h),y=(r=JSON.stringify(o.map(e=>({id:e.id,task_id:e.task_id,author_type:e.author_type||null,author_id:e.author_id||null,content:e.content||"",created_at:e.created_at||null}))),(0,t.createHash)("sha256").update(r).digest("hex")),E="string"==typeof e.stage&&e.stage.trim()?e.stage.trim():"",v=i.prompt??null,S={};if(v&&E){S[E]=v;let e=E.toLowerCase();S[e]||(S[e]=v)}let R=v&&E?[{stage:E,prompt:v}]:[];return{comments:o,learnings:a,agent_memories:w,stage_config:i,stage_prompt:v,stage_prompts:S,stage_objective:v,stageObjective:v,stagePrompts:R,project_context:u,comments_digest:y,user_settings:c}}e.s(["buildTaskContext",()=>_])},267346,e=>{"use strict";var t=e.i(692988),r=e.i(635595),n=e.i(75473),o=e.i(923435),a=e.i(418475),i=e.i(303482),s=e.i(976287),l=e.i(774462),d=e.i(111998),c=e.i(201516),u=e.i(68877),p=e.i(259460),m=e.i(257714),g=e.i(502073),f=e.i(187345),_=e.i(193695);e.i(293777);var h=e.i(274321),w=e.i(732470),y=e.i(764541);e.i(426491);var E=e.i(515140),v=e.i(744071),S=e.i(323218);e.i(650837);var R=e.i(640911);async function T(e,{params:t}){try{let e={id:v.LOCAL_USER.id},{id:r,commentId:n}=await t,o=await y.db.getTask(r,e.id);if(!o)return w.NextResponse.json({error:"Task not found"},{status:404});await y.db.deleteTaskComment(n,e.id);let a=await (0,S.buildTaskContext)(o),{comments_digest:i,stage_config:s}=a;return(0,E.resolveTaskConfig)(o,s,a.user_settings),w.NextResponse.json({success:!0,comments_digest:i})}catch(e){return R.logger.error("Error deleting comment",R.logger.formatError(e)),w.NextResponse.json({error:"Failed to delete comment"},{status:500})}}e.s(["DELETE",()=>T],702940);var C=e.i(702940);let k=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/tasks/[id]/comments/[commentId]/route",pathname:"/api/tasks/[id]/comments/[commentId]",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/local/app/api/tasks/[id]/comments/[commentId]/route.ts",nextConfigOutput:"standalone",userland:C}),{workAsyncStorage:O,workUnitAsyncStorage:A,serverHooks:I}=k;function M(){return(0,n.patchFetch)({workAsyncStorage:O,workUnitAsyncStorage:A})}async function N(e,t,n){k.isDev&&(0,o.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/tasks/[id]/comments/[commentId]/route";w=w.replace(/\/index$/,"")||"/";let y=await k.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!y)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:E,params:v,nextConfig:S,parsedUrl:R,isDraftMode:T,prerenderManifest:C,routerServerContext:O,isOnDemandRevalidate:A,revalidateOnlyGenerated:I,resolvedPathname:M,clientReferenceManifest:N,serverActionsManifest:b}=y,L=(0,s.normalizeAppPath)(w),P=!!(C.dynamicRoutes[L]||C.routes[M]),x=async()=>((null==O?void 0:O.render404)?await O.render404(e,t,R,!1):t.end("This page could not be found"),null);if(P&&!T){let e=!!C.routes[M],t=C.dynamicRoutes[L];if(t&&!1===t.fallback&&!e){if(S.experimental.adapterPath)return await x();throw new _.NoFallbackError}}let j=null;!P||k.isDev||T||(j="/index"===(j=M)?"/":j);let D=!0===k.isDev||!P,U=P&&!D;b&&N&&(0,i.setManifestsSingleton)({page:w,clientReferenceManifest:N,serverActionsManifest:b});let H=e.method||"GET",$=(0,a.getTracer)(),K=$.getActiveScopeSpan(),q={params:v,prerenderManifest:C,renderOpts:{experimental:{authInterrupts:!!S.experimental.authInterrupts},cacheComponents:!!S.cacheComponents,supportsDynamicResponse:D,incrementalCache:(0,o.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:S.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,o)=>k.onRequestError(e,t,n,o,O)},sharedContext:{buildId:E}},F=new l.NodeNextRequest(e),W=new l.NodeNextResponse(t),G=d.NextRequestAdapter.fromNodeNextRequest(F,(0,d.signalFromNodeResponse)(t));try{let i=async e=>k.handle(G,q).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=$.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==c.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${H} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${H} ${w}`)}),s=!!(0,o.getRequestMeta)(e,"minimalMode"),l=async o=>{var a,l;let d=async({previousCacheEntry:r})=>{try{if(!s&&A&&I&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await i(o);e.fetchMetrics=q.renderOpts.fetchMetrics;let l=q.renderOpts.pendingWaitUntil;l&&n.waitUntil&&(n.waitUntil(l),l=void 0);let d=q.renderOpts.collectedTags;if(!P)return await (0,p.sendResponse)(F,W,a,q.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(a.headers);d&&(t[f.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==q.renderOpts.collectedRevalidate&&!(q.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&q.renderOpts.collectedRevalidate,n=void 0===q.renderOpts.collectedExpire||q.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:q.renderOpts.collectedExpire;return{value:{kind:h.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await k.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:A})},!1,O),t}},c=await k.handleResponse({req:e,nextConfig:S,cacheKey:j,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:I,responseGenerator:d,waitUntil:n.waitUntil,isMinimalMode:s});if(!P)return null;if((null==c||null==(a=c.value)?void 0:a.kind)!==h.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(l=c.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});s||t.setHeader("x-nextjs-cache",A?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),T&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let _=(0,m.fromNodeOutgoingHttpHeaders)(c.value.headers);return s&&P||_.delete(f.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||_.get("Cache-Control")||_.set("Cache-Control",(0,g.getCacheControlHeader)(c.cacheControl)),await (0,p.sendResponse)(F,W,new Response(c.value.body,{headers:_,status:c.value.status||200})),null};K?await l(K):await $.withPropagatedContext(e.headers,()=>$.trace(c.BaseServerSpan.handleRequest,{spanName:`${H} ${w}`,kind:a.SpanKind.SERVER,attributes:{"http.method":H,"http.target":e.url}},l))}catch(t){if(t instanceof _.NoFallbackError||await k.onRequestError(e,t,{routerKind:"App Router",routePath:L,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:A})},!1,O),P)throw t;return await (0,p.sendResponse)(F,W,new Response(null,{status:500})),null}}e.s(["handler",()=>N,"patchFetch",()=>M,"routeModule",()=>k,"serverHooks",()=>I,"workAsyncStorage",()=>O,"workUnitAsyncStorage",()=>A],267346)}];
45
+ ${n}`,a="";try{await (0,r.runCliResponse)({provider:"claude",model:"claude-haiku-4-5-20251001",prompt:o,onDelta:e=>{a+=e}})}catch(e){return console.warn("[project-knowledge] LLM call failed:",e),[]}let i=a.trim().replace(/^```(?:json)?\s*/i,"").replace(/\s*```\s*$/,"").trim();try{let e=JSON.parse(i);if(!e||"object"!=typeof e||Array.isArray(e))return[];let t="string"==typeof e.updated_note?e.updated_note.trim():"";if(e.no_change||!t)return[];return[{updated_note:t,change_summary:"string"==typeof e.change_summary?e.change_summary.trim():void 0,no_change:!1}]}catch{return console.warn("[project-knowledge] Failed to parse LLM response:",i.slice(0,200)),[]}}async function E(e,t,r){if(0===r.length)return 0;let n=r[0];return n&&n.updated_note?.trim()?+!!(0,s.upsertKnowledgeNote)({scope:"project",subjectId:e,content:n.updated_note.trim(),changeSummary:n.change_summary,sourceType:"task_completion",sourceId:t,metadata:{task_id:t}}).changed:0}async function v(e,t,r){let n=await w(t);if(!n)return;let o=await y(r,(0,s.getKnowledgeNote)("project",n)?.content??"");if(0===o.length)return;let a=await E(n,e,o);a>0&&console.log(`[project-knowledge] Stored ${a} project knowledge entries for task ${e}`)}e.s(["extractAndStoreMemories",()=>h,"extractAndStoreProjectKnowledge",()=>v,"resolveMemoryAgentId",()=>f],582743)},689303,e=>{"use strict";var t=e.i(488877);function r(e){let r=[];for(let n of e){if(!n.id){let e=String(n.notes??"").trim();if(!e)continue;r.push({repoId:"",repoName:n.name,path:n.path??null,content:e,producer:"human"});continue}let e=t.vaultStore.getKnowledgeNote("repo",n.id),o=e?.content.trim()||String(n.notes??"").trim();o&&r.push({repoId:n.id,repoName:n.name,path:n.path??null,content:o,producer:"human"})}return r}e.s(["listResolvedRepoKnowledge",()=>r])},323218,e=>{"use strict";var t=e.i(254799),r=e.i(173426),n=e.i(779429),o=e.i(689303),a=e.i(33878),i=e.i(488877),s=e.i(582743);e.i(426491);var l=e.i(515140),d=e.i(448643),c=e.i(863014),u=e.i(38193);async function p(e){let t=(0,r.createAdminDbClient)(),{data:n,error:o}=await t.from("task_comments").select("*").eq("task_id",e).is("deleted_at",null).order("created_at",{ascending:!0}).order("id",{ascending:!0});if(o){let e="string"==typeof o.message?o.message:"";if("42P01"===o.code||"PGRST205"===o.code||e.includes('relation "task_comments" does not exist')||e.includes("Could not find the table 'agx.task_comments'")||e.includes("Could not find the table 'public.task_comments'"))return[];throw o}return n||[]}async function m(e){let t=(0,r.createAdminDbClient)(),n=e.user_id,o=t.from("learnings").select("*").eq("scope","task").eq("scope_id",e.id);n&&o.eq("user_id",n);let[{data:a,error:s}]=await Promise.all([o]);if(s)throw s;return{task:a||[],project:[],global:i.vaultStore.getLearnings("global")||[]}}async function g(e){let t,n=e.stage;if(!n)return{prompt:null};let o=(0,r.createAdminDbClient)(),a=(t=e.workflow_id)&&/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(t)?e.workflow_id:"";if(!a&&e.project_id)try{let t=await (0,c.getProjectWithRepos)(e.project_id,e.user_id);t?.workflow_id&&(a=t.workflow_id)}catch{}a||(a=u.DEFAULT_WORKFLOW_ID);try{let{data:e,error:t}=await o.from("workflow_nodes").select("*").eq("workflow_id",a).eq("name",n).maybeSingle();if(!t&&e){let t=e.metadata&&"object"==typeof e.metadata?e.metadata:{},r="boolean"==typeof t.swarm&&t.swarm,n=Array.isArray(t.swarm_models)?t.swarm_models:void 0;if(e.prompt)return{prompt:e.prompt,swarm:r,provider:e.provider||void 0,model:e.model||void 0,swarm_models:n};return{prompt:null,swarm:r,provider:e.provider||void 0,model:e.model||void 0,swarm_models:n}}}catch{}try{let t=[];t.push(o.from("stage_prompts").select("*").eq("stage",n).eq("is_default",!0).eq("workflow_id",a).maybeSingle()),e.user_id&&t.push(o.from("stage_prompts").select("*").eq("stage",n).eq("user_id",e.user_id).eq("workflow_id",a).maybeSingle());let r=await Promise.all(t),i=r[0]?.data||null,s=e.user_id?r[1]?.data:null,l=s?.prompt||i?.prompt||null;if(l)return{prompt:l,swarm:s?.swarm??i?.swarm??!1,provider:s?.provider||i?.provider,model:s?.model||i?.model,swarm_models:s?.swarm_models||i?.swarm_models}}catch{}let i=u.defaultStagePrompts[n];return i?.prompt?{prompt:i.prompt,swarm:i.swarm??!1,provider:i.provider,model:i.model,swarm_models:i.swarm_models}:{prompt:null}}async function f(e,t){let r=e.project_id,n=e.project||void 0,i=null;if(r&&(i=await (0,c.getProjectWithRepos)(r,e.user_id)),!i&&n){let t=await (0,c.getProjectBySlug)(n,e.user_id);if(t){let e=await (0,c.getProjectRepos)(t.id);i={...t,repos:e}}}if(!i)return null;let[s,l]=await Promise.all([(0,c.getProjectMemory)(i.id,"human"),(0,c.getWorkspaceMapForContext)(i.id)]),d=(0,a.getKnowledgeNote)("project",i.id);if(i.repos.length>0){let e=(0,o.listResolvedRepoKnowledge)(i.repos),t=new Map;for(let r of e){if(!r.repoId)continue;let e="system"===r.producer?`[System-generated] ${r.content}`:r.content,n=t.get(r.repoId)??[];n.push(e),t.set(r.repoId,n)}i={...i,repos:i.repos.map(e=>({...e,notes:t.has(e.id)?t.get(e.id).join("\n\n"):e.notes}))}}return{project:i,repos:i.repos??[],workspace_map:l,learnings:[...s.map(e=>e.content),...d?.content?[`[System-generated] ${d.content}`]:[]]}}async function _(e){let r,[o,a,i,c]=await Promise.all([p(e.id),m(e),g(e),e.user_id?(0,d.getUserSettings)(e.user_id):Promise.resolve(null)]),u=await f(e,a.project),{frontmatter:_}=(0,l.parseFrontmatter)(e.content),h=(0,s.resolveMemoryAgentId)({defaultUserId:e.user_id||"system",frontmatter:_}),w=_.no_memory?[]:function(e,t=5){try{return(0,n.getSQLiteDb)().prepare("SELECT content FROM agent_memory WHERE agent_id = ? ORDER BY created_at DESC LIMIT ?").all(e,t).map(e=>e.content)}catch{return[]}}(h),y=(r=JSON.stringify(o.map(e=>({id:e.id,task_id:e.task_id,author_type:e.author_type||null,author_id:e.author_id||null,content:e.content||"",created_at:e.created_at||null}))),(0,t.createHash)("sha256").update(r).digest("hex")),E="string"==typeof e.stage&&e.stage.trim()?e.stage.trim():"",v=i.prompt??null,S={};if(v&&E){S[E]=v;let e=E.toLowerCase();S[e]||(S[e]=v)}let R=v&&E?[{stage:E,prompt:v}]:[];return{comments:o,learnings:a,agent_memories:w,stage_config:i,stage_prompt:v,stage_prompts:S,stage_objective:v,stageObjective:v,stagePrompts:R,project_context:u,comments_digest:y,user_settings:c}}e.s(["buildTaskContext",()=>_])},267346,e=>{"use strict";var t=e.i(692988),r=e.i(635595),n=e.i(75473),o=e.i(923435),a=e.i(418475),i=e.i(303482),s=e.i(976287),l=e.i(774462),d=e.i(111998),c=e.i(201516),u=e.i(68877),p=e.i(259460),m=e.i(257714),g=e.i(502073),f=e.i(187345),_=e.i(193695);e.i(293777);var h=e.i(274321),w=e.i(732470),y=e.i(764541);e.i(426491);var E=e.i(515140),v=e.i(744071),S=e.i(323218);e.i(650837);var R=e.i(640911);async function T(e,{params:t}){try{let e={id:v.LOCAL_USER.id},{id:r,commentId:n}=await t,o=await y.db.getTask(r,e.id);if(!o)return w.NextResponse.json({error:"Task not found"},{status:404});await y.db.deleteTaskComment(n,e.id);let a=await (0,S.buildTaskContext)(o),{comments_digest:i,stage_config:s}=a;return(0,E.resolveTaskConfig)(o,s,a.user_settings),w.NextResponse.json({success:!0,comments_digest:i})}catch(e){return R.logger.error("Error deleting comment",R.logger.formatError(e)),w.NextResponse.json({error:"Failed to delete comment"},{status:500})}}e.s(["DELETE",()=>T],702940);var C=e.i(702940);let k=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/tasks/[id]/comments/[commentId]/route",pathname:"/api/tasks/[id]/comments/[commentId]",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/local/app/api/tasks/[id]/comments/[commentId]/route.ts",nextConfigOutput:"standalone",userland:C}),{workAsyncStorage:O,workUnitAsyncStorage:A,serverHooks:I}=k;function M(){return(0,n.patchFetch)({workAsyncStorage:O,workUnitAsyncStorage:A})}async function N(e,t,n){k.isDev&&(0,o.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/tasks/[id]/comments/[commentId]/route";w=w.replace(/\/index$/,"")||"/";let y=await k.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!y)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:E,params:v,nextConfig:S,parsedUrl:R,isDraftMode:T,prerenderManifest:C,routerServerContext:O,isOnDemandRevalidate:A,revalidateOnlyGenerated:I,resolvedPathname:M,clientReferenceManifest:N,serverActionsManifest:b}=y,L=(0,s.normalizeAppPath)(w),P=!!(C.dynamicRoutes[L]||C.routes[M]),x=async()=>((null==O?void 0:O.render404)?await O.render404(e,t,R,!1):t.end("This page could not be found"),null);if(P&&!T){let e=!!C.routes[M],t=C.dynamicRoutes[L];if(t&&!1===t.fallback&&!e){if(S.experimental.adapterPath)return await x();throw new _.NoFallbackError}}let j=null;!P||k.isDev||T||(j="/index"===(j=M)?"/":j);let D=!0===k.isDev||!P,U=P&&!D;b&&N&&(0,i.setManifestsSingleton)({page:w,clientReferenceManifest:N,serverActionsManifest:b});let H=e.method||"GET",$=(0,a.getTracer)(),K=$.getActiveScopeSpan(),q={params:v,prerenderManifest:C,renderOpts:{experimental:{authInterrupts:!!S.experimental.authInterrupts},cacheComponents:!!S.cacheComponents,supportsDynamicResponse:D,incrementalCache:(0,o.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:S.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,o)=>k.onRequestError(e,t,n,o,O)},sharedContext:{buildId:E}},F=new l.NodeNextRequest(e),W=new l.NodeNextResponse(t),G=d.NextRequestAdapter.fromNodeNextRequest(F,(0,d.signalFromNodeResponse)(t));try{let i=async e=>k.handle(G,q).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=$.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==c.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${H} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${H} ${w}`)}),s=!!(0,o.getRequestMeta)(e,"minimalMode"),l=async o=>{var a,l;let d=async({previousCacheEntry:r})=>{try{if(!s&&A&&I&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await i(o);e.fetchMetrics=q.renderOpts.fetchMetrics;let l=q.renderOpts.pendingWaitUntil;l&&n.waitUntil&&(n.waitUntil(l),l=void 0);let d=q.renderOpts.collectedTags;if(!P)return await (0,p.sendResponse)(F,W,a,q.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(a.headers);d&&(t[f.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==q.renderOpts.collectedRevalidate&&!(q.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&q.renderOpts.collectedRevalidate,n=void 0===q.renderOpts.collectedExpire||q.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:q.renderOpts.collectedExpire;return{value:{kind:h.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await k.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:A})},!1,O),t}},c=await k.handleResponse({req:e,nextConfig:S,cacheKey:j,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:C,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:I,responseGenerator:d,waitUntil:n.waitUntil,isMinimalMode:s});if(!P)return null;if((null==c||null==(a=c.value)?void 0:a.kind)!==h.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==c||null==(l=c.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});s||t.setHeader("x-nextjs-cache",A?"REVALIDATED":c.isMiss?"MISS":c.isStale?"STALE":"HIT"),T&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let _=(0,m.fromNodeOutgoingHttpHeaders)(c.value.headers);return s&&P||_.delete(f.NEXT_CACHE_TAGS_HEADER),!c.cacheControl||t.getHeader("Cache-Control")||_.get("Cache-Control")||_.set("Cache-Control",(0,g.getCacheControlHeader)(c.cacheControl)),await (0,p.sendResponse)(F,W,new Response(c.value.body,{headers:_,status:c.value.status||200})),null};K?await l(K):await $.withPropagatedContext(e.headers,()=>$.trace(c.BaseServerSpan.handleRequest,{spanName:`${H} ${w}`,kind:a.SpanKind.SERVER,attributes:{"http.method":H,"http.target":e.url}},l))}catch(t){if(t instanceof _.NoFallbackError||await k.onRequestError(e,t,{routerKind:"App Router",routePath:L,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:A})},!1,O),P)throw t;return await (0,p.sendResponse)(F,W,new Response(null,{status:500})),null}}e.s(["handler",()=>N,"patchFetch",()=>M,"routeModule",()=>k,"serverHooks",()=>I,"workAsyncStorage",()=>O,"workUnitAsyncStorage",()=>A],267346)}];
46
46
 
47
47
  //# sourceMappingURL=apps_local_4dec65a2._.js.map