@mndrk/agx 2.1.0 → 2.3.0

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 (457) hide show
  1. package/README.md +70 -105
  2. package/cloud-runtime/standalone/apps/local/.next/BUILD_ID +1 -1
  3. package/cloud-runtime/standalone/apps/local/.next/build-manifest.json +3 -3
  4. package/cloud-runtime/standalone/apps/local/.next/prerender-manifest.json +3 -3
  5. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.html +1 -1
  6. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.rsc +1 -1
  7. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  8. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  9. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  10. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  11. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  12. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  13. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.html +2 -2
  14. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.rsc +2 -2
  15. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  16. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  17. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  18. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  19. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  20. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  21. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/[id]/page_client-reference-manifest.js +1 -1
  22. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page.js.nft.json +1 -1
  23. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page_client-reference-manifest.js +1 -1
  24. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.html +2 -2
  25. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.rsc +3 -3
  26. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_full.segment.rsc +3 -3
  27. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_head.segment.rsc +1 -1
  28. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_index.segment.rsc +2 -2
  29. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_tree.segment.rsc +2 -2
  30. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/agents/__PAGE__.segment.rsc +2 -2
  31. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/agents.segment.rsc +1 -1
  32. package/cloud-runtime/standalone/apps/local/.next/server/app/api/agent-specs/route.js.nft.json +1 -1
  33. package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/[id]/profile/route.js.nft.json +1 -1
  34. package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/export/route.js.nft.json +1 -1
  35. package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat/route.js.nft.json +1 -1
  36. package/cloud-runtime/standalone/apps/local/.next/server/app/api/file-search/route.js.nft.json +1 -1
  37. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/issues/[id]/route.js.nft.json +1 -1
  38. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/issues/context/route.js.nft.json +1 -1
  39. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/issues/route.js.nft.json +1 -1
  40. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/options/route.js.nft.json +1 -1
  41. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/runs/scripted/route.js.nft.json +1 -1
  42. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/status/route.js.nft.json +1 -1
  43. package/cloud-runtime/standalone/apps/local/.next/server/app/api/participants/route.js.nft.json +1 -1
  44. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/linear-issues/route.js.nft.json +1 -1
  45. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/scheduled-tasks/route.js.nft.json +1 -1
  46. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route.js.nft.json +1 -1
  47. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/search/route.js.nft.json +1 -1
  48. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/teams/route.js.nft.json +1 -1
  49. package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/poll/route.js.nft.json +1 -1
  50. package/cloud-runtime/standalone/apps/local/.next/server/app/api/providers/check/[id]/route.js.nft.json +1 -1
  51. package/cloud-runtime/standalone/apps/local/.next/server/app/api/providers/route.js.nft.json +1 -1
  52. package/cloud-runtime/standalone/apps/local/.next/server/app/api/queue/route.js.nft.json +1 -1
  53. package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/debug/route.js.nft.json +1 -1
  54. package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/poll/route.js.nft.json +1 -1
  55. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/assign/route.js.nft.json +1 -1
  56. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/available/route.js.nft.json +1 -1
  57. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/detail/route.js.nft.json +1 -1
  58. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/history/route.js.nft.json +1 -1
  59. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/learn/route.js.nft.json +1 -1
  60. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/route.js.nft.json +1 -1
  61. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/unlearn/route.js.nft.json +1 -1
  62. package/cloud-runtime/standalone/apps/local/.next/server/app/api/status/route.js.nft.json +1 -1
  63. package/cloud-runtime/standalone/apps/local/.next/server/app/api/summarize/route.js.nft.json +1 -1
  64. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js.nft.json +1 -1
  65. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/comments/route.js.nft.json +1 -1
  66. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js.nft.json +1 -1
  67. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
  68. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/extract/route.js.nft.json +1 -1
  69. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/route.js.nft.json +1 -1
  70. package/cloud-runtime/standalone/apps/local/.next/server/app/api/threads/knowledge/route.js.nft.json +1 -1
  71. package/cloud-runtime/standalone/apps/local/.next/server/app/api/threads/route.js.nft.json +1 -1
  72. package/cloud-runtime/standalone/apps/local/.next/server/app/automations/page/react-loadable-manifest.json +2 -2
  73. package/cloud-runtime/standalone/apps/local/.next/server/app/automations/page_client-reference-manifest.js +1 -1
  74. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.html +2 -2
  75. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.rsc +5 -5
  76. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/_full.segment.rsc +5 -5
  77. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/_head.segment.rsc +1 -1
  78. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/_index.segment.rsc +2 -2
  79. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/_tree.segment.rsc +3 -3
  80. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/automations/__PAGE__.segment.rsc +3 -3
  81. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/automations.segment.rsc +1 -1
  82. package/cloud-runtime/standalone/apps/local/.next/server/app/board/page_client-reference-manifest.js +1 -1
  83. package/cloud-runtime/standalone/apps/local/.next/server/app/board.html +2 -2
  84. package/cloud-runtime/standalone/apps/local/.next/server/app/board.rsc +2 -2
  85. package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/_full.segment.rsc +2 -2
  86. package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/_head.segment.rsc +1 -1
  87. package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/_index.segment.rsc +2 -2
  88. package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/_tree.segment.rsc +2 -2
  89. package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/board/__PAGE__.segment.rsc +1 -1
  90. package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/board.segment.rsc +1 -1
  91. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph/page.js.nft.json +1 -1
  92. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph/page_client-reference-manifest.js +1 -1
  93. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.html +2 -2
  94. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.rsc +3 -3
  95. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/_full.segment.rsc +3 -3
  96. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/_head.segment.rsc +1 -1
  97. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/_index.segment.rsc +2 -2
  98. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/_tree.segment.rsc +2 -2
  99. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/execution-graph/__PAGE__.segment.rsc +2 -2
  100. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/execution-graph.segment.rsc +1 -1
  101. package/cloud-runtime/standalone/apps/local/.next/server/app/folders/page_client-reference-manifest.js +1 -1
  102. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.html +2 -2
  103. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.rsc +3 -3
  104. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/_full.segment.rsc +3 -3
  105. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/_head.segment.rsc +1 -1
  106. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/_index.segment.rsc +2 -2
  107. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/_tree.segment.rsc +2 -2
  108. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/folders/__PAGE__.segment.rsc +2 -2
  109. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/folders.segment.rsc +1 -1
  110. package/cloud-runtime/standalone/apps/local/.next/server/app/index.html +2 -2
  111. package/cloud-runtime/standalone/apps/local/.next/server/app/index.rsc +3 -3
  112. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  113. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_full.segment.rsc +3 -3
  114. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_head.segment.rsc +1 -1
  115. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_index.segment.rsc +2 -2
  116. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  117. package/cloud-runtime/standalone/apps/local/.next/server/app/page.js.nft.json +1 -1
  118. package/cloud-runtime/standalone/apps/local/.next/server/app/page_client-reference-manifest.js +1 -1
  119. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page/react-loadable-manifest.json +1 -1
  120. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page.js.nft.json +1 -1
  121. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page_client-reference-manifest.js +1 -1
  122. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page.js.nft.json +1 -1
  123. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page_client-reference-manifest.js +1 -1
  124. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page.js.nft.json +1 -1
  125. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page_client-reference-manifest.js +1 -1
  126. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page.js.nft.json +1 -1
  127. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page_client-reference-manifest.js +1 -1
  128. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/knowledge/page.js.nft.json +1 -1
  129. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/knowledge/page_client-reference-manifest.js +1 -1
  130. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/linear/page/react-loadable-manifest.json +1 -1
  131. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/linear/page.js.nft.json +1 -1
  132. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/linear/page_client-reference-manifest.js +1 -1
  133. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page.js.nft.json +1 -1
  134. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page_client-reference-manifest.js +1 -1
  135. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page.js.nft.json +1 -1
  136. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page_client-reference-manifest.js +1 -1
  137. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page.js.nft.json +1 -1
  138. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
  139. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/settings/page.js.nft.json +1 -1
  140. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/settings/page_client-reference-manifest.js +1 -1
  141. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page.js.nft.json +1 -1
  142. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page_client-reference-manifest.js +1 -1
  143. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page.js.nft.json +1 -1
  144. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page_client-reference-manifest.js +1 -1
  145. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page.js.nft.json +1 -1
  146. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page_client-reference-manifest.js +1 -1
  147. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page.js.nft.json +1 -1
  148. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page_client-reference-manifest.js +1 -1
  149. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page.js.nft.json +1 -1
  150. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page_client-reference-manifest.js +1 -1
  151. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page.js.nft.json +1 -1
  152. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page_client-reference-manifest.js +1 -1
  153. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page.js.nft.json +1 -1
  154. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page_client-reference-manifest.js +1 -1
  155. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page.js.nft.json +1 -1
  156. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page_client-reference-manifest.js +1 -1
  157. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans/page_client-reference-manifest.js +1 -1
  158. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.html +2 -2
  159. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.rsc +2 -2
  160. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/_full.segment.rsc +2 -2
  161. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/_head.segment.rsc +1 -1
  162. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/_index.segment.rsc +2 -2
  163. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/_tree.segment.rsc +2 -2
  164. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/projects/orphans/__PAGE__.segment.rsc +1 -1
  165. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/projects/orphans.segment.rsc +1 -1
  166. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/projects.segment.rsc +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/settings/page_client-reference-manifest.js +1 -1
  178. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.html +2 -2
  179. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.rsc +2 -2
  180. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/_full.segment.rsc +2 -2
  181. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  182. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/_index.segment.rsc +2 -2
  183. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  184. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +1 -1
  185. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/settings.segment.rsc +1 -1
  186. package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page.js.nft.json +1 -1
  187. package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  188. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.html +2 -2
  189. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.rsc +4 -3
  190. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_full.segment.rsc +4 -3
  191. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_head.segment.rsc +1 -1
  192. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_index.segment.rsc +2 -2
  193. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_tree.segment.rsc +3 -2
  194. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/setup/__PAGE__.segment.rsc +3 -2
  195. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/setup.segment.rsc +1 -1
  196. package/cloud-runtime/standalone/apps/local/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  197. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.html +2 -2
  198. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.rsc +2 -2
  199. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/_full.segment.rsc +2 -2
  200. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/_head.segment.rsc +1 -1
  201. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/_index.segment.rsc +2 -2
  202. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/_tree.segment.rsc +2 -2
  203. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/skills/__PAGE__.segment.rsc +1 -1
  204. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/skills.segment.rsc +1 -1
  205. package/cloud-runtime/standalone/apps/local/.next/server/app/status/page.js.nft.json +1 -1
  206. package/cloud-runtime/standalone/apps/local/.next/server/app/status/page_client-reference-manifest.js +1 -1
  207. package/cloud-runtime/standalone/apps/local/.next/server/app/status.html +2 -2
  208. package/cloud-runtime/standalone/apps/local/.next/server/app/status.rsc +3 -3
  209. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_full.segment.rsc +3 -3
  210. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_head.segment.rsc +1 -1
  211. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_index.segment.rsc +2 -2
  212. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_tree.segment.rsc +2 -2
  213. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/status/__PAGE__.segment.rsc +2 -2
  214. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/status.segment.rsc +1 -1
  215. package/cloud-runtime/standalone/apps/local/.next/server/app/thread/[id]/page.js.nft.json +1 -1
  216. package/cloud-runtime/standalone/apps/local/.next/server/app/thread/[id]/page_client-reference-manifest.js +1 -1
  217. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0-zk9w8._.js +7 -2
  218. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0.01bfe._.js +13 -8
  219. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__00c~p6z._.js +7 -2
  220. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__019dflu._.js +7 -2
  221. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__02t.3rm._.js +4 -4
  222. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__06zr0ph._.js +6 -1
  223. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__07d._0s._.js +15 -10
  224. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__08xj~a3._.js +1 -1
  225. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0a0cq38._.js +34 -3
  226. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0asvfdo._.js +35 -4
  227. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0bt7ejs._.js +7 -2
  228. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0f.~98d._.js +7 -2
  229. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0g-~-.q._.js +6 -1
  230. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0g7p6pw._.js +1 -1
  231. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0gj~dap._.js +40 -9
  232. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0hkcw03._.js +8 -3
  233. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0hyu3en._.js +7 -2
  234. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0i5aw03._.js +7 -2
  235. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0ke4z91._.js +7 -2
  236. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0l53ok5._.js +41 -10
  237. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0ll-~cx._.js +7 -2
  238. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0mh6p.0._.js +7 -2
  239. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0nc-lbr._.js +1 -1
  240. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0p9rl6.._.js +8 -3
  241. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0q~pnp0._.js +6 -6
  242. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0ue0bu5._.js +6 -1
  243. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0unwwyx._.js +12 -7
  244. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0vtkl3q._.js +4 -4
  245. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0x6w64i._.js +1 -1
  246. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0z82z0-._.js +6 -1
  247. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0zrv3p3._.js +16 -11
  248. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0~iknwz._.js +12 -7
  249. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__10d.dhd._.js +46 -15
  250. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__10sw5ia._.js +4 -4
  251. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__11yx.ud._.js +33 -2
  252. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__13-nlgu._.js +5 -5
  253. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__13960a8._.js +14 -9
  254. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_06qet8g._.js +14 -9
  255. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0_0m2ly._.js +4 -4
  256. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0a15wtk._.js +4 -4
  257. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0fr1qq6._.js +1 -1
  258. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0g.q2r6._.js +6 -1
  259. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0i7fs.i._.js +4 -4
  260. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_01pvj2g._.js +1 -1
  261. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_agent-participants_ts_0cq15u5._.js +1 -1
  262. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_db_ts_0twf-w5._.js +1 -1
  263. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_orchestrator_chat-processor_ts_0c2l_oh._.js +43 -12
  264. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_sqlite-query-adapter_ts_0l95hik._.js +15 -15
  265. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_sqlite-query-adapter_ts_0s5xprd._.js +1 -1
  266. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_graph_082u-ls._.js +19 -14
  267. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_graph_schedule-runner_ts_07-ozf_._.js +2 -2
  268. package/cloud-runtime/standalone/apps/local/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0_l0fpi.js +1 -1
  269. package/cloud-runtime/standalone/apps/local/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0gips_c.js +1 -1
  270. package/cloud-runtime/standalone/apps/local/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0rszt9p.js +10 -6
  271. package/cloud-runtime/standalone/apps/local/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0u_5kfo.js +1 -1
  272. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/0rhn_lucide-react_dist_esm_06fnblz._.js +3 -0
  273. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__039h7r.._.js +18 -0
  274. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0lno3km._.js +3 -0
  275. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{[root-of-the-server]__0fl7_-o._.js → [root-of-the-server]__0nqqk26._.js} +2 -2
  276. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{[root-of-the-server]__0j9m72.._.js → [root-of-the-server]__0tqn-o5._.js} +2 -2
  277. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0~nm7b6._.js +3 -0
  278. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0140-84._.js +3 -0
  279. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_03fckp4._.js +3 -0
  280. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{_064h43p._.js → _05xj_bp._.js} +2 -2
  281. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{_0tcjapj._.js → _0ip6k6n._.js} +2 -2
  282. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0jensz1._.js +3 -0
  283. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0t0p8q5._.js +3 -0
  284. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0yeuuy1._.js +1 -23
  285. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_03z24q2._.js +1 -1
  286. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{apps_local_0nvzo3y._.js → apps_local_04dh2yh._.js} +2 -2
  287. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0_ac-.f._.js +3 -3
  288. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0a-8i4p._.js +1 -1
  289. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0k4~c1x._.js +1 -1
  290. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0ld1uug._.js +1 -1
  291. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0ms1d6i._.js +4 -0
  292. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0p_v0ri._.js +1 -1
  293. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0x.xj52._.js +3 -0
  294. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0~g2ijr._.js +1 -1
  295. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_11k_-8~._.js +3 -3
  296. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_agents_[id]_page_tsx_06n47n~._.js +1 -1
  297. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_agents_page_tsx_078reb_._.js +1 -1
  298. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_layout_tsx_0aaa3~t._.js +1 -1
  299. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_linear_page_tsx_0a~n5y8._.js +25 -3
  300. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_page_tsx_0kcaeqi._.js +1 -1
  301. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_teams_[teamId]_agents_[agentId]_page_tsx_0wm~_~t._.js +1 -1
  302. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_teams_[teamId]_page_tsx_0iyozfl._.js +1 -1
  303. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_teams_new_page_tsx_0yqd0a5._.js +1 -1
  304. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_terminal_page_tsx_01n9qk.._.js +1 -20
  305. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_setup_page_tsx_0ql2qmr._.js +1 -1
  306. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_PromptJobBoard_tsx_06zob36._.js +2 -2
  307. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_chat-ui_ChatContainer_tsx_0c9fjtl._.js +1 -1
  308. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_projects_ProjectObjectivesWorkspace_tsx_0k4tfip._.js +1 -1
  309. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_terminal_TerminalPane_tsx_0l17vs_._.js +22 -0
  310. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_thread_WorkspaceSidebar_tsx_0unv2xp._.js +1 -1
  311. package/cloud-runtime/standalone/apps/local/.next/server/middleware-build-manifest.js +3 -3
  312. package/cloud-runtime/standalone/apps/local/.next/server/middleware-manifest.json +5 -5
  313. package/cloud-runtime/standalone/apps/local/.next/server/pages/404.html +2 -2
  314. package/cloud-runtime/standalone/apps/local/.next/server/pages/500.html +1 -1
  315. package/cloud-runtime/standalone/apps/local/.next/server/server-reference-manifest.js +1 -1
  316. package/cloud-runtime/standalone/apps/local/.next/server/server-reference-manifest.json +1 -1
  317. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0e307b-0c2jbx.js → 0-cets4_axpvm.js} +1 -1
  318. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{1011~1x9nj4ny.js → 0-k2m1ncx7hwx.js} +1 -1
  319. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0dnw31436wd~..js → 0-pkmgle2s8u8.js} +1 -1
  320. package/cloud-runtime/standalone/apps/local/.next/static/chunks/064jfmraty.9h.js +1 -0
  321. package/cloud-runtime/standalone/apps/local/.next/static/chunks/06kru5m9q~r.j.js +1 -0
  322. package/cloud-runtime/standalone/apps/local/.next/static/chunks/06kyg1q0bcz6p.js +5 -0
  323. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{119v0-idpg-cv.js → 08bdyjcnamzep.js} +1 -1
  324. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0-olq~7zw3wjy.js → 08xq~uyr6.eqw.js} +1 -1
  325. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0gj98094p~zn4.js → 0cku81z~3oe6..js} +1 -1
  326. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0e7jhy0-52_4k.js +1 -0
  327. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0wh6p5~ft5rma.js → 0htc.sqrk_0.c.js} +1 -1
  328. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0ju4xmxwqddw6.js +1 -0
  329. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0kn66yvx08813.css +1 -0
  330. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{07646a0h94826.js → 0l89kxqcf86on.js} +2 -2
  331. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0mm978wb-ueg-.js +6 -0
  332. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0musu8f.4wvxz.js +1 -0
  333. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0bchtyu6m.2yv.js → 0muti0yiyhu0t.js} +1 -1
  334. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0rhps884e-bzu.js +1 -0
  335. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0rr3fvwc5ind~.js +5 -0
  336. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0sbkkjowkksa6.js +1 -0
  337. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0sjz0.o9_33qy.js +1 -0
  338. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0srzmg8ivve1g.css +1 -0
  339. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0fonouj2i9qnb.js → 0swo3_e8.4s7j.js} +2 -2
  340. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0sysrf3~l~r35.js +1 -0
  341. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0t69h-kc701fn.js +1 -0
  342. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0v67lnh..wj4z.js +1 -0
  343. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{013gtut17~fne.js → 0wb45ol1xrqe~.js} +1 -23
  344. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{00po4v2x~0x_z.js → 0wiw2v8gm-k_-.js} +1 -1
  345. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0tt1oh112yv-l.js → 0wopevh0s7.8c.js} +1 -1
  346. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0xm2~gxlt1npd.js +1 -0
  347. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{1503vb7lb6.g1.js → 0ya124ushze_f.js} +4 -4
  348. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0zt2o58c5gytn.js +16 -0
  349. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0~idsggr8vqf5.js +59 -0
  350. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0stvi5btlxl4m.js → 0~mcfx41q4znh.js} +3 -3
  351. package/cloud-runtime/standalone/apps/local/.next/static/chunks/116j4mjz~y42t.js +1 -0
  352. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0-vo_x2cxmjm3.js → 12b62py0mq1gm.js} +4 -4
  353. package/cloud-runtime/standalone/apps/local/.next/static/chunks/12y5i0lh6s73o.js +1 -0
  354. package/cloud-runtime/standalone/apps/local/.next/static/chunks/148.mt80civoz.js +20 -0
  355. package/cloud-runtime/standalone/apps/local/.next/static/chunks/14m5d270euu_s.js +1 -0
  356. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0-_ukhpeg429c.js → 16h9208kl5~xa.js} +1 -1
  357. package/cloud-runtime/standalone/apps/local/app/agents/[id]/page.tsx +6 -3
  358. package/cloud-runtime/standalone/apps/local/app/agents/page.tsx +3 -3
  359. package/cloud-runtime/standalone/apps/local/app/api/chat/route.ts +7 -1
  360. package/cloud-runtime/standalone/apps/local/app/api/participants/route.ts +9 -9
  361. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/search/route.ts +6 -6
  362. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/teams/route.ts +3 -3
  363. package/cloud-runtime/standalone/apps/local/app/api/prompt-jobs/agents/route.ts +1 -1
  364. package/cloud-runtime/standalone/apps/local/app/api/schedules/poll/route.ts +11 -2
  365. package/cloud-runtime/standalone/apps/local/app/page.tsx +72 -14
  366. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/layout.tsx +1 -1
  367. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/page.tsx +34 -1
  368. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page.tsx +6 -3
  369. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/teams/[teamId]/page.tsx +6 -3
  370. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/teams/new/page.tsx +8 -17
  371. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/teams/replace/page.tsx +1 -1
  372. package/cloud-runtime/standalone/apps/local/app/projects/page.tsx +7 -0
  373. package/cloud-runtime/standalone/apps/local/app/setup/page.tsx +1 -38
  374. package/cloud-runtime/standalone/apps/local/components/AutomationsBoard.tsx +8 -4
  375. package/cloud-runtime/standalone/apps/local/components/EmptyStateCard.tsx +37 -0
  376. package/cloud-runtime/standalone/apps/local/components/LinearBoard.tsx +103 -770
  377. package/cloud-runtime/standalone/apps/local/components/PromptJobBoard.tsx +8 -39
  378. package/cloud-runtime/standalone/apps/local/components/TeamPickerModal.tsx +3 -3
  379. package/cloud-runtime/standalone/apps/local/components/chat-ui/Composer.tsx +28 -32
  380. package/cloud-runtime/standalone/apps/local/components/chat-ui/ParticipantBar.tsx +24 -39
  381. package/cloud-runtime/standalone/apps/local/components/linear/LinearBoardFilters.tsx +343 -0
  382. package/cloud-runtime/standalone/apps/local/components/linear/LinearSettingsModal.tsx +9 -3
  383. package/cloud-runtime/standalone/apps/local/components/linear/LinearWorkerConfig.tsx +65 -30
  384. package/cloud-runtime/standalone/apps/local/components/linear/LinearWorkerRunLog.tsx +190 -0
  385. package/cloud-runtime/standalone/apps/local/components/linear/TicketRow.tsx +158 -0
  386. package/cloud-runtime/standalone/apps/local/components/projects/ObjectiveHealthTrend.tsx +45 -61
  387. package/cloud-runtime/standalone/apps/local/components/projects/ObjectiveScheduledTasksPanel.tsx +38 -34
  388. package/cloud-runtime/standalone/apps/local/components/projects/RecentlyCompletedCard.tsx +0 -16
  389. package/cloud-runtime/standalone/apps/local/components/projects/ReplaceAgentsModal.tsx +2 -2
  390. package/cloud-runtime/standalone/apps/local/components/setup/McpSetupStep.tsx +155 -120
  391. package/cloud-runtime/standalone/apps/local/components/setup/ProviderStep.tsx +85 -88
  392. package/cloud-runtime/standalone/apps/local/components/setup/SetupLayout.tsx +6 -4
  393. package/cloud-runtime/standalone/apps/local/components/terminal/ProjectTerminal.tsx +18 -193
  394. package/cloud-runtime/standalone/apps/local/components/terminal/TerminalPane.tsx +40 -4
  395. package/cloud-runtime/standalone/apps/local/components/thread/WorkspaceSidebar.tsx +121 -20
  396. package/cloud-runtime/standalone/apps/local/components/ui/ResizeHandle.tsx +52 -0
  397. package/cloud-runtime/standalone/apps/local/hooks/useAutomations.ts +8 -3
  398. package/cloud-runtime/standalone/apps/local/hooks/useLinearActiveAgents.ts +38 -0
  399. package/cloud-runtime/standalone/apps/local/hooks/useLinearParticipants.ts +118 -0
  400. package/cloud-runtime/standalone/apps/local/hooks/usePromptJobs.ts +5 -3
  401. package/cloud-runtime/standalone/apps/local/hooks/useSetupFlow.ts +6 -81
  402. package/cloud-runtime/standalone/apps/local/lib/agent-participants.ts +1 -1
  403. package/cloud-runtime/standalone/apps/local/lib/agent-process-registry.ts +34 -0
  404. package/cloud-runtime/standalone/apps/local/lib/db.ts +5 -5
  405. package/cloud-runtime/standalone/apps/local/lib/linear-board-utils.ts +9 -0
  406. package/cloud-runtime/standalone/apps/local/lib/linear-run-status.ts +88 -0
  407. package/cloud-runtime/standalone/apps/local/lib/linear-run-store.ts +4 -4
  408. package/cloud-runtime/standalone/apps/local/lib/sqlite-query-adapter.ts +5 -1
  409. package/cloud-runtime/standalone/apps/local/lib/team-catalog.ts +60 -60
  410. package/cloud-runtime/standalone/apps/local/lib/types.ts +1 -1
  411. package/cloud-runtime/standalone/apps/local/migrations/sqlite_schema.sql +1 -1
  412. package/cloud-runtime/standalone/apps/local/skills-lock.json +5 -0
  413. package/cloud-runtime/standalone/apps/local/src/graph/schedule-runner.ts +26 -1
  414. package/cloud-runtime/standalone/apps/local/src/graph/store.ts +13 -0
  415. package/cloud-runtime/standalone/apps/local/state/linearBoardPins.ts +45 -0
  416. package/cloud-runtime/standalone/apps/local/styles/workspaceSidebar.css +71 -2
  417. package/cloud-runtime/standalone/apps/local/worker/index.js +56 -4
  418. package/lib/cli/onboarding.js +8 -5
  419. package/package.json +1 -1
  420. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/0rhn_lucide-react_dist_esm_0tvwux2._.js +0 -3
  421. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__006vr7.._.js +0 -3
  422. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0d18x53._.js +0 -18
  423. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0z7nw_r._.js +0 -3
  424. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_00trrg8._.js +0 -3
  425. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0ejzn1e._.js +0 -3
  426. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0sjchy6._.js +0 -3
  427. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0w4gpvr._.js +0 -3
  428. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0x6hh0t._.js +0 -4
  429. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0t6p.qm._.js +0 -3
  430. package/cloud-runtime/standalone/apps/local/.next/static/chunks/014z_yruiincl.js +0 -1
  431. package/cloud-runtime/standalone/apps/local/.next/static/chunks/041-dhls9zkl1.js +0 -1
  432. package/cloud-runtime/standalone/apps/local/.next/static/chunks/04yoml2rqnuot.js +0 -16
  433. package/cloud-runtime/standalone/apps/local/.next/static/chunks/069yt_7prdxsp.js +0 -1
  434. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0_mrpyqcoyb_5.js +0 -1
  435. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0edewt9l~cs~k.css +0 -1
  436. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0f7i3ae1ynhf3.css +0 -1
  437. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0j-nhn61e~nnj.js +0 -1
  438. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0jrkacz_dyem6.js +0 -37
  439. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0l3v45kd.9is_.js +0 -1
  440. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0p-rdas54yo~w.js +0 -1
  441. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0pdrpsy-zdxp0.js +0 -5
  442. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0p~l5ap6qqx2o.js +0 -1
  443. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0r0c9y6.8.m5p.js +0 -1
  444. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0tm20~ec~occu.js +0 -1
  445. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0uve8xrt~0a2e.js +0 -1
  446. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0w94x-v00osq0.js +0 -1
  447. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0xwny92a.ad_i.js +0 -1
  448. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0zw85-xl9ysjs.js +0 -1
  449. package/cloud-runtime/standalone/apps/local/.next/static/chunks/11l2tww5f0hsk.js +0 -20
  450. package/cloud-runtime/standalone/apps/local/.next/static/chunks/12qohmk-~yrtg.js +0 -1
  451. package/cloud-runtime/standalone/apps/local/.next/static/chunks/14v~9vx3tdv85.js +0 -1
  452. package/cloud-runtime/standalone/apps/local/.next/static/chunks/16d~es6h6k~rj.js +0 -6
  453. package/cloud-runtime/standalone/apps/local/components/setup/ProjectStep.tsx +0 -189
  454. package/cloud-runtime/standalone/apps/local/components/setup/TeamsStep.tsx +0 -500
  455. /package/cloud-runtime/standalone/apps/local/.next/static/{RnYHmEXBwXJjVrVVx2CuP → ROMPfjQqFXqGHmbybq1eC}/_buildManifest.js +0 -0
  456. /package/cloud-runtime/standalone/apps/local/.next/static/{RnYHmEXBwXJjVrVVx2CuP → ROMPfjQqFXqGHmbybq1eC}/_clientMiddlewareManifest.js +0 -0
  457. /package/cloud-runtime/standalone/apps/local/.next/static/{RnYHmEXBwXJjVrVVx2CuP → ROMPfjQqFXqGHmbybq1eC}/_ssgManifest.js +0 -0
