@mndrk/agx 2.4.5 → 2.4.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (360) hide show
  1. package/cloud-runtime/standalone/apps/local/.next/BUILD_ID +1 -1
  2. package/cloud-runtime/standalone/apps/local/.next/app-path-routes-manifest.json +4 -0
  3. package/cloud-runtime/standalone/apps/local/.next/build-manifest.json +2 -2
  4. package/cloud-runtime/standalone/apps/local/.next/prerender-manifest.json +3 -3
  5. package/cloud-runtime/standalone/apps/local/.next/routes-manifest.json +33 -0
  6. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.html +2 -2
  7. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.rsc +1 -1
  8. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  9. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  10. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  11. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  12. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  13. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  14. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.html +2 -2
  15. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.rsc +2 -2
  16. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  17. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  18. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  19. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  20. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  21. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  22. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/[id]/page.js.nft.json +1 -1
  23. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/[id]/page_client-reference-manifest.js +1 -1
  24. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page.js.nft.json +1 -1
  25. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page_client-reference-manifest.js +1 -1
  26. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.html +2 -2
  27. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.rsc +3 -3
  28. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_full.segment.rsc +3 -3
  29. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_head.segment.rsc +1 -1
  30. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_index.segment.rsc +2 -2
  31. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_tree.segment.rsc +2 -2
  32. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/agents/__PAGE__.segment.rsc +2 -2
  33. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/agents.segment.rsc +1 -1
  34. package/cloud-runtime/standalone/apps/local/.next/server/app/api/agent-specs/route.js.nft.json +1 -1
  35. package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/[id]/profile/route.js.nft.json +1 -1
  36. package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/export/route.js.nft.json +1 -1
  37. package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat/route.js.nft.json +1 -1
  38. package/cloud-runtime/standalone/apps/local/.next/server/app/api/file-search/route.js.nft.json +1 -1
  39. package/cloud-runtime/standalone/apps/local/.next/server/app/api/participants/route.js.nft.json +1 -1
  40. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/activities/route.js +1 -1
  41. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/activities/route.js.nft.json +1 -1
  42. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/notes/[noteId]/route.js.nft.json +1 -1
  43. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/notes/route.js.nft.json +1 -1
  44. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/program/route/app-paths-manifest.json +3 -0
  45. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/program/route/build-manifest.json +11 -0
  46. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/program/route/server-reference-manifest.json +4 -0
  47. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/program/route.js +13 -0
  48. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/program/route.js.map +5 -0
  49. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/program/route.js.nft.json +1 -0
  50. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/program/route_client-reference-manifest.js +2 -0
  51. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/route.js.nft.json +1 -1
  52. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/scheduled-tasks/route.js.nft.json +1 -1
  53. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/validate/route.js.nft.json +1 -1
  54. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route.js.nft.json +1 -1
  55. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
  56. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/search/route.js.nft.json +1 -1
  57. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/teams/route.js.nft.json +1 -1
  58. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/export/route/app-paths-manifest.json +3 -0
  59. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/export/route/build-manifest.json +11 -0
  60. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/export/route/server-reference-manifest.json +4 -0
  61. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/export/route.js +11 -0
  62. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/export/route.js.map +5 -0
  63. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/export/route.js.nft.json +1 -0
  64. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/export/route_client-reference-manifest.js +2 -0
  65. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/import/route/app-paths-manifest.json +3 -0
  66. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/import/route/build-manifest.json +11 -0
  67. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/import/route/server-reference-manifest.json +4 -0
  68. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/import/route.js +11 -0
  69. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/import/route.js.map +5 -0
  70. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/import/route.js.nft.json +1 -0
  71. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/workspace/import/route_client-reference-manifest.js +2 -0
  72. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/route.js.nft.json +1 -1
  73. package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/poll/route.js.nft.json +1 -1
  74. package/cloud-runtime/standalone/apps/local/.next/server/app/api/providers/check/[id]/route.js.nft.json +1 -1
  75. package/cloud-runtime/standalone/apps/local/.next/server/app/api/providers/route.js.nft.json +1 -1
  76. package/cloud-runtime/standalone/apps/local/.next/server/app/api/queue/route.js.nft.json +1 -1
  77. package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/debug/route.js.nft.json +1 -1
  78. package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/poll/route.js.nft.json +1 -1
  79. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/assign/route.js.nft.json +1 -1
  80. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/available/route.js.nft.json +1 -1
  81. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/detail/route.js.nft.json +1 -1
  82. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/history/route.js.nft.json +1 -1
  83. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/learn/route.js.nft.json +1 -1
  84. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/route.js.nft.json +1 -1
  85. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/unlearn/route.js.nft.json +1 -1
  86. package/cloud-runtime/standalone/apps/local/.next/server/app/api/status/route.js.nft.json +1 -1
  87. package/cloud-runtime/standalone/apps/local/.next/server/app/api/summarize/route.js.nft.json +1 -1
  88. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js.nft.json +1 -1
  89. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/comments/route.js.nft.json +1 -1
  90. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js.nft.json +1 -1
  91. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
  92. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/route.js.nft.json +1 -1
  93. package/cloud-runtime/standalone/apps/local/.next/server/app/api/threads/knowledge/route.js.nft.json +1 -1
  94. package/cloud-runtime/standalone/apps/local/.next/server/app/api/threads/route.js.nft.json +1 -1
  95. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/items/[id]/recap/route.js.nft.json +1 -1
  96. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/runs/scripted/route.js.nft.json +1 -1
  97. package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/status/route.js.nft.json +1 -1
  98. package/cloud-runtime/standalone/apps/local/.next/server/app/api/update-check/route.js.nft.json +1 -1
  99. package/cloud-runtime/standalone/apps/local/.next/server/app/index.html +2 -2
  100. package/cloud-runtime/standalone/apps/local/.next/server/app/index.rsc +3 -3
  101. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  102. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_full.segment.rsc +3 -3
  103. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_head.segment.rsc +1 -1
  104. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_index.segment.rsc +2 -2
  105. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  106. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos/page_client-reference-manifest.js +1 -1
  107. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.html +2 -2
  108. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.rsc +2 -2
  109. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/_full.segment.rsc +2 -2
  110. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/_head.segment.rsc +1 -1
  111. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/_index.segment.rsc +2 -2
  112. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/_tree.segment.rsc +2 -2
  113. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/integrations/github/select-repos/__PAGE__.segment.rsc +1 -1
  114. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/integrations/github/select-repos.segment.rsc +1 -1
  115. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/integrations/github.segment.rsc +1 -1
  116. package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/integrations.segment.rsc +1 -1
  117. package/cloud-runtime/standalone/apps/local/.next/server/app/page_client-reference-manifest.js +1 -1
  118. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page.js.nft.json +1 -1
  119. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page_client-reference-manifest.js +1 -1
  120. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page.js.nft.json +1 -1
  121. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page_client-reference-manifest.js +1 -1
  122. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page.js.nft.json +1 -1
  123. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page_client-reference-manifest.js +1 -1
  124. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page.js.nft.json +1 -1
  125. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page_client-reference-manifest.js +1 -1
  126. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/notifications/page.js.nft.json +1 -1
  127. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/notifications/page_client-reference-manifest.js +1 -1
  128. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page.js.nft.json +1 -1
  129. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page_client-reference-manifest.js +1 -1
  130. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page.js.nft.json +1 -1
  131. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page_client-reference-manifest.js +1 -1
  132. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page.js.nft.json +1 -1
  133. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
  134. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/page.js.nft.json +1 -1
  135. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/page_client-reference-manifest.js +1 -1
  136. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page.js.nft.json +1 -1
  137. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page_client-reference-manifest.js +1 -1
  138. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page.js.nft.json +1 -1
  139. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page_client-reference-manifest.js +1 -1
  140. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page.js.nft.json +1 -1
  141. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page_client-reference-manifest.js +1 -1
  142. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page.js.nft.json +1 -1
  143. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page_client-reference-manifest.js +1 -1
  144. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page.js.nft.json +1 -1
  145. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page_client-reference-manifest.js +1 -1
  146. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page.js.nft.json +1 -1
  147. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page_client-reference-manifest.js +1 -1
  148. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page.js.nft.json +1 -1
  149. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page_client-reference-manifest.js +1 -1
  150. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page.js.nft.json +1 -1
  151. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page_client-reference-manifest.js +1 -1
  152. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/page/app-paths-manifest.json +3 -0
  153. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/page/build-manifest.json +18 -0
  154. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/page/next-font-manifest.json +11 -0
  155. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/page/react-loadable-manifest.json +1 -0
  156. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/page/server-reference-manifest.json +4 -0
  157. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/page.js +16 -0
  158. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/page.js.map +5 -0
  159. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/page.js.nft.json +1 -0
  160. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/page_client-reference-manifest.js +2 -0
  161. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/[tracker]/page.js.nft.json +1 -1
  162. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/[tracker]/page_client-reference-manifest.js +1 -1
  163. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/connect/page.js.nft.json +1 -1
  164. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/connect/page_client-reference-manifest.js +1 -1
  165. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/page.js.nft.json +1 -1
  166. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/page_client-reference-manifest.js +1 -1
  167. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/page.js.nft.json +1 -1
  168. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  169. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.html +2 -2
  170. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.rsc +3 -3
  171. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_full.segment.rsc +3 -3
  172. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_head.segment.rsc +1 -1
  173. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_index.segment.rsc +2 -2
  174. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
  175. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +2 -2
  176. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/projects.segment.rsc +1 -1
  177. package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page.js.nft.json +1 -1
  178. package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  179. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.html +2 -2
  180. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.rsc +3 -3
  181. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_full.segment.rsc +3 -3
  182. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_head.segment.rsc +1 -1
  183. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_index.segment.rsc +2 -2
  184. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_tree.segment.rsc +2 -2
  185. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/setup/__PAGE__.segment.rsc +2 -2
  186. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/setup.segment.rsc +1 -1
  187. package/cloud-runtime/standalone/apps/local/.next/server/app/status/page_client-reference-manifest.js +1 -1
  188. package/cloud-runtime/standalone/apps/local/.next/server/app/status.html +2 -2
  189. package/cloud-runtime/standalone/apps/local/.next/server/app/status.rsc +2 -2
  190. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_full.segment.rsc +2 -2
  191. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_head.segment.rsc +1 -1
  192. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_index.segment.rsc +2 -2
  193. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_tree.segment.rsc +2 -2
  194. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/status/__PAGE__.segment.rsc +1 -1
  195. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/status.segment.rsc +1 -1
  196. package/cloud-runtime/standalone/apps/local/.next/server/app-paths-manifest.json +4 -0
  197. package/cloud-runtime/standalone/apps/local/.next/server/chunks/30bdd_server_app_api_projects_[id]_workspace_export_route_actions_e161f108.js +3 -0
  198. package/cloud-runtime/standalone/apps/local/.next/server/chunks/30bdd_server_app_api_projects_[id]_workspace_import_route_actions_10d2bce2.js +3 -0
  199. package/cloud-runtime/standalone/apps/local/.next/server/chunks/7255d_app_api_projects_[id]_objectives_[objectiveId]_program_route_actions_e6cdbc76.js +3 -0
  200. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__1563ebff._.js +2 -2
  201. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__3fdd57cb._.js +1 -1
  202. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__45af4365._.js +1 -1
  203. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__683b7ad7._.js +1 -1
  204. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__736d5859._.js +1 -1
  205. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__96b5ea56._.js +3 -0
  206. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__ba72d342._.js +5 -5
  207. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__c3188470._.js +1 -1
  208. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__eb69343e._.js +3 -0
  209. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_1d99e7a5._.js +1 -1
  210. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_4d88e4dc._.js +91 -0
  211. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_4dec65a2._.js +1 -1
  212. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_50e3a6e3._.js +1 -1
  213. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_56a2544c._.js +1 -1
  214. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_5843a1a1._.js +1 -1
  215. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_a15e73a6._.js +1 -1
  216. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_bd72806a._.js +1 -1
  217. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_c101ba9e._.js +1 -1
  218. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_c530bd77._.js +11 -0
  219. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_d69937f2._.js +91 -0
  220. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_e2867b32._.js +3 -0
  221. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_e32b0cab._.js +91 -0
  222. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_5ab8f104._.js +1 -1
  223. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_db_ts_77c23d6c._.js +1 -1
  224. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/0da96_local__next-internal_server_app_projects_[slug]_thread_page_actions_3ceeb59b.js +3 -0
  225. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__1e0fd816._.js +3 -0
  226. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__42499ecf._.js +3 -0
  227. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__5f31e40b._.js +3 -0
  228. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__636799fb._.js +3 -0
  229. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{[root-of-the-server]__4bf7d5b9._.js → [root-of-the-server]__74436f61._.js} +2 -2
  230. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__9434d6d7._.js +3 -0
  231. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__bd339da0._.js +3 -0
  232. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__d08d7899._.js +3 -0
  233. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__e02a457c._.js +3 -0
  234. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__e3a1fef0._.js +3 -0
  235. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__f802e7d1._.js +3 -0
  236. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__ff96bb77._.js +3 -0
  237. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_6a2ba8f0._.js +3 -0
  238. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_7cb6b08a._.js +3 -0
  239. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_a0f42923._.js +7 -0
  240. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_a93c1059._.js +3 -0
  241. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{apps_local_components_PromptJobBoard_tsx_281b2873._.js → apps_local_04cb9fd5._.js} +3 -3
  242. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_15502af8._.js +3 -0
  243. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_16eaf7ae._.js +3 -0
  244. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_3c11c068._.js +8 -0
  245. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_89b49aad._.js +7 -0
  246. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_988d29c0._.js +1 -1
  247. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_ae1a134f._.js +7 -0
  248. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_agents_page_tsx_2a02508d._.js +1 -1
  249. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_folders_page_tsx_72fb68e5._.js +1 -1
  250. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_layout_tsx_3bb31889._.js +1 -1
  251. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_page_tsx_76330306._.js +1 -1
  252. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_teams_[teamId]_page_tsx_6dcfdd52._.js +1 -1
  253. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_b8e580cc._.js +4 -0
  254. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_TrackerBoard_tsx_98970bab._.js +2 -2
  255. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{apps_local_app_projects_[slug]_thread_[threadId]_page_tsx_2a1d1d5e._.js → apps_local_components_chat-ui_ChatContainer_tsx_47371955._.js} +2 -2
  256. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_projects_ProjectObjectivesWorkspace_tsx_751ab3d3._.js +3 -3
  257. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_eb223411._.js +18 -0
  258. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{apps_local_7d1abfbf._.js → apps_local_f1c9872a._.js} +2 -2
  259. package/cloud-runtime/standalone/apps/local/.next/server/functions-config-manifest.json +3 -0
  260. package/cloud-runtime/standalone/apps/local/.next/server/middleware-manifest.json +5 -5
  261. package/cloud-runtime/standalone/apps/local/.next/server/next-font-manifest.js +1 -1
  262. package/cloud-runtime/standalone/apps/local/.next/server/next-font-manifest.json +4 -0
  263. package/cloud-runtime/standalone/apps/local/.next/server/pages/404.html +2 -2
  264. package/cloud-runtime/standalone/apps/local/.next/server/pages/500.html +2 -2
  265. package/cloud-runtime/standalone/apps/local/.next/server/server-reference-manifest.js +1 -1
  266. package/cloud-runtime/standalone/apps/local/.next/server/server-reference-manifest.json +1 -1
  267. package/cloud-runtime/standalone/apps/local/.next/static/chunks/08e75b35d6c52269.js +1 -0
  268. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0d22a723b9b96e65.js +1 -0
  269. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{cb19d71dd7ffb935.js → 1585dd5f9ec4866a.js} +1 -1
  270. package/cloud-runtime/standalone/apps/local/.next/static/chunks/1bc8cc9cbb99c1ed.js +1 -0
  271. package/cloud-runtime/standalone/apps/local/.next/static/chunks/2586c0baa16e9a0d.js +16 -0
  272. package/cloud-runtime/standalone/apps/local/.next/static/chunks/2aa24a251622fd06.js +5 -0
  273. package/cloud-runtime/standalone/apps/local/.next/static/chunks/39513207112d6828.js +1 -0
  274. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{74e3a3e93be78db8.js → 40857295bb9226c4.js} +7 -7
  275. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{8b5d6f5bade8c4ea.js → 41ae15220fc19bf7.js} +2 -2
  276. package/cloud-runtime/standalone/apps/local/.next/static/chunks/5092f14c2bf43204.js +16 -0
  277. package/cloud-runtime/standalone/apps/local/.next/static/chunks/5159169343ce6d2f.css +1 -0
  278. package/cloud-runtime/standalone/apps/local/.next/static/chunks/67b36c70b72e0e10.js +1 -0
  279. package/cloud-runtime/standalone/apps/local/.next/static/chunks/7bfbfcd072f8d61e.js +20 -0
  280. package/cloud-runtime/standalone/apps/local/.next/static/chunks/7cf26dd04166f32f.js +6 -0
  281. package/cloud-runtime/standalone/apps/local/.next/static/chunks/90dcb743d23feeca.js +16 -0
  282. package/cloud-runtime/standalone/apps/local/.next/static/chunks/93749b45e2700808.js +16 -0
  283. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{48feca51cf97c8a7.js → 9bb8f1406365af81.js} +1 -1
  284. package/cloud-runtime/standalone/apps/local/.next/static/chunks/b4aa71020acae46f.js +16 -0
  285. package/cloud-runtime/standalone/apps/local/.next/static/chunks/c352706a0ad7e35d.js +1 -0
  286. package/cloud-runtime/standalone/apps/local/.next/static/chunks/c5436b2b7e8f0ca9.js +16 -0
  287. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{1600dd6ff8607d8f.js → c9a2c4b55bb76f4f.js} +6 -6
  288. package/cloud-runtime/standalone/apps/local/.next/static/chunks/d6a9cc66254693b8.js +1 -0
  289. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{9e703dd5d95e9557.js → e3bdd1e0f385114e.js} +1 -1
  290. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{93b2b6aa0c9593f6.js → e6d4118b7c32d11c.js} +1 -1
  291. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{6ffcd12eabd7c65e.js → f71d73895d228547.js} +1 -1
  292. package/cloud-runtime/standalone/apps/local/.next/static/chunks/f750d2f1882d31a8.js +5 -0
  293. package/cloud-runtime/standalone/apps/local/app/api/automations/route.ts +2 -10
  294. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/objectives/[objectiveId]/program/route.ts +77 -0
  295. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/workspace/export/route.ts +35 -0
  296. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/workspace/import/route.ts +91 -0
  297. package/cloud-runtime/standalone/apps/local/app/api/prompt-jobs/route.ts +1 -8
  298. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/layout.tsx +1 -1
  299. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/teams/[teamId]/page.tsx +58 -2
  300. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/thread/page.tsx +14 -0
  301. package/cloud-runtime/standalone/apps/local/components/AutomationsBoard.tsx +15 -15
  302. package/cloud-runtime/standalone/apps/local/components/PromptJobBoard.tsx +80 -45
  303. package/cloud-runtime/standalone/apps/local/components/projects/FoldersSummaryCard.tsx +51 -196
  304. package/cloud-runtime/standalone/apps/local/components/projects/FoldersView.tsx +662 -784
  305. package/cloud-runtime/standalone/apps/local/components/projects/ObjectiveScheduledTasksPanel.tsx +85 -249
  306. package/cloud-runtime/standalone/apps/local/components/projects/ProjectHome.tsx +4 -4
  307. package/cloud-runtime/standalone/apps/local/components/projects/ProjectObjectivesWorkspace.tsx +118 -0
  308. package/cloud-runtime/standalone/apps/local/components/projects/ProjectSettings.tsx +81 -7
  309. package/cloud-runtime/standalone/apps/local/components/thread/WorkspaceSidebar.tsx +15 -5
  310. package/cloud-runtime/standalone/apps/local/hooks/useProjectWorkspace.ts +117 -0
  311. package/cloud-runtime/standalone/apps/local/lib/db/projects.ts +14 -10
  312. package/cloud-runtime/standalone/apps/local/lib/project-workspace.ts +80 -0
  313. package/cloud-runtime/standalone/apps/local/lib/task-context.ts +39 -4
  314. package/cloud-runtime/standalone/apps/local/lib/workspace-yaml.ts +164 -0
  315. package/cloud-runtime/standalone/apps/local/src/objectives/program/index.ts +7 -0
  316. package/cloud-runtime/standalone/apps/local/src/objectives/program/repository.ts +60 -0
  317. package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/objective-worker.ts +12 -0
  318. package/cloud-runtime/standalone/apps/local/src/scheduling/status.ts +42 -0
  319. package/cloud-runtime/standalone/apps/local/worker/index.js +15 -10
  320. package/lib/commands/workspace.js +145 -7
  321. package/package.json +1 -1
  322. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_09d85861._.js +0 -91
  323. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_25136564._.js +0 -11
  324. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_2caf4398._.js +0 -91
  325. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_31ca7a35._.js +0 -91
  326. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/9fb8c_lucide-react_dist_esm_icons_8c8ee1bc._.js +0 -3
  327. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__3b4708d5._.js +0 -3
  328. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__49cbf624._.js +0 -3
  329. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__49cdd178._.js +0 -3
  330. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__55ed4ff9._.js +0 -3
  331. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__7a31a76d._.js +0 -3
  332. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__7e3c2ea1._.js +0 -7
  333. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__bb42490f._.js +0 -3
  334. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__dbda910b._.js +0 -7
  335. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__ee9351f9._.js +0 -3
  336. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_347d036d._.js +0 -7
  337. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_917d90b4._.js +0 -3
  338. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_f99c22fd._.js +0 -3
  339. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_3b90cb76._.js +0 -18
  340. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_9f36c765._.js +0 -3
  341. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_a2835b49._.js +0 -3
  342. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_8cc1a335._.js +0 -3
  343. package/cloud-runtime/standalone/apps/local/.next/static/chunks/1d8b2726979134e5.js +0 -16
  344. package/cloud-runtime/standalone/apps/local/.next/static/chunks/55a31773f8c2833f.js +0 -20
  345. package/cloud-runtime/standalone/apps/local/.next/static/chunks/6952b44e247d594a.js +0 -16
  346. package/cloud-runtime/standalone/apps/local/.next/static/chunks/6bfdc40a24e65ca2.js +0 -1
  347. package/cloud-runtime/standalone/apps/local/.next/static/chunks/7c8515a24aeea102.js +0 -1
  348. package/cloud-runtime/standalone/apps/local/.next/static/chunks/7ff071e8a33d2fd8.js +0 -16
  349. package/cloud-runtime/standalone/apps/local/.next/static/chunks/80446e085a3aad56.css +0 -1
  350. package/cloud-runtime/standalone/apps/local/.next/static/chunks/87e4fb11329a358d.js +0 -1
  351. package/cloud-runtime/standalone/apps/local/.next/static/chunks/941f7f3626ec442c.js +0 -16
  352. package/cloud-runtime/standalone/apps/local/.next/static/chunks/94a66d2d19268d25.js +0 -5
  353. package/cloud-runtime/standalone/apps/local/.next/static/chunks/9c29ef447bef1576.js +0 -5
  354. package/cloud-runtime/standalone/apps/local/.next/static/chunks/a9111ccc979d4933.js +0 -5
  355. package/cloud-runtime/standalone/apps/local/.next/static/chunks/b35865f64b56d6f4.js +0 -1
  356. package/cloud-runtime/standalone/apps/local/.next/static/chunks/d2b34ade19d9d8da.js +0 -1
  357. package/cloud-runtime/standalone/apps/local/.next/static/chunks/f154e2ed7753f8ee.js +0 -16
  358. /package/cloud-runtime/standalone/apps/local/.next/static/{C3-tP4djbU34_g7VoIFac → xVMVGrzDjtD1H0bGL76NJ}/_buildManifest.js +0 -0
  359. /package/cloud-runtime/standalone/apps/local/.next/static/{C3-tP4djbU34_g7VoIFac → xVMVGrzDjtD1H0bGL76NJ}/_clientMiddlewareManifest.json +0 -0
  360. /package/cloud-runtime/standalone/apps/local/.next/static/{C3-tP4djbU34_g7VoIFac → xVMVGrzDjtD1H0bGL76NJ}/_ssgManifest.js +0 -0
