@mndrk/agx 2.2.0 → 2.3.1

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 (433) 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 +4 -4
  76. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/_full.segment.rsc +4 -4
  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 +2 -2
  80. package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/automations/__PAGE__.segment.rsc +2 -2
  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_client-reference-manifest.js +1 -1
  206. package/cloud-runtime/standalone/apps/local/.next/server/app/status.html +2 -2
  207. package/cloud-runtime/standalone/apps/local/.next/server/app/status.rsc +3 -3
  208. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_full.segment.rsc +3 -3
  209. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_head.segment.rsc +1 -1
  210. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_index.segment.rsc +2 -2
  211. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_tree.segment.rsc +2 -2
  212. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/status/__PAGE__.segment.rsc +2 -2
  213. package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/status.segment.rsc +1 -1
  214. package/cloud-runtime/standalone/apps/local/.next/server/app/thread/[id]/page_client-reference-manifest.js +1 -1
  215. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0-zk9w8._.js +7 -2
  216. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0.01bfe._.js +13 -8
  217. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__00c~p6z._.js +7 -2
  218. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__019dflu._.js +7 -2
  219. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__02t.3rm._.js +4 -4
  220. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__06zr0ph._.js +6 -1
  221. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__07d._0s._.js +15 -10
  222. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__08xj~a3._.js +1 -1
  223. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0a0cq38._.js +34 -3
  224. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0asvfdo._.js +35 -4
  225. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0bt7ejs._.js +7 -2
  226. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0f.~98d._.js +7 -2
  227. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0g-~-.q._.js +6 -1
  228. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0g7p6pw._.js +1 -1
  229. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0gj~dap._.js +40 -9
  230. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0hkcw03._.js +8 -3
  231. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0hyu3en._.js +7 -2
  232. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0i5aw03._.js +7 -2
  233. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0ke4z91._.js +7 -2
  234. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0l53ok5._.js +41 -10
  235. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0ll-~cx._.js +7 -2
  236. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0mh6p.0._.js +7 -2
  237. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0nc-lbr._.js +1 -1
  238. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0p9rl6.._.js +8 -3
  239. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0q~pnp0._.js +6 -6
  240. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0ue0bu5._.js +6 -1
  241. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0unwwyx._.js +12 -7
  242. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0vtkl3q._.js +4 -4
  243. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0x6w64i._.js +1 -1
  244. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0z82z0-._.js +6 -1
  245. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0zrv3p3._.js +16 -11
  246. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0~iknwz._.js +12 -7
  247. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__10d.dhd._.js +46 -15
  248. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__10sw5ia._.js +4 -4
  249. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__11yx.ud._.js +33 -2
  250. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__13-nlgu._.js +5 -5
  251. package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__13960a8._.js +14 -9
  252. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_06qet8g._.js +14 -9
  253. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0_0m2ly._.js +4 -4
  254. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0a15wtk._.js +4 -4
  255. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0fr1qq6._.js +1 -1
  256. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0g.q2r6._.js +6 -1
  257. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0i7fs.i._.js +4 -4
  258. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_01pvj2g._.js +1 -1
  259. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_agent-participants_ts_0cq15u5._.js +1 -1
  260. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_db_ts_0twf-w5._.js +1 -1
  261. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_orchestrator_chat-processor_ts_0c2l_oh._.js +43 -12
  262. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_sqlite-query-adapter_ts_0l95hik._.js +15 -15
  263. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_sqlite-query-adapter_ts_0s5xprd._.js +1 -1
  264. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_graph_082u-ls._.js +19 -14
  265. package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_graph_schedule-runner_ts_07-ozf_._.js +2 -2
  266. package/cloud-runtime/standalone/apps/local/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0_l0fpi.js +1 -1
  267. package/cloud-runtime/standalone/apps/local/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0gips_c.js +1 -1
  268. package/cloud-runtime/standalone/apps/local/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0rszt9p.js +10 -6
  269. package/cloud-runtime/standalone/apps/local/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0u_5kfo.js +1 -1
  270. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/0rhn_lucide-react_dist_esm_06fnblz._.js +3 -0
  271. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0140-84._.js +3 -0
  272. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_03fckp4._.js +3 -0
  273. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{_0tcjapj._.js → _0ip6k6n._.js} +2 -2
  274. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0jensz1._.js +3 -0
  275. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0t0p8q5._.js +3 -0
  276. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0yeuuy1._.js +1 -23
  277. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_03z24q2._.js +1 -1
  278. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0_ac-.f._.js +3 -3
  279. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0a-8i4p._.js +1 -1
  280. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0k4~c1x._.js +1 -1
  281. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0ld1uug._.js +1 -1
  282. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0ms1d6i._.js +4 -0
  283. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0p_v0ri._.js +1 -1
  284. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0x.xj52._.js +3 -0
  285. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0~g2ijr._.js +1 -1
  286. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_11k_-8~._.js +3 -3
  287. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_agents_[id]_page_tsx_06n47n~._.js +1 -1
  288. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_agents_page_tsx_078reb_._.js +1 -1
  289. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_linear_page_tsx_0a~n5y8._.js +25 -3
  290. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_page_tsx_0kcaeqi._.js +1 -1
  291. 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
  292. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_teams_[teamId]_page_tsx_0iyozfl._.js +1 -1
  293. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_teams_new_page_tsx_0yqd0a5._.js +1 -1
  294. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_terminal_page_tsx_01n9qk.._.js +1 -20
  295. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_setup_page_tsx_0ql2qmr._.js +1 -1
  296. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_PromptJobBoard_tsx_06zob36._.js +2 -2
  297. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_projects_ProjectObjectivesWorkspace_tsx_0k4tfip._.js +1 -1
  298. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_terminal_TerminalPane_tsx_0l17vs_._.js +22 -0
  299. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_thread_WorkspaceSidebar_tsx_0unv2xp._.js +1 -1
  300. package/cloud-runtime/standalone/apps/local/.next/server/middleware-build-manifest.js +3 -3
  301. package/cloud-runtime/standalone/apps/local/.next/server/middleware-manifest.json +5 -5
  302. package/cloud-runtime/standalone/apps/local/.next/server/pages/404.html +2 -2
  303. package/cloud-runtime/standalone/apps/local/.next/server/pages/500.html +1 -1
  304. package/cloud-runtime/standalone/apps/local/.next/server/server-reference-manifest.js +1 -1
  305. package/cloud-runtime/standalone/apps/local/.next/server/server-reference-manifest.json +1 -1
  306. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{1011~1x9nj4ny.js → 0-k2m1ncx7hwx.js} +1 -1
  307. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0dnw31436wd~..js → 0-pkmgle2s8u8.js} +1 -1
  308. package/cloud-runtime/standalone/apps/local/.next/static/chunks/064jfmraty.9h.js +1 -0
  309. package/cloud-runtime/standalone/apps/local/.next/static/chunks/06kru5m9q~r.j.js +1 -0
  310. package/cloud-runtime/standalone/apps/local/.next/static/chunks/06kyg1q0bcz6p.js +5 -0
  311. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0_cjth28_11b2.js → 08bdyjcnamzep.js} +1 -1
  312. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0-olq~7zw3wjy.js → 08xq~uyr6.eqw.js} +1 -1
  313. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0gj98094p~zn4.js → 0cku81z~3oe6..js} +1 -1
  314. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0e7jhy0-52_4k.js +1 -0
  315. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0wh6p5~ft5rma.js → 0htc.sqrk_0.c.js} +1 -1
  316. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0ju4xmxwqddw6.js +1 -0
  317. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0mm978wb-ueg-.js +6 -0
  318. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0musu8f.4wvxz.js +1 -0
  319. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0bchtyu6m.2yv.js → 0muti0yiyhu0t.js} +1 -1
  320. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0rhps884e-bzu.js +1 -0
  321. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0rr3fvwc5ind~.js +5 -0
  322. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0sbkkjowkksa6.js +1 -0
  323. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0sjz0.o9_33qy.js +1 -0
  324. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0srzmg8ivve1g.css +1 -0
  325. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0fonouj2i9qnb.js → 0swo3_e8.4s7j.js} +2 -2
  326. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0sysrf3~l~r35.js +1 -0
  327. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0t69h-kc701fn.js +1 -0
  328. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0v67lnh..wj4z.js +1 -0
  329. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{013gtut17~fne.js → 0wb45ol1xrqe~.js} +1 -23
  330. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{00po4v2x~0x_z.js → 0wiw2v8gm-k_-.js} +1 -1
  331. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0jq0t4zip38wt.js → 0wopevh0s7.8c.js} +1 -1
  332. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0xm2~gxlt1npd.js +1 -0
  333. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{1503vb7lb6.g1.js → 0ya124ushze_f.js} +4 -4
  334. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{00e1ihnb6ap3t.js → 0zt2o58c5gytn.js} +2 -2
  335. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0~idsggr8vqf5.js +59 -0
  336. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0xu_doej_wc-3.js → 0~mcfx41q4znh.js} +3 -3
  337. package/cloud-runtime/standalone/apps/local/.next/static/chunks/116j4mjz~y42t.js +1 -0
  338. package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0-vo_x2cxmjm3.js → 12b62py0mq1gm.js} +4 -4
  339. package/cloud-runtime/standalone/apps/local/.next/static/chunks/12y5i0lh6s73o.js +1 -0
  340. package/cloud-runtime/standalone/apps/local/.next/static/chunks/148.mt80civoz.js +20 -0
  341. package/cloud-runtime/standalone/apps/local/.next/static/chunks/14m5d270euu_s.js +1 -0
  342. package/cloud-runtime/standalone/apps/local/.next/static/chunks/16h9208kl5~xa.js +16 -0
  343. package/cloud-runtime/standalone/apps/local/app/agents/[id]/page.tsx +6 -3
  344. package/cloud-runtime/standalone/apps/local/app/agents/page.tsx +3 -3
  345. package/cloud-runtime/standalone/apps/local/app/api/chat/route.ts +7 -1
  346. package/cloud-runtime/standalone/apps/local/app/api/participants/route.ts +9 -9
  347. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/search/route.ts +6 -6
  348. package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/teams/route.ts +3 -3
  349. package/cloud-runtime/standalone/apps/local/app/api/prompt-jobs/agents/route.ts +1 -1
  350. package/cloud-runtime/standalone/apps/local/app/api/schedules/poll/route.ts +11 -2
  351. package/cloud-runtime/standalone/apps/local/app/page.tsx +72 -14
  352. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/page.tsx +34 -1
  353. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page.tsx +6 -3
  354. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/teams/[teamId]/page.tsx +6 -3
  355. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/teams/new/page.tsx +8 -17
  356. package/cloud-runtime/standalone/apps/local/app/projects/[slug]/teams/replace/page.tsx +1 -1
  357. package/cloud-runtime/standalone/apps/local/app/projects/page.tsx +7 -0
  358. package/cloud-runtime/standalone/apps/local/app/setup/page.tsx +1 -38
  359. package/cloud-runtime/standalone/apps/local/components/AutomationsBoard.tsx +8 -4
  360. package/cloud-runtime/standalone/apps/local/components/EmptyStateCard.tsx +37 -0
  361. package/cloud-runtime/standalone/apps/local/components/LinearBoard.tsx +103 -770
  362. package/cloud-runtime/standalone/apps/local/components/PromptJobBoard.tsx +5 -37
  363. package/cloud-runtime/standalone/apps/local/components/TeamPickerModal.tsx +3 -3
  364. package/cloud-runtime/standalone/apps/local/components/chat-ui/Composer.tsx +28 -32
  365. package/cloud-runtime/standalone/apps/local/components/chat-ui/ParticipantBar.tsx +24 -39
  366. package/cloud-runtime/standalone/apps/local/components/linear/LinearBoardFilters.tsx +343 -0
  367. package/cloud-runtime/standalone/apps/local/components/linear/TicketRow.tsx +158 -0
  368. package/cloud-runtime/standalone/apps/local/components/projects/ObjectiveHealthTrend.tsx +45 -61
  369. package/cloud-runtime/standalone/apps/local/components/projects/RecentlyCompletedCard.tsx +0 -16
  370. package/cloud-runtime/standalone/apps/local/components/projects/ReplaceAgentsModal.tsx +2 -2
  371. package/cloud-runtime/standalone/apps/local/components/setup/McpSetupStep.tsx +155 -120
  372. package/cloud-runtime/standalone/apps/local/components/setup/ProviderStep.tsx +85 -88
  373. package/cloud-runtime/standalone/apps/local/components/setup/SetupLayout.tsx +6 -4
  374. package/cloud-runtime/standalone/apps/local/components/terminal/ProjectTerminal.tsx +18 -193
  375. package/cloud-runtime/standalone/apps/local/components/terminal/TerminalPane.tsx +40 -4
  376. package/cloud-runtime/standalone/apps/local/components/thread/WorkspaceSidebar.tsx +4 -4
  377. package/cloud-runtime/standalone/apps/local/components/ui/ResizeHandle.tsx +52 -0
  378. package/cloud-runtime/standalone/apps/local/hooks/useAutomations.ts +8 -3
  379. package/cloud-runtime/standalone/apps/local/hooks/useLinearActiveAgents.ts +38 -0
  380. package/cloud-runtime/standalone/apps/local/hooks/useLinearParticipants.ts +118 -0
  381. package/cloud-runtime/standalone/apps/local/hooks/usePromptJobs.ts +5 -3
  382. package/cloud-runtime/standalone/apps/local/hooks/useSetupFlow.ts +6 -81
  383. package/cloud-runtime/standalone/apps/local/lib/agent-participants.ts +1 -1
  384. package/cloud-runtime/standalone/apps/local/lib/agent-process-registry.ts +34 -0
  385. package/cloud-runtime/standalone/apps/local/lib/db.ts +5 -5
  386. package/cloud-runtime/standalone/apps/local/lib/linear-board-utils.ts +9 -0
  387. package/cloud-runtime/standalone/apps/local/lib/linear-run-status.ts +88 -0
  388. package/cloud-runtime/standalone/apps/local/lib/linear-run-store.ts +4 -4
  389. package/cloud-runtime/standalone/apps/local/lib/sqlite-query-adapter.ts +5 -1
  390. package/cloud-runtime/standalone/apps/local/lib/team-catalog.ts +60 -60
  391. package/cloud-runtime/standalone/apps/local/lib/types.ts +1 -1
  392. package/cloud-runtime/standalone/apps/local/migrations/sqlite_schema.sql +1 -1
  393. package/cloud-runtime/standalone/apps/local/skills-lock.json +5 -0
  394. package/cloud-runtime/standalone/apps/local/src/graph/schedule-runner.ts +26 -1
  395. package/cloud-runtime/standalone/apps/local/src/graph/store.ts +13 -0
  396. package/cloud-runtime/standalone/apps/local/state/linearBoardPins.ts +45 -0
  397. package/cloud-runtime/standalone/apps/local/worker/index.js +56 -5
  398. package/lib/cli/onboarding.js +8 -5
  399. package/package.json +1 -1
  400. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/0rhn_lucide-react_dist_esm_067eb..._.js +0 -3
  401. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_00trrg8._.js +0 -3
  402. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0ejzn1e._.js +0 -3
  403. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0sjchy6._.js +0 -3
  404. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0w4gpvr._.js +0 -3
  405. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0x6hh0t._.js +0 -4
  406. package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0t6p.qm._.js +0 -3
  407. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0-wlbe.ripd2w.css +0 -1
  408. package/cloud-runtime/standalone/apps/local/.next/static/chunks/014z_yruiincl.js +0 -1
  409. package/cloud-runtime/standalone/apps/local/.next/static/chunks/041-dhls9zkl1.js +0 -1
  410. package/cloud-runtime/standalone/apps/local/.next/static/chunks/069yt_7prdxsp.js +0 -1
  411. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0e6rxcxy.l5c8.js +0 -1
  412. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0ime4btrg-g4l.js +0 -1
  413. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0j-nhn61e~nnj.js +0 -1
  414. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0jglardpw~5uc.js +0 -37
  415. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0l3v45kd.9is_.js +0 -1
  416. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0ng6wy4ak35jg.js +0 -1
  417. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0n~jhoq~op4e5.js +0 -16
  418. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0p-rdas54yo~w.js +0 -1
  419. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0pdrpsy-zdxp0.js +0 -5
  420. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0p~l5ap6qqx2o.js +0 -1
  421. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0tm20~ec~occu.js +0 -1
  422. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0w94x-v00osq0.js +0 -1
  423. package/cloud-runtime/standalone/apps/local/.next/static/chunks/0xwny92a.ad_i.js +0 -1
  424. package/cloud-runtime/standalone/apps/local/.next/static/chunks/11l2tww5f0hsk.js +0 -20
  425. package/cloud-runtime/standalone/apps/local/.next/static/chunks/12qohmk-~yrtg.js +0 -1
  426. package/cloud-runtime/standalone/apps/local/.next/static/chunks/14v~9vx3tdv85.js +0 -1
  427. package/cloud-runtime/standalone/apps/local/.next/static/chunks/16fyhcmwlw3th.js +0 -6
  428. package/cloud-runtime/standalone/apps/local/.next/static/chunks/18e8w~~mvoh5o.js +0 -1
  429. package/cloud-runtime/standalone/apps/local/components/setup/ProjectStep.tsx +0 -189
  430. package/cloud-runtime/standalone/apps/local/components/setup/TeamsStep.tsx +0 -500
  431. /package/cloud-runtime/standalone/apps/local/.next/static/{qPuactsz6OYimwT6dSdHn → 438GF86gZtccU2fS12URB}/_buildManifest.js +0 -0
  432. /package/cloud-runtime/standalone/apps/local/.next/static/{qPuactsz6OYimwT6dSdHn → 438GF86gZtccU2fS12URB}/_clientMiddlewareManifest.js +0 -0
  433. /package/cloud-runtime/standalone/apps/local/.next/static/{qPuactsz6OYimwT6dSdHn → 438GF86gZtccU2fS12URB}/_ssgManifest.js +0 -0