@@ -2,12 +2,12 @@ module.exports=[94042,41434,e=>{"use strict";var t,n=e.i(779429);e.i(508241);var
2
2
 
3
3
  Acceptance Criteria:
4
4
  ${d.criteria.map((e,t)=>`${t+1}. ${e}`).join("\n")}`:"",s=u.length>3e4?u.slice(0,3e4)+"\n\n... (diff truncated)":u,a=[o?.name?.trim()?`Reviewer: ${o.name.trim()}`:null,o?.voice?.trim()?`Voice: ${o.voice.trim()}`:null,o?.seed?.trim()?`Core orientation: ${o.seed.trim()}`:null].filter(Boolean),{type:"work",status:"pending",workType:"spike",title:`Quality gate review: ${d.title}`,description:["You are reviewing this change against the task objective.",a.length>0?`Preserve the reviewer's distinct perspective instead of flattening into generic review language.
5
- ${a.join("\n")}`:"Preserve your configured reviewer voice and perspective. Do not flatten into generic review language.","\n## Task Objective",d.objective,i,"\n## Code Changes (git diff)\n```diff",s,'```\n\nRespond with your decision:\n- If the changes satisfy the objective, mark this task as done with output: {"passed": true, "reasoning": "..."}\n- If the changes do NOT satisfy the objective, mark this task as failed with output: {"passed": false, "reasoning": "..."}\n\nBe pragmatic: if the changes clearly address the objective, pass it. Only fail if the changes are clearly incomplete, wrong, or unrelated.'].join("\n"),acceptanceCriteria:d.criteria,deps:[],attempts:0,maxAttempts:1,retryPolicy:{backoffMs:0,onExhaust:"fail"},stage:"review",planNodeKey:`${t}:llm-review`}),c=await n(l,e);if("success"===c.status){let e=c.output,t=e?.passed!==!1;return{check:"llm_review",passed:t,message:e?.reasoning??"Review completed by agent",details:e?{agentOutput:e}:void 0,required:!0,command:"daemon:llm_review",timeoutMs:12e4,timedOut:!1,exitCode:+!t}}return{check:"llm_review",passed:!1,message:"failure"===c.status?`Agent review failed: ${c.message??"unknown error"}`:`Agent review blocked: ${c.message??"unknown reason"}`,required:!0,command:"daemon:llm_review",timeoutMs:12e4,timedOut:!1,exitCode:1}}function A(e){return{check:"llm_review",passed:!0,message:e,required:!0,command:"daemon:llm_review",timeoutMs:0,timedOut:!1,exitCode:0}}var I=e.i(883643);let C={progress:{defaultChecks:[],humanRequirement:"never"},quality_gate:{defaultChecks:["tests_pass","lint_clean","coverage_threshold"],humanRequirement:"optional"},design_gate:{defaultChecks:["build_success","types_valid"],humanRequirement:"often"},handoff_gate:{defaultChecks:["tests_pass","lint_clean","coverage_threshold","build_success","types_valid"],humanRequirement:"always"},approval_gate:{defaultChecks:[],humanRequirement:"always"}};class x extends Error{constructor(e){super(e),this.name="GateVerificationError"}}function M(e,t){return{...e,verificationResult:t}}function O(e,t){return{eventType:"gate_verification",nodeId:e,timestamp:t.verifiedAt,result:t}}function b(e,t,n){let r=Math.max(0,e.verifyBudgetRemaining-1);return{policy:{...e,verifyBudgetRemaining:r},exhausted:0===r,event:{eventType:"budget_consumed",budgetType:"verify",remaining:r,timestamp:n,triggerNodeId:t}}}function F(e,t,n,r){return{passed:e,checks:n,verifiedAt:r,verifiedBy:t}}async function G(e){let{gateId:t}=e,n=e.now??new Date().toISOString(),r=e.depsSatisfied??!0,o=(a=e.gate,"pending"===a.status?(0,I.transitionGateNode)(a,{type:"START",depsSatisfied:r}):a),i={...e.policy},s=[];var a,d,u,l,c,p,f=o.status;if("passed"===f||"failed"===f||"skipped"===f)throw new x(`Cannot verify gate from terminal status '${f}'`);if("progress"===o.gateType&&"running"===o.status)return o=M((0,I.transitionGateNode)(o,{type:"AUTO_PASS",humanRequired:!1}),F(!0,"agent",[],n)),s.push(O(t,o.verificationResult)),{gate:o,policy:i,autoCheckResults:[],awaitingHuman:!1,escalated:!1,events:s};let g=[];if("running"===o.status){let r,a="progress"===(d=o).gateType||"approval_gate"===d.gateType?[]:d.verificationStrategy.checks&&d.verificationStrategy.checks.length>0?[...d.verificationStrategy.checks]:[...C[d.gateType].defaultChecks];if(!(g=await h(a,e)).every(e=>!e.required||e.passed)){let e,r;return u=o,l=i,c=g,e=M((0,I.transitionGateNode)(u,{type:"AUTO_FAIL"}),F(!1,"agent",c,n)),{gate:e,policy:(r=b(l,t,n)).policy,autoCheckResults:c,awaitingHuman:!1,escalated:r.exhausted,escalationReason:r.exhausted?"verify_budget_exhausted":void 0,events:[O(t,e.verificationResult),r.event]}}if("quality_gate"===o.gateType&&e.graph&&e.dispatchReview){let r=await N(e.graph,t,e.dispatchReview,e.cwd);if(g.push(r),!r.passed){let e=M((0,I.transitionGateNode)(o,{type:"AUTO_FAIL"}),F(!1,"agent",g,n));return s.push(O(t,e.verificationResult)),{gate:e,policy:i,autoCheckResults:g,awaitingHuman:!1,escalated:!1,events:s,llmReviewFailed:!0,llmReviewFeedback:r.message??"LLM review failed"}}}let f="never"!==(r=C[(p=o).gateType]).humanRequirement&&("always"===r.humanRequirement||("optional"===r.humanRequirement?"human"===p.verificationStrategy.type||"hybrid"===p.verificationStrategy.type:"auto"!==p.verificationStrategy.type));if(o=M(o=(0,I.transitionGateNode)(o,{type:"AUTO_PASS",humanRequired:f}),F(!0,"agent",g,n)),s.push(O(t,o.verificationResult)),!f)return{gate:o,policy:i,autoCheckResults:g,awaitingHuman:!1,escalated:!1,events:s}}if("awaiting_human"!==o.status)throw new x(`Unexpected gate status '${o.status}' after verification flow`);if(void 0===e.humanDecision)return{gate:o,policy:i,autoCheckResults:g,awaitingHuman:!0,escalated:!1,events:s};if("approve"===e.humanDecision)return o=M(o=(0,I.transitionGateNode)(o,{type:"HUMAN_APPROVE"}),F(!0,"human",o.verificationResult?.checks??g,n)),s.push(O(t,o.verificationResult)),{gate:o,policy:i,autoCheckResults:g,awaitingHuman:!1,escalated:!1,events:s};o=M(o=(0,I.transitionGateNode)(o,{type:"HUMAN_REJECT"}),F(!1,"human",o.verificationResult?.checks??g,n));let m=b(i,t,n);return i=m.policy,s.push(O(t,o.verificationResult)),s.push(m.event),{gate:o,policy:i,autoCheckResults:g,awaitingHuman:!1,escalated:m.exhausted,escalationReason:m.exhausted?"verify_budget_exhausted":void 0,events:s}}class j extends Error{timeoutMs;constructor(e){super(`Graph execution exceeded timeout (${e}ms).`),this.name="GraphExecutionTimeoutError",this.timeoutMs=e}}class q extends Error{nodeId;timeoutMs;constructor(e,t){super(`Node "${e}" execution exceeded timeout (${t}ms).`),this.name="NodeExecutionTimeoutError",this.nodeId=e,this.timeoutMs=t}}let U=async()=>void 0,P=(0,d.promisify)(a.execFile);function L(e){return e.nowMs?.()??Date.now()}function D(e){return new Date(L(e)).toISOString()}function H(e,t){return"gate"===t.type&&"number"==typeof t.verificationStrategy.timeout&&t.verificationStrategy.timeout>0?t.verificationStrategy.timeout:Math.max(1,e.policy.nodeTimeoutMs)}async function B(e,t){let n=Math.max(1,e.timeoutMs??t.policy.nodeTimeoutMs);try{let{stdout:t}=await P("bash",["-lc",e.command],{timeout:n,maxBuffer:65536,env:process.env,windowsHide:!0});return{status:"success",output:function(e,t){let n,r=e.trim();if(!r)throw Error(`Function node "${t}" produced empty stdout.`);try{n=JSON.parse(r)}catch(n){let e=n instanceof Error?n.message:String(n);throw Error(`Function node "${t}" stdout is not valid JSON: ${e}`)}if(!n||"object"!=typeof n||Array.isArray(n))throw Error(`Function node "${t}" stdout JSON must be an object.`);return n}(t,e.command)}}catch(e){return{status:"failure",message:function(e){if(e&&"object"==typeof e){if("ERR_CHILD_PROCESS_STDIO_MAXBUFFER"===e.code)return"Function stdout exceeded 65536 bytes.";if(e.killed&&e.signal)return`Function command timed out and was terminated (${e.signal}).`;let t=e.stderr?.trim();if(t)return t;if(e.message)return e.message}return"string"==typeof e?e:"Unknown function execution error."}(e),error:e}}}async function K(e,t,n){let r;try{return await Promise.race([e,new Promise((e,o)=>{r=setTimeout(()=>o(n()),t)})])}finally{r&&clearTimeout(r)}}function W(e,t){let n=e.metrics??{tokensUsed:0,latencyMs:0,retryCount:"work"===e.type?e.attempts:0};return{...e,metrics:{...n,errorMessages:[...n.errorMessages??[],t],retryCount:"work"===e.type?e.attempts:n.retryCount}}}function V(e,t,n,r){let o=e.metrics??{tokensUsed:0,latencyMs:0,retryCount:"work"===e.type?e.attempts:0},i="done"===e.status||"passed"===e.status||"failed"===e.status||"skipped"===e.status?D(n):e.completedAt;return{...e,completedAt:i,metrics:{...o,tokensUsed:o.tokensUsed+(r??0),latencyMs:Math.max(0,L(n)-t),retryCount:"work"===e.type?e.attempts:o.retryCount}}}async function J(e,t,n,r,o,i){let s=(0,I.transitionWorkNode)(n,{type:"FAIL",transient:i});if("pending"===s.status){let e=r.sleep??U;await e(Math.max(0,n.retryPolicy.backoffMs))}else"blocked"===s.status&&"escalate"===n.retryPolicy.onExhaust&&await r.onEscalateWorkFailure?.(s,o,e);return W(s,o.message)}async function Q(e,t,n,r){let o=n;"pending"===o.status&&(o=(0,I.transitionWorkNode)(o,{type:"START",depsSatisfied:!0})),o.startedAt||(o={...o,startedAt:D(r)});let i=L(r),s=H(e,o),a=!1;try{let n=r.dispatchWork??(async()=>({status:"success"})),d=await K(n(o,e),s,()=>new q(t,s));if("success"===d.status){let e=(0,I.transitionWorkNode)(o,{type:"COMPLETE"});return{node:V({...e,output:d.output??e.output},i,r,d.tokensUsed),timedOut:a}}if("blocked"===d.status){let e=(0,I.transitionWorkNode)(o,{type:"BLOCK"}),t=d.message?W(e,d.message):e;return{node:V(t,i,r),timedOut:a}}let u=Error(d.message??"Work node failed."),l=await J(e,t,o,r,u,d.transient??!0);return{node:V(l,i,r),timedOut:a}}catch(s){let n=s instanceof Error?s:Error("string"==typeof s?s:"Unknown work execution error");return a=n instanceof q,{node:V(await J(e,t,o,r,n,!0),i,r),timedOut:a}}}async function X(e,t,n){let r=e.nodes[t];if(!r||"gate"!==r.type)throw Error(`Node "${t}" is not a gate node.`);let o=L(n),i=H(e,r),s=!1,a=e,d=!1;try{let e=await K(G({gateId:t,gate:r,policy:a.policy,now:D(n),humanDecision:n.humanDecisionsByGateId?.[t],cwd:n.checkCwd,env:n.checkEnv,executor:n.checkExecutor,graph:a,dispatchReview:n.dispatchWork}),i,()=>new q(t,i)),u=V(e.gate,o,n);if(a.nodes[t]=u,a.policy=e.policy,e.llmReviewFailed){let r=e.llmReviewFeedback??"Quality gate review failed",o=n.makeReplanFromReviewFeedback??(async(e,t,n)=>{let r,o,i,s,a;return r=R(e),o=e.graphVersion,i=`fix-from-review-v${o}`,s=`quality-gate-v${o+1}`,a={type:"work",status:"pending",workType:"implementation",title:`Fix issues from quality review (v${o})`,description:["The quality gate review found issues with the current changes.\n\n## Review Feedback",n,"",r?`## Original Objective
5
+ ${a.join("\n")}`:"Preserve your configured reviewer voice and perspective. Do not flatten into generic review language.","\n## Task Objective",d.objective,i,"\n## Code Changes (git diff)\n```diff",s,'```\n\nRespond with your decision:\n- If the changes satisfy the objective, mark this task as done with output: {"passed": true, "reasoning": "..."}\n- If the changes do NOT satisfy the objective, mark this task as failed with output: {"passed": false, "reasoning": "..."}\n\nBe pragmatic: if the changes clearly address the objective, pass it. Only fail if the changes are clearly incomplete, wrong, or unrelated.'].join("\n"),acceptanceCriteria:d.criteria,deps:[],attempts:0,maxAttempts:1,retryPolicy:{backoffMs:0,onExhaust:"fail"},stage:"review",planNodeKey:`${t}:llm-review`}),c=await n(l,e);if("success"===c.status){let e=c.output,t=e?.passed!==!1;return{check:"llm_review",passed:t,message:e?.reasoning??"Review completed by agent",details:e?{agentOutput:e}:void 0,required:!0,command:"daemon:llm_review",timeoutMs:12e4,timedOut:!1,exitCode:+!t}}return{check:"llm_review",passed:!1,message:"failure"===c.status?`Agent review failed: ${c.message??"unknown error"}`:`Agent review blocked: ${c.message??"unknown reason"}`,required:!0,command:"daemon:llm_review",timeoutMs:12e4,timedOut:!1,exitCode:1}}function A(e){return{check:"llm_review",passed:!0,message:e,required:!0,command:"daemon:llm_review",timeoutMs:0,timedOut:!1,exitCode:0}}var I=e.i(883643);let C={progress:{defaultChecks:[],humanRequirement:"never"},quality_gate:{defaultChecks:["tests_pass","lint_clean","coverage_threshold"],humanRequirement:"optional"},design_gate:{defaultChecks:["build_success","types_valid"],humanRequirement:"often"},handoff_gate:{defaultChecks:["tests_pass","lint_clean","coverage_threshold","build_success","types_valid"],humanRequirement:"always"},approval_gate:{defaultChecks:[],humanRequirement:"always"}};class x extends Error{constructor(e){super(e),this.name="GateVerificationError"}}function M(e,t){return{...e,verificationResult:t}}function O(e,t){return{eventType:"gate_verification",nodeId:e,timestamp:t.verifiedAt,result:t}}function b(e,t,n){let r=Math.max(0,e.verifyBudgetRemaining-1);return{policy:{...e,verifyBudgetRemaining:r},exhausted:0===r,event:{eventType:"budget_consumed",budgetType:"verify",remaining:r,timestamp:n,triggerNodeId:t}}}function G(e,t,n,r){return{passed:e,checks:n,verifiedAt:r,verifiedBy:t}}async function F(e){let{gateId:t}=e,n=e.now??new Date().toISOString(),r=e.depsSatisfied??!0,o=(a=e.gate,"pending"===a.status?(0,I.transitionGateNode)(a,{type:"START",depsSatisfied:r}):a),i={...e.policy},s=[];var a,d,u,l,c,p,f=o.status;if("passed"===f||"failed"===f||"skipped"===f)throw new x(`Cannot verify gate from terminal status '${f}'`);if("progress"===o.gateType&&"running"===o.status)return o=M((0,I.transitionGateNode)(o,{type:"AUTO_PASS",humanRequired:!1}),G(!0,"agent",[],n)),s.push(O(t,o.verificationResult)),{gate:o,policy:i,autoCheckResults:[],awaitingHuman:!1,escalated:!1,events:s};let g=[];if("running"===o.status){let r,a="progress"===(d=o).gateType||"approval_gate"===d.gateType?[]:d.verificationStrategy.checks&&d.verificationStrategy.checks.length>0?[...d.verificationStrategy.checks]:[...C[d.gateType].defaultChecks];if(!(g=await h(a,e)).every(e=>!e.required||e.passed)){let e,r;return u=o,l=i,c=g,e=M((0,I.transitionGateNode)(u,{type:"AUTO_FAIL"}),G(!1,"agent",c,n)),{gate:e,policy:(r=b(l,t,n)).policy,autoCheckResults:c,awaitingHuman:!1,escalated:r.exhausted,escalationReason:r.exhausted?"verify_budget_exhausted":void 0,events:[O(t,e.verificationResult),r.event]}}if("quality_gate"===o.gateType&&e.graph&&e.dispatchReview){let r=await N(e.graph,t,e.dispatchReview,e.cwd);if(g.push(r),!r.passed){let e=M((0,I.transitionGateNode)(o,{type:"AUTO_FAIL"}),G(!1,"agent",g,n));return s.push(O(t,e.verificationResult)),{gate:e,policy:i,autoCheckResults:g,awaitingHuman:!1,escalated:!1,events:s,llmReviewFailed:!0,llmReviewFeedback:r.message??"LLM review failed"}}}let f="never"!==(r=C[(p=o).gateType]).humanRequirement&&("always"===r.humanRequirement||("optional"===r.humanRequirement?"human"===p.verificationStrategy.type||"hybrid"===p.verificationStrategy.type:"auto"!==p.verificationStrategy.type));if(o=M(o=(0,I.transitionGateNode)(o,{type:"AUTO_PASS",humanRequired:f}),G(!0,"agent",g,n)),s.push(O(t,o.verificationResult)),!f)return{gate:o,policy:i,autoCheckResults:g,awaitingHuman:!1,escalated:!1,events:s}}if("awaiting_human"!==o.status)throw new x(`Unexpected gate status '${o.status}' after verification flow`);if(void 0===e.humanDecision)return{gate:o,policy:i,autoCheckResults:g,awaitingHuman:!0,escalated:!1,events:s};if("approve"===e.humanDecision)return o=M(o=(0,I.transitionGateNode)(o,{type:"HUMAN_APPROVE"}),G(!0,"human",o.verificationResult?.checks??g,n)),s.push(O(t,o.verificationResult)),{gate:o,policy:i,autoCheckResults:g,awaitingHuman:!1,escalated:!1,events:s};o=M(o=(0,I.transitionGateNode)(o,{type:"HUMAN_REJECT"}),G(!1,"human",o.verificationResult?.checks??g,n));let m=b(i,t,n);return i=m.policy,s.push(O(t,o.verificationResult)),s.push(m.event),{gate:o,policy:i,autoCheckResults:g,awaitingHuman:!1,escalated:m.exhausted,escalationReason:m.exhausted?"verify_budget_exhausted":void 0,events:s}}class j extends Error{timeoutMs;constructor(e){super(`Graph execution exceeded timeout (${e}ms).`),this.name="GraphExecutionTimeoutError",this.timeoutMs=e}}class q extends Error{nodeId;timeoutMs;constructor(e,t){super(`Node "${e}" execution exceeded timeout (${t}ms).`),this.name="NodeExecutionTimeoutError",this.nodeId=e,this.timeoutMs=t}}let U=async()=>void 0,P=(0,d.promisify)(a.execFile);function L(e){return e.nowMs?.()??Date.now()}function D(e){return new Date(L(e)).toISOString()}function H(e,t){return"gate"===t.type&&"number"==typeof t.verificationStrategy.timeout&&t.verificationStrategy.timeout>0?t.verificationStrategy.timeout:Math.max(1,e.policy.nodeTimeoutMs)}async function B(e,t){let n=Math.max(1,e.timeoutMs??t.policy.nodeTimeoutMs);try{let{stdout:t}=await P("bash",["-lc",e.command],{timeout:n,maxBuffer:65536,env:process.env,windowsHide:!0});return{status:"success",output:function(e,t){let n,r=e.trim();if(!r)throw Error(`Function node "${t}" produced empty stdout.`);try{n=JSON.parse(r)}catch(n){let e=n instanceof Error?n.message:String(n);throw Error(`Function node "${t}" stdout is not valid JSON: ${e}`)}if(!n||"object"!=typeof n||Array.isArray(n))throw Error(`Function node "${t}" stdout JSON must be an object.`);return n}(t,e.command)}}catch(e){return{status:"failure",message:function(e){if(e&&"object"==typeof e){if("ERR_CHILD_PROCESS_STDIO_MAXBUFFER"===e.code)return"Function stdout exceeded 65536 bytes.";if(e.killed&&e.signal)return`Function command timed out and was terminated (${e.signal}).`;let t=e.stderr?.trim();if(t)return t;if(e.message)return e.message}return"string"==typeof e?e:"Unknown function execution error."}(e),error:e}}}async function K(e,t,n){let r;try{return await Promise.race([e,new Promise((e,o)=>{r=setTimeout(()=>o(n()),t)})])}finally{r&&clearTimeout(r)}}function W(e,t){let n=e.metrics??{tokensUsed:0,latencyMs:0,retryCount:"work"===e.type?e.attempts:0};return{...e,metrics:{...n,errorMessages:[...n.errorMessages??[],t],retryCount:"work"===e.type?e.attempts:n.retryCount}}}function V(e,t,n,r){let o=e.metrics??{tokensUsed:0,latencyMs:0,retryCount:"work"===e.type?e.attempts:0},i="done"===e.status||"passed"===e.status||"failed"===e.status||"skipped"===e.status?D(n):e.completedAt;return{...e,completedAt:i,metrics:{...o,tokensUsed:o.tokensUsed+(r??0),latencyMs:Math.max(0,L(n)-t),retryCount:"work"===e.type?e.attempts:o.retryCount}}}async function J(e,t,n,r,o,i){let s=(0,I.transitionWorkNode)(n,{type:"FAIL",transient:i});if("pending"===s.status){let e=r.sleep??U;await e(Math.max(0,n.retryPolicy.backoffMs))}else"blocked"===s.status&&"escalate"===n.retryPolicy.onExhaust&&await r.onEscalateWorkFailure?.(s,o,e);return W(s,o.message)}async function Q(e,t,n,r){let o=n;"pending"===o.status&&(o=(0,I.transitionWorkNode)(o,{type:"START",depsSatisfied:!0})),o.startedAt||(o={...o,startedAt:D(r)});let i=L(r),s=H(e,o),a=!1;try{let n=r.dispatchWork??(async()=>({status:"success"})),d=await K(n(o,e),s,()=>new q(t,s));if("success"===d.status){let e=(0,I.transitionWorkNode)(o,{type:"COMPLETE"});return{node:V({...e,output:d.output??e.output},i,r,d.tokensUsed),timedOut:a}}if("blocked"===d.status){let e=(0,I.transitionWorkNode)(o,{type:"BLOCK"}),t=d.message?W(e,d.message):e;return{node:V(t,i,r),timedOut:a}}let u=Error(d.message??"Work node failed."),l=await J(e,t,o,r,u,d.transient??!0);return{node:V(l,i,r),timedOut:a}}catch(s){let n=s instanceof Error?s:Error("string"==typeof s?s:"Unknown work execution error");return a=n instanceof q,{node:V(await J(e,t,o,r,n,!0),i,r),timedOut:a}}}async function X(e,t,n){let r=e.nodes[t];if(!r||"gate"!==r.type)throw Error(`Node "${t}" is not a gate node.`);let o=L(n),i=H(e,r),s=!1,a=e,d=!1;try{let e=await K(F({gateId:t,gate:r,policy:a.policy,now:D(n),humanDecision:n.humanDecisionsByGateId?.[t],cwd:n.checkCwd,env:n.checkEnv,executor:n.checkExecutor,graph:a,dispatchReview:n.dispatchWork}),i,()=>new q(t,i)),u=V(e.gate,o,n);if(a.nodes[t]=u,a.policy=e.policy,e.llmReviewFailed){let r=e.llmReviewFeedback??"Quality gate review failed",o=n.makeReplanFromReviewFeedback??(async(e,t,n)=>{let r,o,i,s,a;return r=R(e),o=e.graphVersion,i=`fix-from-review-v${o}`,s=`quality-gate-v${o+1}`,a={type:"work",status:"pending",workType:"implementation",title:`Fix issues from quality review (v${o})`,description:["The quality gate review found issues with the current changes.\n\n## Review Feedback",n,"",r?`## Original Objective
6
6
  ${r.objective}`:"","\nAddress the feedback above and fix the issues identified by the reviewer."].join("\n"),acceptanceCriteria:["Address all issues raised in the review feedback"],deps:[],attempts:0,maxAttempts:3,retryPolicy:{backoffMs:1e3,onExhaust:"fail"},stage:"fix"},{trigger:m.GATE_FAILURE,triggeredAtNodeId:t,reason:`Quality gate LLM review failed: ${n.slice(0,200)}`,triggeredBy:"agent",addNodes:{[i]:a,[s]:{type:"gate",status:"pending",gateType:"quality_gate",required:!0,verificationStrategy:{type:"auto",checks:[],timeout:3e5},deps:[i]}},addEdges:[{from:t,to:i,type:"hard",condition:"on_failure"}]}}),i=await o(a,t,r);i&&(a=(n.replan??$)(a,i),d=!0)}else if(e.escalated&&n.makeReplanRequest){let r=n.makeReplanRequest(a,t,e);r&&(a=(n.replan??$)(a,r),d=!0)}return{graph:a,node:a.nodes[t],events:e.events,replanApplied:d,timedOut:s}}catch(u){let e=u instanceof Error?u:Error("string"==typeof u?u:"Unknown gate execution error");s=e instanceof q;let i=r;"pending"===i.status&&(i=(0,I.transitionGateNode)(i,{type:"START",depsSatisfied:!0})),"running"===i.status?i=(0,I.transitionGateNode)(i,{type:"AUTO_FAIL"}):"awaiting_human"===i.status&&(i=(0,I.transitionGateNode)(i,{type:"HUMAN_REJECT"}));let d=W(i,e.message);return a.nodes[t]=V(d,o,n),{graph:a,node:a.nodes[t],events:[],replanApplied:!1,timedOut:s}}}async function Y(t,n,r,o){let i=r;"pending"===i.status&&(i=(0,I.transitionFunctionNode)(i,{type:"START",depsSatisfied:!0})),i.startedAt||(i={...i,startedAt:D(o)});let s=L(o),a=i.timeoutMs??t.policy.nodeTimeoutMs,d=!1;try{let r=o.dispatchFunction??(async(t,n)=>{if("bash"===t.kind)return B(t,n);let{createDispatchFunction:r}=await e.A(11400);return r()(t,n)}),u=await K(r(i,t),a,()=>new q(n,a));if("success"===u.status){let e=(0,I.transitionFunctionNode)(i,{type:"COMPLETE"});return{node:V({...e,output:u.output??e.output},s,o),timedOut:d}}let l=(0,I.transitionFunctionNode)(i,{type:"FAIL"}),c=u.message?W(l,u.message):l;return u.message?.toLowerCase().includes("timed out")&&(d=!0),{node:V(c,s,o),timedOut:d}}catch(t){let e=t instanceof Error?t:Error("string"==typeof t?t:"Unknown function execution error");return d=e instanceof q,{node:V(W((0,I.transitionFunctionNode)(i,{type:"FAIL"}),e.message),s,o),timedOut:d}}}async function z(e,t,n={}){!function(e,t){if(!e.policy.graphTimeoutMs)return;let n=function(e,t){if(void 0!==t.graphStartedAtMs)return t.graphStartedAtMs;let n=Date.parse(e.createdAt);return Number.isNaN(n)?L(t):n}(e,t);if(L(t)-n>e.policy.graphTimeoutMs)throw new j(e.policy.graphTimeoutMs)}(e,n);let r=structuredClone(e),o=r.nodes[t];if(!o)throw Error(`Unknown node "${t}".`);if("function"===o.type){let e=await Y(r,t,o,n);return r.nodes[t]=e.node,{graph:r,nodeId:t,node:r.nodes[t],events:[],replanApplied:!1,timedOut:e.timedOut}}if("work"===o.type){let e=await Q(r,t,o,n);return r.nodes[t]=e.node,{graph:r,nodeId:t,node:r.nodes[t],events:[],replanApplied:!1,timedOut:e.timedOut}}if("gate"===o.type){let e=await X(r,t,n);return{graph:e.graph,nodeId:t,node:e.graph.nodes[t],events:e.events,replanApplied:e.replanApplied,timedOut:e.timedOut}}if("fork"===o.type){let e=function(e,t){let n=e.nodes[t];if(!n||"fork"!==n.type)throw Error(`Node "${t}" is not a fork node.`);if("pending"!==n.status||!n.deps.every(n=>(0,s.isDepSatisfied)(e,n,t)))return n;let r=(0,I.transitionForkNode)(n,{type:"ACTIVATE",depsSatisfied:!0});return e.nodes[t]=r,r}(r,t);return{graph:r,nodeId:t,node:e,events:[],replanApplied:!1,timedOut:!1}}if("join"===o.type){let e=function(e,t){let n=e.nodes[t];if(!n||"join"!==n.type)throw Error(`Node "${t}" is not a join node.`);if("pending"!==n.status&&"running"!==n.status)return n;let r=n.deps.map(n=>({nodeId:n,status:e.nodes[n]?.status??"failed",edgeType:e.edges.find(e=>e.from===n&&e.to===t)?.type??"hard"})),o=(0,I.transitionJoinNode)(n,{type:"EVALUATE",dependencies:r});return e.nodes[t]=o,o}(r,t);return{graph:r,nodeId:t,node:e,events:[],replanApplied:!1,timedOut:!1}}let i=function(e,t,n){let r=e.nodes[t];if(!r||"conditional"!==r.type)throw Error(`Node "${t}" is not a conditional node.`);if("pending"!==r.status||!r.deps.every(n=>(0,s.isDepSatisfied)(e,n,t)))return r;let o=(0,I.transitionConditionalNode)(r,{type:"START",depsSatisfied:!0}).node;try{var i;let s=function(e,t,n){let r=e.nodes[t];if(!r||"conditional"!==r.type)return{graph:e,nodeId:t,ctx:{graph:e,nodeId:t}};let o=e.nodes[r.condition.inputFrom],i=o&&"output"in o?o.output??null:null;return{graph:e,nodeId:t,inputFrom:r.condition.inputFrom,input:i,ctx:{graph:e,nodeId:t,inputFrom:r.condition.inputFrom,input:i},...n[t]??{}}}(e,t,n.conditionContextByNodeId??{}),a=!!((i=s.input)&&"object"==typeof i&&!Array.isArray(i))&&(0,u.evaluateCondition)(r.condition.expression,s),d=(0,I.transitionConditionalNode)(o,{type:a?"CONDITION_TRUE":"CONDITION_FALSE"});for(let n of(e.nodes[t]=d.node,d.skippedBranchNodeIds)){let t=e.nodes[n];t&&"pending"===t.status&&("work"===t.type?e.nodes[n]=(0,I.transitionWorkNode)(t,{type:"SKIP"}):"function"===t.type?e.nodes[n]=(0,I.transitionFunctionNode)(t,{type:"SKIP"}):"gate"===t.type?e.nodes[n]=(0,I.transitionGateNode)(t,{type:"SKIP"}):"fork"===t.type?e.nodes[n]=(0,I.transitionForkNode)(t,{type:"SKIP"}):"join"===t.type?e.nodes[n]=(0,I.transitionJoinNode)(t,{type:"SKIP"}):"conditional"===t.type&&(e.nodes[n]=(0,I.transitionConditionalNode)(t,{type:"SKIP"}).node))}return d.node}catch(i){let n=(0,I.transitionConditionalNode)(o,{type:"CONDITION_ERROR"}).node,r=i instanceof Error?i:Error("string"==typeof i?i:"Condition evaluation failed.");return e.nodes[t]=W(n,r.message),e.nodes[t]}}(r,t,n);return{graph:r,nodeId:t,node:i,events:[],replanApplied:!1,timedOut:!1}}e.s(["executeNode",0,z],41434);var Z=e.i(951336);function ee(){let e=new Map,t=(0,n.getSQLiteDb)().prepare(`
7
7
  SELECT task_id, id, schedule
8
8
  FROM execution_graphs
9
9
  WHERE schedule IS NOT NULL
10
10
  AND json_extract(schedule, '$.state') = 'active'
11
- `).all(),i=new Map(t.map(e=>[e.id,e]));if((0,o.isAutomationFrontmatterEnabled)()){for(let t of(0,o.getAutomationRepository)().listVisibleAutomations({targetType:"execution_graph",state:"active"})){if("execution_graph"!==t.definition.target.type)continue;let n=t.definition.target.graphId??t.definition.id,o=t.definition.target.taskId??i.get(n)?.task_id??n;e.set(n,{taskId:o,graphId:n,schedule:(0,r.automationRecordToGraphSchedule)(t,i.get(n)?JSON.parse(i.get(n).schedule):void 0)})}if(!(0,o.isAutomationDualReadEnabled)())return[...e.values()]}for(let n of t)e.has(n.id)||e.set(n.id,{taskId:n.task_id,graphId:n.id,schedule:JSON.parse(n.schedule)});return[...e.values()]}async function et(e={}){let t=new Z.GraphStore,n={tickedGraphIds:[],skippedGraphIds:[],errors:[],pendingWork:[]},r=ee();for(let{taskId:o}of(console.log(`[schedules:poll] found ${r.length} active schedule(s)`),r))try{let r=t.getGraph(o);if(!r){n.errors.push({graphId:o,error:Error("Graph not found")});continue}let a=(0,i.scheduleTickIfDue)(r);if(!a.tickFired){console.log(`[schedules:poll] ${o} skipped (${a.skipReason??"unknown"})`),n.skippedGraphIds.push(o);continue}console.log(`[schedules:poll] ${o} tick fired — resetting nodes`),t.updateGraphStructure(a.graph.id,{nodes:a.graph.nodes,schedule:a.graph.schedule});let d=(0,s.schedulerTick)(a.graph,e);console.log(`[schedules:poll] ${o} scheduler: fn=${d.functionToRun.length} work=${d.workToRun.length}`);let u=d.graph;for(let t of d.functionToRun){let r=u.nodes[t];if(r&&"function"===r.type)try{console.log(`[schedules:poll] ${o} executing function node "${t}"`);let n=await z(u,t,e),r=n.graph.nodes[t];console.log(`[schedules:poll] ${o} function "${t}" → ${r?.status}`,r&&"output"in r?JSON.stringify(r.output)?.slice(0,200):""),u=n.graph}catch(e){console.error(`[schedules:poll] ${o} function "${t}" error:`,e),n.errors.push({graphId:o,error:e instanceof Error?e:Error(String(e))})}}t.updateGraphStructure(u.id,{nodes:u.nodes});let l=(0,s.schedulerTick)(u,e);for(let t of(console.log(`[schedules:poll] ${o} post-fn scheduler: cond=${l.control.conditionalNodeIds.length} work=${l.workToRun.length}`),u=l.graph,l.workToRun)){let r=u.nodes[t];if(r&&"work"===r.type)try{u=(await z(u,t,e)).graph}catch(e){n.errors.push({graphId:o,error:e instanceof Error?e:Error(String(e))})}}if(l.workToRun.length>0){n.pendingWork.push({taskId:o,nodeIds:l.workToRun,graph:u}),t.updateGraphStructure(u.id,{nodes:u.nodes});let r=(0,s.schedulerTick)(u,e);for(let t of(console.log(`[schedules:poll] ${o} post-work scheduler: fn=${r.functionToRun.length} cond=${r.control.conditionalNodeIds.length}`),u=r.graph,r.functionToRun)){let r=u.nodes[t];if(r&&"function"===r.type)try{console.log(`[schedules:poll] ${o} executing post-work function "${t}"`),u=(await z(u,t,e)).graph}catch(e){console.error(`[schedules:poll] ${o} post-work function "${t}" error:`,e),n.errors.push({graphId:o,error:e instanceof Error?e:Error(String(e))})}}}t.updateGraphStructure(u.id,{nodes:u.nodes});let c=Object.entries(u.nodes).map(([e,t])=>`${e}:${t.status}`).join(", ");console.log(`[schedules:poll] ${o} node states: ${c}`);let p=(0,i.isScheduleTickComplete)(u);if(console.log(`[schedules:poll] ${o} tick complete? ${p}`),p){let e=(0,i.completeScheduleTick)(u),n=e.schedule?.resetNodeIds.some(t=>e.nodes[t]?.status==="failed");if(e.schedule){let t=e.schedule.consecutiveFailures??0,r=n?t+1:0;e.schedule={...e.schedule,consecutiveFailures:r};let o=e.schedule.maxConsecutiveFailures;null!=o&&r>=o&&(e.schedule={...e.schedule,state:"paused"})}let r=t.getGraph(o);r?.schedule?.state==="stopped"&&(console.log(`[schedules:poll] ${o} schedule was stopped mid-tick, preserving stopped state`),e.schedule={...e.schedule,state:"stopped"}),t.updateGraphStructure(e.id,{nodes:e.nodes,schedule:e.schedule})}n.tickedGraphIds.push(o)}catch(e){console.error(`[schedules:poll] ${o} caught error:`,e),n.errors.push({graphId:o,error:e instanceof Error?e:Error(String(e))});try{let e=t.getGraph(o);if(e?.schedule?.tickInProgress){let n=(0,i.completeScheduleTick)(e);t.updateGraphStructure(n.id,{nodes:n.nodes,schedule:n.schedule}),console.log(`[schedules:poll] ${o} force-completed stuck tick`)}}catch{}}return n}async function en(e,t={}){let n=new Z.GraphStore,r=n.getGraph(e);if(!r)return{fired:!1,graph:null,error:Error("Graph not found")};if(!r.schedule)return{fired:!1,graph:r,error:Error("No schedule on graph")};let o=(0,i.scheduleTickIfDue)(r);if(!o.tickFired)return{fired:!1,graph:o.graph};n.updateGraphStructure(o.graph.id,{nodes:o.graph.nodes,schedule:o.graph.schedule});let a=o.graph,d=0;for(;;){d++;let e=Object.entries(a.nodes).map(([e,t])=>`${e}:${t.status}`).join(", ");console.log(`[schedules:tick] loop ${d} nodes before: ${e}`);let n=(0,s.schedulerTick)(a,t);for(let e of(console.log(`[schedules:tick] loop ${d} fn=${n.functionToRun.length} work=${n.workToRun.length} cond=${n.control.conditionalNodeIds.length}`),n.functionToRun)){let n=a.nodes[e];n&&"function"===n.type&&(a=(await z(a,e,t)).graph,console.log(`[schedules:tick] fn "${e}" → ${a.nodes[e]?.status}`))}for(let e of(n.control.conditionalNodeIds.length>0&&(a=n.graph,console.log(`[schedules:tick] applied conditional results: ${n.control.conditionalNodeIds.join(", ")}`)),n.workToRun))a=(await z(a,e,t)).graph;let r=Object.entries(a.nodes).map(([e,t])=>`${e}:${t.status}`).join(", ");if(console.log(`[schedules:tick] loop ${d} nodes after: ${r}`),(0,i.isScheduleTickComplete)(a)){console.log(`[schedules:tick] tick complete after loop ${d}`);break}if(n.complete||!(n.workToRun.length>0||n.functionToRun.length>0))break}let u=(0,i.completeScheduleTick)(a);return n.updateGraphStructure(u.id,{nodes:u.nodes,schedule:u.schedule}),{fired:!0,graph:u}}e.s(["executeScheduleTick",0,en,"getGraphsWithActiveSchedules",0,ee,"pollSchedules",0,et],94042)}];
11
+ `).all(),i=new Map(t.map(e=>[e.id,e]));if((0,o.isAutomationFrontmatterEnabled)()){for(let t of(0,o.getAutomationRepository)().listVisibleAutomations({targetType:"execution_graph",state:"active"})){if("execution_graph"!==t.definition.target.type)continue;let n=t.definition.target.graphId??t.definition.id,o=t.definition.target.taskId??i.get(n)?.task_id??n;e.set(n,{taskId:o,graphId:n,schedule:(0,r.automationRecordToGraphSchedule)(t,i.get(n)?JSON.parse(i.get(n).schedule):void 0)})}if(!(0,o.isAutomationDualReadEnabled)())return[...e.values()]}for(let n of t)e.has(n.id)||e.set(n.id,{taskId:n.task_id,graphId:n.id,schedule:JSON.parse(n.schedule)});return[...e.values()]}async function et(e={}){let t=new Z.GraphStore,n={tickedGraphIds:[],skippedGraphIds:[],errors:[],pendingWork:[]},r=ee();for(let{taskId:o}of(console.log(`[schedules:poll] found ${r.length} active schedule(s)`),r))try{let r=t.getGraph(o);if(!r){n.errors.push({graphId:o,error:Error("Graph not found")});continue}let a=(0,i.scheduleTickIfDue)(r);if(!a.tickFired){console.log(`[schedules:poll] ${o} skipped (${a.skipReason??"unknown"})`),n.skippedGraphIds.push(o);continue}console.log(`[schedules:poll] ${o} tick fired — resetting nodes`),t.updateGraphStructure(a.graph.id,{nodes:a.graph.nodes,schedule:a.graph.schedule});let d=(0,s.schedulerTick)(a.graph,e);console.log(`[schedules:poll] ${o} scheduler: fn=${d.functionToRun.length} work=${d.workToRun.length}`);let u=d.graph;for(let t of d.functionToRun){let r=u.nodes[t];if(r&&"function"===r.type)try{console.log(`[schedules:poll] ${o} executing function node "${t}"`);let n=await z(u,t,e),r=n.graph.nodes[t];console.log(`[schedules:poll] ${o} function "${t}" → ${r?.status}`,r&&"output"in r?JSON.stringify(r.output)?.slice(0,200):""),u=n.graph}catch(e){console.error(`[schedules:poll] ${o} function "${t}" error:`,e),n.errors.push({graphId:o,error:e instanceof Error?e:Error(String(e))})}}t.updateGraphStructure(u.id,{nodes:u.nodes});let l=(0,s.schedulerTick)(u,e);for(let t of(console.log(`[schedules:poll] ${o} post-fn scheduler: cond=${l.control.conditionalNodeIds.length} work=${l.workToRun.length}`),u=l.graph,l.workToRun)){let r=u.nodes[t];if(r&&"work"===r.type)try{u=(await z(u,t,e)).graph}catch(e){n.errors.push({graphId:o,error:e instanceof Error?e:Error(String(e))})}}if(l.workToRun.length>0){n.pendingWork.push({taskId:o,nodeIds:l.workToRun,graph:u}),t.updateGraphStructure(u.id,{nodes:u.nodes});let r=(0,s.schedulerTick)(u,e);for(let t of(console.log(`[schedules:poll] ${o} post-work scheduler: fn=${r.functionToRun.length} cond=${r.control.conditionalNodeIds.length}`),u=r.graph,r.functionToRun)){let r=u.nodes[t];if(r&&"function"===r.type)try{console.log(`[schedules:poll] ${o} executing post-work function "${t}"`),u=(await z(u,t,e)).graph}catch(e){console.error(`[schedules:poll] ${o} post-work function "${t}" error:`,e),n.errors.push({graphId:o,error:e instanceof Error?e:Error(String(e))})}}}t.updateGraphStructure(u.id,{nodes:u.nodes});let c=Object.entries(u.nodes).map(([e,t])=>`${e}:${t.status}`).join(", ");console.log(`[schedules:poll] ${o} node states: ${c}`);let p=(0,i.isScheduleTickComplete)(u);if(console.log(`[schedules:poll] ${o} tick complete? ${p}`),p){let e=(0,i.completeScheduleTick)(u),n=e.schedule?.resetNodeIds.some(t=>e.nodes[t]?.status==="failed");if(e.schedule){let t=e.schedule.consecutiveFailures??0,r=n?t+1:0;e.schedule={...e.schedule,consecutiveFailures:r};let o=e.schedule.maxConsecutiveFailures;null!=o&&r>=o&&(e.schedule={...e.schedule,state:"paused"})}let r=t.getGraph(o);r?.schedule?.state==="stopped"&&(console.log(`[schedules:poll] ${o} schedule was stopped mid-tick, preserving stopped state`),e.schedule={...e.schedule,state:"stopped"}),t.updateGraphStructure(e.id,{nodes:e.nodes,schedule:e.schedule})}n.tickedGraphIds.push(o)}catch(e){console.error(`[schedules:poll] ${o} caught error:`,e),n.errors.push({graphId:o,error:e instanceof Error?e:Error(String(e))});try{let e=t.getGraph(o);if(e?.schedule?.tickInProgress){let n=(0,i.completeScheduleTick)(e);t.updateGraphStructure(n.id,{nodes:n.nodes,schedule:n.schedule}),console.log(`[schedules:poll] ${o} force-completed stuck tick`)}}catch{}}return n}async function en(e,t={}){let n=new Z.GraphStore,r=n.getGraph(e);if(!r)return{fired:!1,graph:null,error:Error("Graph not found")};if(!r.schedule)return{fired:!1,graph:r,error:Error("No schedule on graph")};if(!n.claimScheduleTick(e))return{fired:!1,graph:r,error:Error("Tick already in progress")};let o=n.getGraph(e)??r,a=(0,i.scheduleTickIfDue)(o);if(!a.tickFired){let e=(0,i.completeScheduleTick)(o);return n.updateGraphStructure(e.id,{nodes:e.nodes,schedule:e.schedule}),{fired:!1,graph:a.graph}}n.updateGraphStructure(a.graph.id,{nodes:a.graph.nodes,schedule:a.graph.schedule});let d=a.graph,u=0;try{for(;;){u++;let e=Object.entries(d.nodes).map(([e,t])=>`${e}:${t.status}`).join(", ");console.log(`[schedules:tick] loop ${u} nodes before: ${e}`);let n=(0,s.schedulerTick)(d,t);for(let e of(console.log(`[schedules:tick] loop ${u} fn=${n.functionToRun.length} work=${n.workToRun.length} cond=${n.control.conditionalNodeIds.length}`),n.functionToRun)){let n=d.nodes[e];n&&"function"===n.type&&(d=(await z(d,e,t)).graph,console.log(`[schedules:tick] fn "${e}" → ${d.nodes[e]?.status}`))}for(let e of(n.control.conditionalNodeIds.length>0&&(d=n.graph,console.log(`[schedules:tick] applied conditional results: ${n.control.conditionalNodeIds.join(", ")}`)),n.workToRun))d=(await z(d,e,t)).graph;let r=Object.entries(d.nodes).map(([e,t])=>`${e}:${t.status}`).join(", ");if(console.log(`[schedules:tick] loop ${u} nodes after: ${r}`),(0,i.isScheduleTickComplete)(d)){console.log(`[schedules:tick] tick complete after loop ${u}`);break}if(n.complete||!(n.workToRun.length>0||n.functionToRun.length>0))break}let e=(0,i.completeScheduleTick)(d);return n.updateGraphStructure(e.id,{nodes:e.nodes,schedule:e.schedule}),{fired:!0,graph:e}}catch(t){let e=(0,i.completeScheduleTick)(d);throw n.updateGraphStructure(e.id,{nodes:e.nodes,schedule:e.schedule}),t}}e.s(["executeScheduleTick",0,en,"getGraphsWithActiveSchedules",0,ee,"pollSchedules",0,et],94042)}];
12
12
 
