@mndrk/agx 2.0.47 → 2.0.49

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 (486) hide show
  1. package/cloud-runtime/standalone/.next/BUILD_ID +1 -1
  2. package/cloud-runtime/standalone/.next/build-manifest.json +2 -2
  3. package/cloud-runtime/standalone/.next/prerender-manifest.json +3 -3
  4. package/cloud-runtime/standalone/.next/server/app/_global-error.html +2 -2
  5. package/cloud-runtime/standalone/.next/server/app/_global-error.rsc +1 -1
  6. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  7. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  8. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  9. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  10. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  11. package/cloud-runtime/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  12. package/cloud-runtime/standalone/.next/server/app/_not-found.html +2 -2
  13. package/cloud-runtime/standalone/.next/server/app/_not-found.rsc +2 -2
  14. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  15. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  16. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  17. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  18. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  19. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  20. package/cloud-runtime/standalone/.next/server/app/agents/[id]/page.js.nft.json +1 -1
  21. package/cloud-runtime/standalone/.next/server/app/agents/[id]/page_client-reference-manifest.js +1 -1
  22. package/cloud-runtime/standalone/.next/server/app/agents/page.js.nft.json +1 -1
  23. package/cloud-runtime/standalone/.next/server/app/agents/page_client-reference-manifest.js +1 -1
  24. package/cloud-runtime/standalone/.next/server/app/agents.html +2 -2
  25. package/cloud-runtime/standalone/.next/server/app/agents.rsc +3 -3
  26. package/cloud-runtime/standalone/.next/server/app/agents.segments/_full.segment.rsc +3 -3
  27. package/cloud-runtime/standalone/.next/server/app/agents.segments/_head.segment.rsc +1 -1
  28. package/cloud-runtime/standalone/.next/server/app/agents.segments/_index.segment.rsc +2 -2
  29. package/cloud-runtime/standalone/.next/server/app/agents.segments/_tree.segment.rsc +2 -2
  30. package/cloud-runtime/standalone/.next/server/app/agents.segments/agents/__PAGE__.segment.rsc +2 -2
  31. package/cloud-runtime/standalone/.next/server/app/agents.segments/agents.segment.rsc +1 -1
  32. package/cloud-runtime/standalone/.next/server/app/api/agent-specs/route.js +1 -1
  33. package/cloud-runtime/standalone/.next/server/app/api/agent-specs/route.js.nft.json +1 -1
  34. package/cloud-runtime/standalone/.next/server/app/api/agents/[id]/profile/route.js +1 -1
  35. package/cloud-runtime/standalone/.next/server/app/api/agents/[id]/profile/route.js.nft.json +1 -1
  36. package/cloud-runtime/standalone/.next/server/app/api/agents/export/route.js +1 -1
  37. package/cloud-runtime/standalone/.next/server/app/api/agents/export/route.js.nft.json +1 -1
  38. package/cloud-runtime/standalone/.next/server/app/api/automations/create/route.js.nft.json +1 -1
  39. package/cloud-runtime/standalone/.next/server/app/api/automations/route.js.nft.json +1 -1
  40. package/cloud-runtime/standalone/.next/server/app/api/chat/route.js +13 -7
  41. package/cloud-runtime/standalone/.next/server/app/api/chat/route.js.nft.json +1 -1
  42. package/cloud-runtime/standalone/.next/server/app/api/file-search/route.js.nft.json +1 -1
  43. package/cloud-runtime/standalone/.next/server/app/api/graphs/[graphId]/nodes/[nodeId]/route.js.nft.json +1 -1
  44. package/cloud-runtime/standalone/.next/server/app/api/health/route.js +1 -1
  45. package/cloud-runtime/standalone/.next/server/app/api/health/route.js.nft.json +1 -1
  46. package/cloud-runtime/standalone/.next/server/app/api/knowledge-notes/route.js +1 -1
  47. package/cloud-runtime/standalone/.next/server/app/api/knowledge-notes/route.js.nft.json +1 -1
  48. package/cloud-runtime/standalone/.next/server/app/api/learnings/route.js +1 -1
  49. package/cloud-runtime/standalone/.next/server/app/api/learnings/route.js.nft.json +1 -1
  50. package/cloud-runtime/standalone/.next/server/app/api/linear/callback/route.js +1 -1
  51. package/cloud-runtime/standalone/.next/server/app/api/linear/callback/route.js.nft.json +1 -1
  52. package/cloud-runtime/standalone/.next/server/app/api/linear/cycles/route.js +1 -1
  53. package/cloud-runtime/standalone/.next/server/app/api/linear/cycles/route.js.nft.json +1 -1
  54. package/cloud-runtime/standalone/.next/server/app/api/linear/issues/context/route.js +1 -1
  55. package/cloud-runtime/standalone/.next/server/app/api/linear/issues/context/route.js.nft.json +1 -1
  56. package/cloud-runtime/standalone/.next/server/app/api/linear/issues/route.js +1 -1
  57. package/cloud-runtime/standalone/.next/server/app/api/linear/issues/route.js.nft.json +1 -1
  58. package/cloud-runtime/standalone/.next/server/app/api/linear/options/route.js +3 -3
  59. package/cloud-runtime/standalone/.next/server/app/api/linear/options/route.js.nft.json +1 -1
  60. package/cloud-runtime/standalone/.next/server/app/api/linear/status/route.js +1 -1
  61. package/cloud-runtime/standalone/.next/server/app/api/linear/status/route.js.nft.json +1 -1
  62. package/cloud-runtime/standalone/.next/server/app/api/linear/token/route.js +1 -1
  63. package/cloud-runtime/standalone/.next/server/app/api/linear/token/route.js.nft.json +1 -1
  64. package/cloud-runtime/standalone/.next/server/app/api/memories/route.js +1 -1
  65. package/cloud-runtime/standalone/.next/server/app/api/memories/route.js.nft.json +1 -1
  66. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/start/route.js +1 -1
  67. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/start/route.js.nft.json +1 -1
  68. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/status/route.js +1 -1
  69. package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/status/route.js.nft.json +1 -1
  70. package/cloud-runtime/standalone/.next/server/app/api/participants/route.js +1 -1
  71. package/cloud-runtime/standalone/.next/server/app/api/participants/route.js.nft.json +1 -1
  72. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/agents/route.js +1 -1
  73. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/agents/route.js.nft.json +1 -1
  74. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v1/route.js +1 -1
  75. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v1/route.js.nft.json +1 -1
  76. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v2/route.js +1 -1
  77. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v2/route.js.nft.json +1 -1
  78. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/route.js +1 -1
  79. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
  80. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/skills/route.js +1 -1
  81. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/skills/route.js.nft.json +1 -1
  82. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/threads/route.js +1 -1
  83. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/threads/route.js.nft.json +1 -1
  84. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/variables/route.js +1 -1
  85. package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/variables/route.js.nft.json +1 -1
  86. package/cloud-runtime/standalone/.next/server/app/api/projects/route.js +1 -1
  87. package/cloud-runtime/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
  88. package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/cancel/route.js.nft.json +1 -1
  89. package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/route.js.nft.json +1 -1
  90. package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/runs/route.js.nft.json +1 -1
  91. package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/agents/route.js +1 -1
  92. package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/agents/route.js.nft.json +1 -1
  93. package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/poll/route.js +1 -1
  94. package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/poll/route.js.nft.json +1 -1
  95. package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/route.js.nft.json +1 -1
  96. package/cloud-runtime/standalone/.next/server/app/api/providers/route.js.nft.json +1 -1
  97. package/cloud-runtime/standalone/.next/server/app/api/queue/complete/route.js +1 -1
  98. package/cloud-runtime/standalone/.next/server/app/api/queue/complete/route.js.nft.json +1 -1
  99. package/cloud-runtime/standalone/.next/server/app/api/queue/route.js +2 -2
  100. package/cloud-runtime/standalone/.next/server/app/api/queue/route.js.nft.json +1 -1
  101. package/cloud-runtime/standalone/.next/server/app/api/schedules/debug/route.js +14 -6
  102. package/cloud-runtime/standalone/.next/server/app/api/schedules/debug/route.js.nft.json +1 -1
  103. package/cloud-runtime/standalone/.next/server/app/api/schedules/poll/route.js +13 -5
  104. package/cloud-runtime/standalone/.next/server/app/api/schedules/poll/route.js.nft.json +1 -1
  105. package/cloud-runtime/standalone/.next/server/app/api/schedules/route.js.nft.json +1 -1
  106. package/cloud-runtime/standalone/.next/server/app/api/status/route.js.nft.json +1 -1
  107. package/cloud-runtime/standalone/.next/server/app/api/summarize/route.js +1 -1
  108. package/cloud-runtime/standalone/.next/server/app/api/summarize/route.js.nft.json +1 -1
  109. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js +1 -1
  110. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js.nft.json +1 -1
  111. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/route.js +1 -1
  112. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/route.js.nft.json +1 -1
  113. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/costs/route.js +1 -1
  114. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/costs/route.js.nft.json +1 -1
  115. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/dependencies/route.js +1 -1
  116. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/dependencies/route.js.nft.json +1 -1
  117. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/events/route.js +1 -1
  118. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/events/route.js.nft.json +1 -1
  119. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/history/route.js +1 -1
  120. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/history/route.js.nft.json +1 -1
  121. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/metrics/route.js +1 -1
  122. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/metrics/route.js.nft.json +1 -1
  123. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/replan/route.js +1 -1
  124. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/replan/route.js.nft.json +1 -1
  125. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/restart/route.js +1 -1
  126. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/restart/route.js.nft.json +1 -1
  127. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/resume/route.js +1 -1
  128. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/resume/route.js.nft.json +1 -1
  129. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/rollback/route.js +1 -1
  130. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/rollback/route.js.nft.json +1 -1
  131. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/route.js +3 -4
  132. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/route.js.nft.json +1 -1
  133. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/schedule/route.js +1 -1
  134. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/schedule/route.js.nft.json +1 -1
  135. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/start/route.js +1 -1
  136. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/start/route.js.nft.json +1 -1
  137. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/stop/route.js +1 -1
  138. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/stop/route.js.nft.json +1 -1
  139. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/history/route.js +1 -1
  140. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/history/route.js.nft.json +1 -1
  141. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/logs/route.js +1 -1
  142. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/logs/route.js.nft.json +1 -1
  143. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/comments/route.js +1 -1
  144. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/comments/route.js.nft.json +1 -1
  145. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/complete/route.js +3 -4
  146. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/complete/route.js.nft.json +1 -1
  147. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/fail/route.js +3 -4
  148. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/fail/route.js.nft.json +1 -1
  149. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/resume/route.js +3 -4
  150. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/resume/route.js.nft.json +1 -1
  151. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/start/route.js +3 -4
  152. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/start/route.js.nft.json +1 -1
  153. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/stop/route.js +3 -4
  154. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/stop/route.js.nft.json +1 -1
  155. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js +4 -5
  156. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js.nft.json +1 -1
  157. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/route.js +1 -1
  158. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
  159. package/cloud-runtime/standalone/.next/server/app/api/tasks/assign-orphans/route.js +1 -1
  160. package/cloud-runtime/standalone/.next/server/app/api/tasks/assign-orphans/route.js.nft.json +1 -1
  161. package/cloud-runtime/standalone/.next/server/app/api/tasks/extract/route.js +1 -1
  162. package/cloud-runtime/standalone/.next/server/app/api/tasks/extract/route.js.nft.json +1 -1
  163. package/cloud-runtime/standalone/.next/server/app/api/tasks/route.js +2 -2
  164. package/cloud-runtime/standalone/.next/server/app/api/tasks/route.js.nft.json +1 -1
  165. package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route.js +1 -1
  166. package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route.js.nft.json +1 -1
  167. package/cloud-runtime/standalone/.next/server/app/api/threads/route.js +1 -1
  168. package/cloud-runtime/standalone/.next/server/app/api/threads/route.js.nft.json +1 -1
  169. package/cloud-runtime/standalone/.next/server/app/api/user-settings/route.js +1 -1
  170. package/cloud-runtime/standalone/.next/server/app/api/user-settings/route.js.nft.json +1 -1
  171. package/cloud-runtime/standalone/.next/server/app/automations/page/react-loadable-manifest.json +1 -1
  172. package/cloud-runtime/standalone/.next/server/app/automations/page.js.nft.json +1 -1
  173. package/cloud-runtime/standalone/.next/server/app/automations/page_client-reference-manifest.js +1 -1
  174. package/cloud-runtime/standalone/.next/server/app/automations.html +2 -2
  175. package/cloud-runtime/standalone/.next/server/app/automations.rsc +3 -3
  176. package/cloud-runtime/standalone/.next/server/app/automations.segments/_full.segment.rsc +3 -3
  177. package/cloud-runtime/standalone/.next/server/app/automations.segments/_head.segment.rsc +1 -1
  178. package/cloud-runtime/standalone/.next/server/app/automations.segments/_index.segment.rsc +2 -2
  179. package/cloud-runtime/standalone/.next/server/app/automations.segments/_tree.segment.rsc +2 -2
  180. package/cloud-runtime/standalone/.next/server/app/automations.segments/automations/__PAGE__.segment.rsc +2 -2
  181. package/cloud-runtime/standalone/.next/server/app/automations.segments/automations.segment.rsc +1 -1
  182. package/cloud-runtime/standalone/.next/server/app/board/page_client-reference-manifest.js +1 -1
  183. package/cloud-runtime/standalone/.next/server/app/board.html +2 -2
  184. package/cloud-runtime/standalone/.next/server/app/board.rsc +2 -2
  185. package/cloud-runtime/standalone/.next/server/app/board.segments/_full.segment.rsc +2 -2
  186. package/cloud-runtime/standalone/.next/server/app/board.segments/_head.segment.rsc +1 -1
  187. package/cloud-runtime/standalone/.next/server/app/board.segments/_index.segment.rsc +2 -2
  188. package/cloud-runtime/standalone/.next/server/app/board.segments/_tree.segment.rsc +2 -2
  189. package/cloud-runtime/standalone/.next/server/app/board.segments/board/__PAGE__.segment.rsc +1 -1
  190. package/cloud-runtime/standalone/.next/server/app/board.segments/board.segment.rsc +1 -1
  191. package/cloud-runtime/standalone/.next/server/app/execution-graph/page.js.nft.json +1 -1
  192. package/cloud-runtime/standalone/.next/server/app/execution-graph/page_client-reference-manifest.js +1 -1
  193. package/cloud-runtime/standalone/.next/server/app/execution-graph.html +2 -2
  194. package/cloud-runtime/standalone/.next/server/app/execution-graph.rsc +3 -3
  195. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_full.segment.rsc +3 -3
  196. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_head.segment.rsc +1 -1
  197. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_index.segment.rsc +2 -2
  198. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_tree.segment.rsc +2 -2
  199. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/execution-graph/__PAGE__.segment.rsc +2 -2
  200. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/execution-graph.segment.rsc +1 -1
  201. package/cloud-runtime/standalone/.next/server/app/folders/page.js.nft.json +1 -1
  202. package/cloud-runtime/standalone/.next/server/app/folders/page_client-reference-manifest.js +1 -1
  203. package/cloud-runtime/standalone/.next/server/app/folders.html +2 -2
  204. package/cloud-runtime/standalone/.next/server/app/folders.rsc +3 -3
  205. package/cloud-runtime/standalone/.next/server/app/folders.segments/_full.segment.rsc +3 -3
  206. package/cloud-runtime/standalone/.next/server/app/folders.segments/_head.segment.rsc +1 -1
  207. package/cloud-runtime/standalone/.next/server/app/folders.segments/_index.segment.rsc +2 -2
  208. package/cloud-runtime/standalone/.next/server/app/folders.segments/_tree.segment.rsc +2 -2
  209. package/cloud-runtime/standalone/.next/server/app/folders.segments/folders/__PAGE__.segment.rsc +2 -2
  210. package/cloud-runtime/standalone/.next/server/app/folders.segments/folders.segment.rsc +1 -1
  211. package/cloud-runtime/standalone/.next/server/app/index.html +2 -2
  212. package/cloud-runtime/standalone/.next/server/app/index.rsc +3 -3
  213. package/cloud-runtime/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  214. package/cloud-runtime/standalone/.next/server/app/index.segments/_full.segment.rsc +3 -3
  215. package/cloud-runtime/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  216. package/cloud-runtime/standalone/.next/server/app/index.segments/_index.segment.rsc +2 -2
  217. package/cloud-runtime/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  218. package/cloud-runtime/standalone/.next/server/app/page.js.nft.json +1 -1
  219. package/cloud-runtime/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  220. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/automations/page/react-loadable-manifest.json +1 -1
  221. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/automations/page.js.nft.json +1 -1
  222. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/automations/page_client-reference-manifest.js +1 -1
  223. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/graph/[taskId]/page.js.nft.json +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.js.nft.json +1 -1
  226. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page_client-reference-manifest.js +1 -1
  227. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/linear/page/react-loadable-manifest.json +1 -1
  228. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/linear/page.js.nft.json +1 -1
  229. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/linear/page_client-reference-manifest.js +1 -1
  230. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/page.js.nft.json +1 -1
  231. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
  232. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page.js.nft.json +1 -1
  233. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page_client-reference-manifest.js +1 -1
  234. package/cloud-runtime/standalone/.next/server/app/projects/orphans/page_client-reference-manifest.js +1 -1
  235. package/cloud-runtime/standalone/.next/server/app/projects/orphans.html +2 -2
  236. package/cloud-runtime/standalone/.next/server/app/projects/orphans.rsc +2 -2
  237. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_full.segment.rsc +2 -2
  238. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_head.segment.rsc +1 -1
  239. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_index.segment.rsc +2 -2
  240. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_tree.segment.rsc +2 -2
  241. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects/orphans/__PAGE__.segment.rsc +1 -1
  242. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects/orphans.segment.rsc +1 -1
  243. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects.segment.rsc +1 -1
  244. package/cloud-runtime/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  245. package/cloud-runtime/standalone/.next/server/app/projects.html +2 -2
  246. package/cloud-runtime/standalone/.next/server/app/projects.rsc +2 -2
  247. package/cloud-runtime/standalone/.next/server/app/projects.segments/_full.segment.rsc +2 -2
  248. package/cloud-runtime/standalone/.next/server/app/projects.segments/_head.segment.rsc +1 -1
  249. package/cloud-runtime/standalone/.next/server/app/projects.segments/_index.segment.rsc +2 -2
  250. package/cloud-runtime/standalone/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
  251. package/cloud-runtime/standalone/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +1 -1
  252. package/cloud-runtime/standalone/.next/server/app/projects.segments/projects.segment.rsc +1 -1
  253. package/cloud-runtime/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  254. package/cloud-runtime/standalone/.next/server/app/settings.html +2 -2
  255. package/cloud-runtime/standalone/.next/server/app/settings.rsc +2 -2
  256. package/cloud-runtime/standalone/.next/server/app/settings.segments/_full.segment.rsc +2 -2
  257. package/cloud-runtime/standalone/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  258. package/cloud-runtime/standalone/.next/server/app/settings.segments/_index.segment.rsc +2 -2
  259. package/cloud-runtime/standalone/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  260. package/cloud-runtime/standalone/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +1 -1
  261. package/cloud-runtime/standalone/.next/server/app/settings.segments/settings.segment.rsc +1 -1
  262. package/cloud-runtime/standalone/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  263. package/cloud-runtime/standalone/.next/server/app/skills.html +2 -2
  264. package/cloud-runtime/standalone/.next/server/app/skills.rsc +2 -2
  265. package/cloud-runtime/standalone/.next/server/app/skills.segments/_full.segment.rsc +2 -2
  266. package/cloud-runtime/standalone/.next/server/app/skills.segments/_head.segment.rsc +1 -1
  267. package/cloud-runtime/standalone/.next/server/app/skills.segments/_index.segment.rsc +2 -2
  268. package/cloud-runtime/standalone/.next/server/app/skills.segments/_tree.segment.rsc +2 -2
  269. package/cloud-runtime/standalone/.next/server/app/skills.segments/skills/__PAGE__.segment.rsc +1 -1
  270. package/cloud-runtime/standalone/.next/server/app/skills.segments/skills.segment.rsc +1 -1
  271. package/cloud-runtime/standalone/.next/server/app/status/page_client-reference-manifest.js +1 -1
  272. package/cloud-runtime/standalone/.next/server/app/status.html +2 -2
  273. package/cloud-runtime/standalone/.next/server/app/status.rsc +2 -2
  274. package/cloud-runtime/standalone/.next/server/app/status.segments/_full.segment.rsc +2 -2
  275. package/cloud-runtime/standalone/.next/server/app/status.segments/_head.segment.rsc +1 -1
  276. package/cloud-runtime/standalone/.next/server/app/status.segments/_index.segment.rsc +2 -2
  277. package/cloud-runtime/standalone/.next/server/app/status.segments/_tree.segment.rsc +2 -2
  278. package/cloud-runtime/standalone/.next/server/app/status.segments/status/__PAGE__.segment.rsc +1 -1
  279. package/cloud-runtime/standalone/.next/server/app/status.segments/status.segment.rsc +1 -1
  280. package/cloud-runtime/standalone/.next/server/app/thread/[id]/page.js.nft.json +1 -1
  281. package/cloud-runtime/standalone/.next/server/app/thread/[id]/page_client-reference-manifest.js +1 -1
  282. package/cloud-runtime/standalone/.next/server/app/welcome/page.js.nft.json +1 -1
  283. package/cloud-runtime/standalone/.next/server/app/welcome/page_client-reference-manifest.js +1 -1
  284. package/cloud-runtime/standalone/.next/server/app/welcome.html +2 -2
  285. package/cloud-runtime/standalone/.next/server/app/welcome.rsc +3 -3
  286. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_full.segment.rsc +3 -3
  287. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_head.segment.rsc +1 -1
  288. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_index.segment.rsc +2 -2
  289. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_tree.segment.rsc +2 -2
  290. package/cloud-runtime/standalone/.next/server/app/welcome.segments/welcome/__PAGE__.segment.rsc +2 -2
  291. package/cloud-runtime/standalone/.next/server/app/welcome.segments/welcome.segment.rsc +1 -1
  292. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__015d40a6._.js +67 -0
  293. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__a300f072._.js → [root-of-the-server]__02a4a323._.js} +2 -2
  294. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__05dedbe1._.js +64 -0
  295. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__4ce74056._.js → [root-of-the-server]__05f0bfbf._.js} +2 -2
  296. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__c22dd3a6._.js → [root-of-the-server]__08c82fe8._.js} +2 -2
  297. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__3fae531a._.js → [root-of-the-server]__09e37b59._.js} +2 -2
  298. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__1a1f66b1._.js → [root-of-the-server]__0e83aabc._.js} +2 -2
  299. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__27da58f0._.js +67 -0
  300. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__9ffa67b7._.js → [root-of-the-server]__2ae8b938._.js} +2 -2
  301. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__2cfd21b8._.js +108 -0
  302. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__37844df7._.js +67 -0
  303. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__d9f2041b._.js → [root-of-the-server]__3a93931b._.js} +4 -4
  304. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__f9f7f2df._.js → [root-of-the-server]__3c1403f2._.js} +2 -2
  305. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__143fdf69._.js → [root-of-the-server]__40e9e2e8._.js} +2 -2
  306. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__42e602eb._.js +49 -0
  307. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__a7b2350e._.js → [root-of-the-server]__456840d0._.js} +2 -2
  308. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__5c2848bb._.js +64 -0
  309. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__667c658f._.js +52 -0
  310. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__6a92b882._.js +49 -0
  311. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__6c9baa7c._.js +64 -0
  312. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__c21747df._.js → [root-of-the-server]__719eddc2._.js} +2 -2
  313. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__36d15de5._.js → [root-of-the-server]__7ee3dfe1._.js} +2 -2
  314. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__d324f8a1._.js → [root-of-the-server]__80964fad._.js} +2 -2
  315. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__bab85495._.js → [root-of-the-server]__862cf77d._.js} +2 -2
  316. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__a280fa63._.js → [root-of-the-server]__8b5b9860._.js} +2 -2
  317. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__3170b7bf._.js → [root-of-the-server]__8d475640._.js} +2 -2
  318. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__958dded3._.js +49 -0
  319. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__ab655b9f._.js → [root-of-the-server]__96c424d5._.js} +2 -2
  320. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__5c55f67a._.js → [root-of-the-server]__976ebe46._.js} +2 -2
  321. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__179cb224._.js → [root-of-the-server]__a1cab8fe._.js} +2 -2
  322. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__20a2cb22._.js → [root-of-the-server]__a31dd756._.js} +9 -9
  323. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__a3955224._.js → [root-of-the-server]__ad53dc3f._.js} +17 -17
  324. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__ac6326b6._.js → [root-of-the-server]__b8eeb177._.js} +2 -2
  325. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__fcfa3690._.js → [root-of-the-server]__c10e827d._.js} +2 -2
  326. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__e58e9f91._.js → [root-of-the-server]__c11e0040._.js} +2 -2
  327. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c40b6f69._.js +49 -0
  328. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c7d3c7ab._.js +52 -0
  329. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__cdc52544._.js +49 -0
  330. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__8cbd8c56._.js → [root-of-the-server]__d1c698b6._.js} +12 -12
  331. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__d9ea98bd._.js +52 -0
  332. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__ef27f8cd._.js → [root-of-the-server]__df886e3c._.js} +2 -2
  333. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__ca4987eb._.js → [root-of-the-server]__e0b6f424._.js} +2 -2
  334. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__c8890cd6._.js → [root-of-the-server]__f43ecbc2._.js} +13 -13
  335. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__f51c7b72._.js +5 -0
  336. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__f662fd1e._.js +20 -0
  337. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__538b0bdd._.js → [root-of-the-server]__f961230c._.js} +2 -2
  338. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__b627cb83._.js → [root-of-the-server]__feec5b54._.js} +2 -2
  339. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__d16caed5._.js → [root-of-the-server]__ff6ce4b1._.js} +2 -2
  340. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ff9ce15e._.js +5 -0
  341. package/cloud-runtime/standalone/.next/server/chunks/_26ffc857._.js +121 -0
  342. package/cloud-runtime/standalone/.next/server/chunks/_4d07f8db._.js +1 -1
  343. package/cloud-runtime/standalone/.next/server/chunks/_66d0cf73._.js +6 -0
  344. package/cloud-runtime/standalone/.next/server/chunks/_9b10087f._.js +3 -2
  345. package/cloud-runtime/standalone/.next/server/chunks/_a13c0bef._.js +121 -0
  346. package/cloud-runtime/standalone/.next/server/chunks/{lib_98ae187c._.js → lib_2cd3429c._.js} +2 -2
  347. package/cloud-runtime/standalone/.next/server/chunks/lib_a2a83df5._.js +55 -0
  348. package/cloud-runtime/standalone/.next/server/chunks/lib_a658c9ef._.js +34 -0
  349. package/cloud-runtime/standalone/.next/server/chunks/lib_ba38ea08._.js +55 -0
  350. package/cloud-runtime/standalone/.next/server/chunks/lib_orchestrator_chat-processor_ts_4c335719._.js +27 -29
  351. package/cloud-runtime/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_371d0bff.js +6 -102
  352. package/cloud-runtime/standalone/.next/server/chunks/src_graph_schedule-runner_ts_43a13c69._.js +13 -0
  353. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__0b2a2b86._.js +3 -0
  354. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__32546242._.js +3 -0
  355. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__5ff9ead4._.js +3 -0
  356. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__f2c3b7ab._.js +1 -1
  357. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__f59f0dc7._.js +3 -0
  358. package/cloud-runtime/standalone/.next/server/chunks/ssr/{[root-of-the-server]__d96bb3b5._.js → [root-of-the-server]__fbe1ab4a._.js} +2 -2
  359. package/cloud-runtime/standalone/.next/server/chunks/ssr/_1e9b9b1e._.js +3 -0
  360. package/cloud-runtime/standalone/.next/server/chunks/ssr/_24fe6213._.js +3 -0
  361. package/cloud-runtime/standalone/.next/server/chunks/ssr/_36a0c486._.js +3 -0
  362. package/cloud-runtime/standalone/.next/server/chunks/ssr/_3b21d3b2._.js +95 -0
  363. package/cloud-runtime/standalone/.next/server/chunks/ssr/_3eeac8f9._.js +3 -0
  364. package/cloud-runtime/standalone/.next/server/chunks/ssr/_48db42b7._.js +3 -0
  365. package/cloud-runtime/standalone/.next/server/chunks/ssr/_59f30a73._.js +3 -0
  366. package/cloud-runtime/standalone/.next/server/chunks/ssr/_7d3b0032._.js +3 -0
  367. package/cloud-runtime/standalone/.next/server/chunks/ssr/_916950b3._.js +3 -0
  368. package/cloud-runtime/standalone/.next/server/chunks/ssr/_b598ae8a._.js +3 -0
  369. package/cloud-runtime/standalone/.next/server/chunks/ssr/_cc8c8302._.js +3 -0
  370. package/cloud-runtime/standalone/.next/server/chunks/ssr/_d972a4e1._.js +3 -0
  371. package/cloud-runtime/standalone/.next/server/chunks/ssr/_dd7bb6fb._.js +3 -0
  372. package/cloud-runtime/standalone/.next/server/chunks/ssr/_dd9880fb._.js +3 -0
  373. package/cloud-runtime/standalone/.next/server/chunks/ssr/_f02d786a._.js +3 -0
  374. package/cloud-runtime/standalone/.next/server/chunks/ssr/_fd8cafe9._.js +3 -0
  375. package/cloud-runtime/standalone/.next/server/chunks/ssr/app_projects_[slug]_linear_page_tsx_971a6ba7._.js +15 -12
  376. package/cloud-runtime/standalone/.next/server/chunks/ssr/components_chat-ui_bfeda794._.js +1 -1
  377. package/cloud-runtime/standalone/.next/server/chunks/ssr/components_thread_WorkspaceSidebar_tsx_e660301b._.js +1 -1
  378. package/cloud-runtime/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_54bf563f._.js +3 -0
  379. package/cloud-runtime/standalone/.next/server/middleware-manifest.json +5 -5
  380. package/cloud-runtime/standalone/.next/server/pages/404.html +2 -2
  381. package/cloud-runtime/standalone/.next/server/pages/500.html +2 -2
  382. package/cloud-runtime/standalone/.next/server/server-reference-manifest.js +1 -1
  383. package/cloud-runtime/standalone/.next/server/server-reference-manifest.json +1 -1
  384. package/cloud-runtime/standalone/.next/static/chunks/04c135686161dbb1.js +40 -0
  385. package/cloud-runtime/standalone/.next/static/chunks/0d63db0c39c0a3b2.js +1 -0
  386. package/cloud-runtime/standalone/.next/static/chunks/136ed07d84b14632.js +1 -0
  387. package/cloud-runtime/standalone/.next/static/chunks/18866ed04ed3a063.css +1 -0
  388. package/cloud-runtime/standalone/.next/static/chunks/{ccaf68956da192f8.js → 1bb38e61d891453c.js} +1 -1
  389. package/cloud-runtime/standalone/.next/static/chunks/2c7c8259c2b56bf5.js +1 -0
  390. package/cloud-runtime/standalone/.next/static/chunks/2da1f13d50dc4e54.js +1 -0
  391. package/cloud-runtime/standalone/.next/static/chunks/5545da2ad239c0b6.js +3 -0
  392. package/cloud-runtime/standalone/.next/static/chunks/{41c518743656a291.js → 5f33b52d582b0bb4.js} +1 -1
  393. package/cloud-runtime/standalone/.next/static/chunks/{97c11137cd6fc860.js → 64c2961edd3a3b13.js} +1 -1
  394. package/cloud-runtime/standalone/.next/static/chunks/{db131a0b6350e416.js → 692ce04abdbb3970.js} +1 -1
  395. package/cloud-runtime/standalone/.next/static/chunks/83be8569d298c6b0.js +1 -0
  396. package/cloud-runtime/standalone/.next/static/chunks/87b3afe828c8cc52.js +1 -0
  397. package/cloud-runtime/standalone/.next/static/chunks/{4343e7fe5bf5f34a.js → 9328740727c6456d.js} +1 -1
  398. package/cloud-runtime/standalone/.next/static/chunks/95d47e285ae9c031.js +1 -0
  399. package/cloud-runtime/standalone/.next/static/chunks/b9bf5d3ee92a1313.js +1 -0
  400. package/cloud-runtime/standalone/.next/static/chunks/ea35fb870141bcff.js +1 -0
  401. package/cloud-runtime/standalone/.next/static/chunks/f59722264449b61c.js +1 -0
  402. package/cloud-runtime/standalone/.next/static/chunks/f727d2c8f039511d.js +1 -0
  403. package/cloud-runtime/standalone/.next/static/chunks/{31fe4e36a00fd7b5.js → f8706212baa8ec67.js} +1 -1
  404. package/cloud-runtime/standalone/.next/static/chunks/fd823c9d1381335d.js +1 -0
  405. package/cloud-runtime/standalone/app/api/chat/route.ts +5 -163
  406. package/cloud-runtime/standalone/app/api/schedules/route.ts +11 -2
  407. package/cloud-runtime/standalone/app/automations/page.tsx +11 -1
  408. package/cloud-runtime/standalone/app/projects/[slug]/layout.tsx +11 -1
  409. package/cloud-runtime/standalone/components/LinearBoard.tsx +118 -21
  410. package/cloud-runtime/standalone/components/chat-ui/ChatContainer.tsx +10 -13
  411. package/cloud-runtime/standalone/components/linear/RunScriptManager.tsx +356 -0
  412. package/cloud-runtime/standalone/components/thread/WorkspaceSidebar.tsx +35 -0
  413. package/cloud-runtime/standalone/hooks/useLinearRunScripts.ts +115 -0
  414. package/cloud-runtime/standalone/lib/chat/project-context.ts +169 -0
  415. package/cloud-runtime/standalone/lib/linear-client.ts +33 -3
  416. package/cloud-runtime/standalone/lib/linear-execution-prompt.ts +92 -15
  417. package/cloud-runtime/standalone/lib/orchestrator/runtime.ts +2 -0
  418. package/cloud-runtime/standalone/lib/orchestrator/schedule-runtime.ts +76 -0
  419. package/cloud-runtime/standalone/src/graph/internal-function-dispatcher.ts +201 -16
  420. package/cloud-runtime/standalone/src/graph/work-dispatcher.ts +128 -35
  421. package/cloud-runtime/standalone/state/automations/.state/c4300b01-1203-40fe-b3a9-b9fb9ec0c5cc.json +8 -0
  422. package/cloud-runtime/standalone/state/automations/active/c4300b01-1203-40fe-b3a9-b9fb9ec0c5cc.md +15 -0
  423. package/cloud-runtime/standalone/state/linearRunScripts.test.ts +99 -0
  424. package/cloud-runtime/standalone/state/linearRunScripts.ts +132 -0
  425. package/cloud-runtime/standalone/state/windowState.ts +21 -0
  426. package/cloud-runtime/standalone/tsconfig.tsbuildinfo +1 -1
  427. package/cloud-runtime/standalone/vault/agx/issues/ESO-327/design-doc.md +202 -0
  428. package/cloud-runtime/standalone/worker/index.js +34516 -1717
  429. package/cloud-runtime/standalone/worker/index.ts +3 -0
  430. package/package.json +1 -1
  431. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__1154e5b3._.js +0 -67
  432. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__152b2000._.js +0 -61
  433. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__33865410._.js +0 -3
  434. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__6c53437e._.js +0 -110
  435. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__6dbe939c._.js +0 -49
  436. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__7012e83d._.js +0 -66
  437. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__76290829._.js +0 -67
  438. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ad6d6402._.js +0 -67
  439. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__da645a5e._.js +0 -15
  440. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__f4b3df16._.js +0 -3
  441. package/cloud-runtime/standalone/.next/server/chunks/_2a5aeb76._.js +0 -3
  442. package/cloud-runtime/standalone/.next/server/chunks/_4689976f._.js +0 -6
  443. package/cloud-runtime/standalone/.next/server/chunks/_682c9d81._.js +0 -6
  444. package/cloud-runtime/standalone/.next/server/chunks/_6e7f0ae4._.js +0 -6
  445. package/cloud-runtime/standalone/.next/server/chunks/_a32a5cdd._.js +0 -6
  446. package/cloud-runtime/standalone/.next/server/chunks/_af7bd752._.js +0 -3
  447. package/cloud-runtime/standalone/.next/server/chunks/_fe32a267._.js +0 -3
  448. package/cloud-runtime/standalone/.next/server/chunks/lib_2492d514._.js +0 -55
  449. package/cloud-runtime/standalone/.next/server/chunks/lib_3c080873._.js +0 -34
  450. package/cloud-runtime/standalone/.next/server/chunks/lib_9f439b27._.js +0 -70
  451. package/cloud-runtime/standalone/.next/server/chunks/src_graph_12d46a92._.js +0 -3
  452. package/cloud-runtime/standalone/.next/server/chunks/src_graph_executor_ts_55c06268._.js +0 -8
  453. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__21a9eaef._.js +0 -3
  454. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__69887882._.js +0 -3
  455. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__9ad05ace._.js +0 -3
  456. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__bb149a22._.js +0 -3
  457. package/cloud-runtime/standalone/.next/server/chunks/ssr/_11ce4c04._.js +0 -95
  458. package/cloud-runtime/standalone/.next/server/chunks/ssr/_1d949e96._.js +0 -3
  459. package/cloud-runtime/standalone/.next/server/chunks/ssr/_32a156b6._.js +0 -3
  460. package/cloud-runtime/standalone/.next/server/chunks/ssr/_43c091dc._.js +0 -3
  461. package/cloud-runtime/standalone/.next/server/chunks/ssr/_45175f47._.js +0 -3
  462. package/cloud-runtime/standalone/.next/server/chunks/ssr/_4f0c544d._.js +0 -3
  463. package/cloud-runtime/standalone/.next/server/chunks/ssr/_69164b06._.js +0 -95
  464. package/cloud-runtime/standalone/.next/server/chunks/ssr/_7f7a828a._.js +0 -3
  465. package/cloud-runtime/standalone/.next/server/chunks/ssr/_97f6a18e._.js +0 -3
  466. package/cloud-runtime/standalone/.next/server/chunks/ssr/_a511a014._.js +0 -3
  467. package/cloud-runtime/standalone/.next/server/chunks/ssr/_c3a3a829._.js +0 -3
  468. package/cloud-runtime/standalone/.next/server/chunks/ssr/_cee3cf86._.js +0 -95
  469. package/cloud-runtime/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_e8bdedc5._.js +0 -3
  470. package/cloud-runtime/standalone/.next/static/chunks/14fff3c493ea9c54.js +0 -1
  471. package/cloud-runtime/standalone/.next/static/chunks/2a9c83f8211196e0.js +0 -1
  472. package/cloud-runtime/standalone/.next/static/chunks/5405540470146645.js +0 -1
  473. package/cloud-runtime/standalone/.next/static/chunks/69f2db4b9996b9c1.js +0 -37
  474. package/cloud-runtime/standalone/.next/static/chunks/8aeb69ceb497ad85.css +0 -1
  475. package/cloud-runtime/standalone/.next/static/chunks/a9da98f883ac833b.js +0 -1
  476. package/cloud-runtime/standalone/.next/static/chunks/b2127dc67c5ade9f.js +0 -1
  477. package/cloud-runtime/standalone/.next/static/chunks/baf5d39d089efb87.js +0 -1
  478. package/cloud-runtime/standalone/.next/static/chunks/bf2a2fafb710e63c.js +0 -1
  479. package/cloud-runtime/standalone/.next/static/chunks/c78969fde5798275.js +0 -1
  480. package/cloud-runtime/standalone/.next/static/chunks/d3dc6fadb96ab3a2.js +0 -1
  481. package/cloud-runtime/standalone/.next/static/chunks/fdadad2379039dce.js +0 -3
  482. package/cloud-runtime/standalone/state/automations/.state/24a6a5db-3b14-49c4-841f-29f10f015fbb.json +0 -8
  483. package/cloud-runtime/standalone/state/automations/active/24a6a5db-3b14-49c4-841f-29f10f015fbb.md +0 -17
  484. /package/cloud-runtime/standalone/.next/static/{lOB5InbmVcurTLQo9J3KK → ZkFZnP5h74O7GgdHudXgH}/_buildManifest.js +0 -0
  485. /package/cloud-runtime/standalone/.next/static/{lOB5InbmVcurTLQo9J3KK → ZkFZnP5h74O7GgdHudXgH}/_clientMiddlewareManifest.json +0 -0
  486. /package/cloud-runtime/standalone/.next/static/{lOB5InbmVcurTLQo9J3KK → ZkFZnP5h74O7GgdHudXgH}/_ssgManifest.js +0 -0
