@mndrk/agx 2.0.44 → 2.0.45

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 (440) hide show
  1. package/cloud-runtime/standalone/.linear-token.json +2 -2
  2. package/cloud-runtime/standalone/.next/BUILD_ID +1 -1
  3. package/cloud-runtime/standalone/.next/app-path-routes-manifest.json +2 -0
  4. package/cloud-runtime/standalone/.next/build-manifest.json +2 -2
  5. package/cloud-runtime/standalone/.next/prerender-manifest.json +3 -3
  6. package/cloud-runtime/standalone/.next/routes-manifest.json +13 -1
  7. package/cloud-runtime/standalone/.next/server/app/_global-error.html +2 -2
  8. package/cloud-runtime/standalone/.next/server/app/_global-error.rsc +1 -1
  9. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  10. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  11. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  12. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  13. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  14. package/cloud-runtime/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  15. package/cloud-runtime/standalone/.next/server/app/_not-found.html +2 -2
  16. package/cloud-runtime/standalone/.next/server/app/_not-found.rsc +2 -2
  17. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  18. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  19. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  20. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  21. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  22. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  23. package/cloud-runtime/standalone/.next/server/app/agents/[id]/page.js.nft.json +1 -1
  24. package/cloud-runtime/standalone/.next/server/app/agents/[id]/page_client-reference-manifest.js +1 -1
  25. package/cloud-runtime/standalone/.next/server/app/agents/page_client-reference-manifest.js +1 -1
  26. package/cloud-runtime/standalone/.next/server/app/agents.html +2 -2
  27. package/cloud-runtime/standalone/.next/server/app/agents.rsc +2 -2
  28. package/cloud-runtime/standalone/.next/server/app/agents.segments/_full.segment.rsc +2 -2
  29. package/cloud-runtime/standalone/.next/server/app/agents.segments/_head.segment.rsc +1 -1
  30. package/cloud-runtime/standalone/.next/server/app/agents.segments/_index.segment.rsc +2 -2
  31. package/cloud-runtime/standalone/.next/server/app/agents.segments/_tree.segment.rsc +2 -2
  32. package/cloud-runtime/standalone/.next/server/app/agents.segments/agents/__PAGE__.segment.rsc +1 -1
  33. package/cloud-runtime/standalone/.next/server/app/agents.segments/agents.segment.rsc +1 -1
  34. package/cloud-runtime/standalone/.next/server/app/api/agent-specs/route.js +1 -1
  35. package/cloud-runtime/standalone/.next/server/app/api/agent-specs/route.js.nft.json +1 -1
  36. package/cloud-runtime/standalone/.next/server/app/api/agents/[id]/profile/route.js +1 -1
  37. package/cloud-runtime/standalone/.next/server/app/api/agents/[id]/profile/route.js.nft.json +1 -1
  38. package/cloud-runtime/standalone/.next/server/app/api/agents/export/route.js +1 -1
  39. package/cloud-runtime/standalone/.next/server/app/api/agents/export/route.js.nft.json +1 -1
  40. package/cloud-runtime/standalone/.next/server/app/api/automations/create/route.js +1 -1
  41. package/cloud-runtime/standalone/.next/server/app/api/automations/create/route.js.nft.json +1 -1
  42. package/cloud-runtime/standalone/.next/server/app/api/automations/route.js +1 -1
  43. package/cloud-runtime/standalone/.next/server/app/api/automations/route.js.nft.json +1 -1
  44. package/cloud-runtime/standalone/.next/server/app/api/chat/route.js +1 -1
  45. package/cloud-runtime/standalone/.next/server/app/api/chat/route.js.nft.json +1 -1
  46. package/cloud-runtime/standalone/.next/server/app/api/file-search/route.js.nft.json +1 -1
  47. package/cloud-runtime/standalone/.next/server/app/api/graphs/[graphId]/nodes/[nodeId]/route.js +1 -1
  48. package/cloud-runtime/standalone/.next/server/app/api/graphs/[graphId]/nodes/[nodeId]/route.js.nft.json +1 -1
  49. package/cloud-runtime/standalone/.next/server/app/api/health/route.js +1 -1
  50. package/cloud-runtime/standalone/.next/server/app/api/health/route.js.nft.json +1 -1
  51. package/cloud-runtime/standalone/.next/server/app/api/learnings/route.js +1 -1
  52. package/cloud-runtime/standalone/.next/server/app/api/learnings/route.js.nft.json +1 -1
  53. package/cloud-runtime/standalone/.next/server/app/api/linear/callback/route.js +1 -1
  54. package/cloud-runtime/standalone/.next/server/app/api/linear/callback/route.js.nft.json +1 -1
  55. package/cloud-runtime/standalone/.next/server/app/api/linear/issues/context/route/app-paths-manifest.json +3 -0
  56. package/cloud-runtime/standalone/.next/server/app/api/linear/issues/context/route/build-manifest.json +11 -0
  57. package/cloud-runtime/standalone/.next/server/app/api/linear/issues/context/route/server-reference-manifest.json +4 -0
  58. package/cloud-runtime/standalone/.next/server/app/api/linear/issues/context/route.js +10 -0
  59. package/cloud-runtime/standalone/.next/server/app/api/linear/issues/context/route.js.map +5 -0
  60. package/cloud-runtime/standalone/.next/server/app/api/linear/issues/context/route.js.nft.json +1 -0
  61. package/cloud-runtime/standalone/.next/server/app/api/linear/issues/context/route_client-reference-manifest.js +2 -0
  62. package/cloud-runtime/standalone/.next/server/app/api/linear/issues/route.js +5 -2
  63. package/cloud-runtime/standalone/.next/server/app/api/linear/issues/route.js.nft.json +1 -1
  64. package/cloud-runtime/standalone/.next/server/app/api/linear/options/route/app-paths-manifest.json +3 -0
  65. package/cloud-runtime/standalone/.next/server/app/api/linear/options/route/build-manifest.json +11 -0
  66. package/cloud-runtime/standalone/.next/server/app/api/linear/options/route/server-reference-manifest.json +4 -0
  67. package/cloud-runtime/standalone/.next/server/app/api/linear/options/route.js +7 -0
  68. package/cloud-runtime/standalone/.next/server/app/api/linear/options/route.js.map +5 -0
  69. package/cloud-runtime/standalone/.next/server/app/api/linear/options/route.js.nft.json +1 -0
  70. package/cloud-runtime/standalone/.next/server/app/api/linear/options/route_client-reference-manifest.js +2 -0
  71. package/cloud-runtime/standalone/.next/server/app/api/linear/status/route.js.nft.json +1 -1
  72. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/start/route.js +1 -1
  73. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/start/route.js.nft.json +1 -1
  74. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/status/route.js +1 -1
  75. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/status/route.js.nft.json +1 -1
  76. package/cloud-runtime/standalone/.next/server/app/api/participants/route.js +1 -1
  77. package/cloud-runtime/standalone/.next/server/app/api/participants/route.js.nft.json +1 -1
  78. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/agents/route.js +1 -1
  79. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/agents/route.js.nft.json +1 -1
  80. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v1/route.js +1 -1
  81. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v1/route.js.nft.json +1 -1
  82. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v2/route.js +1 -1
  83. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v2/route.js.nft.json +1 -1
  84. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/route.js +1 -1
  85. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
  86. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/skills/route.js +1 -1
  87. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/skills/route.js.nft.json +1 -1
  88. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/threads/route.js +1 -1
  89. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/threads/route.js.nft.json +1 -1
  90. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/variables/route.js +1 -1
  91. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/variables/route.js.nft.json +1 -1
  92. package/cloud-runtime/standalone/.next/server/app/api/projects/route.js +1 -1
  93. package/cloud-runtime/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
  94. package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/cancel/route.js +1 -1
  95. package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/cancel/route.js.nft.json +1 -1
  96. package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/route.js +1 -1
  97. package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/route.js.nft.json +1 -1
  98. package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/runs/route.js +1 -1
  99. package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/runs/route.js.nft.json +1 -1
  100. package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/agents/route.js +1 -1
  101. package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/agents/route.js.nft.json +1 -1
  102. package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/poll/route.js +1 -1
  103. package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/poll/route.js.nft.json +1 -1
  104. package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/route.js +1 -1
  105. package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/route.js.nft.json +1 -1
  106. package/cloud-runtime/standalone/.next/server/app/api/providers/route.js.nft.json +1 -1
  107. package/cloud-runtime/standalone/.next/server/app/api/queue/complete/route.js +1 -1
  108. package/cloud-runtime/standalone/.next/server/app/api/queue/complete/route.js.nft.json +1 -1
  109. package/cloud-runtime/standalone/.next/server/app/api/queue/route.js +4 -4
  110. package/cloud-runtime/standalone/.next/server/app/api/queue/route.js.nft.json +1 -1
  111. package/cloud-runtime/standalone/.next/server/app/api/schedules/debug/route.js +4 -4
  112. package/cloud-runtime/standalone/.next/server/app/api/schedules/debug/route.js.nft.json +1 -1
  113. package/cloud-runtime/standalone/.next/server/app/api/schedules/poll/route.js +4 -4
  114. package/cloud-runtime/standalone/.next/server/app/api/schedules/poll/route.js.nft.json +1 -1
  115. package/cloud-runtime/standalone/.next/server/app/api/schedules/route.js +1 -1
  116. package/cloud-runtime/standalone/.next/server/app/api/schedules/route.js.nft.json +1 -1
  117. package/cloud-runtime/standalone/.next/server/app/api/status/route.js +1 -1
  118. package/cloud-runtime/standalone/.next/server/app/api/status/route.js.nft.json +1 -1
  119. package/cloud-runtime/standalone/.next/server/app/api/summarize/route.js +1 -1
  120. package/cloud-runtime/standalone/.next/server/app/api/summarize/route.js.nft.json +1 -1
  121. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js +1 -1
  122. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js.nft.json +1 -1
  123. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/route.js +1 -1
  124. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/route.js.nft.json +1 -1
  125. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/costs/route.js +1 -1
  126. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/costs/route.js.nft.json +1 -1
  127. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/dependencies/route.js +1 -1
  128. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/dependencies/route.js.nft.json +1 -1
  129. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/events/route.js +1 -1
  130. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/events/route.js.nft.json +1 -1
  131. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/history/route.js +1 -1
  132. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/history/route.js.nft.json +1 -1
  133. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/metrics/route.js +1 -1
  134. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/metrics/route.js.nft.json +1 -1
  135. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/replan/route.js +1 -1
  136. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/replan/route.js.nft.json +1 -1
  137. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/restart/route.js +1 -1
  138. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/restart/route.js.nft.json +1 -1
  139. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/resume/route.js +1 -1
  140. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/resume/route.js.nft.json +1 -1
  141. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/rollback/route.js +1 -1
  142. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/rollback/route.js.nft.json +1 -1
  143. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/route.js +1 -1
  144. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/route.js.nft.json +1 -1
  145. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/schedule/route.js +1 -1
  146. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/schedule/route.js.nft.json +1 -1
  147. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/start/route.js +1 -1
  148. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/start/route.js.nft.json +1 -1
  149. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/stop/route.js +1 -1
  150. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/stop/route.js.nft.json +1 -1
  151. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/history/route.js +1 -1
  152. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/history/route.js.nft.json +1 -1
  153. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/logs/route.js +1 -1
  154. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/logs/route.js.nft.json +1 -1
  155. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/comments/route.js +1 -1
  156. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/comments/route.js.nft.json +1 -1
  157. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/complete/route.js +1 -1
  158. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/complete/route.js.nft.json +1 -1
  159. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/fail/route.js +1 -1
  160. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/fail/route.js.nft.json +1 -1
  161. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/resume/route.js +1 -1
  162. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/resume/route.js.nft.json +1 -1
  163. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/start/route.js +1 -1
  164. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/start/route.js.nft.json +1 -1
  165. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/stop/route.js +1 -1
  166. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/stop/route.js.nft.json +1 -1
  167. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js +1 -1
  168. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js.nft.json +1 -1
  169. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/route.js +1 -1
  170. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
  171. package/cloud-runtime/standalone/.next/server/app/api/tasks/assign-orphans/route.js +1 -1
  172. package/cloud-runtime/standalone/.next/server/app/api/tasks/assign-orphans/route.js.nft.json +1 -1
  173. package/cloud-runtime/standalone/.next/server/app/api/tasks/extract/route.js +1 -1
  174. package/cloud-runtime/standalone/.next/server/app/api/tasks/extract/route.js.nft.json +1 -1
  175. package/cloud-runtime/standalone/.next/server/app/api/tasks/route.js +3 -3
  176. package/cloud-runtime/standalone/.next/server/app/api/tasks/route.js.nft.json +1 -1
  177. package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route.js +1 -1
  178. package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route.js.nft.json +1 -1
  179. package/cloud-runtime/standalone/.next/server/app/api/threads/route.js +1 -1
  180. package/cloud-runtime/standalone/.next/server/app/api/threads/route.js.nft.json +1 -1
  181. package/cloud-runtime/standalone/.next/server/app/api/user-settings/route.js +1 -1
  182. package/cloud-runtime/standalone/.next/server/app/api/user-settings/route.js.nft.json +1 -1
  183. package/cloud-runtime/standalone/.next/server/app/automations/page/react-loadable-manifest.json +2 -2
  184. package/cloud-runtime/standalone/.next/server/app/automations/page.js.nft.json +1 -1
  185. package/cloud-runtime/standalone/.next/server/app/automations/page_client-reference-manifest.js +1 -1
  186. package/cloud-runtime/standalone/.next/server/app/automations.html +2 -2
  187. package/cloud-runtime/standalone/.next/server/app/automations.rsc +3 -3
  188. package/cloud-runtime/standalone/.next/server/app/automations.segments/_full.segment.rsc +3 -3
  189. package/cloud-runtime/standalone/.next/server/app/automations.segments/_head.segment.rsc +1 -1
  190. package/cloud-runtime/standalone/.next/server/app/automations.segments/_index.segment.rsc +2 -2
  191. package/cloud-runtime/standalone/.next/server/app/automations.segments/_tree.segment.rsc +2 -2
  192. package/cloud-runtime/standalone/.next/server/app/automations.segments/automations/__PAGE__.segment.rsc +2 -2
  193. package/cloud-runtime/standalone/.next/server/app/automations.segments/automations.segment.rsc +1 -1
  194. package/cloud-runtime/standalone/.next/server/app/board/page_client-reference-manifest.js +1 -1
  195. package/cloud-runtime/standalone/.next/server/app/board.html +2 -2
  196. package/cloud-runtime/standalone/.next/server/app/board.rsc +2 -2
  197. package/cloud-runtime/standalone/.next/server/app/board.segments/_full.segment.rsc +2 -2
  198. package/cloud-runtime/standalone/.next/server/app/board.segments/_head.segment.rsc +1 -1
  199. package/cloud-runtime/standalone/.next/server/app/board.segments/_index.segment.rsc +2 -2
  200. package/cloud-runtime/standalone/.next/server/app/board.segments/_tree.segment.rsc +2 -2
  201. package/cloud-runtime/standalone/.next/server/app/board.segments/board/__PAGE__.segment.rsc +1 -1
  202. package/cloud-runtime/standalone/.next/server/app/board.segments/board.segment.rsc +1 -1
  203. package/cloud-runtime/standalone/.next/server/app/execution-graph/page_client-reference-manifest.js +1 -1
  204. package/cloud-runtime/standalone/.next/server/app/execution-graph.html +2 -2
  205. package/cloud-runtime/standalone/.next/server/app/execution-graph.rsc +2 -2
  206. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_full.segment.rsc +2 -2
  207. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_head.segment.rsc +1 -1
  208. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_index.segment.rsc +2 -2
  209. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_tree.segment.rsc +2 -2
  210. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/execution-graph/__PAGE__.segment.rsc +1 -1
  211. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/execution-graph.segment.rsc +1 -1
  212. package/cloud-runtime/standalone/.next/server/app/index.html +2 -2
  213. package/cloud-runtime/standalone/.next/server/app/index.rsc +4 -4
  214. package/cloud-runtime/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -3
  215. package/cloud-runtime/standalone/.next/server/app/index.segments/_full.segment.rsc +4 -4
  216. package/cloud-runtime/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  217. package/cloud-runtime/standalone/.next/server/app/index.segments/_index.segment.rsc +2 -2
  218. package/cloud-runtime/standalone/.next/server/app/index.segments/_tree.segment.rsc +3 -3
  219. package/cloud-runtime/standalone/.next/server/app/page.js.nft.json +1 -1
  220. package/cloud-runtime/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  221. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/automations/page/react-loadable-manifest.json +2 -2
  222. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/automations/page.js.nft.json +1 -1
  223. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/automations/page_client-reference-manifest.js +1 -1
  224. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/graph/[taskId]/page_client-reference-manifest.js +1 -1
  225. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page_client-reference-manifest.js +1 -1
  226. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/linear/page/react-loadable-manifest.json +3 -3
  227. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/linear/page.js.nft.json +1 -1
  228. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/linear/page_client-reference-manifest.js +1 -1
  229. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
  230. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page.js.nft.json +1 -1
  231. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page_client-reference-manifest.js +1 -1
  232. package/cloud-runtime/standalone/.next/server/app/projects/orphans/page_client-reference-manifest.js +1 -1
  233. package/cloud-runtime/standalone/.next/server/app/projects/orphans.html +2 -2
  234. package/cloud-runtime/standalone/.next/server/app/projects/orphans.rsc +2 -2
  235. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_full.segment.rsc +2 -2
  236. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_head.segment.rsc +1 -1
  237. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_index.segment.rsc +2 -2
  238. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_tree.segment.rsc +2 -2
  239. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects/orphans/__PAGE__.segment.rsc +1 -1
  240. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects/orphans.segment.rsc +1 -1
  241. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects.segment.rsc +1 -1
  242. package/cloud-runtime/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  243. package/cloud-runtime/standalone/.next/server/app/projects.html +2 -2
  244. package/cloud-runtime/standalone/.next/server/app/projects.rsc +2 -2
  245. package/cloud-runtime/standalone/.next/server/app/projects.segments/_full.segment.rsc +2 -2
  246. package/cloud-runtime/standalone/.next/server/app/projects.segments/_head.segment.rsc +1 -1
  247. package/cloud-runtime/standalone/.next/server/app/projects.segments/_index.segment.rsc +2 -2
  248. package/cloud-runtime/standalone/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
  249. package/cloud-runtime/standalone/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +1 -1
  250. package/cloud-runtime/standalone/.next/server/app/projects.segments/projects.segment.rsc +1 -1
  251. package/cloud-runtime/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  252. package/cloud-runtime/standalone/.next/server/app/settings.html +2 -2
  253. package/cloud-runtime/standalone/.next/server/app/settings.rsc +2 -2
  254. package/cloud-runtime/standalone/.next/server/app/settings.segments/_full.segment.rsc +2 -2
  255. package/cloud-runtime/standalone/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  256. package/cloud-runtime/standalone/.next/server/app/settings.segments/_index.segment.rsc +2 -2
  257. package/cloud-runtime/standalone/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  258. package/cloud-runtime/standalone/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +1 -1
  259. package/cloud-runtime/standalone/.next/server/app/settings.segments/settings.segment.rsc +1 -1
  260. package/cloud-runtime/standalone/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  261. package/cloud-runtime/standalone/.next/server/app/skills.html +2 -2
  262. package/cloud-runtime/standalone/.next/server/app/skills.rsc +2 -2
  263. package/cloud-runtime/standalone/.next/server/app/skills.segments/_full.segment.rsc +2 -2
  264. package/cloud-runtime/standalone/.next/server/app/skills.segments/_head.segment.rsc +1 -1
  265. package/cloud-runtime/standalone/.next/server/app/skills.segments/_index.segment.rsc +2 -2
  266. package/cloud-runtime/standalone/.next/server/app/skills.segments/_tree.segment.rsc +2 -2
  267. package/cloud-runtime/standalone/.next/server/app/skills.segments/skills/__PAGE__.segment.rsc +1 -1
  268. package/cloud-runtime/standalone/.next/server/app/skills.segments/skills.segment.rsc +1 -1
  269. package/cloud-runtime/standalone/.next/server/app/status/page_client-reference-manifest.js +1 -1
  270. package/cloud-runtime/standalone/.next/server/app/status.html +2 -2
  271. package/cloud-runtime/standalone/.next/server/app/status.rsc +3 -3
  272. package/cloud-runtime/standalone/.next/server/app/status.segments/_full.segment.rsc +3 -3
  273. package/cloud-runtime/standalone/.next/server/app/status.segments/_head.segment.rsc +1 -1
  274. package/cloud-runtime/standalone/.next/server/app/status.segments/_index.segment.rsc +2 -2
  275. package/cloud-runtime/standalone/.next/server/app/status.segments/_tree.segment.rsc +2 -2
  276. package/cloud-runtime/standalone/.next/server/app/status.segments/status/__PAGE__.segment.rsc +2 -2
  277. package/cloud-runtime/standalone/.next/server/app/status.segments/status.segment.rsc +1 -1
  278. package/cloud-runtime/standalone/.next/server/app/thread/[id]/page.js.nft.json +1 -1
  279. package/cloud-runtime/standalone/.next/server/app/thread/[id]/page_client-reference-manifest.js +1 -1
  280. package/cloud-runtime/standalone/.next/server/app/welcome/page_client-reference-manifest.js +1 -1
  281. package/cloud-runtime/standalone/.next/server/app/welcome.html +2 -2
  282. package/cloud-runtime/standalone/.next/server/app/welcome.rsc +2 -2
  283. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_full.segment.rsc +2 -2
  284. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_head.segment.rsc +1 -1
  285. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_index.segment.rsc +2 -2
  286. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_tree.segment.rsc +2 -2
  287. package/cloud-runtime/standalone/.next/server/app/welcome.segments/welcome/__PAGE__.segment.rsc +1 -1
  288. package/cloud-runtime/standalone/.next/server/app/welcome.segments/welcome.segment.rsc +1 -1
  289. package/cloud-runtime/standalone/.next/server/app-paths-manifest.json +2 -0
  290. package/cloud-runtime/standalone/.next/server/chunks/{[externals]__29a2424c._.js → [externals]__31e26905._.js} +1 -1
  291. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__fb1f7e58._.js → [root-of-the-server]__00fd30c8._.js} +2 -2
  292. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__e4f01b5c._.js → [root-of-the-server]__0e98af48._.js} +2 -2
  293. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__1154e5b3._.js +67 -0
  294. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__44ef900b._.js → [root-of-the-server]__11c1214e._.js} +2 -2
  295. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__5e5eb809._.js → [root-of-the-server]__152b2000._.js} +10 -10
  296. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__f21849ad._.js → [root-of-the-server]__15f3bb96._.js} +2 -2
  297. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__7cade6c6._.js → [root-of-the-server]__1f53e82e._.js} +2 -2
  298. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__c77efd85._.js → [root-of-the-server]__20533a2c._.js} +2 -2
  299. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__e0994be2._.js → [root-of-the-server]__3b1431b6._.js} +2 -2
  300. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__3b83b657._.js +147 -0
  301. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__d3945cae._.js → [root-of-the-server]__3bf516b6._.js} +2 -2
  302. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__2d15af44._.js → [root-of-the-server]__3fd3c5b1._.js} +2 -2
  303. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__13fe776f._.js → [root-of-the-server]__42e713f5._.js} +2 -2
  304. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__1be9b30e._.js → [root-of-the-server]__4b0b5fe1._.js} +2 -2
  305. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__558389f7._.js +3 -0
  306. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__5a042505._.js → [root-of-the-server]__5aaf8c25._.js} +2 -2
  307. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__22b7bf38._.js → [root-of-the-server]__5b13e7a5._.js} +2 -2
  308. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__34efe92e._.js → [root-of-the-server]__635fe0f9._.js} +2 -2
  309. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__c9550a93._.js → [root-of-the-server]__68da2825._.js} +2 -2
  310. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__e5bad635._.js → [root-of-the-server]__6921fe3f._.js} +2 -2
  311. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__dc542063._.js → [root-of-the-server]__6988985c._.js} +2 -2
  312. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__c5025f86._.js → [root-of-the-server]__7012e83d._.js} +7 -7
  313. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__9d3a2caa._.js → [root-of-the-server]__70327010._.js} +2 -2
  314. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__748c718f._.js +147 -0
  315. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__76290829._.js +46 -8
  316. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__c0919d7d._.js → [root-of-the-server]__79fa35e4._.js} +2 -2
  317. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__ac9b93fd._.js → [root-of-the-server]__8d205f82._.js} +2 -2
  318. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__0281ad06._.js → [root-of-the-server]__9ffa67b7._.js} +2 -2
  319. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__dd1cb250._.js → [root-of-the-server]__a300f072._.js} +2 -2
  320. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__5fbc700c._.js → [root-of-the-server]__a7e0ac67._.js} +2 -2
  321. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__91b51f33._.js → [root-of-the-server]__aad349b4._.js} +2 -2
  322. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ad6d6402._.js +46 -8
  323. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__349d67e7._.js → [root-of-the-server]__b133856b._.js} +2 -2
  324. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__45a50de9._.js → [root-of-the-server]__c029daab._.js} +2 -2
  325. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__a1e62918._.js → [root-of-the-server]__c8195768._.js} +1 -1
  326. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ce2a1672._.js +67 -0
  327. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__a2e17f69._.js → [root-of-the-server]__d4f42f49._.js} +2 -2
  328. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__d9f2041b._.js +47 -9
  329. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__ad4cb055._.js → [root-of-the-server]__dca6026a._.js} +2 -2
  330. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__bacb0193._.js → [root-of-the-server]__ddb3aa76._.js} +2 -2
  331. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__de295ef3._.js +3 -0
  332. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__7d4fa0fd._.js → [root-of-the-server]__e7be56ba._.js} +2 -2
  333. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__73b17f49._.js → [root-of-the-server]__ebece93b._.js} +2 -2
  334. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ef27f8cd._.js +49 -0
  335. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__56dbe1a4._.js → [root-of-the-server]__f13c29c6._.js} +2 -2
  336. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__98d58423._.js → [root-of-the-server]__fcdaf6d8._.js} +2 -2
  337. package/cloud-runtime/standalone/.next/server/chunks/_6e7f0ae4._.js +6 -0
  338. package/cloud-runtime/standalone/.next/server/chunks/_a93e80e8._.js +3 -0
  339. package/cloud-runtime/standalone/.next/server/chunks/_next-internal_server_app_api_linear_issues_context_route_actions_0b2c282c.js +3 -0
  340. package/cloud-runtime/standalone/.next/server/chunks/_next-internal_server_app_api_linear_options_route_actions_29764947.js +3 -0
  341. package/cloud-runtime/standalone/.next/server/chunks/lib_app-config_ts_7f2f30ad._.js +3 -0
  342. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__1c4256ce._.js +3 -0
  343. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__4c9d0778._.js +3 -0
  344. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__69887882._.js +3 -0
  345. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__f59f0dc7._.js +3 -0
  346. package/cloud-runtime/standalone/.next/server/chunks/ssr/{_95434d70._.js → _1d26be78._.js} +2 -2
  347. package/cloud-runtime/standalone/.next/server/chunks/ssr/_32c878b9._.js +3 -0
  348. package/cloud-runtime/standalone/.next/server/chunks/ssr/_60d0bae4._.js +3 -0
  349. package/cloud-runtime/standalone/.next/server/chunks/ssr/_77e1407a._.js +3 -0
  350. package/cloud-runtime/standalone/.next/server/chunks/ssr/_7f7a828a._.js +3 -0
  351. package/cloud-runtime/standalone/.next/server/chunks/ssr/_ba5903a7._.js +3 -0
  352. package/cloud-runtime/standalone/.next/server/chunks/ssr/_ed4fece9._.js +3 -0
  353. package/cloud-runtime/standalone/.next/server/chunks/ssr/_f51a3112._.js +3 -0
  354. package/cloud-runtime/standalone/.next/server/chunks/ssr/app_projects_[slug]_linear_page_tsx_971a6ba7._.js +3 -3
  355. package/cloud-runtime/standalone/.next/server/chunks/ssr/components_chat-ui_bfeda794._.js +7 -3
  356. package/cloud-runtime/standalone/.next/server/functions-config-manifest.json +2 -0
  357. package/cloud-runtime/standalone/.next/server/instrumentation.js +1 -1
  358. package/cloud-runtime/standalone/.next/server/middleware-manifest.json +5 -5
  359. package/cloud-runtime/standalone/.next/server/pages/404.html +2 -2
  360. package/cloud-runtime/standalone/.next/server/pages/500.html +2 -2
  361. package/cloud-runtime/standalone/.next/server/server-reference-manifest.js +1 -1
  362. package/cloud-runtime/standalone/.next/server/server-reference-manifest.json +1 -1
  363. package/cloud-runtime/standalone/.next/static/chunks/00716478a3ee55a2.js +37 -0
  364. package/cloud-runtime/standalone/.next/static/chunks/02add5a8d35c53fe.js +1 -0
  365. package/cloud-runtime/standalone/.next/static/chunks/2362d5c0dcaa5d64.js +1 -0
  366. package/cloud-runtime/standalone/.next/static/chunks/2730394502dd3664.js +1 -0
  367. package/cloud-runtime/standalone/.next/static/chunks/3091043e8c282dce.css +1 -0
  368. package/cloud-runtime/standalone/.next/static/chunks/3dc50de1c86e1ce9.js +1 -0
  369. package/cloud-runtime/standalone/.next/static/chunks/4ea8f08087116055.js +1 -0
  370. package/cloud-runtime/standalone/.next/static/chunks/5607ad702ebb8a4b.js +9 -0
  371. package/cloud-runtime/standalone/.next/static/chunks/6103b9b5538bba4d.css +2 -0
  372. package/cloud-runtime/standalone/.next/static/chunks/98c20da4973991f0.js +1 -0
  373. package/cloud-runtime/standalone/.next/static/chunks/a9da98f883ac833b.js +1 -0
  374. package/cloud-runtime/standalone/.next/static/chunks/{da12f313213a5615.js → b2127dc67c5ade9f.js} +1 -1
  375. package/cloud-runtime/standalone/.next/static/chunks/{76229fb555232113.js → b3377e39d47c71cf.js} +1 -1
  376. package/cloud-runtime/standalone/.next/static/chunks/bf2a2fafb710e63c.js +1 -0
  377. package/cloud-runtime/standalone/.next/static/chunks/c0d17e0c37ba8e7a.js +1 -0
  378. package/cloud-runtime/standalone/.next/static/chunks/db131a0b6350e416.js +1 -0
  379. package/cloud-runtime/standalone/.next/static/chunks/e51fddf53a6dc1e4.js +9 -0
  380. package/cloud-runtime/standalone/.next/static/chunks/{66769c2bf128027d.js → f4360c3e4089263f.js} +1 -1
  381. package/cloud-runtime/standalone/Dockerfile +5 -5
  382. package/cloud-runtime/standalone/app/api/linear/callback/route.ts +2 -1
  383. package/cloud-runtime/standalone/app/api/linear/issues/context/route.ts +26 -0
  384. package/cloud-runtime/standalone/app/api/linear/issues/route.ts +37 -42
  385. package/cloud-runtime/standalone/app/api/linear/options/route.ts +31 -0
  386. package/cloud-runtime/standalone/app/api/status/route.ts +2 -2
  387. package/cloud-runtime/standalone/components/LinearBoard.tsx +165 -117
  388. package/cloud-runtime/standalone/components/chat-ui/ChatContainer.tsx +3 -1
  389. package/cloud-runtime/standalone/components/chat-ui/Composer.tsx +54 -2
  390. package/cloud-runtime/standalone/components/chat-ui/MentionPopover.tsx +43 -2
  391. package/cloud-runtime/standalone/hooks/useLinearIssueMentions.ts +64 -0
  392. package/cloud-runtime/standalone/hooks/useLinearIssues.ts +26 -6
  393. package/cloud-runtime/standalone/hooks/useMentionAutocomplete.ts +54 -6
  394. package/cloud-runtime/standalone/instrumentation.ts +2 -1
  395. package/cloud-runtime/standalone/lib/app-config.ts +55 -0
  396. package/cloud-runtime/standalone/lib/chat/linear-issue-context.ts +79 -0
  397. package/cloud-runtime/standalone/lib/linear-client.ts +166 -15
  398. package/cloud-runtime/standalone/lib/linear-issue-store.ts +427 -0
  399. package/cloud-runtime/standalone/lib/linear-issues.ts +360 -0
  400. package/cloud-runtime/standalone/lib/security.ts +2 -2
  401. package/cloud-runtime/standalone/lib/tiptap/composer-mentions.ts +38 -0
  402. package/cloud-runtime/standalone/lib/tiptap/editor-utils.ts +11 -0
  403. package/cloud-runtime/standalone/lib/tiptap/serialize-composer.ts +10 -0
  404. package/cloud-runtime/standalone/next.config.ts +2 -1
  405. package/cloud-runtime/standalone/src/graph/internal-function-dispatcher.ts +2 -5
  406. package/cloud-runtime/standalone/state/automations/.state/24a6a5db-3b14-49c4-841f-29f10f015fbb.json +3 -3
  407. package/cloud-runtime/standalone/styles/composer-pills.css +13 -0
  408. package/package.json +1 -1
  409. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__05243927._.js +0 -29
  410. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__1017e012._.js +0 -3
  411. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__28524c6a._.js +0 -3
  412. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c1b28690._.js +0 -49
  413. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__dffa5183._.js +0 -29
  414. package/cloud-runtime/standalone/.next/server/chunks/_110bf46e._.js +0 -6
  415. package/cloud-runtime/standalone/.next/server/chunks/_22fe5fd2._.js +0 -3
  416. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__35f9b4a6._.js +0 -3
  417. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__43a0398d._.js +0 -3
  418. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__7e7d6790._.js +0 -3
  419. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__b6598a70._.js +0 -3
  420. package/cloud-runtime/standalone/.next/server/chunks/ssr/_087a5b2b._.js +0 -3
  421. package/cloud-runtime/standalone/.next/server/chunks/ssr/_1e5aee62._.js +0 -3
  422. package/cloud-runtime/standalone/.next/server/chunks/ssr/_45f91a8f._.js +0 -3
  423. package/cloud-runtime/standalone/.next/server/chunks/ssr/_fb404ac0._.js +0 -3
  424. package/cloud-runtime/standalone/.next/static/chunks/0010f3df27ae53b8.js +0 -1
  425. package/cloud-runtime/standalone/.next/static/chunks/09c637be82a06122.js +0 -1
  426. package/cloud-runtime/standalone/.next/static/chunks/0fe219bd73492107.js +0 -5
  427. package/cloud-runtime/standalone/.next/static/chunks/2dbfd095c1e1d01f.js +0 -1
  428. package/cloud-runtime/standalone/.next/static/chunks/360fde144fd22461.js +0 -1
  429. package/cloud-runtime/standalone/.next/static/chunks/416cf5039e669b5d.js +0 -1
  430. package/cloud-runtime/standalone/.next/static/chunks/95b85b1cb6868d27.js +0 -1
  431. package/cloud-runtime/standalone/.next/static/chunks/966278eaefc0aa32.js +0 -1
  432. package/cloud-runtime/standalone/.next/static/chunks/ab74849aeb87503e.js +0 -5
  433. package/cloud-runtime/standalone/.next/static/chunks/c5661b1d4c5abd6a.css +0 -2
  434. package/cloud-runtime/standalone/.next/static/chunks/d522224ad5c8d724.css +0 -1
  435. package/cloud-runtime/standalone/.next/static/chunks/e2fa3c18dd56dc25.js +0 -1
  436. package/cloud-runtime/standalone/.next/static/chunks/e910386016ceacad.js +0 -37
  437. package/cloud-runtime/standalone/.next/static/chunks/f2fe77583374541b.js +0 -1
  438. /package/cloud-runtime/standalone/.next/static/{1ixi4WIJBgIPp7LJeYeKs → Y8QdDdLJI3yzNjkyPjuJ-}/_buildManifest.js +0 -0
  439. /package/cloud-runtime/standalone/.next/static/{1ixi4WIJBgIPp7LJeYeKs → Y8QdDdLJI3yzNjkyPjuJ-}/_clientMiddlewareManifest.json +0 -0
  440. /package/cloud-runtime/standalone/.next/static/{1ixi4WIJBgIPp7LJeYeKs → Y8QdDdLJI3yzNjkyPjuJ-}/_ssgManifest.js +0 -0