@@ -1,3 +1,3 @@
1
- module.exports=[224361,(e,t,r)=>{t.exports=e.x("util",()=>require("util"))},712513,(e,t,r)=>{},765443,e=>{"use strict";let t="project_objectives_workspace",r="project_goals_workspace",a="project_health_snapshot",i=new Set(["on_track","at_risk","off_track","done"]);function o(e){return!!e&&"object"==typeof e&&!Array.isArray(e)}function n(e){return`${e}_${Math.random().toString(36).slice(2,10)}`}function s(e){return[...e].sort((e,t)=>Date.parse(t.updatedAt)-Date.parse(e.updatedAt))}function c(e){return[...e].sort((e,t)=>Date.parse(e.createdAt)-Date.parse(t.createdAt))}function l(e){return[...e].sort((e,t)=>Date.parse(t.createdAt)-Date.parse(e.createdAt))}function d(e,t=""){return"string"==typeof e?e:t}function u(e,t="1970-01-01T00:00:00.000Z"){if("string"!=typeof e)return t;let r=Date.parse(e);return Number.isNaN(r)?t:new Date(r).toISOString()}function p(e){return"number"==typeof e&&Number.isFinite(e)?Math.max(0,Math.min(100,Math.round(e))):0}function v(e){return"string"==typeof e&&i.has(e)?e:"on_track"}function j(e){return v(e)}function f(e){return p(e)}function h(e,t="objective"){let r=e.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").replace(/-{2,}/g,"-").slice(0,32);return r||t.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"objective"}function b(e,t,r="objective"){let a=h(r),i=h(e,a),o=i,n=2;for(;t.has(o);){let e=`-${n}`,t=Math.max(1,32-e.length);o=`${i.slice(0,t)}${e}`,n+=1}return t.add(o),o}function m(e,t,r){return b(e,new Set(t.filter(e=>e.id!==r).map(e=>h(e.key||e.title||e.id))),r??e)}function y(e){var t;if(!o(e))return null;let r=u(e.updatedAt??e.createdAt),a=u(e.createdAt,r);return{id:d(e.id,n("objective")),title:d(e.title,"Untitled objective"),teamId:d(e.teamId??e.team_id??e.ownerTeamId),key:h(d(e.key??e.slug??e.label),d(e.title??e.id,"objective")),threadId:d(e.threadId)||null,chatSessionVersion:function(e,t=0){return"number"==typeof e&&Number.isFinite(e)?Math.max(0,Math.floor(e)):t}(e.chatSessionVersion,0),scheduledTaskIds:Array.isArray(t=e.scheduledTaskIds??e.promptJobIds)?Array.from(new Set(t.map(e=>"string"==typeof e?e.trim():"").filter(Boolean))):[],summary:d(e.summary),progress:p(e.progress),status:v(e.status),createdAt:a,updatedAt:r}}function g(e){if(!o(e))return null;let t=u(e.updatedAt??e.createdAt),r=u(e.createdAt,t),a=d(e.objectiveId??e.goalId);return a?{id:d(e.id,n("objective_activity")),objectiveId:a,sourceType:"note",sourceLabel:d(e.sourceLabel,"Update"),title:d(e.title,"Untitled activity"),body:d(e.body),createdAt:r,updatedAt:t,relatedTaskId:d(e.relatedTaskId)||null}:null}function A(e){if(!o(e))return null;let t=d(e.activityId);return t?{id:d(e.id,n("objective_thread_message")),activityId:t,author:d(e.author,"You"),body:d(e.body),createdAt:u(e.createdAt)}:null}function R(){return{objectives:[],activities:[],activityThreads:{}}}function P(e){let t;if(!o(e))return R();let r=Array.isArray(e.objectives)?e.objectives.map(e=>y(e)).filter(e=>null!==e):[],a=Array.isArray(e.activities)?e.activities.map(e=>g(e)).filter(e=>null!==e):[],i=o(e.activityThreads)?Object.fromEntries(Object.entries(e.activityThreads).map(([e,t])=>[e,c(Array.isArray(t)?t.map(e=>A(e)).filter(e=>null!==e):[])])):{};return{objectives:s((t=new Set,r.map(e=>{let r=b(e.key||e.title||e.id,t,e.id||e.title||"objective");return e.key===r?e:{...e,key:r}}))),activities:l(a),activityThreads:i}}function w(e){if(!o(e))return R();let a=e[t];if(void 0!==a){let e=P(a);if(e.objectives.length>0||e.activities.length>0||Object.keys(e.activityThreads).length>0)return e}let i=e[r];if(void 0!==i){if(!o(i))return R();let e=Array.isArray(i.goals)?i.goals.map(e=>(function(e){if(!o(e))return null;let t=d(e.target),r=[d(e.summary),t?`Measure: ${t}`:""].filter(Boolean).join("\n\n");return y({...e,summary:r})})(e)).filter(e=>null!==e):[],t=Array.isArray(i.manualActivities)?i.manualActivities.map(e=>g({...e,sourceLabel:"Update"})).filter(e=>null!==e):[],r=o(i.activityThreads)?Object.fromEntries(Object.entries(i.activityThreads).map(([e,t])=>[e,c(Array.isArray(t)?t.map(t=>A({...t,activityId:e})).filter(e=>null!==e):[])])):{};return{objectives:s(e),activities:l(t),activityThreads:r}}return R()}function O(e,a){let i={...e};return delete i[r],i[t]=P(a),i}function k(e,t){let r={...e};return t?r[a]={progress:p(t.progress),status:v(t.status),updatedAt:u(t.updatedAt),...t.source?{source:t.source.trim()}:{},...t.objectiveId?{objectiveId:t.objectiveId}:{},...t.objectiveKey?{objectiveKey:t.objectiveKey}:{},...t.note?{note:t.note.trim()}:{}}:delete r[a],r}function I(e,t){let r=e.objectives.findIndex(e=>e.id===t.id)>=0?e.objectives.map(e=>e.id===t.id?t:e):[t,...e.objectives];return{...e,objectives:s(r)}}e.s(["PROJECT_OBJECTIVES_METADATA_KEY",0,t,"generateProjectObjectiveKey",()=>m,"normalizeProjectHealthProgress",()=>f,"normalizeProjectHealthStatus",()=>j,"readProjectObjectivesWorkspace",()=>w,"upsertProjectObjective",()=>I,"writeProjectHealthSnapshot",()=>k,"writeProjectObjectivesWorkspace",()=>O])},901977,e=>{"use strict";e.i(712513);var t=e.i(764541),r=e.i(744071),a=e.i(765443),i=e.i(671182);async function o(e,a){let i=await t.db.getProjectWithRepos(e,r.LOCAL_USER.id);if(!i)return null;let o=n(i),s=o.objectives.find(e=>e.id===a)??null;return s?{project:i,workspace:o,objective:s}:null}function n(e){let t=e.slug??e.id,r=(0,i.getObjectiveRepository)(t);return r.hasFiles()?r.readWorkspace():(0,a.readProjectObjectivesWorkspace)(e.metadata)}async function s(e){let o=await t.db.getProjectWithRepos(e.projectId,r.LOCAL_USER.id),n=o?.slug??e.projectId;(0,i.getObjectiveRepository)(n).writeWorkspace(e.workspace);let s=(0,a.writeProjectObjectivesWorkspace)(e.currentMetadata??{},e.workspace),c=e.transformMetadata?e.transformMetadata(s):s;return t.db.updateProject(e.projectId,r.LOCAL_USER.id,{metadata:c})}async function c(e){return t.db.updateProject(e.projectId,r.LOCAL_USER.id,{metadata:(0,a.writeProjectHealthSnapshot)(e.currentMetadata??{},e.snapshot)})}async function l(e){return t.db.updateProject(e.projectId,r.LOCAL_USER.id,{metadata:e.transformMetadata(e.currentMetadata??{})})}e.s(["loadProjectObjectiveContext",()=>o,"loadProjectObjectiveWorkspace",()=>n,"persistProjectHealthSnapshot",()=>c,"persistProjectObjectiveMetadata",()=>l,"persistProjectObjectiveWorkspace",()=>s])},341858,e=>{"use strict";function t(e,t,r){return t?e.objectives.find(e=>e.teamId===t&&e.id!==r)??null:null}function r(e){if("string"==typeof e)return e.trim()||void 0}function a(e){return null===e?null:"string"==typeof e?e.trim():void 0}function i(e){if(Array.isArray(e))return Array.from(new Set(e.map(e=>"string"==typeof e?e.trim():"").filter(Boolean)))}e.i(712513),e.i(901977),e.s(["findObjectiveAssignedToTeam",()=>t,"readNullableString",()=>a,"readOptionalString",()=>r,"readStringArray",()=>i])},795007,e=>{"use strict";var t=e.i(692988),r=e.i(635595),a=e.i(75473),i=e.i(923435),o=e.i(418475),n=e.i(303482),s=e.i(976287),c=e.i(774462),l=e.i(111998),d=e.i(201516),u=e.i(68877),p=e.i(259460),v=e.i(257714),j=e.i(502073),f=e.i(187345),h=e.i(193695);e.i(293777);var b=e.i(274321),m=e.i(732470),y=e.i(84516),g=e.i(765443),A=e.i(341858),R=e.i(901977),P=e.i(917435);e.i(650837);var w=e.i(640911);async function O(e){let t=await e,r="string"==typeof t?.id?t.id.trim():"",a="string"==typeof t?.objectiveId?t.objectiveId.trim():"";return r&&a?{projectId:r,objectiveId:a}:null}async function k(e,t){try{let e=await O(t.params);if(!e)return m.NextResponse.json({error:"Objective not found"},{status:404});let r=await (0,R.loadProjectObjectiveContext)(e.projectId,e.objectiveId);if(!r)return m.NextResponse.json({error:"Objective not found"},{status:404});let a=(0,y.getPromptJobStore)().listJobs({projectId:e.projectId,objectiveId:r.objective.id});return m.NextResponse.json({jobs:a})}catch(e){return w.logger.error("Failed to load objective scheduled tasks",w.logger.formatError(e)),m.NextResponse.json({error:"Failed to load objective scheduled tasks"},{status:500})}}async function I(e,t){try{let r=await O(t.params);if(!r)return m.NextResponse.json({error:"Objective not found"},{status:404});let a=await (0,R.loadProjectObjectiveContext)(r.projectId,r.objectiveId);if(!a)return m.NextResponse.json({error:"Objective not found"},{status:404});let i=await e.json().catch(()=>null);if(!i||"object"!=typeof i||Array.isArray(i))return m.NextResponse.json({error:"Invalid scheduled task payload"},{status:400});let o=(0,A.readOptionalString)(i.name)??`Work on ${a.objective.title}`,n=(0,A.readOptionalString)(i.prompt),s=(0,A.readOptionalString)(i.cadence)??"",c=(0,A.readOptionalString)(i.condition)??"";if(!n)return m.NextResponse.json({error:"Scheduled task prompt is required"},{status:400});if(!s)return m.NextResponse.json({error:"A cadence is required before a scheduled task can be created for this objective."},{status:400});if(!a.objective.teamId)return m.NextResponse.json({error:"Assign a team to this objective before creating scheduled tasks."},{status:400});let l=(0,y.getPromptJobStore)(),d=l.createJob({name:o,prompt:n,projectId:r.projectId,objectiveId:a.objective.id,objectiveKey:a.objective.key,executionMode:"prompt",agentId:(0,A.readOptionalString)(i.agentId),provider:(0,A.readOptionalString)(i.provider)??"claude",model:(0,A.readOptionalString)(i.model),cliArgs:(0,A.readOptionalString)(i.cliArgs),cadence:s,overlapPolicy:"skip"===i.overlapPolicy||"queue"===i.overlapPolicy||"allow"===i.overlapPolicy?i.overlapPolicy:void 0,catchUpPolicy:"fire_once"===i.catchUpPolicy||"replay_all"===i.catchUpPolicy||"skip"===i.catchUpPolicy?i.catchUpPolicy:void 0,cancelCheckSec:"number"==typeof i.cancelCheckSec&&Number.isFinite(i.cancelCheckSec)?i.cancelCheckSec:void 0,condition:c||void 0}),u={...a.objective,updatedAt:new Date().toISOString()};if(!await (0,R.persistProjectObjectiveWorkspace)({projectId:r.projectId,currentMetadata:a.project.metadata,workspace:(0,g.upsertProjectObjective)(a.workspace,u)}))return m.NextResponse.json({error:"Project not found"},{status:404});return l.createRun(d.id),(0,P.requestPromptJobPump)(),m.NextResponse.json({job:d,objective:u},{status:201})}catch(e){return w.logger.error("Failed to create objective scheduled task",w.logger.formatError(e)),m.NextResponse.json({error:e instanceof Error?e.message:"Failed to create objective scheduled task"},{status:500})}}e.s(["GET",()=>k,"POST",()=>I,"dynamic",0,"force-dynamic","runtime",0,"nodejs"],532471);var S=e.i(532471);let E=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/projects/[id]/objectives/[objectiveId]/scheduled-tasks/route",pathname:"/api/projects/[id]/objectives/[objectiveId]/scheduled-tasks",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/local/app/api/projects/[id]/objectives/[objectiveId]/scheduled-tasks/route.ts",nextConfigOutput:"standalone",userland:S}),{workAsyncStorage:x,workUnitAsyncStorage:C,serverHooks:_}=E;function T(){return(0,a.patchFetch)({workAsyncStorage:x,workUnitAsyncStorage:C})}async function N(e,t,a){E.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let m="/api/projects/[id]/objectives/[objectiveId]/scheduled-tasks/route";m=m.replace(/\/index$/,"")||"/";let y=await E.prepare(e,t,{srcPage:m,multiZoneDraftMode:!1});if(!y)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:g,params:A,nextConfig:R,parsedUrl:P,isDraftMode:w,prerenderManifest:O,routerServerContext:k,isOnDemandRevalidate:I,revalidateOnlyGenerated:S,resolvedPathname:x,clientReferenceManifest:C,serverActionsManifest:_}=y,T=(0,s.normalizeAppPath)(m),N=!!(O.dynamicRoutes[T]||O.routes[x]),M=async()=>((null==k?void 0:k.render404)?await k.render404(e,t,P,!1):t.end("This page could not be found"),null);if(N&&!w){let e=!!O.routes[x],t=O.dynamicRoutes[T];if(t&&!1===t.fallback&&!e){if(R.experimental.adapterPath)return await M();throw new h.NoFallbackError}}let U=null;!N||E.isDev||w||(U="/index"===(U=x)?"/":U);let D=!0===E.isDev||!N,H=N&&!D;_&&C&&(0,n.setManifestsSingleton)({page:m,clientReferenceManifest:C,serverActionsManifest:_});let L=e.method||"GET",q=(0,o.getTracer)(),$=q.getActiveScopeSpan(),F={params:A,prerenderManifest:O,renderOpts:{experimental:{authInterrupts:!!R.experimental.authInterrupts},cacheComponents:!!R.cacheComponents,supportsDynamicResponse:D,incrementalCache:(0,i.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:R.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,i)=>E.onRequestError(e,t,a,i,k)},sharedContext:{buildId:g}},K=new c.NodeNextRequest(e),W=new c.NodeNextResponse(t),B=l.NextRequestAdapter.fromNodeNextRequest(K,(0,l.signalFromNodeResponse)(t));try{let n=async e=>E.handle(B,F).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=q.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=`${L} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${L} ${m}`)}),s=!!(0,i.getRequestMeta)(e,"minimalMode"),c=async i=>{var o,c;let l=async({previousCacheEntry:r})=>{try{if(!s&&I&&S&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let o=await n(i);e.fetchMetrics=F.renderOpts.fetchMetrics;let c=F.renderOpts.pendingWaitUntil;c&&a.waitUntil&&(a.waitUntil(c),c=void 0);let l=F.renderOpts.collectedTags;if(!N)return await (0,p.sendResponse)(K,W,o,F.renderOpts.pendingWaitUntil),null;{let e=await o.blob(),t=(0,v.toNodeOutgoingHttpHeaders)(o.headers);l&&(t[f.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==F.renderOpts.collectedRevalidate&&!(F.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&F.renderOpts.collectedRevalidate,a=void 0===F.renderOpts.collectedExpire||F.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:F.renderOpts.collectedExpire;return{value:{kind:b.CachedRouteKind.APP_ROUTE,status:o.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await E.onRequestError(e,t,{routerKind:"App Router",routePath:m,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:I})},!1,k),t}},d=await E.handleResponse({req:e,nextConfig:R,cacheKey:U,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:O,isRoutePPREnabled:!1,isOnDemandRevalidate:I,revalidateOnlyGenerated:S,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:s});if(!N)return null;if((null==d||null==(o=d.value)?void 0:o.kind)!==b.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(c=d.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});s||t.setHeader("x-nextjs-cache",I?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),w&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let h=(0,v.fromNodeOutgoingHttpHeaders)(d.value.headers);return s&&N||h.delete(f.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||h.get("Cache-Control")||h.set("Cache-Control",(0,j.getCacheControlHeader)(d.cacheControl)),await (0,p.sendResponse)(K,W,new Response(d.value.body,{headers:h,status:d.value.status||200})),null};$?await c($):await q.withPropagatedContext(e.headers,()=>q.trace(d.BaseServerSpan.handleRequest,{spanName:`${L} ${m}`,kind:o.SpanKind.SERVER,attributes:{"http.method":L,"http.target":e.url}},c))}catch(t){if(t instanceof h.NoFallbackError||await E.onRequestError(e,t,{routerKind:"App Router",routePath:T,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:I})},!1,k),N)throw t;return await (0,p.sendResponse)(K,W,new Response(null,{status:500})),null}}e.s(["handler",()=>N,"patchFetch",()=>T,"routeModule",()=>E,"serverHooks",()=>_,"workAsyncStorage",()=>x,"workUnitAsyncStorage",()=>C],795007)},816306,e=>{e.v(e=>Promise.resolve().then(()=>e(779429)))},805001,e=>{e.v(e=>Promise.resolve().then(()=>e(601544)))},234316,e=>{e.v(e=>Promise.resolve().then(()=>e(951336)))},482848,e=>{e.v(e=>Promise.resolve().then(()=>e(874533)))},11400,e=>{e.v(e=>Promise.resolve().then(()=>e(593238)))},10,e=>{e.v(e=>Promise.resolve().then(()=>e(391310)))},56352,e=>{e.v(e=>Promise.resolve().then(()=>e(460275)))},213483,e=>{e.v(t=>Promise.all(["server/chunks/apps_local_1a4cb196._.js"].map(t=>e.l(t))).then(()=>t(959181)))},663784,e=>{e.v(t=>Promise.all(["server/chunks/apps_local_09d85861._.js"].map(t=>e.l(t))).then(()=>t(720395)))}];
1
+ module.exports=[224361,(e,t,r)=>{t.exports=e.x("util",()=>require("util"))},712513,(e,t,r)=>{},765443,e=>{"use strict";let t="project_objectives_workspace",r="project_goals_workspace",a="project_health_snapshot",i=new Set(["on_track","at_risk","off_track","done"]);function o(e){return!!e&&"object"==typeof e&&!Array.isArray(e)}function n(e){return`${e}_${Math.random().toString(36).slice(2,10)}`}function s(e){return[...e].sort((e,t)=>Date.parse(t.updatedAt)-Date.parse(e.updatedAt))}function c(e){return[...e].sort((e,t)=>Date.parse(e.createdAt)-Date.parse(t.createdAt))}function l(e){return[...e].sort((e,t)=>Date.parse(t.createdAt)-Date.parse(e.createdAt))}function d(e,t=""){return"string"==typeof e?e:t}function u(e,t="1970-01-01T00:00:00.000Z"){if("string"!=typeof e)return t;let r=Date.parse(e);return Number.isNaN(r)?t:new Date(r).toISOString()}function p(e){return"number"==typeof e&&Number.isFinite(e)?Math.max(0,Math.min(100,Math.round(e))):0}function v(e){return"string"==typeof e&&i.has(e)?e:"on_track"}function j(e){return v(e)}function f(e){return p(e)}function h(e,t="objective"){let r=e.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").replace(/-{2,}/g,"-").slice(0,32);return r||t.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"objective"}function b(e,t,r="objective"){let a=h(r),i=h(e,a),o=i,n=2;for(;t.has(o);){let e=`-${n}`,t=Math.max(1,32-e.length);o=`${i.slice(0,t)}${e}`,n+=1}return t.add(o),o}function m(e,t,r){return b(e,new Set(t.filter(e=>e.id!==r).map(e=>h(e.key||e.title||e.id))),r??e)}function y(e){var t;if(!o(e))return null;let r=u(e.updatedAt??e.createdAt),a=u(e.createdAt,r);return{id:d(e.id,n("objective")),title:d(e.title,"Untitled objective"),teamId:d(e.teamId??e.team_id??e.ownerTeamId),key:h(d(e.key??e.slug??e.label),d(e.title??e.id,"objective")),threadId:d(e.threadId)||null,chatSessionVersion:function(e,t=0){return"number"==typeof e&&Number.isFinite(e)?Math.max(0,Math.floor(e)):t}(e.chatSessionVersion,0),scheduledTaskIds:Array.isArray(t=e.scheduledTaskIds??e.promptJobIds)?Array.from(new Set(t.map(e=>"string"==typeof e?e.trim():"").filter(Boolean))):[],summary:d(e.summary),progress:p(e.progress),status:v(e.status),createdAt:a,updatedAt:r}}function g(e){if(!o(e))return null;let t=u(e.updatedAt??e.createdAt),r=u(e.createdAt,t),a=d(e.objectiveId??e.goalId);return a?{id:d(e.id,n("objective_activity")),objectiveId:a,sourceType:"note",sourceLabel:d(e.sourceLabel,"Update"),title:d(e.title,"Untitled activity"),body:d(e.body),createdAt:r,updatedAt:t,relatedTaskId:d(e.relatedTaskId)||null}:null}function A(e){if(!o(e))return null;let t=d(e.activityId);return t?{id:d(e.id,n("objective_thread_message")),activityId:t,author:d(e.author,"You"),body:d(e.body),createdAt:u(e.createdAt)}:null}function R(){return{objectives:[],activities:[],activityThreads:{}}}function P(e){let t;if(!o(e))return R();let r=Array.isArray(e.objectives)?e.objectives.map(e=>y(e)).filter(e=>null!==e):[],a=Array.isArray(e.activities)?e.activities.map(e=>g(e)).filter(e=>null!==e):[],i=o(e.activityThreads)?Object.fromEntries(Object.entries(e.activityThreads).map(([e,t])=>[e,c(Array.isArray(t)?t.map(e=>A(e)).filter(e=>null!==e):[])])):{};return{objectives:s((t=new Set,r.map(e=>{let r=b(e.key||e.title||e.id,t,e.id||e.title||"objective");return e.key===r?e:{...e,key:r}}))),activities:l(a),activityThreads:i}}function w(e){if(!o(e))return R();let a=e[t];if(void 0!==a){let e=P(a);if(e.objectives.length>0||e.activities.length>0||Object.keys(e.activityThreads).length>0)return e}let i=e[r];if(void 0!==i){if(!o(i))return R();let e=Array.isArray(i.goals)?i.goals.map(e=>(function(e){if(!o(e))return null;let t=d(e.target),r=[d(e.summary),t?`Measure: ${t}`:""].filter(Boolean).join("\n\n");return y({...e,summary:r})})(e)).filter(e=>null!==e):[],t=Array.isArray(i.manualActivities)?i.manualActivities.map(e=>g({...e,sourceLabel:"Update"})).filter(e=>null!==e):[],r=o(i.activityThreads)?Object.fromEntries(Object.entries(i.activityThreads).map(([e,t])=>[e,c(Array.isArray(t)?t.map(t=>A({...t,activityId:e})).filter(e=>null!==e):[])])):{};return{objectives:s(e),activities:l(t),activityThreads:r}}return R()}function O(e,a){let i={...e};return delete i[r],i[t]=P(a),i}function k(e,t){let r={...e};return t?r[a]={progress:p(t.progress),status:v(t.status),updatedAt:u(t.updatedAt),...t.source?{source:t.source.trim()}:{},...t.objectiveId?{objectiveId:t.objectiveId}:{},...t.objectiveKey?{objectiveKey:t.objectiveKey}:{},...t.note?{note:t.note.trim()}:{}}:delete r[a],r}function I(e,t){let r=e.objectives.findIndex(e=>e.id===t.id)>=0?e.objectives.map(e=>e.id===t.id?t:e):[t,...e.objectives];return{...e,objectives:s(r)}}e.s(["PROJECT_OBJECTIVES_METADATA_KEY",0,t,"generateProjectObjectiveKey",()=>m,"normalizeProjectHealthProgress",()=>f,"normalizeProjectHealthStatus",()=>j,"readProjectObjectivesWorkspace",()=>w,"upsertProjectObjective",()=>I,"writeProjectHealthSnapshot",()=>k,"writeProjectObjectivesWorkspace",()=>O])},901977,e=>{"use strict";e.i(712513);var t=e.i(764541),r=e.i(744071),a=e.i(765443),i=e.i(671182);async function o(e,a){let i=await t.db.getProjectWithRepos(e,r.LOCAL_USER.id);if(!i)return null;let o=n(i),s=o.objectives.find(e=>e.id===a)??null;return s?{project:i,workspace:o,objective:s}:null}function n(e){let t=e.slug??e.id,r=(0,i.getObjectiveRepository)(t);return r.hasFiles()?r.readWorkspace():(0,a.readProjectObjectivesWorkspace)(e.metadata)}async function s(e){let o=await t.db.getProjectWithRepos(e.projectId,r.LOCAL_USER.id),n=o?.slug??e.projectId;(0,i.getObjectiveRepository)(n).writeWorkspace(e.workspace);let s=(0,a.writeProjectObjectivesWorkspace)(e.currentMetadata??{},e.workspace),c=e.transformMetadata?e.transformMetadata(s):s;return t.db.updateProject(e.projectId,r.LOCAL_USER.id,{metadata:c})}async function c(e){return t.db.updateProject(e.projectId,r.LOCAL_USER.id,{metadata:(0,a.writeProjectHealthSnapshot)(e.currentMetadata??{},e.snapshot)})}async function l(e){return t.db.updateProject(e.projectId,r.LOCAL_USER.id,{metadata:e.transformMetadata(e.currentMetadata??{})})}e.s(["loadProjectObjectiveContext",()=>o,"loadProjectObjectiveWorkspace",()=>n,"persistProjectHealthSnapshot",()=>c,"persistProjectObjectiveMetadata",()=>l,"persistProjectObjectiveWorkspace",()=>s])},341858,e=>{"use strict";function t(e,t,r){return t?e.objectives.find(e=>e.teamId===t&&e.id!==r)??null:null}function r(e){if("string"==typeof e)return e.trim()||void 0}function a(e){return null===e?null:"string"==typeof e?e.trim():void 0}function i(e){if(Array.isArray(e))return Array.from(new Set(e.map(e=>"string"==typeof e?e.trim():"").filter(Boolean)))}e.i(712513),e.i(901977),e.s(["findObjectiveAssignedToTeam",()=>t,"readNullableString",()=>a,"readOptionalString",()=>r,"readStringArray",()=>i])},795007,e=>{"use strict";var t=e.i(692988),r=e.i(635595),a=e.i(75473),i=e.i(923435),o=e.i(418475),n=e.i(303482),s=e.i(976287),c=e.i(774462),l=e.i(111998),d=e.i(201516),u=e.i(68877),p=e.i(259460),v=e.i(257714),j=e.i(502073),f=e.i(187345),h=e.i(193695);e.i(293777);var b=e.i(274321),m=e.i(732470),y=e.i(84516),g=e.i(765443),A=e.i(341858),R=e.i(901977),P=e.i(917435);e.i(650837);var w=e.i(640911);async function O(e){let t=await e,r="string"==typeof t?.id?t.id.trim():"",a="string"==typeof t?.objectiveId?t.objectiveId.trim():"";return r&&a?{projectId:r,objectiveId:a}:null}async function k(e,t){try{let e=await O(t.params);if(!e)return m.NextResponse.json({error:"Objective not found"},{status:404});let r=await (0,R.loadProjectObjectiveContext)(e.projectId,e.objectiveId);if(!r)return m.NextResponse.json({error:"Objective not found"},{status:404});let a=(0,y.getPromptJobStore)().listJobs({projectId:e.projectId,objectiveId:r.objective.id});return m.NextResponse.json({jobs:a})}catch(e){return w.logger.error("Failed to load objective scheduled tasks",w.logger.formatError(e)),m.NextResponse.json({error:"Failed to load objective scheduled tasks"},{status:500})}}async function I(e,t){try{let r=await O(t.params);if(!r)return m.NextResponse.json({error:"Objective not found"},{status:404});let a=await (0,R.loadProjectObjectiveContext)(r.projectId,r.objectiveId);if(!a)return m.NextResponse.json({error:"Objective not found"},{status:404});let i=await e.json().catch(()=>null);if(!i||"object"!=typeof i||Array.isArray(i))return m.NextResponse.json({error:"Invalid scheduled task payload"},{status:400});let o=(0,A.readOptionalString)(i.name)??`Work on ${a.objective.title}`,n=(0,A.readOptionalString)(i.prompt),s=(0,A.readOptionalString)(i.cadence)??"",c=(0,A.readOptionalString)(i.condition)??"";if(!n)return m.NextResponse.json({error:"Scheduled task prompt is required"},{status:400});if(!s)return m.NextResponse.json({error:"A cadence is required before a scheduled task can be created for this objective."},{status:400});if(!a.objective.teamId)return m.NextResponse.json({error:"Assign a team to this objective before creating scheduled tasks."},{status:400});let l=(0,y.getPromptJobStore)(),d=l.createJob({name:o,prompt:n,projectId:r.projectId,objectiveId:a.objective.id,objectiveKey:a.objective.key,executionMode:"prompt",agentId:(0,A.readOptionalString)(i.agentId),provider:(0,A.readOptionalString)(i.provider)??"claude",model:(0,A.readOptionalString)(i.model),cliArgs:(0,A.readOptionalString)(i.cliArgs),cadence:s,overlapPolicy:"skip"===i.overlapPolicy||"queue"===i.overlapPolicy||"allow"===i.overlapPolicy?i.overlapPolicy:void 0,catchUpPolicy:"fire_once"===i.catchUpPolicy||"replay_all"===i.catchUpPolicy||"skip"===i.catchUpPolicy?i.catchUpPolicy:void 0,cancelCheckSec:"number"==typeof i.cancelCheckSec&&Number.isFinite(i.cancelCheckSec)?i.cancelCheckSec:void 0,condition:c||void 0}),u={...a.objective,updatedAt:new Date().toISOString()};if(!await (0,R.persistProjectObjectiveWorkspace)({projectId:r.projectId,currentMetadata:a.project.metadata,workspace:(0,g.upsertProjectObjective)(a.workspace,u)}))return m.NextResponse.json({error:"Project not found"},{status:404});return l.createRun(d.id),(0,P.requestPromptJobPump)(),m.NextResponse.json({job:d,objective:u},{status:201})}catch(e){return w.logger.error("Failed to create objective scheduled task",w.logger.formatError(e)),m.NextResponse.json({error:e instanceof Error?e.message:"Failed to create objective scheduled task"},{status:500})}}e.s(["GET",()=>k,"POST",()=>I,"dynamic",0,"force-dynamic","runtime",0,"nodejs"],532471);var S=e.i(532471);let E=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/projects/[id]/objectives/[objectiveId]/scheduled-tasks/route",pathname:"/api/projects/[id]/objectives/[objectiveId]/scheduled-tasks",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/local/app/api/projects/[id]/objectives/[objectiveId]/scheduled-tasks/route.ts",nextConfigOutput:"standalone",userland:S}),{workAsyncStorage:x,workUnitAsyncStorage:C,serverHooks:_}=E;function T(){return(0,a.patchFetch)({workAsyncStorage:x,workUnitAsyncStorage:C})}async function N(e,t,a){E.isDev&&(0,i.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let m="/api/projects/[id]/objectives/[objectiveId]/scheduled-tasks/route";m=m.replace(/\/index$/,"")||"/";let y=await E.prepare(e,t,{srcPage:m,multiZoneDraftMode:!1});if(!y)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:g,params:A,nextConfig:R,parsedUrl:P,isDraftMode:w,prerenderManifest:O,routerServerContext:k,isOnDemandRevalidate:I,revalidateOnlyGenerated:S,resolvedPathname:x,clientReferenceManifest:C,serverActionsManifest:_}=y,T=(0,s.normalizeAppPath)(m),N=!!(O.dynamicRoutes[T]||O.routes[x]),M=async()=>((null==k?void 0:k.render404)?await k.render404(e,t,P,!1):t.end("This page could not be found"),null);if(N&&!w){let e=!!O.routes[x],t=O.dynamicRoutes[T];if(t&&!1===t.fallback&&!e){if(R.experimental.adapterPath)return await M();throw new h.NoFallbackError}}let U=null;!N||E.isDev||w||(U="/index"===(U=x)?"/":U);let D=!0===E.isDev||!N,H=N&&!D;_&&C&&(0,n.setManifestsSingleton)({page:m,clientReferenceManifest:C,serverActionsManifest:_});let L=e.method||"GET",q=(0,o.getTracer)(),$=q.getActiveScopeSpan(),F={params:A,prerenderManifest:O,renderOpts:{experimental:{authInterrupts:!!R.experimental.authInterrupts},cacheComponents:!!R.cacheComponents,supportsDynamicResponse:D,incrementalCache:(0,i.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:R.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,i)=>E.onRequestError(e,t,a,i,k)},sharedContext:{buildId:g}},K=new c.NodeNextRequest(e),W=new c.NodeNextResponse(t),B=l.NextRequestAdapter.fromNodeNextRequest(K,(0,l.signalFromNodeResponse)(t));try{let n=async e=>E.handle(B,F).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=q.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=`${L} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${L} ${m}`)}),s=!!(0,i.getRequestMeta)(e,"minimalMode"),c=async i=>{var o,c;let l=async({previousCacheEntry:r})=>{try{if(!s&&I&&S&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let o=await n(i);e.fetchMetrics=F.renderOpts.fetchMetrics;let c=F.renderOpts.pendingWaitUntil;c&&a.waitUntil&&(a.waitUntil(c),c=void 0);let l=F.renderOpts.collectedTags;if(!N)return await (0,p.sendResponse)(K,W,o,F.renderOpts.pendingWaitUntil),null;{let e=await o.blob(),t=(0,v.toNodeOutgoingHttpHeaders)(o.headers);l&&(t[f.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==F.renderOpts.collectedRevalidate&&!(F.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&F.renderOpts.collectedRevalidate,a=void 0===F.renderOpts.collectedExpire||F.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:F.renderOpts.collectedExpire;return{value:{kind:b.CachedRouteKind.APP_ROUTE,status:o.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await E.onRequestError(e,t,{routerKind:"App Router",routePath:m,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:I})},!1,k),t}},d=await E.handleResponse({req:e,nextConfig:R,cacheKey:U,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:O,isRoutePPREnabled:!1,isOnDemandRevalidate:I,revalidateOnlyGenerated:S,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:s});if(!N)return null;if((null==d||null==(o=d.value)?void 0:o.kind)!==b.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(c=d.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});s||t.setHeader("x-nextjs-cache",I?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),w&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let h=(0,v.fromNodeOutgoingHttpHeaders)(d.value.headers);return s&&N||h.delete(f.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||h.get("Cache-Control")||h.set("Cache-Control",(0,j.getCacheControlHeader)(d.cacheControl)),await (0,p.sendResponse)(K,W,new Response(d.value.body,{headers:h,status:d.value.status||200})),null};$?await c($):await q.withPropagatedContext(e.headers,()=>q.trace(d.BaseServerSpan.handleRequest,{spanName:`${L} ${m}`,kind:o.SpanKind.SERVER,attributes:{"http.method":L,"http.target":e.url}},c))}catch(t){if(t instanceof h.NoFallbackError||await E.onRequestError(e,t,{routerKind:"App Router",routePath:T,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:H,isOnDemandRevalidate:I})},!1,k),N)throw t;return await (0,p.sendResponse)(K,W,new Response(null,{status:500})),null}}e.s(["handler",()=>N,"patchFetch",()=>T,"routeModule",()=>E,"serverHooks",()=>_,"workAsyncStorage",()=>x,"workUnitAsyncStorage",()=>C],795007)},816306,e=>{e.v(e=>Promise.resolve().then(()=>e(779429)))},805001,e=>{e.v(e=>Promise.resolve().then(()=>e(601544)))},234316,e=>{e.v(e=>Promise.resolve().then(()=>e(951336)))},482848,e=>{e.v(e=>Promise.resolve().then(()=>e(874533)))},11400,e=>{e.v(e=>Promise.resolve().then(()=>e(593238)))},10,e=>{e.v(e=>Promise.resolve().then(()=>e(391310)))},56352,e=>{e.v(e=>Promise.resolve().then(()=>e(460275)))},213483,e=>{e.v(t=>Promise.all(["server/chunks/apps_local_1a4cb196._.js"].map(t=>e.l(t))).then(()=>t(959181)))},663784,e=>{e.v(t=>Promise.all(["server/chunks/apps_local_4d88e4dc._.js"].map(t=>e.l(t))).then(()=>t(720395)))}];
2
2
 
3
3
  //# sourceMappingURL=%5Broot-of-the-server%5D__736d5859._.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 u(u,d){let p=[],f=u.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(u,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(u,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}(d);h&&l.some(e=>h.toLowerCase().includes(e))&&p.push({kind:"filesystem_error",message:`Database path '${d}' is on a network filesystem (${h})`,path:d,found:h,fix:"Move the database file to a local SSD. WAL mode requires local filesystem with reliable fsync."});try{(0,t.pragmaSet)(u,"journal_mode = wal"),(0,t.pragmaSet)(u,"foreign_keys = 1"),(0,t.pragmaSet)(u,"busy_timeout = 5000"),(0,t.pragmaSet)(u,"synchronous = 1"),(0,t.pragmaSet)(u,"cache_size = -64000");let e=(0,t.pragmaGet)(u,"journal_mode").toLowerCase(),r=new Set(["wal","delete"]);if(!r.has(e)){(0,t.pragmaSet)(u,"journal_mode = DELETE");let e=(0,t.pragmaGet)(u,"journal_mode").toLowerCase();r.has(e)?((0,t.pragmaSet)(u,"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",()=>u])},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 u(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 d(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},u=(0,t.createAdminDbClient)(),{data:d,error:p}=await u.from("notification_webhooks").insert(c).select("*").single();if(p&&await l("notification_webhooks",p),!d)throw Error("Failed to create webhook");return s(d)}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:u,error:d}=await c.from("notification_webhooks").update(o).eq("id",r).eq("user_id",e).select("*").single();if(d&&await l("notification_webhooks",d),!u)throw Error("Webhook not found");return s(u)}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",()=>d,"deleteNotificationWebhook",()=>f,"getNotificationWebhook",()=>u,"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)},675796,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),u=e.i(201516),d=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 y=e.i(274321),w=e.i(732470);e.i(426491);var v=e.i(863014);e.i(650837);var b=e.i(640911),x=e.i(858253);function E(e,t){return`${e}\u0000${t}`}async function k(e,t){try{let r,{id:a}=await t.params,o=await (0,v.getProjectWithRepos)(a);if(!o)return w.NextResponse.json({error:"Project not found"},{status:404});let n=await e.text();if(!n.trim())return w.NextResponse.json({error:"Empty request body"},{status:400});try{r=(0,x.deserializeWorkspace)(n)}catch(t){let e=t instanceof Error?t.message:"Invalid YAML";return w.NextResponse.json({error:e},{status:400})}let i=await (0,v.getProjectWorkspaceEntries)(o.id),s=new Map(i.map(e=>[E(e.category,e.name),e])),l=new Map,c=0,u=0;for(let e of r.entries){let t=E(e.category,e.name),r=l.get(e.category)??0;l.set(e.category,r+1);let a=s.get(t);if(a){await (0,v.updateWorkspaceEntry)(o.id,a.id,{purpose:e.purpose,sort_order:r}),u+=1;continue}await (0,v.createWorkspaceEntry)(o.id,{category:e.category,name:e.name,path:null,purpose:e.purpose,sort_order:r}),c+=1}let d=await (0,v.getProjectWorkspace)(o.id);return w.NextResponse.json({success:!0,summary:{created:c,updated:u,total:r.entries.length},workspace:d})}catch(e){return b.logger.error("Error importing workspace YAML",b.logger.formatError(e)),w.NextResponse.json({error:"Failed to import workspace YAML"},{status:500})}}e.s(["POST",()=>k,"dynamic",0,"force-dynamic","runtime",0,"nodejs"],67879);var A=e.i(67879);let R=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/projects/[id]/workspace/import/route",pathname:"/api/projects/[id]/workspace/import",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/local/app/api/projects/[id]/workspace/import/route.ts",nextConfigOutput:"standalone",userland:A}),{workAsyncStorage:_,workUnitAsyncStorage:S,serverHooks:C}=R;function T(){return(0,a.patchFetch)({workAsyncStorage:_,workUnitAsyncStorage:S})}async function q(e,t,a){R.isDev&&(0,o.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let w="/api/projects/[id]/workspace/import/route";w=w.replace(/\/index$/,"")||"/";let v=await R.prepare(e,t,{srcPage:w,multiZoneDraftMode:!1});if(!v)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:b,params:x,nextConfig:E,parsedUrl:k,isDraftMode:A,prerenderManifest:_,routerServerContext:S,isOnDemandRevalidate:C,revalidateOnlyGenerated:T,resolvedPathname:q,clientReferenceManifest:L,serverActionsManifest:j}=v,$=(0,s.normalizeAppPath)(w),N=!!(_.dynamicRoutes[$]||_.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&&!A){let e=!!_.routes[q],t=_.dynamicRoutes[$];if(t&&!1===t.fallback&&!e){if(E.experimental.adapterPath)return await I();throw new g.NoFallbackError}}let O=null;!N||R.isDev||A||(O="/index"===(O=q)?"/":O);let P=!0===R.isDev||!N,M=N&&!P;j&&L&&(0,i.setManifestsSingleton)({page:w,clientReferenceManifest:L,serverActionsManifest:j});let D=e.method||"GET",U=(0,n.getTracer)(),W=U.getActiveScopeSpan(),G={params:x,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)=>R.onRequestError(e,t,a,o,S)},sharedContext:{buildId:b}},F=new l.NodeNextRequest(e),B=new l.NodeNextResponse(t),H=c.NextRequestAdapter.fromNodeNextRequest(F,(0,c.signalFromNodeResponse)(t));try{let i=async e=>R.handle(H,G).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=U.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==u.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=`${D} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t)}else e.updateName(`${D} ${w}`)}),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=G.renderOpts.fetchMetrics;let l=G.renderOpts.pendingWaitUntil;l&&a.waitUntil&&(a.waitUntil(l),l=void 0);let c=G.renderOpts.collectedTags;if(!N)return await (0,p.sendResponse)(F,B,n,G.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!==G.renderOpts.collectedRevalidate&&!(G.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&G.renderOpts.collectedRevalidate,a=void 0===G.renderOpts.collectedExpire||G.renderOpts.collectedExpire>=m.INFINITE_CACHE?void 0:G.renderOpts.collectedExpire;return{value:{kind:y.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 R.onRequestError(e,t,{routerKind:"App Router",routePath:w,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,S),t}},u=await R.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==u||null==(n=u.value)?void 0:n.kind)!==y.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(l=u.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});s||t.setHeader("x-nextjs-cache",C?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),A&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let g=(0,f.fromNodeOutgoingHttpHeaders)(u.value.headers);return s&&N||g.delete(m.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||g.get("Cache-Control")||g.set("Cache-Control",(0,h.getCacheControlHeader)(u.cacheControl)),await (0,p.sendResponse)(F,B,new Response(u.value.body,{headers:g,status:u.value.status||200})),null};W?await l(W):await U.withPropagatedContext(e.headers,()=>U.trace(u.BaseServerSpan.handleRequest,{spanName:`${D} ${w}`,kind:n.SpanKind.SERVER,attributes:{"http.method":D,"http.target":e.url}},l))}catch(t){if(t instanceof g.NoFallbackError||await R.onRequestError(e,t,{routerKind:"App Router",routePath:$,routeType:"route",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,S),N)throw t;return await (0,p.sendResponse)(F,B,new Response(null,{status:500})),null}}e.s(["handler",()=>q,"patchFetch",()=>T,"routeModule",()=>R,"serverHooks",()=>C,"workAsyncStorage",()=>_,"workUnitAsyncStorage",()=>S],675796)}];
2
+
3
+ //# sourceMappingURL=%5Broot-of-the-server%5D__96b5ea56._.js.map
@@ -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"}
@@ -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