@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.
- package/README.md +70 -105
- package/cloud-runtime/standalone/apps/local/.next/BUILD_ID +1 -1
- package/cloud-runtime/standalone/apps/local/.next/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/prerender-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.html +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents/[id]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/agents/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/agents.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/agent-specs/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/[id]/profile/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/export/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/file-search/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/issues/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/issues/context/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/issues/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/options/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/runs/scripted/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/status/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/participants/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/linear-issues/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/scheduled-tasks/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/search/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/teams/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/poll/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/providers/check/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/providers/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/queue/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/debug/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/poll/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/assign/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/available/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/detail/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/history/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/learn/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/unlearn/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/status/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/summarize/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/comments/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/extract/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/threads/knowledge/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/threads/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/automations/page/react-loadable-manifest.json +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/automations/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/automations.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/automations.rsc +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/_full.segment.rsc +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/automations/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/automations.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/board/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/board.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/board.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/_full.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/board/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/board.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/execution-graph/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/execution-graph.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/folders/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/folders.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/folders.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/folders/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/folders.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/index.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/index.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page/react-loadable-manifest.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/knowledge/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/knowledge/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/linear/page/react-loadable-manifest.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/linear/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/linear/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/settings/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/settings/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/_full.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/projects/orphans/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/projects/orphans.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/projects.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/projects.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/settings.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/settings.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/_full.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/settings.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup.rsc +4 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_full.segment.rsc +4 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_tree.segment.rsc +3 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/setup/__PAGE__.segment.rsc +3 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/setup.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/skills.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/skills.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/_full.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/skills/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/skills.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/status/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/status.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/status.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/status/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/status.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/thread/[id]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0-zk9w8._.js +7 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0.01bfe._.js +13 -8
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__00c~p6z._.js +7 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__019dflu._.js +7 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__02t.3rm._.js +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__06zr0ph._.js +6 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__07d._0s._.js +15 -10
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__08xj~a3._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0a0cq38._.js +34 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0asvfdo._.js +35 -4
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0bt7ejs._.js +7 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0f.~98d._.js +7 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0g-~-.q._.js +6 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0g7p6pw._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0gj~dap._.js +40 -9
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0hkcw03._.js +8 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0hyu3en._.js +7 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0i5aw03._.js +7 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0ke4z91._.js +7 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0l53ok5._.js +41 -10
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0ll-~cx._.js +7 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0mh6p.0._.js +7 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0nc-lbr._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0p9rl6.._.js +8 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0q~pnp0._.js +6 -6
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0ue0bu5._.js +6 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0unwwyx._.js +12 -7
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0vtkl3q._.js +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0x6w64i._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0z82z0-._.js +6 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0zrv3p3._.js +16 -11
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0~iknwz._.js +12 -7
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__10d.dhd._.js +46 -15
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__10sw5ia._.js +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__11yx.ud._.js +33 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__13-nlgu._.js +5 -5
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__13960a8._.js +14 -9
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_06qet8g._.js +14 -9
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0_0m2ly._.js +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0a15wtk._.js +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0fr1qq6._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0g.q2r6._.js +6 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0i7fs.i._.js +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_01pvj2g._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_agent-participants_ts_0cq15u5._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_db_ts_0twf-w5._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_orchestrator_chat-processor_ts_0c2l_oh._.js +43 -12
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_sqlite-query-adapter_ts_0l95hik._.js +15 -15
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_sqlite-query-adapter_ts_0s5xprd._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_graph_082u-ls._.js +19 -14
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_graph_schedule-runner_ts_07-ozf_._.js +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0_l0fpi.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0gips_c.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0rszt9p.js +10 -6
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0u_5kfo.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/0rhn_lucide-react_dist_esm_06fnblz._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0140-84._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_03fckp4._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{_0tcjapj._.js → _0ip6k6n._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0jensz1._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0t0p8q5._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0yeuuy1._.js +1 -23
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_03z24q2._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0_ac-.f._.js +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0a-8i4p._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0k4~c1x._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0ld1uug._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0ms1d6i._.js +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0p_v0ri._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0x.xj52._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0~g2ijr._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_11k_-8~._.js +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_agents_[id]_page_tsx_06n47n~._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_agents_page_tsx_078reb_._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_linear_page_tsx_0a~n5y8._.js +25 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_page_tsx_0kcaeqi._.js +1 -1
- 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
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_teams_[teamId]_page_tsx_0iyozfl._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_teams_new_page_tsx_0yqd0a5._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_terminal_page_tsx_01n9qk.._.js +1 -20
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_setup_page_tsx_0ql2qmr._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_PromptJobBoard_tsx_06zob36._.js +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_projects_ProjectObjectivesWorkspace_tsx_0k4tfip._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_terminal_TerminalPane_tsx_0l17vs_._.js +22 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_thread_WorkspaceSidebar_tsx_0unv2xp._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/middleware-build-manifest.js +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/middleware-manifest.json +5 -5
- package/cloud-runtime/standalone/apps/local/.next/server/pages/404.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/pages/500.html +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/server-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/server-reference-manifest.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{1011~1x9nj4ny.js → 0-k2m1ncx7hwx.js} +1 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0dnw31436wd~..js → 0-pkmgle2s8u8.js} +1 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/064jfmraty.9h.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/06kru5m9q~r.j.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/06kyg1q0bcz6p.js +5 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0_cjth28_11b2.js → 08bdyjcnamzep.js} +1 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0-olq~7zw3wjy.js → 08xq~uyr6.eqw.js} +1 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0gj98094p~zn4.js → 0cku81z~3oe6..js} +1 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0e7jhy0-52_4k.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0wh6p5~ft5rma.js → 0htc.sqrk_0.c.js} +1 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0ju4xmxwqddw6.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0mm978wb-ueg-.js +6 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0musu8f.4wvxz.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0bchtyu6m.2yv.js → 0muti0yiyhu0t.js} +1 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0rhps884e-bzu.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0rr3fvwc5ind~.js +5 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0sbkkjowkksa6.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0sjz0.o9_33qy.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0srzmg8ivve1g.css +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0fonouj2i9qnb.js → 0swo3_e8.4s7j.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0sysrf3~l~r35.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0t69h-kc701fn.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0v67lnh..wj4z.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{013gtut17~fne.js → 0wb45ol1xrqe~.js} +1 -23
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{00po4v2x~0x_z.js → 0wiw2v8gm-k_-.js} +1 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0jq0t4zip38wt.js → 0wopevh0s7.8c.js} +1 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0xm2~gxlt1npd.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{1503vb7lb6.g1.js → 0ya124ushze_f.js} +4 -4
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{00e1ihnb6ap3t.js → 0zt2o58c5gytn.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0~idsggr8vqf5.js +59 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0xu_doej_wc-3.js → 0~mcfx41q4znh.js} +3 -3
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/116j4mjz~y42t.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0-vo_x2cxmjm3.js → 12b62py0mq1gm.js} +4 -4
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/12y5i0lh6s73o.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/148.mt80civoz.js +20 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/14m5d270euu_s.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/16h9208kl5~xa.js +16 -0
- package/cloud-runtime/standalone/apps/local/app/agents/[id]/page.tsx +6 -3
- package/cloud-runtime/standalone/apps/local/app/agents/page.tsx +3 -3
- package/cloud-runtime/standalone/apps/local/app/api/chat/route.ts +7 -1
- package/cloud-runtime/standalone/apps/local/app/api/participants/route.ts +9 -9
- package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/search/route.ts +6 -6
- package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/teams/route.ts +3 -3
- package/cloud-runtime/standalone/apps/local/app/api/prompt-jobs/agents/route.ts +1 -1
- package/cloud-runtime/standalone/apps/local/app/api/schedules/poll/route.ts +11 -2
- package/cloud-runtime/standalone/apps/local/app/page.tsx +72 -14
- package/cloud-runtime/standalone/apps/local/app/projects/[slug]/page.tsx +34 -1
- package/cloud-runtime/standalone/apps/local/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page.tsx +6 -3
- package/cloud-runtime/standalone/apps/local/app/projects/[slug]/teams/[teamId]/page.tsx +6 -3
- package/cloud-runtime/standalone/apps/local/app/projects/[slug]/teams/new/page.tsx +8 -17
- package/cloud-runtime/standalone/apps/local/app/projects/[slug]/teams/replace/page.tsx +1 -1
- package/cloud-runtime/standalone/apps/local/app/projects/page.tsx +7 -0
- package/cloud-runtime/standalone/apps/local/app/setup/page.tsx +1 -38
- package/cloud-runtime/standalone/apps/local/components/AutomationsBoard.tsx +8 -4
- package/cloud-runtime/standalone/apps/local/components/EmptyStateCard.tsx +37 -0
- package/cloud-runtime/standalone/apps/local/components/LinearBoard.tsx +103 -770
- package/cloud-runtime/standalone/apps/local/components/PromptJobBoard.tsx +5 -37
- package/cloud-runtime/standalone/apps/local/components/TeamPickerModal.tsx +3 -3
- package/cloud-runtime/standalone/apps/local/components/chat-ui/Composer.tsx +28 -32
- package/cloud-runtime/standalone/apps/local/components/chat-ui/ParticipantBar.tsx +24 -39
- package/cloud-runtime/standalone/apps/local/components/linear/LinearBoardFilters.tsx +343 -0
- package/cloud-runtime/standalone/apps/local/components/linear/TicketRow.tsx +158 -0
- package/cloud-runtime/standalone/apps/local/components/projects/ObjectiveHealthTrend.tsx +45 -61
- package/cloud-runtime/standalone/apps/local/components/projects/RecentlyCompletedCard.tsx +0 -16
- package/cloud-runtime/standalone/apps/local/components/projects/ReplaceAgentsModal.tsx +2 -2
- package/cloud-runtime/standalone/apps/local/components/setup/McpSetupStep.tsx +155 -120
- package/cloud-runtime/standalone/apps/local/components/setup/ProviderStep.tsx +85 -88
- package/cloud-runtime/standalone/apps/local/components/setup/SetupLayout.tsx +6 -4
- package/cloud-runtime/standalone/apps/local/components/terminal/ProjectTerminal.tsx +18 -193
- package/cloud-runtime/standalone/apps/local/components/terminal/TerminalPane.tsx +40 -4
- package/cloud-runtime/standalone/apps/local/components/thread/WorkspaceSidebar.tsx +4 -4
- package/cloud-runtime/standalone/apps/local/components/ui/ResizeHandle.tsx +52 -0
- package/cloud-runtime/standalone/apps/local/hooks/useAutomations.ts +8 -3
- package/cloud-runtime/standalone/apps/local/hooks/useLinearActiveAgents.ts +38 -0
- package/cloud-runtime/standalone/apps/local/hooks/useLinearParticipants.ts +118 -0
- package/cloud-runtime/standalone/apps/local/hooks/usePromptJobs.ts +5 -3
- package/cloud-runtime/standalone/apps/local/hooks/useSetupFlow.ts +6 -81
- package/cloud-runtime/standalone/apps/local/lib/agent-participants.ts +1 -1
- package/cloud-runtime/standalone/apps/local/lib/agent-process-registry.ts +34 -0
- package/cloud-runtime/standalone/apps/local/lib/db.ts +5 -5
- package/cloud-runtime/standalone/apps/local/lib/linear-board-utils.ts +9 -0
- package/cloud-runtime/standalone/apps/local/lib/linear-run-status.ts +88 -0
- package/cloud-runtime/standalone/apps/local/lib/linear-run-store.ts +4 -4
- package/cloud-runtime/standalone/apps/local/lib/sqlite-query-adapter.ts +5 -1
- package/cloud-runtime/standalone/apps/local/lib/team-catalog.ts +60 -60
- package/cloud-runtime/standalone/apps/local/lib/types.ts +1 -1
- package/cloud-runtime/standalone/apps/local/migrations/sqlite_schema.sql +1 -1
- package/cloud-runtime/standalone/apps/local/skills-lock.json +5 -0
- package/cloud-runtime/standalone/apps/local/src/graph/schedule-runner.ts +26 -1
- package/cloud-runtime/standalone/apps/local/src/graph/store.ts +13 -0
- package/cloud-runtime/standalone/apps/local/state/linearBoardPins.ts +45 -0
- package/cloud-runtime/standalone/apps/local/worker/index.js +56 -5
- package/lib/cli/onboarding.js +8 -5
- package/package.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/0rhn_lucide-react_dist_esm_067eb..._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_00trrg8._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0ejzn1e._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0sjchy6._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0w4gpvr._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0x6hh0t._.js +0 -4
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0t6p.qm._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0-wlbe.ripd2w.css +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/014z_yruiincl.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/041-dhls9zkl1.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/069yt_7prdxsp.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0e6rxcxy.l5c8.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0ime4btrg-g4l.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0j-nhn61e~nnj.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0jglardpw~5uc.js +0 -37
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0l3v45kd.9is_.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0ng6wy4ak35jg.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0n~jhoq~op4e5.js +0 -16
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0p-rdas54yo~w.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0pdrpsy-zdxp0.js +0 -5
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0p~l5ap6qqx2o.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0tm20~ec~occu.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0w94x-v00osq0.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0xwny92a.ad_i.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/11l2tww5f0hsk.js +0 -20
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/12qohmk-~yrtg.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/14v~9vx3tdv85.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/16fyhcmwlw3th.js +0 -6
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/18e8w~~mvoh5o.js +0 -1
- package/cloud-runtime/standalone/apps/local/components/setup/ProjectStep.tsx +0 -189
- package/cloud-runtime/standalone/apps/local/components/setup/TeamsStep.tsx +0 -500
- /package/cloud-runtime/standalone/apps/local/.next/static/{qPuactsz6OYimwT6dSdHn → 438GF86gZtccU2fS12URB}/_buildManifest.js +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/static/{qPuactsz6OYimwT6dSdHn → 438GF86gZtccU2fS12URB}/_clientMiddlewareManifest.js +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/static/{qPuactsz6OYimwT6dSdHn → 438GF86gZtccU2fS12URB}/_ssgManifest.js +0 -0
|
@@ -8,9 +8,11 @@ interface SetupLayoutProps {
|
|
|
8
8
|
totalSteps: number;
|
|
9
9
|
children: React.ReactNode;
|
|
10
10
|
footer?: React.ReactNode;
|
|
11
|
+
wide?: boolean;
|
|
11
12
|
}
|
|
12
13
|
|
|
13
|
-
export function SetupLayout({ currentStep, totalSteps, children, footer }: SetupLayoutProps) {
|
|
14
|
+
export function SetupLayout({ currentStep, totalSteps, children, footer, wide }: SetupLayoutProps) {
|
|
15
|
+
const maxW = wide ? "max-w-6xl" : "max-w-2xl";
|
|
14
16
|
return (
|
|
15
17
|
<div className="h-screen w-full flex flex-col bg-[var(--background)]">
|
|
16
18
|
{/* Header with step indicator */}
|
|
@@ -19,8 +21,8 @@ export function SetupLayout({ currentStep, totalSteps, children, footer }: Setup
|
|
|
19
21
|
</div>
|
|
20
22
|
|
|
21
23
|
{/* Content area — scrollable */}
|
|
22
|
-
<div className="flex-1 overflow-y-auto px-4">
|
|
23
|
-
<div className=
|
|
24
|
+
<div className="flex-1 overflow-y-auto px-4 min-h-0">
|
|
25
|
+
<div className={`${maxW} mx-auto w-full py-6 h-full`}>
|
|
24
26
|
{children}
|
|
25
27
|
</div>
|
|
26
28
|
</div>
|
|
@@ -28,7 +30,7 @@ export function SetupLayout({ currentStep, totalSteps, children, footer }: Setup
|
|
|
28
30
|
{/* Footer — sticky at bottom */}
|
|
29
31
|
{footer && (
|
|
30
32
|
<div className="border-t border-[var(--border)] bg-[var(--background)] px-4 py-4">
|
|
31
|
-
<div className=
|
|
33
|
+
<div className={`${maxW} mx-auto w-full`}>
|
|
32
34
|
{footer}
|
|
33
35
|
</div>
|
|
34
36
|
</div>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
-
import { useEffect, useRef, useState
|
|
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 {
|
|
14
|
+
import { Pencil, Plus, Terminal, X } from "lucide-react";
|
|
15
15
|
|
|
16
|
-
const
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
{
|
|
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
|
-
|
|
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
|
|
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=
|
|
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
|
-
|
|
579
|
-
? {
|
|
580
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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;
|
|
@@ -92,7 +92,7 @@ function RailTooltip({ label, children }: { label: string; children: React.React
|
|
|
92
92
|
const [pos, setPos] = useState<{ top: number; left: number } | null>(null);
|
|
93
93
|
|
|
94
94
|
const show = () => {
|
|
95
|
-
const el = ref.current;
|
|
95
|
+
const el = (ref.current?.firstElementChild ?? ref.current) as HTMLElement | null;
|
|
96
96
|
if (!el) return;
|
|
97
97
|
const rect = el.getBoundingClientRect();
|
|
98
98
|
setPos({ top: rect.top + rect.height / 2, left: rect.right + 8 });
|
|
@@ -1426,7 +1426,7 @@ export function WorkspaceSidebar({
|
|
|
1426
1426
|
headers: { "Content-Type": "application/json" },
|
|
1427
1427
|
body: JSON.stringify({
|
|
1428
1428
|
id, name: data.name, provider: data.provider, model: data.model, color: data.color ?? color,
|
|
1429
|
-
...(data.
|
|
1429
|
+
...(data.role ? { role: data.role } : {}),
|
|
1430
1430
|
...(data.identity ? { identity: data.identity } : {}),
|
|
1431
1431
|
skills: data.skills ?? [],
|
|
1432
1432
|
skillBindings: data.skillBindings ?? [],
|
|
@@ -1585,7 +1585,7 @@ export function WorkspaceSidebar({
|
|
|
1585
1585
|
title="Edit agent"
|
|
1586
1586
|
initial={{
|
|
1587
1587
|
name: agentDetailAgent.name,
|
|
1588
|
-
|
|
1588
|
+
role: agentDetailAgent.role || "",
|
|
1589
1589
|
provider: agentDetailAgent.provider,
|
|
1590
1590
|
model: agentDetailAgent.model || "",
|
|
1591
1591
|
identity: agentDetailAgent.identity || "",
|
|
@@ -1606,7 +1606,7 @@ export function WorkspaceSidebar({
|
|
|
1606
1606
|
await onUpdateParticipant({
|
|
1607
1607
|
...agentDetailAgent,
|
|
1608
1608
|
name: data.name,
|
|
1609
|
-
|
|
1609
|
+
role: data.role || undefined,
|
|
1610
1610
|
provider: data.provider,
|
|
1611
1611
|
model: data.model,
|
|
1612
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)
|
|
76
|
-
|
|
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 {
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { useEffect, useState } from "react";
|
|
4
|
+
|
|
5
|
+
export function useLinearActiveAgents(projectId?: string): {
|
|
6
|
+
issueActiveAgents: Map<string, Array<{ agentId: string; agentName: string }>>;
|
|
7
|
+
} {
|
|
8
|
+
const [issueActiveAgents, setIssueActiveAgents] = useState<Map<string, Array<{ agentId: string; agentName: string }>>>(new Map());
|
|
9
|
+
|
|
10
|
+
useEffect(() => {
|
|
11
|
+
let cancelled = false;
|
|
12
|
+
|
|
13
|
+
async function fetchActiveAgents() {
|
|
14
|
+
try {
|
|
15
|
+
const params = new URLSearchParams();
|
|
16
|
+
if (projectId) params.set("projectId", projectId);
|
|
17
|
+
const res = await fetch(`/api/linear/issues/active-agents?${params}`);
|
|
18
|
+
if (!res.ok || cancelled) return;
|
|
19
|
+
const data = await res.json();
|
|
20
|
+
const map = new Map<string, Array<{ agentId: string; agentName: string }>>();
|
|
21
|
+
for (const entry of data.agents ?? []) {
|
|
22
|
+
const list = map.get(entry.issueId) ?? [];
|
|
23
|
+
list.push({ agentId: entry.agentId, agentName: entry.agentName });
|
|
24
|
+
map.set(entry.issueId, list);
|
|
25
|
+
}
|
|
26
|
+
if (!cancelled) setIssueActiveAgents(map);
|
|
27
|
+
} catch {
|
|
28
|
+
// ignore
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
void fetchActiveAgents();
|
|
33
|
+
const interval = setInterval(() => void fetchActiveAgents(), 5000);
|
|
34
|
+
return () => { cancelled = true; clearInterval(interval); };
|
|
35
|
+
}, [projectId]);
|
|
36
|
+
|
|
37
|
+
return { issueActiveAgents };
|
|
38
|
+
}
|