@@ -1,4 +1,4 @@
1
1
  1:"$Sreact.fragment"
2
2
  2:I[339756,["/_next/static/chunks/012b9216c9932478.js","/_next/static/chunks/73e3194f06db260e.js"],"default"]
3
3
  3:I[837457,["/_next/static/chunks/012b9216c9932478.js","/_next/static/chunks/73e3194f06db260e.js"],"default"]
4
- 0:{"buildId":"1ixi4WIJBgIPp7LJeYeKs","rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"loading":null,"isPartial":false}
4
+ 0:{"buildId":"Y8QdDdLJI3yzNjkyPjuJ-","rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"loading":null,"isPartial":false}
@@ -32,8 +32,10 @@
32
32
  "/api/linear/auth/route": "app/api/linear/auth/route.js",
33
33
  "/api/linear/callback/route": "app/api/linear/callback/route.js",
34
34
  "/api/linear/cycles/route": "app/api/linear/cycles/route.js",
35
+ "/api/linear/issues/context/route": "app/api/linear/issues/context/route.js",
35
36
  "/api/linear/issues/route": "app/api/linear/issues/route.js",
36
37
  "/api/linear/mcp-setup/route": "app/api/linear/mcp-setup/route.js",
38
+ "/api/linear/options/route": "app/api/linear/options/route.js",
37
39
  "/api/linear/runs/[id]/route": "app/api/linear/runs/[id]/route.js",
38
40
  "/api/linear/runs/route": "app/api/linear/runs/route.js",
39
41
  "/api/linear/status/route": "app/api/linear/status/route.js",
@@ -1,3 +1,3 @@
1
1
  module.exports=[522734,(e,s,r)=>{s.exports=e.x("fs",()=>require("fs"))},924868,(e,s,r)=>{s.exports=e.x("fs/promises",()=>require("fs/promises"))},874533,(e,s,r)=>{s.exports=e.x("node:child_process",()=>require("node:child_process"))},812057,(e,s,r)=>{s.exports=e.x("node:util",()=>require("node:util"))},482848,e=>{e.v(s=>Promise.all(["server/chunks/[externals]_node:child_process_261e8bca._.js"].map(s=>e.l(s))).then(()=>s(874533)))}];
2
2
 
3
- //# sourceMappingURL=%5Bexternals%5D__29a2424c._.js.map
3
+ //# sourceMappingURL=%5Bexternals%5D__31e26905._.js.map
@@ -1,4 +1,4 @@
1
- module.exports=[918622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},556704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},832319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},324725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},193695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},522734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},814747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},446786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},259833,e=>{"use strict";function t(e,t){let r=e.prepare(`PRAGMA ${t}`).get();if(!r)return;let o=Object.values(r);return o.length>0?o[0]:void 0}function r(e,t){return e.prepare(`PRAGMA ${t}`).all()}function o(e,t){e.exec(`PRAGMA ${t}`)}function a(e,t){e.exec("BEGIN");try{let r=t();return e.exec("COMMIT"),r}catch(t){throw e.exec("ROLLBACK"),t}}function n(e,t){return(...r)=>{e.exec("BEGIN");try{let o=t(...r);return e.exec("COMMIT"),o}catch(t){throw e.exec("ROLLBACK"),t}}}e.s(["pragmaAll",()=>r,"pragmaGet",()=>t,"pragmaSet",()=>o,"transaction",()=>a,"transactionFn",()=>n])},233405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},949041,e=>{"use strict";let t={id:"2c3cc1ca-956d-4b62-b295-4d2d3374103f",email:process.env.AGX_BOARD_USER_EMAIL||"local@agx.board",name:process.env.AGX_BOARD_USER_NAME||"Local Board User"};e.s(["LOCAL_USER",0,t])},121729,e=>{"use strict";e.x("node:sqlite",()=>require("node:sqlite"),!0);var t=e.i(259833);e.i(522734);var r=e.i(446786),o=e.i(814747);let a="3.35.0",n=["json1"],i=["fts5"],s=["nfs","smb","cifs","efs","fuse.sshfs"];function c(e,t){try{if("json1"===t)return e.prepare("SELECT json('{}')").get(),!0;if("fts5"===t)return e.exec("CREATE VIRTUAL TABLE IF NOT EXISTS _fts5_check USING fts5(x)"),e.exec("DROP TABLE IF EXISTS _fts5_check"),!0;return!1}catch{return!1}}function l(l,d){let u=[],p=l.prepare("SELECT sqlite_version() as v").get();for(let e of(0>function(e,t){let r=e.split(".").map(Number),o=t.split(".").map(Number);for(let e=0;e<3;e++){let t=(r[e]||0)-(o[e]||0);if(0!==t)return t}return 0}(p.v,a)&&u.push({kind:"version_mismatch",message:`SQLite version ${p.v} is below minimum ${a}`,found:p.v,required:`>= ${a}`,fix:"Ensure Node.js >= 22.16 is installed (node:sqlite is built-in)"}),n))c(l,e)||u.push({kind:"missing_extension",message:`Required SQLite extension '${e}' is not available`,required:e,fix:`Rebuild SQLite with -DSQLITE_ENABLE_${e.toUpperCase()}=1, or use a system SQLite that includes it`});for(let e of i)c(l,e)||console.warn(`[startup] Recommended SQLite extension '${e}' is not available. Full-text search will be disabled.`);let m=function(t){"linux"!==r.default.platform()&&r.default.platform();try{let a=o.default.resolve(t),{execSync:n}=e.r(233405);if("darwin"===r.default.platform()){let e=n(`df -T "${a}" 2>/dev/null || df "${a}"`,{encoding:"utf-8",timeout:3e3}).trim().split("\n");if(e.length>=2){let t=e[1].split(/\s+/),r=t[0]?.toLowerCase()||"";if(r.includes("://")||r.includes("nfs")||r.includes("smb"))return r}}}catch{}return null}(d);m&&s.some(e=>m.toLowerCase().includes(e))&&u.push({kind:"filesystem_error",message:`Database path '${d}' is on a network filesystem (${m})`,path:d,found:m,fix:"Move the database file to a local SSD. WAL mode requires local filesystem with reliable fsync."});try{(0,t.pragmaSet)(l,"journal_mode = wal"),(0,t.pragmaSet)(l,"foreign_keys = 1"),(0,t.pragmaSet)(l,"busy_timeout = 5000"),(0,t.pragmaSet)(l,"synchronous = 1"),(0,t.pragmaSet)(l,"cache_size = -64000");let e=(0,t.pragmaGet)(l,"journal_mode").toLowerCase(),r=new Set(["wal","delete"]);if(!r.has(e)){(0,t.pragmaSet)(l,"journal_mode = DELETE");let e=(0,t.pragmaGet)(l,"journal_mode").toLowerCase();r.has(e)?((0,t.pragmaSet)(l,"synchronous = FULL"),console.warn(`[startup] WAL unavailable, using journal_mode=${e} with synchronous=FULL`)):u.push({kind:"pragma_error",message:`Failed to set journal_mode (got '${e}', tried WAL then DELETE)`,found:e,required:"wal or delete",fix:"Ensure the database file is on a local filesystem and no other process holds an exclusive lock."})}}catch(e){u.push({kind:"pragma_error",message:`Failed to apply required PRAGMAs: ${e.message}`,fix:"Check file permissions and ensure the database is not read-only."})}return u}e.s(["validateSQLiteEnvironment",()=>l])},254799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},500874,(e,t,r)=>{t.exports=e.x("buffer",()=>require("buffer"))},924868,(e,t,r)=>{t.exports=e.x("fs/promises",()=>require("fs/promises"))},579042,e=>{"use strict";e.s(["DEFAULT_EXECUTION_POLICY",0,{replanBudgetRemaining:3,replanBudgetInitial:3,verifyBudgetRemaining:5,verifyBudgetInitial:5,maxConcurrentAutoChecks:1,immutableRequiredGates:!0,maxConcurrent:3,priorityMode:"fifo",nodeTimeoutMs:18e5,graphTimeoutMs:864e5},"FAILURE_NODE_STATUSES",0,["failed"],"INCOMPLETE_FOR_DONE_STATUSES",0,["pending","running","awaiting_human","blocked"],"SOFT_DEP_SATISFIED_STATUSES",0,["done","passed","failed","skipped","blocked"],"SUCCESS_NODE_STATUSES",0,["done","passed"],"TERMINAL_NODE_STATUSES",0,["done","passed","failed","skipped"]])},338479,e=>{"use strict";var t=e.i(254799);e.i(201037);var r=e.i(200866),o=e.i(434542),a=e.i(300248);function n(e){return{id:e.id,name:e.name,prompt:e.prompt,agentId:e.agent_id||"",projectId:e.project_id||"",provider:e.provider||e.cli||"claude",model:e.model||"",cliArgs:e.cli_args||"",cronExpr:e.cron_expr,cadence:e.cadence,state:e.state,overlapPolicy:e.overlap_policy,catchUpPolicy:e.catch_up_policy||"fire_once",cancelCheckSec:e.cancel_check_sec,triggerType:e.trigger_type||"scheduled",condition:e.condition||"",checkEveryMs:e.check_every_ms||3e5,nextRunAt:e.next_run_at,lastRunAt:e.last_run_at,lastOutcome:e.last_outcome,createdAt:e.created_at,updatedAt:e.updated_at}}function i(e){return{id:e.id,jobId:e.job_id,status:e.status,output:e.output,error:e.error,durationMs:e.duration_ms,startedAt:e.started_at,finishedAt:e.finished_at,cancelledAt:e.cancelled_at,createdAt:e.created_at}}function s(e){return Object.values(e).some(e=>void 0!==e)}class c{db;automationRepository;constructor(e,t){this.db=e,this.automationRepository=t}getAutomationRepo(){return this.automationRepository??=(0,o.getAutomationRepository)(),this.automationRepository}createJob(e){if(!(0,o.isAutomationFrontmatterEnabled)())return this.createLegacyJob(e);let a=(0,t.randomUUID)(),n=new Date().toISOString(),i=this.getAutomationRepo().createAutomation({id:a,name:e.name,...e.projectId?{projectId:e.projectId}:{},state:"active",trigger:(e.triggerType??"scheduled")==="condition"?{type:"condition",condition:e.condition??"",checkEveryMs:e.checkEveryMs??3e5}:{type:"scheduled",...e.cadence?{cadence:e.cadence}:{},...e.cronExpr?{cronExpr:e.cronExpr}:{}},execution:{overlapPolicy:e.overlapPolicy,catchUpPolicy:e.catchUpPolicy,cancelCheckSec:e.cancelCheckSec},target:{type:"prompt_job",...e.agentId?{agentId:e.agentId}:{},...e.provider?{provider:e.provider}:{},...e.model?{model:e.model}:{},...void 0!==e.cliArgs?{cliArgs:e.cliArgs}:{}},createdAt:n,body:e.prompt}),s=(0,r.automationRecordToPromptJob)(i);return this.upsertLegacyJobRow(s),s}getJob(e){if(!(0,o.isAutomationFrontmatterEnabled)())return this.getLegacyJob(e);let t=this.getAutomationRepo().getAutomation(e);if(t?.definition.target.type==="prompt_job"){let e=(0,r.automationRecordToPromptJob)(t);return this.ensureLegacyJobRow(e),e}return(0,o.isAutomationDualReadEnabled)()?this.getLegacyJob(e):null}listJobs(e){if(!(0,o.isAutomationFrontmatterEnabled)())return this.listLegacyJobs(e);let t=new Map;for(let o of this.getAutomationRepo().listVisibleAutomations({targetType:"prompt_job",...e?.state?{state:e.state}:{},...e?.projectId?{projectId:e.projectId}:{}})){let e=(0,r.automationRecordToPromptJob)(o);t.set(e.id,e),this.ensureLegacyJobRow(e)}if((0,o.isAutomationDualReadEnabled)())for(let r of this.listLegacyJobs(e))t.has(r.id)||t.set(r.id,r);return[...t.values()].sort((e,t)=>{let r=Date.parse(e.createdAt);return Date.parse(t.createdAt)-r})}updateJob(e,t){if(!(0,o.isAutomationFrontmatterEnabled)())return this.updateLegacyJob(e,t);let a=this.getPromptJobRecord(e,!0);if(!a)return null;let n=this.buildDefinitionPatch(a,t);if(s(n)){let t=this.getAutomationRepo().updateAutomation(e,n);if(!t)return null;a=t}let i=this.buildStatePatch(t);if(s(i)){let t=this.getAutomationRepo().updateAutomationState(e,i);if(!t)return null;a=t}let c=(0,r.automationRecordToPromptJob)(a);return this.upsertLegacyJobRow(c),c}deleteJob(e){(0,o.isAutomationFrontmatterEnabled)()&&this.getAutomationRepo().deleteAutomation(e),this.db.prepare("DELETE FROM prompt_jobs WHERE id = ?").run(e)}getDueJobs(e=Date.now()){if(!(0,o.isAutomationFrontmatterEnabled)())return this.getLegacyDueJobs(e);let t=new Map;for(let o of this.getAutomationRepo().listDueAutomations(e,{targetType:"prompt_job"})){let e=(0,r.automationRecordToPromptJob)(o);t.set(e.id,e),this.ensureLegacyJobRow(e)}if((0,o.isAutomationDualReadEnabled)())for(let r of this.getLegacyDueJobs(e))t.has(r.id)||t.set(r.id,r);return[...t.values()].sort((e,t)=>(e.nextRunAt??Number.MAX_SAFE_INTEGER)-(t.nextRunAt??Number.MAX_SAFE_INTEGER))}createRun(e){this.ensureLegacyJobRowById(e);let r=(0,t.randomUUID)();return this.db.prepare("INSERT INTO prompt_runs (id, job_id) VALUES (?, ?)").run(r,e),this.getRun(r)}getRun(e){let t=this.db.prepare("SELECT * FROM prompt_runs WHERE id = ?").get(e);return t?i(t):null}listRuns(e,t=50){return this.db.prepare("SELECT * FROM prompt_runs WHERE job_id = ? ORDER BY created_at DESC LIMIT ?").all(e,t).map(i)}updateRun(e,t){let r={status:"status",output:"output",error:"error",durationMs:"duration_ms",startedAt:"started_at",finishedAt:"finished_at",cancelledAt:"cancelled_at"},o=[],a=[];for(let[e,n]of Object.entries(t)){let t=r[e];t&&(o.push(`${t} = ?`),a.push(n??null))}return 0===o.length||(a.push(e),this.db.prepare(`UPDATE prompt_runs SET ${o.join(", ")} WHERE id = ?`).run(...a.map(e=>e))),this.getRun(e)}hasRunningRun(e){return void 0!==this.db.prepare("SELECT id FROM prompt_runs WHERE job_id = ? AND status IN ('queued', 'running') LIMIT 1").get(e)}isRunCancelled(e){let t=this.db.prepare("SELECT status FROM prompt_runs WHERE id = ?").get(e);return t?.status==="cancelled"}getPromptJobRecord(e,t){let r=this.getAutomationRepo().getAutomation(e);if(r?.definition.target.type==="prompt_job")return r;if(!t||!(0,o.isAutomationDualReadEnabled)())return null;let a=this.getLegacyJob(e);return a?this.materializeLegacyJob(a):null}materializeLegacyJob(e){let t=(0,r.promptJobToAutomationDefinition)(e),o=(0,r.promptJobToAutomationRuntimeState)(e),a=this.getAutomationRepo().upsertAutomation(t);return this.getAutomationRepo().updateAutomationState(e.id,{nextRunAt:o.nextRunAt,lastRunAt:o.lastRunAt,lastOutcome:o.lastOutcome,lastError:o.lastError,updatedAt:o.updatedAt})??a}buildDefinitionPatch(e,t){let r={},o={},a={},n={};if(void 0!==t.name&&(r.name=t.name),void 0!==t.projectId&&(r.projectId=t.projectId||null),void 0!==t.state&&(r.state=t.state),void 0!==t.prompt&&(r.body=t.prompt),void 0!==t.triggerType||void 0!==t.cadence||void 0!==t.cronExpr||void 0!==t.condition||void 0!==t.checkEveryMs){let r=e.definition.trigger,a=t.triggerType??r.type;o.type=a,"condition"===a?(o.condition=t.condition??("condition"===r.type?r.condition:""),o.checkEveryMs=t.checkEveryMs??("condition"===r.type?r.checkEveryMs:3e5)):(o.cadence=""===t.cadence?void 0:t.cadence??("scheduled"===r.type?r.cadence:void 0),o.cronExpr=void 0!==t.cronExpr?t.cronExpr:void 0!==t.cadence&&""!==t.cadence?void 0:"scheduled"===r.type?r.cronExpr:void 0,o.intervalMs="scheduled"===r.type?r.intervalMs:void 0)}return void 0!==t.overlapPolicy&&(a.overlapPolicy=t.overlapPolicy),void 0!==t.catchUpPolicy&&(a.catchUpPolicy=t.catchUpPolicy),void 0!==t.cancelCheckSec&&(a.cancelCheckSec=t.cancelCheckSec),void 0!==t.agentId&&(n.agentId=t.agentId||void 0),void 0!==t.provider&&(n.provider=t.provider||void 0),void 0!==t.model&&(n.model=t.model||void 0),void 0!==t.cliArgs&&(n.cliArgs=t.cliArgs),{...Object.keys(r).length>0?r:{},...Object.keys(o).length>0?{trigger:o}:{},...Object.keys(a).length>0?{execution:a}:{},...Object.keys(n).length>0?{target:n}:{}}}buildStatePatch(e){let t={};return void 0!==e.nextRunAt&&(t.nextRunAt=e.nextRunAt),void 0!==e.lastRunAt&&(t.lastRunAt=e.lastRunAt),void 0!==e.lastOutcome&&(t.lastOutcome=e.lastOutcome),t}ensureLegacyJobRowById(e){if(this.legacyJobRowExists(e))return;let t=this.getJob(e);t&&this.upsertLegacyJobRow(t)}ensureLegacyJobRow(e){this.legacyJobRowExists(e.id)||this.upsertLegacyJobRow(e)}legacyJobRowExists(e){return void 0!==this.db.prepare("SELECT 1 FROM prompt_jobs WHERE id = ?").get(e)}upsertLegacyJobRow(e){this.db.prepare(`INSERT INTO prompt_jobs (
1
+ module.exports=[918622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},556704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},832319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},324725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},193695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},522734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},814747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},446786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},259833,e=>{"use strict";function t(e,t){let r=e.prepare(`PRAGMA ${t}`).get();if(!r)return;let o=Object.values(r);return o.length>0?o[0]:void 0}function r(e,t){return e.prepare(`PRAGMA ${t}`).all()}function o(e,t){e.exec(`PRAGMA ${t}`)}function a(e,t){e.exec("BEGIN");try{let r=t();return e.exec("COMMIT"),r}catch(t){throw e.exec("ROLLBACK"),t}}function n(e,t){return(...r)=>{e.exec("BEGIN");try{let o=t(...r);return e.exec("COMMIT"),o}catch(t){throw e.exec("ROLLBACK"),t}}}e.s(["pragmaAll",()=>r,"pragmaGet",()=>t,"pragmaSet",()=>o,"transaction",()=>a,"transactionFn",()=>n])},233405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},949041,e=>{"use strict";let t={id:"2c3cc1ca-956d-4b62-b295-4d2d3374103f",email:process.env.AGX_BOARD_USER_EMAIL||"local@agx.board",name:process.env.AGX_BOARD_USER_NAME||"Local Board User"};e.s(["LOCAL_USER",0,t])},121729,e=>{"use strict";e.x("node:sqlite",()=>require("node:sqlite"),!0);var t=e.i(259833);e.i(522734);var r=e.i(446786),o=e.i(814747);let a="3.35.0",n=["json1"],i=["fts5"],s=["nfs","smb","cifs","efs","fuse.sshfs"];function c(e,t){try{if("json1"===t)return e.prepare("SELECT json('{}')").get(),!0;if("fts5"===t)return e.exec("CREATE VIRTUAL TABLE IF NOT EXISTS _fts5_check USING fts5(x)"),e.exec("DROP TABLE IF EXISTS _fts5_check"),!0;return!1}catch{return!1}}function l(l,d){let u=[],p=l.prepare("SELECT sqlite_version() as v").get();for(let e of(0>function(e,t){let r=e.split(".").map(Number),o=t.split(".").map(Number);for(let e=0;e<3;e++){let t=(r[e]||0)-(o[e]||0);if(0!==t)return t}return 0}(p.v,a)&&u.push({kind:"version_mismatch",message:`SQLite version ${p.v} is below minimum ${a}`,found:p.v,required:`>= ${a}`,fix:"Ensure Node.js >= 22.16 is installed (node:sqlite is built-in)"}),n))c(l,e)||u.push({kind:"missing_extension",message:`Required SQLite extension '${e}' is not available`,required:e,fix:`Rebuild SQLite with -DSQLITE_ENABLE_${e.toUpperCase()}=1, or use a system SQLite that includes it`});for(let e of i)c(l,e)||console.warn(`[startup] Recommended SQLite extension '${e}' is not available. Full-text search will be disabled.`);let m=function(t){"linux"!==r.default.platform()&&r.default.platform();try{let a=o.default.resolve(t),{execSync:n}=e.r(233405);if("darwin"===r.default.platform()){let e=n(`df -T "${a}" 2>/dev/null || df "${a}"`,{encoding:"utf-8",timeout:3e3}).trim().split("\n");if(e.length>=2){let t=e[1].split(/\s+/),r=t[0]?.toLowerCase()||"";if(r.includes("://")||r.includes("nfs")||r.includes("smb"))return r}}}catch{}return null}(d);m&&s.some(e=>m.toLowerCase().includes(e))&&u.push({kind:"filesystem_error",message:`Database path '${d}' is on a network filesystem (${m})`,path:d,found:m,fix:"Move the database file to a local SSD. WAL mode requires local filesystem with reliable fsync."});try{(0,t.pragmaSet)(l,"journal_mode = wal"),(0,t.pragmaSet)(l,"foreign_keys = 1"),(0,t.pragmaSet)(l,"busy_timeout = 5000"),(0,t.pragmaSet)(l,"synchronous = 1"),(0,t.pragmaSet)(l,"cache_size = -64000");let e=(0,t.pragmaGet)(l,"journal_mode").toLowerCase(),r=new Set(["wal","delete"]);if(!r.has(e)){(0,t.pragmaSet)(l,"journal_mode = DELETE");let e=(0,t.pragmaGet)(l,"journal_mode").toLowerCase();r.has(e)?((0,t.pragmaSet)(l,"synchronous = FULL"),console.warn(`[startup] WAL unavailable, using journal_mode=${e} with synchronous=FULL`)):u.push({kind:"pragma_error",message:`Failed to set journal_mode (got '${e}', tried WAL then DELETE)`,found:e,required:"wal or delete",fix:"Ensure the database file is on a local filesystem and no other process holds an exclusive lock."})}}catch(e){u.push({kind:"pragma_error",message:`Failed to apply required PRAGMAs: ${e.message}`,fix:"Check file permissions and ensure the database is not read-only."})}return u}e.s(["validateSQLiteEnvironment",()=>l])},500874,(e,t,r)=>{t.exports=e.x("buffer",()=>require("buffer"))},254799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},924868,(e,t,r)=>{t.exports=e.x("fs/promises",()=>require("fs/promises"))},579042,e=>{"use strict";e.s(["DEFAULT_EXECUTION_POLICY",0,{replanBudgetRemaining:3,replanBudgetInitial:3,verifyBudgetRemaining:5,verifyBudgetInitial:5,maxConcurrentAutoChecks:1,immutableRequiredGates:!0,maxConcurrent:3,priorityMode:"fifo",nodeTimeoutMs:18e5,graphTimeoutMs:864e5},"FAILURE_NODE_STATUSES",0,["failed"],"INCOMPLETE_FOR_DONE_STATUSES",0,["pending","running","awaiting_human","blocked"],"SOFT_DEP_SATISFIED_STATUSES",0,["done","passed","failed","skipped","blocked"],"SUCCESS_NODE_STATUSES",0,["done","passed"],"TERMINAL_NODE_STATUSES",0,["done","passed","failed","skipped"]])},338479,e=>{"use strict";var t=e.i(254799);e.i(201037);var r=e.i(200866),o=e.i(434542),a=e.i(300248);function n(e){return{id:e.id,name:e.name,prompt:e.prompt,agentId:e.agent_id||"",projectId:e.project_id||"",provider:e.provider||e.cli||"claude",model:e.model||"",cliArgs:e.cli_args||"",cronExpr:e.cron_expr,cadence:e.cadence,state:e.state,overlapPolicy:e.overlap_policy,catchUpPolicy:e.catch_up_policy||"fire_once",cancelCheckSec:e.cancel_check_sec,triggerType:e.trigger_type||"scheduled",condition:e.condition||"",checkEveryMs:e.check_every_ms||3e5,nextRunAt:e.next_run_at,lastRunAt:e.last_run_at,lastOutcome:e.last_outcome,createdAt:e.created_at,updatedAt:e.updated_at}}function i(e){return{id:e.id,jobId:e.job_id,status:e.status,output:e.output,error:e.error,durationMs:e.duration_ms,startedAt:e.started_at,finishedAt:e.finished_at,cancelledAt:e.cancelled_at,createdAt:e.created_at}}function s(e){return Object.values(e).some(e=>void 0!==e)}class c{db;automationRepository;constructor(e,t){this.db=e,this.automationRepository=t}getAutomationRepo(){return this.automationRepository??=(0,o.getAutomationRepository)(),this.automationRepository}createJob(e){if(!(0,o.isAutomationFrontmatterEnabled)())return this.createLegacyJob(e);let a=(0,t.randomUUID)(),n=new Date().toISOString(),i=this.getAutomationRepo().createAutomation({id:a,name:e.name,...e.projectId?{projectId:e.projectId}:{},state:"active",trigger:(e.triggerType??"scheduled")==="condition"?{type:"condition",condition:e.condition??"",checkEveryMs:e.checkEveryMs??3e5}:{type:"scheduled",...e.cadence?{cadence:e.cadence}:{},...e.cronExpr?{cronExpr:e.cronExpr}:{}},execution:{overlapPolicy:e.overlapPolicy,catchUpPolicy:e.catchUpPolicy,cancelCheckSec:e.cancelCheckSec},target:{type:"prompt_job",...e.agentId?{agentId:e.agentId}:{},...e.provider?{provider:e.provider}:{},...e.model?{model:e.model}:{},...void 0!==e.cliArgs?{cliArgs:e.cliArgs}:{}},createdAt:n,body:e.prompt}),s=(0,r.automationRecordToPromptJob)(i);return this.upsertLegacyJobRow(s),s}getJob(e){if(!(0,o.isAutomationFrontmatterEnabled)())return this.getLegacyJob(e);let t=this.getAutomationRepo().getAutomation(e);if(t?.definition.target.type==="prompt_job"){let e=(0,r.automationRecordToPromptJob)(t);return this.ensureLegacyJobRow(e),e}return(0,o.isAutomationDualReadEnabled)()?this.getLegacyJob(e):null}listJobs(e){if(!(0,o.isAutomationFrontmatterEnabled)())return this.listLegacyJobs(e);let t=new Map;for(let o of this.getAutomationRepo().listVisibleAutomations({targetType:"prompt_job",...e?.state?{state:e.state}:{},...e?.projectId?{projectId:e.projectId}:{}})){let e=(0,r.automationRecordToPromptJob)(o);t.set(e.id,e),this.ensureLegacyJobRow(e)}if((0,o.isAutomationDualReadEnabled)())for(let r of this.listLegacyJobs(e))t.has(r.id)||t.set(r.id,r);return[...t.values()].sort((e,t)=>{let r=Date.parse(e.createdAt);return Date.parse(t.createdAt)-r})}updateJob(e,t){if(!(0,o.isAutomationFrontmatterEnabled)())return this.updateLegacyJob(e,t);let a=this.getPromptJobRecord(e,!0);if(!a)return null;let n=this.buildDefinitionPatch(a,t);if(s(n)){let t=this.getAutomationRepo().updateAutomation(e,n);if(!t)return null;a=t}let i=this.buildStatePatch(t);if(s(i)){let t=this.getAutomationRepo().updateAutomationState(e,i);if(!t)return null;a=t}let c=(0,r.automationRecordToPromptJob)(a);return this.upsertLegacyJobRow(c),c}deleteJob(e){(0,o.isAutomationFrontmatterEnabled)()&&this.getAutomationRepo().deleteAutomation(e),this.db.prepare("DELETE FROM prompt_jobs WHERE id = ?").run(e)}getDueJobs(e=Date.now()){if(!(0,o.isAutomationFrontmatterEnabled)())return this.getLegacyDueJobs(e);let t=new Map;for(let o of this.getAutomationRepo().listDueAutomations(e,{targetType:"prompt_job"})){let e=(0,r.automationRecordToPromptJob)(o);t.set(e.id,e),this.ensureLegacyJobRow(e)}if((0,o.isAutomationDualReadEnabled)())for(let r of this.getLegacyDueJobs(e))t.has(r.id)||t.set(r.id,r);return[...t.values()].sort((e,t)=>(e.nextRunAt??Number.MAX_SAFE_INTEGER)-(t.nextRunAt??Number.MAX_SAFE_INTEGER))}createRun(e){this.ensureLegacyJobRowById(e);let r=(0,t.randomUUID)();return this.db.prepare("INSERT INTO prompt_runs (id, job_id) VALUES (?, ?)").run(r,e),this.getRun(r)}getRun(e){let t=this.db.prepare("SELECT * FROM prompt_runs WHERE id = ?").get(e);return t?i(t):null}listRuns(e,t=50){return this.db.prepare("SELECT * FROM prompt_runs WHERE job_id = ? ORDER BY created_at DESC LIMIT ?").all(e,t).map(i)}updateRun(e,t){let r={status:"status",output:"output",error:"error",durationMs:"duration_ms",startedAt:"started_at",finishedAt:"finished_at",cancelledAt:"cancelled_at"},o=[],a=[];for(let[e,n]of Object.entries(t)){let t=r[e];t&&(o.push(`${t} = ?`),a.push(n??null))}return 0===o.length||(a.push(e),this.db.prepare(`UPDATE prompt_runs SET ${o.join(", ")} WHERE id = ?`).run(...a.map(e=>e))),this.getRun(e)}hasRunningRun(e){return void 0!==this.db.prepare("SELECT id FROM prompt_runs WHERE job_id = ? AND status IN ('queued', 'running') LIMIT 1").get(e)}isRunCancelled(e){let t=this.db.prepare("SELECT status FROM prompt_runs WHERE id = ?").get(e);return t?.status==="cancelled"}getPromptJobRecord(e,t){let r=this.getAutomationRepo().getAutomation(e);if(r?.definition.target.type==="prompt_job")return r;if(!t||!(0,o.isAutomationDualReadEnabled)())return null;let a=this.getLegacyJob(e);return a?this.materializeLegacyJob(a):null}materializeLegacyJob(e){let t=(0,r.promptJobToAutomationDefinition)(e),o=(0,r.promptJobToAutomationRuntimeState)(e),a=this.getAutomationRepo().upsertAutomation(t);return this.getAutomationRepo().updateAutomationState(e.id,{nextRunAt:o.nextRunAt,lastRunAt:o.lastRunAt,lastOutcome:o.lastOutcome,lastError:o.lastError,updatedAt:o.updatedAt})??a}buildDefinitionPatch(e,t){let r={},o={},a={},n={};if(void 0!==t.name&&(r.name=t.name),void 0!==t.projectId&&(r.projectId=t.projectId||null),void 0!==t.state&&(r.state=t.state),void 0!==t.prompt&&(r.body=t.prompt),void 0!==t.triggerType||void 0!==t.cadence||void 0!==t.cronExpr||void 0!==t.condition||void 0!==t.checkEveryMs){let r=e.definition.trigger,a=t.triggerType??r.type;o.type=a,"condition"===a?(o.condition=t.condition??("condition"===r.type?r.condition:""),o.checkEveryMs=t.checkEveryMs??("condition"===r.type?r.checkEveryMs:3e5)):(o.cadence=""===t.cadence?void 0:t.cadence??("scheduled"===r.type?r.cadence:void 0),o.cronExpr=void 0!==t.cronExpr?t.cronExpr:void 0!==t.cadence&&""!==t.cadence?void 0:"scheduled"===r.type?r.cronExpr:void 0,o.intervalMs="scheduled"===r.type?r.intervalMs:void 0)}return void 0!==t.overlapPolicy&&(a.overlapPolicy=t.overlapPolicy),void 0!==t.catchUpPolicy&&(a.catchUpPolicy=t.catchUpPolicy),void 0!==t.cancelCheckSec&&(a.cancelCheckSec=t.cancelCheckSec),void 0!==t.agentId&&(n.agentId=t.agentId||void 0),void 0!==t.provider&&(n.provider=t.provider||void 0),void 0!==t.model&&(n.model=t.model||void 0),void 0!==t.cliArgs&&(n.cliArgs=t.cliArgs),{...Object.keys(r).length>0?r:{},...Object.keys(o).length>0?{trigger:o}:{},...Object.keys(a).length>0?{execution:a}:{},...Object.keys(n).length>0?{target:n}:{}}}buildStatePatch(e){let t={};return void 0!==e.nextRunAt&&(t.nextRunAt=e.nextRunAt),void 0!==e.lastRunAt&&(t.lastRunAt=e.lastRunAt),void 0!==e.lastOutcome&&(t.lastOutcome=e.lastOutcome),t}ensureLegacyJobRowById(e){if(this.legacyJobRowExists(e))return;let t=this.getJob(e);t&&this.upsertLegacyJobRow(t)}ensureLegacyJobRow(e){this.legacyJobRowExists(e.id)||this.upsertLegacyJobRow(e)}legacyJobRowExists(e){return void 0!==this.db.prepare("SELECT 1 FROM prompt_jobs WHERE id = ?").get(e)}upsertLegacyJobRow(e){this.db.prepare(`INSERT INTO prompt_jobs (
2
2
  id, name, prompt, cli, agent_id, project_id, provider, model, cli_args,
3
3
  cron_expr, cadence, state, overlap_policy, catch_up_policy, cancel_check_sec,
4
4
  trigger_type, condition, check_every_ms, next_run_at, last_run_at, last_outcome,
@@ -36,4 +36,4 @@ module.exports=[918622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/a
36
36
  AND next_run_at <= ?
37
37
  ORDER BY next_run_at ASC`).all(e).map(n)}}var l=e.i(522734),d=e.i(814747),u=e.i(960447);let p=null;function m(){if(!p){let e=(0,u.getSQLiteDb)();if(e.prepare("SELECT 1 FROM sqlite_master WHERE type='table' AND name='prompt_jobs'").get()){if(!e.prepare("SELECT 1 FROM pragma_table_info('prompt_jobs') WHERE name='catch_up_policy'").get())for(let t of(0,l.readFileSync)(d.default.join(process.cwd(),"db/sqlite/003_prompt_scheduler_v2.sql"),"utf-8").replace(/^\s*--.*$/gm,"").split(";").map(e=>e.trim()).filter(Boolean))try{e.exec(t)}catch(e){if(!e.message?.includes("duplicate column"))throw e}}else{let t=(0,l.readFileSync)(d.default.join(process.cwd(),"db/sqlite/002_prompt_scheduler_schema.sql"),"utf-8");e.exec(t)}p=new c(e)}return p}e.s(["getPromptJobStore",()=>m],338479)},835338,e=>{"use strict";var t=e.i(344506),r=e.i(508689);function o(e){let o=e.trim();if(!o)return null;let a=(0,t.toCronExpr)(o);return a?{cronExpr:a.cronExpr,cadence:a.cadence}:!function(e){if(5!==e.split(/\s+/).length)return!1;try{return r.CronExpressionParser.parse(e),!0}catch{return!1}}(o)?null:{cronExpr:o,cadence:o}}function a(e,t){try{return r.CronExpressionParser.parse(e,{currentDate:t?new Date(t):new Date}).next().toDate().getTime()}catch{return null}}e.s(["computeNextRun",()=>a,"parseCadence",()=>o])},730846,e=>{"use strict";var t=e.i(747909),r=e.i(174017),o=e.i(996250),a=e.i(759756),n=e.i(561916),i=e.i(174677),s=e.i(869741),c=e.i(316795),l=e.i(487718),d=e.i(995169),u=e.i(47587),p=e.i(666012),m=e.i(570101),h=e.i(626937),g=e.i(10372),_=e.i(193695);e.i(52474);var E=e.i(600220),f=e.i(89171),R=e.i(338479),x=e.i(835338);async function y(e,{params:t}){try{let{id:e}=await t,r=(0,R.getPromptJobStore)().getJob(e);if(!r)return f.NextResponse.json({error:"Job not found"},{status:404});return f.NextResponse.json({job:r})}catch(e){return console.error("Failed to get prompt job:",e),f.NextResponse.json({error:"Failed to get prompt job",message:e instanceof Error?e.message:String(e)},{status:500})}}async function b(e,{params:t}){try{let{id:r}=await t,o=(0,R.getPromptJobStore)();if(!o.getJob(r))return f.NextResponse.json({error:"Job not found"},{status:404});let{cadence:a,...n}=await e.json(),i={...n};if(void 0!==a&&""!==a){let e=(0,x.parseCadence)(a);if(!e)return f.NextResponse.json({error:`Could not parse cadence: "${a}". Provide a valid cron expression or natural language schedule.`},{status:400});i.cadence=e.cadence,i.cronExpr=e.cronExpr}else""===a&&(i.cadence="");"condition"===i.triggerType&&i.checkEveryMs&&(i.nextRunAt=Date.now()+i.checkEveryMs);let s=o.updateJob(r,i);return f.NextResponse.json({job:s})}catch(e){return console.error("Failed to update prompt job:",e),f.NextResponse.json({error:"Failed to update prompt job",message:e instanceof Error?e.message:String(e)},{status:500})}}async function v(e,{params:t}){try{let{id:e}=await t,r=(0,R.getPromptJobStore)();if(!r.getJob(e))return f.NextResponse.json({error:"Job not found"},{status:404});return r.deleteJob(e),f.NextResponse.json({success:!0})}catch(e){return console.error("Failed to delete prompt job:",e),f.NextResponse.json({error:"Failed to delete prompt job",message:e instanceof Error?e.message:String(e)},{status:500})}}e.s(["DELETE",()=>v,"GET",()=>y,"PATCH",()=>b,"dynamic",0,"force-dynamic","runtime",0,"nodejs"],581248);var A=e.i(581248);let S=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/prompt-jobs/[id]/route",pathname:"/api/prompt-jobs/[id]",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/prompt-jobs/[id]/route.ts",nextConfigOutput:"standalone",userland:A}),{workAsyncStorage:T,workUnitAsyncStorage:j,serverHooks:L}=S;function w(){return(0,o.patchFetch)({workAsyncStorage:T,workUnitAsyncStorage:j})}async function C(e,t,o){S.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let f="/api/prompt-jobs/[id]/route";f=f.replace(/\/index$/,"")||"/";let R=await S.prepare(e,t,{srcPage:f,multiZoneDraftMode:!1});if(!R)return t.statusCode=400,t.end("Bad Request"),null==o.waitUntil||o.waitUntil.call(o,Promise.resolve()),null;let{buildId:x,params:y,nextConfig:b,parsedUrl:v,isDraftMode:A,prerenderManifest:T,routerServerContext:j,isOnDemandRevalidate:L,revalidateOnlyGenerated:w,resolvedPathname:C,clientReferenceManifest:I,serverActionsManifest:k}=R,O=(0,s.normalizeAppPath)(f),N=!!(T.dynamicRoutes[O]||T.routes[C]),P=async()=>((null==j?void 0:j.render404)?await j.render404(e,t,v,!1):t.end("This page could not be found"),null);if(N&&!A){let e=!!T.routes[C],t=T.dynamicRoutes[O];if(t&&!1===t.fallback&&!e){if(b.experimental.adapterPath)return await P();throw new _.NoFallbackError}}let D=null;!N||S.isDev||A||(D="/index"===(D=C)?"/":D);let M=!0===S.isDev||!N,J=N&&!M;k&&I&&(0,i.setManifestsSingleton)({page:f,clientReferenceManifest:I,serverActionsManifest:k});let U=e.method||"GET",F=(0,n.getTracer)(),q=F.getActiveScopeSpan(),$={params:y,prerenderManifest:T,renderOpts:{experimental:{authInterrupts:!!b.experimental.authInterrupts},cacheComponents:!!b.cacheComponents,supportsDynamicResponse:M,incrementalCache:(0,a.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:b.cacheLife,waitUntil:o.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,o,a)=>S.onRequestError(e,t,o,a,j)},sharedContext:{buildId:x}},H=new c.NodeNextRequest(e),B=new c.NodeNextResponse(t),G=l.NextRequestAdapter.fromNodeNextRequest(H,(0,l.signalFromNodeResponse)(t));try{let i=async e=>S.handle(G,$).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=F.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let o=r.get("next.route");if(o){let t=`${U} ${o}`;e.setAttributes({"next.route":o,"http.route":o,"next.span_name":t}),e.updateName(t)}else e.updateName(`${U} ${f}`)}),s=!!(0,a.getRequestMeta)(e,"minimalMode"),c=async a=>{var n,c;let l=async({previousCacheEntry:r})=>{try{if(!s&&L&&w&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let n=await i(a);e.fetchMetrics=$.renderOpts.fetchMetrics;let c=$.renderOpts.pendingWaitUntil;c&&o.waitUntil&&(o.waitUntil(c),c=void 0);let l=$.renderOpts.collectedTags;if(!N)return await (0,p.sendResponse)(H,B,n,$.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 r=void 0!==$.renderOpts.collectedRevalidate&&!($.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&$.renderOpts.collectedRevalidate,o=void 0===$.renderOpts.collectedExpire||$.renderOpts.collectedExpire>=g.INFINITE_CACHE?void 0:$.renderOpts.collectedExpire;return{value:{kind:E.CachedRouteKind.APP_ROUTE,status:n.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:o}}}}catch(t){throw(null==r?void 0:r.isStale)&&await S.onRequestError(e,t,{routerKind:"App Router",routePath:f,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:J,isOnDemandRevalidate:L})},!1,j),t}},d=await S.handleResponse({req:e,nextConfig:b,cacheKey:D,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:T,isRoutePPREnabled:!1,isOnDemandRevalidate:L,revalidateOnlyGenerated:w,responseGenerator:l,waitUntil:o.waitUntil,isMinimalMode:s});if(!N)return null;if((null==d||null==(n=d.value)?void 0:n.kind)!==E.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(c=d.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});s||t.setHeader("x-nextjs-cache",L?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),A&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let _=(0,m.fromNodeOutgoingHttpHeaders)(d.value.headers);return s&&N||_.delete(g.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||_.get("Cache-Control")||_.set("Cache-Control",(0,h.getCacheControlHeader)(d.cacheControl)),await (0,p.sendResponse)(H,B,new Response(d.value.body,{headers:_,status:d.value.status||200})),null};q?await c(q):await F.withPropagatedContext(e.headers,()=>F.trace(d.BaseServerSpan.handleRequest,{spanName:`${U} ${f}`,kind:n.SpanKind.SERVER,attributes:{"http.method":U,"http.target":e.url}},c))}catch(t){if(t instanceof _.NoFallbackError||await S.onRequestError(e,t,{routerKind:"App Router",routePath:O,routeType:"route",revalidateReason:(0,u.getRevalidateReason)({isStaticGeneration:J,isOnDemandRevalidate:L})},!1,j),N)throw t;return await (0,p.sendResponse)(H,B,new Response(null,{status:500})),null}}e.s(["handler",()=>C,"patchFetch",()=>w,"routeModule",()=>S,"serverHooks",()=>L,"workAsyncStorage",()=>T,"workUnitAsyncStorage",()=>j],730846)}];
38
38
 
39
- //# sourceMappingURL=%5Broot-of-the-server%5D__fb1f7e58._.js.map
39
+ //# sourceMappingURL=%5Broot-of-the-server%5D__00fd30c8._.js.map
@@ -1,4 +1,4 @@
1
- module.exports=[666680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},750227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},902157,(e,t,r)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},660526,(e,t,r)=>{t.exports=e.x("node:os",()=>require("node:os"))},446786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},522734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},259833,e=>{"use strict";function t(e,t){let r=e.prepare(`PRAGMA ${t}`).get();if(!r)return;let n=Object.values(r);return n.length>0?n[0]:void 0}function r(e,t){return e.prepare(`PRAGMA ${t}`).all()}function n(e,t){e.exec(`PRAGMA ${t}`)}function a(e,t){e.exec("BEGIN");try{let r=t();return e.exec("COMMIT"),r}catch(t){throw e.exec("ROLLBACK"),t}}function s(e,t){return(...r)=>{e.exec("BEGIN");try{let n=t(...r);return e.exec("COMMIT"),n}catch(t){throw e.exec("ROLLBACK"),t}}}e.s(["pragmaAll",()=>r,"pragmaGet",()=>t,"pragmaSet",()=>n,"transaction",()=>a,"transactionFn",()=>s])},193695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},918622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},556704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},832319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},814747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},233405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},949041,e=>{"use strict";let t={id:"2c3cc1ca-956d-4b62-b295-4d2d3374103f",email:process.env.AGX_BOARD_USER_EMAIL||"local@agx.board",name:process.env.AGX_BOARD_USER_NAME||"Local Board User"};e.s(["LOCAL_USER",0,t])},121729,e=>{"use strict";e.x("node:sqlite",()=>require("node:sqlite"),!0);var t=e.i(259833);e.i(522734);var r=e.i(446786),n=e.i(814747);let a="3.35.0",s=["json1"],o=["fts5"],i=["nfs","smb","cifs","efs","fuse.sshfs"];function l(e,t){try{if("json1"===t)return e.prepare("SELECT json('{}')").get(),!0;if("fts5"===t)return e.exec("CREATE VIRTUAL TABLE IF NOT EXISTS _fts5_check USING fts5(x)"),e.exec("DROP TABLE IF EXISTS _fts5_check"),!0;return!1}catch{return!1}}function u(u,d){let c=[],p=u.prepare("SELECT sqlite_version() as v").get();for(let e of(0>function(e,t){let r=e.split(".").map(Number),n=t.split(".").map(Number);for(let e=0;e<3;e++){let t=(r[e]||0)-(n[e]||0);if(0!==t)return t}return 0}(p.v,a)&&c.push({kind:"version_mismatch",message:`SQLite version ${p.v} is below minimum ${a}`,found:p.v,required:`>= ${a}`,fix:"Ensure Node.js >= 22.16 is installed (node:sqlite is built-in)"}),s))l(u,e)||c.push({kind:"missing_extension",message:`Required SQLite extension '${e}' is not available`,required:e,fix:`Rebuild SQLite with -DSQLITE_ENABLE_${e.toUpperCase()}=1, or use a system SQLite that includes it`});for(let e of o)l(u,e)||console.warn(`[startup] Recommended SQLite extension '${e}' is not available. Full-text search will be disabled.`);let m=function(t){"linux"!==r.default.platform()&&r.default.platform();try{let a=n.default.resolve(t),{execSync:s}=e.r(233405);if("darwin"===r.default.platform()){let e=s(`df -T "${a}" 2>/dev/null || df "${a}"`,{encoding:"utf-8",timeout:3e3}).trim().split("\n");if(e.length>=2){let t=e[1].split(/\s+/),r=t[0]?.toLowerCase()||"";if(r.includes("://")||r.includes("nfs")||r.includes("smb"))return r}}}catch{}return null}(d);m&&i.some(e=>m.toLowerCase().includes(e))&&c.push({kind:"filesystem_error",message:`Database path '${d}' is on a network filesystem (${m})`,path:d,found:m,fix:"Move the database file to a local SSD. WAL mode requires local filesystem with reliable fsync."});try{(0,t.pragmaSet)(u,"journal_mode = wal"),(0,t.pragmaSet)(u,"foreign_keys = 1"),(0,t.pragmaSet)(u,"busy_timeout = 5000"),(0,t.pragmaSet)(u,"synchronous = 1"),(0,t.pragmaSet)(u,"cache_size = -64000");let e=(0,t.pragmaGet)(u,"journal_mode").toLowerCase(),r=new Set(["wal","delete"]);if(!r.has(e)){(0,t.pragmaSet)(u,"journal_mode = DELETE");let e=(0,t.pragmaGet)(u,"journal_mode").toLowerCase();r.has(e)?((0,t.pragmaSet)(u,"synchronous = FULL"),console.warn(`[startup] WAL unavailable, using journal_mode=${e} with synchronous=FULL`)):c.push({kind:"pragma_error",message:`Failed to set journal_mode (got '${e}', tried WAL then DELETE)`,found:e,required:"wal or delete",fix:"Ensure the database file is on a local filesystem and no other process holds an exclusive lock."})}}catch(e){c.push({kind:"pragma_error",message:`Failed to apply required PRAGMAs: ${e.message}`,fix:"Check file permissions and ensure the database is not read-only."})}return c}e.s(["validateSQLiteEnvironment",()=>u])},254799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},500874,(e,t,r)=>{t.exports=e.x("buffer",()=>require("buffer"))},457431,e=>{"use strict";function t(){let{createAdminDbClientSQLite:t}=e.r(960447);return t()}e.i(949041),e.s(["createAdminDbClient",()=>t])},37269,e=>{"use strict";var t=e.i(522734),r=e.i(446786),n=e.i(814747);let a=process.env.AGX_DATA_DIR||n.default.join(r.default.homedir(),".agx"),s=process.env.AGX_DEBUG_LOG_PATH||n.default.join(a,"logs","desktop-chat-debug.log");function o(e,t){return t instanceof Error?{name:t.name,message:t.message,stack:t.stack}:"string"==typeof t&&t.length>2e3?`${t.slice(0,2e3)}...<truncated>`:t}function i(){return s}function l(e,r){try{t.default.mkdirSync(n.default.dirname(s),{recursive:!0});let a=JSON.stringify({ts:new Date().toISOString(),pid:process.pid,event:e,...r?{payload:r}:{}},o);t.default.appendFileSync(s,`${a}
1
+ module.exports=[666680,(e,t,r)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},750227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},902157,(e,t,r)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},660526,(e,t,r)=>{t.exports=e.x("node:os",()=>require("node:os"))},446786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},522734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},259833,e=>{"use strict";function t(e,t){let r=e.prepare(`PRAGMA ${t}`).get();if(!r)return;let n=Object.values(r);return n.length>0?n[0]:void 0}function r(e,t){return e.prepare(`PRAGMA ${t}`).all()}function n(e,t){e.exec(`PRAGMA ${t}`)}function a(e,t){e.exec("BEGIN");try{let r=t();return e.exec("COMMIT"),r}catch(t){throw e.exec("ROLLBACK"),t}}function s(e,t){return(...r)=>{e.exec("BEGIN");try{let n=t(...r);return e.exec("COMMIT"),n}catch(t){throw e.exec("ROLLBACK"),t}}}e.s(["pragmaAll",()=>r,"pragmaGet",()=>t,"pragmaSet",()=>n,"transaction",()=>a,"transactionFn",()=>s])},193695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},918622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},556704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},832319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},814747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},233405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},949041,e=>{"use strict";let t={id:"2c3cc1ca-956d-4b62-b295-4d2d3374103f",email:process.env.AGX_BOARD_USER_EMAIL||"local@agx.board",name:process.env.AGX_BOARD_USER_NAME||"Local Board User"};e.s(["LOCAL_USER",0,t])},121729,e=>{"use strict";e.x("node:sqlite",()=>require("node:sqlite"),!0);var t=e.i(259833);e.i(522734);var r=e.i(446786),n=e.i(814747);let a="3.35.0",s=["json1"],o=["fts5"],i=["nfs","smb","cifs","efs","fuse.sshfs"];function l(e,t){try{if("json1"===t)return e.prepare("SELECT json('{}')").get(),!0;if("fts5"===t)return e.exec("CREATE VIRTUAL TABLE IF NOT EXISTS _fts5_check USING fts5(x)"),e.exec("DROP TABLE IF EXISTS _fts5_check"),!0;return!1}catch{return!1}}function u(u,d){let c=[],p=u.prepare("SELECT sqlite_version() as v").get();for(let e of(0>function(e,t){let r=e.split(".").map(Number),n=t.split(".").map(Number);for(let e=0;e<3;e++){let t=(r[e]||0)-(n[e]||0);if(0!==t)return t}return 0}(p.v,a)&&c.push({kind:"version_mismatch",message:`SQLite version ${p.v} is below minimum ${a}`,found:p.v,required:`>= ${a}`,fix:"Ensure Node.js >= 22.16 is installed (node:sqlite is built-in)"}),s))l(u,e)||c.push({kind:"missing_extension",message:`Required SQLite extension '${e}' is not available`,required:e,fix:`Rebuild SQLite with -DSQLITE_ENABLE_${e.toUpperCase()}=1, or use a system SQLite that includes it`});for(let e of o)l(u,e)||console.warn(`[startup] Recommended SQLite extension '${e}' is not available. Full-text search will be disabled.`);let m=function(t){"linux"!==r.default.platform()&&r.default.platform();try{let a=n.default.resolve(t),{execSync:s}=e.r(233405);if("darwin"===r.default.platform()){let e=s(`df -T "${a}" 2>/dev/null || df "${a}"`,{encoding:"utf-8",timeout:3e3}).trim().split("\n");if(e.length>=2){let t=e[1].split(/\s+/),r=t[0]?.toLowerCase()||"";if(r.includes("://")||r.includes("nfs")||r.includes("smb"))return r}}}catch{}return null}(d);m&&i.some(e=>m.toLowerCase().includes(e))&&c.push({kind:"filesystem_error",message:`Database path '${d}' is on a network filesystem (${m})`,path:d,found:m,fix:"Move the database file to a local SSD. WAL mode requires local filesystem with reliable fsync."});try{(0,t.pragmaSet)(u,"journal_mode = wal"),(0,t.pragmaSet)(u,"foreign_keys = 1"),(0,t.pragmaSet)(u,"busy_timeout = 5000"),(0,t.pragmaSet)(u,"synchronous = 1"),(0,t.pragmaSet)(u,"cache_size = -64000");let e=(0,t.pragmaGet)(u,"journal_mode").toLowerCase(),r=new Set(["wal","delete"]);if(!r.has(e)){(0,t.pragmaSet)(u,"journal_mode = DELETE");let e=(0,t.pragmaGet)(u,"journal_mode").toLowerCase();r.has(e)?((0,t.pragmaSet)(u,"synchronous = FULL"),console.warn(`[startup] WAL unavailable, using journal_mode=${e} with synchronous=FULL`)):c.push({kind:"pragma_error",message:`Failed to set journal_mode (got '${e}', tried WAL then DELETE)`,found:e,required:"wal or delete",fix:"Ensure the database file is on a local filesystem and no other process holds an exclusive lock."})}}catch(e){c.push({kind:"pragma_error",message:`Failed to apply required PRAGMAs: ${e.message}`,fix:"Check file permissions and ensure the database is not read-only."})}return c}e.s(["validateSQLiteEnvironment",()=>u])},500874,(e,t,r)=>{t.exports=e.x("buffer",()=>require("buffer"))},254799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},457431,e=>{"use strict";function t(){let{createAdminDbClientSQLite:t}=e.r(960447);return t()}e.i(949041),e.s(["createAdminDbClient",()=>t])},37269,e=>{"use strict";var t=e.i(522734),r=e.i(446786),n=e.i(814747);let a=process.env.AGX_DATA_DIR||n.default.join(r.default.homedir(),".agx"),s=process.env.AGX_DEBUG_LOG_PATH||n.default.join(a,"logs","desktop-chat-debug.log");function o(e,t){return t instanceof Error?{name:t.name,message:t.message,stack:t.stack}:"string"==typeof t&&t.length>2e3?`${t.slice(0,2e3)}...<truncated>`:t}function i(){return s}function l(e,r){try{t.default.mkdirSync(n.default.dirname(s),{recursive:!0});let a=JSON.stringify({ts:new Date().toISOString(),pid:process.pid,event:e,...r?{payload:r}:{}},o);t.default.appendFileSync(s,`${a}
2
2
  `,"utf8")}catch{}}e.s(["getDebugLogPath",()=>i,"writeDebugLog",()=>l])},701435,e=>{"use strict";let t;var r=e.i(233405);function n(){return process.env.SHELL?.trim()||"/bin/bash"}function a(e){let a=function(){if(void 0!==t)return t;try{let e=n(),a=(0,r.spawnSync)(e,["-lc",'printf %s "$PATH"'],{encoding:"utf8",timeout:5e3});t=(0===a.status?a.stdout.trim():"")||null}catch{t=null}return t}();return{...process.env,...a?{PATH:a}:{},CLAUDECODE:void 0,...e}}function s(e){try{if(!/^[A-Za-z0-9._-]+$/.test(e))return!1;let t=n();return 0===(0,r.spawnSync)(t,["-lc",`command -v ${e} >/dev/null 2>&1`],{encoding:"utf8",timeout:5e3}).status}catch{return!1}}e.s(["buildSpawnEnv",()=>a,"commandExists",()=>s])},914350,e=>{"use strict";var t=e.i(233405),r=e.i(522734),n=e.i(814747),a=e.i(37269),s=e.i(701435);let o=e=>"string"==typeof e&&e.trim().length>0,i=e=>({push:e,flush:()=>{}}),l=e=>{let t="",r=0,n=!1,a=t=>{let a=t.trim();if(a)try{let t=JSON.parse(a);n=!0;let s=(e=>{if(!e||"object"!=typeof e)return"";if("assistant"===e.type)return(Array.isArray(e?.message?.content)?e.message.content:[]).flatMap(e=>e?.type==="text"&&o(e.text)?[e.text]:[]).join("");let t=e?.event;return"stream_event"===e.type&&t?.type==="content_block_delta"&&t?.delta?.type==="text_delta"&&o(t?.delta?.text)?t.delta.text:""})(t);if(!s||t?.type==="assistant"&&r>0)return;r+=s.length,e(s)}catch{n||e(`${t}
3
3
  `)}};return{push:e=>{for(t+=e;;){let e=t.indexOf("\n");if(-1===e)break;a(t.slice(0,e)),t=t.slice(e+1)}},flush:()=>{t.trim()&&a(t),t=""}}},u=e=>{let t="",r=!1,n="",a=t=>{let a=t.trim();if(a)try{let t=JSON.parse(a);r=!0,t?.type==="message"&&t?.role==="assistant"&&o(t?.content)&&((t,r)=>{if(t){if(r){if(n&&t.startsWith(n)){let r=t.slice(n.length);r&&e(r),n=t;return}e(t),n+=t;return}if(n&&t.startsWith(n)){let r=t.slice(n.length);r&&e(r),n=t;return}n||(e(t),n=t)}})(t.content,t?.delta===!0)}catch{r||e(`${t}
4
4
  `)}};return{push:e=>{for(t+=e;;){let e=t.indexOf("\n");if(-1===e)break;a(t.slice(0,e)),t=t.slice(e+1)}},flush:()=>{t.trim()&&a(t),t=""}}},d=e=>{let t="",r=!1,n=new Set,a=t=>{let a=t.trim();if(a)try{let t=JSON.parse(a);if(r=!0,t?.type==="item.completed"&&o(t?.item?.id)){if(n.has(t.item.id))return;n.add(t.item.id)}let s=t&&"object"==typeof t?"item.completed"===t.type&&t.item?.type==="agent_message"&&o(t.item?.text)?t.item.text:"item.delta"===t.type&&t.item?.type==="agent_message"&&o(t.delta?.text)?t.delta.text:"":"";s&&e(s)}catch{r||e(`${t}
@@ -94,4 +94,4 @@ Rules:
94
94
  - If nothing genuinely new was learned, return {"no_change": true}.
95
95
  - Do not wrap in markdown fences.`),p=function(e){try{let t=JSON.parse(s(e));return t&&"object"==typeof t&&!Array.isArray(t)?t:null}catch{return null}}(await d(c));if(!p||p.no_change)return 0;let m="string"==typeof p.updated_note?p.updated_note.trim():"";return m?+!!(0,a.upsertKnowledgeNote)({scope:"project",subjectId:e.projectId,content:m,changeSummary:p.change_summary,sourceType:"thread_transition",sourceId:e.transition.rootMessageId,metadata:{thread_id:e.transition.threadId,root_message_id:e.transition.rootMessageId,status_from:e.transition.fromStatus,status_to:e.transition.toStatus}}).changed:0}async function m(e){let n=await (0,t.getProjectForThread)(e.threadId);if(!n)return{repoInsertedCount:0,projectInsertedCount:0};let a=await (0,t.getProjectWithRepos)(n);if(!a)return{repoInsertedCount:0,projectInsertedCount:0};let s=await (0,r.loadHistory)(e.threadId),o=s.find(t=>t.id===e.rootMessageId);if(!o)return{repoInsertedCount:0,projectInsertedCount:0};let i=[o,...s.filter(t=>t.rootMessageId===e.rootMessageId)],l=0,u=0;return e.scopes.includes("repo")&&(l=await c({trigger:e.trigger,projectName:a.name,transition:e,repos:(a.repos??[]).map(e=>({id:e.id,name:e.name,path:e.path??null})),messages:i})),e.scopes.includes("project")&&(u=await p({trigger:e.trigger,projectId:a.id,projectName:a.name,transition:e,messages:i})),{repoInsertedCount:l,projectInsertedCount:u}}async function h(e){let t=[];"active"===e.fromStatus&&("in-review"===e.toStatus||"done"===e.toStatus)&&t.push("repo"),"done"===e.toStatus&&t.push("project"),0!==t.length&&await m({...e,trigger:"status_transition",scopes:t})}async function g(e){return 0===e.scopes.length?{repoInsertedCount:0,projectInsertedCount:0}:m({threadId:e.threadId,rootMessageId:e.rootMessageId,fromStatus:e.status,toStatus:e.status,outcomeNote:e.outcomeNote,trigger:"manual",scopes:Array.from(new Set(e.scopes))})}e.s(["extractKnowledgeFromThread",()=>g,"extractKnowledgeFromThreadTransition",()=>h])},252314,e=>{"use strict";var t=e.i(747909),r=e.i(174017),n=e.i(996250),a=e.i(759756),s=e.i(561916),o=e.i(174677),i=e.i(869741),l=e.i(316795),u=e.i(487718),d=e.i(995169),c=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 w=e.i(600220),v=e.i(442639),y=e.i(485333);let x=new Set(["active","paused","in-review","done","archived"]);function S(e,t){let r={};for(let n of e){let e=n.threadId||"(default)";r[e]||(r[e]={name:t[e]||e,threads:[]}),r[e].threads.push(n)}return r}async function _(e){try{let{rootMessageId:t,status:r,outcomeNote:n}=await e.json();if(!t||!r)return Response.json({error:"rootMessageId and status are required"},{status:400});if(!x.has(r))return Response.json({error:`Invalid status. Valid values: ${[...x].join(", ")}`},{status:400});let a=await (0,v.getMessageThread)(t);if(!a)return Response.json({error:"Thread not found"},{status:404});let s=(await (0,v.loadHistory)(a.threadId)).find(e=>e.id===t),o=s?.threadStatus??"active";return await (0,v.updateMessageStatus)(a.threadId,t,r,n??null),o!==r&&(0,y.extractKnowledgeFromThreadTransition)({threadId:a.threadId,rootMessageId:t,fromStatus:o,toStatus:r,outcomeNote:n??null}).catch(e=>{console.warn("[threads/PATCH] Thread knowledge extraction failed:",e)}),Response.json({ok:!0,rootMessageId:t,status:r,outcomeNote:n??null})}catch(e){return console.error("Error updating thread status:",e),Response.json({error:"Failed to update thread status"},{status:500})}}async function b(e){try{let t,{searchParams:r}=e.nextUrl,n=r.get("status")?.trim().toLowerCase(),a=r.get("format")?.trim().toLowerCase(),s=r.get("projectId")?.trim(),o=function(e,t){if(!e)return 20;let r=Number.parseInt(e,10);return Number.isFinite(r)?Math.min(Math.max(r,1),100):20}(r.get("limit"),0),i=Math.max(0,Number.parseInt(r.get("offset")??"0",10)||0);if(n&&!x.has(n))return Response.json({error:`Invalid status. Valid values: ${[...x].join(", ")}`},{status:400});if(s){let e=await (0,v.getProjectThreadIds)(s);t=new Set(e)}let{rows:l,total:u}=await (0,v.listRootMessages)({status:n||void 0,limit:s?100:o,offset:s?0:i}),d=l.map(e=>{let t;return{id:e.id,threadId:e.thread_id,title:(t=e.content.replace(/\[agx:spawn\]\s*/g,"").replace(/\s*\[agx:exit:\d+\]\s*/g,"").replace(/\[reaction[^\]]*\]/g,"").replace(/\[SKIP\]/g,"").trim().split("\n")[0]||"(untitled)").length>80?t.slice(0,77)+"...":t,status:e.thread_status??"active",replyCount:e.reply_count,createdAt:e.timestamp,lastActivity:e.last_activity,outcomeNote:e.outcome_note}});t&&(d=d.filter(e=>t.has(e.threadId)));let c=s?d.length:u;s&&(d=d.slice(i,i+o));let p=[...new Set(d.map(e=>e.threadId).filter(Boolean))],m=await (0,v.getWorkspaceNames)(p);if("json"===a)return Response.json({threads:S(d,m),total:c,limit:o,offset:i});return new Response(function(e,t){if(0===e.length)return"No threads found.";let r=[];for(let[,n]of(r.push(`# Threads (${e.length})`),r.push(""),Object.entries(S(e,t))))for(let e of(r.push(`## ${n.name}`),r.push(""),n.threads))r.push(`- **${e.title}**`),r.push(` id: ${e.id}`),r.push(` status: ${e.status}`),r.push(` replies: ${e.replyCount}`),r.push(` updated: ${new Date(e.lastActivity).toISOString().replace("T"," ").slice(0,19)}`),e.outcomeNote&&r.push(` outcome: ${e.outcomeNote}`),r.push("");return r.join("\n")}(d,m),{headers:{"Content-Type":"text/markdown; charset=utf-8"}})}catch(e){return console.error("Error fetching threads:",e),Response.json({error:"Failed to fetch threads"},{status:500})}}e.s(["GET",()=>b,"PATCH",()=>_,"dynamic",0,"force-dynamic","runtime",0,"nodejs"],259928);var j=e.i(259928);let R=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/threads/route",pathname:"/api/threads",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/threads/route.ts",nextConfigOutput:"standalone",userland:j}),{workAsyncStorage:E,workUnitAsyncStorage:I,serverHooks:$}=R;function A(){return(0,n.patchFetch)({workAsyncStorage:E,workUnitAsyncStorage:I})}async function C(e,t,n){R.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let v="/api/threads/route";v=v.replace(/\/index$/,"")||"/";let y=await R.prepare(e,t,{srcPage:v,multiZoneDraftMode:!1});if(!y)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:x,params:S,nextConfig:_,parsedUrl:b,isDraftMode:j,prerenderManifest:E,routerServerContext:I,isOnDemandRevalidate:$,revalidateOnlyGenerated:A,resolvedPathname:C,clientReferenceManifest:T,serverActionsManifest:N}=y,k=(0,i.normalizeAppPath)(v),L=!!(E.dynamicRoutes[k]||E.routes[C]),O=async()=>((null==I?void 0:I.render404)?await I.render404(e,t,b,!1):t.end("This page could not be found"),null);if(L&&!j){let e=!!E.routes[C],t=E.dynamicRoutes[k];if(t&&!1===t.fallback&&!e){if(_.experimental.adapterPath)return await O();throw new f.NoFallbackError}}let P=null;!L||R.isDev||j||(P="/index"===(P=C)?"/":P);let M=!0===R.isDev||!L,D=L&&!M;N&&T&&(0,o.setManifestsSingleton)({page:v,clientReferenceManifest:T,serverActionsManifest:N});let q=e.method||"GET",U=(0,s.getTracer)(),H=U.getActiveScopeSpan(),F={params:S,prerenderManifest:E,renderOpts:{experimental:{authInterrupts:!!_.experimental.authInterrupts},cacheComponents:!!_.cacheComponents,supportsDynamicResponse:M,incrementalCache:(0,a.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:_.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,a)=>R.onRequestError(e,t,n,a,I)},sharedContext:{buildId:x}},G=new l.NodeNextRequest(e),K=new l.NodeNextResponse(t),B=u.NextRequestAdapter.fromNodeNextRequest(G,(0,u.signalFromNodeResponse)(t));try{let o=async e=>R.handle(B,F).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=U.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==d.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${r.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let n=r.get("next.route");if(n){let t=`${q} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${q} ${v}`)}),i=!!(0,a.getRequestMeta)(e,"minimalMode"),l=async a=>{var s,l;let u=async({previousCacheEntry:r})=>{try{if(!i&&$&&A&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await o(a);e.fetchMetrics=F.renderOpts.fetchMetrics;let l=F.renderOpts.pendingWaitUntil;l&&n.waitUntil&&(n.waitUntil(l),l=void 0);let u=F.renderOpts.collectedTags;if(!L)return await (0,p.sendResponse)(G,K,s,F.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,m.toNodeOutgoingHttpHeaders)(s.headers);u&&(t[g.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==F.renderOpts.collectedRevalidate&&!(F.renderOpts.collectedRevalidate>=g.INFINITE_CACHE)&&F.renderOpts.collectedRevalidate,n=void 0===F.renderOpts.collectedExpire||F.renderOpts.collectedExpire>=g.INFINITE_CACHE?void 0:F.renderOpts.collectedExpire;return{value:{kind:w.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await R.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:$})},!1,I),t}},d=await R.handleResponse({req:e,nextConfig:_,cacheKey:P,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:E,isRoutePPREnabled:!1,isOnDemandRevalidate:$,revalidateOnlyGenerated:A,responseGenerator:u,waitUntil:n.waitUntil,isMinimalMode:i});if(!L)return null;if((null==d||null==(s=d.value)?void 0:s.kind)!==w.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(l=d.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});i||t.setHeader("x-nextjs-cache",$?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),j&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,m.fromNodeOutgoingHttpHeaders)(d.value.headers);return i&&L||f.delete(g.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||t.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,h.getCacheControlHeader)(d.cacheControl)),await (0,p.sendResponse)(G,K,new Response(d.value.body,{headers:f,status:d.value.status||200})),null};H?await l(H):await U.withPropagatedContext(e.headers,()=>U.trace(d.BaseServerSpan.handleRequest,{spanName:`${q} ${v}`,kind:s.SpanKind.SERVER,attributes:{"http.method":q,"http.target":e.url}},l))}catch(t){if(t instanceof f.NoFallbackError||await R.onRequestError(e,t,{routerKind:"App Router",routePath:k,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:$})},!1,I),L)throw t;return await (0,p.sendResponse)(G,K,new Response(null,{status:500})),null}}e.s(["handler",()=>C,"patchFetch",()=>A,"routeModule",()=>R,"serverHooks",()=>$,"workAsyncStorage",()=>E,"workUnitAsyncStorage",()=>I],252314)},318801,e=>{e.v(e=>Promise.resolve().then(()=>e(960447)))}];
