@mndrk/agx 2.1.0 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (457) hide show
  1. package/README.md +70 -105
  2. package/cloud-runtime/standalone/apps/local/.next/BUILD_ID +1 -1
  3. package/cloud-runtime/standalone/apps/local/.next/build-manifest.json +3 -3
  4. package/cloud-runtime/standalone/apps/local/.next/prerender-manifest.json +3 -3
  5. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.html +1 -1
  6. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.rsc +1 -1
  7. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  8. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  9. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  10. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  11. package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  12. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  13. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.html +2 -2
  14. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.rsc +2 -2
  15. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  16. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  17. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  18. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  19. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  20. package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  21. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/[id]/page_client-reference-manifest.js +1 -1
  22. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page.js.nft.json +1 -1
  23. package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page_client-reference-manifest.js +1 -1
  24. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.html +2 -2
  25. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.rsc +3 -3
  26. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_full.segment.rsc +3 -3
  27. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_head.segment.rsc +1 -1
  28. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_index.segment.rsc +2 -2
  29. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_tree.segment.rsc +2 -2
  30. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/agents/__PAGE__.segment.rsc +2 -2
  31. package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/agents.segment.rsc +1 -1
  32. package/cloud-runtime/standalone/apps/local/.next/server/app/api/agent-specs/route.js.nft.json +1 -1
  33. package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/[id]/profile/route.js.nft.json +1 -1
  34. package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/export/route.js.nft.json +1 -1
  35. package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat/route.js.nft.json +1 -1
  36. package/cloud-runtime/standalone/apps/local/.next/server/app/api/file-search/route.js.nft.json +1 -1
  37. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/issues/[id]/route.js.nft.json +1 -1
  38. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/issues/context/route.js.nft.json +1 -1
  39. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/issues/route.js.nft.json +1 -1
  40. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/options/route.js.nft.json +1 -1
  41. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/runs/scripted/route.js.nft.json +1 -1
  42. package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/status/route.js.nft.json +1 -1
  43. package/cloud-runtime/standalone/apps/local/.next/server/app/api/participants/route.js.nft.json +1 -1
  44. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/linear-issues/route.js.nft.json +1 -1
  45. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/scheduled-tasks/route.js.nft.json +1 -1
  46. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route.js.nft.json +1 -1
  47. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/search/route.js.nft.json +1 -1
  48. package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/teams/route.js.nft.json +1 -1
  49. package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/poll/route.js.nft.json +1 -1
  50. package/cloud-runtime/standalone/apps/local/.next/server/app/api/providers/check/[id]/route.js.nft.json +1 -1
  51. package/cloud-runtime/standalone/apps/local/.next/server/app/api/providers/route.js.nft.json +1 -1
  52. package/cloud-runtime/standalone/apps/local/.next/server/app/api/queue/route.js.nft.json +1 -1
  53. package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/debug/route.js.nft.json +1 -1
  54. package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/poll/route.js.nft.json +1 -1
  55. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/assign/route.js.nft.json +1 -1
  56. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/available/route.js.nft.json +1 -1
  57. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/detail/route.js.nft.json +1 -1
  58. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/history/route.js.nft.json +1 -1
  59. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/learn/route.js.nft.json +1 -1
  60. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/route.js.nft.json +1 -1
  61. package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/unlearn/route.js.nft.json +1 -1
  62. package/cloud-runtime/standalone/apps/local/.next/server/app/api/status/route.js.nft.json +1 -1
  63. package/cloud-runtime/standalone/apps/local/.next/server/app/api/summarize/route.js.nft.json +1 -1
  64. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js.nft.json +1 -1
  65. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/comments/route.js.nft.json +1 -1
  66. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js.nft.json +1 -1
  67. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
  68. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/extract/route.js.nft.json +1 -1
  69. package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/route.js.nft.json +1 -1
  70. package/cloud-runtime/standalone/apps/local/.next/server/app/api/threads/knowledge/route.js.nft.json +1 -1
  71. package/cloud-runtime/standalone/apps/local/.next/server/app/api/threads/route.js.nft.json +1 -1
  72. package/cloud-runtime/standalone/apps/local/.next/server/app/automations/page/react-loadable-manifest.json +2 -2
  73. package/cloud-runtime/standalone/apps/local/.next/server/app/automations/page_client-reference-manifest.js +1 -1
  74. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.html +2 -2
  75. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.rsc +5 -5
  76. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/_full.segment.rsc +5 -5
  77. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/_head.segment.rsc +1 -1
  78. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/_index.segment.rsc +2 -2
  79. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/_tree.segment.rsc +3 -3
  80. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/automations/__PAGE__.segment.rsc +3 -3
  81. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/automations.segment.rsc +1 -1
  82. package/cloud-runtime/standalone/apps/local/.next/server/app/board/page_client-reference-manifest.js +1 -1
  83. package/cloud-runtime/standalone/apps/local/.next/server/app/board.html +2 -2
  84. package/cloud-runtime/standalone/apps/local/.next/server/app/board.rsc +2 -2
  85. package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/_full.segment.rsc +2 -2
  86. package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/_head.segment.rsc +1 -1
  87. package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/_index.segment.rsc +2 -2
  88. package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/_tree.segment.rsc +2 -2
  89. package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/board/__PAGE__.segment.rsc +1 -1
  90. package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/board.segment.rsc +1 -1
  91. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph/page.js.nft.json +1 -1
  92. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph/page_client-reference-manifest.js +1 -1
  93. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.html +2 -2
  94. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.rsc +3 -3
  95. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/_full.segment.rsc +3 -3
  96. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/_head.segment.rsc +1 -1
  97. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/_index.segment.rsc +2 -2
  98. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/_tree.segment.rsc +2 -2
  99. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/execution-graph/__PAGE__.segment.rsc +2 -2
  100. package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/execution-graph.segment.rsc +1 -1
  101. package/cloud-runtime/standalone/apps/local/.next/server/app/folders/page_client-reference-manifest.js +1 -1
  102. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.html +2 -2
  103. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.rsc +3 -3
  104. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/_full.segment.rsc +3 -3
  105. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/_head.segment.rsc +1 -1
  106. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/_index.segment.rsc +2 -2
  107. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/_tree.segment.rsc +2 -2
  108. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/folders/__PAGE__.segment.rsc +2 -2
  109. package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/folders.segment.rsc +1 -1
  110. package/cloud-runtime/standalone/apps/local/.next/server/app/index.html +2 -2
  111. package/cloud-runtime/standalone/apps/local/.next/server/app/index.rsc +3 -3
  112. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  113. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_full.segment.rsc +3 -3
  114. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_head.segment.rsc +1 -1
  115. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_index.segment.rsc +2 -2
  116. package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  117. package/cloud-runtime/standalone/apps/local/.next/server/app/page.js.nft.json +1 -1
  118. package/cloud-runtime/standalone/apps/local/.next/server/app/page_client-reference-manifest.js +1 -1
  119. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page/react-loadable-manifest.json +1 -1
  120. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page.js.nft.json +1 -1
  121. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page_client-reference-manifest.js +1 -1
  122. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page.js.nft.json +1 -1
  123. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page_client-reference-manifest.js +1 -1
  124. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page.js.nft.json +1 -1
  125. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page_client-reference-manifest.js +1 -1
  126. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page.js.nft.json +1 -1
  127. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page_client-reference-manifest.js +1 -1
  128. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/knowledge/page.js.nft.json +1 -1
  129. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/knowledge/page_client-reference-manifest.js +1 -1
  130. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/linear/page/react-loadable-manifest.json +1 -1
  131. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/linear/page.js.nft.json +1 -1
  132. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/linear/page_client-reference-manifest.js +1 -1
  133. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page.js.nft.json +1 -1
  134. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page_client-reference-manifest.js +1 -1
  135. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page.js.nft.json +1 -1
  136. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page_client-reference-manifest.js +1 -1
  137. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page.js.nft.json +1 -1
  138. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
  139. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/settings/page.js.nft.json +1 -1
  140. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/settings/page_client-reference-manifest.js +1 -1
  141. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page.js.nft.json +1 -1
  142. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page_client-reference-manifest.js +1 -1
  143. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page.js.nft.json +1 -1
  144. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page_client-reference-manifest.js +1 -1
  145. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page.js.nft.json +1 -1
  146. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page_client-reference-manifest.js +1 -1
  147. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page.js.nft.json +1 -1
  148. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page_client-reference-manifest.js +1 -1
  149. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page.js.nft.json +1 -1
  150. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page_client-reference-manifest.js +1 -1
  151. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page.js.nft.json +1 -1
  152. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page_client-reference-manifest.js +1 -1
  153. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page.js.nft.json +1 -1
  154. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page_client-reference-manifest.js +1 -1
  155. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page.js.nft.json +1 -1
  156. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page_client-reference-manifest.js +1 -1
  157. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans/page_client-reference-manifest.js +1 -1
  158. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.html +2 -2
  159. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.rsc +2 -2
  160. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/_full.segment.rsc +2 -2
  161. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/_head.segment.rsc +1 -1
  162. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/_index.segment.rsc +2 -2
  163. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/_tree.segment.rsc +2 -2
  164. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/projects/orphans/__PAGE__.segment.rsc +1 -1
  165. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/projects/orphans.segment.rsc +1 -1
  166. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/projects.segment.rsc +1 -1
  167. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/page.js.nft.json +1 -1
  168. package/cloud-runtime/standalone/apps/local/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  169. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.html +2 -2
  170. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.rsc +3 -3
  171. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_full.segment.rsc +3 -3
  172. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_head.segment.rsc +1 -1
  173. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_index.segment.rsc +2 -2
  174. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
  175. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +2 -2
  176. package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/projects.segment.rsc +1 -1
  177. package/cloud-runtime/standalone/apps/local/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  178. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.html +2 -2
  179. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.rsc +2 -2
  180. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/_full.segment.rsc +2 -2
  181. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  182. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/_index.segment.rsc +2 -2
  183. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  184. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +1 -1
  185. package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/settings.segment.rsc +1 -1
  186. package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page.js.nft.json +1 -1
  187. package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  188. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.html +2 -2
  189. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.rsc +4 -3
  190. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_full.segment.rsc +4 -3
  191. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_head.segment.rsc +1 -1
  192. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_index.segment.rsc +2 -2
  193. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_tree.segment.rsc +3 -2
  194. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/setup/__PAGE__.segment.rsc +3 -2
  195. package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/setup.segment.rsc +1 -1
  196. package/cloud-runtime/standalone/apps/local/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  197. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.html +2 -2
  198. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.rsc +2 -2
  199. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/_full.segment.rsc +2 -2
  200. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/_head.segment.rsc +1 -1
  201. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/_index.segment.rsc +2 -2
  202. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/_tree.segment.rsc +2 -2
  203. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/skills/__PAGE__.segment.rsc +1 -1
  204. package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/skills.segment.rsc +1 -1
  205. package/cloud-runtime/standalone/apps/local/.next/server/app/status/page.js.nft.json +1 -1
  206. package/cloud-runtime/standalone/apps/local/.next/server/app/status/page_client-reference-manifest.js +1 -1
  207. package/cloud-runtime/standalone/apps/local/.next/server/app/status.html +2 -2
  208. package/cloud-runtime/standalone/apps/local/.next/server/app/status.rsc +3 -3
  209. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_full.segment.rsc +3 -3
  210. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_head.segment.rsc +1 -1
  211. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_index.segment.rsc +2 -2
  212. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_tree.segment.rsc +2 -2
  213. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/status/__PAGE__.segment.rsc +2 -2
  214. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/status.segment.rsc +1 -1
  215. package/cloud-runtime/standalone/apps/local/.next/server/app/thread/[id]/page.js.nft.json +1 -1
  216. package/cloud-runtime/standalone/apps/local/.next/server/app/thread/[id]/page_client-reference-manifest.js +1 -1
  217. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0-zk9w8._.js +7 -2
  218. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0.01bfe._.js +13 -8
  219. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__00c~p6z._.js +7 -2
  220. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__019dflu._.js +7 -2
  221. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__02t.3rm._.js +4 -4
  222. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__06zr0ph._.js +6 -1
  223. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__07d._0s._.js +15 -10
  224. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__08xj~a3._.js +1 -1
  225. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0a0cq38._.js +34 -3
  226. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0asvfdo._.js +35 -4
  227. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0bt7ejs._.js +7 -2
  228. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0f.~98d._.js +7 -2
  229. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0g-~-.q._.js +6 -1
  230. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0g7p6pw._.js +1 -1
  231. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0gj~dap._.js +40 -9
  232. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0hkcw03._.js +8 -3
  233. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0hyu3en._.js +7 -2
  234. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0i5aw03._.js +7 -2
  235. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0ke4z91._.js +7 -2
  236. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0l53ok5._.js +41 -10
  237. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0ll-~cx._.js +7 -2
  238. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0mh6p.0._.js +7 -2
  239. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0nc-lbr._.js +1 -1
  240. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0p9rl6.._.js +8 -3
  241. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0q~pnp0._.js +6 -6
  242. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0ue0bu5._.js +6 -1
  243. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0unwwyx._.js +12 -7
  244. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0vtkl3q._.js +4 -4
  245. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0x6w64i._.js +1 -1
  246. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0z82z0-._.js +6 -1
  247. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0zrv3p3._.js +16 -11
  248. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0~iknwz._.js +12 -7
  249. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__10d.dhd._.js +46 -15
  250. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__10sw5ia._.js +4 -4
  251. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__11yx.ud._.js +33 -2
  252. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__13-nlgu._.js +5 -5
  253. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__13960a8._.js +14 -9
  254. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_06qet8g._.js +14 -9
  255. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0_0m2ly._.js +4 -4
  256. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0a15wtk._.js +4 -4
  257. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0fr1qq6._.js +1 -1
  258. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0g.q2r6._.js +6 -1
  259. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0i7fs.i._.js +4 -4
  260. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_01pvj2g._.js +1 -1
  261. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_agent-participants_ts_0cq15u5._.js +1 -1
  262. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_db_ts_0twf-w5._.js +1 -1
  263. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_orchestrator_chat-processor_ts_0c2l_oh._.js +43 -12
  264. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_sqlite-query-adapter_ts_0l95hik._.js +15 -15
  265. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_sqlite-query-adapter_ts_0s5xprd._.js +1 -1
  266. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_graph_082u-ls._.js +19 -14
  267. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_graph_schedule-runner_ts_07-ozf_._.js +2 -2
  268. package/cloud-runtime/standalone/apps/local/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0_l0fpi.js +1 -1
  269. package/cloud-runtime/standalone/apps/local/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0gips_c.js +1 -1
  270. package/cloud-runtime/standalone/apps/local/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0rszt9p.js +10 -6
  271. package/cloud-runtime/standalone/apps/local/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0u_5kfo.js +1 -1
  272. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/0rhn_lucide-react_dist_esm_06fnblz._.js +3 -0
  273. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__039h7r.._.js +18 -0
  274. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0lno3km._.js +3 -0
  275. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{[root-of-the-server]__0fl7_-o._.js → [root-of-the-server]__0nqqk26._.js} +2 -2
  276. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{[root-of-the-server]__0j9m72.._.js → [root-of-the-server]__0tqn-o5._.js} +2 -2
  277. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0~nm7b6._.js +3 -0
  278. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0140-84._.js +3 -0
  279. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_03fckp4._.js +3 -0
  280. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{_064h43p._.js → _05xj_bp._.js} +2 -2
  281. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{_0tcjapj._.js → _0ip6k6n._.js} +2 -2
  282. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0jensz1._.js +3 -0
  283. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0t0p8q5._.js +3 -0
  284. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0yeuuy1._.js +1 -23
  285. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_03z24q2._.js +1 -1
  286. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{apps_local_0nvzo3y._.js → apps_local_04dh2yh._.js} +2 -2
  287. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0_ac-.f._.js +3 -3
  288. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0a-8i4p._.js +1 -1
  289. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0k4~c1x._.js +1 -1
  290. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0ld1uug._.js +1 -1
  291. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0ms1d6i._.js +4 -0
  292. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0p_v0ri._.js +1 -1
  293. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0x.xj52._.js +3 -0
  294. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0~g2ijr._.js +1 -1
  295. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_11k_-8~._.js +3 -3
  296. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_agents_[id]_page_tsx_06n47n~._.js +1 -1
  297. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_agents_page_tsx_078reb_._.js +1 -1
  298. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_layout_tsx_0aaa3~t._.js +1 -1
  299. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_linear_page_tsx_0a~n5y8._.js +25 -3
  300. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_page_tsx_0kcaeqi._.js +1 -1
  301. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_teams_[teamId]_agents_[agentId]_page_tsx_0wm~_~t._.js +1 -1
  302. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_teams_[teamId]_page_tsx_0iyozfl._.js +1 -1
  303. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_teams_new_page_tsx_0yqd0a5._.js +1 -1
  304. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_terminal_page_tsx_01n9qk.._.js +1 -20
  305. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_setup_page_tsx_0ql2qmr._.js +1 -1
  306. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_PromptJobBoard_tsx_06zob36._.js +2 -2
  307. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_chat-ui_ChatContainer_tsx_0c9fjtl._.js +1 -1
  308. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_projects_ProjectObjectivesWorkspace_tsx_0k4tfip._.js +1 -1
  309. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_terminal_TerminalPane_tsx_0l17vs_._.js +22 -0
  310. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_thread_WorkspaceSidebar_tsx_0unv2xp._.js +1 -1
  311. package/cloud-runtime/standalone/apps/local/.next/server/middleware-build-manifest.js +3 -3
  312. package/cloud-runtime/standalone/apps/local/.next/server/middleware-manifest.json +5 -5
  313. package/cloud-runtime/standalone/apps/local/.next/server/pages/404.html +2 -2
  314. package/cloud-runtime/standalone/apps/local/.next/server/pages/500.html +1 -1
  315. package/cloud-runtime/standalone/apps/local/.next/server/server-reference-manifest.js +1 -1
  316. package/cloud-runtime/standalone/apps/local/.next/server/server-reference-manifest.json +1 -1
  317. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0e307b-0c2jbx.js → 0-cets4_axpvm.js} +1 -1
  318. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{1011~1x9nj4ny.js → 0-k2m1ncx7hwx.js} +1 -1
  319. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0dnw31436wd~..js → 0-pkmgle2s8u8.js} +1 -1
  320. package/cloud-runtime/standalone/apps/local/.next/static/chunks/064jfmraty.9h.js +1 -0
  321. package/cloud-runtime/standalone/apps/local/.next/static/chunks/06kru5m9q~r.j.js +1 -0
  322. package/cloud-runtime/standalone/apps/local/.next/static/chunks/06kyg1q0bcz6p.js +5 -0
  323. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{119v0-idpg-cv.js → 08bdyjcnamzep.js} +1 -1
  324. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0-olq~7zw3wjy.js → 08xq~uyr6.eqw.js} +1 -1
  325. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0gj98094p~zn4.js → 0cku81z~3oe6..js} +1 -1
  326. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0e7jhy0-52_4k.js +1 -0
  327. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0wh6p5~ft5rma.js → 0htc.sqrk_0.c.js} +1 -1
  328. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0ju4xmxwqddw6.js +1 -0
  329. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0kn66yvx08813.css +1 -0
  330. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{07646a0h94826.js → 0l89kxqcf86on.js} +2 -2
  331. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0mm978wb-ueg-.js +6 -0
  332. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0musu8f.4wvxz.js +1 -0
  333. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0bchtyu6m.2yv.js → 0muti0yiyhu0t.js} +1 -1
  334. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0rhps884e-bzu.js +1 -0
  335. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0rr3fvwc5ind~.js +5 -0
  336. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0sbkkjowkksa6.js +1 -0
  337. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0sjz0.o9_33qy.js +1 -0
  338. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0srzmg8ivve1g.css +1 -0
  339. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0fonouj2i9qnb.js → 0swo3_e8.4s7j.js} +2 -2
  340. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0sysrf3~l~r35.js +1 -0
  341. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0t69h-kc701fn.js +1 -0
  342. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0v67lnh..wj4z.js +1 -0
  343. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{013gtut17~fne.js → 0wb45ol1xrqe~.js} +1 -23
  344. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{00po4v2x~0x_z.js → 0wiw2v8gm-k_-.js} +1 -1
  345. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0tt1oh112yv-l.js → 0wopevh0s7.8c.js} +1 -1
  346. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0xm2~gxlt1npd.js +1 -0
  347. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{1503vb7lb6.g1.js → 0ya124ushze_f.js} +4 -4
  348. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0zt2o58c5gytn.js +16 -0
  349. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0~idsggr8vqf5.js +59 -0
  350. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0stvi5btlxl4m.js → 0~mcfx41q4znh.js} +3 -3
  351. package/cloud-runtime/standalone/apps/local/.next/static/chunks/116j4mjz~y42t.js +1 -0
  352. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0-vo_x2cxmjm3.js → 12b62py0mq1gm.js} +4 -4
  353. package/cloud-runtime/standalone/apps/local/.next/static/chunks/12y5i0lh6s73o.js +1 -0
  354. package/cloud-runtime/standalone/apps/local/.next/static/chunks/148.mt80civoz.js +20 -0
  355. package/cloud-runtime/standalone/apps/local/.next/static/chunks/14m5d270euu_s.js +1 -0
  356. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0-_ukhpeg429c.js → 16h9208kl5~xa.js} +1 -1
  357. package/cloud-runtime/standalone/apps/local/app/agents/[id]/page.tsx +6 -3
  358. package/cloud-runtime/standalone/apps/local/app/agents/page.tsx +3 -3
  359. package/cloud-runtime/standalone/apps/local/app/api/chat/route.ts +7 -1
  360. package/cloud-runtime/standalone/apps/local/app/api/participants/route.ts +9 -9
  361. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/search/route.ts +6 -6
  362. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/teams/route.ts +3 -3
  363. package/cloud-runtime/standalone/apps/local/app/api/prompt-jobs/agents/route.ts +1 -1
  364. package/cloud-runtime/standalone/apps/local/app/api/schedules/poll/route.ts +11 -2
  365. package/cloud-runtime/standalone/apps/local/app/page.tsx +72 -14
  366. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/layout.tsx +1 -1
  367. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/page.tsx +34 -1
  368. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page.tsx +6 -3
  369. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/teams/[teamId]/page.tsx +6 -3
  370. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/teams/new/page.tsx +8 -17
  371. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/teams/replace/page.tsx +1 -1
  372. package/cloud-runtime/standalone/apps/local/app/projects/page.tsx +7 -0
  373. package/cloud-runtime/standalone/apps/local/app/setup/page.tsx +1 -38
  374. package/cloud-runtime/standalone/apps/local/components/AutomationsBoard.tsx +8 -4
  375. package/cloud-runtime/standalone/apps/local/components/EmptyStateCard.tsx +37 -0
  376. package/cloud-runtime/standalone/apps/local/components/LinearBoard.tsx +103 -770
  377. package/cloud-runtime/standalone/apps/local/components/PromptJobBoard.tsx +8 -39
  378. package/cloud-runtime/standalone/apps/local/components/TeamPickerModal.tsx +3 -3
  379. package/cloud-runtime/standalone/apps/local/components/chat-ui/Composer.tsx +28 -32
  380. package/cloud-runtime/standalone/apps/local/components/chat-ui/ParticipantBar.tsx +24 -39
  381. package/cloud-runtime/standalone/apps/local/components/linear/LinearBoardFilters.tsx +343 -0
  382. package/cloud-runtime/standalone/apps/local/components/linear/LinearSettingsModal.tsx +9 -3
  383. package/cloud-runtime/standalone/apps/local/components/linear/LinearWorkerConfig.tsx +65 -30
  384. package/cloud-runtime/standalone/apps/local/components/linear/LinearWorkerRunLog.tsx +190 -0
  385. package/cloud-runtime/standalone/apps/local/components/linear/TicketRow.tsx +158 -0
  386. package/cloud-runtime/standalone/apps/local/components/projects/ObjectiveHealthTrend.tsx +45 -61
  387. package/cloud-runtime/standalone/apps/local/components/projects/ObjectiveScheduledTasksPanel.tsx +38 -34
  388. package/cloud-runtime/standalone/apps/local/components/projects/RecentlyCompletedCard.tsx +0 -16
  389. package/cloud-runtime/standalone/apps/local/components/projects/ReplaceAgentsModal.tsx +2 -2
  390. package/cloud-runtime/standalone/apps/local/components/setup/McpSetupStep.tsx +155 -120
  391. package/cloud-runtime/standalone/apps/local/components/setup/ProviderStep.tsx +85 -88
  392. package/cloud-runtime/standalone/apps/local/components/setup/SetupLayout.tsx +6 -4
  393. package/cloud-runtime/standalone/apps/local/components/terminal/ProjectTerminal.tsx +18 -193
  394. package/cloud-runtime/standalone/apps/local/components/terminal/TerminalPane.tsx +40 -4
  395. package/cloud-runtime/standalone/apps/local/components/thread/WorkspaceSidebar.tsx +121 -20
  396. package/cloud-runtime/standalone/apps/local/components/ui/ResizeHandle.tsx +52 -0
  397. package/cloud-runtime/standalone/apps/local/hooks/useAutomations.ts +8 -3
  398. package/cloud-runtime/standalone/apps/local/hooks/useLinearActiveAgents.ts +38 -0
  399. package/cloud-runtime/standalone/apps/local/hooks/useLinearParticipants.ts +118 -0
  400. package/cloud-runtime/standalone/apps/local/hooks/usePromptJobs.ts +5 -3
  401. package/cloud-runtime/standalone/apps/local/hooks/useSetupFlow.ts +6 -81
  402. package/cloud-runtime/standalone/apps/local/lib/agent-participants.ts +1 -1
  403. package/cloud-runtime/standalone/apps/local/lib/agent-process-registry.ts +34 -0
  404. package/cloud-runtime/standalone/apps/local/lib/db.ts +5 -5
  405. package/cloud-runtime/standalone/apps/local/lib/linear-board-utils.ts +9 -0
  406. package/cloud-runtime/standalone/apps/local/lib/linear-run-status.ts +88 -0
  407. package/cloud-runtime/standalone/apps/local/lib/linear-run-store.ts +4 -4
  408. package/cloud-runtime/standalone/apps/local/lib/sqlite-query-adapter.ts +5 -1
  409. package/cloud-runtime/standalone/apps/local/lib/team-catalog.ts +60 -60
  410. package/cloud-runtime/standalone/apps/local/lib/types.ts +1 -1
  411. package/cloud-runtime/standalone/apps/local/migrations/sqlite_schema.sql +1 -1
  412. package/cloud-runtime/standalone/apps/local/skills-lock.json +5 -0
  413. package/cloud-runtime/standalone/apps/local/src/graph/schedule-runner.ts +26 -1
  414. package/cloud-runtime/standalone/apps/local/src/graph/store.ts +13 -0
  415. package/cloud-runtime/standalone/apps/local/state/linearBoardPins.ts +45 -0
  416. package/cloud-runtime/standalone/apps/local/styles/workspaceSidebar.css +71 -2
  417. package/cloud-runtime/standalone/apps/local/worker/index.js +56 -4
  418. package/lib/cli/onboarding.js +8 -5
  419. package/package.json +1 -1
  420. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/0rhn_lucide-react_dist_esm_0tvwux2._.js +0 -3
  421. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__006vr7.._.js +0 -3
  422. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0d18x53._.js +0 -18
  423. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0z7nw_r._.js +0 -3
  424. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_00trrg8._.js +0 -3
  425. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0ejzn1e._.js +0 -3
  426. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0sjchy6._.js +0 -3
  427. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0w4gpvr._.js +0 -3
  428. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0x6hh0t._.js +0 -4
  429. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0t6p.qm._.js +0 -3
  430. package/cloud-runtime/standalone/apps/local/.next/static/chunks/014z_yruiincl.js +0 -1
  431. package/cloud-runtime/standalone/apps/local/.next/static/chunks/041-dhls9zkl1.js +0 -1
  432. package/cloud-runtime/standalone/apps/local/.next/static/chunks/04yoml2rqnuot.js +0 -16
  433. package/cloud-runtime/standalone/apps/local/.next/static/chunks/069yt_7prdxsp.js +0 -1
  434. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0_mrpyqcoyb_5.js +0 -1
  435. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0edewt9l~cs~k.css +0 -1
  436. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0f7i3ae1ynhf3.css +0 -1
  437. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0j-nhn61e~nnj.js +0 -1
  438. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0jrkacz_dyem6.js +0 -37
  439. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0l3v45kd.9is_.js +0 -1
  440. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0p-rdas54yo~w.js +0 -1
  441. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0pdrpsy-zdxp0.js +0 -5
  442. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0p~l5ap6qqx2o.js +0 -1
  443. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0r0c9y6.8.m5p.js +0 -1
  444. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0tm20~ec~occu.js +0 -1
  445. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0uve8xrt~0a2e.js +0 -1
  446. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0w94x-v00osq0.js +0 -1
  447. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0xwny92a.ad_i.js +0 -1
  448. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0zw85-xl9ysjs.js +0 -1
  449. package/cloud-runtime/standalone/apps/local/.next/static/chunks/11l2tww5f0hsk.js +0 -20
  450. package/cloud-runtime/standalone/apps/local/.next/static/chunks/12qohmk-~yrtg.js +0 -1
  451. package/cloud-runtime/standalone/apps/local/.next/static/chunks/14v~9vx3tdv85.js +0 -1
  452. package/cloud-runtime/standalone/apps/local/.next/static/chunks/16d~es6h6k~rj.js +0 -6
  453. package/cloud-runtime/standalone/apps/local/components/setup/ProjectStep.tsx +0 -189
  454. package/cloud-runtime/standalone/apps/local/components/setup/TeamsStep.tsx +0 -500
  455. /package/cloud-runtime/standalone/apps/local/.next/static/{RnYHmEXBwXJjVrVVx2CuP → ROMPfjQqFXqGHmbybq1eC}/_buildManifest.js +0 -0
  456. /package/cloud-runtime/standalone/apps/local/.next/static/{RnYHmEXBwXJjVrVVx2CuP → ROMPfjQqFXqGHmbybq1eC}/_clientMiddlewareManifest.js +0 -0
  457. /package/cloud-runtime/standalone/apps/local/.next/static/{RnYHmEXBwXJjVrVVx2CuP → ROMPfjQqFXqGHmbybq1eC}/_ssgManifest.js +0 -0
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
 