@@ -0,0 +1,169 @@
1
+ import { type StreamProjectContext, type StreamProjectDetail } from "@/lib/stream-multiplexer";
2
+ import { getSQLiteDb } from "@/lib/sqlite-query-adapter";
3
+ import { db } from "@/lib/db-instance";
4
+ import { buildExecutionProvenance, getProjectSkills, getProjectVariables, getProjectMemory } from "@/lib/db";
5
+ import { listResolvedRepoKnowledge } from "@/lib/repo-knowledge";
6
+ import { getKnowledgeNote } from "@/lib/knowledge-notes";
7
+ import { LOCAL_USER } from "@/lib/auth-mode";
8
+ import type { Participant } from "@/lib/types";
9
+
10
+ const PROJECT_MENTION_PATTERN = /@~project:([a-z0-9][a-z0-9-]*)/gi;
11
+
12
+ export function normalizeProjectSlug(input: unknown): string {
13
+ if (typeof input !== "string") return "";
14
+ return input.trim().toLowerCase();
15
+ }
16
+
17
+ export function findProjectMentionSlugs(prompt: string): string[] {
18
+ const slugs = new Set<string>();
19
+ for (const match of prompt.matchAll(PROJECT_MENTION_PATTERN)) {
20
+ const slug = normalizeProjectSlug(match[1]);
21
+ if (slug) slugs.add(slug);
22
+ }
23
+ return Array.from(slugs);
24
+ }
25
+
26
+ function toStreamProjectDetail(project: {
27
+ id: string;
28
+ slug: string;
29
+ name: string;
30
+ description?: string | null;
31
+ ci_cd_info?: string | null;
32
+ workflow_id?: string | null;
33
+ repos?: Array<{ name: string; path?: string | null; notes?: string | null }>;
34
+ }): StreamProjectDetail {
35
+ return {
36
+ id: project.id,
37
+ slug: project.slug,
38
+ name: project.name,
39
+ description: project.description ?? null,
40
+ ciCdInfo: project.ci_cd_info ?? null,
41
+ workflowId: project.workflow_id ?? null,
42
+ repos: (project.repos ?? []).map((repo) => ({
43
+ name: repo.name,
44
+ path: repo.path ?? null,
45
+ notes: repo.notes ?? null,
46
+ })),
47
+ };
48
+ }
49
+
50
+ export async function resolveProjectContext(
51
+ scopedProjectSlug: string,
52
+ mentionedProjectSlugs: string[],
53
+ participants: Participant[] = []
54
+ ): Promise<StreamProjectContext | undefined> {
55
+ const slugsToFetch = new Set<string>();
56
+ if (scopedProjectSlug) slugsToFetch.add(scopedProjectSlug);
57
+ for (const slug of mentionedProjectSlugs) {
58
+ if (slug) slugsToFetch.add(slug);
59
+ }
60
+ if (slugsToFetch.size === 0) return undefined;
61
+
62
+ const rows = await Promise.all(
63
+ Array.from(slugsToFetch).map(async (slug) => {
64
+ try {
65
+ const project = await db.getProjectWithRepos(slug, LOCAL_USER.id);
66
+ return [slug, project] as const;
67
+ } catch (error) {
68
+ console.warn("Failed to load project context", { slug, error });
69
+ return [slug, null] as const;
70
+ }
71
+ })
72
+ );
73
+
74
+ const bySlug = new Map<string, NonNullable<(typeof rows)[number][1]>>();
75
+ for (const [slug, row] of rows) {
76
+ if (row) bySlug.set(slug, row);
77
+ }
78
+
79
+ const activeProject = scopedProjectSlug ? bySlug.get(scopedProjectSlug) : undefined;
80
+ const mentionedProjects = mentionedProjectSlugs
81
+ .map((slug) => bySlug.get(slug))
82
+ .filter((project): project is NonNullable<typeof project> => Boolean(project))
83
+ .map((project) => toStreamProjectDetail(project));
84
+
85
+ if (!activeProject && mentionedProjects.length === 0) {
86
+ return undefined;
87
+ }
88
+
89
+ let skills: Array<{ file: string; condition?: string }> | undefined;
90
+ let variables: Array<{ key: string; value: string }> | undefined;
91
+ let memory: Array<{ content: string; source?: string }> | undefined;
92
+ let repoKnowledge: StreamProjectContext["repoKnowledge"];
93
+ let provenanceByAgentId: StreamProjectContext["provenanceByAgentId"];
94
+
95
+ if (activeProject) {
96
+ try {
97
+ const [projectSkills, projectVars, projectMem] = await Promise.all([
98
+ getProjectSkills(activeProject.id),
99
+ getProjectVariables(activeProject.id),
100
+ getProjectMemory(activeProject.id, "human"),
101
+ ]);
102
+ const projectSystemNote = getKnowledgeNote("project", activeProject.id);
103
+ if (projectSkills.length > 0) {
104
+ skills = projectSkills.map((skill) => ({
105
+ file: skill.file,
106
+ ...(skill.condition ? { condition: skill.condition } : {}),
107
+ }));
108
+ }
109
+ if (projectVars.length > 0) {
110
+ variables = projectVars.map((variable) => ({ key: variable.key, value: variable.value }));
111
+ }
112
+ if (projectMem.length > 0) {
113
+ memory = projectMem.map((entry) => ({
114
+ content: entry.content,
115
+ ...(entry.source ? { source: entry.source } : {}),
116
+ }));
117
+ }
118
+ if (projectSystemNote?.content) {
119
+ memory = [
120
+ ...(memory ?? []),
121
+ { content: projectSystemNote.content, source: "system-note" },
122
+ ];
123
+ }
124
+ const resolvedRepoKnowledge = listResolvedRepoKnowledge(activeProject.repos ?? []).map((entry) => ({
125
+ repoName: entry.repoName,
126
+ path: entry.path ?? null,
127
+ content: entry.producer === "system" ? `[System-generated] ${entry.content}` : entry.content,
128
+ }));
129
+ if (resolvedRepoKnowledge.length > 0) {
130
+ repoKnowledge = resolvedRepoKnowledge;
131
+ }
132
+ if (participants.length > 0) {
133
+ const sqlite = getSQLiteDb();
134
+ provenanceByAgentId = {};
135
+ for (const participant of participants) {
136
+ const agentMemoryEntries = sqlite
137
+ .prepare(
138
+ "SELECT id, content FROM agent_memory WHERE agent_id = ? ORDER BY created_at DESC LIMIT 20"
139
+ )
140
+ .all(participant.id) as Array<{ id: string; content: string }>;
141
+ provenanceByAgentId[participant.id] = await buildExecutionProvenance(
142
+ participant.id,
143
+ activeProject.id,
144
+ participant.skills ?? [],
145
+ agentMemoryEntries
146
+ );
147
+ }
148
+ }
149
+ } catch (error) {
150
+ console.warn("Failed to load project resources", { projectId: activeProject.id, error });
151
+ }
152
+ }
153
+
154
+ return {
155
+ activeProject: activeProject
156
+ ? {
157
+ id: activeProject.id,
158
+ slug: activeProject.slug,
159
+ name: activeProject.name,
160
+ }
161
+ : undefined,
162
+ mentionedProjects: mentionedProjects.length > 0 ? mentionedProjects : undefined,
163
+ skills,
164
+ variables,
165
+ memory,
166
+ repoKnowledge,
167
+ provenanceByAgentId,
168
+ };
169
+ }
@@ -1,9 +1,12 @@
1
1
  import "server-only";
