@mndrk/agx 2.0.46 → 2.0.48

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 (504) hide show
  1. package/cloud-runtime/standalone/.next/BUILD_ID +1 -1
  2. package/cloud-runtime/standalone/.next/app-path-routes-manifest.json +1 -0
  3. package/cloud-runtime/standalone/.next/build-manifest.json +2 -2
  4. package/cloud-runtime/standalone/.next/prerender-manifest.json +27 -3
  5. package/cloud-runtime/standalone/.next/routes-manifest.json +6 -0
  6. package/cloud-runtime/standalone/.next/server/app/_global-error.html +2 -2
  7. package/cloud-runtime/standalone/.next/server/app/_global-error.rsc +1 -1
  8. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  9. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  10. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  11. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  12. package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  13. package/cloud-runtime/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  14. package/cloud-runtime/standalone/.next/server/app/_not-found.html +2 -2
  15. package/cloud-runtime/standalone/.next/server/app/_not-found.rsc +2 -2
  16. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  17. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  18. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  19. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  20. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  21. package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  22. package/cloud-runtime/standalone/.next/server/app/agents/[id]/page.js.nft.json +1 -1
  23. package/cloud-runtime/standalone/.next/server/app/agents/[id]/page_client-reference-manifest.js +1 -1
  24. package/cloud-runtime/standalone/.next/server/app/agents/page.js.nft.json +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 +3 -3
  28. package/cloud-runtime/standalone/.next/server/app/agents.segments/_full.segment.rsc +3 -3
  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 +2 -2
  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.nft.json +1 -1
  41. package/cloud-runtime/standalone/.next/server/app/api/automations/route.js.nft.json +1 -1
  42. package/cloud-runtime/standalone/.next/server/app/api/chat/route.js +2 -2
  43. package/cloud-runtime/standalone/.next/server/app/api/chat/route.js.nft.json +1 -1
  44. package/cloud-runtime/standalone/.next/server/app/api/file-search/route.js.nft.json +1 -1
  45. package/cloud-runtime/standalone/.next/server/app/api/graphs/[graphId]/nodes/[nodeId]/route.js.nft.json +1 -1
  46. package/cloud-runtime/standalone/.next/server/app/api/health/route.js +1 -1
  47. package/cloud-runtime/standalone/.next/server/app/api/health/route.js.nft.json +1 -1
  48. package/cloud-runtime/standalone/.next/server/app/api/knowledge-notes/route.js +1 -1
  49. package/cloud-runtime/standalone/.next/server/app/api/knowledge-notes/route.js.nft.json +1 -1
  50. package/cloud-runtime/standalone/.next/server/app/api/learnings/route.js +1 -1
  51. package/cloud-runtime/standalone/.next/server/app/api/learnings/route.js.nft.json +1 -1
  52. package/cloud-runtime/standalone/.next/server/app/api/linear/callback/route.js +1 -1
  53. package/cloud-runtime/standalone/.next/server/app/api/linear/callback/route.js.nft.json +1 -1
  54. package/cloud-runtime/standalone/.next/server/app/api/linear/cycles/route.js +1 -1
  55. package/cloud-runtime/standalone/.next/server/app/api/linear/cycles/route.js.nft.json +1 -1
  56. package/cloud-runtime/standalone/.next/server/app/api/linear/issues/context/route.js +1 -1
  57. package/cloud-runtime/standalone/.next/server/app/api/linear/issues/context/route.js.nft.json +1 -1
  58. package/cloud-runtime/standalone/.next/server/app/api/linear/issues/route.js +1 -1
  59. package/cloud-runtime/standalone/.next/server/app/api/linear/issues/route.js.nft.json +1 -1
  60. package/cloud-runtime/standalone/.next/server/app/api/linear/options/route.js +5 -2
  61. package/cloud-runtime/standalone/.next/server/app/api/linear/options/route.js.nft.json +1 -1
  62. package/cloud-runtime/standalone/.next/server/app/api/linear/status/route.js +1 -1
  63. package/cloud-runtime/standalone/.next/server/app/api/linear/status/route.js.nft.json +1 -1
  64. package/cloud-runtime/standalone/.next/server/app/api/linear/token/route.js +1 -1
  65. package/cloud-runtime/standalone/.next/server/app/api/linear/token/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 +1 -1
  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.nft.json +1 -1
  102. package/cloud-runtime/standalone/.next/server/app/api/schedules/poll/route.js.nft.json +1 -1
  103. package/cloud-runtime/standalone/.next/server/app/api/schedules/route.js.nft.json +1 -1
  104. package/cloud-runtime/standalone/.next/server/app/api/skills/assign/route.js +1 -1
  105. package/cloud-runtime/standalone/.next/server/app/api/skills/assign/route.js.nft.json +1 -1
  106. package/cloud-runtime/standalone/.next/server/app/api/skills/available/route.js +1 -1
  107. package/cloud-runtime/standalone/.next/server/app/api/skills/available/route.js.nft.json +1 -1
  108. package/cloud-runtime/standalone/.next/server/app/api/skills/detail/route.js +1 -1
  109. package/cloud-runtime/standalone/.next/server/app/api/skills/detail/route.js.nft.json +1 -1
  110. package/cloud-runtime/standalone/.next/server/app/api/skills/history/route.js +1 -1
  111. package/cloud-runtime/standalone/.next/server/app/api/skills/history/route.js.nft.json +1 -1
  112. package/cloud-runtime/standalone/.next/server/app/api/skills/learn/route.js +1 -1
  113. package/cloud-runtime/standalone/.next/server/app/api/skills/learn/route.js.nft.json +1 -1
  114. package/cloud-runtime/standalone/.next/server/app/api/skills/route.js +1 -1
  115. package/cloud-runtime/standalone/.next/server/app/api/skills/route.js.nft.json +1 -1
  116. package/cloud-runtime/standalone/.next/server/app/api/skills/unlearn/route.js +1 -1
  117. package/cloud-runtime/standalone/.next/server/app/api/skills/unlearn/route.js.nft.json +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.nft.json +1 -1
  150. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/history/route.js +1 -1
  151. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/history/route.js.nft.json +1 -1
  152. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/logs/route.js +1 -1
  153. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/logs/route.js.nft.json +1 -1
  154. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/comments/route.js.nft.json +1 -1
  155. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/complete/route.js +1 -1
  156. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/complete/route.js.nft.json +1 -1
  157. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/fail/route.js +1 -1
  158. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/fail/route.js.nft.json +1 -1
  159. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/resume/route.js +1 -1
  160. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/resume/route.js.nft.json +1 -1
  161. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/start/route.js +1 -1
  162. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/start/route.js.nft.json +1 -1
  163. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/stop/route.js +1 -1
  164. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/stop/route.js.nft.json +1 -1
  165. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js +1 -1
  166. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js.nft.json +1 -1
  167. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/route.js +1 -1
  168. package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
  169. package/cloud-runtime/standalone/.next/server/app/api/tasks/assign-orphans/route.js +1 -1
  170. package/cloud-runtime/standalone/.next/server/app/api/tasks/assign-orphans/route.js.nft.json +1 -1
  171. package/cloud-runtime/standalone/.next/server/app/api/tasks/extract/route.js +1 -1
  172. package/cloud-runtime/standalone/.next/server/app/api/tasks/extract/route.js.nft.json +1 -1
  173. package/cloud-runtime/standalone/.next/server/app/api/tasks/route.js +1 -1
  174. package/cloud-runtime/standalone/.next/server/app/api/tasks/route.js.nft.json +1 -1
  175. package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route.js +1 -1
  176. package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route.js.nft.json +1 -1
  177. package/cloud-runtime/standalone/.next/server/app/api/threads/route.js +1 -1
  178. package/cloud-runtime/standalone/.next/server/app/api/threads/route.js.nft.json +1 -1
  179. package/cloud-runtime/standalone/.next/server/app/api/user-settings/route.js +1 -1
  180. package/cloud-runtime/standalone/.next/server/app/api/user-settings/route.js.nft.json +1 -1
  181. package/cloud-runtime/standalone/.next/server/app/automations/page/react-loadable-manifest.json +1 -1
  182. package/cloud-runtime/standalone/.next/server/app/automations/page.js.nft.json +1 -1
  183. package/cloud-runtime/standalone/.next/server/app/automations/page_client-reference-manifest.js +1 -1
  184. package/cloud-runtime/standalone/.next/server/app/automations.html +2 -2
  185. package/cloud-runtime/standalone/.next/server/app/automations.rsc +3 -3
  186. package/cloud-runtime/standalone/.next/server/app/automations.segments/_full.segment.rsc +3 -3
  187. package/cloud-runtime/standalone/.next/server/app/automations.segments/_head.segment.rsc +1 -1
  188. package/cloud-runtime/standalone/.next/server/app/automations.segments/_index.segment.rsc +2 -2
  189. package/cloud-runtime/standalone/.next/server/app/automations.segments/_tree.segment.rsc +2 -2
  190. package/cloud-runtime/standalone/.next/server/app/automations.segments/automations/__PAGE__.segment.rsc +2 -2
  191. package/cloud-runtime/standalone/.next/server/app/automations.segments/automations.segment.rsc +1 -1
  192. package/cloud-runtime/standalone/.next/server/app/board/page_client-reference-manifest.js +1 -1
  193. package/cloud-runtime/standalone/.next/server/app/board.html +2 -2
  194. package/cloud-runtime/standalone/.next/server/app/board.rsc +2 -2
  195. package/cloud-runtime/standalone/.next/server/app/board.segments/_full.segment.rsc +2 -2
  196. package/cloud-runtime/standalone/.next/server/app/board.segments/_head.segment.rsc +1 -1
  197. package/cloud-runtime/standalone/.next/server/app/board.segments/_index.segment.rsc +2 -2
  198. package/cloud-runtime/standalone/.next/server/app/board.segments/_tree.segment.rsc +2 -2
  199. package/cloud-runtime/standalone/.next/server/app/board.segments/board/__PAGE__.segment.rsc +1 -1
  200. package/cloud-runtime/standalone/.next/server/app/board.segments/board.segment.rsc +1 -1
  201. package/cloud-runtime/standalone/.next/server/app/execution-graph/page.js.nft.json +1 -1
  202. package/cloud-runtime/standalone/.next/server/app/execution-graph/page_client-reference-manifest.js +1 -1
  203. package/cloud-runtime/standalone/.next/server/app/execution-graph.html +2 -2
  204. package/cloud-runtime/standalone/.next/server/app/execution-graph.rsc +3 -3
  205. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_full.segment.rsc +3 -3
  206. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_head.segment.rsc +1 -1
  207. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_index.segment.rsc +2 -2
  208. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_tree.segment.rsc +2 -2
  209. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/execution-graph/__PAGE__.segment.rsc +2 -2
  210. package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/execution-graph.segment.rsc +1 -1
  211. package/cloud-runtime/standalone/.next/server/app/folders/page/app-paths-manifest.json +3 -0
  212. package/cloud-runtime/standalone/.next/server/app/folders/page/build-manifest.json +18 -0
  213. package/cloud-runtime/standalone/.next/server/app/folders/page/next-font-manifest.json +11 -0
  214. package/cloud-runtime/standalone/.next/server/app/folders/page/react-loadable-manifest.json +1 -0
  215. package/cloud-runtime/standalone/.next/server/app/folders/page/server-reference-manifest.json +4 -0
  216. package/cloud-runtime/standalone/.next/server/app/folders/page.js +15 -0
  217. package/cloud-runtime/standalone/.next/server/app/folders/page.js.map +5 -0
  218. package/cloud-runtime/standalone/.next/server/app/folders/page.js.nft.json +1 -0
  219. package/cloud-runtime/standalone/.next/server/app/folders/page_client-reference-manifest.js +2 -0
  220. package/cloud-runtime/standalone/.next/server/app/folders.html +21 -0
  221. package/cloud-runtime/standalone/.next/server/app/folders.meta +15 -0
  222. package/cloud-runtime/standalone/.next/server/app/folders.rsc +24 -0
  223. package/cloud-runtime/standalone/.next/server/app/folders.segments/_full.segment.rsc +24 -0
  224. package/cloud-runtime/standalone/.next/server/app/folders.segments/_head.segment.rsc +5 -0
  225. package/cloud-runtime/standalone/.next/server/app/folders.segments/_index.segment.rsc +10 -0
  226. package/cloud-runtime/standalone/.next/server/app/folders.segments/_tree.segment.rsc +5 -0
  227. package/cloud-runtime/standalone/.next/server/app/folders.segments/folders/__PAGE__.segment.rsc +9 -0
  228. package/cloud-runtime/standalone/.next/server/app/folders.segments/folders.segment.rsc +4 -0
  229. package/cloud-runtime/standalone/.next/server/app/index.html +2 -2
  230. package/cloud-runtime/standalone/.next/server/app/index.rsc +3 -3
  231. package/cloud-runtime/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  232. package/cloud-runtime/standalone/.next/server/app/index.segments/_full.segment.rsc +3 -3
  233. package/cloud-runtime/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  234. package/cloud-runtime/standalone/.next/server/app/index.segments/_index.segment.rsc +2 -2
  235. package/cloud-runtime/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  236. package/cloud-runtime/standalone/.next/server/app/page.js.nft.json +1 -1
  237. package/cloud-runtime/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  238. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/automations/page/react-loadable-manifest.json +1 -1
  239. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/automations/page.js.nft.json +1 -1
  240. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/automations/page_client-reference-manifest.js +1 -1
  241. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/graph/[taskId]/page.js.nft.json +1 -1
  242. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/graph/[taskId]/page_client-reference-manifest.js +1 -1
  243. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page.js.nft.json +1 -1
  244. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page_client-reference-manifest.js +1 -1
  245. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/linear/page/react-loadable-manifest.json +1 -1
  246. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/linear/page.js.nft.json +1 -1
  247. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/linear/page_client-reference-manifest.js +1 -1
  248. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/page.js.nft.json +1 -1
  249. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
  250. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page.js.nft.json +1 -1
  251. package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page_client-reference-manifest.js +1 -1
  252. package/cloud-runtime/standalone/.next/server/app/projects/orphans/page.js.nft.json +1 -1
  253. package/cloud-runtime/standalone/.next/server/app/projects/orphans/page_client-reference-manifest.js +1 -1
  254. package/cloud-runtime/standalone/.next/server/app/projects/orphans.html +2 -2
  255. package/cloud-runtime/standalone/.next/server/app/projects/orphans.rsc +2 -2
  256. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_full.segment.rsc +2 -2
  257. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_head.segment.rsc +1 -1
  258. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_index.segment.rsc +2 -2
  259. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_tree.segment.rsc +2 -2
  260. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects/orphans/__PAGE__.segment.rsc +1 -1
  261. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects/orphans.segment.rsc +1 -1
  262. package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects.segment.rsc +1 -1
  263. package/cloud-runtime/standalone/.next/server/app/projects/page.js.nft.json +1 -1
  264. package/cloud-runtime/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  265. package/cloud-runtime/standalone/.next/server/app/projects.html +2 -2
  266. package/cloud-runtime/standalone/.next/server/app/projects.rsc +3 -3
  267. package/cloud-runtime/standalone/.next/server/app/projects.segments/_full.segment.rsc +3 -3
  268. package/cloud-runtime/standalone/.next/server/app/projects.segments/_head.segment.rsc +1 -1
  269. package/cloud-runtime/standalone/.next/server/app/projects.segments/_index.segment.rsc +2 -2
  270. package/cloud-runtime/standalone/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
  271. package/cloud-runtime/standalone/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +2 -2
  272. package/cloud-runtime/standalone/.next/server/app/projects.segments/projects.segment.rsc +1 -1
  273. package/cloud-runtime/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  274. package/cloud-runtime/standalone/.next/server/app/settings.html +2 -2
  275. package/cloud-runtime/standalone/.next/server/app/settings.rsc +2 -2
  276. package/cloud-runtime/standalone/.next/server/app/settings.segments/_full.segment.rsc +2 -2
  277. package/cloud-runtime/standalone/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  278. package/cloud-runtime/standalone/.next/server/app/settings.segments/_index.segment.rsc +2 -2
  279. package/cloud-runtime/standalone/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  280. package/cloud-runtime/standalone/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +1 -1
  281. package/cloud-runtime/standalone/.next/server/app/settings.segments/settings.segment.rsc +1 -1
  282. package/cloud-runtime/standalone/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  283. package/cloud-runtime/standalone/.next/server/app/skills.html +2 -2
  284. package/cloud-runtime/standalone/.next/server/app/skills.rsc +2 -2
  285. package/cloud-runtime/standalone/.next/server/app/skills.segments/_full.segment.rsc +2 -2
  286. package/cloud-runtime/standalone/.next/server/app/skills.segments/_head.segment.rsc +1 -1
  287. package/cloud-runtime/standalone/.next/server/app/skills.segments/_index.segment.rsc +2 -2
  288. package/cloud-runtime/standalone/.next/server/app/skills.segments/_tree.segment.rsc +2 -2
  289. package/cloud-runtime/standalone/.next/server/app/skills.segments/skills/__PAGE__.segment.rsc +1 -1
  290. package/cloud-runtime/standalone/.next/server/app/skills.segments/skills.segment.rsc +1 -1
  291. package/cloud-runtime/standalone/.next/server/app/status/page_client-reference-manifest.js +1 -1
  292. package/cloud-runtime/standalone/.next/server/app/status.html +2 -2
  293. package/cloud-runtime/standalone/.next/server/app/status.rsc +2 -2
  294. package/cloud-runtime/standalone/.next/server/app/status.segments/_full.segment.rsc +2 -2
  295. package/cloud-runtime/standalone/.next/server/app/status.segments/_head.segment.rsc +1 -1
  296. package/cloud-runtime/standalone/.next/server/app/status.segments/_index.segment.rsc +2 -2
  297. package/cloud-runtime/standalone/.next/server/app/status.segments/_tree.segment.rsc +2 -2
  298. package/cloud-runtime/standalone/.next/server/app/status.segments/status/__PAGE__.segment.rsc +1 -1
  299. package/cloud-runtime/standalone/.next/server/app/status.segments/status.segment.rsc +1 -1
  300. package/cloud-runtime/standalone/.next/server/app/thread/[id]/page.js.nft.json +1 -1
  301. package/cloud-runtime/standalone/.next/server/app/thread/[id]/page_client-reference-manifest.js +1 -1
  302. package/cloud-runtime/standalone/.next/server/app/welcome/page.js.nft.json +1 -1
  303. package/cloud-runtime/standalone/.next/server/app/welcome/page_client-reference-manifest.js +1 -1
  304. package/cloud-runtime/standalone/.next/server/app/welcome.html +2 -2
  305. package/cloud-runtime/standalone/.next/server/app/welcome.rsc +3 -3
  306. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_full.segment.rsc +3 -3
  307. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_head.segment.rsc +1 -1
  308. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_index.segment.rsc +2 -2
  309. package/cloud-runtime/standalone/.next/server/app/welcome.segments/_tree.segment.rsc +2 -2
  310. package/cloud-runtime/standalone/.next/server/app/welcome.segments/welcome/__PAGE__.segment.rsc +2 -2
  311. package/cloud-runtime/standalone/.next/server/app/welcome.segments/welcome.segment.rsc +1 -1
  312. package/cloud-runtime/standalone/.next/server/app-paths-manifest.json +1 -0
  313. package/cloud-runtime/standalone/.next/server/chunks/{[externals]__31e26905._.js → [externals]__7b4c6b2b._.js} +1 -1
  314. package/cloud-runtime/standalone/.next/server/chunks/[externals]__a21cc96d._.js +3 -0
  315. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__015d40a6._.js +67 -0
  316. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__067034dd._.js +67 -0
  317. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__5aaf8c25._.js → [root-of-the-server]__143fdf69._.js} +2 -2
  318. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__74a37ca4._.js → [root-of-the-server]__158df4bf._.js} +2 -2
  319. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__c029daab._.js → [root-of-the-server]__179cb224._.js} +2 -2
  320. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__3fd3c5b1._.js → [root-of-the-server]__1a1f66b1._.js} +2 -2
  321. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__20a2cb22._.js +150 -0
  322. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__d2ac93f2._.js → [root-of-the-server]__23b075bd._.js} +2 -2
  323. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__3bf516b6._.js → [root-of-the-server]__3170b7bf._.js} +2 -2
  324. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__558389f7._.js → [root-of-the-server]__33865410._.js} +2 -2
  325. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__4c2d07e0._.js → [root-of-the-server]__36d15de5._.js} +2 -2
  326. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__37844df7._.js +67 -0
  327. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__d9f2041b._.js → [root-of-the-server]__3a93931b._.js} +4 -4
  328. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__3fae531a._.js +89 -0
  329. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__76658fd6._.js → [root-of-the-server]__4cb22e4d._.js} +2 -2
  330. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__ebece93b._.js → [root-of-the-server]__4ce74056._.js} +2 -2
  331. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__635fe0f9._.js → [root-of-the-server]__538b0bdd._.js} +2 -2
  332. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__3b1431b6._.js → [root-of-the-server]__5c55f67a._.js} +2 -2
  333. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__e20922e8._.js → [root-of-the-server]__69a3c480._.js} +2 -2
  334. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__42804c1d._.js → [root-of-the-server]__6c53437e._.js} +1 -1
  335. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__8cbd8c56._.js +79 -0
  336. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__92ed2961._.js +48 -0
  337. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__509b1dd2._.js → [root-of-the-server]__94499e9a._.js} +2 -2
  338. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__ddb3aa76._.js → [root-of-the-server]__a280fa63._.js} +2 -2
  339. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__8c7d1318._.js → [root-of-the-server]__a2d31df1._.js} +2 -2
  340. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__a3955224._.js +150 -0
  341. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__4b0b5fe1._.js → [root-of-the-server]__a7b2350e._.js} +2 -2
  342. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__5b13e7a5._.js → [root-of-the-server]__ab655b9f._.js} +2 -2
  343. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ac6326b6._.js +106 -0
  344. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__0284ea89._.js → [root-of-the-server]__b2748382._.js} +2 -2
  345. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__e7be56ba._.js → [root-of-the-server]__b627cb83._.js} +2 -2
  346. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__0e98af48._.js → [root-of-the-server]__bab85495._.js} +63 -18
  347. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__dca6026a._.js → [root-of-the-server]__c21747df._.js} +2 -2
  348. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c22dd3a6._.js +179 -0
  349. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c8890cd6._.js +150 -0
  350. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__aad349b4._.js → [root-of-the-server]__ca4987eb._.js} +1 -1
  351. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__fcdaf6d8._.js → [root-of-the-server]__d16caed5._.js} +2 -2
  352. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__1f53e82e._.js → [root-of-the-server]__d324f8a1._.js} +2 -2
  353. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__6988985c._.js → [root-of-the-server]__da645a5e._.js} +2 -2
  354. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__d4f42f49._.js → [root-of-the-server]__e58e9f91._.js} +2 -2
  355. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__f4b3df16._.js +3 -0
  356. package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__c8195768._.js → [root-of-the-server]__f7f336c7._.js} +1 -1
  357. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__fcfa3690._.js +93 -0
  358. package/cloud-runtime/standalone/.next/server/chunks/_4d07f8db._.js +3 -0
  359. package/cloud-runtime/standalone/.next/server/chunks/lib_7f7835f1._.js +66 -21
  360. package/cloud-runtime/standalone/.next/server/chunks/lib_9f439b27._.js +61 -16
  361. package/cloud-runtime/standalone/.next/server/chunks/lib_f81d6da9._.js +70 -0
  362. package/cloud-runtime/standalone/.next/server/chunks/ssr/{[root-of-the-server]__4c9d0778._.js → [root-of-the-server]__01e1641e._.js} +2 -2
  363. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__0b2a2b86._.js +3 -0
  364. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__32546242._.js +3 -0
  365. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__4140bb73._.js +3 -0
  366. package/cloud-runtime/standalone/.next/server/chunks/ssr/{[root-of-the-server]__ffbc2e98._.js → [root-of-the-server]__5e73414b._.js} +2 -2
  367. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__5ff9ead4._.js +3 -0
  368. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__ec81a3d9._.js +3 -0
  369. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__f2c3b7ab._.js +1 -1
  370. package/cloud-runtime/standalone/.next/server/chunks/ssr/{[root-of-the-server]__a42e4555._.js → [root-of-the-server]__fbe1ab4a._.js} +2 -2
  371. package/cloud-runtime/standalone/.next/server/chunks/ssr/_1e9b9b1e._.js +3 -0
  372. package/cloud-runtime/standalone/.next/server/chunks/ssr/_24fe6213._.js +3 -0
  373. package/cloud-runtime/standalone/.next/server/chunks/ssr/_36a0c486._.js +3 -0
  374. package/cloud-runtime/standalone/.next/server/chunks/ssr/_3b21d3b2._.js +95 -0
  375. package/cloud-runtime/standalone/.next/server/chunks/ssr/_3eeac8f9._.js +3 -0
  376. package/cloud-runtime/standalone/.next/server/chunks/ssr/_48db42b7._.js +3 -0
  377. package/cloud-runtime/standalone/.next/server/chunks/ssr/_59f30a73._.js +3 -0
  378. package/cloud-runtime/standalone/.next/server/chunks/ssr/_7d3b0032._.js +3 -0
  379. package/cloud-runtime/standalone/.next/server/chunks/ssr/_916950b3._.js +3 -0
  380. package/cloud-runtime/standalone/.next/server/chunks/ssr/_b598ae8a._.js +3 -0
  381. package/cloud-runtime/standalone/.next/server/chunks/ssr/_b7009996._.js +3 -0
  382. package/cloud-runtime/standalone/.next/server/chunks/ssr/_cc8c8302._.js +3 -0
  383. package/cloud-runtime/standalone/.next/server/chunks/ssr/_d972a4e1._.js +3 -0
  384. package/cloud-runtime/standalone/.next/server/chunks/ssr/_dd7bb6fb._.js +3 -0
  385. package/cloud-runtime/standalone/.next/server/chunks/ssr/_dd9880fb._.js +3 -0
  386. package/cloud-runtime/standalone/.next/server/chunks/ssr/_e70d5625._.js +4 -0
  387. package/cloud-runtime/standalone/.next/server/chunks/ssr/_f02d786a._.js +3 -0
  388. package/cloud-runtime/standalone/.next/server/chunks/ssr/_f53d31e0._.js +3 -0
  389. package/cloud-runtime/standalone/.next/server/chunks/ssr/_fd8cafe9._.js +3 -0
  390. package/cloud-runtime/standalone/.next/server/chunks/ssr/_next-internal_server_app_folders_page_actions_9c8dfb6c.js +3 -0
  391. package/cloud-runtime/standalone/.next/server/chunks/ssr/app_projects_[slug]_linear_page_tsx_971a6ba7._.js +15 -12
  392. package/cloud-runtime/standalone/.next/server/chunks/ssr/components_chat-ui_bfeda794._.js +2 -2
  393. package/cloud-runtime/standalone/.next/server/chunks/ssr/components_thread_WorkspaceSidebar_tsx_e660301b._.js +1 -1
  394. package/cloud-runtime/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_54bf563f._.js +3 -0
  395. package/cloud-runtime/standalone/.next/server/instrumentation.js +1 -1
  396. package/cloud-runtime/standalone/.next/server/middleware-manifest.json +5 -5
  397. package/cloud-runtime/standalone/.next/server/next-font-manifest.js +1 -1
  398. package/cloud-runtime/standalone/.next/server/next-font-manifest.json +4 -0
  399. package/cloud-runtime/standalone/.next/server/pages/404.html +2 -2
  400. package/cloud-runtime/standalone/.next/server/pages/500.html +2 -2
  401. package/cloud-runtime/standalone/.next/server/server-reference-manifest.js +1 -1
  402. package/cloud-runtime/standalone/.next/server/server-reference-manifest.json +1 -1
  403. package/cloud-runtime/standalone/.next/static/chunks/04c135686161dbb1.js +40 -0
  404. package/cloud-runtime/standalone/.next/static/chunks/0d63db0c39c0a3b2.js +1 -0
  405. package/cloud-runtime/standalone/.next/static/chunks/136ed07d84b14632.js +1 -0
  406. package/cloud-runtime/standalone/.next/static/chunks/18866ed04ed3a063.css +1 -0
  407. package/cloud-runtime/standalone/.next/static/chunks/1b808cdaa28a10b4.js +16 -0
  408. package/cloud-runtime/standalone/.next/static/chunks/{ccaf68956da192f8.js → 1bb38e61d891453c.js} +1 -1
  409. package/cloud-runtime/standalone/.next/static/chunks/2c7c8259c2b56bf5.js +1 -0
  410. package/cloud-runtime/standalone/.next/static/chunks/2da1f13d50dc4e54.js +1 -0
  411. package/cloud-runtime/standalone/.next/static/chunks/442eb8ef62bef9f9.js +3 -0
  412. package/cloud-runtime/standalone/.next/static/chunks/5f33b52d582b0bb4.js +1 -0
  413. package/cloud-runtime/standalone/.next/static/chunks/{1fa91c34c99502bf.js → 64c2961edd3a3b13.js} +1 -1
  414. package/cloud-runtime/standalone/.next/static/chunks/{db131a0b6350e416.js → 692ce04abdbb3970.js} +1 -1
  415. package/cloud-runtime/standalone/.next/static/chunks/83be8569d298c6b0.js +1 -0
  416. package/cloud-runtime/standalone/.next/static/chunks/87b3afe828c8cc52.js +1 -0
  417. package/cloud-runtime/standalone/.next/static/chunks/{14922fd23cdc223b.js → 9328740727c6456d.js} +1 -1
  418. package/cloud-runtime/standalone/.next/static/chunks/95d47e285ae9c031.js +1 -0
  419. package/cloud-runtime/standalone/.next/static/chunks/b9bf5d3ee92a1313.js +1 -0
  420. package/cloud-runtime/standalone/.next/static/chunks/ea35fb870141bcff.js +1 -0
  421. package/cloud-runtime/standalone/.next/static/chunks/f59722264449b61c.js +1 -0
  422. package/cloud-runtime/standalone/.next/static/chunks/f727d2c8f039511d.js +1 -0
  423. package/cloud-runtime/standalone/.next/static/chunks/{f4360c3e4089263f.js → f8706212baa8ec67.js} +1 -1
  424. package/cloud-runtime/standalone/.next/static/chunks/fd823c9d1381335d.js +1 -0
  425. package/cloud-runtime/standalone/app/api/linear/issues/route.ts +9 -2
  426. package/cloud-runtime/standalone/app/api/linear/options/route.ts +16 -4
  427. package/cloud-runtime/standalone/app/automations/page.tsx +11 -1
  428. package/cloud-runtime/standalone/app/folders/page.tsx +318 -0
  429. package/cloud-runtime/standalone/app/projects/[slug]/layout.tsx +11 -1
  430. package/cloud-runtime/standalone/components/LinearBoard.tsx +211 -28
  431. package/cloud-runtime/standalone/components/chat-ui/ChatContainer.tsx +10 -0
  432. package/cloud-runtime/standalone/components/linear/RunScriptManager.tsx +356 -0
  433. package/cloud-runtime/standalone/components/thread/WorkspaceSidebar.tsx +55 -10
  434. package/cloud-runtime/standalone/hooks/useLinearIssues.ts +7 -3
  435. package/cloud-runtime/standalone/hooks/useLinearRunScripts.ts +115 -0
  436. package/cloud-runtime/standalone/instrumentation.ts +3 -0
  437. package/cloud-runtime/standalone/lib/cli-runner.ts +27 -6
  438. package/cloud-runtime/standalone/lib/linear-client.ts +33 -3
  439. package/cloud-runtime/standalone/lib/linear-execution-prompt.ts +92 -15
  440. package/cloud-runtime/standalone/lib/linear-issue-store.ts +33 -5
  441. package/cloud-runtime/standalone/lib/scheduled-task-skill.ts +119 -0
  442. package/cloud-runtime/standalone/state/automations/.state/c4300b01-1203-40fe-b3a9-b9fb9ec0c5cc.json +8 -0
  443. package/cloud-runtime/standalone/state/automations/active/c4300b01-1203-40fe-b3a9-b9fb9ec0c5cc.md +15 -0
  444. package/cloud-runtime/standalone/state/linearBoardFilters.ts +90 -0
  445. package/cloud-runtime/standalone/state/linearRunScripts.test.ts +99 -0
  446. package/cloud-runtime/standalone/state/linearRunScripts.ts +132 -0
  447. package/cloud-runtime/standalone/state/windowState.ts +21 -0
  448. package/cloud-runtime/standalone/tsconfig.tsbuildinfo +1 -1
  449. package/cloud-runtime/standalone/worker/index.js +147 -28
  450. package/package.json +1 -1
  451. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__1154e5b3._.js +0 -67
  452. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__3b83b657._.js +0 -147
  453. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__6921fe3f._.js +0 -44
  454. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__70327010._.js +0 -134
  455. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__748c718f._.js +0 -147
  456. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__76290829._.js +0 -67
  457. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__79fa35e4._.js +0 -101
  458. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__8d205f82._.js +0 -48
  459. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__a7e0ac67._.js +0 -25
  460. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ad6d6402._.js +0 -67
  461. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__b133856b._.js +0 -61
  462. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ce2a1672._.js +0 -67
  463. package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__f168c6dc._.js +0 -25
  464. package/cloud-runtime/standalone/.next/server/chunks/_a93e80e8._.js +0 -3
  465. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__1c4256ce._.js +0 -3
  466. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__69887882._.js +0 -3
  467. package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__bb149a22._.js +0 -3
  468. package/cloud-runtime/standalone/.next/server/chunks/ssr/_11ce4c04._.js +0 -95
  469. package/cloud-runtime/standalone/.next/server/chunks/ssr/_1d26be78._.js +0 -3
  470. package/cloud-runtime/standalone/.next/server/chunks/ssr/_22e99a52._.js +0 -3
  471. package/cloud-runtime/standalone/.next/server/chunks/ssr/_260b10ce._.js +0 -3
  472. package/cloud-runtime/standalone/.next/server/chunks/ssr/_32c878b9._.js +0 -3
  473. package/cloud-runtime/standalone/.next/server/chunks/ssr/_4bfdfb14._.js +0 -3
  474. package/cloud-runtime/standalone/.next/server/chunks/ssr/_52fe115d._.js +0 -3
  475. package/cloud-runtime/standalone/.next/server/chunks/ssr/_69164b06._.js +0 -95
  476. package/cloud-runtime/standalone/.next/server/chunks/ssr/_77e1407a._.js +0 -3
  477. package/cloud-runtime/standalone/.next/server/chunks/ssr/_7f7a828a._.js +0 -3
  478. package/cloud-runtime/standalone/.next/server/chunks/ssr/_84a166cb._.js +0 -3
  479. package/cloud-runtime/standalone/.next/server/chunks/ssr/_ba5903a7._.js +0 -3
  480. package/cloud-runtime/standalone/.next/server/chunks/ssr/_cee3cf86._.js +0 -95
  481. package/cloud-runtime/standalone/.next/server/chunks/ssr/_ed4fece9._.js +0 -3
  482. package/cloud-runtime/standalone/.next/server/chunks/ssr/_f51a3112._.js +0 -3
  483. package/cloud-runtime/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_e8bdedc5._.js +0 -3
  484. package/cloud-runtime/standalone/.next/static/chunks/2362d5c0dcaa5d64.js +0 -1
  485. package/cloud-runtime/standalone/.next/static/chunks/2730394502dd3664.js +0 -1
  486. package/cloud-runtime/standalone/.next/static/chunks/2a9c83f8211196e0.js +0 -1
  487. package/cloud-runtime/standalone/.next/static/chunks/34dd491bc4ce9561.js +0 -1
  488. package/cloud-runtime/standalone/.next/static/chunks/37f07896b044d69f.css +0 -1
  489. package/cloud-runtime/standalone/.next/static/chunks/3dc50de1c86e1ce9.js +0 -1
  490. package/cloud-runtime/standalone/.next/static/chunks/4ea8f08087116055.js +0 -1
  491. package/cloud-runtime/standalone/.next/static/chunks/98c20da4973991f0.js +0 -1
  492. package/cloud-runtime/standalone/.next/static/chunks/a72fbac84e32f665.js +0 -1
  493. package/cloud-runtime/standalone/.next/static/chunks/a9da98f883ac833b.js +0 -1
  494. package/cloud-runtime/standalone/.next/static/chunks/b2127dc67c5ade9f.js +0 -1
  495. package/cloud-runtime/standalone/.next/static/chunks/b3377e39d47c71cf.js +0 -3
  496. package/cloud-runtime/standalone/.next/static/chunks/b553dba1f51e709b.js +0 -16
  497. package/cloud-runtime/standalone/.next/static/chunks/bf2a2fafb710e63c.js +0 -1
  498. package/cloud-runtime/standalone/.next/static/chunks/c0d17e0c37ba8e7a.js +0 -1
  499. package/cloud-runtime/standalone/.next/static/chunks/cca7c8e4ade050f0.js +0 -37
  500. package/cloud-runtime/standalone/state/automations/.state/24a6a5db-3b14-49c4-841f-29f10f015fbb.json +0 -8
  501. package/cloud-runtime/standalone/state/automations/active/24a6a5db-3b14-49c4-841f-29f10f015fbb.md +0 -17
  502. /package/cloud-runtime/standalone/.next/static/{1Q0q2lXllTpqCvmNQYtpD → gty0FO80D_lbq3o9lSpQQ}/_buildManifest.js +0 -0
  503. /package/cloud-runtime/standalone/.next/static/{1Q0q2lXllTpqCvmNQYtpD → gty0FO80D_lbq3o9lSpQQ}/_clientMiddlewareManifest.json +0 -0
  504. /package/cloud-runtime/standalone/.next/static/{1Q0q2lXllTpqCvmNQYtpD → gty0FO80D_lbq3o9lSpQQ}/_ssgManifest.js +0 -0