@@ -157,7 +157,6 @@ export function RecentlyCompletedCard({
157
157
  <table className="min-w-full text-sm">
158
158
  <thead className="bg-[var(--secondary)]">
159
159
  <tr className="text-left text-[11px] uppercase tracking-[0.18em] text-[var(--muted-foreground)]">
160
- <th className="px-4 py-3 font-medium">Team</th>
161
160
  <th className="px-4 py-3 font-medium">Agent</th>
162
161
  <th className="px-4 py-3 font-medium">Status</th>
163
162
  <th className="px-4 py-3 font-medium">Thread</th>
@@ -177,21 +176,6 @@ export function RecentlyCompletedCard({
177
176
  )
178
177
  }
179
178
  >
180
- <td className="px-4 py-3">
181
- {agentTeamMap.has(process.agentId) ? (
182
- <button
183
- onClick={(event) => {
184
- event.stopPropagation();
185
- router.push(`/projects/${projectSlug}/teams/${agentTeamMap.get(process.agentId)!.id}`);
186
- }}
187
- className="text-left font-medium text-[var(--foreground)] transition-colors hover:text-[var(--primary)]"
188
- >
189
- {agentTeamMap.get(process.agentId)!.name}
190
- </button>
191
- ) : (
192
- <span className="text-[var(--muted-foreground)]">Unassigned</span>
193
- )}
194
- </td>
195
179
  <td className="px-4 py-3 text-[var(--foreground)]">{getAgentName(process.agentId)}</td>
196
180
  <td className="px-4 py-3">
197
181
  <span className="inline-flex items-center gap-1.5 rounded-full border border-[var(--border)] bg-[var(--secondary)] px-2 py-0.5 text-[11px] font-medium text-[var(--muted-foreground)]">
@@ -263,7 +263,7 @@ export default function ReplaceAgentsModal({
263
263
  <div className="w-5 h-5 rounded-md flex items-center justify-center flex-shrink-0 bg-emerald-500/15">
264
264
  <Check className="w-3 h-3 text-emerald-400" />
265
265
  </div>
266
- <span className="text-sm font-medium truncate">{preset.name}</span>
266
+ <span className="text-sm font-medium truncate">{preset.role}</span>
267
267
  <span className="text-[10px] px-1.5 py-0.5 rounded-full flex-shrink-0" style={{ background: "var(--card-bg)", color: "var(--muted-foreground)" }}>
268
268
  {preset.skillProfileId}
269
269
  </span>
@@ -316,7 +316,7 @@ export default function ReplaceAgentsModal({
316
316
  onMouseLeave={(e) => { e.currentTarget.style.borderColor = "var(--border)"; e.currentTarget.style.color = "var(--muted-foreground)"; }}
317
317
  >
318
318
  <Plus className="w-3 h-3" />
319
- {preset.name}
319
+ {preset.role}
320
320
  </button>
321
321
  ))}
322
322
  {availablePresets.length === 0 && (
@@ -1,8 +1,9 @@
1
1
  // components/setup/McpSetupStep.tsx
2
2
  "use client";
3
3
 
4
- import { useState, useEffect, useCallback } from "react";
5
- import { Check, Loader2, ExternalLink, Plug } from "lucide-react";
4
+ import { useState, useEffect, useCallback, useRef } from "react";
5
+ import { Check, Loader2, ExternalLink, Plug, Terminal } from "lucide-react";
6
+ import TerminalPane, { type TerminalPaneHandle } from "@/components/terminal/TerminalPane";
6
7
  import { SetupLayout } from "./SetupLayout";
7
8
 
8
9
  interface McpServer {
@@ -25,22 +26,27 @@ type McpStatus = Record<string, boolean>;
25
26
  type CliStatus = Record<string, boolean>;
26
27
 
27
28
  interface McpSetupStepProps {
28
- onNext: () => void;
29
+ onFinish: () => void;
29
30
  onBack: () => void;
30
31
  }
31
32
 
32
- const CLI_PROVIDERS = [
33
- { id: "claude", label: "Claude Code" },
34
- { id: "codex", label: "Codex" },
35
- { id: "gemini", label: "Gemini CLI" },
33
+ const CLI_PROVIDERS: { id: string; label: string; launchCmd: string }[] = [
34
+ { id: "claude", label: "Claude Code", launchCmd: "claude" },
35
+ { id: "codex", label: "Codex", launchCmd: "codex" },
36
+ { id: "gemini", label: "Gemini CLI", launchCmd: "gemini" },
36
37
  ];
37
38
 
38
- export function McpSetupStep({ onNext, onBack }: McpSetupStepProps) {
39
+ export function McpSetupStep({ onFinish, onBack }: McpSetupStepProps) {
39
40
  const [loading, setLoading] = useState(true);
40
41
  const [clis, setClis] = useState<CliStatus>({});
41
42
  const [mcpConfigured, setMcpConfigured] = useState<McpStatus>({});
42
43
  const [configuringCli, setConfiguringCli] = useState<string | null>(null);
43
44
  const [mcpError, setMcpError] = useState<string | null>(null);
45
+ const termRef = useRef<TerminalPaneHandle>(null);
46
+
47
+ const runInTerminal = useCallback((cmd: string) => {
48
+ termRef.current?.sendCommand(cmd);
49
+ }, []);
44
50
 
45
51
  const refresh = useCallback(async () => {
46
52
  try {
@@ -91,7 +97,8 @@ export function McpSetupStep({ onNext, onBack }: McpSetupStepProps) {
91
97
  return (
92
98
  <SetupLayout
93
99
  currentStep={2}
94
- totalSteps={4}
100
+ totalSteps={2}
101
+ wide
95
102
  footer={
96
103
  <div className="flex items-center justify-between">
97
104
  <button
@@ -103,10 +110,10 @@ export function McpSetupStep({ onNext, onBack }: McpSetupStepProps) {
103
110
  </button>
104
111
  <button
105
112
  type="button"
106
- onClick={onNext}
113
+ onClick={onFinish}
107
114
  className="inline-flex items-center gap-2 px-6 py-2.5 bg-[var(--foreground)] text-[var(--background)] text-[14px] font-semibold rounded-lg hover:opacity-90 transition-all"
108
115
  >
109
- {hasAnyConfigured ? "Next" : "Skip"}
116
+ {hasAnyConfigured ? "Finish" : "Skip"}
110
117
  </button>
111
118
  </div>
112
119
  }
@@ -116,127 +123,155 @@ export function McpSetupStep({ onNext, onBack }: McpSetupStepProps) {
116
123
  Configure MCP Servers
117
124
  </h1>
118
125
  <p className="mt-2 text-[14px] text-[var(--muted-foreground)] leading-relaxed">
119
- MCP servers let your agents interact with external tools.<br />
120
- Set them up so agents can read and update tickets automatically.
126
+ MCP servers let your agents interact with external tools. After registering a server below,
127
+ launch your CLI in the terminal to complete the OAuth login.
121
128
  </p>
122
129
  </div>
123
130
 
124
- {loading ? (
125
- <div className="text-center py-8">
126
- <Loader2 className="w-6 h-6 animate-spin text-[var(--muted-foreground)] mx-auto" />
127
- <p className="mt-3 text-[13px] text-[var(--muted-foreground)]">
128
- Checking MCP configuration...
129
- </p>
130
- </div>
131
- ) : (
132
- <div className="space-y-6">
133
- {MCP_SERVERS.map((server) => (
134
- <div
135
- key={server.id}
136
- className="border border-[var(--card-border)] rounded-lg overflow-hidden"
137
- >
138
- {/* Server header */}
139
- <div className="px-4 py-3 flex items-center gap-3">
140
- <div className="w-8 h-8 rounded-lg bg-[var(--secondary)] flex items-center justify-center">
141
- <Plug className="w-4 h-4 text-[var(--foreground)]" />
142
- </div>
143
- <div className="flex-1 min-w-0">
144
- <div className="flex items-center gap-2">
145
- <span className="text-[14px] font-semibold text-[var(--foreground)]">
146
- {server.name}
147
- </span>
148
- {hasAnyConfigured && (
149
- <span className="text-[11px] font-medium text-emerald-600 dark:text-emerald-400 bg-emerald-50 dark:bg-emerald-900/20 px-1.5 py-0.5 rounded">
150
- Configured
151
- </span>
152
- )}
153
- </div>
154
- <p className="text-[12px] text-[var(--muted-foreground)]">
155
- {server.description}
156
- </p>
157
- </div>
158
- </div>
159
-
160
- {/* Per-CLI configuration */}
161
- <div className="border-t border-[var(--card-border)] px-4 py-3 space-y-2">
162
- <p className="text-[11px] font-semibold uppercase tracking-wide text-[var(--muted-foreground)] mb-2">
163
- Configure for your CLI
164
- </p>
165
- {CLI_PROVIDERS.map((provider) => {
166
- const installed = clis[provider.id];
167
- const configured = mcpConfigured[provider.id];
168
- const isConfiguring = configuringCli === provider.id;
169
-
170
- return (
171
- <div
172
- key={provider.id}
173
- className={`flex items-center justify-between rounded-md border border-[var(--card-border)] px-3 py-2.5 ${
174
- !installed ? "opacity-40" : ""
175
- }`}
176
- >
177
- <span className="text-[13px] text-[var(--foreground)]">
178
- {provider.label}
179
- </span>
180
- {!installed ? (
181
- <span className="text-[11px] text-[var(--muted-foreground)]">
182
- Not installed
183
- </span>
184
- ) : configured ? (
185
- <span className="flex items-center gap-1 text-[11px] text-emerald-600 dark:text-emerald-400">
186
- <Check className="w-3.5 h-3.5" />
187
- Configured
131
+ <div className="flex gap-6 min-h-0 items-start">
132
+ {/* Left column — MCP servers list */}
133
+ <div className="w-[380px] shrink-0 space-y-6">
134
+ {loading ? (
135
+ <div className="text-center py-8">
136
+ <Loader2 className="w-6 h-6 animate-spin text-[var(--muted-foreground)] mx-auto" />
137
+ <p className="mt-3 text-[13px] text-[var(--muted-foreground)]">
138
+ Checking MCP configuration...
139
+ </p>
140
+ </div>
141
+ ) : (
142
+ <>
143
+ {MCP_SERVERS.map((server) => (
144
+ <div
145
+ key={server.id}
146
+ className="border border-[var(--card-border)] rounded-lg overflow-hidden"
147
+ >
148
+ <div className="px-4 py-3 flex items-center gap-3">
149
+ <div className="w-8 h-8 rounded-lg bg-[var(--secondary)] flex items-center justify-center">
150
+ <Plug className="w-4 h-4 text-[var(--foreground)]" />
151
+ </div>
152
+ <div className="flex-1 min-w-0">
153
+ <div className="flex items-center gap-2">
154
+ <span className="text-[14px] font-semibold text-[var(--foreground)]">
155
+ {server.name}
188
156
  </span>
189
- ) : (
190
- <button
191
- type="button"
192
- onClick={() => handleConfigureMcp(provider.id)}
193
- disabled={isConfiguring}
194
- className="inline-flex items-center gap-1.5 px-3 py-1 text-[12px] font-medium rounded-md border border-[var(--card-border)] hover:bg-[var(--secondary)] transition-colors disabled:opacity-50"
157
+ {hasAnyConfigured && (
158
+ <span className="text-[11px] font-medium text-emerald-600 dark:text-emerald-400 bg-emerald-50 dark:bg-emerald-900/20 px-1.5 py-0.5 rounded">
159
+ Registered
160
+ </span>
161
+ )}
162
+ </div>
163
+ <p className="text-[12px] text-[var(--muted-foreground)]">
164
+ {server.description}
165
+ </p>
166
+ </div>
167
+ </div>
168
+
169
+ <div className="border-t border-[var(--card-border)] px-4 py-3 space-y-2">
170
+ <p className="text-[11px] font-semibold uppercase tracking-wide text-[var(--muted-foreground)] mb-2">
171
+ Register & authenticate per CLI
172
+ </p>
173
+ {CLI_PROVIDERS.map((provider) => {
174
+ const installed = clis[provider.id];
175
+ const configured = mcpConfigured[provider.id];
176
+ const isConfiguring = configuringCli === provider.id;
177
+
178
+ return (
179
+ <div
180
+ key={provider.id}
181
+ className={`flex items-center justify-between rounded-md border border-[var(--card-border)] px-3 py-2.5 ${
182
+ !installed ? "opacity-40" : ""
183
+ }`}
195
184
  >
196
- {isConfiguring ? (
197
- <>
198
- <Loader2 className="w-3 h-3 animate-spin" />
199
- Setting up...
200
- </>
185
+ <span className="text-[13px] text-[var(--foreground)]">
186
+ {provider.label}
187
+ </span>
188
+ {!installed ? (
189
+ <span className="text-[11px] text-[var(--muted-foreground)]">
190
+ Not installed
191
+ </span>
192
+ ) : configured ? (
193
+ <div className="flex items-center gap-2">
194
+ <span className="flex items-center gap-1 text-[11px] text-emerald-600 dark:text-emerald-400">
195
+ <Check className="w-3.5 h-3.5" />
196
+ Registered
197
+ </span>
198
+ <button
199
+ type="button"
200
+ onClick={() => runInTerminal(provider.launchCmd)}
201
+ className="inline-flex items-center gap-1.5 px-2.5 py-1 text-[11px] font-medium rounded-md border border-[var(--card-border)] hover:bg-[var(--secondary)] transition-colors"
202
+ title={`Launch ${provider.label} to authenticate`}
203
+ >
204
+ Launch & authenticate
205
+ </button>
206
+ </div>
201
207
  ) : (
202
- "Set up"
208
+ <button
209
+ type="button"
210
+ onClick={() => handleConfigureMcp(provider.id)}
211
+ disabled={isConfiguring}
212
+ className="inline-flex items-center gap-1.5 px-3 py-1 text-[12px] font-medium rounded-md border border-[var(--card-border)] hover:bg-[var(--secondary)] transition-colors disabled:opacity-50"
213
+ >
214
+ {isConfiguring ? (
215
+ <>
216
+ <Loader2 className="w-3 h-3 animate-spin" />
217
+ Registering...
218
+ </>
219
+ ) : (
220
+ "Register"
221
+ )}
222
+ </button>
203
223
  )}
204
- </button>
205
- )}
206
- </div>
207
- );
208
- })}
209
- {mcpError && (
210
- <p className="text-[12px] text-red-500 dark:text-red-400 mt-1">
211
- {mcpError}
224
+ </div>
225
+ );
226
+ })}
227
+ {mcpError && (
228
+ <p className="text-[12px] text-red-500 dark:text-red-400 mt-1">
229
+ {mcpError}
230
+ </p>
231
+ )}
232
+ </div>
233
+
234
+ <div className="border-t border-[var(--card-border)] px-4 py-2.5">
235
+ <a
236
+ href={server.docsUrl}
237
+ target="_blank"
238
+ rel="noopener noreferrer"
239
+ className="inline-flex items-center gap-1 text-[12px] text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors"
240
+ >
241
+ Learn more about {server.name} MCP
242
+ <ExternalLink className="w-3 h-3" />
243
+ </a>
244
+ </div>
245
+ </div>
246
+ ))}
247
+
248
+ {installedProviders.length === 0 && (
249
+ <div className="text-center py-4">
250
+ <p className="text-[13px] text-[var(--muted-foreground)]">
251
+ No CLI providers detected. Go back and install a provider first, or skip this step.
212
252
  </p>
213
- )}
214
- </div>
215
-
216
- {/* Docs link */}
217
- <div className="border-t border-[var(--card-border)] px-4 py-2.5">
218
- <a
219
- href={server.docsUrl}
220
- target="_blank"
221
- rel="noopener noreferrer"
222
- className="inline-flex items-center gap-1 text-[12px] text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors"
223
- >
224
- Learn more about {server.name} MCP
225
- <ExternalLink className="w-3 h-3" />
226
- </a>
227
- </div>
228
- </div>
229
- ))}
253
+ </div>
254
+ )}
230
255
 
231
- {installedProviders.length === 0 && (
232
- <div className="text-center py-4">
233
- <p className="text-[13px] text-[var(--muted-foreground)]">
234
- No CLI providers detected. Go back and install a provider first, or skip this step.
256
+ <p className="text-[11px] leading-relaxed text-[var(--muted-foreground)]">
257
+ Registering writes the MCP server into the CLI config. You still need to launch the CLI
258
+ (right) and complete the interactive OAuth flow (usually <code className="text-[var(--foreground)]">/mcp</code>).
235
259
  </p>
236
- </div>
260
+ </>
237
261
  )}
238
262
  </div>
239
- )}
263
+
264
+ {/* Right column — embedded terminal */}
265
+ <div className="flex-1 min-w-0 h-[500px] flex flex-col rounded-xl border border-[var(--card-border)] overflow-hidden bg-[#1e1e1e]">
266
+ <div className="flex items-center gap-2 px-3 py-2 border-b border-[var(--card-border)] bg-[var(--secondary)] shrink-0">
267
+ <Terminal className="w-3.5 h-3.5 text-[var(--muted-foreground)]" />
268
+ <span className="text-[11px] font-semibold uppercase tracking-wide text-[var(--muted-foreground)]">Terminal</span>
269
+ </div>
270
+ <div className="flex-1 min-h-0">
271
+ <TerminalPane ref={termRef} tabId="setup-mcp" />
272
+ </div>
273
+ </div>
274
+ </div>
240
275
  </SetupLayout>
241
276
  );
242
277
  }
@@ -1,14 +1,15 @@
1
1
  // components/setup/ProviderStep.tsx
2
2
  "use client";
3
3
 
4
- import { useState, useCallback } from "react";
4
+ import { useState, useCallback, useRef } from "react";
5
5
  import {
6
- Check, Circle, Copy, ChevronDown, ExternalLink, Terminal, Loader2,
6
+ Check, Circle, Copy, ChevronDown, Terminal, Loader2,
7
7
  } from "lucide-react";
8
8
  import type { CliStatus } from "@/hooks/useProviderStatus";
9
9
  import { deriveStatus } from "@/hooks/useProviderStatus";
10
10
  import type { ProviderId } from "@/lib/provider-clis";
11
11
  import { SetupLayout } from "./SetupLayout";
12
+ import TerminalPane, { type TerminalPaneHandle } from "@/components/terminal/TerminalPane";
12
13
 
13
14
  function CopyButton({ text }: { text: string }) {
14
15
  const [copied, setCopied] = useState(false);
@@ -26,7 +27,11 @@ function CopyButton({ text }: { text: string }) {
26
27
  );
27
28
  }
28
29
 
29
- function CliRow({ cli, onVerify }: { cli: CliStatus; onVerify?: (id: ProviderId) => void }) {
30
+ function CliRow({ cli, onVerify, onRunInTerminal }: {
31
+ cli: CliStatus;
32
+ onVerify?: (id: ProviderId) => void;
33
+ onRunInTerminal?: (cmd: string) => void;
34
+ }) {
30
35
  const status = deriveStatus(cli);
31
36
  const [expanded, setExpanded] = useState(status === "needs-auth");
32
37
  const [verifying, setVerifying] = useState(false);
@@ -45,77 +50,68 @@ function CliRow({ cli, onVerify }: { cli: CliStatus; onVerify?: (id: ProviderId)
45
50
  finally { setVerifying(false); }
46
51
  }, [cli.id, onVerify]);
47
52
 
53
+ const runCmd = status === "not-installed" ? cli.installCmd : cli.authCmd?.cmd;
54
+
48
55
  return (
49
56
  <div className="border border-[var(--card-border)] rounded-lg overflow-hidden">
50
57
  <button
51
58
  type="button"
52
59
  onClick={() => isExpandable && setExpanded(!expanded)}
53
- className={`w-full flex items-center gap-3 px-4 py-3 transition-colors text-left ${isExpandable ? "hover:bg-[var(--item-hover-bg)] cursor-pointer" : "cursor-default"}`}
60
+ className={`w-full flex items-center gap-2.5 px-3 py-2 transition-colors text-left ${isExpandable ? "hover:bg-[var(--item-hover-bg)] cursor-pointer" : "cursor-default"}`}
54
61
  >
55
62
  <div className="shrink-0">
56
63
  {status === "checking" ? (
57
- <Circle className="w-4 h-4 text-[var(--muted-foreground)] animate-pulse" />
64
+ <Circle className="w-3.5 h-3.5 text-[var(--muted-foreground)] animate-pulse" />
58
65
  ) : status === "ready" ? (
59
- <div className="w-5 h-5 rounded-full bg-emerald-100 dark:bg-emerald-900/30 flex items-center justify-center">
60
- <Check className="w-3 h-3 text-emerald-600 dark:text-emerald-400" />
66
+ <div className="w-4 h-4 rounded-full bg-emerald-100 dark:bg-emerald-900/30 flex items-center justify-center">
67
+ <Check className="w-2.5 h-2.5 text-emerald-600 dark:text-emerald-400" />
61
68
  </div>
62
69
  ) : status === "needs-auth" ? (
63
- <div className="w-5 h-5 rounded-full bg-amber-100 dark:bg-amber-900/30 flex items-center justify-center">
64
- <Circle className="w-3 h-3 text-amber-600 dark:text-amber-400" />
70
+ <div className="w-4 h-4 rounded-full bg-amber-100 dark:bg-amber-900/30 flex items-center justify-center">
71
+ <Circle className="w-2.5 h-2.5 text-amber-600 dark:text-amber-400" />
65
72
  </div>
66
73
  ) : (
67
- <Circle className="w-4 h-4 text-[var(--muted-foreground)]" />
74
+ <Circle className="w-3.5 h-3.5 text-[var(--muted-foreground)]" />
68
75
  )}
69
76
  </div>
70
- <div className="flex-1 min-w-0">
71
- <div className="flex items-center gap-2">
72
- <span className="text-[14px] font-semibold text-[var(--foreground)]">{cli.name}</span>
73
- {cli.recommended && status === "not-installed" && (
74
- <span className="text-[11px] font-medium text-[var(--foreground)] bg-[var(--secondary)] px-1.5 py-0.5 rounded">Recommended</span>
75
- )}
76
- {status === "ready" && (
77
- <span className="text-[11px] font-medium text-emerald-600 dark:text-emerald-400 bg-emerald-50 dark:bg-emerald-900/20 px-1.5 py-0.5 rounded">Ready</span>
78
- )}
79
- {status === "needs-auth" && (
80
- <span className="text-[11px] font-medium text-amber-600 dark:text-amber-400 bg-amber-50 dark:bg-amber-900/20 px-1.5 py-0.5 rounded">Needs auth</span>
81
- )}
82
- </div>
83
- <p className="text-[12px] text-[var(--muted-foreground)]">{cli.description}</p>
84
- </div>
77
+ <span className="flex-1 min-w-0 text-[13px] font-semibold text-[var(--foreground)] truncate">{cli.name}</span>
78
+ {status === "ready" && (
79
+ <span className="text-[10px] font-medium text-emerald-600 dark:text-emerald-400">Ready</span>
80
+ )}
81
+ {status === "needs-auth" && (
82
+ <span className="text-[10px] font-medium text-amber-600 dark:text-amber-400">Needs auth</span>
83
+ )}
84
+ {status === "not-installed" && cli.recommended && (
85
+ <span className="text-[10px] font-medium text-[var(--muted-foreground)]">Recommended</span>
86
+ )}
85
87
  {isExpandable && (
86
- <ChevronDown className={`w-4 h-4 text-[var(--muted-foreground)] transition-transform ${expanded ? "rotate-180" : ""}`} />
88
+ <ChevronDown className={`w-3.5 h-3.5 text-[var(--muted-foreground)] transition-transform ${expanded ? "rotate-180" : ""}`} />
87
89
  )}
88
90
  </button>
89
91
 
90
- {expanded && status === "not-installed" && (
91
- <div className="px-4 pb-3 border-t border-[var(--card-border)]">
92
- <div className="mt-3 flex items-center gap-2 bg-[var(--secondary)] rounded-md px-3 py-2 font-mono text-[13px] text-[var(--foreground)]">
93
- <Terminal className="w-3.5 h-3.5 text-[var(--muted-foreground)] shrink-0" />
94
- <code className="flex-1 overflow-x-auto whitespace-nowrap">{cli.installCmd}</code>
95
- <CopyButton text={cli.installCmd} />
96
- </div>
97
- <a href={cli.docsUrl} target="_blank" rel="noopener noreferrer" className="inline-flex items-center gap-1 mt-2 text-[12px] text-[var(--primary)] hover:underline">
98
- Documentation <ExternalLink className="w-3 h-3" />
99
- </a>
100
- {cli.installNote && <p className="mt-2 text-[12px] text-[var(--muted-foreground)]">{cli.installNote}</p>}
101
- </div>
102
- )}
103
-
104
- {expanded && status === "needs-auth" && cli.authCmd && (
105
- <div className="px-4 pb-3 border-t border-[var(--card-border)]">
106
- <p className="mt-3 text-[12px] text-[var(--muted-foreground)]">{cli.authCmd.description}</p>
107
- <div className="mt-2 flex items-center gap-2 bg-[var(--secondary)] rounded-md px-3 py-2 font-mono text-[13px] text-[var(--foreground)]">
108
- <Terminal className="w-3.5 h-3.5 text-[var(--muted-foreground)] shrink-0" />
109
- <code className="flex-1 overflow-x-auto whitespace-nowrap">{cli.authCmd.cmd}</code>
110
- <CopyButton text={cli.authCmd.cmd} />
111
- </div>
112
- <div className="mt-3 flex items-center gap-2">
113
- <button type="button" onClick={handleVerify} disabled={verifying} className="inline-flex items-center gap-1.5 px-3 py-1.5 text-[12px] font-medium rounded-md bg-[var(--foreground)] text-[var(--background)] hover:opacity-90 transition-colors disabled:opacity-60">
92
+ {expanded && isExpandable && runCmd && (
93
+ <div className="px-3 pb-2.5 pt-1 border-t border-[var(--card-border)] flex items-center gap-1.5">
94
+ <button
95
+ type="button"
96
+ onClick={() => onRunInTerminal?.(runCmd)}
97
+ className="inline-flex items-center gap-1.5 px-2.5 py-1 text-[11px] font-medium rounded-md bg-[var(--foreground)] text-[var(--background)] hover:opacity-90 transition-colors"
98
+ >
99
+ <Terminal className="w-3 h-3" />
100
+ Run
101
+ </button>
102
+ {status === "needs-auth" && (
103
+ <button
104
+ type="button"
105
+ onClick={handleVerify}
106
+ disabled={verifying}
107
+ className="inline-flex items-center gap-1 px-2.5 py-1 text-[11px] font-medium rounded-md border border-[var(--card-border)] text-[var(--foreground)] hover:bg-[var(--secondary)] transition-colors disabled:opacity-60"
108
+ >
114
109
  {verifying && <Loader2 className="w-3 h-3 animate-spin" />}
115
- {verifying ? "Checking..." : "Verify"}
110
+ {verifying ? "Checking" : "Verify"}
116
111
  </button>
117
- {verifyError && <span className="text-[12px] text-amber-600 dark:text-amber-400">{verifyError}</span>}
118
- </div>
112
+ )}
113
+ <CopyButton text={runCmd} />
114
+ {verifyError && <span className="text-[10px] text-amber-600 dark:text-amber-400 ml-auto">{verifyError}</span>}
119
115
  </div>
120
116
  )}
121
117
  </div>
@@ -133,13 +129,16 @@ interface ProviderStepProps {
133
129
 
134
130
  export function ProviderStep({ clis, readyState, authenticatedCount, totalCount, onVerifySuccess, onNext }: ProviderStepProps) {
135
131
  const canProceed = readyState === "ready";
136
- const recommendedCli = clis.find((c) => c.recommended) ?? clis[0] ?? null;
137
- const alternativeClis = clis.filter((c) => !c.recommended);
132
+ const termRef = useRef<TerminalPaneHandle>(null);
133
+ const runInTerminal = useCallback((cmd: string) => {
134
+ termRef.current?.sendCommand(cmd);
135
+ }, []);
138
136
 
139
137
  return (
140
138
  <SetupLayout
141
139
  currentStep={1}
142
- totalSteps={4}
140
+ totalSteps={2}
141
+ wide
143
142
  footer={
144
143
  <div className="flex items-center justify-between">
145
144
  <span className="text-[13px] text-[var(--muted-foreground)]">
@@ -158,6 +157,7 @@ export function ProviderStep({ clis, readyState, authenticatedCount, totalCount,
158
157
  </div>
159
158
  }
160
159
  >
160
+ {/* Title — spans both columns */}
161
161
  <div className="text-center mb-8">
162
162
  <h1 className="text-[24px] font-bold text-[var(--foreground)] tracking-tight">Connect a Provider</h1>
163
163
  <p className="mt-2 text-[14px] text-[var(--muted-foreground)] leading-relaxed">
@@ -166,45 +166,42 @@ export function ProviderStep({ clis, readyState, authenticatedCount, totalCount,
166
166
  </p>
167
167
  </div>
168
168
 
169
- {readyState === "checking" && (
170
- <div className="text-center py-8">
171
- <Loader2 className="w-6 h-6 animate-spin text-[var(--muted-foreground)] mx-auto" />
172
- <p className="mt-3 text-[13px] text-[var(--muted-foreground)]">Detecting installed providers...</p>
173
- </div>
174
- )}
175
-
176
- {readyState === "error" && (
177
- <div className="text-center py-8">
178
- <p className="text-[14px] text-[var(--muted-foreground)]">Could not detect providers. Please reload.</p>
179
- </div>
180
- )}
181
-
182
- {(readyState === "needs-setup" || readyState === "ready") && (
183
- <div className="space-y-4">
184
- {!clis.some((c) => c.installed) && recommendedCli && (
185
- <div className="rounded-xl border border-[var(--card-border)] bg-[var(--secondary)] p-4 mb-2">
186
- <div className="flex items-center gap-2">
187
- <span className="text-[11px] font-semibold uppercase tracking-wide text-[var(--muted-foreground)]">Start Here</span>
188
- <span className="rounded bg-[var(--background)] px-2 py-0.5 text-[11px] font-medium text-[var(--foreground)]">{recommendedCli.name}</span>
189
- </div>
190
- <p className="mt-2 text-[13px] text-[var(--foreground)]">Install Claude Code first if you want the shortest path into AGX.</p>
169
+ <div className="flex gap-6 min-h-0 items-start">
170
+ {/* Left column — provider list */}
171
+ <div className="w-[280px] shrink-0">
172
+ {readyState === "checking" && (
173
+ <div className="text-center py-8">
174
+ <Loader2 className="w-6 h-6 animate-spin text-[var(--muted-foreground)] mx-auto" />
175
+ <p className="mt-3 text-[13px] text-[var(--muted-foreground)]">Detecting installed providers...</p>
191
176
  </div>
192
177
  )}
193
178
 
194
- <div className="space-y-2">
195
- {recommendedCli && <CliRow cli={recommendedCli} onVerify={onVerifySuccess} />}
196
- </div>
179
+ {readyState === "error" && (
180
+ <div className="text-center py-8">
181
+ <p className="text-[14px] text-[var(--muted-foreground)]">Could not detect providers. Please reload.</p>
182
+ </div>
183
+ )}
197
184
 
198
- {alternativeClis.length > 0 && (
199
- <div className="mt-4">
200
- <h3 className="mb-2 text-[12px] font-semibold uppercase tracking-wide text-[var(--muted-foreground)]">Other Options</h3>
201
- <div className="space-y-2">
202
- {alternativeClis.map((cli) => <CliRow key={cli.id} cli={cli} onVerify={onVerifySuccess} />)}
203
- </div>
185
+ {(readyState === "needs-setup" || readyState === "ready") && (
186
+ <div className="space-y-1.5">
187
+ {clis.map((cli) => (
188
+ <CliRow key={cli.id} cli={cli} onVerify={onVerifySuccess} onRunInTerminal={runInTerminal} />
189
+ ))}
204
190
  </div>
205
191
  )}
206
192
  </div>
207
- )}
193
+
194
+ {/* Right column — terminal (landscape) */}
195
+ <div className="flex-1 min-w-0 h-[420px] flex flex-col rounded-xl border border-[var(--card-border)] overflow-hidden bg-[#1e1e1e]">
196
+ <div className="flex items-center gap-2 px-3 py-2 border-b border-[var(--card-border)] bg-[var(--secondary)] shrink-0">
197
+ <Terminal className="w-3.5 h-3.5 text-[var(--muted-foreground)]" />
198
+ <span className="text-[11px] font-semibold uppercase tracking-wide text-[var(--muted-foreground)]">Terminal</span>
199
+ </div>
200
+ <div className="flex-1 min-h-0">
201
+ <TerminalPane ref={termRef} tabId="setup-provider" />
202
+ </div>
203
+ </div>
204
+ </div>
208
205
  </SetupLayout>
209
206
  );
210
207
  }