96
96
 
97
- //# sourceMappingURL=%5Broot-of-the-server%5D__e4f01b5c._.js.map
97
+ //# sourceMappingURL=%5Broot-of-the-server%5D__0e98af48._.js.map
@@ -0,0 +1,67 @@
1
+ module.exports=[193695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},918622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},556704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},832319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},324725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},750227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},902157,(e,t,r)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},810010,e=>{"use strict";function t(e){let t=e?.trim();return t?t.replace(/\/+$/,""):null}let r="http://localhost:41741";function n(){return t("http://localhost:3000")??t(process.env.AGX_BOARD_URL)??t(process.env.NEXT_PUBLIC_AGX_BOARD_URL)??r}function a(){return t(process.env.AGX_BOARD_URL)??t(process.env.NEXT_PUBLIC_AGX_BOARD_URL)??t("http://localhost:3000")??r}function s(){let e=new Set([r,"http://127.0.0.1:41741"]);for(let r of["http://localhost:3000",process.env.AGX_BOARD_URL,process.env.NEXT_PUBLIC_AGX_BOARD_URL]){let n=t(r);n&&e.add(n)}return Array.from(e)}e.s(["getAllowedOrigins",()=>s,"getConfiguredAppBaseUrl",()=>n,"getConfiguredBoardBaseUrl",()=>a])},423502,(e,t,r)=>{},841897,e=>{"use strict";e.i(423502);var t=e.i(902157),r=e.i(750227);function n(){return r.default.join(process.cwd(),".linear-token.json")}function a(e){(0,t.writeFileSync)(n(),JSON.stringify(e,null,2))}function s(){try{(0,t.unlinkSync)(n())}catch{}}class i{accessToken;constructor(e){this.accessToken=e}get viewer(){return this.request("query { viewer { id name email } }").then(e=>e.viewer)}async users(){return(await this.request(`query {
2
+ users(first: 100) {
3
+ nodes {
4
+ id
5
+ name
6
+ }
7
+ }
8
+ }`)).users.nodes.filter(e=>e.name.trim().length>0).map(e=>({id:e.id,name:e.name})).sort((e,t)=>e.name.localeCompare(t.name))}async teams(){return(await this.request(`query {
9
+ teams(first: 50) {
10
+ nodes {
11
+ id
12
+ name
13
+ }
14
+ }
15
+ }`)).teams.nodes.filter(e=>e.name.trim().length>0).map(e=>({id:e.id,name:e.name})).sort((e,t)=>e.name.localeCompare(t.name))}async issues(e){let t,r=(t=[`first: ${e.first}`],e.after&&t.push(`after: ${JSON.stringify(e.after)}`),e.orderBy&&t.push(`orderBy: ${e.orderBy}`),e.filter&&Object.keys(e.filter).length>0&&t.push(`filter: ${function e(t){if(null===t)return"null";if(Array.isArray(t))return`[${t.map(e).join(", ")}]`;if("string"==typeof t)return JSON.stringify(t);if("number"==typeof t||"boolean"==typeof t)return String(t);if("object"==typeof t){let r=Object.entries(t).filter(([,e])=>void 0!==e);return`{ ${r.map(([t,r])=>`${t}: ${e(r)}`).join(", ")} }`}throw Error(`Unsupported GraphQL value: ${typeof t}`)}(e.filter)}`),t.join(", ")),n=await this.request(`query {
16
+ issues(${r}) {
17
+ nodes {
18
+ id
19
+ identifier
20
+ title
21
+ description
22
+ url
23
+ updatedAt
24
+ state { name }
25
+ assignee { id name email }
26
+ team { id name key }
27
+ cycle { id number name }
28
+ }
29
+ pageInfo {
30
+ hasNextPage
31
+ endCursor
32
+ }
33
+ }
34
+ }`);return{nodes:n.issues.nodes.map(e=>({id:e.id,identifier:e.identifier,title:e.title,description:e.description,url:e.url,updatedAt:e.updatedAt,state:Promise.resolve(e.state),assignee:Promise.resolve(e.assignee),team:Promise.resolve(e.team),cycle:Promise.resolve(e.cycle)})),pageInfo:n.issues.pageInfo}}async cycles(){let e=await this.request(`query {
35
+ teams(first: 50) {
36
+ nodes {
37
+ id
38
+ name
39
+ activeCycle {
40
+ id
41
+ number
42
+ name
43
+ startsAt
44
+ endsAt
45
+ team {
46
+ id
47
+ name
48
+ }
49
+ }
50
+ cycles(first: 20) {
51
+ nodes {
52
+ id
53
+ number
54
+ name
55
+ startsAt
56
+ endsAt
57
+ team {
58
+ id
59
+ name
60
+ }
61
+ }
62
+ }
63
+ }
64
+ }
65
+ }`),t=new Map;for(let r of e.teams.nodes)for(let e of[...r.activeCycle?[r.activeCycle]:[],...r.cycles.nodes])t.has(e.id)||t.set(e.id,{id:e.id,number:e.number,name:e.name,startsAt:e.startsAt,endsAt:e.endsAt,teamId:e.team?.id??r.id,teamName:e.team?.name??r.name});return[...t.values()].sort((e,t)=>new Date(t.startsAt).getTime()-new Date(e.startsAt).getTime())}async request(e){let t=await fetch("https://api.linear.app/graphql",{method:"POST",headers:{"Content-Type":"application/json",Authorization:this.accessToken},body:JSON.stringify({query:e}),cache:"no-store"}),r=await t.json();if(!t.ok||r.errors?.length)throw Error(r.errors?.map(e=>e.message).find(Boolean)??`Linear request failed with status ${t.status}`);if(!r.data)throw Error("Linear response did not include data");return r.data}}function o(){let e=function(){try{let e=(0,t.readFileSync)(n(),"utf8");return JSON.parse(e)}catch{return null}}();return e?new i(e.accessToken):null}e.s(["LinearClient",()=>i,"deleteLinearToken",()=>s,"getLinearClient",()=>o,"saveLinearToken",()=>a])},924006,e=>{"use strict";var t=e.i(747909),r=e.i(174017),n=e.i(996250),a=e.i(759756),s=e.i(561916),i=e.i(174677),o=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),m=e.i(10372),y=e.i(193695);e.i(52474);var g=e.i(600220),v=e.i(89171),R=e.i(810010),x=e.i(841897);async function w(e){let t=e.nextUrl.searchParams.get("code");if(!t)return v.NextResponse.redirect("/?linear=error");let r=process.env.LINEAR_CLIENT_ID,n=process.env.LINEAR_CLIENT_SECRET,a=`${(0,R.getConfiguredAppBaseUrl)()}/api/linear/callback`,s=await fetch("https://api.linear.app/oauth/token",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({grant_type:"authorization_code",code:t,client_id:r,client_secret:n,redirect_uri:a})});if(!s.ok)return v.NextResponse.redirect("/?linear=error");let i=await s.json();return(0,x.saveLinearToken)({accessToken:i.access_token,expiresAt:i.expires_in?Date.now()+1e3*i.expires_in:void 0}),v.NextResponse.redirect("/?linear=connected")}e.s(["GET",()=>w,"dynamic",0,"force-dynamic","runtime",0,"nodejs"],825472);var A=e.i(825472);let C=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/linear/callback/route",pathname:"/api/linear/callback",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/linear/callback/route.ts",nextConfigOutput:"standalone",userland:A}),{workAsyncStorage:E,workUnitAsyncStorage:_,serverHooks:T}=C;function b(){return(0,n.patchFetch)({workAsyncStorage:E,workUnitAsyncStorage:_})}async function k(e,t,n){C.isDev&&(0,a.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let v="/api/linear/callback/route";v=v.replace(/\/index$/,"")||"/";let R=await C.prepare(e,t,{srcPage:v,multiZoneDraftMode:!1});if(!R)return t.statusCode=400,t.end("Bad Request"),null==n.waitUntil||n.waitUntil.call(n,Promise.resolve()),null;let{buildId:x,params:w,nextConfig:A,parsedUrl:E,isDraftMode:_,prerenderManifest:T,routerServerContext:b,isOnDemandRevalidate:k,revalidateOnlyGenerated:N,resolvedPathname:O,clientReferenceManifest:P,serverActionsManifest:q}=R,S=(0,o.normalizeAppPath)(v),U=!!(T.dynamicRoutes[S]||T.routes[O]),j=async()=>((null==b?void 0:b.render404)?await b.render404(e,t,E,!1):t.end("This page could not be found"),null);if(U&&!_){let e=!!T.routes[O],t=T.dynamicRoutes[S];if(t&&!1===t.fallback&&!e){if(A.experimental.adapterPath)return await j();throw new y.NoFallbackError}}let I=null;!U||C.isDev||_||(I="/index"===(I=O)?"/":I);let L=!0===C.isDev||!U,D=U&&!L;q&&P&&(0,i.setManifestsSingleton)({page:v,clientReferenceManifest:P,serverActionsManifest:q});let B=e.method||"GET",$=(0,s.getTracer)(),H=$.getActiveScopeSpan(),M={params:w,prerenderManifest:T,renderOpts:{experimental:{authInterrupts:!!A.experimental.authInterrupts},cacheComponents:!!A.cacheComponents,supportsDynamicResponse:L,incrementalCache:(0,a.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:A.cacheLife,waitUntil:n.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,n,a)=>C.onRequestError(e,t,n,a,b)},sharedContext:{buildId:x}},X=new l.NodeNextRequest(e),G=new l.NodeNextResponse(t),F=d.NextRequestAdapter.fromNodeNextRequest(X,(0,d.signalFromNodeResponse)(t));try{let i=async e=>C.handle(F,M).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=$.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==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 n=r.get("next.route");if(n){let t=`${B} ${n}`;e.setAttributes({"next.route":n,"http.route":n,"next.span_name":t}),e.updateName(t)}else e.updateName(`${B} ${v}`)}),o=!!(0,a.getRequestMeta)(e,"minimalMode"),l=async a=>{var s,l;let d=async({previousCacheEntry:r})=>{try{if(!o&&k&&N&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let s=await i(a);e.fetchMetrics=M.renderOpts.fetchMetrics;let l=M.renderOpts.pendingWaitUntil;l&&n.waitUntil&&(n.waitUntil(l),l=void 0);let d=M.renderOpts.collectedTags;if(!U)return await (0,p.sendResponse)(X,G,s,M.renderOpts.pendingWaitUntil),null;{let e=await s.blob(),t=(0,f.toNodeOutgoingHttpHeaders)(s.headers);d&&(t[m.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=m.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,n=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=m.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:g.CachedRouteKind.APP_ROUTE,status:s.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:n}}}}catch(t){throw(null==r?void 0:r.isStale)&&await C.onRequestError(e,t,{routerKind:"App Router",routePath:v,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:k})},!1,b),t}},u=await C.handleResponse({req:e,nextConfig:A,cacheKey:I,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:T,isRoutePPREnabled:!1,isOnDemandRevalidate:k,revalidateOnlyGenerated:N,responseGenerator:d,waitUntil:n.waitUntil,isMinimalMode:o});if(!U)return null;if((null==u||null==(s=u.value)?void 0:s.kind)!==g.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==u||null==(l=u.value)?void 0:l.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});o||t.setHeader("x-nextjs-cache",k?"REVALIDATED":u.isMiss?"MISS":u.isStale?"STALE":"HIT"),_&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let y=(0,f.fromNodeOutgoingHttpHeaders)(u.value.headers);return o&&U||y.delete(m.NEXT_CACHE_TAGS_HEADER),!u.cacheControl||t.getHeader("Cache-Control")||y.get("Cache-Control")||y.set("Cache-Control",(0,h.getCacheControlHeader)(u.cacheControl)),await (0,p.sendResponse)(X,G,new Response(u.value.body,{headers:y,status:u.value.status||200})),null};H?await l(H):await $.withPropagatedContext(e.headers,()=>$.trace(u.BaseServerSpan.handleRequest,{spanName:`${B} ${v}`,kind:s.SpanKind.SERVER,attributes:{"http.method":B,"http.target":e.url}},l))}catch(t){if(t instanceof y.NoFallbackError||await C.onRequestError(e,t,{routerKind:"App Router",routePath:S,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:D,isOnDemandRevalidate:k})},!1,b),U)throw t;return await (0,p.sendResponse)(X,G,new Response(null,{status:500})),null}}e.s(["handler",()=>k,"patchFetch",()=>b,"routeModule",()=>C,"serverHooks",()=>T,"workAsyncStorage",()=>E,"workUnitAsyncStorage",()=>_],924006)}];
66
+
67
+ //# sourceMappingURL=%5Broot-of-the-server%5D__1154e5b3._.js.map
@@ -1,4 +1,4 @@
1
- module.exports=[918622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},556704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},832319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},324725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},193695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},522734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},814747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},446786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},259833,e=>{"use strict";function t(e,t){let r=e.prepare(`PRAGMA ${t}`).get();if(!r)return;let i=Object.values(r);return i.length>0?i[0]:void 0}function r(e,t){return e.prepare(`PRAGMA ${t}`).all()}function i(e,t){e.exec(`PRAGMA ${t}`)}function a(e,t){e.exec("BEGIN");try{let r=t();return e.exec("COMMIT"),r}catch(t){throw e.exec("ROLLBACK"),t}}function n(e,t){return(...r)=>{e.exec("BEGIN");try{let i=t(...r);return e.exec("COMMIT"),i}catch(t){throw e.exec("ROLLBACK"),t}}}e.s(["pragmaAll",()=>r,"pragmaGet",()=>t,"pragmaSet",()=>i,"transaction",()=>a,"transactionFn",()=>n])},233405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},949041,e=>{"use strict";let t={id:"2c3cc1ca-956d-4b62-b295-4d2d3374103f",email:process.env.AGX_BOARD_USER_EMAIL||"local@agx.board",name:process.env.AGX_BOARD_USER_NAME||"Local Board User"};e.s(["LOCAL_USER",0,t])},121729,e=>{"use strict";e.x("node:sqlite",()=>require("node:sqlite"),!0);var t=e.i(259833);e.i(522734);var r=e.i(446786),i=e.i(814747);let a="3.35.0",n=["json1"],s=["fts5"],o=["nfs","smb","cifs","efs","fuse.sshfs"];function d(e,t){try{if("json1"===t)return e.prepare("SELECT json('{}')").get(),!0;if("fts5"===t)return e.exec("CREATE VIRTUAL TABLE IF NOT EXISTS _fts5_check USING fts5(x)"),e.exec("DROP TABLE IF EXISTS _fts5_check"),!0;return!1}catch{return!1}}function u(u,p){let l=[],c=u.prepare("SELECT sqlite_version() as v").get();for(let e of(0>function(e,t){let r=e.split(".").map(Number),i=t.split(".").map(Number);for(let e=0;e<3;e++){let t=(r[e]||0)-(i[e]||0);if(0!==t)return t}return 0}(c.v,a)&&l.push({kind:"version_mismatch",message:`SQLite version ${c.v} is below minimum ${a}`,found:c.v,required:`>= ${a}`,fix:"Ensure Node.js >= 22.16 is installed (node:sqlite is built-in)"}),n))d(u,e)||l.push({kind:"missing_extension",message:`Required SQLite extension '${e}' is not available`,required:e,fix:`Rebuild SQLite with -DSQLITE_ENABLE_${e.toUpperCase()}=1, or use a system SQLite that includes it`});for(let e of s)d(u,e)||console.warn(`[startup] Recommended SQLite extension '${e}' is not available. Full-text search will be disabled.`);let h=function(t){"linux"!==r.default.platform()&&r.default.platform();try{let a=i.default.resolve(t),{execSync:n}=e.r(233405);if("darwin"===r.default.platform()){let e=n(`df -T "${a}" 2>/dev/null || df "${a}"`,{encoding:"utf-8",timeout:3e3}).trim().split("\n");if(e.length>=2){let t=e[1].split(/\s+/),r=t[0]?.toLowerCase()||"";if(r.includes("://")||r.includes("nfs")||r.includes("smb"))return r}}}catch{}return null}(p);h&&o.some(e=>h.toLowerCase().includes(e))&&l.push({kind:"filesystem_error",message:`Database path '${p}' is on a network filesystem (${h})`,path:p,found:h,fix:"Move the database file to a local SSD. WAL mode requires local filesystem with reliable fsync."});try{(0,t.pragmaSet)(u,"journal_mode = wal"),(0,t.pragmaSet)(u,"foreign_keys = 1"),(0,t.pragmaSet)(u,"busy_timeout = 5000"),(0,t.pragmaSet)(u,"synchronous = 1"),(0,t.pragmaSet)(u,"cache_size = -64000");let e=(0,t.pragmaGet)(u,"journal_mode").toLowerCase(),r=new Set(["wal","delete"]);if(!r.has(e)){(0,t.pragmaSet)(u,"journal_mode = DELETE");let e=(0,t.pragmaGet)(u,"journal_mode").toLowerCase();r.has(e)?((0,t.pragmaSet)(u,"synchronous = FULL"),console.warn(`[startup] WAL unavailable, using journal_mode=${e} with synchronous=FULL`)):l.push({kind:"pragma_error",message:`Failed to set journal_mode (got '${e}', tried WAL then DELETE)`,found:e,required:"wal or delete",fix:"Ensure the database file is on a local filesystem and no other process holds an exclusive lock."})}}catch(e){l.push({kind:"pragma_error",message:`Failed to apply required PRAGMAs: ${e.message}`,fix:"Check file permissions and ensure the database is not read-only."})}return l}e.s(["validateSQLiteEnvironment",()=>u])},254799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},500874,(e,t,r)=>{t.exports=e.x("buffer",()=>require("buffer"))},924868,(e,t,r)=>{t.exports=e.x("fs/promises",()=>require("fs/promises"))},97812,e=>{"use strict";var t=e.i(960447),r=e.i(259833);e.i(201037);var i=e.i(200866),a=e.i(434542);let n=new Set(["replan","rollback"]);class s extends Error{expectedVersion;actualVersion;constructor(e,t){super(`Execution graph version conflict: expected ${e}, found ${t}.`),this.name="GraphVersionConflictError",this.expectedVersion=e,this.actualVersion=t}}class o extends Error{constructor(e){super(`Execution graph not found: ${e}`),this.name="GraphNotFoundError"}}class d extends Error{nodeIds;constructor(e,t){super(`Execution graph ${e} is missing node(s): ${t.join(", ")}`),this.name="GraphNodeNotFoundError",this.nodeIds=t}}class u extends Error{taskId;existingGraphId;constructor(e,t){super(`Task ${e} is already bound to execution graph ${t}.`),this.name="GraphTaskAlreadyBoundError",this.taskId=e,this.existingGraphId=t}}function p(e){return null==e?null:JSON.stringify(e)}function l(e){if(null==e)return null;if("string"==typeof e)try{return JSON.parse(e)}catch{}return e}function c(e){let t=Date.parse(e);return Number.isNaN(t)?e:new Date(t).toISOString()}function h(e){return!e||"object"!=typeof e||Array.isArray(e)?{}:e}function g(e){if(!(0,a.isAutomationFrontmatterEnabled)()||!e.schedule)return;let t=(0,a.getAutomationRepository)(),r=(0,i.graphAutomationToDefinition)({graphId:e.id,taskId:e.taskId,schedule:e.schedule,createdAt:e.createdAt,updatedAt:e.updatedAt,executionState:e.executionState});t.upsertAutomation(r),t.updateAutomationState(e.id,{nextRunAt:e.schedule.nextTickAt,lastRunAt:e.schedule.lastTickAt,updatedAt:e.updatedAt,runCount:e.schedule.runCount,consecutiveFailures:e.schedule.consecutiveFailures,tickInProgress:e.schedule.tickInProgress})}function f(e){let r=e.trim();if(!r)return null;let i=(0,t.getSQLiteDb)().prepare(`SELECT task_id AS taskId
1
+ module.exports=[918622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},556704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},832319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},324725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},193695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},522734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},814747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},446786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},259833,e=>{"use strict";function t(e,t){let r=e.prepare(`PRAGMA ${t}`).get();if(!r)return;let i=Object.values(r);return i.length>0?i[0]:void 0}function r(e,t){return e.prepare(`PRAGMA ${t}`).all()}function i(e,t){e.exec(`PRAGMA ${t}`)}function a(e,t){e.exec("BEGIN");try{let r=t();return e.exec("COMMIT"),r}catch(t){throw e.exec("ROLLBACK"),t}}function n(e,t){return(...r)=>{e.exec("BEGIN");try{let i=t(...r);return e.exec("COMMIT"),i}catch(t){throw e.exec("ROLLBACK"),t}}}e.s(["pragmaAll",()=>r,"pragmaGet",()=>t,"pragmaSet",()=>i,"transaction",()=>a,"transactionFn",()=>n])},233405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},949041,e=>{"use strict";let t={id:"2c3cc1ca-956d-4b62-b295-4d2d3374103f",email:process.env.AGX_BOARD_USER_EMAIL||"local@agx.board",name:process.env.AGX_BOARD_USER_NAME||"Local Board User"};e.s(["LOCAL_USER",0,t])},121729,e=>{"use strict";e.x("node:sqlite",()=>require("node:sqlite"),!0);var t=e.i(259833);e.i(522734);var r=e.i(446786),i=e.i(814747);let a="3.35.0",n=["json1"],s=["fts5"],o=["nfs","smb","cifs","efs","fuse.sshfs"];function d(e,t){try{if("json1"===t)return e.prepare("SELECT json('{}')").get(),!0;if("fts5"===t)return e.exec("CREATE VIRTUAL TABLE IF NOT EXISTS _fts5_check USING fts5(x)"),e.exec("DROP TABLE IF EXISTS _fts5_check"),!0;return!1}catch{return!1}}function u(u,p){let l=[],c=u.prepare("SELECT sqlite_version() as v").get();for(let e of(0>function(e,t){let r=e.split(".").map(Number),i=t.split(".").map(Number);for(let e=0;e<3;e++){let t=(r[e]||0)-(i[e]||0);if(0!==t)return t}return 0}(c.v,a)&&l.push({kind:"version_mismatch",message:`SQLite version ${c.v} is below minimum ${a}`,found:c.v,required:`>= ${a}`,fix:"Ensure Node.js >= 22.16 is installed (node:sqlite is built-in)"}),n))d(u,e)||l.push({kind:"missing_extension",message:`Required SQLite extension '${e}' is not available`,required:e,fix:`Rebuild SQLite with -DSQLITE_ENABLE_${e.toUpperCase()}=1, or use a system SQLite that includes it`});for(let e of s)d(u,e)||console.warn(`[startup] Recommended SQLite extension '${e}' is not available. Full-text search will be disabled.`);let h=function(t){"linux"!==r.default.platform()&&r.default.platform();try{let a=i.default.resolve(t),{execSync:n}=e.r(233405);if("darwin"===r.default.platform()){let e=n(`df -T "${a}" 2>/dev/null || df "${a}"`,{encoding:"utf-8",timeout:3e3}).trim().split("\n");if(e.length>=2){let t=e[1].split(/\s+/),r=t[0]?.toLowerCase()||"";if(r.includes("://")||r.includes("nfs")||r.includes("smb"))return r}}}catch{}return null}(p);h&&o.some(e=>h.toLowerCase().includes(e))&&l.push({kind:"filesystem_error",message:`Database path '${p}' is on a network filesystem (${h})`,path:p,found:h,fix:"Move the database file to a local SSD. WAL mode requires local filesystem with reliable fsync."});try{(0,t.pragmaSet)(u,"journal_mode = wal"),(0,t.pragmaSet)(u,"foreign_keys = 1"),(0,t.pragmaSet)(u,"busy_timeout = 5000"),(0,t.pragmaSet)(u,"synchronous = 1"),(0,t.pragmaSet)(u,"cache_size = -64000");let e=(0,t.pragmaGet)(u,"journal_mode").toLowerCase(),r=new Set(["wal","delete"]);if(!r.has(e)){(0,t.pragmaSet)(u,"journal_mode = DELETE");let e=(0,t.pragmaGet)(u,"journal_mode").toLowerCase();r.has(e)?((0,t.pragmaSet)(u,"synchronous = FULL"),console.warn(`[startup] WAL unavailable, using journal_mode=${e} with synchronous=FULL`)):l.push({kind:"pragma_error",message:`Failed to set journal_mode (got '${e}', tried WAL then DELETE)`,found:e,required:"wal or delete",fix:"Ensure the database file is on a local filesystem and no other process holds an exclusive lock."})}}catch(e){l.push({kind:"pragma_error",message:`Failed to apply required PRAGMAs: ${e.message}`,fix:"Check file permissions and ensure the database is not read-only."})}return l}e.s(["validateSQLiteEnvironment",()=>u])},500874,(e,t,r)=>{t.exports=e.x("buffer",()=>require("buffer"))},254799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},924868,(e,t,r)=>{t.exports=e.x("fs/promises",()=>require("fs/promises"))},97812,e=>{"use strict";var t=e.i(960447),r=e.i(259833);e.i(201037);var i=e.i(200866),a=e.i(434542);let n=new Set(["replan","rollback"]);class s extends Error{expectedVersion;actualVersion;constructor(e,t){super(`Execution graph version conflict: expected ${e}, found ${t}.`),this.name="GraphVersionConflictError",this.expectedVersion=e,this.actualVersion=t}}class o extends Error{constructor(e){super(`Execution graph not found: ${e}`),this.name="GraphNotFoundError"}}class d extends Error{nodeIds;constructor(e,t){super(`Execution graph ${e} is missing node(s): ${t.join(", ")}`),this.name="GraphNodeNotFoundError",this.nodeIds=t}}class u extends Error{taskId;existingGraphId;constructor(e,t){super(`Task ${e} is already bound to execution graph ${t}.`),this.name="GraphTaskAlreadyBoundError",this.taskId=e,this.existingGraphId=t}}function p(e){return null==e?null:JSON.stringify(e)}function l(e){if(null==e)return null;if("string"==typeof e)try{return JSON.parse(e)}catch{}return e}function c(e){let t=Date.parse(e);return Number.isNaN(t)?e:new Date(t).toISOString()}function h(e){return!e||"object"!=typeof e||Array.isArray(e)?{}:e}function g(e){if(!(0,a.isAutomationFrontmatterEnabled)()||!e.schedule)return;let t=(0,a.getAutomationRepository)(),r=(0,i.graphAutomationToDefinition)({graphId:e.id,taskId:e.taskId,schedule:e.schedule,createdAt:e.createdAt,updatedAt:e.updatedAt,executionState:e.executionState});t.upsertAutomation(r),t.updateAutomationState(e.id,{nextRunAt:e.schedule.nextTickAt,lastRunAt:e.schedule.lastTickAt,updatedAt:e.updatedAt,runCount:e.schedule.runCount,consecutiveFailures:e.schedule.consecutiveFailures,tickInProgress:e.schedule.tickInProgress})}function f(e){let r=e.trim();if(!r)return null;let i=(0,t.getSQLiteDb)().prepare(`SELECT task_id AS taskId
2
2
  FROM execution_graphs
3
3
  WHERE id = ?
4
4
  LIMIT 1`).get(r);return i?.taskId??null}function E(e){let{type:t,status:r,metrics:i,output:a,...n}=e;return{type:t,status:r,config:n,output:a??null,metrics:i??null}}function m(e){let t={...h(l(e.payload))};return"eventType"in t||(t.eventType=e.event_type),"timestamp"in t||(t.timestamp=c(e.timestamp)),t}function _(e){return{query(t,r){let i=e.prepare(t);return/^\s*(INSERT|UPDATE|DELETE)/i.test(t)&&!/RETURNING/i.test(t)?(i.run(...(r??[]).map(e=>e)),{rows:[]}):{rows:i.all(...(r??[]).map(e=>e))}}}}class y{getDb(){return(0,t.getSQLiteDb)()}createGraph(e,t){let i=this.getDb(),a=_(i);t?.skipTaskBinding&&(0,r.pragmaSet)(i,"foreign_keys = OFF");try{return(0,r.transaction)(i,()=>{let r=a.query("SELECT id FROM execution_graphs WHERE task_id = ? LIMIT 1",[e.taskId]).rows[0];if(r&&r.id!==e.id)throw new u(e.taskId,r.id);for(let[t,r]of(a.query(`INSERT INTO execution_graphs
@@ -46,4 +46,4 @@ module.exports=[918622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/a
46
46
  AND json_extract(schedule, '$.rootMessageId') = ?
47
47
  AND json_extract(schedule, '$.state') = 'active'`).run(r).changes??0)}e.s(["GraphNodeNotFoundError",()=>d,"GraphNotFoundError",()=>o,"GraphStore",()=>y,"GraphTaskAlreadyBoundError",()=>u,"GraphVersionConflictError",()=>s,"appendEvent",()=>v,"createGraph",()=>S,"createGraphStore",()=>x,"deactivateSchedulesByRootMessageId",()=>N,"getActiveScheduleForRootMessageId",()=>k,"getActiveScheduleRootMessageIds",()=>b,"getGraph",()=>R,"getGraphEvents",()=>L,"getTaskIdForGraphId",()=>f,"updateGraphStructure",()=>I,"updateNodeRuntime",()=>T])}];
48
48
 
49
- //# sourceMappingURL=%5Broot-of-the-server%5D__44ef900b._.js.map
49
+ //# sourceMappingURL=%5Broot-of-the-server%5D__11c1214e._.js.map
@@ -1,7 +1,7 @@
1
- module.exports=[750227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},902157,(e,t,r)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},660526,(e,t,r)=>{t.exports=e.x("node:os",()=>require("node:os"))},918622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},556704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},832319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},324725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},193695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},522734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},814747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},446786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},259833,e=>{"use strict";function t(e,t){let r=e.prepare(`PRAGMA ${t}`).get();if(!r)return;let s=Object.values(r);return s.length>0?s[0]:void 0}function r(e,t){return e.prepare(`PRAGMA ${t}`).all()}function s(e,t){e.exec(`PRAGMA ${t}`)}function n(e,t){e.exec("BEGIN");try{let r=t();return e.exec("COMMIT"),r}catch(t){throw e.exec("ROLLBACK"),t}}function a(e,t){return(...r)=>{e.exec("BEGIN");try{let s=t(...r);return e.exec("COMMIT"),s}catch(t){throw e.exec("ROLLBACK"),t}}}e.s(["pragmaAll",()=>r,"pragmaGet",()=>t,"pragmaSet",()=>s,"transaction",()=>n,"transactionFn",()=>a])},233405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},949041,e=>{"use strict";let t={id:"2c3cc1ca-956d-4b62-b295-4d2d3374103f",email:process.env.AGX_BOARD_USER_EMAIL||"local@agx.board",name:process.env.AGX_BOARD_USER_NAME||"Local Board User"};e.s(["LOCAL_USER",0,t])},121729,e=>{"use strict";e.x("node:sqlite",()=>require("node:sqlite"),!0);var t=e.i(259833);e.i(522734);var r=e.i(446786),s=e.i(814747);let n="3.35.0",a=["json1"],o=["fts5"],i=["nfs","smb","cifs","efs","fuse.sshfs"];function d(e,t){try{if("json1"===t)return e.prepare("SELECT json('{}')").get(),!0;if("fts5"===t)return e.exec("CREATE VIRTUAL TABLE IF NOT EXISTS _fts5_check USING fts5(x)"),e.exec("DROP TABLE IF EXISTS _fts5_check"),!0;return!1}catch{return!1}}function u(u,l){let c=[],p=u.prepare("SELECT sqlite_version() as v").get();for(let e of(0>function(e,t){let r=e.split(".").map(Number),s=t.split(".").map(Number);for(let e=0;e<3;e++){let t=(r[e]||0)-(s[e]||0);if(0!==t)return t}return 0}(p.v,n)&&c.push({kind:"version_mismatch",message:`SQLite version ${p.v} is below minimum ${n}`,found:p.v,required:`>= ${n}`,fix:"Ensure Node.js >= 22.16 is installed (node:sqlite is built-in)"}),a))d(u,e)||c.push({kind:"missing_extension",message:`Required SQLite extension '${e}' is not available`,required:e,fix:`Rebuild SQLite with -DSQLITE_ENABLE_${e.toUpperCase()}=1, or use a system SQLite that includes it`});for(let e of o)d(u,e)||console.warn(`[startup] Recommended SQLite extension '${e}' is not available. Full-text search will be disabled.`);let h=function(t){"linux"!==r.default.platform()&&r.default.platform();try{let n=s.default.resolve(t),{execSync:a}=e.r(233405);if("darwin"===r.default.platform()){let e=a(`df -T "${n}" 2>/dev/null || df "${n}"`,{encoding:"utf-8",timeout:3e3}).trim().split("\n");if(e.length>=2){let t=e[1].split(/\s+/),r=t[0]?.toLowerCase()||"";if(r.includes("://")||r.includes("nfs")||r.includes("smb"))return r}}}catch{}return null}(l);h&&i.some(e=>h.toLowerCase().includes(e))&&c.push({kind:"filesystem_error",message:`Database path '${l}' is on a network filesystem (${h})`,path:l,found:h,fix:"Move the database file to a local SSD. WAL mode requires local filesystem with reliable fsync."});try{(0,t.pragmaSet)(u,"journal_mode = wal"),(0,t.pragmaSet)(u,"foreign_keys = 1"),(0,t.pragmaSet)(u,"busy_timeout = 5000"),(0,t.pragmaSet)(u,"synchronous = 1"),(0,t.pragmaSet)(u,"cache_size = -64000");let e=(0,t.pragmaGet)(u,"journal_mode").toLowerCase(),r=new Set(["wal","delete"]);if(!r.has(e)){(0,t.pragmaSet)(u,"journal_mode = DELETE");let e=(0,t.pragmaGet)(u,"journal_mode").toLowerCase();r.has(e)?((0,t.pragmaSet)(u,"synchronous = FULL"),console.warn(`[startup] WAL unavailable, using journal_mode=${e} with synchronous=FULL`)):c.push({kind:"pragma_error",message:`Failed to set journal_mode (got '${e}', tried WAL then DELETE)`,found:e,required:"wal or delete",fix:"Ensure the database file is on a local filesystem and no other process holds an exclusive lock."})}}catch(e){c.push({kind:"pragma_error",message:`Failed to apply required PRAGMAs: ${e.message}`,fix:"Check file permissions and ensure the database is not read-only."})}return c}e.s(["validateSQLiteEnvironment",()=>u])},254799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},500874,(e,t,r)=>{t.exports=e.x("buffer",()=>require("buffer"))},874533,(e,t,r)=>{t.exports=e.x("node:child_process",()=>require("node:child_process"))},924868,(e,t,r)=>{t.exports=e.x("fs/promises",()=>require("fs/promises"))},97812,e=>{"use strict";var t=e.i(960447),r=e.i(259833);e.i(201037);var s=e.i(200866),n=e.i(434542);let a=new Set(["replan","rollback"]);class o extends Error{expectedVersion;actualVersion;constructor(e,t){super(`Execution graph version conflict: expected ${e}, found ${t}.`),this.name="GraphVersionConflictError",this.expectedVersion=e,this.actualVersion=t}}class i extends Error{constructor(e){super(`Execution graph not found: ${e}`),this.name="GraphNotFoundError"}}class d extends Error{nodeIds;constructor(e,t){super(`Execution graph ${e} is missing node(s): ${t.join(", ")}`),this.name="GraphNodeNotFoundError",this.nodeIds=t}}class u extends Error{taskId;existingGraphId;constructor(e,t){super(`Task ${e} is already bound to execution graph ${t}.`),this.name="GraphTaskAlreadyBoundError",this.taskId=e,this.existingGraphId=t}}function l(e){return null==e?null:JSON.stringify(e)}function c(e){if(null==e)return null;if("string"==typeof e)try{return JSON.parse(e)}catch{}return e}function p(e){let t=Date.parse(e);return Number.isNaN(t)?e:new Date(t).toISOString()}function h(e){return!e||"object"!=typeof e||Array.isArray(e)?{}:e}function g(e){if(!(0,n.isAutomationFrontmatterEnabled)()||!e.schedule)return;let t=(0,n.getAutomationRepository)(),r=(0,s.graphAutomationToDefinition)({graphId:e.id,taskId:e.taskId,schedule:e.schedule,createdAt:e.createdAt,updatedAt:e.updatedAt,executionState:e.executionState});t.upsertAutomation(r),t.updateAutomationState(e.id,{nextRunAt:e.schedule.nextTickAt,lastRunAt:e.schedule.lastTickAt,updatedAt:e.updatedAt,runCount:e.schedule.runCount,consecutiveFailures:e.schedule.consecutiveFailures,tickInProgress:e.schedule.tickInProgress})}function f(e){let r=e.trim();if(!r)return null;let s=(0,t.getSQLiteDb)().prepare(`SELECT task_id AS taskId
1
+ module.exports=[750227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:path"))},902157,(e,t,r)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},660526,(e,t,r)=>{t.exports=e.x("node:os",()=>require("node:os"))},918622,(e,t,r)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},556704,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},832319,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},324725,(e,t,r)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},193695,(e,t,r)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},522734,(e,t,r)=>{t.exports=e.x("fs",()=>require("fs"))},814747,(e,t,r)=>{t.exports=e.x("path",()=>require("path"))},446786,(e,t,r)=>{t.exports=e.x("os",()=>require("os"))},259833,e=>{"use strict";function t(e,t){let r=e.prepare(`PRAGMA ${t}`).get();if(!r)return;let s=Object.values(r);return s.length>0?s[0]:void 0}function r(e,t){return e.prepare(`PRAGMA ${t}`).all()}function s(e,t){e.exec(`PRAGMA ${t}`)}function n(e,t){e.exec("BEGIN");try{let r=t();return e.exec("COMMIT"),r}catch(t){throw e.exec("ROLLBACK"),t}}function a(e,t){return(...r)=>{e.exec("BEGIN");try{let s=t(...r);return e.exec("COMMIT"),s}catch(t){throw e.exec("ROLLBACK"),t}}}e.s(["pragmaAll",()=>r,"pragmaGet",()=>t,"pragmaSet",()=>s,"transaction",()=>n,"transactionFn",()=>a])},233405,(e,t,r)=>{t.exports=e.x("child_process",()=>require("child_process"))},949041,e=>{"use strict";let t={id:"2c3cc1ca-956d-4b62-b295-4d2d3374103f",email:process.env.AGX_BOARD_USER_EMAIL||"local@agx.board",name:process.env.AGX_BOARD_USER_NAME||"Local Board User"};e.s(["LOCAL_USER",0,t])},121729,e=>{"use strict";e.x("node:sqlite",()=>require("node:sqlite"),!0);var t=e.i(259833);e.i(522734);var r=e.i(446786),s=e.i(814747);let n="3.35.0",a=["json1"],o=["fts5"],i=["nfs","smb","cifs","efs","fuse.sshfs"];function u(e,t){try{if("json1"===t)return e.prepare("SELECT json('{}')").get(),!0;if("fts5"===t)return e.exec("CREATE VIRTUAL TABLE IF NOT EXISTS _fts5_check USING fts5(x)"),e.exec("DROP TABLE IF EXISTS _fts5_check"),!0;return!1}catch{return!1}}function d(d,l){let c=[],p=d.prepare("SELECT sqlite_version() as v").get();for(let e of(0>function(e,t){let r=e.split(".").map(Number),s=t.split(".").map(Number);for(let e=0;e<3;e++){let t=(r[e]||0)-(s[e]||0);if(0!==t)return t}return 0}(p.v,n)&&c.push({kind:"version_mismatch",message:`SQLite version ${p.v} is below minimum ${n}`,found:p.v,required:`>= ${n}`,fix:"Ensure Node.js >= 22.16 is installed (node:sqlite is built-in)"}),a))u(d,e)||c.push({kind:"missing_extension",message:`Required SQLite extension '${e}' is not available`,required:e,fix:`Rebuild SQLite with -DSQLITE_ENABLE_${e.toUpperCase()}=1, or use a system SQLite that includes it`});for(let e of o)u(d,e)||console.warn(`[startup] Recommended SQLite extension '${e}' is not available. Full-text search will be disabled.`);let h=function(t){"linux"!==r.default.platform()&&r.default.platform();try{let n=s.default.resolve(t),{execSync:a}=e.r(233405);if("darwin"===r.default.platform()){let e=a(`df -T "${n}" 2>/dev/null || df "${n}"`,{encoding:"utf-8",timeout:3e3}).trim().split("\n");if(e.length>=2){let t=e[1].split(/\s+/),r=t[0]?.toLowerCase()||"";if(r.includes("://")||r.includes("nfs")||r.includes("smb"))return r}}}catch{}return null}(l);h&&i.some(e=>h.toLowerCase().includes(e))&&c.push({kind:"filesystem_error",message:`Database path '${l}' is on a network filesystem (${h})`,path:l,found:h,fix:"Move the database file to a local SSD. WAL mode requires local filesystem with reliable fsync."});try{(0,t.pragmaSet)(d,"journal_mode = wal"),(0,t.pragmaSet)(d,"foreign_keys = 1"),(0,t.pragmaSet)(d,"busy_timeout = 5000"),(0,t.pragmaSet)(d,"synchronous = 1"),(0,t.pragmaSet)(d,"cache_size = -64000");let e=(0,t.pragmaGet)(d,"journal_mode").toLowerCase(),r=new Set(["wal","delete"]);if(!r.has(e)){(0,t.pragmaSet)(d,"journal_mode = DELETE");let e=(0,t.pragmaGet)(d,"journal_mode").toLowerCase();r.has(e)?((0,t.pragmaSet)(d,"synchronous = FULL"),console.warn(`[startup] WAL unavailable, using journal_mode=${e} with synchronous=FULL`)):c.push({kind:"pragma_error",message:`Failed to set journal_mode (got '${e}', tried WAL then DELETE)`,found:e,required:"wal or delete",fix:"Ensure the database file is on a local filesystem and no other process holds an exclusive lock."})}}catch(e){c.push({kind:"pragma_error",message:`Failed to apply required PRAGMAs: ${e.message}`,fix:"Check file permissions and ensure the database is not read-only."})}return c}e.s(["validateSQLiteEnvironment",()=>d])},500874,(e,t,r)=>{t.exports=e.x("buffer",()=>require("buffer"))},254799,(e,t,r)=>{t.exports=e.x("crypto",()=>require("crypto"))},874533,(e,t,r)=>{t.exports=e.x("node:child_process",()=>require("node:child_process"))},924868,(e,t,r)=>{t.exports=e.x("fs/promises",()=>require("fs/promises"))},97812,e=>{"use strict";var t=e.i(960447),r=e.i(259833);e.i(201037);var s=e.i(200866),n=e.i(434542);let a=new Set(["replan","rollback"]);class o extends Error{expectedVersion;actualVersion;constructor(e,t){super(`Execution graph version conflict: expected ${e}, found ${t}.`),this.name="GraphVersionConflictError",this.expectedVersion=e,this.actualVersion=t}}class i extends Error{constructor(e){super(`Execution graph not found: ${e}`),this.name="GraphNotFoundError"}}class u extends Error{nodeIds;constructor(e,t){super(`Execution graph ${e} is missing node(s): ${t.join(", ")}`),this.name="GraphNodeNotFoundError",this.nodeIds=t}}class d extends Error{taskId;existingGraphId;constructor(e,t){super(`Task ${e} is already bound to execution graph ${t}.`),this.name="GraphTaskAlreadyBoundError",this.taskId=e,this.existingGraphId=t}}function l(e){return null==e?null:JSON.stringify(e)}function c(e){if(null==e)return null;if("string"==typeof e)try{return JSON.parse(e)}catch{}return e}function p(e){let t=Date.parse(e);return Number.isNaN(t)?e:new Date(t).toISOString()}function h(e){return!e||"object"!=typeof e||Array.isArray(e)?{}:e}function g(e){if(!(0,n.isAutomationFrontmatterEnabled)()||!e.schedule)return;let t=(0,n.getAutomationRepository)(),r=(0,s.graphAutomationToDefinition)({graphId:e.id,taskId:e.taskId,schedule:e.schedule,createdAt:e.createdAt,updatedAt:e.updatedAt,executionState:e.executionState});t.upsertAutomation(r),t.updateAutomationState(e.id,{nextRunAt:e.schedule.nextTickAt,lastRunAt:e.schedule.lastTickAt,updatedAt:e.updatedAt,runCount:e.schedule.runCount,consecutiveFailures:e.schedule.consecutiveFailures,tickInProgress:e.schedule.tickInProgress})}function f(e){let r=e.trim();if(!r)return null;let s=(0,t.getSQLiteDb)().prepare(`SELECT task_id AS taskId
2
2
  FROM execution_graphs
3
3
  WHERE id = ?
4
- LIMIT 1`).get(r);return s?.taskId??null}function m(e){let{type:t,status:r,metrics:s,output:n,...a}=e;return{type:t,status:r,config:a,output:n??null,metrics:s??null}}function E(e){let t={...h(c(e.payload))};return"eventType"in t||(t.eventType=e.event_type),"timestamp"in t||(t.timestamp=p(e.timestamp)),t}function _(e){return{query(t,r){let s=e.prepare(t);return/^\s*(INSERT|UPDATE|DELETE)/i.test(t)&&!/RETURNING/i.test(t)?(s.run(...(r??[]).map(e=>e)),{rows:[]}):{rows:s.all(...(r??[]).map(e=>e))}}}}class y{getDb(){return(0,t.getSQLiteDb)()}createGraph(e,t){let s=this.getDb(),n=_(s);t?.skipTaskBinding&&(0,r.pragmaSet)(s,"foreign_keys = OFF");try{return(0,r.transaction)(s,()=>{let r=n.query("SELECT id FROM execution_graphs WHERE task_id = ? LIMIT 1",[e.taskId]).rows[0];if(r&&r.id!==e.id)throw new u(e.taskId,r.id);for(let[t,r]of(n.query(`INSERT INTO execution_graphs
4
+ LIMIT 1`).get(r);return s?.taskId??null}function m(e){let{type:t,status:r,metrics:s,output:n,...a}=e;return{type:t,status:r,config:a,output:n??null,metrics:s??null}}function E(e){let t={...h(c(e.payload))};return"eventType"in t||(t.eventType=e.event_type),"timestamp"in t||(t.timestamp=p(e.timestamp)),t}function _(e){return{query(t,r){let s=e.prepare(t);return/^\s*(INSERT|UPDATE|DELETE)/i.test(t)&&!/RETURNING/i.test(t)?(s.run(...(r??[]).map(e=>e)),{rows:[]}):{rows:s.all(...(r??[]).map(e=>e))}}}}class y{getDb(){return(0,t.getSQLiteDb)()}createGraph(e,t){let s=this.getDb(),n=_(s);t?.skipTaskBinding&&(0,r.pragmaSet)(s,"foreign_keys = OFF");try{return(0,r.transaction)(s,()=>{let r=n.query("SELECT id FROM execution_graphs WHERE task_id = ? LIMIT 1",[e.taskId]).rows[0];if(r&&r.id!==e.id)throw new d(e.taskId,r.id);for(let[t,r]of(n.query(`INSERT INTO execution_graphs
5
5
  (id, task_id, graph_version, mode, policy, done_criteria, schedule, created_at, updated_at)
6
6
  VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
7
7
  ON CONFLICT (id) DO UPDATE SET
@@ -15,7 +15,7 @@ module.exports=[750227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:pat
15
15
  updated_at = excluded.updated_at`,[e.id,e.taskId,e.graphVersion,e.mode,l(e.policy),l(e.doneCriteria),l(e.schedule??null),e.createdAt,e.updatedAt]),n.query("DELETE FROM graph_nodes WHERE graph_id = ?",[e.id]),n.query("DELETE FROM graph_edges WHERE graph_id = ?",[e.id]),Object.entries(e.nodes))){let s=m(r);n.query(`INSERT INTO graph_nodes (graph_id, node_id, type, status, config, output, metrics)
16
16
  VALUES (?, ?, ?, ?, ?, ?, ?)`,[e.id,t,s.type,s.status,l(s.config),l(s.output),l(s.metrics)])}for(let t of e.edges)n.query(`INSERT INTO graph_edges (graph_id, from_id, to_id, type, condition, data_mapping)
17
17
  VALUES (?, ?, ?, ?, ?, ?)`,[e.id,t.from,t.to,t.type,t.condition??null,l(t.dataMapping??null)]);for(let t of e.versionHistory)this.appendEventInternal(n,e.id,t);for(let t of e.runtimeEvents??[])this.appendEventInternal(n,e.id,t);t?.skipTaskBinding||n.query("UPDATE tasks SET graph_id = ? WHERE id = ?",[e.id,e.taskId]);let s=this.getGraphForTask(n,e.taskId);if(!s)throw new i(e.id);return g(s),s})}finally{t?.skipTaskBinding&&(0,r.pragmaSet)(s,"foreign_keys = ON")}}getGraph(e){let t=this.getDb();return this.getGraphForTask(_(t),e)}updateNodeRuntime(e,t,s){let n=this.getDb(),a=_(n);return(0,r.transaction)(n,()=>{if(!a.query("SELECT id, graph_version FROM execution_graphs WHERE id = ?",[e]).rows[0])throw new i(e);let r=Object.keys(t);if(0===r.length){let t=a.query("SELECT graph_version, updated_at FROM execution_graphs WHERE id = ?",[e]);return{graphVersion:t.rows[0].graph_version,updatedAt:p(t.rows[0].updated_at)}}let s=r.map(()=>"?").join(", "),n=a.query(`SELECT node_id, type, status, config, output, metrics
18
- FROM graph_nodes WHERE graph_id = ? AND node_id IN (${s})`,[e,...r]),o=new Map;for(let e of n.rows)o.set(e.node_id,e);let u=r.filter(e=>!o.has(e));if(u.length>0)throw new d(e,u);for(let s of r){let r=t[s],n=o.get(s);if(!n||!r)continue;let i={...h(c(n.config)),...h(r.configPatch)};void 0!==r.startedAt&&(i.startedAt=r.startedAt),void 0!==r.completedAt&&(i.completedAt=r.completedAt),void 0!==r.actualMinutes&&(i.actualMinutes=r.actualMinutes),a.query(`UPDATE graph_nodes SET status = ?, metrics = ?, output = ?, config = ?
18
+ FROM graph_nodes WHERE graph_id = ? AND node_id IN (${s})`,[e,...r]),o=new Map;for(let e of n.rows)o.set(e.node_id,e);let d=r.filter(e=>!o.has(e));if(d.length>0)throw new u(e,d);for(let s of r){let r=t[s],n=o.get(s);if(!n||!r)continue;let i={...h(c(n.config)),...h(r.configPatch)};void 0!==r.startedAt&&(i.startedAt=r.startedAt),void 0!==r.completedAt&&(i.completedAt=r.completedAt),void 0!==r.actualMinutes&&(i.actualMinutes=r.actualMinutes),a.query(`UPDATE graph_nodes SET status = ?, metrics = ?, output = ?, config = ?
19
19
  WHERE graph_id = ? AND node_id = ?`,[r.status??n.status,l(r.metrics??c(n.metrics)),l(r.output??c(n.output)),l(i),e,s])}let g=a.query("UPDATE execution_graphs SET updated_at = datetime('now') WHERE id = ? RETURNING graph_version, updated_at",[e]);return{graphVersion:g.rows[0].graph_version,updatedAt:p(g.rows[0].updated_at)}})}updateGraphStructure(e,t,s){let n=this.getDb(),a=_(n);return(0,r.transaction)(n,()=>{let r=a.query("SELECT id, task_id, graph_version, mode, policy, done_criteria, schedule FROM execution_graphs WHERE id = ?",[e]).rows[0];if(!r)throw new i(e);if(t.nodes)for(let[r,s]of(a.query("DELETE FROM graph_nodes WHERE graph_id = ?",[e]),Object.entries(t.nodes))){let t=m(s);a.query(`INSERT INTO graph_nodes (graph_id, node_id, type, status, config, output, metrics)
20
20
  VALUES (?, ?, ?, ?, ?, ?, ?)`,[e,r,t.type,t.status,l(t.config),l(t.output),l(t.metrics)])}if(t.edges)for(let r of(a.query("DELETE FROM graph_edges WHERE graph_id = ?",[e]),t.edges))a.query(`INSERT INTO graph_edges (graph_id, from_id, to_id, type, condition, data_mapping)
21
21
  VALUES (?, ?, ?, ?, ?, ?)`,[e,r.from,r.to,r.type,r.condition??null,l(r.dataMapping??null)]);let s=a.query(`UPDATE execution_graphs
@@ -24,9 +24,9 @@ module.exports=[750227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:pat
24
24
  RETURNING graph_version, updated_at`,[t.mode??r.mode,l(t.policy??c(r.policy)??{}),l(t.doneCriteria??c(r.done_criteria)??{}),l(t.schedule??c(r.schedule)??null),e]);if(void 0!==t.schedule){let e=this.getGraphForTask(a,r.task_id);e?.schedule&&g(e)}return{graphVersion:s.rows[0].graph_version,updatedAt:p(s.rows[0].updated_at)}})}appendEvent(e,t){let r=this.getDb();this.appendEventInternal(_(r),e,t)}getGraphForTask(e,t){let r=e.query(`SELECT id, task_id, graph_version, mode, policy, done_criteria, schedule, created_at, updated_at
25
25
  FROM execution_graphs WHERE task_id = ? ORDER BY updated_at DESC LIMIT 1`,[t]).rows[0];if(!r)return null;let o=e.query(`SELECT node_id, type, status, config, output, metrics
26
26
  FROM graph_nodes WHERE graph_id = ? ORDER BY node_id ASC`,[r.id]),i=e.query(`SELECT from_id, to_id, type, condition, data_mapping
27
- FROM graph_edges WHERE graph_id = ? ORDER BY from_id ASC, to_id ASC`,[r.id]),d=e.query(`SELECT event_type, payload, timestamp
28
- FROM graph_events WHERE graph_id = ? ORDER BY timestamp ASC, event_type ASC`,[r.id]),u={};for(let e of o.rows)u[e.node_id]=function(e){let t={...h(c(e.config)),type:e.type,status:e.status},r=c(e.metrics);null!==r&&(t.metrics=r);let s=c(e.output);return null!==s&&(t.output=s),t}(e);let l=i.rows.map(e=>({from:e.from_id,to:e.to_id,type:e.type,...e.condition?{condition:c(e.condition)}:{},...e.data_mapping?{dataMapping:c(e.data_mapping)}:{}})),g=[],f=[];for(let e of d.rows){let t=E(e);a.has(t.eventType)?g.push(t):f.push(t)}var m={id:r.id,taskId:r.task_id,graphVersion:r.graph_version,mode:r.mode,nodes:u,edges:l,policy:c(r.policy)??{},doneCriteria:c(r.done_criteria)??{},schedule:c(r.schedule)??void 0,versionHistory:g,runtimeEvents:f,createdAt:p(r.created_at),updatedAt:p(r.updated_at)};if(!(0,n.isAutomationFrontmatterEnabled)())return m;let _=(0,n.getAutomationRepository)().getAutomation(m.id);return _&&"execution_graph"===_.definition.target.type?{...m,schedule:(0,s.automationRecordToGraphSchedule)(_,m.schedule)}:m}appendEventInternal(e,t,r){e.query(`INSERT INTO graph_events (graph_id, event_type, payload, timestamp)
29
- VALUES (?, ?, ?, ?)`,[t,r.eventType,l(r),r.timestamp])}}function x(){return new y}let R=new y;function T(e,t){return R.createGraph(e,t)}function v(e){return R.getGraph(e)}function S(e,t,r){return R.updateNodeRuntime(e,t,r)}function A(e,t,r){return R.updateGraphStructure(e,t,r)}function I(e,t){return R.appendEvent(e,t)}function w(e,r={}){let s=["graph_id = ?"],n=[e];r.eventType&&(s.push("event_type = ?"),n.push(r.eventType)),r.since&&(s.push("timestamp >= ?"),n.push(r.since));let a=r.limit??1e3,o=`SELECT event_type, payload, timestamp
27
+ FROM graph_edges WHERE graph_id = ? ORDER BY from_id ASC, to_id ASC`,[r.id]),u=e.query(`SELECT event_type, payload, timestamp
28
+ FROM graph_events WHERE graph_id = ? ORDER BY timestamp ASC, event_type ASC`,[r.id]),d={};for(let e of o.rows)d[e.node_id]=function(e){let t={...h(c(e.config)),type:e.type,status:e.status},r=c(e.metrics);null!==r&&(t.metrics=r);let s=c(e.output);return null!==s&&(t.output=s),t}(e);let l=i.rows.map(e=>({from:e.from_id,to:e.to_id,type:e.type,...e.condition?{condition:c(e.condition)}:{},...e.data_mapping?{dataMapping:c(e.data_mapping)}:{}})),g=[],f=[];for(let e of u.rows){let t=E(e);a.has(t.eventType)?g.push(t):f.push(t)}var m={id:r.id,taskId:r.task_id,graphVersion:r.graph_version,mode:r.mode,nodes:d,edges:l,policy:c(r.policy)??{},doneCriteria:c(r.done_criteria)??{},schedule:c(r.schedule)??void 0,versionHistory:g,runtimeEvents:f,createdAt:p(r.created_at),updatedAt:p(r.updated_at)};if(!(0,n.isAutomationFrontmatterEnabled)())return m;let _=(0,n.getAutomationRepository)().getAutomation(m.id);return _&&"execution_graph"===_.definition.target.type?{...m,schedule:(0,s.automationRecordToGraphSchedule)(_,m.schedule)}:m}appendEventInternal(e,t,r){e.query(`INSERT INTO graph_events (graph_id, event_type, payload, timestamp)
29
+ VALUES (?, ?, ?, ?)`,[t,r.eventType,l(r),r.timestamp])}}function R(){return new y}let x=new y;function v(e,t){return x.createGraph(e,t)}function T(e){return x.getGraph(e)}function A(e,t,r){return x.updateNodeRuntime(e,t,r)}function S(e,t,r){return x.updateGraphStructure(e,t,r)}function I(e,t){return x.appendEvent(e,t)}function w(e,r={}){let s=["graph_id = ?"],n=[e];r.eventType&&(s.push("event_type = ?"),n.push(r.eventType)),r.since&&(s.push("timestamp >= ?"),n.push(r.since));let a=r.limit??1e3,o=`SELECT event_type, payload, timestamp
30
30
  FROM graph_events
31
31
  WHERE ${s.join(" AND ")}
32
32
  ORDER BY timestamp ASC, event_type ASC
@@ -39,12 +39,12 @@ module.exports=[750227,(e,t,r)=>{t.exports=e.x("node:path",()=>require("node:pat
39
39
  LIMIT 1`).get(r)??null}function N(){let e=new Set;if((0,n.isAutomationFrontmatterEnabled)()){for(let t of(0,n.getAutomationRepository)().listVisibleAutomations({targetType:"execution_graph",state:"active"}))"execution_graph"===t.definition.target.type&&t.definition.target.rootMessageId&&e.add(t.definition.target.rootMessageId);if(!(0,n.isAutomationDualReadEnabled)())return[...e]}for(let r of(0,t.getSQLiteDb)().prepare(`SELECT json_extract(schedule, '$.rootMessageId') AS rootMessageId
40
40
  FROM execution_graphs
41
41
  WHERE schedule IS NOT NULL
42
- AND json_extract(schedule, '$.state') = 'active'`).all())r.rootMessageId&&e.add(r.rootMessageId);return[...e]}function C(e){let r=e.trim();if(!r)return 0;let s=0;if((0,n.isAutomationFrontmatterEnabled)()){for(let e of(0,n.getAutomationRepository)().listVisibleAutomations({targetType:"execution_graph",state:"active",rootMessageId:r})){if("execution_graph"!==e.definition.target.type)continue;let t=e.definition.target.graphId??e.definition.id,r=e.definition.target.taskId??f(t);if(!r)continue;let n=v(r);n?.schedule&&(R.updateGraphStructure(n.id,{mode:n.mode,nodes:n.nodes,edges:n.edges,policy:n.policy,doneCriteria:n.doneCriteria,schedule:{...n.schedule,state:"stopped",tickInProgress:!1}},n.graphVersion),s+=1)}if(s>0||!(0,n.isAutomationDualReadEnabled)())return s}return Number((0,t.getSQLiteDb)().prepare(`UPDATE execution_graphs
42
+ AND json_extract(schedule, '$.state') = 'active'`).all())r.rootMessageId&&e.add(r.rootMessageId);return[...e]}function C(e){let r=e.trim();if(!r)return 0;let s=0;if((0,n.isAutomationFrontmatterEnabled)()){for(let e of(0,n.getAutomationRepository)().listVisibleAutomations({targetType:"execution_graph",state:"active",rootMessageId:r})){if("execution_graph"!==e.definition.target.type)continue;let t=e.definition.target.graphId??e.definition.id,r=e.definition.target.taskId??f(t);if(!r)continue;let n=T(r);n?.schedule&&(x.updateGraphStructure(n.id,{mode:n.mode,nodes:n.nodes,edges:n.edges,policy:n.policy,doneCriteria:n.doneCriteria,schedule:{...n.schedule,state:"stopped",tickInProgress:!1}},n.graphVersion),s+=1)}if(s>0||!(0,n.isAutomationDualReadEnabled)())return s}return Number((0,t.getSQLiteDb)().prepare(`UPDATE execution_graphs
43
43
  SET schedule = json_set(schedule, '$.state', 'stopped', '$.tickInProgress', json('false')),
44
44
  updated_at = strftime('%Y-%m-%dT%H:%M:%fZ','now')
45
45
  WHERE schedule IS NOT NULL
46
46
  AND json_extract(schedule, '$.rootMessageId') = ?
47
- AND json_extract(schedule, '$.state') = 'active'`).run(r).changes??0)}e.s(["GraphNodeNotFoundError",()=>d,"GraphNotFoundError",()=>i,"GraphStore",()=>y,"GraphTaskAlreadyBoundError",()=>u,"GraphVersionConflictError",()=>o,"appendEvent",()=>I,"createGraph",()=>T,"createGraphStore",()=>x,"deactivateSchedulesByRootMessageId",()=>C,"getActiveScheduleForRootMessageId",()=>k,"getActiveScheduleRootMessageIds",()=>N,"getGraph",()=>v,"getGraphEvents",()=>w,"getTaskIdForGraphId",()=>f,"updateGraphStructure",()=>A,"updateNodeRuntime",()=>S])},579042,e=>{"use strict";e.s(["DEFAULT_EXECUTION_POLICY",0,{replanBudgetRemaining:3,replanBudgetInitial:3,verifyBudgetRemaining:5,verifyBudgetInitial:5,maxConcurrentAutoChecks:1,immutableRequiredGates:!0,maxConcurrent:3,priorityMode:"fifo",nodeTimeoutMs:18e5,graphTimeoutMs:864e5},"FAILURE_NODE_STATUSES",0,["failed"],"INCOMPLETE_FOR_DONE_STATUSES",0,["pending","running","awaiting_human","blocked"],"SOFT_DEP_SATISFIED_STATUSES",0,["done","passed","failed","skipped","blocked"],"SUCCESS_NODE_STATUSES",0,["done","passed"],"TERMINAL_NODE_STATUSES",0,["done","passed","failed","skipped"]])},812057,(e,t,r)=>{t.exports=e.x("node:util",()=>require("node:util"))},504926,e=>{"use strict";var t=e.i(300248);function r(e,t=Date.now()){let s=t=>({graph:e,tickFired:!1,resetNodeIds:[],skipReason:t});if(!e.schedule)return s("no_schedule");let n=e.schedule;if("active"!==n.state)return s("not_active");if(n.tickInProgress)return s("tick_in_progress");if(null!=n.maxRuns&&n.runCount>=n.maxRuns)return s("max_runs_reached");if(n.cronExpr&&"number"==typeof n.nextTickAt){if(t<n.nextTickAt)return s("not_due")}else if(t-(n.lastTickAt??0)<n.intervalMs)return s("not_due");let a=JSON.parse(JSON.stringify(e)),o=[];for(let e of n.resetNodeIds){let t=a.nodes[e];t&&("done"===t.status||"passed"===t.status||"failed"===t.status||"skipped"===t.status)&&(a.nodes[e]={...t,status:"pending",startedAt:void 0,completedAt:void 0,metrics:void 0,..."function"===t.type?{output:void 0}:{},..."conditional"===t.type?{evaluatedTo:void 0}:{}},o.push(e))}return a.schedule={...n,tickInProgress:!0,lastTickAt:t,runCount:n.runCount+1},{graph:a,tickFired:!0,resetNodeIds:o}}function s(e){if(!e.schedule||!e.schedule.tickInProgress)return e;let r=e.schedule,s=r.nextTickAt;return r.cronExpr&&(s=(0,t.computeNextTickFromCron)(r.cronExpr)),{...e,schedule:{...r,tickInProgress:!1,nextTickAt:s}}}function n(e){if(!e.schedule)return!0;let t=new Set(["done","passed","failed","skipped"]);for(let r of e.schedule.resetNodeIds){let s=e.nodes[r];if(s&&!t.has(s.status))return!1}return!0}function a(e,t=6e4,r){return{intervalMs:t,state:"active",resetNodeIds:e,maxRuns:r,runCount:0,tickInProgress:!1,createdAt:new Date().toISOString()}}e.s(["completeScheduleTick",()=>s,"createThreadMonitorSchedule",()=>a,"isScheduleTickComplete",()=>n,"scheduleTickIfDue",()=>r])},326057,e=>{"use strict";var t=e.i(233405);function r(e,t){let r="string"==typeof e.args?.rootMessageId?e.args.rootMessageId.trim():"";return r||(t.schedule?.rootMessageId?.trim()??"")}async function s(t){try{let{getSQLiteDb:r}=await e.A(318801),s=r(),n=s.prepare("SELECT project_id FROM project_threads WHERE thread_id = ? ORDER BY created_at ASC LIMIT 1").get(t);if(!n?.project_id)return null;let a=s.prepare("SELECT agent_id FROM project_agents WHERE project_id = ? ORDER BY routing_order ASC, created_at ASC LIMIT 1").get(n.project_id);return a?.agent_id??null}catch{return null}}async function n(t,s){let n=r(t,s);if(!n)return{status:"failure",message:"thread-status requires rootMessageId"};let{getMessageThread:a,getThreadStatusSnapshot:o,sweepStaleWorkingReactions:i}=await e.A(718760),d=await a(n);if(!d)return{status:"failure",message:`Thread not found for rootMessageId: ${n}`};await i(d.threadId);let u=await o({threadId:d.threadId,rootMessageId:n});return{status:"success",output:{activeProcessCount:u.processes.filter(e=>"working"===e.status).length,messageCount:u.messages?.length??0,threadId:d.threadId,lastUpdatedAt:u.lastUpdatedAt}}}async function a(t,n){let a=r(t,n);if(!a)return{status:"failure",message:"ship-mode-act requires rootMessageId"};let o=function(e,t){let r="string"==typeof e.args?.steerNodeId&&e.args.steerNodeId.trim()?e.args.steerNodeId.trim():"steer",s=t.nodes[r];if(!s||"work"!==s.type)return null;let n=s.output;return n&&"object"==typeof n?{isDone:!!n.isDone,message:"string"==typeof n.message?n.message:""}:null}(t,n);if(!o)return{status:"failure",message:"Unable to read steer node output"};let{getMessageThread:i,saveMessages:d,updateMessageStatus:u}=await e.A(718760),{deactivateSchedulesByRootMessageId:l}=await e.A(972437),c=await i(a);if(!c)return{status:"failure",message:`Thread not found for rootMessageId: ${a}`};if(o.isDone)return l(a),await u(c.threadId,a,"in-review",null),{status:"success",output:{done:!0,action:"stopped_and_in_review"}};let p=await s(c.threadId),h=crypto.randomUUID();return await d(c.threadId,[{id:h,role:"assistant",participantId:p,content:o.message,timestamp:Date.now(),rootMessageId:a,parentMessageId:a,depth:1}]),{status:"success",output:{done:!1,action:"sent_next_steps",sender:p,messageId:h}}}async function o(e,t){if("internal"!==e.kind)return{status:"failure",message:`Unsupported function node kind: ${e.kind}`};switch(e.command){case"thread-status":return n(e,t);case"ship-mode-act":return a(e,t);default:return{status:"failure",message:`Unsupported internal function command: ${e.command}`}}}async function i(e,r){if("bash"!==e.kind)return{status:"failure",message:`Unsupported function node kind: ${e.kind}`};let s=e.command;if(!s||""===s.trim())return{status:"failure",message:"Empty command"};let n=e.timeoutMs??3e4;return new Promise(e=>{let r="",a="",o=0,i=!1,d=!1,u=(0,t.spawn)(s,[],{shell:!0,timeout:n,killSignal:"SIGTERM"}),l=setTimeout(()=>{d=!0,u.kill("SIGTERM")},n);u.stdout.on("data",e=>{if(i)return;let t=Buffer.byteLength(e.toString(),"utf8");if(o+t>65536){i=!0;return}r+=e.toString(),o+=t}),u.stderr.on("data",e=>{a+=e.toString()}),u.on("error",t=>{clearTimeout(l),e({status:"failure",message:`Failed to spawn command: ${t.message}`,error:t})}),u.on("close",t=>{if(clearTimeout(l),d)return void e({status:"failure",message:`Command timed out after ${n}ms`});if(i)return void e({status:"failure",message:"Stdout exceeded 65536 bytes limit"});if(0!==t)return void e({status:"failure",message:`Command exited with code ${t}: ${a||"(no stderr)"}`});let s=r.trim();if(""===s)return void e({status:"success",output:{}});try{let t=JSON.parse(s);e({status:"success",output:t})}catch{e({status:"success",output:{raw:s}})}})})}function d(){return async(e,t)=>{switch(e.kind){case"bash":return i(e,t);case"internal":return o(e,t);default:return{status:"failure",message:`Unsupported function node kind: ${e.kind}`}}}}e.s(["createDispatchFunction",()=>d,"dispatchBashFunction",()=>i],326057)},997127,e=>{"use strict";var t=e.i(902157),r=e.i(750227),s=e.i(660526);let n=`You are a progress assessor. Review the conversation state below and determine:
47
+ AND json_extract(schedule, '$.state') = 'active'`).run(r).changes??0)}e.s(["GraphNodeNotFoundError",()=>u,"GraphNotFoundError",()=>i,"GraphStore",()=>y,"GraphTaskAlreadyBoundError",()=>d,"GraphVersionConflictError",()=>o,"appendEvent",()=>I,"createGraph",()=>v,"createGraphStore",()=>R,"deactivateSchedulesByRootMessageId",()=>C,"getActiveScheduleForRootMessageId",()=>k,"getActiveScheduleRootMessageIds",()=>N,"getGraph",()=>T,"getGraphEvents",()=>w,"getTaskIdForGraphId",()=>f,"updateGraphStructure",()=>S,"updateNodeRuntime",()=>A])},579042,e=>{"use strict";e.s(["DEFAULT_EXECUTION_POLICY",0,{replanBudgetRemaining:3,replanBudgetInitial:3,verifyBudgetRemaining:5,verifyBudgetInitial:5,maxConcurrentAutoChecks:1,immutableRequiredGates:!0,maxConcurrent:3,priorityMode:"fifo",nodeTimeoutMs:18e5,graphTimeoutMs:864e5},"FAILURE_NODE_STATUSES",0,["failed"],"INCOMPLETE_FOR_DONE_STATUSES",0,["pending","running","awaiting_human","blocked"],"SOFT_DEP_SATISFIED_STATUSES",0,["done","passed","failed","skipped","blocked"],"SUCCESS_NODE_STATUSES",0,["done","passed"],"TERMINAL_NODE_STATUSES",0,["done","passed","failed","skipped"]])},810010,e=>{"use strict";function t(e){let t=e?.trim();return t?t.replace(/\/+$/,""):null}let r="http://localhost:41741";function s(){return t("http://localhost:3000")??t(process.env.AGX_BOARD_URL)??t(process.env.NEXT_PUBLIC_AGX_BOARD_URL)??r}function n(){return t(process.env.AGX_BOARD_URL)??t(process.env.NEXT_PUBLIC_AGX_BOARD_URL)??t("http://localhost:3000")??r}function a(){let e=new Set([r,"http://127.0.0.1:41741"]);for(let r of["http://localhost:3000",process.env.AGX_BOARD_URL,process.env.NEXT_PUBLIC_AGX_BOARD_URL]){let s=t(r);s&&e.add(s)}return Array.from(e)}e.s(["getAllowedOrigins",()=>a,"getConfiguredAppBaseUrl",()=>s,"getConfiguredBoardBaseUrl",()=>n])},812057,(e,t,r)=>{t.exports=e.x("node:util",()=>require("node:util"))},504926,e=>{"use strict";var t=e.i(300248);function r(e,t=Date.now()){let s=t=>({graph:e,tickFired:!1,resetNodeIds:[],skipReason:t});if(!e.schedule)return s("no_schedule");let n=e.schedule;if("active"!==n.state)return s("not_active");if(n.tickInProgress)return s("tick_in_progress");if(null!=n.maxRuns&&n.runCount>=n.maxRuns)return s("max_runs_reached");if(n.cronExpr&&"number"==typeof n.nextTickAt){if(t<n.nextTickAt)return s("not_due")}else if(t-(n.lastTickAt??0)<n.intervalMs)return s("not_due");let a=JSON.parse(JSON.stringify(e)),o=[];for(let e of n.resetNodeIds){let t=a.nodes[e];t&&("done"===t.status||"passed"===t.status||"failed"===t.status||"skipped"===t.status)&&(a.nodes[e]={...t,status:"pending",startedAt:void 0,completedAt:void 0,metrics:void 0,..."function"===t.type?{output:void 0}:{},..."conditional"===t.type?{evaluatedTo:void 0}:{}},o.push(e))}return a.schedule={...n,tickInProgress:!0,lastTickAt:t,runCount:n.runCount+1},{graph:a,tickFired:!0,resetNodeIds:o}}function s(e){if(!e.schedule||!e.schedule.tickInProgress)return e;let r=e.schedule,s=r.nextTickAt;return r.cronExpr&&(s=(0,t.computeNextTickFromCron)(r.cronExpr)),{...e,schedule:{...r,tickInProgress:!1,nextTickAt:s}}}function n(e){if(!e.schedule)return!0;let t=new Set(["done","passed","failed","skipped"]);for(let r of e.schedule.resetNodeIds){let s=e.nodes[r];if(s&&!t.has(s.status))return!1}return!0}function a(e,t=6e4,r){return{intervalMs:t,state:"active",resetNodeIds:e,maxRuns:r,runCount:0,tickInProgress:!1,createdAt:new Date().toISOString()}}e.s(["completeScheduleTick",()=>s,"createThreadMonitorSchedule",()=>a,"isScheduleTickComplete",()=>n,"scheduleTickIfDue",()=>r])},326057,e=>{"use strict";var t=e.i(233405);function r(e,t){let r="string"==typeof e.args?.rootMessageId?e.args.rootMessageId.trim():"";return r||(t.schedule?.rootMessageId?.trim()??"")}async function s(t){try{let{getSQLiteDb:r}=await e.A(318801),s=r(),n=s.prepare("SELECT project_id FROM project_threads WHERE thread_id = ? ORDER BY created_at ASC LIMIT 1").get(t);if(!n?.project_id)return null;let a=s.prepare("SELECT agent_id FROM project_agents WHERE project_id = ? ORDER BY routing_order ASC, created_at ASC LIMIT 1").get(n.project_id);return a?.agent_id??null}catch{return null}}async function n(t,s){let n=r(t,s);if(!n)return{status:"failure",message:"thread-status requires rootMessageId"};let{getMessageThread:a,getThreadStatusSnapshot:o,sweepStaleWorkingReactions:i}=await e.A(718760),u=await a(n);if(!u)return{status:"failure",message:`Thread not found for rootMessageId: ${n}`};await i(u.threadId);let d=await o({threadId:u.threadId,rootMessageId:n});return{status:"success",output:{activeProcessCount:d.processes.filter(e=>"working"===e.status).length,messageCount:d.messages?.length??0,threadId:u.threadId,lastUpdatedAt:d.lastUpdatedAt}}}async function a(t,n){let a=r(t,n);if(!a)return{status:"failure",message:"ship-mode-act requires rootMessageId"};let o=function(e,t){let r="string"==typeof e.args?.steerNodeId&&e.args.steerNodeId.trim()?e.args.steerNodeId.trim():"steer",s=t.nodes[r];if(!s||"work"!==s.type)return null;let n=s.output;return n&&"object"==typeof n?{isDone:!!n.isDone,message:"string"==typeof n.message?n.message:""}:null}(t,n);if(!o)return{status:"failure",message:"Unable to read steer node output"};let{getMessageThread:i,saveMessages:u,updateMessageStatus:d}=await e.A(718760),{deactivateSchedulesByRootMessageId:l}=await e.A(972437),c=await i(a);if(!c)return{status:"failure",message:`Thread not found for rootMessageId: ${a}`};if(o.isDone)return l(a),await d(c.threadId,a,"in-review",null),{status:"success",output:{done:!0,action:"stopped_and_in_review"}};let p=await s(c.threadId),h=crypto.randomUUID();return await u(c.threadId,[{id:h,role:"assistant",participantId:p,content:o.message,timestamp:Date.now(),rootMessageId:a,parentMessageId:a,depth:1}]),{status:"success",output:{done:!1,action:"sent_next_steps",sender:p,messageId:h}}}async function o(e,t){if("internal"!==e.kind)return{status:"failure",message:`Unsupported function node kind: ${e.kind}`};switch(e.command){case"thread-status":return n(e,t);case"ship-mode-act":return a(e,t);default:return{status:"failure",message:`Unsupported internal function command: ${e.command}`}}}async function i(e,r){if("bash"!==e.kind)return{status:"failure",message:`Unsupported function node kind: ${e.kind}`};let s=e.command;if(!s||""===s.trim())return{status:"failure",message:"Empty command"};let n=e.timeoutMs??3e4;return new Promise(e=>{let r="",a="",o=0,i=!1,u=!1,d=(0,t.spawn)(s,[],{shell:!0,timeout:n,killSignal:"SIGTERM"}),l=setTimeout(()=>{u=!0,d.kill("SIGTERM")},n);d.stdout.on("data",e=>{if(i)return;let t=Buffer.byteLength(e.toString(),"utf8");if(o+t>65536){i=!0;return}r+=e.toString(),o+=t}),d.stderr.on("data",e=>{a+=e.toString()}),d.on("error",t=>{clearTimeout(l),e({status:"failure",message:`Failed to spawn command: ${t.message}`,error:t})}),d.on("close",t=>{if(clearTimeout(l),u)return void e({status:"failure",message:`Command timed out after ${n}ms`});if(i)return void e({status:"failure",message:"Stdout exceeded 65536 bytes limit"});if(0!==t)return void e({status:"failure",message:`Command exited with code ${t}: ${a||"(no stderr)"}`});let s=r.trim();if(""===s)return void e({status:"success",output:{}});try{let t=JSON.parse(s);e({status:"success",output:t})}catch{e({status:"success",output:{raw:s}})}})})}function u(){return async(e,t)=>{switch(e.kind){case"bash":return i(e,t);case"internal":return o(e,t);default:return{status:"failure",message:`Unsupported function node kind: ${e.kind}`}}}}e.i(810010),e.s(["createDispatchFunction",()=>u,"dispatchBashFunction",()=>i],326057)},997127,e=>{"use strict";var t=e.i(902157),r=e.i(750227),s=e.i(660526);let n=`You are a progress assessor. Review the conversation state below and determine:
48
48
  1. Is the work DONE? (all objectives met, code written, tests passing)
49
49
  2. If not done, what should the team do next?
50
50
 
@@ -56,6 +56,6 @@ If not done, message must be exactly one message that combines:
56
56
  - a brief assessment of what is done vs. not done
57
57
  - the concrete next steps for the team
58
58
 
59
- Do not produce separate status and instruction messages.`;function a(){return async(a,o)=>{let i=o.schedule?.rootMessageId;if(!i)return{status:"failure",message:"No rootMessageId on graph schedule"};console.log(`[work-dispatch] Dispatching steer node "${a.title}" for graph ${o.id} (root: ${i})`);try{let{getMessageThread:a,getThreadStatusSnapshot:o,sweepStaleWorkingReactions:d}=await e.A(718760),u=await a(i);if(!u)return{status:"failure",message:`Thread not found for rootMessageId: ${i}`};await d(u.threadId);let l=await o({threadId:u.threadId,rootMessageId:i}),c=l.processes.filter(e=>"working"===e.status).length,p=(l.messages??[]).slice(-10).map(e=>{let t=e.participantId??e.role??"?",r=(e.content??"").slice(0,300);return`[${t}]: ${r}`}).join("\n");console.log(`[work-dispatch] Thread: active=${c}, msgs=${l.messages?.length??0}`);let h=["--- THREAD STATE ---",`Active agents: ${c}`,`Total messages: ${l.messages?.length??0}`,"\nRecent messages:",p,"--- END THREAD STATE ---\n\nAssess the progress and respond with the JSON object."].join("\n"),{runCliResponse:g}=await e.A(531259),f=function(e){switch(e){case"claude":case"gemini":case"ollama":case"codex":case"zai":return e;default:return"claude"}}(function(){try{let e=(0,r.join)((0,s.homedir)(),".agx","config.json");return JSON.parse((0,t.readFileSync)(e,"utf8")).defaultProvider??"claude"}catch{return"claude"}}());console.log(`[work-dispatch] Calling ${f} via runCliResponse (prompt length: ${h.length})...`);let m="";await g({provider:f,model:null,prompt:h,systemContext:n,onDelta:e=>{m+=e},onLog:(e,t)=>{console.log(`[work-dispatch] [${e}] ${t}`)}}),console.log(`[work-dispatch] Raw response: ${m.slice(0,500)}`);let E=function(e){let t=e.match(/\{[\s\S]*?"isDone"\s*:\s*(true|false)[\s\S]*?\}/);if(t)try{let e=JSON.parse(t[0]);return{isDone:!!e.isDone,message:String(e.message??"")}}catch{}return e.includes("[done]")?{isDone:!0,message:e}:{isDone:!1,message:e}}(m.trim());return console.log("[work-dispatch] Parsed result:",E),{status:"success",output:E}}catch(e){return console.error("[work-dispatch] Steer dispatch failed:",e),{status:"failure",message:e instanceof Error?e.message:String(e),error:e}}}}e.s(["createDispatchWork",()=>a])},800050,e=>{"use strict";var t=e.i(747909),r=e.i(174017),s=e.i(996250),n=e.i(759756),a=e.i(561916),o=e.i(174677),i=e.i(869741),d=e.i(316795),u=e.i(487718),l=e.i(995169),c=e.i(47587),p=e.i(666012),h=e.i(570101),g=e.i(626937),f=e.i(10372),m=e.i(193695);e.i(52474);var E=e.i(600220),_=e.i(89171),y=e.i(97812),x=e.i(504926),R=e.i(300248),T=e.i(33601),v=e.i(326057),S=e.i(997127);async function A(e){let t=e.nextUrl.searchParams.get("rootMessageId"),r="1"===e.nextUrl.searchParams.get("run");if(!t)return _.NextResponse.json({error:"rootMessageId required"},{status:400});let s=new y.GraphStore().getGraph(t);if(!s)return _.NextResponse.json({error:"Graph not found"},{status:404});let n={id:s.id,schedule:{state:s.schedule?.state,intervalMs:s.schedule?.intervalMs,runCount:s.schedule?.runCount,tickInProgress:s.schedule?.tickInProgress,lastTickAt:s.schedule?.lastTickAt?new Date(s.schedule.lastTickAt).toISOString():null},pipeline:s.edges.map(e=>{let t=s.nodes[e.from],r=s.nodes[e.to];return`[${e.from}] (${t?.type}:${t?.status}) ─${e.type}→ [${e.to}] (${r?.type}:${r?.status})`}),nodes:Object.fromEntries(Object.entries(s.nodes).map(([e,t])=>{let r={type:t.type,status:t.status};return"function"===t.type&&(r.kind=t.kind,r.command=t.command),"conditional"===t.type&&(r.expression=t.condition.expression,r.inputFrom=t.condition.inputFrom,"evaluatedTo"in t&&(r.evaluatedTo=t.evaluatedTo)),"output"in t&&t.output&&(r.output=t.output),"deps"in t&&(r.deps=t.deps),[e,r]}))},a=(0,x.scheduleTickIfDue)(s),o={tickFired:a.tickFired,...!a.tickFired&&"skipReason"in a?{skipReason:a.skipReason}:{}};if(!a.tickFired)return _.NextResponse.json({workflow:n,tickCheck:o,nodes:[]});let i=[],d=a.graph,u=(0,v.createDispatchFunction)(),l=(0,S.createDispatchWork)();for(let e=0;e<10;e++){let e=(0,R.schedulerTick)(d);if(d=e.graph,!(e.functionToRun.length>0||e.workToRun.length>0||e.control.conditionalNodeIds.length>0))break;for(let t of e.control.conditionalNodeIds){let e=d.nodes[t];if(!e||"conditional"!==e.type)continue;let r=d.nodes[e.condition.inputFrom],s=r&&"output"in r?r.output:null;i.push({node:t,type:"conditional",input:{expression:e.condition.expression,inputFrom:e.condition.inputFrom,sourceOutput:s},processing:`evaluated "${e.condition.expression}"`,output:{status:e.status,evaluatedTo:"evaluatedTo"in e?e.evaluatedTo:null,thenBranch:e.thenBranch,elseBranch:e.elseBranch}})}for(let t of e.functionToRun){let e=d.nodes[t];if(!e||"function"!==e.type)continue;let s={node:t,type:"function",kind:e.kind,input:{command:e.command,timeoutMs:e.timeoutMs??3e4},processing:r?"executing...":"skipped (add &run=1)"};if(r){let e=Date.now();try{let r=(d=(await (0,T.executeNode)(d,t,{dispatchFunction:u})).graph).nodes[t];s.processing=`executed in ${Date.now()-e}ms`,s.output={status:r?.status,data:r&&"output"in r?r.output:null,errors:r&&"errors"in r?r.errors:null}}catch(t){s.processing=`failed after ${Date.now()-e}ms`,s.output={status:"error",error:t instanceof Error?t.message:String(t)}}}else s.output="(not executed)";i.push(s)}for(let t of e.workToRun){let e=d.nodes[t],s={node:t,type:"work",input:e,processing:r?"executing...":"ready to dispatch (add &run=1)",output:{status:e?.status}};if(r&&e?.type==="work"){let e=Date.now();try{d=(await (0,T.executeNode)(d,t,{dispatchFunction:u,dispatchWork:l})).graph,s.processing=`executed in ${Date.now()-e}ms`,s.output={status:d.nodes[t]?.status,data:"output"in d.nodes[t]?d.nodes[t].output:null}}catch(t){s.processing=`failed after ${Date.now()-e}ms`,s.output={status:"error",error:t instanceof Error?t.message:String(t)}}}i.push(s)}if((0,x.isScheduleTickComplete)(d))break}let c={complete:(0,x.isScheduleTickComplete)(d),resetNodes:s.schedule?.resetNodeIds.map(e=>({id:e,status:d.nodes[e]?.status}))};return _.NextResponse.json({workflow:n,tickCheck:o,nodes:i,completion:c})}e.s(["GET",()=>A,"dynamic",0,"force-dynamic","runtime",0,"nodejs"],556241);var I=e.i(556241);let w=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/schedules/debug/route",pathname:"/api/schedules/debug",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/schedules/debug/route.ts",nextConfigOutput:"standalone",userland:I}),{workAsyncStorage:k,workUnitAsyncStorage:N,serverHooks:C}=w;function b(){return(0,s.patchFetch)({workAsyncStorage:k,workUnitAsyncStorage:N})}async function D(e,t,s){w.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let _="/api/schedules/debug/route";_=_.replace(/\/index$/,"")||"/";let y=await w.prepare(e,t,{srcPage:_,multiZoneDraftMode:!1});if(!y)return t.statusCode=400,t.end("Bad Request"),null==s.waitUntil||s.waitUntil.call(s,Promise.resolve()),null;let{buildId:x,params:R,nextConfig:T,parsedUrl:v,isDraftMode:S,prerenderManifest:A,routerServerContext:I,isOnDemandRevalidate:k,revalidateOnlyGenerated:N,resolvedPathname:C,clientReferenceManifest:b,serverActionsManifest:D}=y,O=(0,i.normalizeAppPath)(_),M=!!(A.dynamicRoutes[O]||A.routes[C]),L=async()=>((null==I?void 0:I.render404)?await I.render404(e,t,v,!1):t.end("This page could not be found"),null);if(M&&!S){let e=!!A.routes[C],t=A.dynamicRoutes[O];if(t&&!1===t.fallback&&!e){if(T.experimental.adapterPath)return await L();throw new m.NoFallbackError}}let $=null;!M||w.isDev||S||($="/index"===($=C)?"/":$);let F=!0===w.isDev||!M,q=M&&!F;D&&b&&(0,o.setManifestsSingleton)({page:_,clientReferenceManifest:b,serverActionsManifest:D});let j=e.method||"GET",U=(0,a.getTracer)(),P=U.getActiveScopeSpan(),G={params:R,prerenderManifest:A,renderOpts:{experimental:{authInterrupts:!!T.experimental.authInterrupts},cacheComponents:!!T.cacheComponents,supportsDynamicResponse:F,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:T.cacheLife,waitUntil:s.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,s,n)=>w.onRequestError(e,t,s,n,I)},sharedContext:{buildId:x}},H=new d.NodeNextRequest(e),B=new d.NodeNextResponse(t),W=u.NextRequestAdapter.fromNodeNextRequest(H,(0,u.signalFromNodeResponse)(t));try{let o=async e=>w.handle(W,G).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=U.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==l.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 s=r.get("next.route");if(s){let t=`${j} ${s}`;e.setAttributes({"next.route":s,"http.route":s,"next.span_name":t}),e.updateName(t)}else e.updateName(`${j} ${_}`)}),i=!!(0,n.getRequestMeta)(e,"minimalMode"),d=async n=>{var a,d;let u=async({previousCacheEntry:r})=>{try{if(!i&&k&&N&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await o(n);e.fetchMetrics=G.renderOpts.fetchMetrics;let d=G.renderOpts.pendingWaitUntil;d&&s.waitUntil&&(s.waitUntil(d),d=void 0);let u=G.renderOpts.collectedTags;if(!M)return await (0,p.sendResponse)(H,B,a,G.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(a.headers);u&&(t[f.NEXT_CACHE_TAGS_HEADER]=u),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==G.renderOpts.collectedRevalidate&&!(G.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&G.renderOpts.collectedRevalidate,s=void 0===G.renderOpts.collectedExpire||G.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:G.renderOpts.collectedExpire;return{value:{kind:E.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:s}}}}catch(t){throw(null==r?void 0:r.isStale)&&await w.onRequestError(e,t,{routerKind:"App Router",routePath:_,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:q,isOnDemandRevalidate:k})},!1,I),t}},l=await w.handleResponse({req:e,nextConfig:T,cacheKey:$,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:k,revalidateOnlyGenerated:N,responseGenerator:u,waitUntil:s.waitUntil,isMinimalMode:i});if(!M)return null;if((null==l||null==(a=l.value)?void 0:a.kind)!==E.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(d=l.value)?void 0:d.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});i||t.setHeader("x-nextjs-cache",k?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),S&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,h.fromNodeOutgoingHttpHeaders)(l.value.headers);return i&&M||m.delete(f.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||t.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,g.getCacheControlHeader)(l.cacheControl)),await (0,p.sendResponse)(H,B,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};P?await d(P):await U.withPropagatedContext(e.headers,()=>U.trace(l.BaseServerSpan.handleRequest,{spanName:`${j} ${_}`,kind:a.SpanKind.SERVER,attributes:{"http.method":j,"http.target":e.url}},d))}catch(t){if(t instanceof m.NoFallbackError||await w.onRequestError(e,t,{routerKind:"App Router",routePath:O,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:q,isOnDemandRevalidate:k})},!1,I),M)throw t;return await (0,p.sendResponse)(H,B,new Response(null,{status:500})),null}}e.s(["handler",()=>D,"patchFetch",()=>b,"routeModule",()=>w,"serverHooks",()=>C,"workAsyncStorage",()=>k,"workUnitAsyncStorage",()=>N],800050)},482848,e=>{e.v(e=>Promise.resolve().then(()=>e(874533)))},997757,e=>{e.v(e=>Promise.resolve().then(()=>e(326057)))},318801,e=>{e.v(e=>Promise.resolve().then(()=>e(960447)))},718760,e=>{e.v(t=>Promise.all(["server/chunks/lib_history-store_ts_2e721df2._.js"].map(t=>e.l(t))).then(()=>t(442639)))},972437,e=>{e.v(e=>Promise.resolve().then(()=>e(97812)))},531259,e=>{e.v(t=>Promise.all(["server/chunks/lib_9f439b27._.js"].map(t=>e.l(t))).then(()=>t(914350)))}];
59
+ Do not produce separate status and instruction messages.`;function a(){return async(a,o)=>{let i=o.schedule?.rootMessageId;if(!i)return{status:"failure",message:"No rootMessageId on graph schedule"};console.log(`[work-dispatch] Dispatching steer node "${a.title}" for graph ${o.id} (root: ${i})`);try{let{getMessageThread:a,getThreadStatusSnapshot:o,sweepStaleWorkingReactions:u}=await e.A(718760),d=await a(i);if(!d)return{status:"failure",message:`Thread not found for rootMessageId: ${i}`};await u(d.threadId);let l=await o({threadId:d.threadId,rootMessageId:i}),c=l.processes.filter(e=>"working"===e.status).length,p=(l.messages??[]).slice(-10).map(e=>{let t=e.participantId??e.role??"?",r=(e.content??"").slice(0,300);return`[${t}]: ${r}`}).join("\n");console.log(`[work-dispatch] Thread: active=${c}, msgs=${l.messages?.length??0}`);let h=["--- THREAD STATE ---",`Active agents: ${c}`,`Total messages: ${l.messages?.length??0}`,"\nRecent messages:",p,"--- END THREAD STATE ---\n\nAssess the progress and respond with the JSON object."].join("\n"),{runCliResponse:g}=await e.A(531259),f=function(e){switch(e){case"claude":case"gemini":case"ollama":case"codex":case"zai":return e;default:return"claude"}}(function(){try{let e=(0,r.join)((0,s.homedir)(),".agx","config.json");return JSON.parse((0,t.readFileSync)(e,"utf8")).defaultProvider??"claude"}catch{return"claude"}}());console.log(`[work-dispatch] Calling ${f} via runCliResponse (prompt length: ${h.length})...`);let m="";await g({provider:f,model:null,prompt:h,systemContext:n,onDelta:e=>{m+=e},onLog:(e,t)=>{console.log(`[work-dispatch] [${e}] ${t}`)}}),console.log(`[work-dispatch] Raw response: ${m.slice(0,500)}`);let E=function(e){let t=e.match(/\{[\s\S]*?"isDone"\s*:\s*(true|false)[\s\S]*?\}/);if(t)try{let e=JSON.parse(t[0]);return{isDone:!!e.isDone,message:String(e.message??"")}}catch{}return e.includes("[done]")?{isDone:!0,message:e}:{isDone:!1,message:e}}(m.trim());return console.log("[work-dispatch] Parsed result:",E),{status:"success",output:E}}catch(e){return console.error("[work-dispatch] Steer dispatch failed:",e),{status:"failure",message:e instanceof Error?e.message:String(e),error:e}}}}e.s(["createDispatchWork",()=>a])},800050,e=>{"use strict";var t=e.i(747909),r=e.i(174017),s=e.i(996250),n=e.i(759756),a=e.i(561916),o=e.i(174677),i=e.i(869741),u=e.i(316795),d=e.i(487718),l=e.i(995169),c=e.i(47587),p=e.i(666012),h=e.i(570101),g=e.i(626937),f=e.i(10372),m=e.i(193695);e.i(52474);var E=e.i(600220),_=e.i(89171),y=e.i(97812),R=e.i(504926),x=e.i(300248),v=e.i(33601),T=e.i(326057),A=e.i(997127);async function S(e){let t=e.nextUrl.searchParams.get("rootMessageId"),r="1"===e.nextUrl.searchParams.get("run");if(!t)return _.NextResponse.json({error:"rootMessageId required"},{status:400});let s=new y.GraphStore().getGraph(t);if(!s)return _.NextResponse.json({error:"Graph not found"},{status:404});let n={id:s.id,schedule:{state:s.schedule?.state,intervalMs:s.schedule?.intervalMs,runCount:s.schedule?.runCount,tickInProgress:s.schedule?.tickInProgress,lastTickAt:s.schedule?.lastTickAt?new Date(s.schedule.lastTickAt).toISOString():null},pipeline:s.edges.map(e=>{let t=s.nodes[e.from],r=s.nodes[e.to];return`[${e.from}] (${t?.type}:${t?.status}) ─${e.type}→ [${e.to}] (${r?.type}:${r?.status})`}),nodes:Object.fromEntries(Object.entries(s.nodes).map(([e,t])=>{let r={type:t.type,status:t.status};return"function"===t.type&&(r.kind=t.kind,r.command=t.command),"conditional"===t.type&&(r.expression=t.condition.expression,r.inputFrom=t.condition.inputFrom,"evaluatedTo"in t&&(r.evaluatedTo=t.evaluatedTo)),"output"in t&&t.output&&(r.output=t.output),"deps"in t&&(r.deps=t.deps),[e,r]}))},a=(0,R.scheduleTickIfDue)(s),o={tickFired:a.tickFired,...!a.tickFired&&"skipReason"in a?{skipReason:a.skipReason}:{}};if(!a.tickFired)return _.NextResponse.json({workflow:n,tickCheck:o,nodes:[]});let i=[],u=a.graph,d=(0,T.createDispatchFunction)(),l=(0,A.createDispatchWork)();for(let e=0;e<10;e++){let e=(0,x.schedulerTick)(u);if(u=e.graph,!(e.functionToRun.length>0||e.workToRun.length>0||e.control.conditionalNodeIds.length>0))break;for(let t of e.control.conditionalNodeIds){let e=u.nodes[t];if(!e||"conditional"!==e.type)continue;let r=u.nodes[e.condition.inputFrom],s=r&&"output"in r?r.output:null;i.push({node:t,type:"conditional",input:{expression:e.condition.expression,inputFrom:e.condition.inputFrom,sourceOutput:s},processing:`evaluated "${e.condition.expression}"`,output:{status:e.status,evaluatedTo:"evaluatedTo"in e?e.evaluatedTo:null,thenBranch:e.thenBranch,elseBranch:e.elseBranch}})}for(let t of e.functionToRun){let e=u.nodes[t];if(!e||"function"!==e.type)continue;let s={node:t,type:"function",kind:e.kind,input:{command:e.command,timeoutMs:e.timeoutMs??3e4},processing:r?"executing...":"skipped (add &run=1)"};if(r){let e=Date.now();try{let r=(u=(await (0,v.executeNode)(u,t,{dispatchFunction:d})).graph).nodes[t];s.processing=`executed in ${Date.now()-e}ms`,s.output={status:r?.status,data:r&&"output"in r?r.output:null,errors:r&&"errors"in r?r.errors:null}}catch(t){s.processing=`failed after ${Date.now()-e}ms`,s.output={status:"error",error:t instanceof Error?t.message:String(t)}}}else s.output="(not executed)";i.push(s)}for(let t of e.workToRun){let e=u.nodes[t],s={node:t,type:"work",input:e,processing:r?"executing...":"ready to dispatch (add &run=1)",output:{status:e?.status}};if(r&&e?.type==="work"){let e=Date.now();try{u=(await (0,v.executeNode)(u,t,{dispatchFunction:d,dispatchWork:l})).graph,s.processing=`executed in ${Date.now()-e}ms`,s.output={status:u.nodes[t]?.status,data:"output"in u.nodes[t]?u.nodes[t].output:null}}catch(t){s.processing=`failed after ${Date.now()-e}ms`,s.output={status:"error",error:t instanceof Error?t.message:String(t)}}}i.push(s)}if((0,R.isScheduleTickComplete)(u))break}let c={complete:(0,R.isScheduleTickComplete)(u),resetNodes:s.schedule?.resetNodeIds.map(e=>({id:e,status:u.nodes[e]?.status}))};return _.NextResponse.json({workflow:n,tickCheck:o,nodes:i,completion:c})}e.s(["GET",()=>S,"dynamic",0,"force-dynamic","runtime",0,"nodejs"],556241);var I=e.i(556241);let w=new t.AppRouteRouteModule({definition:{kind:r.RouteKind.APP_ROUTE,page:"/api/schedules/debug/route",pathname:"/api/schedules/debug",filename:"route",bundlePath:""},distDir:".next",relativeProjectDir:"",resolvedPagePath:"[project]/app/api/schedules/debug/route.ts",nextConfigOutput:"standalone",userland:I}),{workAsyncStorage:k,workUnitAsyncStorage:N,serverHooks:C}=w;function D(){return(0,s.patchFetch)({workAsyncStorage:k,workUnitAsyncStorage:N})}async function b(e,t,s){w.isDev&&(0,n.addRequestMeta)(e,"devRequestTimingInternalsEnd",process.hrtime.bigint());let _="/api/schedules/debug/route";_=_.replace(/\/index$/,"")||"/";let y=await w.prepare(e,t,{srcPage:_,multiZoneDraftMode:!1});if(!y)return t.statusCode=400,t.end("Bad Request"),null==s.waitUntil||s.waitUntil.call(s,Promise.resolve()),null;let{buildId:R,params:x,nextConfig:v,parsedUrl:T,isDraftMode:A,prerenderManifest:S,routerServerContext:I,isOnDemandRevalidate:k,revalidateOnlyGenerated:N,resolvedPathname:C,clientReferenceManifest:D,serverActionsManifest:b}=y,O=(0,i.normalizeAppPath)(_),L=!!(S.dynamicRoutes[O]||S.routes[C]),M=async()=>((null==I?void 0:I.render404)?await I.render404(e,t,T,!1):t.end("This page could not be found"),null);if(L&&!A){let e=!!S.routes[C],t=S.dynamicRoutes[O];if(t&&!1===t.fallback&&!e){if(v.experimental.adapterPath)return await M();throw new m.NoFallbackError}}let $=null;!L||w.isDev||A||($="/index"===($=C)?"/":$);let F=!0===w.isDev||!L,U=L&&!F;b&&D&&(0,o.setManifestsSingleton)({page:_,clientReferenceManifest:D,serverActionsManifest:b});let q=e.method||"GET",j=(0,a.getTracer)(),P=j.getActiveScopeSpan(),G={params:x,prerenderManifest:S,renderOpts:{experimental:{authInterrupts:!!v.experimental.authInterrupts},cacheComponents:!!v.cacheComponents,supportsDynamicResponse:F,incrementalCache:(0,n.getRequestMeta)(e,"incrementalCache"),cacheLifeProfiles:v.cacheLife,waitUntil:s.waitUntil,onClose:e=>{t.on("close",e)},onAfterTaskError:void 0,onInstrumentationRequestError:(t,r,s,n)=>w.onRequestError(e,t,s,n,I)},sharedContext:{buildId:R}},B=new u.NodeNextRequest(e),H=new u.NodeNextResponse(t),W=d.NextRequestAdapter.fromNodeNextRequest(B,(0,d.signalFromNodeResponse)(t));try{let o=async e=>w.handle(W,G).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":t.statusCode,"next.rsc":!1});let r=j.getRootSpanAttributes();if(!r)return;if(r.get("next.span_type")!==l.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 s=r.get("next.route");if(s){let t=`${q} ${s}`;e.setAttributes({"next.route":s,"http.route":s,"next.span_name":t}),e.updateName(t)}else e.updateName(`${q} ${_}`)}),i=!!(0,n.getRequestMeta)(e,"minimalMode"),u=async n=>{var a,u;let d=async({previousCacheEntry:r})=>{try{if(!i&&k&&N&&!r)return t.statusCode=404,t.setHeader("x-nextjs-cache","REVALIDATED"),t.end("This page could not be found"),null;let a=await o(n);e.fetchMetrics=G.renderOpts.fetchMetrics;let u=G.renderOpts.pendingWaitUntil;u&&s.waitUntil&&(s.waitUntil(u),u=void 0);let d=G.renderOpts.collectedTags;if(!L)return await (0,p.sendResponse)(B,H,a,G.renderOpts.pendingWaitUntil),null;{let e=await a.blob(),t=(0,h.toNodeOutgoingHttpHeaders)(a.headers);d&&(t[f.NEXT_CACHE_TAGS_HEADER]=d),!t["content-type"]&&e.type&&(t["content-type"]=e.type);let r=void 0!==G.renderOpts.collectedRevalidate&&!(G.renderOpts.collectedRevalidate>=f.INFINITE_CACHE)&&G.renderOpts.collectedRevalidate,s=void 0===G.renderOpts.collectedExpire||G.renderOpts.collectedExpire>=f.INFINITE_CACHE?void 0:G.renderOpts.collectedExpire;return{value:{kind:E.CachedRouteKind.APP_ROUTE,status:a.status,body:Buffer.from(await e.arrayBuffer()),headers:t},cacheControl:{revalidate:r,expire:s}}}}catch(t){throw(null==r?void 0:r.isStale)&&await w.onRequestError(e,t,{routerKind:"App Router",routePath:_,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:k})},!1,I),t}},l=await w.handleResponse({req:e,nextConfig:v,cacheKey:$,routeKind:r.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:S,isRoutePPREnabled:!1,isOnDemandRevalidate:k,revalidateOnlyGenerated:N,responseGenerator:d,waitUntil:s.waitUntil,isMinimalMode:i});if(!L)return null;if((null==l||null==(a=l.value)?void 0:a.kind)!==E.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(u=l.value)?void 0:u.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});i||t.setHeader("x-nextjs-cache",k?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),A&&t.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,h.fromNodeOutgoingHttpHeaders)(l.value.headers);return i&&L||m.delete(f.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||t.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,g.getCacheControlHeader)(l.cacheControl)),await (0,p.sendResponse)(B,H,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};P?await u(P):await j.withPropagatedContext(e.headers,()=>j.trace(l.BaseServerSpan.handleRequest,{spanName:`${q} ${_}`,kind:a.SpanKind.SERVER,attributes:{"http.method":q,"http.target":e.url}},u))}catch(t){if(t instanceof m.NoFallbackError||await w.onRequestError(e,t,{routerKind:"App Router",routePath:O,routeType:"route",revalidateReason:(0,c.getRevalidateReason)({isStaticGeneration:U,isOnDemandRevalidate:k})},!1,I),L)throw t;return await (0,p.sendResponse)(B,H,new Response(null,{status:500})),null}}e.s(["handler",()=>b,"patchFetch",()=>D,"routeModule",()=>w,"serverHooks",()=>C,"workAsyncStorage",()=>k,"workUnitAsyncStorage",()=>N],800050)},482848,e=>{e.v(e=>Promise.resolve().then(()=>e(874533)))},997757,e=>{e.v(e=>Promise.resolve().then(()=>e(326057)))},318801,e=>{e.v(e=>Promise.resolve().then(()=>e(960447)))},718760,e=>{e.v(t=>Promise.all(["server/chunks/lib_history-store_ts_2e721df2._.js"].map(t=>e.l(t))).then(()=>t(442639)))},972437,e=>{e.v(e=>Promise.resolve().then(()=>e(97812)))},531259,e=>{e.v(t=>Promise.all(["server/chunks/lib_9f439b27._.js"].map(t=>e.l(t))).then(()=>t(914350)))}];
60
60
 
61
- //# sourceMappingURL=%5Broot-of-the-server%5D__5e5eb809._.js.map
61
+ //# sourceMappingURL=%5Broot-of-the-server%5D__152b2000._.js.map