@@ -5,6 +5,7 @@ import type { ChatProvider } from "./types";
5
5
  import { createCliChunkSanitizer } from "./sanitize";
6
6
  import { writeDebugLog } from "./debug-log";
7
7
  import { buildSpawnEnv, commandExists } from "./shell-env";
8
+ import { buildScheduledTaskSkillPromptContext } from "./scheduled-task-skill";
8
9
 
9
10
  const isNonEmptyString = (value: unknown): value is string =>
10
11
  typeof value === "string" && value.trim().length > 0;
@@ -711,12 +712,12 @@ export async function runCliResponse({
711
712
  if (cleaned) onDelta(cleaned);
712
713
  };
713
714
 
714
- const systemParts: string[] = [];
715
- if (systemContext) systemParts.push(systemContext);
716
- if (identity) systemParts.push(`<identity>\n${identity}\n</identity>`);
717
- if (self) systemParts.push(`<self>\n${self}\n</self>`);
718
- if (skills) systemParts.push(`<skills>\n${skills}\n</skills>`);
719
- const systemPrompt = systemParts.length > 0 ? systemParts.join("\n\n") : undefined;
715
+ const systemPrompt = buildCliSystemPrompt({
716
+ identity,
717
+ self,
718
+ skills,
719
+ systemContext,
720
+ });
720
721
  const attempts = buildCliAttempts({
721
722
  provider,
722
723
  model,
@@ -789,3 +790,23 @@ export async function runCliResponse({
789
790
 
790
791
  throw lastError || new Error("CLI execution failed.");
791
792
  }
793
+
794
+ export function buildCliSystemPrompt({
795
+ identity,
796
+ self,
797
+ skills,
798
+ systemContext,
799
+ }: {
800
+ identity?: string;
801
+ self?: string;
802
+ skills?: string;
803
+ systemContext?: string;
804
+ }): string | undefined {
805
+ const systemParts: string[] = [];
806
+ if (systemContext) systemParts.push(systemContext);
807
+ systemParts.push(buildScheduledTaskSkillPromptContext());
808
+ if (identity) systemParts.push(`<identity>\n${identity}\n</identity>`);
809
+ if (self) systemParts.push(`<self>\n${self}\n</self>`);
810
+ if (skills) systemParts.push(`<skills>\n${skills}\n</skills>`);
811
+ return systemParts.length > 0 ? systemParts.join("\n\n") : undefined;
812
+ }
@@ -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
+ }
@@ -87,7 +87,7 @@ export interface LinearIssueSyncState {
87
87
 
88
88
  export interface ListCachedLinearIssuesInput {
89
89
  search?: string;
90
- status?: string;
90
+ statuses?: string[];
91
91
  assigneeIds?: string[];
92
92
  assignedToMe?: boolean;
93
93
  teamId?: string;
@@ -104,6 +104,10 @@ export interface ListCachedLinearIssuesResult {
104
104
  };
105
105
  }
106
106
 
107
+ interface LinearIssueStatusRow {
108
+ status: string;
109
+ }
110
+
107
111
  function toOptionalString(value: string | null | undefined): string | null {
108
112
  const trimmed = value?.trim();
109
113
  return trimmed ? trimmed : null;
@@ -343,10 +347,17 @@ export async function listCachedLinearIssues(
343
347
  params.push(pattern, pattern, pattern);
344
348
  }
345
349
 
346
- const status = toOptionalString(input.status ?? null);
347
- if (status) {
348
- clauses.push("LOWER(status) = ?");
349
- params.push(status.toLowerCase());
350
+ const statuses = Array.from(
351
+ new Set(
352
+ (input.statuses ?? [])
353
+ .map((status) => toOptionalString(status))
354
+ .filter((status): status is string => Boolean(status))
355
+ .map((status) => status.toLowerCase())
356
+ )
357
+ );
358
+ if (statuses.length > 0) {
359
+ clauses.push(`LOWER(status) IN (${statuses.map(() => "?").join(", ")})`);
360
+ params.push(...statuses);
350
361
  }
351
362
 
352
363
  const assigneeIds = Array.from(
@@ -402,6 +413,23 @@ export async function listCachedLinearIssues(
402
413
  });
403
414
  }
404
415
 
416
+ export async function listCachedLinearIssueStatuses(): Promise<string[]> {
417
+ return withLinearIssueDatabase((db) => {
418
+ const rows = db
419
+ .prepare(
420
+ `SELECT DISTINCT status
421
+ FROM linear_issues
422
+ WHERE TRIM(status) <> ''
423
+ ORDER BY LOWER(status) ASC`
424
+ )
425
+ .all() as unknown as LinearIssueStatusRow[];
426
+
427
+ return rows
428
+ .map((row) => row.status.trim())
429
+ .filter(Boolean);
430
+ });
431
+ }
432
+
405
433
  export async function getCachedLinearIssueContexts(issueIds: string[]): Promise<CachedLinearIssueRecord[]> {
406
434
  const normalizedIds = Array.from(
407
435
  new Set(
@@ -0,0 +1,119 @@
1
+ import fs from "node:fs";
2
+ import os from "node:os";
3
+ import path from "node:path";
4
+
5
+ const SCHEDULED_TASK_SKILL_ID = "scheduled-task-manager";
6
+
7
+ type ScheduledTaskSkillOptions = {
8
+ agxDataDir?: string;
9
+ workspaceRoot?: string;
10
+ };
11
+
12
+ function toDisplayPath(value: string): string {
13
+ return value.replace(/\\/g, "/");
14
+ }
15
+
16
+ function resolveAgxDataDir(explicitDir?: string): string {
17
+ const trimmed = explicitDir?.trim();
18
+ if (trimmed) return trimmed;
19
+ const configured = process.env.AGX_DATA_DIR?.trim();
20
+ if (configured) return configured;
21
+ return path.join(os.homedir(), ".agx");
22
+ }
23
+
24
+ function resolveWorkspaceRoot(explicitRoot?: string): string {
25
+ const trimmed = explicitRoot?.trim();
26
+ if (trimmed) return trimmed;
27
+ return process.cwd();
28
+ }
29
+
30
+ export function getScheduledTaskSkillPath(options: ScheduledTaskSkillOptions = {}): string {
31
+ return path.join(
32
+ resolveAgxDataDir(options.agxDataDir),
33
+ "skills",
34
+ SCHEDULED_TASK_SKILL_ID,
35
+ "SKILL.md",
36
+ );
37
+ }
38
+
39
+ export function buildScheduledTaskSkillContent(options: ScheduledTaskSkillOptions = {}): string {
40
+ const workspaceRoot = resolveWorkspaceRoot(options.workspaceRoot);
41
+ const specPath = toDisplayPath(path.join(workspaceRoot, "planning", "automation-frontmatter-migration-spec.md"));
42
+ const automationsDir = toDisplayPath(path.join(workspaceRoot, "src", "automations"));
43
+ const promptSchedulerDir = toDisplayPath(path.join(workspaceRoot, "src", "prompt-scheduler"));
44
+ const graphScheduleRunnerPath = toDisplayPath(path.join(workspaceRoot, "src", "graph", "schedule-runner.ts"));
45
+ const graphStorePath = toDisplayPath(path.join(workspaceRoot, "src", "graph", "store.ts"));
46
+ const automationsRoutePath = toDisplayPath(path.join(workspaceRoot, "app", "api", "automations", "route.ts"));
47
+ const promptJobsRoutePath = toDisplayPath(path.join(workspaceRoot, "app", "api", "prompt-jobs", "route.ts"));
48
+
49
+ return `---
50
+ name: scheduled-task-manager
51
+ description: Use when creating, editing, migrating, debugging, or reviewing AGX scheduled tasks, automations, prompt jobs, execution graph schedules, or frontmatter-backed automation definitions.
52
+ ---
53
+
54
+ # Scheduled Task Manager
55
+
56
+ Use this skill whenever the task touches scheduled tasks, automations, prompt jobs, execution graph schedules, or automation frontmatter.
57
+
58
+ ## Read First
59
+
60
+ - [automation-frontmatter-migration-spec](${specPath})
61
+ - Shared automation model lives in [src/automations](${automationsDir})
62
+ - Prompt-job scheduling lives in [src/prompt-scheduler](${promptSchedulerDir})
63
+ - Execution-graph scheduling flows through [schedule-runner.ts](${graphScheduleRunnerPath}) and [store.ts](${graphStorePath})
64
+ - API entry points are [app/api/automations/route.ts](${automationsRoutePath}) and [app/api/prompt-jobs/route.ts](${promptJobsRoutePath})
65
+
66
+ ## Guardrails
67
+
68
+ - Reject malformed frontmatter. Do not coerce invalid enum values into defaults.
69
+ - Preserve stable automation ids. Renaming a task must not create a new id.
70
+ - Keep runtime state such as last run, next run, and archival flags out of frontmatter unless the spec explicitly says otherwise.
71
+ - Preserve sub-minute scheduled cadences when they are represented as \`intervalMs\`.
72
+ - For \`execution_graph\` targets, keep \`graphId\` and \`taskId\` resolution correct. Do not assume \`definition.id === taskId\`.
73
+ - Updating an automation definition should advance user-visible \`updatedAt\`.
74
+ - Avoid eager file-backed repository initialization on request paths that should stay lazy or rollout-gated.
75
+ - Keep parser and serializer behavior round-trippable unless the spec explicitly requires normalization.
76
+
77
+ ## Working Pattern
78
+
79
+ 1. Read the migration spec before changing storage, rollout, or validation behavior.
80
+ 2. Trace the full path: parser -> validation -> repository -> scheduler -> API.
81
+ 3. Add or update regression tests for parsing, serialization, due selection, and the affected API or runtime path.
82
+ 4. Prefer small fixes in the shared automation layer over duplicating logic in adapters.
83
+
84
+ ## Validation Checklist
85
+
86
+ - Scheduled triggers keep \`cronExpr\`, \`cadence\`, and sub-minute \`intervalMs\` semantics intact.
87
+ - Condition triggers validate required fields and reject unsupported polling intervals.
88
+ - Target-specific required fields are enforced.
89
+ - Invalid definitions fail closed and are excluded instead of silently rewritten.
90
+ - Prompt-job and execution-graph adapters preserve the same runtime meaning before and after frontmatter serialization.
91
+ `;
92
+ }
93
+
94
+ export function ensureScheduledTaskSkillInstalled(options: ScheduledTaskSkillOptions = {}): string {
95
+ const skillPath = getScheduledTaskSkillPath(options);
96
+ const skillContent = buildScheduledTaskSkillContent(options);
97
+
98
+ try {
99
+ fs.mkdirSync(path.dirname(skillPath), { recursive: true });
100
+ const existing = fs.existsSync(skillPath) ? fs.readFileSync(skillPath, "utf8") : null;
101
+ if (existing !== skillContent) {
102
+ fs.writeFileSync(skillPath, skillContent, "utf8");
103
+ }
104
+ } catch (error) {
105
+ console.warn("[scheduled-task-skill] Failed to install skill:", error);
106
+ }
107
+
108
+ return skillPath;
109
+ }
110
+
111
+ export function buildScheduledTaskSkillPromptContext(options: ScheduledTaskSkillOptions = {}): string {
112
+ const skillPath = ensureScheduledTaskSkillInstalled(options);
113
+ return [
114
+ "<scheduled-task-skill>",
115
+ `Path: ${toDisplayPath(skillPath)}`,
116
+ "Read this skill whenever the task involves scheduled tasks, automations, prompt jobs, execution graph schedules, or frontmatter-backed automation definitions.",
117
+ "</scheduled-task-skill>",
118
+ ].join("\n");
119
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "scheduleHash": "218b10daaa347ad14c3a8fbaabee0cff119839d6f5b6c5c3aaf7ed2eac4484f1",
3
+ "nextRunAt": 1775643300000,
4
+ "lastRunAt": null,
5
+ "lastOutcome": null,
6
+ "lastError": null,
7
+ "updatedAt": "2026-04-08T09:50:53.809Z"
8
+ }
@@ -0,0 +1,15 @@
1
+ ---
2
+ id: c4300b01-1203-40fe-b3a9-b9fb9ec0c5cc
3
+ name: 'Agx Agent: Work On Linear Tickets'
4
+ projectId: f354bbf2-cfed-473f-890c-e592209313da
5
+ state: active
6
+ trigger:
7
+ type: scheduled
8
+ cadence: 15 * * * *
9
+ cronExpr: 15 * * * *
10
+ target:
11
+ type: prompt_job
12
+ provider: claude
13
+ createdAt: '2026-04-08T09:50:53.793Z'
14
+ ---
15
+ Execute `/Users/mendrika/Projects/Agents/agx-game-vault/agx-game-vault/scheduled-tasks/work-linear-tickets.md`
@@ -0,0 +1,90 @@
1
+ const LINEAR_BOARD_FILTERS_STORAGE_PREFIX = "agx-linear:boardFilters";
2
+
3
+ export interface LinearBoardFilters {
4
+ search: string;
5
+ assigneeIds: string[];
6
+ statuses: string[];
7
+ teamId: string;
8
+ cycleId: string;
9
+ }
10
+
11
+ const DEFAULT_LINEAR_BOARD_FILTERS: LinearBoardFilters = {
12
+ search: "",
13
+ assigneeIds: [],
14
+ statuses: [],
15
+ teamId: "",
16
+ cycleId: "",
17
+ };
18
+
19
+ function isStorageAvailable(): boolean {
20
+ return typeof window !== "undefined" && typeof window.localStorage !== "undefined";
21
+ }
22
+
23
+ function normalizeStringArray(value: unknown): string[] {
24
+ if (!Array.isArray(value)) {
25
+ return [];
26
+ }
27
+
28
+ return Array.from(
29
+ new Set(
30
+ value
31
+ .map((entry) => (typeof entry === "string" ? entry.trim() : ""))
32
+ .filter(Boolean)
33
+ )
34
+ );
35
+ }
36
+
37
+ export function getLinearBoardFiltersStorageKey(projectSlug?: string | null): string {
38
+ const normalizedProjectSlug = String(projectSlug ?? "").trim().toLowerCase();
39
+ return normalizedProjectSlug
40
+ ? `${LINEAR_BOARD_FILTERS_STORAGE_PREFIX}:${normalizedProjectSlug}`
41
+ : `${LINEAR_BOARD_FILTERS_STORAGE_PREFIX}:global`;
42
+ }
43
+
44
+ export function loadLinearBoardFilters(projectSlug?: string | null): LinearBoardFilters {
45
+ if (!isStorageAvailable()) {
46
+ return { ...DEFAULT_LINEAR_BOARD_FILTERS };
47
+ }
48
+
49
+ const raw = window.localStorage.getItem(getLinearBoardFiltersStorageKey(projectSlug));
50
+ if (!raw) {
51
+ return { ...DEFAULT_LINEAR_BOARD_FILTERS };
52
+ }
53
+
54
+ try {
55
+ const parsed = JSON.parse(raw) as Partial<LinearBoardFilters>;
56
+ return {
57
+ search: typeof parsed.search === "string" ? parsed.search : DEFAULT_LINEAR_BOARD_FILTERS.search,
58
+ assigneeIds: normalizeStringArray(parsed.assigneeIds),
59
+ statuses: normalizeStringArray(parsed.statuses),
60
+ teamId: typeof parsed.teamId === "string" ? parsed.teamId : DEFAULT_LINEAR_BOARD_FILTERS.teamId,
61
+ cycleId: typeof parsed.cycleId === "string" ? parsed.cycleId : DEFAULT_LINEAR_BOARD_FILTERS.cycleId,
62
+ };
63
+ } catch {
64
+ return { ...DEFAULT_LINEAR_BOARD_FILTERS };
65
+ }
66
+ }
67
+
68
+ export function persistLinearBoardFilters(
69
+ projectSlug: string | null | undefined,
70
+ filters: LinearBoardFilters
71
+ ): void {
72
+ if (!isStorageAvailable()) {
73
+ return;
74
+ }
75
+
76
+ try {
77
+ window.localStorage.setItem(
78
+ getLinearBoardFiltersStorageKey(projectSlug),
79
+ JSON.stringify({
80
+ search: filters.search,
81
+ assigneeIds: normalizeStringArray(filters.assigneeIds),
82
+ statuses: normalizeStringArray(filters.statuses),
83
+ teamId: String(filters.teamId || ""),
84
+ cycleId: String(filters.cycleId || ""),
85
+ })
86
+ );
87
+ } catch {
88
+ // ignore storage errors
89
+ }
90
+ }
@@ -0,0 +1,99 @@
1
+ import {
2
+ getLinearRunScriptsStorageKey,
3
+ loadLinearRunScripts,
4
+ persistLinearRunScripts,
5
+ } from "./linearRunScripts";
6
+
7
+ type LocalStorageMap = Record<string, string>;
8
+
9
+ function withFakeLocalStorage<T>(callback: (storage: LocalStorageMap) => T): T {
10
+ const originalWindow = globalThis.window;
11
+ const storage: LocalStorageMap = {};
12
+ const fakeLocalStorage = {
13
+ getItem(key: string) {
14
+ return storage[key] ?? null;
15
+ },
16
+ setItem(key: string, value: string) {
17
+ storage[key] = value;
18
+ },
19
+ removeItem(key: string) {
20
+ delete storage[key];
21
+ },
22
+ };
23
+ globalThis.window = { localStorage: fakeLocalStorage } as unknown as Window;
24
+
25
+ try {
26
+ return callback(storage);
27
+ } finally {
28
+ globalThis.window = originalWindow;
29
+ }
30
+ }
31
+
32
+ describe("linearRunScripts", () => {
33
+ test("persists and restores scripts per project slug", () => {
34
+ withFakeLocalStorage((storage) => {
35
+ const key = getLinearRunScriptsStorageKey("agx-cloud");
36
+ expect(loadLinearRunScripts("agx-cloud")).toEqual({
37
+ activeScriptId: null,
38
+ scripts: [],
39
+ });
40
+
41
+ persistLinearRunScripts("agx-cloud", {
42
+ activeScriptId: "script-1",
43
+ scripts: [
44
+ {
45
+ id: "script-1",
46
+ name: "Investigation",
47
+ prompt: "Read {{ticket.identifier}} first.",
48
+ createdAt: "2026-04-08T01:00:00.000Z",
49
+ updatedAt: "2026-04-08T02:00:00.000Z",
50
+ },
51
+ ],
52
+ });
53
+
54
+ expect(storage[key]).toContain("Investigation");
55
+ expect(loadLinearRunScripts("agx-cloud")).toEqual({
56
+ activeScriptId: "script-1",
57
+ scripts: [
58
+ {
59
+ id: "script-1",
60
+ name: "Investigation",
61
+ prompt: "Read {{ticket.identifier}} first.",
62
+ createdAt: "2026-04-08T01:00:00.000Z",
63
+ updatedAt: "2026-04-08T02:00:00.000Z",
64
+ },
65
+ ],
66
+ });
67
+ });
68
+ });
69
+
70
+ test("clears invalid active script ids while preserving valid scripts", () => {
71
+ withFakeLocalStorage((storage) => {
72
+ storage[getLinearRunScriptsStorageKey("agx-cloud")] = JSON.stringify({
73
+ activeScriptId: "missing-script",
74
+ scripts: [
75
+ {
76
+ id: "script-1",
77
+ name: "Implementation",
78
+ prompt: "Implement carefully.",
79
+ createdAt: "2026-04-08T01:00:00.000Z",
80
+ updatedAt: "2026-04-08T02:00:00.000Z",
81
+ },
82
+ ],
83
+ });
84
+
85
+ expect(loadLinearRunScripts("agx-cloud")).toEqual({
86
+ activeScriptId: null,
87
+ scripts: [
88
+ {
89
+ id: "script-1",
90
+ name: "Implementation",
91
+ prompt: "Implement carefully.",
92
+ createdAt: "2026-04-08T01:00:00.000Z",
93
+ updatedAt: "2026-04-08T02:00:00.000Z",
94
+ },
95
+ ],
96
+ });
97
+ });
98
+ });
99
+ });