2
2
 
3
- import { readFileSync, unlinkSync, writeFileSync } from "node:fs";
3
+ import { existsSync, mkdirSync, readFileSync, unlinkSync, writeFileSync } from "node:fs";
4
+ import { homedir } from "node:os";
4
5
  import path from "node:path";
5
6
 
6
- const TOKEN_PATH = ".linear-token.json";
7
+ const AGX_DIR = path.join(homedir(), ".agx");
8
+ const TOKEN_FILENAME = "linear-token.json";
9
+ const LEGACY_TOKEN_PATH = ".linear-token.json";
7
10
  const LINEAR_GRAPHQL_URL = "https://api.linear.app/graphql";
8
11
 
9
12
  interface LinearToken {
@@ -127,19 +130,40 @@ interface LinearIssueConnection {
127
130
  }
128
131
 
129
132
  function getTokenPath(): string {
130
- return path.join(process.cwd(), TOKEN_PATH);
133
+ return path.join(AGX_DIR, TOKEN_FILENAME);
134
+ }
135
+
136
+ function getLegacyTokenPath(): string {
137
+ return path.join(process.cwd(), LEGACY_TOKEN_PATH);
131
138
  }
132
139
 
133
140
  export function getLinearToken(): LinearToken | null {
141
+ // Try the canonical path first
134
142
  try {
135
143
  const raw = readFileSync(getTokenPath(), "utf8");
136
144
  return JSON.parse(raw) as LinearToken;
145
+ } catch {
146
+ // fall through
147
+ }
148
+
149
+ // Migrate from legacy cwd-relative path
150
+ try {
151
+ const legacyPath = getLegacyTokenPath();
152
+ const raw = readFileSync(legacyPath, "utf8");
153
+ const token = JSON.parse(raw) as LinearToken;
154
+ // Save to new location and clean up old file
155
+ saveLinearToken(token);
156
+ try { unlinkSync(legacyPath); } catch { /* ignore */ }
157
+ return token;
137
158
  } catch {
138
159
  return null;
139
160
  }
140
161
  }
141
162
 
142
163
  export function saveLinearToken(token: LinearToken): void {
164
+ if (!existsSync(AGX_DIR)) {
165
+ mkdirSync(AGX_DIR, { recursive: true });
166
+ }
143
167
  writeFileSync(getTokenPath(), JSON.stringify(token, null, 2));
144
168
  }
145
169
 
@@ -149,6 +173,12 @@ export function deleteLinearToken(): void {
149
173
  } catch {
150
174
  // already gone
151
175
  }
176
+ // Also clean up legacy location
177
+ try {
178
+ unlinkSync(getLegacyTokenPath());
179
+ } catch {
180
+ // already gone
181
+ }
152
182
  }