13
13
  //# sourceMappingURL=apps_local_src_graph_schedule-runner_ts_07-ozf_._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[87198,e=>{"use strict";var t=e.i(747909),i=e.i(174017),r=e.i(996250),n=e.i(759756),o=e.i(561916),a=e.i(174677),s=e.i(869741),l=e.i(316795),d=e.i(487718),c=e.i(995169),u=e.i(47587),p=e.i(666012),g=e.i(570101),v=e.i(626937),h=e.i(10372),f=e.i(193695);e.i(52474);var R=e.i(600220),m=e.i(846888),y=e.i(566453),A=e.i(779429),E=e.i(744071),w=e.i(391310),C=e.i(579582);async function S(){return Response.json(await (0,w.loadDbParticipants)())}function k(e){return"string"==typeof e&&e.trim()?e.trim():void 0}function b(e,t){let i,r=k(e.name),n=k(e.provider),o=k(e.model),a=k(e.id)??t;if(!a||!r||!n||!o)return null;let s=k(e.title),l=k(e.identity),d=k(e.identityFile),c=function(e){if(!Array.isArray(e))return;let t=e.map(e=>"string"==typeof e?{file:e.trim(),condition:""}:e&&"object"==typeof e&&"file"in e?{file:String(e.file??"").trim(),condition:String(e.condition??"").trim()}:null).filter(e=>null!==e&&e.file.length>0);return t.length>0?t:void 0}(e.skills),u=function(e){if(!Array.isArray(e))return;let t=e.map(e=>{if(!e||"object"!=typeof e||Array.isArray(e))return null;let t=String(e.repo??"").trim(),i=String(e.skillId??e.skill_id??"").trim();if(!t||!i)return null;let r=String(e.condition??"").trim();return{repo:t,skillId:i,...r?{condition:r}:{}}}).filter(e=>!!e);return t.length>0?t:void 0}(e.skillBindings),p=k(e.color)??"#6B7280";if(e.variables&&"object"==typeof e.variables&&!Array.isArray(e.variables)){let t=e.variables,r={};for(let[e,i]of Object.entries(t))"string"==typeof i&&(r[e]=i);Object.keys(r).length>0&&(i=r)}return{id:a,name:r,provider:n,model:o,color:p,...s?{title:s}:{},...l?{identity:l}:{},...k(e.voice)?{voice:k(e.voice)}:{},...k(e.seed)?{seed:k(e.seed)}:{},...d?{identityFile:d}:{},...c?{skills:c}:{},...u?{skillBindings:u}:{},...i?{variables:i}:{}}}async function j(e){let t,i=await e.json().catch(()=>({})),r=k(i.name),n=b(i,r?r.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").replace(/--+/g,"-"):void 0);if(!n)return Response.json({error:"name, provider, and model required"},{status:400});try{t=await (0,m.createAgent)(E.LOCAL_USER.id,{id:n.id,name:n.name,title:n.title,style:"balanced",description:n.identity,model:n.model??void 0,provider:n.provider,color:n.color,voice:k(i.voice),seed:k(i.seed)}),await (0,m.setAgentSkills)(t.id,n.skills??[]),await (0,y.setAgentSkillBindings)(t.id,n.skillBindings??[]),(0,C.ensureAgent)(t.id,{voice:k(i.voice),seed:k(i.seed)})}catch(e){return console.error("Failed to create agent in DB:",e),Response.json({error:"Failed to create agent"},{status:500})}let o={id:t.id,name:t.name,...t.title||n.title?{title:t.title||n.title}:{},provider:t.provider||n.provider||"claude",model:t.model||n.model||null,color:t.color||n.color||"#6B7280",...t.description||n.identity?{identity:t.description||n.identity}:{},...t.voice||n.voice?{voice:t.voice||n.voice}:{},...t.seed||n.seed?{seed:t.seed||n.seed}:{},...n.skills?.length?{skills:n.skills}:{},...n.skillBindings?.length?{skillBindings:n.skillBindings}:{}},a=k(i.projectId)??k(i.teamId);if(a)try{(0,A.getSQLiteDb)().prepare("INSERT OR IGNORE INTO project_agents (project_id, agent_id, routing_order) VALUES (?, ?, (SELECT COALESCE(MAX(routing_order), -1) + 1 FROM project_agents WHERE project_id = ?))").run(a,o.id,a)}catch(e){console.error("Failed to assign agent to project:",e)}return Response.json(o,{status:201})}async function T(e){let t,i=await e.json().catch(()=>({})),r=b(i);if(!r)return Response.json({error:"id, name, provider, and model required"},{status:400});try{t=await (0,m.updateAgent)(r.id,E.LOCAL_USER.id,{name:r.name,title:r.title,description:r.identity,model:r.model??void 0,provider:r.provider,color:r.color,voice:k(i.voice),seed:k(i.seed)}),await (0,m.setAgentSkills)(r.id,r.skills??[]),await (0,y.setAgentSkillBindings)(r.id,r.skillBindings??[]),(0,C.ensureAgent)(r.id,{voice:k(i.voice),seed:k(i.seed)})}catch(e){return console.error("Failed to update agent in DB:",e),Response.json({error:"Failed to update agent"},{status:500})}if(!t)return Response.json({error:"Agent not found"},{status:404});let n={id:t.id,name:t.name,...t.title||r.title?{title:t.title||r.title}:{},provider:t.provider||r.provider||"claude",model:t.model||r.model||null,color:t.color||r.color||"#6B7280",...t.description||r.identity?{identity:t.description||r.identity}:{},...t.voice||r.voice?{voice:t.voice||r.voice}:{},...t.seed||r.seed?{seed:t.seed||r.seed}:{},...r.skills?.length?{skills:r.skills}:{},...r.skillBindings?.length?{skillBindings:r.skillBindings}:{}};return Response.json(n)}async function _(e){let t=await e.json().catch(()=>({}));if(!Array.isArray(t.orderedIds)||t.orderedIds.some(e=>"string"!=typeof e))return Response.json({error:"orderedIds must be a string array"},{status:400});let i=await (0,w.loadDbParticipants)(),r=new Map(t.orderedIds.map((e,t)=>[e,t]));return i.sort((e,t)=>(r.get(e.id)??999)-(r.get(t.id)??999)),Response.json(i)}async function O(e){let{searchParams:t}=new URL(e.url),i=t.get("id");if(!i)return Response.json({error:"id required"},{status:400});try{await (0,m.deleteAgent)(i,E.LOCAL_USER.id)}catch(e){console.error("Failed to delete agent from DB:",e)}return Response.json({ok:!0})}e.s(["DELETE",0,O,"GET",0,S,"PATCH",0,T,"POST",0,j,"PUT",0,_,"dynamic",0,"force-dynamic","runtime",0,"nodejs"],674618);var x=e.i(674618);let P=new t.AppRouteRouteModule({definition:{kind:i.RouteKind.APP_ROUTE,page:"/api/participants/route",pathname:"/api/participants",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/local/app/api/participants/route.ts",nextConfigOutput:"standalone",userland:x,...{}}),{workAsyncStorage:N,workUnitAsyncStorage:I,serverHooks:B}=P;async function U(e,t,r){r.requestMeta&&(0,n.setRequestMeta)(e,r.requestMeta),P.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let m="/api/participants/route";m=m.replace(/\/index$/,"")||"/";let y=await P.prepare(e,t,{srcPage:m,multiZoneDraftMode:!1});if(!y)return t.statusCode=400,t.end("Bad Request"),null==r.waitUntil||r.waitUntil.call(r,Promise.resolve()),null;let{buildId:A,params:E,nextConfig:w,parsedUrl:C,isDraftMode:S,prerenderManifest:k,routerServerContext:b,isOnDemandRevalidate:j,revalidateOnlyGenerated:T,resolvedPathname:_,clientReferenceManifest:O,serverActionsManifest:x}=y,N=(0,s.normalizeAppPath)(m),I=!!(k.dynamicRoutes[N]||k.routes[_]),B=async()=>((null==b?void 0:b.render404)?await b.render404(e,t,C,!1):t.end("This page could not be found"),null);if(I&&!S){let e=!!k.routes[_],t=k.dynamicRoutes[N];if(t&&!1===t.fallback&&!e){if(w.adapterPath)return await B();throw new f.NoFallbackError}}let U=null;!I||P.isDev||S||(U="/index"===(U=_)?"/":U);let q=!0===P.isDev||!I,D=I&&!q;x&&O&&(0,a.setManifestsSingleton)({page:m,clientReferenceManifest:O,serverActionsManifest:x});let H=e.method||"GET",L=(0,o.getTracer)(),M=L.getActiveScopeSpan(),F=!!(null==b?void 0:b.isWrappedByNextServer),$=!!(0,n.getRequestMeta)(e,"minimalMode"),K=(0,n.getRequestMeta)(e,"incrementalCache")||await P.getIncrementalCache(e,w,k,$);null==K||K.resetRequestCache(),globalThis.__incrementalCache=K;let G={params:E,previewProps:k.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:q,incrementalCache:K,cacheLifeProfiles:w.cacheLife,waitUntil:r.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,i,r,n)=>P.onRequestError(e,t,r,n,b)},sharedContext:{buildId:A}},V=new l.NodeNextRequest(e),W=new l.NodeNextResponse(t),X=d.NextRequestAdapter.fromNodeNextRequest(V,(0,d.signalFromNodeResponse)(t));try{let n,a=async e=>P.handle(X,G).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let i=L.getRootSpanAttributes();if(!i)return;if(i.get("next.span_type")!==c.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${i.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let r=i.get("next.route");if(r){let t=`${H} ${r}`;e.setAttributes({"next.route":r,"http.route":r,"next.span_name":t}),e.updateName(t),n&&n!==e&&(n.setAttribute("http.route",r),n.updateName(t))}else e.updateName(`${H} ${m}`)}),s=async n=>{var o,s;let l=async({previousCacheEntry:i})=>{try{if(!$&&j&&T&&!i)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let o=await a(n);e.fetchMetrics=G.renderOpts.fetchMetrics;let s=G.renderOpts.pendingWaitUntil;s&&r.waitUntil&&(r.waitUntil(s),s=void 0);let l=G.renderOpts.collectedTags;if(!I)return await (0,p.sendResponse)(V,W,o,G.renderOpts.pendingWaitUntil),null;{let e=await o.blob(),t=(0,g.toNodeOutgoingHttpHeaders)(o.headers);l&&(t[h.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let i=void 0!==G.renderOpts.collectedRevalidate&&!(G.renderOpts.collectedRevalidate>=h.INFINITE_CACHE)&&G.renderOpts.collectedRevalidate,r=void 0===G.renderOpts.collectedExpire||G.renderOpts.collectedExpire>=h.INFINITE_CACHE?void 0:G.renderOpts.collectedExpire;return{value:{kind:R.CachedRouteKind.APP_ROUTE,status:o.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:i,expire:r}}}}catch(t){throw(null==i?void 0:i.isStale)&&await P.onRequestError(e,t,{routerKind:"App Router",routePath:m,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:j})},!1,b),t}},d=await P.handleResponse({req:e,nextConfig:w,cacheKey:U,routeKind:i.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:k,isRoutePPREnabled:!1,isOnDemandRevalidate:j,revalidateOnlyGenerated:T,responseGenerator:l,waitUntil:r.waitUntil,isMinimalMode:$});if(!I)return null;if((null==d||null==(o=d.value)?void 0:o.kind)!==R.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(s=d.value)?void 0:s.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});$||t.setHeader("x-nextjs-cache",j?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),S&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let c=(0,g.fromNodeOutgoingHttpHeaders)(d.value.headers);return $&&I||c.delete(h.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||c.get("Cache-Control")||c.set("Cache-Control",(0,v.getCacheControlHeader)(d.cacheControl)),await (0,p.sendResponse)(V,W,new Response(d.value.body,{headers:c,status:d.value.status||200})),null};F&&M?await s(M):(n=L.getActiveScopeSpan(),await L.withPropagatedContext(e.headers,()=>L.trace(c.BaseServerSpan.handleRequest,{spanName:`${H} ${m}`,kind:o.SpanKind.SERVER,attributes:{"http.method":H,"http.target":e.url}},s),void 0,!F))}catch(t){if(t instanceof f.NoFallbackError||await P.onRequestError(e,t,{routerKind:"App Router",routePath:N,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:j})},!1,b),I)throw t;return await (0,p.sendResponse)(V,W,new Response(null,{status:500})),null}}e.s(["handler",0,U,"patchFetch",0,function(){return(0,r.patchFetch)({workAsyncStorage:N,workUnitAsyncStorage:I})},"routeModule",0,P,"serverHooks",0,B,"workAsyncStorage",0,N,"workUnitAsyncStorage",0,I],87198)}];