3
- import { useEffect, useRef, useState, type PointerEvent as ReactPointerEvent } from "react";
3
+ import { useEffect, useRef, useState } from "react";
4
4
  import { useParams } from "next/navigation";
5
5
  import { useInputCapabilities } from "@/hooks/useInputCapabilities";
6
6
  import { useTerminalTabsStore } from "@/state/terminalTabs";
@@ -11,13 +11,9 @@ import {
11
11
  type TerminalInstance,
12
12
  type TerminalStatus,
13
13
  } from "@/lib/terminal-types";
14
- import { MoveDiagonal, Pencil, Plus, Terminal, X } from "lucide-react";
14
+ import { Pencil, Plus, Terminal, X } from "lucide-react";
15
15
 
16
- const GRID_GAP_PX = 12;
17
- const GRID_DESKTOP_BREAKPOINT_PX = 960;
18
- const GRID_MAX_ROW_SPAN = 4;
19
- const GRID_MIN_ROW_HEIGHT_PX = 320;
20
- const GRID_MAX_ROW_HEIGHT_PX = 520;
16
+ const GRID_MIN_TERMINAL_WIDTH_PX = 480;
21
17
 
22
18
  const DEFAULT_PROJECT_KEY = "__global__";
23
19
 
@@ -26,20 +22,6 @@ type EditingTerminal = {
26
22
  terminalId: string;
27
23
  };