153
183
 
154
184
  function serializeGraphQLValue(value: unknown): string {
@@ -29,6 +29,26 @@ export interface LinearExecutionPromptInput {
29
29
  runtime?: LinearExecutionRuntimeContext | null;
30
30
  }
31
31
 
32
+ export interface ResolvedLinearExecutionContext {
33
+ issue: {
34
+ identifier: string;
35
+ title: string;
36
+ status: string;
37
+ assignee: string;
38
+ };
39
+ project: {
40
+ name: string;
41
+ slug: string;
42
+ label: string;
43
+ repos: LinearExecutionProjectRepoContext[];
44
+ };
45
+ runtime: {
46
+ knowledgeBaseRoot: string;
47
+ issueKnowledgePath: string;
48
+ isolatedWorktreePath: string;
49
+ };
50
+ }
51
+
32
52
  function slugifySegment(value: string, fallback: string): string {
33
53
  const slug = value
34
54
  .trim()
@@ -95,19 +115,14 @@ export function buildLinearExecutionPrompt(input: LinearExecutionPromptInput): {
95
115
  prompt: string;
96
116
  promptPrefix: string;
97
117
  } {
98
- const issueIdentifier = input.issue.identifier.trim() || "TICKET-ID";
99
- const issueTitle = input.issue.title.trim() || "Untitled ticket";
100
- const issueStatus = String(input.issue.status ?? "").trim() || "Unknown";
101
- const issueAssignee = String(input.issue.assignee ?? "").trim() || "Unassigned";
102
- const projectSlug = toProjectSlug(input.project);
103
- const knowledgeBaseRoot =
104
- String(input.runtime?.knowledgeBaseRoot ?? "").trim() || `~/.agx/vault/${projectSlug}`;
105
- const issueKnowledgePath =
106
- String(input.runtime?.issueKnowledgePath ?? "").trim() ||
107
- `${knowledgeBaseRoot}/issues/${issueIdentifier}/`;
108
- const isolatedWorktreePath =
109
- String(input.runtime?.isolatedWorktreePath ?? "").trim() ||
110
- `/tmp/agx-${slugifySegment(issueIdentifier, "ticket")}`;
118
+ const context = resolveLinearExecutionContext(input);
119
+ const issueIdentifier = context.issue.identifier;
120
+ const issueTitle = context.issue.title;
121
+ const issueStatus = context.issue.status;
122
+ const issueAssignee = context.issue.assignee;
123
+ const knowledgeBaseRoot = context.runtime.knowledgeBaseRoot;
124
+ const issueKnowledgePath = context.runtime.issueKnowledgePath;
125
+ const isolatedWorktreePath = context.runtime.isolatedWorktreePath;
111
126
 
112
127
  const promptPrefix = [
113
128
  "LINEAR TASK EXECUTION",
@@ -118,13 +133,13 @@ export function buildLinearExecutionPrompt(input: LinearExecutionPromptInput): {
118
133
  `- Title: ${issueTitle}`,
119
134
  `- Current status: ${issueStatus}`,
120
135
  `- Current assignee: ${issueAssignee}`,
121
- `- Project: ${toProjectLabel(input.project)}`,
136
+ `- Project: ${context.project.label}`,
122
137
  `- Knowledge base root: ${knowledgeBaseRoot}`,
123
138
  `- Issue knowledge path: ${issueKnowledgePath}`,
124
139
  `- Suggested isolated worktree: ${isolatedWorktreePath}`,
125
140
  "- Additional project resources such as repo knowledge, project memory, and project variables are injected separately by the active project context.",
126
141
  ].join("\n"),
127
- `SOURCE REPOSITORIES\n${formatRepositories(input.project?.repos)}`,
142
+ `SOURCE REPOSITORIES\n${formatRepositories(context.project.repos)}`,
128
143
  [
129
144
  "WORKFLOW",
130
145
  "1. Read the full Linear issue and comment thread before acting. Use Linear MCP for issue details, comments, state changes, and follow-up.",
@@ -151,3 +166,65 @@ export function buildLinearExecutionPrompt(input: LinearExecutionPromptInput): {
151
166
  promptPrefix,
152
167
  };
153
168
  }
169
+
170
+ export function resolveLinearExecutionContext(
171
+ input: LinearExecutionPromptInput
172
+ ): ResolvedLinearExecutionContext {
173
+ const issueIdentifier = input.issue.identifier.trim() || "TICKET-ID";
174
+ const issueTitle = input.issue.title.trim() || "Untitled ticket";
175
+ const issueStatus = String(input.issue.status ?? "").trim() || "Unknown";
176
+ const issueAssignee = String(input.issue.assignee ?? "").trim() || "Unassigned";
177
+ const projectSlug = toProjectSlug(input.project);
178
+ const projectName = String(input.project?.name ?? "").trim() || projectSlug;
179
+ const knowledgeBaseRoot =
180
+ String(input.runtime?.knowledgeBaseRoot ?? "").trim() || `~/.agx/vault/${projectSlug}`;
181
+ const issueKnowledgePath =
182
+ String(input.runtime?.issueKnowledgePath ?? "").trim() ||
183
+ `${knowledgeBaseRoot}/issues/${issueIdentifier}/`;
184
+ const isolatedWorktreePath =
185
+ String(input.runtime?.isolatedWorktreePath ?? "").trim() ||
186
+ `/tmp/agx-${slugifySegment(issueIdentifier, "ticket")}`;
187
+
188
+ return {
189
+ issue: {
190
+ identifier: issueIdentifier,
191
+ title: issueTitle,
192
+ status: issueStatus,
193
+ assignee: issueAssignee,
194
+ },
195
+ project: {
196
+ name: projectName,
197
+ slug: projectSlug,
198
+ label: toProjectLabel(input.project),
199
+ repos: input.project?.repos ? [...input.project.repos] : [],
200
+ },
201
+ runtime: {
202
+ knowledgeBaseRoot,
203
+ issueKnowledgePath,
204
+ isolatedWorktreePath,
205
+ },
206
+ };
207
+ }
208
+
209
+ export function renderLinearExecutionPromptTemplate(
210
+ template: string,
211
+ input: LinearExecutionPromptInput
212
+ ): string {
213
+ const context = resolveLinearExecutionContext(input);
214
+ const values: Record<string, string> = {
215
+ "ticket.identifier": context.issue.identifier,
216
+ "ticket.title": context.issue.title,
217
+ "ticket.status": context.issue.status,
218
+ "ticket.assignee": context.issue.assignee,
219
+ "project.name": context.project.name,
220
+ "project.slug": context.project.slug,
221
+ "project.label": context.project.label,
222
+ "knowledge_base.root": context.runtime.knowledgeBaseRoot,
223
+ "knowledge_base.issue_path": context.runtime.issueKnowledgePath,
224
+ "worktree.path": context.runtime.isolatedWorktreePath,
225
+ };
226
+
227
+ return template.replace(/\{\{\s*([a-zA-Z0-9._-]+)\s*\}\}/g, (_match, key: string) => {
228
+ return values[key] ?? "";
229
+ });
230
+ }
@@ -1,6 +1,7 @@
1
1
  import { getQueue, QUEUE_NAMES } from "@/lib/queue/boss";
2
2
  import { taskProcessor } from "@/lib/orchestrator/processor";
3
3
  import { chatProcessor } from "@/lib/orchestrator/chat-processor";
4
+ import { ensureScheduleRuntime } from "@/lib/orchestrator/schedule-runtime";
4
5
  import { writeDebugLog } from "@/lib/debug-log";
5
6
 
6
7
  let bootstrapPromise: Promise<void> | null = null;
@@ -13,6 +14,7 @@ export async function ensureOrchestratorRuntime(): Promise<void> {
13
14
  const queue = await getQueue();
14
15
  await queue.work(QUEUE_NAMES.TASK_PROCESS, taskProcessor, { batchSize: 5 });
15
16
  await queue.work(QUEUE_NAMES.CHAT_RUN_PROCESS, chatProcessor, { batchSize: 2 });
17
+ await ensureScheduleRuntime();
16
18
  writeDebugLog("orchestrator.bootstrap.ready", {
17
19
  queues: [QUEUE_NAMES.TASK_PROCESS, QUEUE_NAMES.CHAT_RUN_PROCESS],
18
20
  });
@@ -0,0 +1,76 @@
1
+ import { writeDebugLog } from "@/lib/debug-log";
2
+ import { createDispatchFunction } from "@/src/graph/function-executor";
3
+ import { pollSchedules } from "@/src/graph/schedule-runner";
4
+ import { createDispatchWork } from "@/src/graph/work-dispatcher";
5
+
6
+ const DEFAULT_SCHEDULE_POLL_INTERVAL_MS = 5_000;
7
+
8
+ let pollIntervalHandle: NodeJS.Timeout | null = null;
9
+ let pollInFlight: Promise<void> | null = null;
10
+
11
+ function isSchedulePollingEnabled(): boolean {
12
+ return process.env.AGX_DISABLE_SCHEDULE_POLLING !== "1";
13
+ }
14
+
15
+ function getSchedulePollIntervalMs(): number {
16
+ const raw = Number(process.env.AGX_SCHEDULE_POLL_INTERVAL_MS);
17
+ if (!Number.isFinite(raw)) return DEFAULT_SCHEDULE_POLL_INTERVAL_MS;
18
+ return Math.max(1_000, raw);
19
+ }
20
+
21
+ async function pollSchedulesOnce(): Promise<void> {
22
+ if (pollInFlight) {
23
+ return pollInFlight;
24
+ }
25
+
26
+ pollInFlight = (async () => {
27
+ const result = await pollSchedules({
28
+ dispatchFunction: createDispatchFunction(),
29
+ dispatchWork: createDispatchWork(),
30
+ });
31
+
32
+ if (result.errors.length > 0) {
33
+ writeDebugLog("schedule_runtime.poll.error", {
34
+ errorCount: result.errors.length,
35
+ graphIds: result.errors.map((entry) => entry.graphId),
36
+ });
37
+ }
38
+ })()
39
+ .catch((error) => {
40
+ writeDebugLog("schedule_runtime.poll.exception", { error });
41
+ console.error("[schedule-runtime] Poll failed:", error);
42
+ })
43
+ .finally(() => {
44
+ pollInFlight = null;
45
+ });
46
+
47
+ return pollInFlight;
48
+ }
49
+
50
+ export async function ensureScheduleRuntime(): Promise<void> {
51
+ if (!isSchedulePollingEnabled() || pollIntervalHandle) {
52
+ return;
53
+ }
54
+
55
+ const intervalMs = getSchedulePollIntervalMs();
56
+ writeDebugLog("schedule_runtime.start", { intervalMs });
57
+
58
+ pollIntervalHandle = setInterval(() => {
59
+ void pollSchedulesOnce();
60
+ }, intervalMs);
61
+ if (typeof pollIntervalHandle.unref === "function") {
62
+ pollIntervalHandle.unref();
63
+ }
64
+
65
+ await pollSchedulesOnce();
66
+ }
67
+
68
+ export async function stopScheduleRuntime(): Promise<void> {
69
+ if (pollIntervalHandle) {
70
+ clearInterval(pollIntervalHandle);
71
+ pollIntervalHandle = null;
72
+ }
73
+ if (pollInFlight) {
74
+ await pollInFlight;
75
+ }
76
+ }