1
+ module.exports=[87198,e=>{"use strict";var t=e.i(747909),r=e.i(174017),i=e.i(996250),n=e.i(759756),o=e.i(561916),a=e.i(174677),s=e.i(869741),l=e.i(316795),d=e.i(487718),c=e.i(995169),u=e.i(47587),p=e.i(666012),g=e.i(570101),v=e.i(626937),h=e.i(10372),f=e.i(193695);e.i(52474);var R=e.i(600220),m=e.i(846888),y=e.i(566453),A=e.i(779429),E=e.i(744071),w=e.i(391310),C=e.i(579582);async function S(){return Response.json(await (0,w.loadDbParticipants)())}function k(e){return"string"==typeof e&&e.trim()?e.trim():void 0}function b(e,t){let r,i=k(e.name),n=k(e.provider),o=k(e.model),a=k(e.id)??t;if(!a||!i||!n||!o)return null;let s=k(e.role),l=k(e.identity),d=k(e.identityFile),c=function(e){if(!Array.isArray(e))return;let t=e.map(e=>"string"==typeof e?{file:e.trim(),condition:""}:e&&"object"==typeof e&&"file"in e?{file:String(e.file??"").trim(),condition:String(e.condition??"").trim()}:null).filter(e=>null!==e&&e.file.length>0);return t.length>0?t:void 0}(e.skills),u=function(e){if(!Array.isArray(e))return;let t=e.map(e=>{if(!e||"object"!=typeof e||Array.isArray(e))return null;let t=String(e.repo??"").trim(),r=String(e.skillId??e.skill_id??"").trim();if(!t||!r)return null;let i=String(e.condition??"").trim();return{repo:t,skillId:r,...i?{condition:i}:{}}}).filter(e=>!!e);return t.length>0?t:void 0}(e.skillBindings),p=k(e.color)??"#6B7280";if(e.variables&&"object"==typeof e.variables&&!Array.isArray(e.variables)){let t=e.variables,i={};for(let[e,r]of Object.entries(t))"string"==typeof r&&(i[e]=r);Object.keys(i).length>0&&(r=i)}return{id:a,name:i,provider:n,model:o,color:p,...s?{role:s}:{},...l?{identity:l}:{},...k(e.voice)?{voice:k(e.voice)}:{},...k(e.seed)?{seed:k(e.seed)}:{},...d?{identityFile:d}:{},...c?{skills:c}:{},...u?{skillBindings:u}:{},...r?{variables:r}:{}}}async function j(e){let t,r=await e.json().catch(()=>({})),i=k(r.name),n=b(r,i?i.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").replace(/--+/g,"-"):void 0);if(!n)return Response.json({error:"name, provider, and model required"},{status:400});try{t=await (0,m.createAgent)(E.LOCAL_USER.id,{id:n.id,name:n.name,role:n.role,style:"balanced",description:n.identity,model:n.model??void 0,provider:n.provider,color:n.color,voice:k(r.voice),seed:k(r.seed)}),await (0,m.setAgentSkills)(t.id,n.skills??[]),await (0,y.setAgentSkillBindings)(t.id,n.skillBindings??[]),(0,C.ensureAgent)(t.id,{voice:k(r.voice),seed:k(r.seed)})}catch(e){return console.error("Failed to create agent in DB:",e),Response.json({error:"Failed to create agent"},{status:500})}let o={id:t.id,name:t.name,...t.role||n.role?{role:t.role||n.role}:{},provider:t.provider||n.provider||"claude",model:t.model||n.model||null,color:t.color||n.color||"#6B7280",...t.description||n.identity?{identity:t.description||n.identity}:{},...t.voice||n.voice?{voice:t.voice||n.voice}:{},...t.seed||n.seed?{seed:t.seed||n.seed}:{},...n.skills?.length?{skills:n.skills}:{},...n.skillBindings?.length?{skillBindings:n.skillBindings}:{}},a=k(r.projectId)??k(r.teamId);if(a)try{(0,A.getSQLiteDb)().prepare("INSERT OR IGNORE INTO project_agents (project_id, agent_id, routing_order) VALUES (?, ?, (SELECT COALESCE(MAX(routing_order), -1) + 1 FROM project_agents WHERE project_id = ?))").run(a,o.id,a)}catch(e){console.error("Failed to assign agent to project:",e)}return Response.json(o,{status:201})}async function T(e){let t,r=await e.json().catch(()=>({})),i=b(r);if(!i)return Response.json({error:"id, name, provider, and model required"},{status:400});try{t=await (0,m.updateAgent)(i.id,E.LOCAL_USER.id,{name:i.name,role:i.role,description:i.identity,model:i.model??void 0,provider:i.provider,color:i.color,voice:k(r.voice),seed:k(r.seed)}),await (0,m.setAgentSkills)(i.id,i.skills??[]),await (0,y.setAgentSkillBindings)(i.id,i.skillBindings??[]),(0,C.ensureAgent)(i.id,{voice:k(r.voice),seed:k(r.seed)})}catch(e){return console.error("Failed to update agent in DB:",e),Response.json({error:"Failed to update agent"},{status:500})}if(!t)return Response.json({error:"Agent not found"},{status:404});let n={id:t.id,name:t.name,...t.role||i.role?{role:t.role||i.role}:{},provider:t.provider||i.provider||"claude",model:t.model||i.model||null,color:t.color||i.color||"#6B7280",...t.description||i.identity?{identity:t.description||i.identity}:{},...t.voice||i.voice?{voice:t.voice||i.voice}:{},...t.seed||i.seed?{seed:t.seed||i.seed}:{},...i.skills?.length?{skills:i.skills}:{},...i.skillBindings?.length?{skillBindings:i.skillBindings}:{}};return Response.json(n)}async function _(e){let t=await e.json().catch(()=>({}));if(!Array.isArray(t.orderedIds)||t.orderedIds.some(e=>"string"!=typeof e))return Response.json({error:"orderedIds must be a string array"},{status:400});let r=await (0,w.loadDbParticipants)(),i=new Map(t.orderedIds.map((e,t)=>[e,t]));return r.sort((e,t)=>(i.get(e.id)??999)-(i.get(t.id)??999)),Response.json(r)}async function O(e){let{searchParams:t}=new URL(e.url),r=t.get("id");if(!r)return Response.json({error:"id required"},{status:400});try{await (0,m.deleteAgent)(r,E.LOCAL_USER.id)}catch(e){console.error("Failed to delete agent from DB:",e)}return Response.json({ok:!0})}e.s(["DELETE",0,O,"GET",0,S,"PATCH",0,T,"POST",0,j,"PUT",0,_,"dynamic",0,"force-dynamic","runtime",0,"nodejs"],674618);var x=e.i(674618);let P=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/participants/route",pathname:"/api/participants",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/local/app/api/participants/route.ts",nextConfigOutput:"standalone",userland:x,...{}}),{workAsyncStorage:N,workUnitAsyncStorage:I,serverHooks:B}=P;async function U(e,t,i){i.requestMeta&&(0,n.setRequestMeta)(e,i.requestMeta),P.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let m="/api/participants/route";m=m.replace(/\/index$/,"")||"/";let y=await P.prepare(e,t,{srcPage:m,multiZoneDraftMode:!1});if(!y)return t.statusCode=400,t.end("Bad Request"),null==i.waitUntil||i.waitUntil.call(i,Promise.resolve()),null;let{buildId:A,params:E,nextConfig:w,parsedUrl:C,isDraftMode:S,prerenderManifest:k,routerServerContext:b,isOnDemandRevalidate:j,revalidateOnlyGenerated:T,resolvedPathname:_,clientReferenceManifest:O,serverActionsManifest:x}=y,N=(0,s.normalizeAppPath)(m),I=!!(k.dynamicRoutes[N]||k.routes[_]),B=async()=>((null==b?void 0:b.render404)?await b.render404(e,t,C,!1):t.end("This page could not be found"),null);if(I&&!S){let e=!!k.routes[_],t=k.dynamicRoutes[N];if(t&&!1===t.fallback&&!e){if(w.adapterPath)return await B();throw new f.NoFallbackError}}let U=null;!I||P.isDev||S||(U="/index"===(U=_)?"/":U);let q=!0===P.isDev||!I,D=I&&!q;x&&O&&(0,a.setManifestsSingleton)({page:m,clientReferenceManifest:O,serverActionsManifest:x});let H=e.method||"GET",L=(0,o.getTracer)(),M=L.getActiveScopeSpan(),F=!!(null==b?void 0:b.isWrappedByNextServer),$=!!(0,n.getRequestMeta)(e,"minimalMode"),K=(0,n.getRequestMeta)(e,"incrementalCache")||await P.getIncrementalCache(e,w,k,$);null==K||K.resetRequestCache(),globalThis.__incrementalCache=K;let G={params:E,previewProps:k.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:q,incrementalCache:K,cacheLifeProfiles:w.cacheLife,waitUntil:i.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,i,n)=>P.onRequestError(e,t,i,n,b)},sharedContext:{buildId:A}},V=new l.NodeNextRequest(e),W=new l.NodeNextResponse(t),X=d.NextRequestAdapter.fromNodeNextRequest(V,(0,d.signalFromNodeResponse)(t));try{let n,a=async e=>P.handle(X,G).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=L.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==c.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let i=r.get("next.route");if(i){let t=`${H} ${i}`;e.setAttributes({"next.route":i,"http.route":i,"next.span_name":t}),e.updateName(t),n&&n!==e&&(n.setAttribute("http.route",i),n.updateName(t))}else e.updateName(`${H} ${m}`)}),s=async n=>{var o,s;let l=async({previousCacheEntry:r})=>{try{if(!$&&j&&T&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let o=await a(n);e.fetchMetrics=G.renderOpts.fetchMetrics;let s=G.renderOpts.pendingWaitUntil;s&&i.waitUntil&&(i.waitUntil(s),s=void 0);let l=G.renderOpts.collectedTags;if(!I)return await (0,p.sendResponse)(V,W,o,G.renderOpts.pendingWaitUntil),null;{let e=await o.blob(),t=(0,g.toNodeOutgoingHttpHeaders)(o.headers);l&&(t[h.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==G.renderOpts.collectedRevalidate&&!(G.renderOpts.collectedRevalidate>=h.INFINITE_CACHE)&&G.renderOpts.collectedRevalidate,i=void 0===G.renderOpts.collectedExpire||G.renderOpts.collectedExpire>=h.INFINITE_CACHE?void 0:G.renderOpts.collectedExpire;return{value:{kind:R.CachedRouteKind.APP_ROUTE,status:o.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:i}}}}catch(t){throw(null==r?void 0:r.isStale)&&await P.onRequestError(e,t,{routerKind:"App Router",routePath:m,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:j})},!1,b),t}},d=await P.handleResponse({req:e,nextConfig:w,cacheKey:U,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:k,isRoutePPREnabled:!1,isOnDemandRevalidate:j,revalidateOnlyGenerated:T,responseGenerator:l,waitUntil:i.waitUntil,isMinimalMode:$});if(!I)return null;if((null==d||null==(o=d.value)?void 0:o.kind)!==R.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(s=d.value)?void 0:s.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});$||t.setHeader("x-nextjs-cache",j?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),S&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let c=(0,g.fromNodeOutgoingHttpHeaders)(d.value.headers);return $&&I||c.delete(h.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||c.get("Cache-Control")||c.set("Cache-Control",(0,v.getCacheControlHeader)(d.cacheControl)),await (0,p.sendResponse)(V,W,new Response(d.value.body,{headers:c,status:d.value.status||200})),null};F&&M?await s(M):(n=L.getActiveScopeSpan(),await L.withPropagatedContext(e.headers,()=>L.trace(c.BaseServerSpan.handleRequest,{spanName:`${H} ${m}`,kind:o.SpanKind.SERVER,attributes:{"http.method":H,"http.target":e.url}},s),void 0,!F))}catch(t){if(t instanceof f.NoFallbackError||await P.onRequestError(e,t,{routerKind:"App Router",routePath:N,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:j})},!1,b),I)throw t;return await (0,p.sendResponse)(V,W,new Response(null,{status:500})),null}}e.s(["handler",0,U,"patchFetch",0,function(){return(0,i.patchFetch)({workAsyncStorage:N,workUnitAsyncStorage:I})},"routeModule",0,P,"serverHooks",0,B,"workAsyncStorage",0,N,"workUnitAsyncStorage",0,I],87198)}];
2
2
 
3
3
  //# sourceMappingURL=node_modules_next_dist_esm_build_templates_app-route_0_l0fpi.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[242525,e=>{"use strict";var t=e.i(747909),n=e.i(174017),i=e.i(996250),r=e.i(759756),a=e.i(561916),s=e.i(174677),o=e.i(869741),l=e.i(316795),d=e.i(487718),c=e.i(995169),u=e.i(47587),p=e.i(666012),g=e.i(570101),m=e.i(626937),f=e.i(10372),y=e.i(193695);e.i(52474);var h=e.i(600220),v=e.i(89171),b=e.i(846888);let k="obra/superpowers",w="vercel/next-skills";function R(e,t,n){return n?{repo:e,skillId:t,condition:n}:{repo:e,skillId:t}}function E(e){return e.condition?{...e}:{repo:e.repo,skillId:e.skillId}}function I(e){let t={...e};return t.extraSkills&&(t.extraSkills=t.extraSkills.map(E)),t}function x(e){return{...e,agents:e.agents.map(I)}}function P(e){let t={...e,agents:e.agents.map(I)};return t.variants&&(t.variants=t.variants.map(x)),t}let S={"strategist-lead":[R(k,"brainstorming"),R(k,"writing-plans"),R(k,"dispatching-parallel-agents"),R(k,"requesting-code-review"),R(k,"verification-before-completion")],"senior-builder":[R(k,"test-driven-development"),R(k,"systematic-debugging"),R(k,"subagent-driven-development"),R(k,"requesting-code-review"),R(k,"verification-before-completion"),R(k,"finishing-a-development-branch")],builder:[R(k,"test-driven-development"),R(k,"systematic-debugging"),R(k,"verification-before-completion"),R(k,"finishing-a-development-branch")],planner:[R(k,"brainstorming"),R(k,"writing-plans"),R(k,"verification-before-completion")],researcher:[R(k,"brainstorming"),R(k,"writing-plans"),R(k,"systematic-debugging"),R(k,"verification-before-completion")],reviewer:[R(k,"systematic-debugging"),R(k,"test-driven-development"),R(k,"requesting-code-review"),R(k,"verification-before-completion")]},A=["strategist-lead","senior-builder","builder","planner","researcher","reviewer"].map(e=>({id:e,skills:S[e].map(E)})),C=[R(w,"api-routes","next.js app router, route handlers, api endpoints"),R(w,"nextjs-patterns","next.js app structure, routing, layouts, data fetching"),R(w,"react-server-components","react server components, server client boundaries, next.js rendering")],T={"team-lead":{name:"Team Lead",title:"Team Lead",style:"balanced",skillProfileId:"strategist-lead",identity:"Own technical direction, break ambiguous work into executable plans, and keep the squad aligned on delivery."},"fullstack-engineer":{name:"Fullstack Engineer",title:"Senior Fullstack Engineer",style:"balanced",skillProfileId:"senior-builder",identity:"Ship features end-to-end across frontend and backend with pragmatic tradeoffs and clean boundaries.",extraSkills:C},"backend-engineer":{name:"Backend Engineer",title:"Senior Backend Engineer",style:"specialist",skillProfileId:"senior-builder",identity:"Own backend contracts, data integrity, and safe delivery under real production constraints."},"frontend-engineer":{name:"Frontend Engineer",title:"Senior Frontend Engineer",style:"balanced",skillProfileId:"senior-builder",identity:"Own product-facing UI quality, interaction design fidelity, and maintainable front-end architecture.",extraSkills:C},"data-engineer":{name:"Data Engineer",title:"Data Engineer",style:"specialist",skillProfileId:"senior-builder",identity:"Build reliable data pipelines, schemas, and transformations with a bias toward traceability."},"ml-engineer":{name:"ML Engineer",title:"ML Engineer",style:"specialist",skillProfileId:"senior-builder",identity:"Ship model-backed systems pragmatically, with evaluation, rollback paths, and tight production feedback."},"devops-engineer":{name:"DevOps Engineer",title:"DevOps Engineer",style:"specialist",skillProfileId:"senior-builder",identity:"Own delivery automation, deployment safety, and infrastructure changes that must fail predictably."},"security-engineer":{name:"Security Engineer",title:"Security Engineer",style:"conservative",skillProfileId:"senior-builder",identity:"Harden trust boundaries, implement secure defaults, and turn vague risk into concrete engineering requirements."},"ui-designer":{name:"UI Designer",title:"UI Designer",style:"specialist",skillProfileId:"builder",identity:"Refine interfaces into consistent, high-signal UI systems that are practical to build and maintain.",extraSkills:[R(w,"nextjs-patterns","next.js ui flows, routing, layouts, app router"),R(w,"react-server-components","react server components, server client boundaries, data fetching placement")]},"qa-engineer":{name:"QA Engineer",title:"QA Engineer",style:"conservative",skillProfileId:"reviewer",identity:"Find regressions early, tighten acceptance boundaries, and force evidence before release claims."},sre:{name:"SRE",title:"Site Reliability Engineer",style:"conservative",skillProfileId:"reviewer",identity:"Guard uptime, incident readiness, and operational correctness by challenging risky assumptions early."},"pen-tester":{name:"Pen Tester",title:"Penetration Tester",style:"specialist",skillProfileId:"reviewer",identity:"Probe the system as an adversary, find exploit paths, and make the attack surface legible to builders."},"product-manager":{name:"Product Manager",title:"Product Manager",style:"balanced",skillProfileId:"planner",identity:"Turn ambiguous requests into scoped bets, crisp plans, and explicit tradeoffs the team can execute."},"ux-designer":{name:"UX Designer",title:"UX Designer",style:"balanced",skillProfileId:"planner",identity:"Clarify user intent, reduce friction in flows, and turn product goals into coherent interaction design."},"technical-writer":{name:"Technical Writer",title:"Technical Writer",style:"balanced",skillProfileId:"planner",identity:"Turn complex implementation detail into clear docs, rollout notes, and operational guidance."},"growth-marketer":{name:"Growth Marketer",title:"Growth Marketer",style:"balanced",skillProfileId:"strategist-lead",identity:"Design growth experiments with clear hypotheses, sequencing, and measurable outcomes."},analyst:{name:"Analyst",title:"Product Analyst",style:"specialist",skillProfileId:"researcher",identity:"Ground decisions in evidence, identify gaps in the brief, and surface the signal behind user behavior."},"content-writer":{name:"Content Writer",title:"Content Strategist",style:"balanced",skillProfileId:"researcher",identity:"Translate product and audience insight into clear narratives, launch copy, and feedback loops."},researcher:{name:"Researcher",title:"Researcher",style:"balanced",skillProfileId:"researcher",identity:"Map fast-changing domains, synthesize evidence, and surface the governing model behind decisions."},"marketing-strategist":{name:"Marketing Strategist",title:"Marketing Strategist",style:"balanced",skillProfileId:"strategist-lead",identity:"Own brand positioning, campaign strategy, and channel mix with measurable conversion targets."},copywriter:{name:"Copywriter",title:"Copywriter",style:"balanced",skillProfileId:"researcher",identity:"Craft clear, persuasive copy that serves both the reader and the business goal."},"support-engineer":{name:"Support Engineer",title:"Support Engineer",style:"balanced",skillProfileId:"builder",identity:"Diagnose customer issues fast, escalate with precision, and turn patterns into preventive fixes."},"support-lead":{name:"Support Lead",title:"Support Lead",style:"balanced",skillProfileId:"planner",identity:"Triage incoming issues, route to the right responder, and track resolution quality."},"devrel-engineer":{name:"DevRel Engineer",title:"Developer Relations Engineer",style:"balanced",skillProfileId:"senior-builder",identity:"Build sample apps, integrations, and tooling that make the platform easy to adopt."},"community-manager":{name:"Community Manager",title:"Community Manager",style:"balanced",skillProfileId:"planner",identity:"Grow and engage the developer community through events, content, and feedback loops."},"ops-engineer":{name:"Ops Engineer",title:"Operations Engineer",style:"specialist",skillProfileId:"senior-builder",identity:"Automate operational workflows, reduce toil, and keep internal tooling reliable."},"project-manager":{name:"Project Manager",title:"Project Manager",style:"balanced",skillProfileId:"planner",identity:"Track milestones, remove blockers, and keep cross-team delivery on schedule."},"solutions-architect":{name:"Solutions Architect",title:"Solutions Architect",style:"balanced",skillProfileId:"strategist-lead",identity:"Design system-level architectures, evaluate tradeoffs, and guide teams through technical decisions."},"mobile-engineer":{name:"Mobile Engineer",title:"Senior Mobile Engineer",style:"balanced",skillProfileId:"senior-builder",identity:"Ship native and cross-platform mobile experiences with attention to performance and platform conventions."}},j=["team-lead","fullstack-engineer","backend-engineer","frontend-engineer","qa-engineer","product-manager","analyst","growth-marketer","content-writer","data-engineer","ml-engineer","ux-designer","ui-designer","devops-engineer","sre","security-engineer","pen-tester","researcher","technical-writer","marketing-strategist","copywriter","support-engineer","support-lead","devrel-engineer","community-manager","ops-engineer","project-manager","solutions-architect","mobile-engineer"].map(e=>I({id:e,...T[e]}));function q(e){return I({id:e,...T[e]})}let M=[{id:"engineering",name:"Engineering",description:"Software engineering teams across all domains — pick a specialization or build your own.",icon:"hammer",agents:[q("team-lead"),q("backend-engineer"),q("frontend-engineer"),q("fullstack-engineer"),q("qa-engineer")],variants:[{id:"general",name:"General",description:"Product engineering with leadership, builders across the stack, and quality gates.",agents:[q("team-lead"),q("backend-engineer"),q("frontend-engineer"),q("fullstack-engineer"),q("qa-engineer")]},{id:"ai",name:"AI",description:"Applied AI and ML engineering for models, evaluation, and production inference.",agents:[q("team-lead"),q("ml-engineer"),q("data-engineer"),q("researcher"),q("qa-engineer")]},{id:"data",name:"Data",description:"Data platform engineering for pipelines, warehousing, and transformation reliability.",agents:[q("team-lead"),q("data-engineer"),q("qa-engineer")]},{id:"mobile",name:"Mobile",description:"Native and cross-platform mobile engineering with fullstack support.",agents:[q("team-lead"),q("mobile-engineer"),q("fullstack-engineer"),q("qa-engineer")]},{id:"infra",name:"Infrastructure",description:"Platform reliability for delivery pipelines, runtime stability, and operational safety.",agents:[q("team-lead"),q("devops-engineer"),q("sre")]},{id:"security",name:"Security",description:"Security engineering for secure defaults, hardening, and adversarial validation.",agents:[q("team-lead"),q("security-engineer"),q("pen-tester")]},{id:"solutions",name:"Solutions",description:"Architecture and integration work across systems and customer deployments.",agents:[q("team-lead"),q("solutions-architect"),q("backend-engineer"),q("devops-engineer")]}]},{id:"product",name:"Product",description:"Discovery and prioritization for product direction, scope, and validation.",icon:"clipboard-list",agents:[q("team-lead"),q("product-manager"),q("analyst")]},{id:"design",name:"Design",description:"UX and UI pairing for flows, interaction models, and polished product surfaces.",icon:"palette",agents:[q("team-lead"),q("ux-designer"),q("ui-designer")]},{id:"growth",name:"Growth",description:"Experiment and content team for acquisition, activation, and learning loops.",icon:"megaphone",agents:[q("team-lead"),q("growth-marketer"),q("content-writer")]},{id:"research",name:"Research",description:"Research and synthesis pair for investigations, briefs, and decision support.",icon:"flask-conical",agents:[q("team-lead"),q("researcher"),q("technical-writer")]},{id:"marketing",name:"Marketing",description:"Brand strategy, campaign execution, and content production.",icon:"megaphone",agents:[q("team-lead"),q("marketing-strategist"),q("copywriter"),q("content-writer")]},{id:"support",name:"Support",description:"Customer-facing support with triage, diagnosis, and escalation.",icon:"life-buoy",agents:[q("team-lead"),q("support-lead"),q("support-engineer")]},{id:"devrel",name:"Developer Relations",description:"Developer advocacy through tooling, content, and community engagement.",icon:"users",agents:[q("team-lead"),q("devrel-engineer"),q("community-manager"),q("technical-writer")]},{id:"operations",name:"Operations",description:"Internal tooling, project delivery, and cross-team coordination.",icon:"settings",agents:[q("team-lead"),q("project-manager"),q("ops-engineer")]}].map(P),N=new Map(A.map(e=>[e.id,e])),O=new Map(j.map(e=>[e.id,e])),D=new Map(M.map(e=>[e.id,e]));function U(e){if(!e)return null;let t=O.get(e);return t?I(t):null}function _(e){if(!e)return null;let t=D.get(e);return t?P(t):null}var H=e.i(566453),B=e.i(744071);async function F(e,t){try{let{id:e}=await t.params,n=await (0,b.getTeams)(e),i=await Promise.all(n.map(async e=>({...e,agents:await (0,b.getTeamAgents)(e.id)})));return v.NextResponse.json({teams:i})}catch(e){return console.error("Error fetching teams:",e),v.NextResponse.json({error:"Failed to fetch teams"},{status:500})}}function L(e){return"string"==typeof e&&e.trim()?e.trim():void 0}async function $(e,t,n,i){var r;let a,s,{preset:o}=e,l=e.identity??o.identity,d=await (0,b.createAgent)(B.LOCAL_USER.id,{name:e.name??o.name,title:e.title??o.title,style:o.style,description:l,voice:l,provider:e.provider,model:e.model,color:e.color}),c=(!(s="string"==typeof(r=o)?U(r):r)?[]:[...(a=function(e){if(!e)return null;let t=N.get(e);return t?{id:t.id,skills:t.skills.map(E)}:null}(s.skillProfileId))?a.skills:[],...s.extraSkills?s.extraSkills.map(E):[]]).map(e=>({repo:e.repo,skillId:e.skillId,...e.condition?{condition:e.condition}:{}}));return await (0,b.setAgentSkills)(d.id,e.skills??[]),await (0,H.setAgentSkillBindings)(d.id,e.skillBindings??c),await (0,b.addTeamAgent)(n,d.id,o.id,i),await (0,b.addProjectAgent)(t,d.id,i),d}async function G(e,t){try{let{id:n}=await t.params,i=await e.json().catch(()=>({})),r="string"==typeof i.templateId?i.templateId.trim():void 0,a="string"==typeof i.variantId?i.variantId.trim():void 0,s="string"==typeof i.name?i.name.trim():void 0,o=function(e){if(!Array.isArray(e))return{};let t=[];for(let n of e){if("string"==typeof n){let e=U(n);if(!e)return{error:`Unknown preset: ${n}`};t.push({preset:e});continue}if(!n||"object"!=typeof n||Array.isArray(n))return{error:"agents must be an array of preset ids or agent objects"};let e=L(n.roleId)??L(n.presetId);if(!e)return{error:"Each agent must include roleId"};let i=U(e);if(!i)return{error:`Unknown preset: ${e}`};t.push({preset:i,name:L(n.name),title:L(n.title),identity:L(n.identity),provider:L(n.provider),model:L(n.model),color:L(n.color),skills:function(e){if(!Array.isArray(e))return;let t=e.map(e=>{if("string"==typeof e)return{file:e.trim(),condition:""};if(!e||"object"!=typeof e||Array.isArray(e))return null;let t=String(e.file??"").trim();return t?{file:t,condition:String(e.condition??"").trim()}:null}).filter(e=>!!e?.file);return t.length>0?t:void 0}(n.skills),skillBindings:function(e){if(!Array.isArray(e))return;let t=e.map(e=>{if(!e||"object"!=typeof e||Array.isArray(e))return null;let t=String(e.repo??"").trim(),n=String(e.skillId??e.skill_id??"").trim();if(!t||!n)return null;let i=String(e.condition??"").trim();return{repo:t,skillId:n,...i?{condition:i}:{}}}).filter(e=>!!e);return t.length>0?t:void 0}(n.skillBindings)})}return{agents:t}}(i.agents);if(o.error)return v.NextResponse.json({error:o.error},{status:400});if(r&&"__custom__"!==r){let e,t,i=_(r);if(!i)return v.NextResponse.json({error:`Unknown template: ${r}`},{status:400});let l={icon:i.icon,description:i.description};if(o.agents&&o.agents.length>0)e=o.agents,t=s||i.name;else if(a){let n=function(e,t){let n=_(e);if(!n?.variants)return null;let i=n.variants.find(e=>e.id===t);return i?x(i):null}(r,a);if(!n)return v.NextResponse.json({error:`Unknown variant: ${a}`},{status:400});e=n.agents.map(e=>({preset:e})),t=s||n.name,l.variantId=a,l.description=n.description}else e=i.agents.map(e=>({preset:e})),t=s||i.name;o.agents&&o.agents.length>0&&(a?l.variantId=a:l.variantId="custom");let d=await (0,b.createTeam)(n,t,r,l);for(let t=0;t<e.length;t++)await $(e[t],n,d.id,t);let c=await (0,b.getTeamAgents)(d.id);return v.NextResponse.json({team:{...d,agents:c}},{status:201})}if(!s)return v.NextResponse.json({error:"name is required"},{status:400});let l=await (0,b.createTeam)(n,s);if(o.agents&&o.agents.length>0)for(let e=0;e<o.agents.length;e++)await $(o.agents[e],n,l.id,e);let d=await (0,b.getTeamAgents)(l.id);return v.NextResponse.json({team:{...l,agents:d}},{status:201})}catch(e){return console.error("Error creating team:",e),v.NextResponse.json({error:"Failed to create team"},{status:500})}}e.s(["GET",0,F,"POST",0,G,"dynamic",0,"force-dynamic","runtime",0,"nodejs"],572461);var K=e.i(572461);let W=new t.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/projects/[id]/teams/route",pathname:"/api/projects/[id]/teams",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/local/app/api/projects/[id]/teams/route.ts",nextConfigOutput:"standalone",userland:K,...{}}),{workAsyncStorage:X,workUnitAsyncStorage:z,serverHooks:V}=W;async function Q(e,t,i){i.requestMeta&&(0,r.setRequestMeta)(e,i.requestMeta),W.isDev&&(0,r.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let v="/api/projects/[id]/teams/route";v=v.replace(/\/index$/,"")||"/";let b=await W.prepare(e,t,{srcPage:v,multiZoneDraftMode:!1});if(!b)return t.statusCode=400,t.end("Bad Request"),null==i.waitUntil||i.waitUntil.call(i,Promise.resolve()),null;let{buildId:k,params:w,nextConfig:R,parsedUrl:E,isDraftMode:I,prerenderManifest:x,routerServerContext:P,isOnDemandRevalidate:S,revalidateOnlyGenerated:A,resolvedPathname:C,clientReferenceManifest:T,serverActionsManifest:j}=b,q=(0,o.normalizeAppPath)(v),M=!!(x.dynamicRoutes[q]||x.routes[C]),N=async()=>((null==P?void 0:P.render404)?await P.render404(e,t,E,!1):t.end("This page could not be found"),null);if(M&&!I){let e=!!x.routes[C],t=x.dynamicRoutes[q];if(t&&!1===t.fallback&&!e){if(R.adapterPath)return await N();throw new y.NoFallbackError}}let O=null;!M||W.isDev||I||(O="/index"===(O=C)?"/":O);let D=!0===W.isDev||!M,U=M&&!D;j&&T&&(0,s.setManifestsSingleton)({page:v,clientReferenceManifest:T,serverActionsManifest:j});let _=e.method||"GET",H=(0,a.getTracer)(),B=H.getActiveScopeSpan(),F=!!(null==P?void 0:P.isWrappedByNextServer),L=!!(0,r.getRequestMeta)(e,"minimalMode"),$=(0,r.getRequestMeta)(e,"incrementalCache")||await W.getIncrementalCache(e,R,x,L);null==$||$.resetRequestCache(),globalThis.__incrementalCache=$;let G={params:w,previewProps:x.preview,renderOpts:{experimental:{authInterrupts:!!R.experimental.authInterrupts},cacheComponents:!!R.cacheComponents,supportsDynamicResponse:D,incrementalCache:$,cacheLifeProfiles:R.cacheLife,waitUntil:i.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,n,i,r)=>W.onRequestError(e,t,i,r,P)},sharedContext:{buildId:k}},K=new l.NodeNextRequest(e),X=new l.NodeNextResponse(t),z=d.NextRequestAdapter.fromNodeNextRequest(K,(0,d.signalFromNodeResponse)(t));try{let r,s=async e=>W.handle(z,G).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let n=H.getRootSpanAttributes();if(!n)return;if(n.get("next.span_type")!==c.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${n.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let i=n.get("next.route");if(i){let t=`${_} ${i}`;e.setAttributes({"next.route":i,"http.route":i,"next.span_name":t}),e.updateName(t),r&&r!==e&&(r.setAttribute("http.route",i),r.updateName(t))}else e.updateName(`${_} ${v}`)}),o=async r=>{var a,o;let l=async({previousCacheEntry:n})=>{try{if(!L&&S&&A&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await s(r);e.fetchMetrics=G.renderOpts.fetchMetrics;let o=G.renderOpts.pendingWaitUntil;o&&i.waitUntil&&(i.waitUntil(o),o=void 0);let l=G.renderOpts.collectedTags;if(!M)return await (0,p.sendResponse)(K,X,a,G.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,g.toNodeOutgoingHttpHeaders)(a.headers);l&&(t[f.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let n=void 0!==G.renderOpts.collectedRevalidate&&!(G.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&G.renderOpts.collectedRevalidate,i=void 0===G.renderOpts.collectedExpire||G.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:G.renderOpts.collectedExpire;return{value:{kind:h.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:n,expire:i}}}}catch(t){throw(null==n?void 0:n.isStale)&&await W.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:S})},!1,P),t}},d=await W.handleResponse({req:e,nextConfig:R,cacheKey:O,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:x,isRoutePPREnabled:!1,isOnDemandRevalidate:S,revalidateOnlyGenerated:A,responseGenerator:l,waitUntil:i.waitUntil,isMinimalMode:L});if(!M)return null;if((null==d||null==(a=d.value)?void 0:a.kind)!==h.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(o=d.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});L||t.setHeader("x-nextjs-cache",S?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),I&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let c=(0,g.fromNodeOutgoingHttpHeaders)(d.value.headers);return L&&M||c.delete(f.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||c.get("Cache-Control")||c.set("Cache-Control",(0,m.getCacheControlHeader)(d.cacheControl)),await (0,p.sendResponse)(K,X,new Response(d.value.body,{headers:c,status:d.value.status||200})),null};F&&B?await o(B):(r=H.getActiveScopeSpan(),await H.withPropagatedContext(e.headers,()=>H.trace(c.BaseServerSpan.handleRequest,{spanName:`${_} ${v}`,kind:a.SpanKind.SERVER,attributes:{"http.method":_,"http.target":e.url}},o),void 0,!F))}catch(t){if(t instanceof y.NoFallbackError||await W.onRequestError(e,t,{routerKind:"App Router",routePath:q,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:S})},!1,P),M)throw t;return await (0,p.sendResponse)(K,X,new Response(null,{status:500})),null}}e.s(["handler",0,Q,"patchFetch",0,function(){return(0,i.patchFetch)({workAsyncStorage:X,workUnitAsyncStorage:z})},"routeModule",0,W,"serverHooks",0,V,"workAsyncStorage",0,X,"workUnitAsyncStorage",0,z],242525)}];
1
+ module.exports=[242525,e=>{"use strict";var t=e.i(747909),n=e.i(174017),i=e.i(996250),r=e.i(759756),a=e.i(561916),s=e.i(174677),o=e.i(869741),l=e.i(316795),d=e.i(487718),c=e.i(995169),u=e.i(47587),p=e.i(666012),g=e.i(570101),m=e.i(626937),f=e.i(10372),y=e.i(193695);e.i(52474);var h=e.i(600220),v=e.i(89171),b=e.i(846888);let k="obra/superpowers",w="vercel/next-skills";function R(e,t,n){return n?{repo:e,skillId:t,condition:n}:{repo:e,skillId:t}}function x(e){return e.condition?{...e}:{repo:e.repo,skillId:e.skillId}}function I(e){let t={...e};return t.extraSkills&&(t.extraSkills=t.extraSkills.map(x)),t}function P(e){return{...e,agents:e.agents.map(I)}}function E(e){let t={...e,agents:e.agents.map(I)};return t.variants&&(t.variants=t.variants.map(P)),t}let A={"strategist-lead":[R(k,"brainstorming"),R(k,"writing-plans"),R(k,"dispatching-parallel-agents"),R(k,"requesting-code-review"),R(k,"verification-before-completion")],"senior-builder":[R(k,"test-driven-development"),R(k,"systematic-debugging"),R(k,"subagent-driven-development"),R(k,"requesting-code-review"),R(k,"verification-before-completion"),R(k,"finishing-a-development-branch")],builder:[R(k,"test-driven-development"),R(k,"systematic-debugging"),R(k,"verification-before-completion"),R(k,"finishing-a-development-branch")],planner:[R(k,"brainstorming"),R(k,"writing-plans"),R(k,"verification-before-completion")],researcher:[R(k,"brainstorming"),R(k,"writing-plans"),R(k,"systematic-debugging"),R(k,"verification-before-completion")],reviewer:[R(k,"systematic-debugging"),R(k,"test-driven-development"),R(k,"requesting-code-review"),R(k,"verification-before-completion")]},S=["strategist-lead","senior-builder","builder","planner","researcher","reviewer"].map(e=>({id:e,skills:A[e].map(x)})),C=[R(w,"api-routes","next.js app router, route handlers, api endpoints"),R(w,"nextjs-patterns","next.js app structure, routing, layouts, data fetching"),R(w,"react-server-components","react server components, server client boundaries, next.js rendering")],T={"team-lead":{name:"Ada",role:"Team Lead",style:"balanced",skillProfileId:"strategist-lead",identity:"Own technical direction, break ambiguous work into executable plans, and keep the squad aligned on delivery."},"fullstack-engineer":{name:"Kai",role:"Senior Fullstack Engineer",style:"balanced",skillProfileId:"senior-builder",identity:"Ship features end-to-end across frontend and backend with pragmatic tradeoffs and clean boundaries.",extraSkills:C},"backend-engineer":{name:"Ravi",role:"Senior Backend Engineer",style:"specialist",skillProfileId:"senior-builder",identity:"Own backend contracts, data integrity, and safe delivery under real production constraints."},"frontend-engineer":{name:"Mira",role:"Senior Frontend Engineer",style:"balanced",skillProfileId:"senior-builder",identity:"Own product-facing UI quality, interaction design fidelity, and maintainable front-end architecture.",extraSkills:C},"data-engineer":{name:"Nia",role:"Data Engineer",style:"specialist",skillProfileId:"senior-builder",identity:"Build reliable data pipelines, schemas, and transformations with a bias toward traceability."},"ml-engineer":{name:"Luca",role:"ML Engineer",style:"specialist",skillProfileId:"senior-builder",identity:"Ship model-backed systems pragmatically, with evaluation, rollback paths, and tight production feedback."},"devops-engineer":{name:"Juno",role:"DevOps Engineer",style:"specialist",skillProfileId:"senior-builder",identity:"Own delivery automation, deployment safety, and infrastructure changes that must fail predictably."},"security-engineer":{name:"Iris",role:"Security Engineer",style:"conservative",skillProfileId:"senior-builder",identity:"Harden trust boundaries, implement secure defaults, and turn vague risk into concrete engineering requirements."},"ui-designer":{name:"Theo",role:"UI Designer",style:"specialist",skillProfileId:"builder",identity:"Refine interfaces into consistent, high-signal UI systems that are practical to build and maintain.",extraSkills:[R(w,"nextjs-patterns","next.js ui flows, routing, layouts, app router"),R(w,"react-server-components","react server components, server client boundaries, data fetching placement")]},"qa-engineer":{name:"Sana",role:"QA Engineer",style:"conservative",skillProfileId:"reviewer",identity:"Find regressions early, tighten acceptance boundaries, and force evidence before release claims."},sre:{name:"Dax",role:"Site Reliability Engineer",style:"conservative",skillProfileId:"reviewer",identity:"Guard uptime, incident readiness, and operational correctness by challenging risky assumptions early."},"pen-tester":{name:"Vega",role:"Penetration Tester",style:"specialist",skillProfileId:"reviewer",identity:"Probe the system as an adversary, find exploit paths, and make the attack surface legible to builders."},"product-manager":{name:"Sage",role:"Product Manager",style:"balanced",skillProfileId:"planner",identity:"Turn ambiguous requests into scoped bets, crisp plans, and explicit tradeoffs the team can execute."},"ux-designer":{name:"Yara",role:"UX Designer",style:"balanced",skillProfileId:"planner",identity:"Clarify user intent, reduce friction in flows, and turn product goals into coherent interaction design."},"technical-writer":{name:"Orin",role:"Technical Writer",style:"balanced",skillProfileId:"planner",identity:"Turn complex implementation detail into clear docs, rollout notes, and operational guidance."},"growth-marketer":{name:"Zed",role:"Growth Marketer",style:"balanced",skillProfileId:"strategist-lead",identity:"Design growth experiments with clear hypotheses, sequencing, and measurable outcomes."},analyst:{name:"Piper",role:"Product Analyst",style:"specialist",skillProfileId:"researcher",identity:"Ground decisions in evidence, identify gaps in the brief, and surface the signal behind user behavior."},"content-writer":{name:"Wren",role:"Content Strategist",style:"balanced",skillProfileId:"researcher",identity:"Translate product and audience insight into clear narratives, launch copy, and feedback loops."},researcher:{name:"Ezra",role:"Researcher",style:"balanced",skillProfileId:"researcher",identity:"Map fast-changing domains, synthesize evidence, and surface the governing model behind decisions."},"marketing-strategist":{name:"Finn",role:"Marketing Strategist",style:"balanced",skillProfileId:"strategist-lead",identity:"Own brand positioning, campaign strategy, and channel mix with measurable conversion targets."},copywriter:{name:"Blair",role:"Copywriter",style:"balanced",skillProfileId:"researcher",identity:"Craft clear, persuasive copy that serves both the reader and the business goal."},"support-engineer":{name:"Gwen",role:"Support Engineer",style:"balanced",skillProfileId:"builder",identity:"Diagnose customer issues fast, escalate with precision, and turn patterns into preventive fixes."},"support-lead":{name:"Eli",role:"Support Lead",style:"balanced",skillProfileId:"planner",identity:"Triage incoming issues, route to the right responder, and track resolution quality."},"devrel-engineer":{name:"Milo",role:"Developer Relations Engineer",style:"balanced",skillProfileId:"senior-builder",identity:"Build sample apps, integrations, and tooling that make the platform easy to adopt."},"community-manager":{name:"Uma",role:"Community Manager",style:"balanced",skillProfileId:"planner",identity:"Grow and engage the developer community through events, content, and feedback loops."},"ops-engineer":{name:"Nate",role:"Operations Engineer",style:"specialist",skillProfileId:"senior-builder",identity:"Automate operational workflows, reduce toil, and keep internal tooling reliable."},"project-manager":{name:"Quinn",role:"Project Manager",style:"balanced",skillProfileId:"planner",identity:"Track milestones, remove blockers, and keep cross-team delivery on schedule."},"solutions-architect":{name:"Cass",role:"Solutions Architect",style:"balanced",skillProfileId:"strategist-lead",identity:"Design system-level architectures, evaluate tradeoffs, and guide teams through technical decisions."},"mobile-engineer":{name:"Rio",role:"Senior Mobile Engineer",style:"balanced",skillProfileId:"senior-builder",identity:"Ship native and cross-platform mobile experiences with attention to performance and platform conventions."}},j=["team-lead","fullstack-engineer","backend-engineer","frontend-engineer","qa-engineer","product-manager","analyst","growth-marketer","content-writer","data-engineer","ml-engineer","ux-designer","ui-designer","devops-engineer","sre","security-engineer","pen-tester","researcher","technical-writer","marketing-strategist","copywriter","support-engineer","support-lead","devrel-engineer","community-manager","ops-engineer","project-manager","solutions-architect","mobile-engineer"].map(e=>I({id:e,...T[e]}));function q(e){return I({id:e,...T[e]})}let N=[{id:"engineering",name:"Engineering",description:"Software engineering teams across all domains — pick a specialization or build your own.",icon:"hammer",agents:[q("team-lead"),q("backend-engineer"),q("frontend-engineer"),q("fullstack-engineer"),q("qa-engineer")],variants:[{id:"general",name:"General",description:"Product engineering with leadership, builders across the stack, and quality gates.",agents:[q("team-lead"),q("backend-engineer"),q("frontend-engineer"),q("fullstack-engineer"),q("qa-engineer")]},{id:"ai",name:"AI",description:"Applied AI and ML engineering for models, evaluation, and production inference.",agents:[q("team-lead"),q("ml-engineer"),q("data-engineer"),q("researcher"),q("qa-engineer")]},{id:"data",name:"Data",description:"Data platform engineering for pipelines, warehousing, and transformation reliability.",agents:[q("team-lead"),q("data-engineer"),q("qa-engineer")]},{id:"mobile",name:"Mobile",description:"Native and cross-platform mobile engineering with fullstack support.",agents:[q("team-lead"),q("mobile-engineer"),q("fullstack-engineer"),q("qa-engineer")]},{id:"infra",name:"Infrastructure",description:"Platform reliability for delivery pipelines, runtime stability, and operational safety.",agents:[q("team-lead"),q("devops-engineer"),q("sre")]},{id:"security",name:"Security",description:"Security engineering for secure defaults, hardening, and adversarial validation.",agents:[q("team-lead"),q("security-engineer"),q("pen-tester")]},{id:"solutions",name:"Solutions",description:"Architecture and integration work across systems and customer deployments.",agents:[q("team-lead"),q("solutions-architect"),q("backend-engineer"),q("devops-engineer")]}]},{id:"product",name:"Product",description:"Discovery and prioritization for product direction, scope, and validation.",icon:"clipboard-list",agents:[q("team-lead"),q("product-manager"),q("analyst")]},{id:"design",name:"Design",description:"UX and UI pairing for flows, interaction models, and polished product surfaces.",icon:"palette",agents:[q("team-lead"),q("ux-designer"),q("ui-designer")]},{id:"growth",name:"Growth",description:"Experiment and content team for acquisition, activation, and learning loops.",icon:"trending-up",agents:[q("team-lead"),q("growth-marketer"),q("content-writer")]},{id:"research",name:"Research",description:"Research and synthesis pair for investigations, briefs, and decision support.",icon:"flask-conical",agents:[q("team-lead"),q("researcher"),q("technical-writer")]},{id:"marketing",name:"Marketing",description:"Brand strategy, campaign execution, and content production.",icon:"megaphone",agents:[q("team-lead"),q("marketing-strategist"),q("copywriter"),q("content-writer")]},{id:"support",name:"Support",description:"Customer-facing support with triage, diagnosis, and escalation.",icon:"life-buoy",agents:[q("team-lead"),q("support-lead"),q("support-engineer")]},{id:"devrel",name:"Developer Relations",description:"Developer advocacy through tooling, content, and community engagement.",icon:"users",agents:[q("team-lead"),q("devrel-engineer"),q("community-manager"),q("technical-writer")]},{id:"operations",name:"Operations",description:"Internal tooling, project delivery, and cross-team coordination.",icon:"settings",agents:[q("team-lead"),q("project-manager"),q("ops-engineer")]}].map(E),O=new Map(S.map(e=>[e.id,e])),M=new Map(j.map(e=>[e.id,e])),D=new Map(N.map(e=>[e.id,e]));function U(e){if(!e)return null;let t=M.get(e);return t?I(t):null}function _(e){if(!e)return null;let t=D.get(e);return t?E(t):null}var H=e.i(566453),B=e.i(744071);async function F(e,t){try{let{id:e}=await t.params,n=await (0,b.getTeams)(e),i=await Promise.all(n.map(async e=>({...e,agents:await (0,b.getTeamAgents)(e.id)})));return v.NextResponse.json({teams:i})}catch(e){return console.error("Error fetching teams:",e),v.NextResponse.json({error:"Failed to fetch teams"},{status:500})}}function $(e){return"string"==typeof e&&e.trim()?e.trim():void 0}async function L(e,t,n,i){var r;let a,s,{preset:o}=e,l=e.identity??o.identity,d=await (0,b.createAgent)(B.LOCAL_USER.id,{name:e.name??o.name,role:e.role??o.role,style:o.style,description:l,voice:l,provider:e.provider,model:e.model,color:e.color}),c=(!(s="string"==typeof(r=o)?U(r):r)?[]:[...(a=function(e){if(!e)return null;let t=O.get(e);return t?{id:t.id,skills:t.skills.map(x)}:null}(s.skillProfileId))?a.skills:[],...s.extraSkills?s.extraSkills.map(x):[]]).map(e=>({repo:e.repo,skillId:e.skillId,...e.condition?{condition:e.condition}:{}}));return await (0,b.setAgentSkills)(d.id,e.skills??[]),await (0,H.setAgentSkillBindings)(d.id,e.skillBindings??c),await (0,b.addTeamAgent)(n,d.id,o.id,i),await (0,b.addProjectAgent)(t,d.id,i),d}async function G(e,t){try{let{id:n}=await t.params,i=await e.json().catch(()=>({})),r="string"==typeof i.templateId?i.templateId.trim():void 0,a="string"==typeof i.variantId?i.variantId.trim():void 0,s="string"==typeof i.name?i.name.trim():void 0,o=function(e){if(!Array.isArray(e))return{};let t=[];for(let n of e){if("string"==typeof n){let e=U(n);if(!e)return{error:`Unknown preset: ${n}`};t.push({preset:e});continue}if(!n||"object"!=typeof n||Array.isArray(n))return{error:"agents must be an array of preset ids or agent objects"};let e=$(n.roleId)??$(n.presetId);if(!e)return{error:"Each agent must include roleId"};let i=U(e);if(!i)return{error:`Unknown preset: ${e}`};t.push({preset:i,name:$(n.name),role:$(n.role),identity:$(n.identity),provider:$(n.provider),model:$(n.model),color:$(n.color),skills:function(e){if(!Array.isArray(e))return;let t=e.map(e=>{if("string"==typeof e)return{file:e.trim(),condition:""};if(!e||"object"!=typeof e||Array.isArray(e))return null;let t=String(e.file??"").trim();return t?{file:t,condition:String(e.condition??"").trim()}:null}).filter(e=>!!e?.file);return t.length>0?t:void 0}(n.skills),skillBindings:function(e){if(!Array.isArray(e))return;let t=e.map(e=>{if(!e||"object"!=typeof e||Array.isArray(e))return null;let t=String(e.repo??"").trim(),n=String(e.skillId??e.skill_id??"").trim();if(!t||!n)return null;let i=String(e.condition??"").trim();return{repo:t,skillId:n,...i?{condition:i}:{}}}).filter(e=>!!e);return t.length>0?t:void 0}(n.skillBindings)})}return{agents:t}}(i.agents);if(o.error)return v.NextResponse.json({error:o.error},{status:400});if(r&&"__custom__"!==r){let e,t,i=_(r);if(!i)return v.NextResponse.json({error:`Unknown template: ${r}`},{status:400});let l={icon:i.icon,description:i.description};if(o.agents&&o.agents.length>0)e=o.agents,t=s||i.name;else if(a){let n=function(e,t){let n=_(e);if(!n?.variants)return null;let i=n.variants.find(e=>e.id===t);return i?P(i):null}(r,a);if(!n)return v.NextResponse.json({error:`Unknown variant: ${a}`},{status:400});e=n.agents.map(e=>({preset:e})),t=s||n.name,l.variantId=a,l.description=n.description}else e=i.agents.map(e=>({preset:e})),t=s||i.name;o.agents&&o.agents.length>0&&(a?l.variantId=a:l.variantId="custom");let d=await (0,b.createTeam)(n,t,r,l);for(let t=0;t<e.length;t++)await L(e[t],n,d.id,t);let c=await (0,b.getTeamAgents)(d.id);return v.NextResponse.json({team:{...d,agents:c}},{status:201})}if(!s)return v.NextResponse.json({error:"name is required"},{status:400});let l=await (0,b.createTeam)(n,s);if(o.agents&&o.agents.length>0)for(let e=0;e<o.agents.length;e++)await L(o.agents[e],n,l.id,e);let d=await (0,b.getTeamAgents)(l.id);return v.NextResponse.json({team:{...l,agents:d}},{status:201})}catch(e){return console.error("Error creating team:",e),v.NextResponse.json({error:"Failed to create team"},{status:500})}}e.s(["GET",0,F,"POST",0,G,"dynamic",0,"force-dynamic","runtime",0,"nodejs"],572461);var K=e.i(572461);let z=new t.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/projects/[id]/teams/route",pathname:"/api/projects/[id]/teams",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/local/app/api/projects/[id]/teams/route.ts",nextConfigOutput:"standalone",userland:K,...{}}),{workAsyncStorage:W,workUnitAsyncStorage:X,serverHooks:V}=z;async function Q(e,t,i){i.requestMeta&&(0,r.setRequestMeta)(e,i.requestMeta),z.isDev&&(0,r.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let v="/api/projects/[id]/teams/route";v=v.replace(/\/index$/,"")||"/";let b=await z.prepare(e,t,{srcPage:v,multiZoneDraftMode:!1});if(!b)return t.statusCode=400,t.end("Bad Request"),null==i.waitUntil||i.waitUntil.call(i,Promise.resolve()),null;let{buildId:k,params:w,nextConfig:R,parsedUrl:x,isDraftMode:I,prerenderManifest:P,routerServerContext:E,isOnDemandRevalidate:A,revalidateOnlyGenerated:S,resolvedPathname:C,clientReferenceManifest:T,serverActionsManifest:j}=b,q=(0,o.normalizeAppPath)(v),N=!!(P.dynamicRoutes[q]||P.routes[C]),O=async()=>((null==E?void 0:E.render404)?await E.render404(e,t,x,!1):t.end("This page could not be found"),null);if(N&&!I){let e=!!P.routes[C],t=P.dynamicRoutes[q];if(t&&!1===t.fallback&&!e){if(R.adapterPath)return await O();throw new y.NoFallbackError}}let M=null;!N||z.isDev||I||(M="/index"===(M=C)?"/":M);let D=!0===z.isDev||!N,U=N&&!D;j&&T&&(0,s.setManifestsSingleton)({page:v,clientReferenceManifest:T,serverActionsManifest:j});let _=e.method||"GET",H=(0,a.getTracer)(),B=H.getActiveScopeSpan(),F=!!(null==E?void 0:E.isWrappedByNextServer),$=!!(0,r.getRequestMeta)(e,"minimalMode"),L=(0,r.getRequestMeta)(e,"incrementalCache")||await z.getIncrementalCache(e,R,P,$);null==L||L.resetRequestCache(),globalThis.__incrementalCache=L;let G={params:w,previewProps:P.preview,renderOpts:{experimental:{authInterrupts:!!R.experimental.authInterrupts},cacheComponents:!!R.cacheComponents,supportsDynamicResponse:D,incrementalCache:L,cacheLifeProfiles:R.cacheLife,waitUntil:i.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,n,i,r)=>z.onRequestError(e,t,i,r,E)},sharedContext:{buildId:k}},K=new l.NodeNextRequest(e),W=new l.NodeNextResponse(t),X=d.NextRequestAdapter.fromNodeNextRequest(K,(0,d.signalFromNodeResponse)(t));try{let r,s=async e=>z.handle(X,G).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let n=H.getRootSpanAttributes();if(!n)return;if(n.get("next.span_type")!==c.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${n.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let i=n.get("next.route");if(i){let t=`${_} ${i}`;e.setAttributes({"next.route":i,"http.route":i,"next.span_name":t}),e.updateName(t),r&&r!==e&&(r.setAttribute("http.route",i),r.updateName(t))}else e.updateName(`${_} ${v}`)}),o=async r=>{var a,o;let l=async({previousCacheEntry:n})=>{try{if(!$&&A&&S&&!n)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await s(r);e.fetchMetrics=G.renderOpts.fetchMetrics;let o=G.renderOpts.pendingWaitUntil;o&&i.waitUntil&&(i.waitUntil(o),o=void 0);let l=G.renderOpts.collectedTags;if(!N)return await (0,p.sendResponse)(K,W,a,G.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,g.toNodeOutgoingHttpHeaders)(a.headers);l&&(t[f.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let n=void 0!==G.renderOpts.collectedRevalidate&&!(G.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&G.renderOpts.collectedRevalidate,i=void 0===G.renderOpts.collectedExpire||G.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:G.renderOpts.collectedExpire;return{value:{kind:h.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:n,expire:i}}}}catch(t){throw(null==n?void 0:n.isStale)&&await z.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:A})},!1,E),t}},d=await z.handleResponse({req:e,nextConfig:R,cacheKey:M,routeKind:n.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:P,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:S,responseGenerator:l,waitUntil:i.waitUntil,isMinimalMode:$});if(!N)return null;if((null==d||null==(a=d.value)?void 0:a.kind)!==h.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(o=d.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});$||t.setHeader("x-nextjs-cache",A?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),I&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let c=(0,g.fromNodeOutgoingHttpHeaders)(d.value.headers);return $&&N||c.delete(f.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||c.get("Cache-Control")||c.set("Cache-Control",(0,m.getCacheControlHeader)(d.cacheControl)),await (0,p.sendResponse)(K,W,new Response(d.value.body,{headers:c,status:d.value.status||200})),null};F&&B?await o(B):(r=H.getActiveScopeSpan(),await H.withPropagatedContext(e.headers,()=>H.trace(c.BaseServerSpan.handleRequest,{spanName:`${_} ${v}`,kind:a.SpanKind.SERVER,attributes:{"http.method":_,"http.target":e.url}},o),void 0,!F))}catch(t){if(t instanceof y.NoFallbackError||await z.onRequestError(e,t,{routerKind:"App Router",routePath:q,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:A})},!1,E),N)throw t;return await (0,p.sendResponse)(K,W,new Response(null,{status:500})),null}}e.s(["handler",0,Q,"patchFetch",0,function(){return(0,i.patchFetch)({workAsyncStorage:W,workUnitAsyncStorage:X})},"routeModule",0,z,"serverHooks",0,V,"workAsyncStorage",0,W,"workUnitAsyncStorage",0,X],242525)}];
2
2
 