28
24
 
29
- type ResizeState = {
30
- sessionId: string;
31
- terminalId: string;
32
- startX: number;
33
- startY: number;
34
- startColSpan: number;
35
- startRowSpan: number;
36
- containerWidth: number;
37
- columns: number;
38
- rowHeight: number;
39
- };
40
-
41
- type TerminalLayoutMode = "single" | "split" | "grid";
42
-
43
25
  export default function ProjectTerminal() {
44
26
  const params = useParams<{ slug?: string }>();
45
27
  const projectId = params?.slug ?? DEFAULT_PROJECT_KEY;
@@ -52,35 +34,17 @@ export default function ProjectTerminal() {
52
34
  const addTerminal = useTerminalTabsStore((s) => s.addTerminal);
53
35
  const closeTerminal = useTerminalTabsStore((s) => s.closeTerminal);
54
36
  const renameTerminal = useTerminalTabsStore((s) => s.renameTerminal);
55
- const updateTerminalLayout = useTerminalTabsStore((s) => s.updateTerminalLayout);
56
37
  const setTerminalSessionId = useTerminalTabsStore((s) => s.setTerminalSessionId);
57
38
  const updateTerminalStatus = useTerminalTabsStore((s) => s.updateTerminalStatus);
58
39
 
59
40
  const { getSelection, replaceSelection } = useUrlSelection();
60
41
  const selectedId = getSelection("session");
61
42
  const gridRef = useRef<HTMLDivElement>(null);
62
- const [gridColumns, setGridColumns] = useState(2);
63
- const [gridRowHeight, setGridRowHeight] = useState(420);
64
43
  const [editingTerminal, setEditingTerminal] = useState<EditingTerminal | null>(null);
65
44
  const [editingTitle, setEditingTitle] = useState("");
66
- const [resizeState, setResizeState] = useState<ResizeState | null>(null);
67
45
  const [touchSessionListOpen, setTouchSessionListOpen] = useState(false);
68
46
  const [touchActiveTerminalId, setTouchActiveTerminalId] = useState<string | null>(null);
69
47
 
70
- function clamp(value: number, min: number, max: number): number {
71
- return Math.max(min, Math.min(max, value));
72
- }
73
-
74
- function getGridMetrics(width: number) {
75
- const columns = width >= GRID_DESKTOP_BREAKPOINT_PX ? 2 : 1;
76
- const columnWidth = (width - GRID_GAP_PX * (columns - 1)) / columns;
77
- const rowHeight = Math.round(
78
- clamp(columnWidth, GRID_MIN_ROW_HEIGHT_PX, GRID_MAX_ROW_HEIGHT_PX),
79
- );
80
-
81
- return { columns, rowHeight };
82
- }
83
-
84
48
  // Auto-create first session if none exist
85
49
  useEffect(() => {
86
50
  if (sessions.length === 0) {
@@ -122,82 +86,6 @@ export default function ProjectTerminal() {
122
86
  });
123
87
  }, [isTouchLayout, selectedSession]);
124
88
 
125
- useEffect(() => {
126
- const grid = gridRef.current;
127
- if (!grid) return;
128
-
129
- const observer = new ResizeObserver((entries) => {
130
- const width = entries[0]?.contentRect.width ?? grid.clientWidth;
131
- const { columns, rowHeight } = getGridMetrics(width);
132
- setGridColumns(columns);
133
- setGridRowHeight(rowHeight);
134
- });
135
-
136
- observer.observe(grid);
137
- return () => observer.disconnect();
138
- }, [selectedSession?.id]);
139
-
140
- useEffect(() => {
141
- if (!resizeState) {
142
- return;
143
- }
144
-
145
- const previousCursor = document.body.style.cursor;
146
- const previousUserSelect = document.body.style.userSelect;
147
- document.body.style.cursor = "nwse-resize";
148
- document.body.style.userSelect = "none";
149
-
150
- const onPointerMove = (event: PointerEvent) => {
151
- const deltaX = event.clientX - resizeState.startX;
152
- const deltaY = event.clientY - resizeState.startY;
153
- const columns = Math.max(resizeState.columns, 1);
154
- const columnWidth =
155
- (resizeState.containerWidth - GRID_GAP_PX * (columns - 1)) / columns;
156
- const startWidth =
157
- columnWidth * resizeState.startColSpan +
158
- GRID_GAP_PX * (resizeState.startColSpan - 1);
159
- const startHeight =
160
- resizeState.rowHeight * resizeState.startRowSpan +
161
- GRID_GAP_PX * (resizeState.startRowSpan - 1);
162
- const nextColSpan =
163
- columns === 1
164
- ? 1
165
- : Math.max(
166
- 1,
167
- Math.min(
168
- columns,
169
- Math.round((startWidth + deltaX + GRID_GAP_PX) / (columnWidth + GRID_GAP_PX)),
170
- ),
171
- );
172
- const nextRowSpan = Math.max(
173
- 1,
174
- Math.min(
175
- GRID_MAX_ROW_SPAN,
176
- Math.round((startHeight + deltaY + GRID_GAP_PX) / (resizeState.rowHeight + GRID_GAP_PX)),
177
- ),
178
- );
179
-
180
- updateTerminalLayout(projectId, resizeState.sessionId, resizeState.terminalId, {
181
- colSpan: nextColSpan,
182
- rowSpan: nextRowSpan,
183
- });
184
- };
185
-
186
- const onPointerUp = () => {
187
- setResizeState(null);
188
- };
189
-
190
- window.addEventListener("pointermove", onPointerMove);
191
- window.addEventListener("pointerup", onPointerUp, { once: true });
192
-
193
- return () => {
194
- document.body.style.cursor = previousCursor;
195
- document.body.style.userSelect = previousUserSelect;
196
- window.removeEventListener("pointermove", onPointerMove);
197
- window.removeEventListener("pointerup", onPointerUp);
198
- };
199
- }, [resizeState, updateTerminalLayout, projectId]);
200
-
201
89
  function handleCreate() {
202
90
  const id = createSession(projectId);
203
91
  replaceSelection({ session: id });
@@ -271,56 +159,21 @@ export default function ProjectTerminal() {
271
159
  return "bg-zinc-500";
272
160
  }
273
161
 
274
- function handleResizeStart(
275
- sessionId: string,
276
- terminal: TerminalInstance,
277
- event: ReactPointerEvent<HTMLButtonElement>,
278
- ) {
279
- event.preventDefault();
280
- event.stopPropagation();
281
-
282
- const containerWidth = gridRef.current?.getBoundingClientRect().width;
283
- if (!containerWidth) return;
284
- const { columns, rowHeight } = getGridMetrics(containerWidth);
285
-
286
- setResizeState({
287
- sessionId,
288
- terminalId: terminal.id,
289
- startX: event.clientX,
290
- startY: event.clientY,
291
- startColSpan: Math.min(terminal.colSpan, columns),
292
- startRowSpan: terminal.rowSpan,
293
- containerWidth,
294
- columns,
295
- rowHeight,
296
- });
297
- }
298
-
299
162
  function renderTerminalCard(
300
163
  sessionId: string,
301
164
  terminal: TerminalInstance,
302
- total: number,
303
- layoutMode: TerminalLayoutMode,
165
+ isSingle: boolean,
304
166
  ) {
305
167
  const isEditing =
306
168
  editingTerminal?.sessionId === sessionId &&
307
169
  editingTerminal.terminalId === terminal.id;
308
- const effectiveColSpan = Math.min(terminal.colSpan, gridColumns);
309
170
 
310
171
  return (
311
172
  <div
312
173
  key={terminal.id}
313
174
  className={`relative flex min-h-0 flex-col overflow-hidden rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-pane)] ${
314
- layoutMode === "grid" ? "min-h-[280px]" : "h-full"
175
+ isSingle ? "h-full" : "min-h-[320px]"
315
176
  }`}
316
- style={
317
- layoutMode === "grid"
318
- ? {
319
- gridColumn: `span ${effectiveColSpan} / span ${effectiveColSpan}`,
320
- gridRow: `span ${terminal.rowSpan} / span ${terminal.rowSpan}`,
321
- }
322
- : undefined
323
- }
324
177
  >
325
178
  <div className="flex items-center justify-between border-b border-[var(--app-shell-border)] px-3 py-2">
326
179
  <div className="flex min-w-0 items-center gap-2">
@@ -344,7 +197,10 @@ export default function ProjectTerminal() {
344
197
  autoFocus
345
198
  />
346
199
  ) : (
347
- <div className="truncate text-sm font-medium text-[var(--foreground)]">
200
+ <div
201
+ className="truncate text-sm font-medium text-[var(--foreground)] cursor-text"
202
+ onDoubleClick={() => handleStartRenameTerminal(sessionId, terminal)}
203
+ >
348
204
  {terminal.title}
349
205
  </div>
350
206
  )}
@@ -364,7 +220,7 @@ export default function ProjectTerminal() {
364
220
  <Pencil size={13} />
365
221
  </button>
366
222
 
367
- {total > 1 ? (
223
+ {!isSingle ? (
368
224
  <button
369
225
  type="button"
370
226
  onClick={() => handleCloseTerminal(sessionId, terminal.id)}
@@ -390,16 +246,6 @@ export default function ProjectTerminal() {
390
246
  />
391
247
  </div>
392
248
 
393
- {layoutMode === "grid" ? (
394
- <button
395
- type="button"
396
- onPointerDown={(event) => handleResizeStart(sessionId, terminal, event)}
397
- className="absolute bottom-2 right-2 rounded p-1 text-[var(--muted-foreground)]/80 transition-colors hover:bg-[var(--muted)]/20 hover:text-[var(--foreground)]"
398
- aria-label={`Resize ${terminal.title}`}
399
- >
400
- <MoveDiagonal size={14} />
401
- </button>
402
- ) : null}
403
249
  </div>
404
250
  );
405
251
  }
@@ -500,8 +346,7 @@ export default function ProjectTerminal() {
500
346
  return renderTerminalCard(
501
347
  selectedSession.id,
502
348
  terminal,
503
- selectedSession.terminals.length,
504
- "single",
349
+ true,
505
350
  );
506
351
  })()}
507
352
  </div>
@@ -553,44 +398,24 @@ export default function ProjectTerminal() {
553
398
  </div>
554
399
 
555
400
  {(() => {
556
- const terminalCount = selectedSession.terminals.length;
557
- const layoutMode: TerminalLayoutMode =
558
- terminalCount === 1
559
- ? "single"
560
- : terminalCount === 2
561
- ? "split"
562
- : "grid";
401
+ const isSingle = selectedSession.terminals.length === 1;
563
402
 
564
403
  return (
565
- <div
566
- className={`min-h-0 flex-1 p-3 ${
567
- layoutMode === "grid" ? "overflow-auto" : "overflow-hidden"
568
- }`}
569
- >
404
+ <div className={`min-h-0 flex-1 p-3 ${isSingle ? "overflow-hidden" : "overflow-auto"}`}>
570
405
  <div
571
406
  ref={gridRef}
572
- className={`grid gap-3 ${
573
- layoutMode === "single" ? "h-full grid-cols-1" : ""
574
- } ${
575
- layoutMode === "split" ? "h-full grid-cols-2" : ""
576
- }`}
407
+ className="grid gap-3"
577
408
  style={
578
- layoutMode === "grid"
579
- ? {
580
- gridTemplateColumns: `repeat(${gridColumns}, minmax(0, 1fr))`,
581
- gridAutoRows: `${gridRowHeight}px`,
582
- }
583
- : {
584
- gridTemplateRows: "minmax(0, 1fr)",
585
- }
409
+ isSingle
410
+ ? { gridTemplateColumns: "1fr", gridTemplateRows: "minmax(0, 1fr)", height: "100%" }
411
+ : { gridTemplateColumns: `repeat(auto-fit, minmax(${GRID_MIN_TERMINAL_WIDTH_PX}px, 1fr))` }
586
412
  }
587
413
  >
588
414
  {selectedSession.terminals.map((terminal) =>
589
415
  renderTerminalCard(
590
416
  selectedSession.id,
591
417
  terminal,
592
- selectedSession.terminals.length,
593
- layoutMode,
418
+ isSingle,
594
419
  ),
595
420
  )}
596
421
  </div>
@@ -1,11 +1,20 @@
1
1
  "use client";
2
2
 
3
- import { useEffect, useRef, useCallback } from "react";
3
+ import { useEffect, useRef, useCallback, forwardRef, useImperativeHandle } from "react";
4
4
  import { Terminal } from "@xterm/xterm";
5
5
  import { FitAddon } from "@xterm/addon-fit";
6
6
  import type { TerminalStatus } from "@/lib/terminal-types";
7
7
  import "@xterm/xterm/css/xterm.css";
8
8
 
9
+ export interface TerminalPaneHandle {
10
+ /** Send raw input bytes to the PTY (e.g. "\x03" for Ctrl+C) */
11
+ sendInput: (data: string) => void;
12
+ /** Clear the xterm screen */
13
+ clear: () => void;
14
+ /** Ctrl+C ×2 → wait 400 ms → clear → send command\r (same pattern as EmbeddedTerminal) */
15
+ sendCommand: (command: string) => void;
16
+ }
17
+
9
18
  interface TerminalPaneProps {
10
19
  sessionId?: string;
11
20
  tabId: string;
@@ -14,12 +23,12 @@ interface TerminalPaneProps {
14
23
  onStatusChange?: (status: TerminalStatus) => void;
15
24
  }
16
25
 
17
- export default function TerminalPane({
26
+ const TerminalPane = forwardRef<TerminalPaneHandle, TerminalPaneProps>(function TerminalPane({
18
27
  tabId,
19
28
  onTitleChange,
20
29
  onSessionReady,
21
30
  onStatusChange,
22
- }: TerminalPaneProps) {
31
+ }: TerminalPaneProps, ref) {
23
32
  const containerRef = useRef<HTMLDivElement>(null);
24
33
  const terminalRef = useRef<Terminal | null>(null);
25
34
  const fitAddonRef = useRef<FitAddon | null>(null);
@@ -42,6 +51,31 @@ export default function TerminalPane({
42
51
  [],
43
52
  );
44
53
 
54
+ const hasRunCommandRef = useRef(false);
55
+
56
+ const sendInputImperative = useCallback((data: string) => {
57
+ sendMessage({ type: "data", data });
58
+ }, [sendMessage]);
59
+
60
+ useImperativeHandle(ref, () => ({
61
+ sendInput: sendInputImperative,
62
+ clear: () => terminalRef.current?.clear(),
63
+ sendCommand: (command: string) => {
64
+ if (!hasRunCommandRef.current) {
65
+ terminalRef.current?.clear();
66
+ sendInputImperative(command + "\r");
67
+ hasRunCommandRef.current = true;
68
+ } else {
69
+ sendInputImperative("\x03");
70
+ setTimeout(() => sendInputImperative("\x03"), 100);
71
+ setTimeout(() => {
72
+ terminalRef.current?.clear();
73
+ sendInputImperative(command + "\r");
74
+ }, 400);
75
+ }
76
+ },
77
+ }), [sendInputImperative]);
78
+
45
79
  useEffect(() => {
46
80
  const container = containerRef.current;
47
81
  if (!container) return;
@@ -282,4 +316,6 @@ export default function TerminalPane({
282
316
  />
283
317
  </div>
284
318
  );
285
- }
319
+ });
320
+
321
+ export default TerminalPane;
@@ -87,6 +87,35 @@ function WorkspaceSidebarBrandLogo({ compact = false }: { compact?: boolean }) {
87
87
  );
88
88
  }
89
89
 
90
+ function RailTooltip({ label, children }: { label: string; children: React.ReactElement }) {
91
+ const ref = useRef<HTMLDivElement>(null);
92
+ const [pos, setPos] = useState<{ top: number; left: number } | null>(null);
93
+
94
+ const show = () => {
95
+ const el = (ref.current?.firstElementChild ?? ref.current) as HTMLElement | null;
96
+ if (!el) return;
97
+ const rect = el.getBoundingClientRect();
98
+ setPos({ top: rect.top + rect.height / 2, left: rect.right + 8 });
99
+ };
100
+ const hide = () => setPos(null);
101
+
102
+ return (
103
+ <div ref={ref} onMouseEnter={show} onMouseLeave={hide} style={{ display: "contents" }}>
104
+ {children}
105
+ {pos &&
106
+ createPortal(
107
+ <div
108
+ className="workspace-sidebar__rail-tooltip"
109
+ style={{ top: pos.top, left: pos.left, transform: "translateY(-50%)" }}
110
+ >
111
+ {label}
112
+ </div>,
113
+ document.body,
114
+ )}
115
+ </div>
116
+ );
117
+ }
118
+
90
119
  function ProjectDropdown({
91
120
  projects,
92
121
  activeProjectId,
@@ -127,7 +156,7 @@ function ProjectDropdown({
127
156
  }, [open]);
128
157
 
129
158
  return (
130
- <div className="px-3 pt-3 pb-2" ref={dropdownRef}>
159
+ <div className="relative px-3 pt-3 pb-2" ref={dropdownRef}>
131
160
  <button
132
161
  type="button"
133
162
  onClick={() => setOpen(!open)}
@@ -139,7 +168,7 @@ function ProjectDropdown({
139
168
  </button>
140
169
 
141
170
  {open && (
142
- <div className="mt-1 rounded-lg border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] shadow-lg overflow-hidden">
171
+ <div className="absolute left-3 right-3 z-50 mt-1 rounded-lg border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] shadow-lg overflow-hidden">
143
172
  <div className="p-2 border-b border-[var(--app-shell-border)]">
144
173
  <div className="flex items-center gap-2 rounded-md border border-[var(--app-shell-border)] bg-[var(--app-shell-subtle)] px-2 py-1.5">
145
174
  <Search size={12} className="flex-shrink-0 text-[var(--muted-foreground)]" />
@@ -695,6 +724,9 @@ export function WorkspaceSidebar({
695
724
  return null;
696
725
  }
697
726
 
727
+ const collapsedProject = nonDefaultProjects.find((p) => p.id === activeProjectId) ?? nonDefaultProjects[0];
728
+ const collapsedSlug = collapsedProject?.slug;
729
+
698
730
  return (
699
731
  <aside
700
732
  id="workspace-sidebar"
@@ -712,21 +744,90 @@ export function WorkspaceSidebar({
712
744
  <WorkspaceSidebarBrandLogo compact />
713
745
  </button>
714
746
  </div>
747
+
748
+ {collapsedSlug && (
749
+ <nav className="workspace-sidebar__collapsed-rail">
750
+ <RailTooltip label="Home">
751
+ <Link href={`/projects/${collapsedSlug}`} className={`workspace-sidebar__rail-icon${activeProjectView === "home" ? " workspace-sidebar__rail-icon--active" : ""}`}>
752
+ <Home size={16} />
753
+ </Link>
754
+ </RailTooltip>
755
+
756
+ <div className="workspace-sidebar__rail-separator" />
757
+
758
+ <RailTooltip label="Objectives">
759
+ <Link href={`/projects/${collapsedSlug}/objectives`} className={`workspace-sidebar__rail-icon${activeProjectView === "objectives" ? " workspace-sidebar__rail-icon--active" : ""}`}>
760
+ <Target size={16} />
761
+ </Link>
762
+ </RailTooltip>
763
+ <RailTooltip label="Linear">
764
+ <Link href={`/projects/${collapsedSlug}/linear`} className={`workspace-sidebar__rail-icon${activeProjectView === "linear" ? " workspace-sidebar__rail-icon--active" : ""}`}>
765
+ <LinearIcon size={16} />
766
+ </Link>
767
+ </RailTooltip>
768
+ <RailTooltip label="Scheduled Tasks">
769
+ <Link href={`/projects/${collapsedSlug}/automations`} className={`workspace-sidebar__rail-icon${activeProjectView === "automations" ? " workspace-sidebar__rail-icon--active" : ""}`}>
770
+ <Zap size={16} />
771
+ </Link>
772
+ </RailTooltip>
773
+
774
+ <div className="workspace-sidebar__rail-separator" />
775
+
776
+ <RailTooltip label="Terminal">
777
+ <Link href={`/projects/${collapsedSlug}/terminal`} className={`workspace-sidebar__rail-icon${activeProjectView === "terminal" ? " workspace-sidebar__rail-icon--active" : ""}`}>
778
+ <TerminalSquare size={16} />
779
+ </Link>
780
+ </RailTooltip>
781
+ <RailTooltip label="Chat">
782
+ <button
783
+ type="button"
784
+ className={`workspace-sidebar__rail-icon${activeProjectView === "thread" ? " workspace-sidebar__rail-icon--active" : ""}`}
785
+ onClick={() => {
786
+ const projectThreads = sortedWorkspaces.filter((t) => collapsedProject.thread_ids?.includes(t.id));
787
+ const threadId = collapsedProject.thread_ids?.find((id) => threads.some((t) => t.id === id)) ?? projectThreads[0]?.id;
788
+ if (threadId) onSelectThread(threadId);
789
+ }}
790
+ >
791
+ <MessageSquare size={16} />
792
+ </button>
793
+ </RailTooltip>
794
+
795
+ <div className="workspace-sidebar__rail-separator" />
796
+
797
+ <RailTooltip label="Teams">
798
+ <Link href={`/projects/${collapsedSlug}/teams`} className={`workspace-sidebar__rail-icon${activeProjectView === "teams" ? " workspace-sidebar__rail-icon--active" : ""}`}>
799
+ <Users size={16} />
800
+ </Link>
801
+ </RailTooltip>
802
+ <RailTooltip label="Folders">
803
+ <Link href={`/projects/${collapsedSlug}/folders`} className={`workspace-sidebar__rail-icon${activeProjectView === "folders" ? " workspace-sidebar__rail-icon--active" : ""}`}>
804
+ <FolderGit2 size={16} />
805
+ </Link>
806
+ </RailTooltip>
807
+ <RailTooltip label="Env Variables">
808
+ <Link href={`/projects/${collapsedSlug}/env-vars`} className={`workspace-sidebar__rail-icon${activeProjectView === "env-vars" ? " workspace-sidebar__rail-icon--active" : ""}`}>
809
+ <KeyRound size={16} />
810
+ </Link>
811
+ </RailTooltip>
812
+ </nav>
813
+ )}
814
+
715
815
  <div className="mt-auto p-2">
716
- <a
717
- href="https://discord.gg/G9afUYKKY3"
718
- target="_blank"
719
- rel="noopener noreferrer"
720
- className="flex items-center justify-center w-8 h-8 rounded-lg text-white transition-colors"
721
- style={{ backgroundColor: '#5865F2' }}
722
- onMouseEnter={(e) => (e.currentTarget.style.backgroundColor = '#4752C4')}
723
- onMouseLeave={(e) => (e.currentTarget.style.backgroundColor = '#5865F2')}
724
- title="Join Discord"
725
- >
726
- <svg width="14" height="14" viewBox="0 0 71 55" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
727
- <path d="M60.1 4.9A58.5 58.5 0 0045.4.2a.2.2 0 00-.2.1 40.8 40.8 0 00-1.8 3.7 54 54 0 00-16.2 0A37.4 37.4 0 0025.4.3a.2.2 0 00-.2-.1A58.4 58.4 0 0010.5 4.9a.2.2 0 00-.1.1C1.5 18.7-.9 32.2.3 45.5v.1a58.8 58.8 0 0017.7 9a.2.2 0 00.3-.1 42 42 0 003.6-5.9.2.2 0 00-.1-.3 38.8 38.8 0 01-5.5-2.6.2.2 0 01 0-.4l1.1-.9a.2.2 0 01.2 0 42 42 0 0035.6 0 .2.2 0 01.2 0l1.1.9a.2.2 0 010 .4 36.4 36.4 0 01-5.5 2.6.2.2 0 00-.1.3 47.2 47.2 0 003.6 5.9.2.2 0 00.3.1 58.6 58.6 0 0017.7-9v-.1c1.4-15.2-2.4-28.4-10-40.1a.2.2 0 00-.1-.1zM23.7 37.3c-3.5 0-6.3-3.2-6.3-7s2.8-7 6.3-7 6.4 3.2 6.3 7-2.8 7-6.3 7zm23.3 0c-3.5 0-6.3-3.2-6.3-7s2.8-7 6.3-7 6.4 3.2 6.3 7-2.8 7-6.3 7z"/>
728
- </svg>
729
- </a>
816
+ <RailTooltip label="Join Discord">
817
+ <a
818
+ href="https://discord.gg/G9afUYKKY3"
819
+ target="_blank"
820
+ rel="noopener noreferrer"
821
+ className="workspace-sidebar__rail-icon"
822
+ style={{ backgroundColor: '#5865F2', color: 'white' }}
823
+ onMouseEnter={(e) => (e.currentTarget.style.backgroundColor = '#4752C4')}
824
+ onMouseLeave={(e) => (e.currentTarget.style.backgroundColor = '#5865F2')}
825
+ >
826
+ <svg width="14" height="14" viewBox="0 0 71 55" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
827
+ <path d="M60.1 4.9A58.5 58.5 0 0045.4.2a.2.2 0 00-.2.1 40.8 40.8 0 00-1.8 3.7 54 54 0 00-16.2 0A37.4 37.4 0 0025.4.3a.2.2 0 00-.2-.1A58.4 58.4 0 0010.5 4.9a.2.2 0 00-.1.1C1.5 18.7-.9 32.2.3 45.5v.1a58.8 58.8 0 0017.7 9a.2.2 0 00.3-.1 42 42 0 003.6-5.9.2.2 0 00-.1-.3 38.8 38.8 0 01-5.5-2.6.2.2 0 01 0-.4l1.1-.9a.2.2 0 01.2 0 42 42 0 0035.6 0 .2.2 0 01.2 0l1.1.9a.2.2 0 010 .4 36.4 36.4 0 01-5.5 2.6.2.2 0 00-.1.3 47.2 47.2 0 003.6 5.9.2.2 0 00.3.1 58.6 58.6 0 0017.7-9v-.1c1.4-15.2-2.4-28.4-10-40.1a.2.2 0 00-.1-.1zM23.7 37.3c-3.5 0-6.3-3.2-6.3-7s2.8-7 6.3-7 6.4 3.2 6.3 7-2.8 7-6.3 7zm23.3 0c-3.5 0-6.3-3.2-6.3-7s2.8-7 6.3-7 6.4 3.2 6.3 7-2.8 7-6.3 7z"/>
828
+ </svg>
829
+ </a>
830
+ </RailTooltip>
730
831
  </div>
731
832
  </aside>
732
833
  );
@@ -807,7 +908,7 @@ export function WorkspaceSidebar({
807
908
  return (
808
909
  <nav className="workspace-sidebar__section">
809
910
  {/* Home (standalone) */}
810
- <div className="px-2 mb-3">
911
+ <div className="px-2 mt-2 mb-3">
811
912
  <div className="workspace-sidebar__workspace-item">
812
913
  <Link
813
914
  href={`/projects/${selectedProject.slug}`}
@@ -1325,7 +1426,7 @@ export function WorkspaceSidebar({
1325
1426
  headers: { "Content-Type": "application/json" },
1326
1427
  body: JSON.stringify({
1327
1428
  id, name: data.name, provider: data.provider, model: data.model, color: data.color ?? color,
1328
- ...(data.title ? { title: data.title } : {}),
1429
+ ...(data.role ? { role: data.role } : {}),
1329
1430
  ...(data.identity ? { identity: data.identity } : {}),
1330
1431
  skills: data.skills ?? [],
1331
1432
  skillBindings: data.skillBindings ?? [],
@@ -1484,7 +1585,7 @@ export function WorkspaceSidebar({
1484
1585
  title="Edit agent"
1485
1586
  initial={{
1486
1587
  name: agentDetailAgent.name,
1487
- title: agentDetailAgent.title || "",
1588
+ role: agentDetailAgent.role || "",
1488
1589
  provider: agentDetailAgent.provider,
1489
1590
  model: agentDetailAgent.model || "",
1490
1591
  identity: agentDetailAgent.identity || "",
@@ -1505,7 +1606,7 @@ export function WorkspaceSidebar({
1505
1606
  await onUpdateParticipant({
1506
1607
  ...agentDetailAgent,
1507
1608
  name: data.name,
1508
- title: data.title || undefined,
1609
+ role: data.role || undefined,
1509
1610
  provider: data.provider,
1510
1611
  model: data.model,
1511
1612
  color: data.color ?? agentDetailAgent.color,
@@ -0,0 +1,52 @@
1
+ "use client";
2
+
3
+ import React, { useEffect, useRef } from "react";
4
+
5
+ export function ResizeHandle({
6
+ onResize,
7
+ }: {
8
+ onResize: (delta: number) => void;
9
+ }) {
10
+ const dragging = useRef(false);
11
+ const lastX = useRef(0);
12
+
13
+ useEffect(() => {
14
+ if (!dragging.current) return;
15
+
16
+ const onMouseMove = (e: MouseEvent) => {
17
+ const delta = e.clientX - lastX.current;
18
+ lastX.current = e.clientX;
19
+ onResize(delta);
20
+ };
21
+
22
+ const onMouseUp = () => {
23
+ dragging.current = false;
24
+ document.body.style.cursor = "";
25
+ document.body.style.userSelect = "";
26
+ window.removeEventListener("mousemove", onMouseMove);
27
+ window.removeEventListener("mouseup", onMouseUp);
28
+ };
29
+
30
+ window.addEventListener("mousemove", onMouseMove);
31
+ window.addEventListener("mouseup", onMouseUp);
32
+ return () => {
33
+ window.removeEventListener("mousemove", onMouseMove);
34
+ window.removeEventListener("mouseup", onMouseUp);
35
+ };
36
+ });
37
+
38
+ return (
39
+ <div
40
+ className="group relative z-10 w-0 shrink-0 cursor-col-resize"
41
+ onMouseDown={(e) => {
42
+ e.preventDefault();
43
+ dragging.current = true;
44
+ lastX.current = e.clientX;
45
+ document.body.style.cursor = "col-resize";
46
+ document.body.style.userSelect = "none";
47
+ }}
48
+ >
49
+ <div className="absolute inset-y-0 -left-0.5 w-1 transition-colors group-hover:bg-[var(--primary)]/40" />
50
+ </div>
51
+ );
52
+ }
@@ -66,14 +66,19 @@ export function useAutomations() {
66
66
  return res.ok;
67
67
  }, [fetchAutomations]);
68
68
 
69
- const runNow = useCallback(async (taskId: string) => {
69
+ const runNow = useCallback(async (taskId: string): Promise<{ ok: boolean; skipReason?: string }> => {
70
70
  const res = await fetch('/api/schedules/poll', {
71
71
  method: 'POST',
72
72
  headers: { 'Content-Type': 'application/json' },
73
73
  body: JSON.stringify({ taskId }),
74
74
  });
75
- if (res.ok) await fetchAutomations();
76
- return res.ok;
75
+ if (res.ok) {
76
+ await fetchAutomations();
77
+ return { ok: true };
78
+ }
79
+ const data = await res.json().catch(() => ({}));
80
+ await fetchAutomations();
81
+ return { ok: false, skipReason: data.skipReason };
77
82
  }, [fetchAutomations]);
78
83
 
79
84
  return {