3
3
  //# sourceMappingURL=node_modules_next_dist_esm_build_templates_app-route_0gips_c.js.map
@@ -1,16 +1,20 @@
1
- module.exports=[818768,e=>{"use strict";var t=e.i(747909),r=e.i(174017),a=e.i(996250),n=e.i(759756),i=e.i(561916),o=e.i(174677),s=e.i(869741),l=e.i(316795),d=e.i(487718),u=e.i(995169),c=e.i(47587),p=e.i(666012),f=e.i(570101),h=e.i(626937),g=e.i(10372),m=e.i(193695);e.i(52474);var w=e.i(600220);function R(e){if(!Array.isArray(e))return[];let t=new Set,r=[];for(let a of e){if("string"!=typeof a)continue;let e=a.trim();!e||t.has(e)||(t.add(e),r.push(e))}return r}function y(e){if("string"==typeof e)return e.trim()||void 0}var I=e.i(735330),v=e.i(391310),A=e.i(601544),C=e.i(508763),E=e.i(779429),S=e.i(744071),P=e.i(951336),_=e.i(565248),b=e.i(848159),M=e.i(471206);let x="<!-- thread-summary -->",N=/@([A-Za-z0-9_-]+)/g;function j(e){return e.replace(/\s+/g," ").trim()}function T(e,t){return"user"===e.role?"User":e.participantId?t[e.participantId]?.name||e.participantId:"Assistant"}async function $(e){var t,r,a;let n,i,o,s,l,d,u=await e.json().catch(()=>({})),c="string"==typeof u.prompt?u.prompt.trim():"",p="string"==typeof u.threadId?u.threadId.trim():"",f="string"==typeof u.promptPrefix?u.promptPrefix:"",h=(0,I.normalizeProjectSlug)(u.projectSlug);if(!p)return(0,M.writeDebugLog)("chat.post.reject",{reason:"missing_thread_id",promptLength:c.length}),new Response(JSON.stringify({error:"threadId is required"}),{status:400,headers:{"Content-Type":"application/json"}});if(!c)return(0,M.writeDebugLog)("chat.post.reject",{reason:"missing_prompt",threadId:p}),new Response(JSON.stringify({error:"No prompt provided"}),{status:400,headers:{"Content-Type":"application/json"}});let g=await (0,v.loadDbParticipants)(),m=(i=y((n=(t=u.routing)&&"object"==typeof t&&!Array.isArray(t)?t:{}).pinnedParticipantId),o=new Set(R(n.mentionedParticipantIds)),s=R(n.parallelParticipantIds).filter(e=>(o.add(e),!0)),{...i?{pinnedParticipantId:i}:{},mentionedParticipantIds:Array.from(o),parallelParticipantIds:s}),w=Array.isArray(u.activeParticipantIds),$=(r=function(e){if(!Array.isArray(e))return[];let t=new Set,r=[];for(let a of e){if("string"!=typeof a)continue;let e=a.trim();!e||t.has(e)||(t.add(e),r.push(e))}return r}(u.activeParticipantIds),a=m.pinnedParticipantId,l=R(r),(d=y(a))&&l.includes(d)?[d,...l.filter(e=>e!==d)]:l),O=w?new Set($):null,L=null===O?g:g.filter(e=>O.has(e.id)),U=null!==O&&$.length>0&&0===L.length?g:L,{mentioned:D,parallel:q}=function(e,t){let r=new Set(e.mentioned),a=new Set(e.parallel);for(let e of t.mentionedParticipantIds)r.add(e);for(let e of t.parallelParticipantIds)r.add(e),a.add(e);return{mentioned:r,parallel:a}}(function(e,t,r){let a=new Set,n=new Set,i=e.toLowerCase(),o=i.includes("@@all");if(i.includes("@all")||o){for(let e of r??t)a.add(e.id),o&&n.add(e.id);return{mentioned:a,parallel:n}}let{projects:s,agentsByProject:l}=function(){try{let e=(0,E.getSQLiteDb)(),t=e.prepare("SELECT id, name, slug FROM projects").all(),r=e.prepare("SELECT * FROM project_agents ORDER BY routing_order ASC").all(),a={};for(let e of r)(a[e.project_id]??=[]).push(e);return{projects:t,agentsByProject:a}}catch{return{projects:[],agentsByProject:{}}}}();for(let e of s){let t=e.name.toLowerCase(),r=e.slug.toLowerCase(),o=i.includes(`@@${t}`)||i.includes(`@@${r}`),s=i.includes(`@${t}`)||i.includes(`@${r}`);if(o||s)for(let t of l[e.id]??[])a.add(t.agent_id),o&&n.add(t.agent_id)}for(let e of t){let t=e.id.toLowerCase(),r=e.name.toLowerCase(),o=i.includes(`@@${t}`)||i.includes(`@@${r}`),s=i.includes(`@${t}`)||i.includes(`@${r}`);(o||s)&&(a.add(e.id),o&&n.add(e.id))}return{mentioned:a,parallel:n}}(c,g,U),m),H=new Set(U.map(e=>e.id));for(let e of D)H.add(e);let k=m.mentionedParticipantIds.length>0?[...m.mentionedParticipantIds,...$.filter(e=>!m.mentionedParticipantIds.includes(e))]:$,F=g.filter(e=>H.has(e.id)),B=new Map(k.map((e,t)=>[e,t])),K=F.sort((e,t)=>(B.get(e.id)??Number.MAX_SAFE_INTEGER)-(B.get(t.id)??Number.MAX_SAFE_INTEGER));if(0===K.length)return(0,M.writeDebugLog)("chat.post.reject",{reason:"no_participants",threadId:p,requestedActiveIds:$,scopedProjectSlug:h}),new Response(JSON.stringify({error:"No active agents configured for this project"}),{status:400,headers:{"Content-Type":"application/json"}});let z=await (0,I.resolveProjectContext)(h,(0,I.findProjectMentionSlugs)(c),K),W=Date.now(),G=("string"==typeof u.userMessageId?u.userMessageId.trim():"")||crypto.randomUUID(),X="string"==typeof u.rootMessageId&&u.rootMessageId.trim()||null;await (0,A.sweepStaleWorkingReactions)(p);let Q=await (0,A.loadHistory)(p),J=Object.fromEntries(g.map(e=>[e.id,{name:e.name}])),V=Q.filter(e=>"user"===e.role&&!e.rootMessageId&&e.id!==(X||"")),Z=X?function(e,t,r){let a=Array.from(e.matchAll(N),e=>e[1].toLowerCase());if(0===a.length||0===r.length)return[];let n=function(e){let t=new Set(["all"]);for(let r of e)for(let e of(t.add(r.id.toLowerCase()),j(r.name).toLowerCase().split(/\s+/).filter(Boolean)))t.add(e);return t}(t),i=new Map;[...r].sort((e,t)=>t.timestamp-e.timestamp).forEach((e,t)=>{i.set(e.id.toLowerCase(),e.id),i.set(`chat${t+1}`,e.id);let r=function(e){let t=j(e).toLowerCase().replace(/[^a-z0-9\s_-]/g," ").trim();if(!t)return null;let r=t.split(/\s+/).filter(Boolean).slice(0,6);return 0===r.length?null:r.join("-")}(e.content);r&&!i.has(r)&&i.set(r,e.id)});let o=new Set;for(let e of a){if(n.has(e)||e.startsWith("project-"))continue;let t=i.get(e);t&&o.add(t)}return Array.from(o)}(c,g,V):[],Y=Q.filter(e=>e.id===X||e.rootMessageId===X),ee=[function(e,t){let r=[],a=0;for(let n=e.length-1;n>=0;n--){let i=e[n],o=`${T(i,t)}: ${i.content}`;if(a+o.length>2e5)break;r.unshift(o),a+=o.length}return 0===r.length?"":`Previous conversation (for background context only — do NOT re-discuss or repeat these topics unless the user brings them up again):
2
- ${r.join("\n")}`}(Y,J),function(e,t,r){if(0===r.length)return"";let a=[];for(let n of r){let r=e.find(e=>e.id===n);if(!r)continue;let i=e.filter(e=>e.id===n||e.rootMessageId===n).sort((e,t)=>e.timestamp-t.timestamp);if(0===i.length)continue;let o=i.map(e=>{let r=T(e,t),a=function(e){var t;return((t=e.content).startsWith(x)&&j(t.slice(x.length))||null)??e.content}(e);return`${r}: ${a}`});a.push(`Referenced chat (${r.id})
3
- Root: ${j(r.content)}
1
+ module.exports=[818768,e=>{"use strict";var t=e.i(747909),r=e.i(174017),a=e.i(996250),n=e.i(759756),i=e.i(561916),o=e.i(174677),s=e.i(869741),l=e.i(316795),d=e.i(487718),u=e.i(995169),c=e.i(47587),p=e.i(666012),f=e.i(570101),h=e.i(626937),g=e.i(10372),m=e.i(193695);e.i(52474);var w=e.i(600220);function R(e){if(!Array.isArray(e))return[];let t=new Set,r=[];for(let a of e){if("string"!=typeof a)continue;let e=a.trim();!e||t.has(e)||(t.add(e),r.push(e))}return r}function y(e){if("string"==typeof e)return e.trim()||void 0}var I=e.i(735330),v=e.i(391310),A=e.i(601544),C=e.i(508763),E=e.i(779429),S=e.i(744071),P=e.i(951336),_=e.i(565248),b=e.i(848159),M=e.i(471206);let $="<!-- thread-summary -->",x=/@([A-Za-z0-9_-]+)/g;function N(e){return e.replace(/\s+/g," ").trim()}function j(e,t){return"user"===e.role?"User":e.participantId?t[e.participantId]?.name||e.participantId:"Assistant"}async function T(e){var t,r,a;let n,i,o,s,l,d,u=await e.json().catch(()=>({})),c="string"==typeof u.prompt?u.prompt.trim():"",p="string"==typeof u.threadId?u.threadId.trim():"",f="string"==typeof u.promptPrefix?u.promptPrefix:"",h=(0,I.normalizeProjectSlug)(u.projectSlug);if(!p)return(0,M.writeDebugLog)("chat.post.reject",{reason:"missing_thread_id",promptLength:c.length}),new Response(JSON.stringify({error:"threadId is required"}),{status:400,headers:{"Content-Type":"application/json"}});if(!c)return(0,M.writeDebugLog)("chat.post.reject",{reason:"missing_prompt",threadId:p}),new Response(JSON.stringify({error:"No prompt provided"}),{status:400,headers:{"Content-Type":"application/json"}});let g=await (0,v.loadDbParticipants)(),m=(i=y((n=(t=u.routing)&&"object"==typeof t&&!Array.isArray(t)?t:{}).pinnedParticipantId),o=new Set(R(n.mentionedParticipantIds)),s=R(n.parallelParticipantIds).filter(e=>(o.add(e),!0)),{...i?{pinnedParticipantId:i}:{},mentionedParticipantIds:Array.from(o),parallelParticipantIds:s}),w=Array.isArray(u.activeParticipantIds),T=(r=function(e){if(!Array.isArray(e))return[];let t=new Set,r=[];for(let a of e){if("string"!=typeof a)continue;let e=a.trim();!e||t.has(e)||(t.add(e),r.push(e))}return r}(u.activeParticipantIds),a=m.pinnedParticipantId,l=R(r),(d=y(a))&&l.includes(d)?[d,...l.filter(e=>e!==d)]:l),O=w?new Set(T):null,L=null===O?g:g.filter(e=>O.has(e.id)),U=null!==O&&T.length>0&&0===L.length?g:L,{mentioned:D,parallel:q}=function(e,t){let r=new Set(e.mentioned),a=new Set(e.parallel);for(let e of t.mentionedParticipantIds)r.add(e);for(let e of t.parallelParticipantIds)r.add(e),a.add(e);return{mentioned:r,parallel:a}}(function(e,t,r){let a=new Set,n=new Set,i=e.toLowerCase(),o=i.includes("@@all");if(i.includes("@all")||o){for(let e of r??t)a.add(e.id),o&&n.add(e.id);return{mentioned:a,parallel:n}}let{projects:s,agentsByProject:l}=function(){try{let e=(0,E.getSQLiteDb)(),t=e.prepare("SELECT id, name, slug FROM projects").all(),r=e.prepare("SELECT * FROM project_agents ORDER BY routing_order ASC").all(),a={};for(let e of r)(a[e.project_id]??=[]).push(e);return{projects:t,agentsByProject:a}}catch{return{projects:[],agentsByProject:{}}}}();for(let e of s){let t=e.name.toLowerCase(),r=e.slug.toLowerCase(),o=i.includes(`@@${t}`)||i.includes(`@@${r}`),s=i.includes(`@${t}`)||i.includes(`@${r}`);if(o||s)for(let t of l[e.id]??[])a.add(t.agent_id),o&&n.add(t.agent_id)}for(let e of t){let t=e.id.toLowerCase(),r=e.name.toLowerCase(),o=i.includes(`@@${t}`)||i.includes(`@@${r}`),s=i.includes(`@${t}`)||i.includes(`@${r}`);(o||s)&&(a.add(e.id),o&&n.add(e.id))}return{mentioned:a,parallel:n}}(c,g,U),m),H=new Set(U.map(e=>e.id));for(let e of D)H.add(e);let k=m.mentionedParticipantIds.length>0?[...m.mentionedParticipantIds,...T.filter(e=>!m.mentionedParticipantIds.includes(e))]:T,F=g.filter(e=>H.has(e.id)),B=new Map(k.map((e,t)=>[e,t])),K=F.sort((e,t)=>(B.get(e.id)??Number.MAX_SAFE_INTEGER)-(B.get(t.id)??Number.MAX_SAFE_INTEGER));if(0===K.length)return(0,M.writeDebugLog)("chat.post.reject",{reason:"no_participants",threadId:p,requestedActiveIds:T,scopedProjectSlug:h}),new Response(JSON.stringify({error:"No active agents configured for this project"}),{status:400,headers:{"Content-Type":"application/json"}});let W=await (0,I.resolveProjectContext)(h,(0,I.findProjectMentionSlugs)(c),K),z=Date.now(),G=("string"==typeof u.userMessageId?u.userMessageId.trim():"")||crypto.randomUUID(),X="string"==typeof u.rootMessageId&&u.rootMessageId.trim()||null;await (0,A.sweepStaleWorkingReactions)(p);let Q=await (0,A.loadHistory)(p),V=Object.fromEntries(g.map(e=>[e.id,{name:e.name}])),J=Q.filter(e=>"user"===e.role&&!e.rootMessageId&&e.id!==(X||"")),Z=X?function(e,t,r){let a=Array.from(e.matchAll(x),e=>e[1].toLowerCase());if(0===a.length||0===r.length)return[];let n=function(e){let t=new Set(["all"]);for(let r of e)for(let e of(t.add(r.id.toLowerCase()),N(r.name).toLowerCase().split(/\s+/).filter(Boolean)))t.add(e);return t}(t),i=new Map;[...r].sort((e,t)=>t.timestamp-e.timestamp).forEach((e,t)=>{i.set(e.id.toLowerCase(),e.id),i.set(`chat${t+1}`,e.id);let r=function(e){let t=N(e).toLowerCase().replace(/[^a-z0-9\s_-]/g," ").trim();if(!t)return null;let r=t.split(/\s+/).filter(Boolean).slice(0,6);return 0===r.length?null:r.join("-")}(e.content);r&&!i.has(r)&&i.set(r,e.id)});let o=new Set;for(let e of a){if(n.has(e)||e.startsWith("project-"))continue;let t=i.get(e);t&&o.add(t)}return Array.from(o)}(c,g,J):[],Y=Q.filter(e=>e.id===X||e.rootMessageId===X),ee=[function(e,t){let r=[],a=0;for(let n=e.length-1;n>=0;n--){let i=e[n],o=`${j(i,t)}: ${i.content}`;if(a+o.length>2e5)break;r.unshift(o),a+=o.length}return 0===r.length?"":`Previous conversation (for background context only — do NOT re-discuss or repeat these topics unless the user brings them up again):
2
+ ${r.join("\n")}`}(Y,V),function(e,t,r){if(0===r.length)return"";let a=[];for(let n of r){let r=e.find(e=>e.id===n);if(!r)continue;let i=e.filter(e=>e.id===n||e.rootMessageId===n).sort((e,t)=>e.timestamp-t.timestamp);if(0===i.length)continue;let o=i.map(e=>{let r=j(e,t),a=function(e){var t;return((t=e.content).startsWith($)&&N(t.slice($.length))||null)??e.content}(e);return`${r}: ${a}`});a.push(`Referenced chat (${r.id})
3
+ Root: ${N(r.content)}
4
4
  ${o.join("\n")}`)}return 0===a.length?"":`Referenced chats (only because the user explicitly @mentioned them):
5
5
 
6
- ${a.join("\n\n---\n\n")}`}(Q,J,Z)].filter(Boolean).join("\n\n---\n\n"),et="agent"===u.role?"assistant":"user",er="assistant"===et&&"string"==typeof u.agent&&u.agent.trim()||null,ea="assistant"===et?er?g.find(e=>e.id===er||e.name.toLowerCase()===er.toLowerCase())?.id??er:K[0]?.id??null:null;if(await (0,A.saveMessages)(p,[{id:G,role:et,participantId:ea,content:c,timestamp:W,rootMessageId:X,parentMessageId:X,depth:+!!X}]),X&&"user"===et)try{(0,P.deactivateSchedulesByRootMessageId)(X)}catch(e){console.warn("Failed to deactivate autonomous schedule on user composer message",{rootMessageId:X,error:e})}let en=Array.isArray(u.attachmentIds)?u.attachmentIds.filter(e=>"string"==typeof e):[],ei="";if(en.length>0){let e=await (0,C.finalizeAttachments)(G,en);if(e.length>0){let t=e.map(e=>`- ${e.filename} (${e.mimeType}, ${e.size} bytes): ${e.diskPath}`);ei=`
6
+ ${a.join("\n\n---\n\n")}`}(Q,V,Z)].filter(Boolean).join("\n\n---\n\n"),et="agent"===u.role?"assistant":"user",er="assistant"===et&&"string"==typeof u.agent&&u.agent.trim()||null,ea="assistant"===et?er?g.find(e=>e.id===er||e.name.toLowerCase()===er.toLowerCase())?.id??er:K[0]?.id??null:null;if(await (0,A.saveMessages)(p,[{id:G,role:et,participantId:ea,content:c,timestamp:z,rootMessageId:X,parentMessageId:X,depth:+!!X}]),X&&"user"===et)try{(0,P.deactivateSchedulesByRootMessageId)(X)}catch(e){console.warn("Failed to deactivate autonomous schedule on user composer message",{rootMessageId:X,error:e})}let en=Array.isArray(u.attachmentIds)?u.attachmentIds.filter(e=>"string"==typeof e):[],ei="";if(en.length>0){let e=await (0,C.finalizeAttachments)(G,en);if(e.length>0){let t=e.filter(e=>e.mimeType.startsWith("image/")),r=e.map(e=>`- ${e.filename} (${e.mimeType}, ${e.size} bytes): ${e.diskPath}`);if(t.length>0){let e=1===t.length?"an image":`${t.length} images`;ei=`
7
+
8
+ [The user pasted ${e}. View ${1===t.length?"it":"them"} with the Read tool before responding.]
9
+ ${r.join("\n")}
10
+ `}else ei=`
7
11
 
8
12
  [Attached files]
9
- ${t.join("\n")}
13
+ ${r.join("\n")}
10
14
  `}}let eo=X||G,es=Math.min(Math.max(Number(u.maxRounds)||10,1),50),el=f?f+c:c,ed=ee?`${ee}
11
15
 
12
16
  ---
13
17
  Current user message:
14
- ${el}${ei}`:`${el}${ei}`,eu=Y.slice(-20).map(e=>({id:e.id,name:"user"===e.role?"User":e.participantId?J[e.participantId]?.name||e.participantId:"Assistant",content:e.content})),ec=crypto.randomUUID(),ep={threadId:p,prompt:ed,projectContext:z,mentionedIds:Array.from(D),initialParallelIds:Array.from(q),maxRounds:es,recentHistory:eu,currentUserMessageId:G,rootMessageId:eo,participantIds:K.map(e=>e.id)};(0,M.writeDebugLog)("chat.post.accepted",{threadId:p,chatRunId:ec,userMessageId:G,rootMessageId:eo,explicitRootMessageId:X,participantIds:K.map(e=>e.id),providerIdsMentioned:Array.from(D),parallelIds:Array.from(q),scopedProjectSlug:h||null,hasProjectContext:!!z,promptLength:c.length,debugLogPath:(0,M.getDebugLogPath)()}),await (0,A.createChatRun)({id:ec,threadId:p,rootMessageId:eo,userId:S.LOCAL_USER.id,projectSlug:h||null,maxSteps:es,activeParticipantIds:K.map(e=>e.id),payload:ep}),await (0,b.ensureOrchestratorRuntime)(),(0,M.writeDebugLog)("chat.runtime.ready",{chatRunId:ec,threadId:p});let ef=await (0,_.getQueue)();return await ef.send(_.QUEUE_NAMES.CHAT_RUN_PROCESS,{chatRunId:ec,userId:S.LOCAL_USER.id,signal:"start"}),(0,M.writeDebugLog)("chat.queue.sent",{chatRunId:ec,threadId:p,queue:_.QUEUE_NAMES.CHAT_RUN_PROCESS}),Response.json({ok:!0,userMessageId:G,chatRunId:ec},{status:202})}e.s(["POST",0,$,"dynamic",0,"force-dynamic","runtime",0,"nodejs"],246629);var O=e.i(246629);let L=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/chat/route",pathname:"/api/chat",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/local/app/api/chat/route.ts",nextConfigOutput:"standalone",userland:O,...{}}),{workAsyncStorage:U,workUnitAsyncStorage:D,serverHooks:q}=L;async function H(e,t,a){a.requestMeta&&(0,n.setRequestMeta)(e,a.requestMeta),L.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let R="/api/chat/route";R=R.replace(/\/index$/,"")||"/";let y=await L.prepare(e,t,{srcPage:R,multiZoneDraftMode:!1});if(!y)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:I,params:v,nextConfig:A,parsedUrl:C,isDraftMode:E,prerenderManifest:S,routerServerContext:P,isOnDemandRevalidate:_,revalidateOnlyGenerated:b,resolvedPathname:M,clientReferenceManifest:x,serverActionsManifest:N}=y,j=(0,s.normalizeAppPath)(R),T=!!(S.dynamicRoutes[j]||S.routes[M]),$=async()=>((null==P?void 0:P.render404)?await P.render404(e,t,C,!1):t.end("This page could not be found"),null);if(T&&!E){let e=!!S.routes[M],t=S.dynamicRoutes[j];if(t&&!1===t.fallback&&!e){if(A.adapterPath)return await $();throw new m.NoFallbackError}}let O=null;!T||L.isDev||E||(O="/index"===(O=M)?"/":O);let U=!0===L.isDev||!T,D=T&&!U;N&&x&&(0,o.setManifestsSingleton)({page:R,clientReferenceManifest:x,serverActionsManifest:N});let q=e.method||"GET",H=(0,i.getTracer)(),k=H.getActiveScopeSpan(),F=!!(null==P?void 0:P.isWrappedByNextServer),B=!!(0,n.getRequestMeta)(e,"minimalMode"),K=(0,n.getRequestMeta)(e,"incrementalCache")||await L.getIncrementalCache(e,A,S,B);null==K||K.resetRequestCache(),globalThis.__incrementalCache=K;let z={params:v,previewProps:S.preview,renderOpts:{experimental:{authInterrupts:!!A.experimental.authInterrupts},cacheComponents:!!A.cacheComponents,supportsDynamicResponse:U,incrementalCache:K,cacheLifeProfiles:A.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>L.onRequestError(e,t,a,n,P)},sharedContext:{buildId:I}},W=new l.NodeNextRequest(e),G=new l.NodeNextResponse(t),X=d.NextRequestAdapter.fromNodeNextRequest(W,(0,d.signalFromNodeResponse)(t));try{let n,o=async e=>L.handle(X,z).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=H.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=`${q} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t),n&&n!==e&&(n.setAttribute("http.route",a),n.updateName(t))}else e.updateName(`${q} ${R}`)}),s=async n=>{var i,s;let l=async({previousCacheEntry:r})=>{try{if(!B&&_&&b&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await o(n);e.fetchMetrics=z.renderOpts.fetchMetrics;let s=z.renderOpts.pendingWaitUntil;s&&a.waitUntil&&(a.waitUntil(s),s=void 0);let l=z.renderOpts.collectedTags;if(!T)return await (0,p.sendResponse)(W,G,i,z.renderOpts.pendingWaitUntil),null;{let e=await i.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(i.headers);l&&(t[g.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==z.renderOpts.collectedRevalidate&&!(z.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&z.renderOpts.collectedRevalidate,a=void 0===z.renderOpts.collectedExpire||z.renderOpts.collectedExpire>=g.INFINITE_CACHE?void 0:z.renderOpts.collectedExpire;return{value:{kind:w.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await L.onRequestError(e,t,{routerKind:"App Router",routePath:R,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:_})},!1,P),t}},d=await L.handleResponse({req:e,nextConfig:A,cacheKey:O,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:S,isRoutePPREnabled:!1,isOnDemandRevalidate:_,revalidateOnlyGenerated:b,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:B});if(!T)return null;if((null==d||null==(i=d.value)?void 0:i.kind)!==w.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(s=d.value)?void 0:s.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});B||t.setHeader("x-nextjs-cache",_?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),E&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,f.fromNodeOutgoingHttpHeaders)(d.value.headers);return B&&T||u.delete(g.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,h.getCacheControlHeader)(d.cacheControl)),await (0,p.sendResponse)(W,G,new Response(d.value.body,{headers:u,status:d.value.status||200})),null};F&&k?await s(k):(n=H.getActiveScopeSpan(),await H.withPropagatedContext(e.headers,()=>H.trace(u.BaseServerSpan.handleRequest,{spanName:`${q} ${R}`,kind:i.SpanKind.SERVER,attributes:{"http.method":q,"http.target":e.url}},s),void 0,!F))}catch(t){if(t instanceof m.NoFallbackError||await L.onRequestError(e,t,{routerKind:"App Router",routePath:j,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:_})},!1,P),T)throw t;return await (0,p.sendResponse)(W,G,new Response(null,{status:500})),null}}e.s(["handler",0,H,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:U,workUnitAsyncStorage:D})},"routeModule",0,L,"serverHooks",0,q,"workAsyncStorage",0,U,"workUnitAsyncStorage",0,D],818768)}];
18
+ ${el}${ei}`:`${el}${ei}`,eu=Y.slice(-20).map(e=>({id:e.id,name:"user"===e.role?"User":e.participantId?V[e.participantId]?.name||e.participantId:"Assistant",content:e.content})),ec=crypto.randomUUID(),ep={threadId:p,prompt:ed,projectContext:W,mentionedIds:Array.from(D),initialParallelIds:Array.from(q),maxRounds:es,recentHistory:eu,currentUserMessageId:G,rootMessageId:eo,participantIds:K.map(e=>e.id)};(0,M.writeDebugLog)("chat.post.accepted",{threadId:p,chatRunId:ec,userMessageId:G,rootMessageId:eo,explicitRootMessageId:X,participantIds:K.map(e=>e.id),providerIdsMentioned:Array.from(D),parallelIds:Array.from(q),scopedProjectSlug:h||null,hasProjectContext:!!W,promptLength:c.length,debugLogPath:(0,M.getDebugLogPath)()}),await (0,A.createChatRun)({id:ec,threadId:p,rootMessageId:eo,userId:S.LOCAL_USER.id,projectSlug:h||null,maxSteps:es,activeParticipantIds:K.map(e=>e.id),payload:ep}),await (0,b.ensureOrchestratorRuntime)(),(0,M.writeDebugLog)("chat.runtime.ready",{chatRunId:ec,threadId:p});let ef=await (0,_.getQueue)();return await ef.send(_.QUEUE_NAMES.CHAT_RUN_PROCESS,{chatRunId:ec,userId:S.LOCAL_USER.id,signal:"start"}),(0,M.writeDebugLog)("chat.queue.sent",{chatRunId:ec,threadId:p,queue:_.QUEUE_NAMES.CHAT_RUN_PROCESS}),Response.json({ok:!0,userMessageId:G,chatRunId:ec},{status:202})}e.s(["POST",0,T,"dynamic",0,"force-dynamic","runtime",0,"nodejs"],246629);var O=e.i(246629);let L=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/chat/route",pathname:"/api/chat",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/local/app/api/chat/route.ts",nextConfigOutput:"standalone",userland:O,...{}}),{workAsyncStorage:U,workUnitAsyncStorage:D,serverHooks:q}=L;async function H(e,t,a){a.requestMeta&&(0,n.setRequestMeta)(e,a.requestMeta),L.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let R="/api/chat/route";R=R.replace(/\/index$/,"")||"/";let y=await L.prepare(e,t,{srcPage:R,multiZoneDraftMode:!1});if(!y)return t.statusCode=400,t.end("Bad Request"),null==a.waitUntil||a.waitUntil.call(a,Promise.resolve()),null;let{buildId:I,params:v,nextConfig:A,parsedUrl:C,isDraftMode:E,prerenderManifest:S,routerServerContext:P,isOnDemandRevalidate:_,revalidateOnlyGenerated:b,resolvedPathname:M,clientReferenceManifest:$,serverActionsManifest:x}=y,N=(0,s.normalizeAppPath)(R),j=!!(S.dynamicRoutes[N]||S.routes[M]),T=async()=>((null==P?void 0:P.render404)?await P.render404(e,t,C,!1):t.end("This page could not be found"),null);if(j&&!E){let e=!!S.routes[M],t=S.dynamicRoutes[N];if(t&&!1===t.fallback&&!e){if(A.adapterPath)return await T();throw new m.NoFallbackError}}let O=null;!j||L.isDev||E||(O="/index"===(O=M)?"/":O);let U=!0===L.isDev||!j,D=j&&!U;x&&$&&(0,o.setManifestsSingleton)({page:R,clientReferenceManifest:$,serverActionsManifest:x});let q=e.method||"GET",H=(0,i.getTracer)(),k=H.getActiveScopeSpan(),F=!!(null==P?void 0:P.isWrappedByNextServer),B=!!(0,n.getRequestMeta)(e,"minimalMode"),K=(0,n.getRequestMeta)(e,"incrementalCache")||await L.getIncrementalCache(e,A,S,B);null==K||K.resetRequestCache(),globalThis.__incrementalCache=K;let W={params:v,previewProps:S.preview,renderOpts:{experimental:{authInterrupts:!!A.experimental.authInterrupts},cacheComponents:!!A.cacheComponents,supportsDynamicResponse:U,incrementalCache:K,cacheLifeProfiles:A.cacheLife,waitUntil:a.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,a,n)=>L.onRequestError(e,t,a,n,P)},sharedContext:{buildId:I}},z=new l.NodeNextRequest(e),G=new l.NodeNextResponse(t),X=d.NextRequestAdapter.fromNodeNextRequest(z,(0,d.signalFromNodeResponse)(t));try{let n,o=async e=>L.handle(X,W).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=H.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=`${q} ${a}`;e.setAttributes({"next.route":a,"http.route":a,"next.span_name":t}),e.updateName(t),n&&n!==e&&(n.setAttribute("http.route",a),n.updateName(t))}else e.updateName(`${q} ${R}`)}),s=async n=>{var i,s;let l=async({previousCacheEntry:r})=>{try{if(!B&&_&&b&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let i=await o(n);e.fetchMetrics=W.renderOpts.fetchMetrics;let s=W.renderOpts.pendingWaitUntil;s&&a.waitUntil&&(a.waitUntil(s),s=void 0);let l=W.renderOpts.collectedTags;if(!j)return await (0,p.sendResponse)(z,G,i,W.renderOpts.pendingWaitUntil),null;{let e=await i.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(i.headers);l&&(t[g.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,a=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=g.INFINITE_CACHE?void 0:W.renderOpts.collectedExpire;return{value:{kind:w.CachedRouteKind.APP_ROUTE,status:i.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:a}}}}catch(t){throw(null==r?void 0:r.isStale)&&await L.onRequestError(e,t,{routerKind:"App Router",routePath:R,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:_})},!1,P),t}},d=await L.handleResponse({req:e,nextConfig:A,cacheKey:O,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:S,isRoutePPREnabled:!1,isOnDemandRevalidate:_,revalidateOnlyGenerated:b,responseGenerator:l,waitUntil:a.waitUntil,isMinimalMode:B});if(!j)return null;if((null==d||null==(i=d.value)?void 0:i.kind)!==w.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(s=d.value)?void 0:s.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});B||t.setHeader("x-nextjs-cache",_?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),E&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let u=(0,f.fromNodeOutgoingHttpHeaders)(d.value.headers);return B&&j||u.delete(g.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||u.get("Cache-Control")||u.set("Cache-Control",(0,h.getCacheControlHeader)(d.cacheControl)),await (0,p.sendResponse)(z,G,new Response(d.value.body,{headers:u,status:d.value.status||200})),null};F&&k?await s(k):(n=H.getActiveScopeSpan(),await H.withPropagatedContext(e.headers,()=>H.trace(u.BaseServerSpan.handleRequest,{spanName:`${q} ${R}`,kind:i.SpanKind.SERVER,attributes:{"http.method":q,"http.target":e.url}},s),void 0,!F))}catch(t){if(t instanceof m.NoFallbackError||await L.onRequestError(e,t,{routerKind:"App Router",routePath:N,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:_})},!1,P),j)throw t;return await (0,p.sendResponse)(z,G,new Response(null,{status:500})),null}}e.s(["handler",0,H,"patchFetch",0,function(){return(0,a.patchFetch)({workAsyncStorage:U,workUnitAsyncStorage:D})},"routeModule",0,L,"serverHooks",0,q,"workAsyncStorage",0,U,"workUnitAsyncStorage",0,D],818768)}];
15
19
 
16
20
  //# sourceMappingURL=node_modules_next_dist_esm_build_templates_app-route_0rszt9p.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[888483,e=>{"use strict";var t=e.i(747909),a=e.i(174017),i=e.i(996250),r=e.i(759756),n=e.i(561916),s=e.i(174677),o=e.i(869741),l=e.i(316795),d=e.i(487718),c=e.i(995169),u=e.i(47587),p=e.i(666012),m=e.i(570101),h=e.i(626937),g=e.i(10372),f=e.i(193695);e.i(52474);var v=e.i(600220),R=e.i(89171),w=e.i(744071),b=e.i(391310),C=e.i(764541),x=e.i(184951),E=e.i(765443),j=e.i(601544),y=e.i(84516);function I(e){return(e??"").toLowerCase().replace(/[^a-z0-9\s]+/g," ").replace(/\s+/g," ").trim()}function P(e){return e?e.replace(/\[reaction\s+[^\]]*\]/gi,"").replace(/\[agx:[^\]]*\]/g,"").replace(/\[checkpoint\]/g,"").replace(/\[criteria:\s*[^\]]*\]/g,"").replace(/\[done\]/g,"").replace(/\[blocked[^\]]*\]/g,"").replace(/^\[SKIP\]$/gm,"").trim().replace(/\s+/g," ").trim():""}function A(e,t=120){return e.length<=t?e:`${e.slice(0,Math.max(0,t-1)).trimEnd()}…`}function N(e,...t){let a=I(e).split(/\s+/).map(e=>e.trim()).filter(Boolean);if(0===a.length)return!1;let i=t.map(e=>I(P(e))).filter(Boolean).join(" ");return a.every(e=>i.includes(e))}function _(e,...t){let a=t.map(e=>I(P(e))).filter(Boolean);return 0===a.length?1/0:I(e).split(/\s+/).map(e=>e.trim()).filter(Boolean).map(e=>{let t=1/0;for(let i of a){let a=i.indexOf(e);a>=0&&(t=Math.min(t,a))}return t}).reduce((e,t)=>e+(Number.isFinite(t)?t:9999),0)}function S(e,t){let a=I(e),i=I(t.name);return a?i===a?-300:i.startsWith(a)?-200:i.includes(a)?-100:_(e,t.id,t.name,t.title,t.teamName):1/0}async function T(e,t){var a;let i=(a=e.nextUrl.searchParams.get("q"),a?.trim()??"");if(!i||i.length<2)return R.NextResponse.json({query:i,sections:[],total:0});let{id:r}=await t.params,n=r.trim();if(!n)return R.NextResponse.json({error:"Project id is required"},{status:400});let s=await C.db.getProjectWithRepos(n,w.LOCAL_USER.id);if(!s)return R.NextResponse.json({error:"Project not found"},{status:404});let[o,l,d,c]=await Promise.all([C.db.getTeams(s.id),C.db.getProjectAgents(s.id),(0,b.loadDbParticipants)(),(0,j.getProjectThreadIds)(s.id)]),u=new Map(await Promise.all(o.map(async e=>[e.id,await C.db.getTeamAgents(e.id)]))),p=new Map(o.map(e=>[e.id,e.name])),m=new Map(o.map(e=>[e.id,"string"==typeof e.metadata?.description?e.metadata.description:null])),h=new Map;for(let e of o)for(let t of u.get(e.id)??[])h.has(t.agent_id)||h.set(t.agent_id,{teamId:e.id,teamName:e.name});let g=(0,E.readProjectObjectivesWorkspace)(s.metadata).objectives.filter(e=>N(i,e.title,e.summary,p.get(e.teamId))).sort((e,t)=>_(i,e.title,e.summary)-_(i,t.title,t.summary)).slice(0,10).map(e=>({id:e.id,kind:"objective",label:"Objective",title:e.title,context:p.get(e.teamId)??void 0,description:A(P(e.summary),120)||void 0,href:`/projects/${s.slug}/objectives/${encodeURIComponent(e.id)}`})),f=(0,y.getPromptJobStore)().listJobs({projectId:s.id}).filter(e=>N(i,e.name,e.prompt,e.condition,e.cadence,e.cronExpr)).sort((e,t)=>_(i,e.name,e.prompt,e.condition)-_(i,t.name,t.prompt,t.condition)).slice(0,10).map(e=>({id:e.id,kind:"scheduled_task",label:"Scheduled task",title:e.name,context:"active"===e.state?"Active":"paused"===e.state?"Paused":"Stopped",description:A(P(e.prompt||e.condition||e.cadence),120)||void 0,href:`/projects/${s.slug}/automations?job=${encodeURIComponent(e.id)}`})),v=o.filter(e=>N(i,e.name,e.template_id,m.get(e.id))).sort((e,t)=>_(i,e.name,e.template_id,m.get(e.id))-_(i,t.name,t.template_id,m.get(t.id))).slice(0,10).map(e=>({id:e.id,kind:"team",label:"Team",title:e.name,context:e.template_id??void 0,description:A(P(m.get(e.id)),120)||void 0,href:`/projects/${s.slug}/teams?team=${encodeURIComponent(e.id)}`})),I=new Set(l.map(e=>e.agent_id)),T=d.filter(e=>I.has(e.id)).filter(e=>{let t=h.get(e.id);return N(i,e.id,e.name,e.title,t?.teamName)}).sort((e,t)=>{let a=h.get(e.id),r=h.get(t.id);return S(i,{id:e.id,name:e.name,title:e.title,teamName:a?.teamName})-S(i,{id:t.id,name:t.name,title:t.title,teamName:r?.teamName})}).slice(0,10).map(e=>({id:e.id,kind:"agent",label:"Agent",title:e.name,context:h.get(e.id)?.teamName??e.title??e.provider??void 0,description:A(P(e.identity||e.model||""),120)||void 0,href:h.has(e.id)?`/projects/${s.slug}/teams/${encodeURIComponent(h.get(e.id).teamId)}/agents/${encodeURIComponent(e.id)}`:`/agents/${encodeURIComponent(e.id)}`})),$=[];try{await (0,x.ensureLinearIssueCache)({projectSlug:s.slug}),$=(await (0,x.listLinearIssueSummaries)({search:i,limit:10})).issues.filter(e=>N(i,e.identifier,e.title,e.status,e.assignee,e.labels?.join(" "))).sort((e,t)=>_(i,e.identifier,e.title,e.status,e.assignee,e.labels?.join(" "))-_(i,t.identifier,t.title,t.status,t.assignee,t.labels?.join(" "))).map(e=>({id:e.id,kind:"linear_issue",label:"Linear",title:`${e.identifier} ${e.title}`.trim(),context:e.status||void 0,description:e.assignee?`Assignee: ${e.assignee}`:void 0,href:`/projects/${s.slug}/linear?issue=${encodeURIComponent(e.id)}`}))}catch(e){console.warn("Project search failed to load Linear issues",e)}let U=[];if(c.length>0){let e=await (0,j.searchMessages)({query:i,threadIds:c,limit:10,offset:0}),t=new Map(await Promise.all(Array.from(new Set(e.results.map(e=>e.threadId))).map(async e=>[e,await (0,j.loadHistory)(e)])));U=e.results.map(e=>{var a,i,r,n;let o,l=e.rootMessageId||e.messageId,d=(t.get(e.threadId)??[]).find(e=>e.id===l)??null,c=A(P(d?.content||((a=e.snippet)?a.replace(/<\/?mark>/g,""):"")),72),u=e.rootMessageId?"chat_message":"chat_thread";return{id:`${e.threadId}:${e.messageId}`,kind:u,label:"chat_thread"===u?"Chat conversation":"Chat message",title:c||"Chat conversation",context:new Date(e.timestamp).toLocaleString(void 0,{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"}),description:e.snippet||void 0,href:(i=s.slug,r=e.threadId,n=e.messageId,o=new URLSearchParams({open:l}),n&&n!==l&&o.set("message",n),`/projects/${i}/thread/${encodeURIComponent(r)}?${o.toString()}`)}})}let k=[{id:"objectives",label:"Objectives",results:g},{id:"linear",label:"Linear",results:$},{id:"scheduled_tasks",label:"Scheduled Tasks",results:f},{id:"teams",label:"Teams",results:v},{id:"agents",label:"Agents",results:T},{id:"chat",label:"Chat",results:U}].filter(e=>e.results.length>0),O=k.reduce((e,t)=>e+t.results.length,0);return R.NextResponse.json({query:i,sections:k,total:O})}e.s(["GET",0,T,"dynamic",0,"force-dynamic","runtime",0,"nodejs"],258849);var $=e.i(258849);let U=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/projects/[id]/search/route",pathname:"/api/projects/[id]/search",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/local/app/api/projects/[id]/search/route.ts",nextConfigOutput:"standalone",userland:$,...{}}),{workAsyncStorage:k,workUnitAsyncStorage:O,serverHooks:M}=U;async function q(e,t,i){i.requestMeta&&(0,r.setRequestMeta)(e,i.requestMeta),U.isDev&&(0,r.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let R="/api/projects/[id]/search/route";R=R.replace(/\/index$/,"")||"/";let w=await U.prepare(e,t,{srcPage:R,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==i.waitUntil||i.waitUntil.call(i,Promise.resolve()),null;let{buildId:b,params:C,nextConfig:x,parsedUrl:E,isDraftMode:j,prerenderManifest:y,routerServerContext:I,isOnDemandRevalidate:P,revalidateOnlyGenerated:A,resolvedPathname:N,clientReferenceManifest:_,serverActionsManifest:S}=w,T=(0,o.normalizeAppPath)(R),$=!!(y.dynamicRoutes[T]||y.routes[N]),k=async()=>((null==I?void 0:I.render404)?await I.render404(e,t,E,!1):t.end("This page could not be found"),null);if($&&!j){let e=!!y.routes[N],t=y.dynamicRoutes[T];if(t&&!1===t.fallback&&!e){if(x.adapterPath)return await k();throw new f.NoFallbackError}}let O=null;!$||U.isDev||j||(O="/index"===(O=N)?"/":O);let M=!0===U.isDev||!$,q=$&&!M;S&&_&&(0,s.setManifestsSingleton)({page:R,clientReferenceManifest:_,serverActionsManifest:S});let H=e.method||"GET",D=(0,n.getTracer)(),L=D.getActiveScopeSpan(),B=!!(null==I?void 0:I.isWrappedByNextServer),F=!!(0,r.getRequestMeta)(e,"minimalMode"),K=(0,r.getRequestMeta)(e,"incrementalCache")||await U.getIncrementalCache(e,x,y,F);null==K||K.resetRequestCache(),globalThis.__incrementalCache=K;let W={params:C,previewProps:y.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:M,incrementalCache:K,cacheLifeProfiles:x.cacheLife,waitUntil:i.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,i,r)=>U.onRequestError(e,t,i,r,I)},sharedContext:{buildId:b}},G=new l.NodeNextRequest(e),V=new l.NodeNextResponse(t),X=d.NextRequestAdapter.fromNodeNextRequest(G,(0,d.signalFromNodeResponse)(t));try{let r,s=async e=>U.handle(X,W).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=D.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==c.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let i=a.get("next.route");if(i){let t=`${H} ${i}`;e.setAttributes({"next.route":i,"http.route":i,"next.span_name":t}),e.updateName(t),r&&r!==e&&(r.setAttribute("http.route",i),r.updateName(t))}else e.updateName(`${H} ${R}`)}),o=async r=>{var n,o;let l=async({previousCacheEntry:a})=>{try{if(!F&&P&&A&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await s(r);e.fetchMetrics=W.renderOpts.fetchMetrics;let o=W.renderOpts.pendingWaitUntil;o&&i.waitUntil&&(i.waitUntil(o),o=void 0);let l=W.renderOpts.collectedTags;if(!$)return await (0,p.sendResponse)(G,V,n,W.renderOpts.pendingWaitUntil),null;{let e=await n.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(n.headers);l&&(t[g.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,i=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=g.INFINITE_CACHE?void 0:W.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:i}}}}catch(t){throw(null==a?void 0:a.isStale)&&await U.onRequestError(e,t,{routerKind:"App Router",routePath:R,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:q,isOnDemandRevalidate:P})},!1,I),t}},d=await U.handleResponse({req:e,nextConfig:x,cacheKey:O,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:y,isRoutePPREnabled:!1,isOnDemandRevalidate:P,revalidateOnlyGenerated:A,responseGenerator:l,waitUntil:i.waitUntil,isMinimalMode:F});if(!$)return null;if((null==d||null==(n=d.value)?void 0:n.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(o=d.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});F||t.setHeader("x-nextjs-cache",P?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),j&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let c=(0,m.fromNodeOutgoingHttpHeaders)(d.value.headers);return F&&$||c.delete(g.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||c.get("Cache-Control")||c.set("Cache-Control",(0,h.getCacheControlHeader)(d.cacheControl)),await (0,p.sendResponse)(G,V,new Response(d.value.body,{headers:c,status:d.value.status||200})),null};B&&L?await o(L):(r=D.getActiveScopeSpan(),await D.withPropagatedContext(e.headers,()=>D.trace(c.BaseServerSpan.handleRequest,{spanName:`${H} ${R}`,kind:n.SpanKind.SERVER,attributes:{"http.method":H,"http.target":e.url}},o),void 0,!B))}catch(t){if(t instanceof f.NoFallbackError||await U.onRequestError(e,t,{routerKind:"App Router",routePath:T,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:q,isOnDemandRevalidate:P})},!1,I),$)throw t;return await (0,p.sendResponse)(G,V,new Response(null,{status:500})),null}}e.s(["handler",0,q,"patchFetch",0,function(){return(0,i.patchFetch)({workAsyncStorage:k,workUnitAsyncStorage:O})},"routeModule",0,U,"serverHooks",0,M,"workAsyncStorage",0,k,"workUnitAsyncStorage",0,O],888483)}];
1
+ module.exports=[888483,e=>{"use strict";var t=e.i(747909),a=e.i(174017),i=e.i(996250),r=e.i(759756),n=e.i(561916),s=e.i(174677),o=e.i(869741),l=e.i(316795),d=e.i(487718),c=e.i(995169),u=e.i(47587),p=e.i(666012),m=e.i(570101),h=e.i(626937),g=e.i(10372),f=e.i(193695);e.i(52474);var v=e.i(600220),R=e.i(89171),w=e.i(744071),b=e.i(391310),C=e.i(764541),x=e.i(184951),E=e.i(765443),j=e.i(601544),y=e.i(84516);function I(e){return(e??"").toLowerCase().replace(/[^a-z0-9\s]+/g," ").replace(/\s+/g," ").trim()}function P(e){return e?e.replace(/\[reaction\s+[^\]]*\]/gi,"").replace(/\[agx:[^\]]*\]/g,"").replace(/\[checkpoint\]/g,"").replace(/\[criteria:\s*[^\]]*\]/g,"").replace(/\[done\]/g,"").replace(/\[blocked[^\]]*\]/g,"").replace(/^\[SKIP\]$/gm,"").trim().replace(/\s+/g," ").trim():""}function A(e,t=120){return e.length<=t?e:`${e.slice(0,Math.max(0,t-1)).trimEnd()}…`}function N(e,...t){let a=I(e).split(/\s+/).map(e=>e.trim()).filter(Boolean);if(0===a.length)return!1;let i=t.map(e=>I(P(e))).filter(Boolean).join(" ");return a.every(e=>i.includes(e))}function _(e,...t){let a=t.map(e=>I(P(e))).filter(Boolean);return 0===a.length?1/0:I(e).split(/\s+/).map(e=>e.trim()).filter(Boolean).map(e=>{let t=1/0;for(let i of a){let a=i.indexOf(e);a>=0&&(t=Math.min(t,a))}return t}).reduce((e,t)=>e+(Number.isFinite(t)?t:9999),0)}function S(e,t){let a=I(e),i=I(t.name);return a?i===a?-300:i.startsWith(a)?-200:i.includes(a)?-100:_(e,t.id,t.name,t.role,t.teamName):1/0}async function T(e,t){var a;let i=(a=e.nextUrl.searchParams.get("q"),a?.trim()??"");if(!i||i.length<2)return R.NextResponse.json({query:i,sections:[],total:0});let{id:r}=await t.params,n=r.trim();if(!n)return R.NextResponse.json({error:"Project id is required"},{status:400});let s=await C.db.getProjectWithRepos(n,w.LOCAL_USER.id);if(!s)return R.NextResponse.json({error:"Project not found"},{status:404});let[o,l,d,c]=await Promise.all([C.db.getTeams(s.id),C.db.getProjectAgents(s.id),(0,b.loadDbParticipants)(),(0,j.getProjectThreadIds)(s.id)]),u=new Map(await Promise.all(o.map(async e=>[e.id,await C.db.getTeamAgents(e.id)]))),p=new Map(o.map(e=>[e.id,e.name])),m=new Map(o.map(e=>[e.id,"string"==typeof e.metadata?.description?e.metadata.description:null])),h=new Map;for(let e of o)for(let t of u.get(e.id)??[])h.has(t.agent_id)||h.set(t.agent_id,{teamId:e.id,teamName:e.name});let g=(0,E.readProjectObjectivesWorkspace)(s.metadata).objectives.filter(e=>N(i,e.title,e.summary,p.get(e.teamId))).sort((e,t)=>_(i,e.title,e.summary)-_(i,t.title,t.summary)).slice(0,10).map(e=>({id:e.id,kind:"objective",label:"Objective",title:e.title,context:p.get(e.teamId)??void 0,description:A(P(e.summary),120)||void 0,href:`/projects/${s.slug}/objectives/${encodeURIComponent(e.id)}`})),f=(0,y.getPromptJobStore)().listJobs({projectId:s.id}).filter(e=>N(i,e.name,e.prompt,e.condition,e.cadence,e.cronExpr)).sort((e,t)=>_(i,e.name,e.prompt,e.condition)-_(i,t.name,t.prompt,t.condition)).slice(0,10).map(e=>({id:e.id,kind:"scheduled_task",label:"Scheduled task",title:e.name,context:"active"===e.state?"Active":"paused"===e.state?"Paused":"Stopped",description:A(P(e.prompt||e.condition||e.cadence),120)||void 0,href:`/projects/${s.slug}/automations?job=${encodeURIComponent(e.id)}`})),v=o.filter(e=>N(i,e.name,e.template_id,m.get(e.id))).sort((e,t)=>_(i,e.name,e.template_id,m.get(e.id))-_(i,t.name,t.template_id,m.get(t.id))).slice(0,10).map(e=>({id:e.id,kind:"team",label:"Team",title:e.name,context:e.template_id??void 0,description:A(P(m.get(e.id)),120)||void 0,href:`/projects/${s.slug}/teams?team=${encodeURIComponent(e.id)}`})),I=new Set(l.map(e=>e.agent_id)),T=d.filter(e=>I.has(e.id)).filter(e=>{let t=h.get(e.id);return N(i,e.id,e.name,e.role,t?.teamName)}).sort((e,t)=>{let a=h.get(e.id),r=h.get(t.id);return S(i,{id:e.id,name:e.name,role:e.role,teamName:a?.teamName})-S(i,{id:t.id,name:t.name,role:t.role,teamName:r?.teamName})}).slice(0,10).map(e=>({id:e.id,kind:"agent",label:"Agent",title:e.name,context:h.get(e.id)?.teamName??e.role??e.provider??void 0,description:A(P(e.identity||e.model||""),120)||void 0,href:h.has(e.id)?`/projects/${s.slug}/teams/${encodeURIComponent(h.get(e.id).teamId)}/agents/${encodeURIComponent(e.id)}`:`/agents/${encodeURIComponent(e.id)}`})),$=[];try{await (0,x.ensureLinearIssueCache)({projectSlug:s.slug}),$=(await (0,x.listLinearIssueSummaries)({search:i,limit:10})).issues.filter(e=>N(i,e.identifier,e.title,e.status,e.assignee,e.labels?.join(" "))).sort((e,t)=>_(i,e.identifier,e.title,e.status,e.assignee,e.labels?.join(" "))-_(i,t.identifier,t.title,t.status,t.assignee,t.labels?.join(" "))).map(e=>({id:e.id,kind:"linear_issue",label:"Linear",title:`${e.identifier} ${e.title}`.trim(),context:e.status||void 0,description:e.assignee?`Assignee: ${e.assignee}`:void 0,href:`/projects/${s.slug}/linear?issue=${encodeURIComponent(e.id)}`}))}catch(e){console.warn("Project search failed to load Linear issues",e)}let U=[];if(c.length>0){let e=await (0,j.searchMessages)({query:i,threadIds:c,limit:10,offset:0}),t=new Map(await Promise.all(Array.from(new Set(e.results.map(e=>e.threadId))).map(async e=>[e,await (0,j.loadHistory)(e)])));U=e.results.map(e=>{var a,i,r,n;let o,l=e.rootMessageId||e.messageId,d=(t.get(e.threadId)??[]).find(e=>e.id===l)??null,c=A(P(d?.content||((a=e.snippet)?a.replace(/<\/?mark>/g,""):"")),72),u=e.rootMessageId?"chat_message":"chat_thread";return{id:`${e.threadId}:${e.messageId}`,kind:u,label:"chat_thread"===u?"Chat conversation":"Chat message",title:c||"Chat conversation",context:new Date(e.timestamp).toLocaleString(void 0,{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"}),description:e.snippet||void 0,href:(i=s.slug,r=e.threadId,n=e.messageId,o=new URLSearchParams({open:l}),n&&n!==l&&o.set("message",n),`/projects/${i}/thread/${encodeURIComponent(r)}?${o.toString()}`)}})}let k=[{id:"objectives",label:"Objectives",results:g},{id:"linear",label:"Linear",results:$},{id:"scheduled_tasks",label:"Scheduled Tasks",results:f},{id:"teams",label:"Teams",results:v},{id:"agents",label:"Agents",results:T},{id:"chat",label:"Chat",results:U}].filter(e=>e.results.length>0),O=k.reduce((e,t)=>e+t.results.length,0);return R.NextResponse.json({query:i,sections:k,total:O})}e.s(["GET",0,T,"dynamic",0,"force-dynamic","runtime",0,"nodejs"],258849);var $=e.i(258849);let U=new t.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/projects/[id]/search/route",pathname:"/api/projects/[id]/search",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/apps/local/app/api/projects/[id]/search/route.ts",nextConfigOutput:"standalone",userland:$,...{}}),{workAsyncStorage:k,workUnitAsyncStorage:O,serverHooks:M}=U;async function q(e,t,i){i.requestMeta&&(0,r.setRequestMeta)(e,i.requestMeta),U.isDev&&(0,r.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let R="/api/projects/[id]/search/route";R=R.replace(/\/index$/,"")||"/";let w=await U.prepare(e,t,{srcPage:R,multiZoneDraftMode:!1});if(!w)return t.statusCode=400,t.end("Bad Request"),null==i.waitUntil||i.waitUntil.call(i,Promise.resolve()),null;let{buildId:b,params:C,nextConfig:x,parsedUrl:E,isDraftMode:j,prerenderManifest:y,routerServerContext:I,isOnDemandRevalidate:P,revalidateOnlyGenerated:A,resolvedPathname:N,clientReferenceManifest:_,serverActionsManifest:S}=w,T=(0,o.normalizeAppPath)(R),$=!!(y.dynamicRoutes[T]||y.routes[N]),k=async()=>((null==I?void 0:I.render404)?await I.render404(e,t,E,!1):t.end("This page could not be found"),null);if($&&!j){let e=!!y.routes[N],t=y.dynamicRoutes[T];if(t&&!1===t.fallback&&!e){if(x.adapterPath)return await k();throw new f.NoFallbackError}}let O=null;!$||U.isDev||j||(O="/index"===(O=N)?"/":O);let M=!0===U.isDev||!$,q=$&&!M;S&&_&&(0,s.setManifestsSingleton)({page:R,clientReferenceManifest:_,serverActionsManifest:S});let H=e.method||"GET",D=(0,n.getTracer)(),L=D.getActiveScopeSpan(),B=!!(null==I?void 0:I.isWrappedByNextServer),F=!!(0,r.getRequestMeta)(e,"minimalMode"),K=(0,r.getRequestMeta)(e,"incrementalCache")||await U.getIncrementalCache(e,x,y,F);null==K||K.resetRequestCache(),globalThis.__incrementalCache=K;let W={params:C,previewProps:y.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:M,incrementalCache:K,cacheLifeProfiles:x.cacheLife,waitUntil:i.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,a,i,r)=>U.onRequestError(e,t,i,r,I)},sharedContext:{buildId:b}},G=new l.NodeNextRequest(e),V=new l.NodeNextResponse(t),X=d.NextRequestAdapter.fromNodeNextRequest(G,(0,d.signalFromNodeResponse)(t));try{let r,s=async e=>U.handle(X,W).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let a=D.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==c.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let i=a.get("next.route");if(i){let t=`${H} ${i}`;e.setAttributes({"next.route":i,"http.route":i,"next.span_name":t}),e.updateName(t),r&&r!==e&&(r.setAttribute("http.route",i),r.updateName(t))}else e.updateName(`${H} ${R}`)}),o=async r=>{var n,o;let l=async({previousCacheEntry:a})=>{try{if(!F&&P&&A&&!a)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await s(r);e.fetchMetrics=W.renderOpts.fetchMetrics;let o=W.renderOpts.pendingWaitUntil;o&&i.waitUntil&&(i.waitUntil(o),o=void 0);let l=W.renderOpts.collectedTags;if(!$)return await (0,p.sendResponse)(G,V,n,W.renderOpts.pendingWaitUntil),null;{let e=await n.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(n.headers);l&&(t[g.NEXT_CACHE_TAGS_HEADER]=l),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let a=void 0!==W.renderOpts.collectedRevalidate&&!(W.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&W.renderOpts.collectedRevalidate,i=void 0===W.renderOpts.collectedExpire||W.renderOpts.collectedExpire>=g.INFINITE_CACHE?void 0:W.renderOpts.collectedExpire;return{value:{kind:v.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:a,expire:i}}}}catch(t){throw(null==a?void 0:a.isStale)&&await U.onRequestError(e,t,{routerKind:"App Router",routePath:R,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:q,isOnDemandRevalidate:P})},!1,I),t}},d=await U.handleResponse({req:e,nextConfig:x,cacheKey:O,routeKind:a.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:y,isRoutePPREnabled:!1,isOnDemandRevalidate:P,revalidateOnlyGenerated:A,responseGenerator:l,waitUntil:i.waitUntil,isMinimalMode:F});if(!$)return null;if((null==d||null==(n=d.value)?void 0:n.kind)!==v.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(o=d.value)?void 0:o.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});F||t.setHeader("x-nextjs-cache",P?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),j&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let c=(0,m.fromNodeOutgoingHttpHeaders)(d.value.headers);return F&&$||c.delete(g.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||c.get("Cache-Control")||c.set("Cache-Control",(0,h.getCacheControlHeader)(d.cacheControl)),await (0,p.sendResponse)(G,V,new Response(d.value.body,{headers:c,status:d.value.status||200})),null};B&&L?await o(L):(r=D.getActiveScopeSpan(),await D.withPropagatedContext(e.headers,()=>D.trace(c.BaseServerSpan.handleRequest,{spanName:`${H} ${R}`,kind:n.SpanKind.SERVER,attributes:{"http.method":H,"http.target":e.url}},o),void 0,!B))}catch(t){if(t instanceof f.NoFallbackError||await U.onRequestError(e,t,{routerKind:"App Router",routePath:T,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:q,isOnDemandRevalidate:P})},!1,I),$)throw t;return await (0,p.sendResponse)(G,V,new Response(null,{status:500})),null}}e.s(["handler",0,q,"patchFetch",0,function(){return(0,i.patchFetch)({workAsyncStorage:k,workUnitAsyncStorage:O})},"routeModule",0,U,"serverHooks",0,M,"workAsyncStorage",0,k,"workUnitAsyncStorage",0,O],888483)}];
2
2
 
3
3
  //# sourceMappingURL=node_modules_next_dist_esm_build_templates_app-route_0u_5kfo.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[66456,a=>{"use strict";let b=(0,a.i(831709).default)("zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]);a.s(["Zap",0,b],66456)},675222,a=>{"use strict";let b=(0,a.i(831709).default)("shield-check",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);a.s(["ShieldCheck",0,b],675222)},44668,a=>{"use strict";let b=(0,a.i(831709).default)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);a.s(["CheckCircle2",0,b],44668)},999076,a=>{"use strict";let b=(0,a.i(831709).default)("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);a.s(["XCircle",0,b],999076)},693896,a=>{"use strict";let b=(0,a.i(831709).default)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);a.s(["AlertCircle",0,b],693896)},754812,a=>{"use strict";let b=(0,a.i(831709).default)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);a.s(["ChevronLeft",0,b],754812)},356239,a=>{"use strict";let b=(0,a.i(831709).default)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]);a.s(["Terminal",0,b],356239)},831709,a=>{"use strict";var b=a.i(572131);let c=(...a)=>a.filter((a,b,c)=>!!a&&""!==a.trim()&&c.indexOf(a)===b).join(" ").trim(),d=a=>{let b=a.replace(/^([A-Z])|[\s-_]+(\w)/g,(a,b,c)=>c?c.toUpperCase():b.toLowerCase());return b.charAt(0).toUpperCase()+b.slice(1)};var e={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let f=(0,b.forwardRef)(({color:a="currentColor",size:d=24,strokeWidth:f=2,absoluteStrokeWidth:g,className:h="",children:i,iconNode:j,...k},l)=>(0,b.createElement)("svg",{ref:l,...e,width:d,height:d,stroke:a,strokeWidth:g?24*Number(f)/Number(d):f,className:c("lucide",h),...!i&&!(a=>{for(let b in a)if(b.startsWith("aria-")||"role"===b||"title"===b)return!0;return!1})(k)&&{"aria-hidden":"true"},...k},[...j.map(([a,c])=>(0,b.createElement)(a,c)),...Array.isArray(i)?i:[i]]));a.s(["default",0,(a,e)=>{let g=(0,b.forwardRef)(({className:g,...h},i)=>(0,b.createElement)(f,{ref:i,iconNode:e,className:c(`lucide-${d(a).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${a}`,g),...h}));return g.displayName=d(a),g}],831709)},353532,a=>{"use strict";let b=(0,a.i(831709).default)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);a.s(["Plus",0,b],353532)},820859,a=>{"use strict";let b=(0,a.i(831709).default)("clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6l4 2",key:"mmk7yg"}]]);a.s(["Clock",0,b],820859)},73948,a=>{"use strict";let b=(0,a.i(831709).default)("play",[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]]);a.s(["Play",0,b],73948)},171552,a=>{"use strict";let b=(0,a.i(831709).default)("settings-2",[["path",{d:"M14 17H5",key:"gfn3mx"}],["path",{d:"M19 7h-9",key:"6i9tg"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}],["circle",{cx:"7",cy:"7",r:"3",key:"dfmy0x"}]]);a.s(["Settings2",0,b],171552)},327788,a=>{"use strict";let b=(0,a.i(831709).default)("pause",[["rect",{x:"14",y:"3",width:"5",height:"18",rx:"1",key:"kaeet6"}],["rect",{x:"5",y:"3",width:"5",height:"18",rx:"1",key:"1wsw3u"}]]);a.s(["Pause",0,b],327788)},523593,a=>{"use strict";let b=(0,a.i(831709).default)("git-branch",[["path",{d:"M15 6a9 9 0 0 0-9 9V3",key:"1cii5b"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}]]);a.s(["GitBranch",0,b],523593)}];
2
+
3
+ //# sourceMappingURL=0rhn_lucide-react_dist_esm_06fnblz._.js.map
@@ -0,0 +1,18 @@
1
+ module.exports=[522734,(a,b,c)=>{b.exports=a.x("fs",()=>require("fs"))},750227,(a,b,c)=>{b.exports=a.x("node:path",()=>require("node:path"))},924868,(a,b,c)=>{b.exports=a.x("fs/promises",()=>require("fs/promises"))},756490,a=>{"use strict";let b=(0,a.i(831709).default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);a.s(["ChevronRight",0,b],756490)},999076,a=>{"use strict";let b=(0,a.i(831709).default)("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);a.s(["XCircle",0,b],999076)},697183,a=>{"use strict";let b=(0,a.i(831709).default)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]);a.s(["Trash2",0,b],697183)},820859,a=>{"use strict";let b=(0,a.i(831709).default)("clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6l4 2",key:"mmk7yg"}]]);a.s(["Clock",0,b],820859)},864061,a=>{"use strict";let b=(0,a.i(831709).default)("refresh-cw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);a.s(["RefreshCw",0,b],864061)},475632,a=>{"use strict";a.s(["stripMarkers",0,function(a){return a.replace(/\[reaction\s+[^\]]*\]/gi,"").replace(/\[agx:[^\]]*\]/g,"").replace(/\[checkpoint\]/g,"").replace(/\[criteria:\s*[^\]]*\]/g,"").replace(/\[done\]/g,"").replace(/\[blocked[^\]]*\]/g,"").replace(/^\[SKIP\]$/gm,"").trim()}])},520612,a=>{"use strict";var b=a.i(572131),c=a.i(50944);function d(a){return"string"!=typeof a?null:a.trim()||null}function e(a,b){return(a.get(b)?.trim()??"")||null}a.s(["useUrlSelection",0,function(){let a=(0,c.useRouter)(),f=(0,c.usePathname)(),g=(0,c.useSearchParams)(),h=(0,b.useCallback)(a=>e(g,a),[g]),i=(0,b.useCallback)((a,b)=>(function(a,b,c){let f=function(a,b){let c={...b},f=a=>Object.prototype.hasOwnProperty.call(b,a);if(f("issue")&&!f("run")){let f=e(a,"issue");d(b.issue)!==f&&(c.run=null)}if(f("job")&&!f("run")){let f=e(a,"job");d(b.job)!==f&&(c.run=null)}if(f("open")&&!f("message")){let f=e(a,"open");d(b.open)!==f&&(c.message=null)}return c}(b,c),g=new URLSearchParams(b.toString());for(let[a,b]of Object.entries(f)){let c=d(b);c?g.set(a,c):g.delete(a)}let h=g.toString();return h?`${a}?${h}`:a})(b??f,g,a),[f,g]),j=(0,b.useCallback)((b,c)=>{a.push(i(b,c))},[i,a]),k=(0,b.useCallback)((b,c)=>{a.replace(i(b,c))},[i,a]);return{pathname:f,searchParams:g,getSelection:h,buildHref:i,pushSelection:j,replaceSelection:k}}])},155829,496368,785061,a=>{"use strict";var b=a.i(572131);function c(a){return`threadId=${encodeURIComponent(a)}`}function d(a){return`workspaceId=${encodeURIComponent(a)}`}a.s(["useGroupChat",0,function(a){let[e,f]=(0,b.useState)([]),[g,h]=(0,b.useState)([]),[i,j]=(0,b.useState)([]),k=(0,b.useRef)(a),l=(0,b.useRef)(a);k.current=a,l.current!==a&&(l.current=a,f([]),h([]),j([]));let m=(0,b.useCallback)(async a=>{let b=a?.trim()||k.current?.trim();if(!b){f([]),h([]);return}let e=c(b);try{let[a,c]=await Promise.all([fetch(`/api/history?${e}`),fetch(`/api/logs?${d(b)}`)]);if(k.current!==b)return;a.ok&&f(await a.json()),c.ok&&h(await c.json())}catch{}},[]),n=(0,b.useCallback)(async a=>{let b=a?.trim()||k.current?.trim();if(!b){f([]),h([]);return}let e=c(b);await Promise.all([fetch(`/api/history?${e}`,{method:"DELETE"}),fetch(`/api/logs?${d(b)}`,{method:"DELETE"})]),k.current===b&&(f([]),h([]))},[]),o=(0,b.useCallback)(async(a,b=10,c,d,e,g,h,i,l,m)=>{let n=c?.trim()||k.current?.trim();if(!n)return;let o=Date.now(),p=crypto.randomUUID(),q={id:p,role:"user",participantId:null,content:a,timestamp:o,rootMessageId:d||null,parentMessageId:d||null,depth:+!!d,...g&&g.length>0?{attachments:g}:{}};f(a=>[...a,q]);try{let c=await fetch("/api/chat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:n,prompt:a,promptPrefix:l||void 0,maxRounds:b,userMessageId:p,rootMessageId:d||void 0,attachmentIds:e?.length?e:void 0,activeParticipantIds:Array.isArray(h)?h:void 0,projectSlug:i?.trim()||void 0,routing:m})}),g=await c.json().catch(a=>(console.warn("[useGroupChat] failed to parse run response:",a),null));c.ok&&g?.chatRunId?j(a=>[{chatRunId:g.chatRunId,threadId:n,rootMessageId:d||p,status:"queued",optimistic:!0,enqueuedAt:Date.now()},...a.filter(a=>a.chatRunId!==g.chatRunId)]):c.ok||(console.error(`[useGroupChat] POST /api/chat failed (${c.status}):`,g?.error||c.statusText),f(a=>a.map(a=>a.id===p?{...a,sendFailed:!0}:a)))}catch(a){console.error("[useGroupChat] network error sending message:",a),f(a=>a.map(a=>a.id===p?{...a,sendFailed:!0}:a))}return p},[]),p=(0,b.useCallback)(async()=>{let a=k.current?.trim();if(a)try{await fetch(`/api/processes?workspaceId=${encodeURIComponent(a)}`,{method:"DELETE"})}catch{}},[]),q=(0,b.useCallback)(async a=>{let b=k.current?.trim();if(b)try{await fetch(`/api/processes?workspaceId=${encodeURIComponent(b)}&threadId=${encodeURIComponent(a)}`,{method:"DELETE"})}catch{}},[]);return{messages:e,setMessages:f,logs:g,sendMessage:o,loadHistory:m,clearHistory:n,clearLogs:(0,b.useCallback)(async a=>{let b=a?.trim()||k.current?.trim();b?(await fetch(`/api/logs?${d(b)}`,{method:"DELETE"}).catch(a=>console.warn("[useGroupChat] delete logs failed:",a)),k.current===b&&h([])):h([])},[]),chatRuns:i,setChatRuns:j,stop:p,stopThread:q}}],155829);let e=new Set(["spawning","running"]);function f(a){if("string"==typeof a)return a.trim()||void 0}a.s(["useProcessPolling",0,function(a,c){let d=c?.intervalMs??1500,f=c?.idleIntervalMs??1e4,[g,h]=(0,b.useState)(new Set),[i,j]=(0,b.useState)([]),[k,l]=(0,b.useState)({}),[m,n]=(0,b.useState)([]),o=(0,b.useRef)(a);o.current=a;let p=(0,b.useRef)(c?.messages??[]);p.current=c?.messages??[];let q=(0,b.useRef)(c?.setMessages);q.current=c?.setMessages;let r=(0,b.useRef)(0);(0,b.useEffect)(()=>{let a=c?.messages??[];if(a.length>0){let b=Math.max(...a.map(a=>a.timestamp));b>r.current&&(r.current=b)}},[c?.messages]);let s=(0,b.useCallback)(async()=>{let a=o.current;if(!a){h(new Set),j([]),l({}),n([]);return}let b=null;if(a.threadId?b=`/api/processes?threadId=${encodeURIComponent(a.threadId)}`:a.workspaceId&&(b=`/api/processes?workspaceId=${encodeURIComponent(a.workspaceId)}`),!b){h(new Set),j([]),l({}),n([]);return}try{let d=a.workspaceId||a.threadId,f=d?`/api/history?threadId=${encodeURIComponent(d)}&since=${r.current}`:null,g=d?`/api/chat-runs?threadId=${encodeURIComponent(d)}&limit=20`:null,i=[fetch(b)];f&&i.push(fetch(f)),g&&i.push(fetch(g));let[k,m,s]=await Promise.all(i),t=o.current;if(t?.threadId!==a.threadId||t?.workspaceId!==a.workspaceId)return;if(k.ok){let a=await k.json();j(a);let b=new Set(a.filter(a=>e.has(a.state)).map(a=>a.agentId));h(b);let c={};for(let b of a){if(!e.has(b.state))continue;let a=p.current.find(a=>a.id===b.sinceMessageId),d=a?.rootMessageId??b.sinceMessageId;c[b.agentId]={content:"",rootMessageId:d}}l(c)}if(s?.ok){var c;let a=(c=await s.json(),Array.isArray(c)?c.map(a=>{if(!a||"object"!=typeof a)return null;let b="string"==typeof a.chatRunId?a.chatRunId:"string"==typeof a.id?a.id:null,c="string"==typeof a.threadId?a.threadId:null,d="string"==typeof a.status?a.status:null,e="string"==typeof a.rootMessageId?a.rootMessageId:(a.rootMessageId,null);return b&&c&&d&&("queued"===d||"running"===d||"awaiting_user"===d||"blocked"===d||"completed"===d||"failed"===d||"cancelled"===d)?{chatRunId:b,threadId:c,rootMessageId:e,status:d,optimistic:!1}:null}).filter(a=>!!a):[]);n(a)}if(m?.ok&&q.current){let a=await m.json();if(a.length>0){let b=Math.max(...a.map(a=>a.timestamp));b>r.current&&(r.current=b),q.current(b=>{let c=new Set(b.map(a=>a.id)),d=a.filter(a=>!c.has(a.id)),e=b.map(b=>a.find(a=>a.id===b.id)??b);return 0===d.length?e:[...e,...d].sort((a,b)=>a.timestamp-b.timestamp)})}}}catch{}},[]),t=a?.threadId||a?.workspaceId||null,u=m.some(a=>"queued"===a.status||"running"===a.status),v=i.some(a=>e.has(a.state)),w=u||v?d:f;return(0,b.useEffect)(()=>{if(!t){h(new Set),j([]),l({}),n([]);return}s();let a=setInterval(s,w);return()=>clearInterval(a)},[t,w,s]),{activeAgents:g,processes:i,streaming:k,chatRuns:m,poll:s}}],496368),a.s(["extractComposerRouting",0,function(a,b){let c=new Set,d=new Set;!function a(b,c){if(b)for(let d of b)c(d),a(d.content,c)}(a.content,a=>{if("participantMention"!==a.type)return;let b=a.attrs??{},e="string"==typeof b.id?b.id.trim():"",f="string"==typeof b.kind?b.kind:"agent";e&&"agent"===f&&(c.add(e),"parallel"===b.mode&&d.add(e))});let e=f(b);return{...e?{pinnedParticipantId:e}:{},mentionedParticipantIds:Array.from(c),parallelParticipantIds:Array.from(d)}},"orderParticipantIds",0,function(a,b){let c=function(a){if(!Array.isArray(a))return[];let b=new Set,c=[];for(let d of a){if("string"!=typeof d)continue;let a=d.trim();!a||b.has(a)||(b.add(a),c.push(a))}return c}(a),d=f(b);return d&&c.includes(d)?[d,...c.filter(a=>a!==d)]:c}],785061)},73948,a=>{"use strict";let b=(0,a.i(831709).default)("play",[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]]);a.s(["Play",0,b],73948)},44668,a=>{"use strict";let b=(0,a.i(831709).default)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);a.s(["CheckCircle2",0,b],44668)},734709,a=>{"use strict";var b=a.i(187924),c=a.i(572131);a.s(["default",0,function({isOpen:a,title:d,message:e,preview:f,confirmLabel:g="Confirm",cancelLabel:h="Cancel",variant:i="default",onConfirm:j,onCancel:k}){let l=(0,c.useRef)(null),m=(0,c.useRef)(null);(0,c.useEffect)(()=>{if(a){let a=setTimeout(()=>l.current?.focus(),50);return()=>clearTimeout(a)}},[a]);let n=(0,c.useCallback)(a=>{"Escape"===a.key&&k()},[k]);if(!a)return null;let o="danger"===i;return(0,b.jsxs)("div",{className:"fixed inset-0 z-[100] flex items-center justify-center bg-black/50 backdrop-blur-md",style:{animation:"confirm-overlay-in 200ms ease-out"},onClick:a=>a.target===a.currentTarget&&k(),onKeyDown:n,children:[(0,b.jsxs)("div",{ref:m,className:"w-full max-w-md mx-4 bg-[var(--card-bg)] rounded-2xl border border-[var(--card-border)] shadow-2xl overflow-hidden",style:{animation:"confirm-dialog-in 250ms cubic-bezier(0.34, 1.56, 0.64, 1)"},children:[(0,b.jsx)("div",{className:"px-6 pt-6 pb-3",children:(0,b.jsxs)("div",{className:"flex items-start gap-4",children:[o&&(0,b.jsx)("div",{className:"flex-shrink-0 w-11 h-11 rounded-full bg-red-500/10 border border-red-500/20 flex items-center justify-center",children:(0,b.jsx)("svg",{className:"w-5 h-5 text-red-500",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,children:(0,b.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M14.74 9l-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 01-2.244 2.077H8.084a2.25 2.25 0 01-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 00-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 013.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 00-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 00-7.5 0"})})}),(0,b.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,b.jsx)("h3",{className:"text-[15px] font-semibold text-[var(--foreground)]",children:d}),(0,b.jsx)("p",{className:"mt-1 text-[13px] text-[var(--muted-foreground)] leading-relaxed",children:e})]})]})}),f&&(0,b.jsx)("div",{className:"mx-6 mb-3 px-3 py-2.5 rounded-lg bg-[var(--muted)]/40 border border-[var(--card-border)]",children:(0,b.jsxs)("p",{className:"text-[12px] text-[var(--muted-foreground)] line-clamp-3 leading-relaxed italic",children:["“",f,"”"]})}),(0,b.jsx)("div",{className:"mx-6 border-t border-[var(--card-border)]"}),(0,b.jsxs)("div",{className:"px-6 py-4 flex items-center justify-end gap-2.5",children:[(0,b.jsx)("button",{onClick:k,className:"px-4 py-2 rounded-lg text-[13px] font-medium text-[var(--muted-foreground)] hover:text-[var(--foreground)] hover:bg-[var(--muted)]/60 transition-all duration-150",children:h}),(0,b.jsx)("button",{ref:l,onClick:j,className:`px-4 py-2 rounded-lg text-[13px] font-medium transition-all duration-150 ${o?"bg-red-500 text-white hover:bg-red-600 active:scale-[0.97]":"btn-primary active:scale-[0.97]"}`,children:g})]})]}),(0,b.jsx)("style",{children:`
2
+ @keyframes confirm-overlay-in {
3
+ from { opacity: 0; }
4
+ to { opacity: 1; }
5
+ }
6
+ @keyframes confirm-dialog-in {
7
+ from {
8
+ opacity: 0;
9
+ transform: scale(0.9) translateY(10px);
10
+ }
11
+ to {
12
+ opacity: 1;
13
+ transform: scale(1) translateY(0);
14
+ }
15
+ }
16
+ `})]})}])},663794,a=>{"use strict";let b=(0,a.i(831709).default)("ban",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M4.929 4.929 19.07 19.071",key:"196cmz"}]]);a.s(["Ban",0,b],663794)},379065,a=>{"use strict";let b=(0,a.i(831709).default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);a.s(["ExternalLink",0,b],379065)},354658,a=>{"use strict";let b=(0,a.i(831709).default)("save",[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]]);a.s(["Save",0,b],354658)},675665,a=>{"use strict";var b=a.i(572131);a.s(["useLinearConnection",0,function(){let[a,c]=(0,b.useState)(!1),[d,e]=(0,b.useState)(!0),[f,g]=(0,b.useState)(null),[h,i]=(0,b.useState)({claude:!1,codex:!1,gemini:!1}),[j,k]=(0,b.useState)({}),l=(0,b.useRef)(null),m=(0,b.useCallback)(async()=>{try{let a=await fetch("/api/linear/mcp-setup"),b=await a.json();k(b.configured??{})}catch{}},[]),n=(0,b.useCallback)(async()=>{try{let[a,b]=await Promise.all([fetch("/api/linear/status"),fetch("/api/linear/mcp-setup")]),d=await a.json(),e=await b.json();return c(d.connected),g(d.user??null),i(d.clis??{claude:!1,codex:!1,gemini:!1}),k(e.configured??{}),d.connected}catch{return c(!1),!1}finally{e(!1)}},[]);(0,b.useEffect)(()=>(n(),()=>{l.current&&clearInterval(l.current)}),[n]);let o=(0,b.useCallback)(()=>{window.open("/api/linear/auth","_blank","noopener"),l.current&&clearInterval(l.current),l.current=setInterval(async()=>{await n()&&l.current&&(clearInterval(l.current),l.current=null)},2e3)},[n]),p=(0,b.useCallback)(async a=>{try{let b=await fetch("/api/linear/token",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({accessToken:a})});if(!b.ok){let a=await b.json().catch(()=>({}));return{ok:!1,error:a.error||"Failed to save token"}}return await n(),{ok:!0}}catch{return{ok:!1,error:"Failed to connect"}}},[n]);return{connected:a,loading:d,user:f,clis:h,mcpConfigured:j,connect:o,connectWithKey:p,disconnect:(0,b.useCallback)(async()=>{await fetch("/api/linear/status",{method:"DELETE"}),c(!1),g(null)},[]),configureMcp:(0,b.useCallback)(async a=>{try{let b=await fetch("/api/linear/mcp-setup",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cli:a})});if(!b.ok){let a=await b.json().catch(()=>({}));return{ok:!1,error:a.error||"Failed to configure MCP"}}return await m(),{ok:!0}}catch{return{ok:!1,error:"Failed to configure MCP"}}},[m]),refresh:n}}])}];
17
+
18
+ //# sourceMappingURL=%5Broot-of-the-server%5D__039h7r.._.js.map