@mndrk/agx 2.0.55 → 2.0.56
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 +5 -0
- package/cloud-runtime/standalone/apps/local/.next/BUILD_ID +1 -1
- package/cloud-runtime/standalone/apps/local/.next/app-path-routes-manifest.json +1 -0
- 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/required-server-files.json +5 -0
- package/cloud-runtime/standalone/apps/local/.next/routes-manifest.json +8 -0
- 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.js.nft.json +1 -1
- 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/export/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/automations/create/route.js +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/automations/create/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/daemon/route.js +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/graphs/[graphId]/nodes/[nodeId]/route.js +3 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/graphs/[graphId]/nodes/[nodeId]/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]/scheduled-tasks/route.js +17 -7
- 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]/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 +13 -13
- 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 +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/schedules/route.js +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/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 +4 -4
- 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.js.nft.json +1 -1
- 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 +5 -5
- package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/_full.segment.rsc +5 -5
- 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 +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/automations/__PAGE__.segment.rsc +3 -3
- 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.js.nft.json +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 +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_full.segment.rsc +2 -2
- 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 +2 -2
- 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/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page/build-manifest.json +18 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page/next-font-manifest.json +11 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page/react-loadable-manifest.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page.js +14 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page.js.map +5 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page_client-reference-manifest.js +3 -0
- 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 +2 -2
- 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.js.nft.json +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 +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/_full.segment.rsc +3 -3
- 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 +2 -2
- 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_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 +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_full.segment.rsc +3 -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 +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/setup/__PAGE__.segment.rsc +2 -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.js.nft.json +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.js.nft.json +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/app-paths-manifest.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__09joc_o._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0g50c6p._.js +237 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0o315az._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0t2jk2r._.js +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0tdixb0._.js +49 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__0gvjvx7._.js → [root-of-the-server]__0xdp_8-._.js} +25 -25
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/_0y42h_~._.js +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/_0~fjhfa._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/_12yasaj._.js +9 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_prompt-scheduler_processor_ts_022nz2u._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_prompt-scheduler_processor_ts_0i1av_r._.js +11 -10
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0yvelwy.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/02dz_local__next-internal_server_app_projects_[slug]_folders_page_actions_03fg4j9.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/0rhn_lucide-react_dist_esm_0qzjdog._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/0rhn_lucide-react_dist_esm_icons_0a-mbbj._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/0rhn_lucide-react_dist_esm_icons_0e2_v_.._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/0rhn_lucide-react_dist_esm_icons_0w3hl3p._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__07johgg._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__08d5c~o._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0_n~ybp._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0fl7_-o._.js +18 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0h~rb5r._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0r3w68h._.js +18 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0x7k~pk._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{[root-of-the-server]__0hd2vo4._.js → [root-of-the-server]__0y8j6el._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0yme9fy._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0~7q5sw._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__13eqcxp._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{_0s~0ump._.js → _064h43p._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0742x_.._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{_09b42z9._.js → _09~glsn._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0ejzn1e._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0fwy5tm._.js +7 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0ndrb_0._.js +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0sjchy6._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0ufdu.z._.js +7 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{_03rf_sb._.js → _0wk3skw._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0yffwm4._.js +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_03z24q2._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_04hvzn_._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0_4hk8x._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0_ac-.f._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0a-8i4p._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0h3mfm7._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0nvzo3y._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_11k_-8~._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_execution-graph_page_tsx_0tn2sx9._.js +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_folders_page_tsx_0ju618z._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_graph_[taskId]_page_tsx_0bctfd-._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_layout_tsx_0aaa3~t._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_linear_page_tsx_0a~n5y8._.js +2 -2
- 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_page_tsx_06czvz-._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_terminal_page_tsx_01n9qk.._.js +12 -12
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_orphans_page_tsx_0sdv.11._.js +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_TaskCard_tsx_0e35_z5._.js +6 -6
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_chat-ui_ChatContainer_tsx_0c9fjtl._.js +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_projects_ProjectObjectivesWorkspace_tsx_0k4tfip._.js +4 -4
- 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/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0mk0s0o.js +4 -0
- 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/next-font-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/next-font-manifest.json +4 -0
- 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/0-_ukhpeg429c.js +16 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0-olq~7zw3wjy.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0142ce0jj3j7r.js → 0-vo_x2cxmjm3.js} +1 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0.4d8rshxivwh.js +20 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{1011~1x9nj4ny.js → 00lise4d-u8d1.js} +1 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0~apd0q5_i88z.js → 02p3n7faotpr9.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/02zcxdul-1jaf.js +28 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/055bzj5jfgzr0.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/05c-~4v_jrblf.css +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/07646a0h94826.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/08~pgzjb13k_v.js +5 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/09wzd7y~tk-3~.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0px65ynyk3t1d.js → 0bchtyu6m.2yv.js} +7 -7
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0brmd4~76pthy.js +20 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0f7i3ae1ynhf3.css +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0.a4-dh~x9sa3.js → 0hudzktaaxr4g.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{09-_2lcshmjl5.js → 0hzq698w6f4m6.js} +1 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0i.su2yr26wb6.js +37 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0jonp-o8lh-4j.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0jsbvcyub73d9.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0l2pt2td_87wr.js +5 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0l3v45kd.9is_.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0lgb.0~i1xvv-.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0lkal3uvr6_~2.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0mvqoz13v0o2a.js +5 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0o9cxba_5mv2c.js +5 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0p7s38p3bcffh.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0q2dgbluvgxf2.js +16 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0r0c9y6.8.m5p.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0h_bwlg~kk8lz.js → 0rey9zfvm3yhd.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0ucg8e2wkd8gf.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0uve8xrt~0a2e.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0x_pewz9npq~q.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0xwny92a.ad_i.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0ov5lu0tz2o2e.js → 104xjvrf6y-zq.js} +1 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0rm7v.1y6qcni.js → 11-u35xqxu~i-.js} +1 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/14v~9vx3tdv85.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0826uh6nmsi5l.js → 1503vb7lb6.g1.js} +1 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0o0hwfzwwty4b.js → 15jlly_p-g4c8.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/16nozeadjid9-.js +5 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/177-q0wwdi0qe.js +1 -0
- package/cloud-runtime/standalone/apps/local/agx-server.js +4055 -0
- package/cloud-runtime/standalone/apps/local/app/api/automations/route.ts +10 -2
- package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/objectives/[objectiveId]/scheduled-tasks/route.ts +16 -0
- package/cloud-runtime/standalone/apps/local/app/api/prompt-jobs/route.ts +8 -1
- package/cloud-runtime/standalone/apps/local/app/globals.css +67 -5
- package/cloud-runtime/standalone/apps/local/app/projects/[slug]/folders/page.tsx +25 -0
- package/cloud-runtime/standalone/apps/local/app/projects/[slug]/layout.tsx +19 -5
- package/cloud-runtime/standalone/apps/local/app/projects/[slug]/objectives/[objectiveId]/page.tsx +7 -2
- package/cloud-runtime/standalone/apps/local/bundled-server.ts +45 -0
- package/cloud-runtime/standalone/apps/local/components/ActionToolbar.tsx +5 -2
- package/cloud-runtime/standalone/apps/local/components/AutomationsBoard.tsx +35 -3
- package/cloud-runtime/standalone/apps/local/components/ContextMenu.tsx +2 -2
- package/cloud-runtime/standalone/apps/local/components/FloatingPanel.tsx +36 -14
- package/cloud-runtime/standalone/apps/local/components/IconButton.tsx +10 -2
- package/cloud-runtime/standalone/apps/local/components/KanbanBoard.tsx +84 -3
- package/cloud-runtime/standalone/apps/local/components/LinearBoard.tsx +382 -13
- package/cloud-runtime/standalone/apps/local/components/LogTimeline.tsx +4 -1
- package/cloud-runtime/standalone/apps/local/components/NowRunningPanel.tsx +3 -1
- package/cloud-runtime/standalone/apps/local/components/PromptJobBoard.tsx +46 -6
- package/cloud-runtime/standalone/apps/local/components/SearchCombo.tsx +3 -3
- package/cloud-runtime/standalone/apps/local/components/SortableTaskCard.tsx +21 -3
- package/cloud-runtime/standalone/apps/local/components/StatusCircle.tsx +3 -3
- package/cloud-runtime/standalone/apps/local/components/TaskCard.tsx +51 -1
- package/cloud-runtime/standalone/apps/local/components/chat-ui/ChatContainer.tsx +15 -2
- package/cloud-runtime/standalone/apps/local/components/chat-ui/Composer.tsx +3 -3
- package/cloud-runtime/standalone/apps/local/components/chat-ui/ParticipantBar.tsx +76 -9
- package/cloud-runtime/standalone/apps/local/components/graph/ExecutionGraphPanel.tsx +4 -1
- package/cloud-runtime/standalone/apps/local/components/graph/GraphFirstView.tsx +6 -2
- package/cloud-runtime/standalone/apps/local/components/graph/NodeDetailPanel.tsx +29 -14
- package/cloud-runtime/standalone/apps/local/components/graph/NodeInspector.tsx +9 -6
- package/cloud-runtime/standalone/apps/local/components/projects/FoldersSummaryCard.tsx +16 -16
- package/cloud-runtime/standalone/apps/local/components/projects/FoldersView.tsx +856 -0
- package/cloud-runtime/standalone/apps/local/components/projects/ObjectiveActivityTimeline.tsx +40 -32
- package/cloud-runtime/standalone/apps/local/components/projects/ObjectiveScheduledTasksPanel.tsx +172 -49
- package/cloud-runtime/standalone/apps/local/components/projects/ProjectHome.tsx +4 -4
- package/cloud-runtime/standalone/apps/local/components/projects/ProjectObjectivesWorkspace.tsx +347 -168
- package/cloud-runtime/standalone/apps/local/components/projects/ProjectSearchBar.tsx +4 -2
- package/cloud-runtime/standalone/apps/local/components/projects/ScheduledTasksSummaryCard.tsx +19 -19
- package/cloud-runtime/standalone/apps/local/components/projects/TeamsSummaryCard.tsx +10 -10
- package/cloud-runtime/standalone/apps/local/components/projects/TeamsView.tsx +50 -50
- package/cloud-runtime/standalone/apps/local/components/projects/WorkingNowCard.tsx +12 -12
- package/cloud-runtime/standalone/apps/local/components/projects/home/ObjectiveCard.tsx +13 -10
- package/cloud-runtime/standalone/apps/local/components/projects/home/ObjectivesSection.tsx +7 -7
- package/cloud-runtime/standalone/apps/local/components/projects/home/ToolPathCard.tsx +2 -2
- package/cloud-runtime/standalone/apps/local/components/projects/home/ToolPathsSection.tsx +9 -9
- package/cloud-runtime/standalone/apps/local/components/scheduling/ScheduleConditionPicker.tsx +3 -3
- package/cloud-runtime/standalone/apps/local/components/terminal/ProjectTerminal.tsx +211 -77
- package/cloud-runtime/standalone/apps/local/components/terminal/TerminalSessionList.tsx +3 -1
- package/cloud-runtime/standalone/apps/local/components/thread/WorkspaceSidebar.tsx +72 -21
- package/cloud-runtime/standalone/apps/local/hooks/useInputCapabilities.ts +74 -0
- package/cloud-runtime/standalone/apps/local/lib/app-config.ts +35 -0
- package/cloud-runtime/standalone/apps/local/lib/pty-manager.ts +5 -1
- package/cloud-runtime/standalone/apps/local/lib/terminal-server.ts +182 -0
- package/cloud-runtime/standalone/apps/local/next.config.ts +2 -1
- package/cloud-runtime/standalone/apps/local/package.json +2 -2
- package/cloud-runtime/standalone/apps/local/playwright.config.ts +8 -0
- package/cloud-runtime/standalone/apps/local/server.js +1 -1
- package/cloud-runtime/standalone/apps/local/server.ts +14 -158
- package/cloud-runtime/standalone/apps/local/src/graph/types.ts +2 -0
- package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/cron.ts +11 -0
- package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/processor.ts +325 -88
- package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/types.ts +20 -0
- package/cloud-runtime/standalone/apps/local/state/windowState.ts +11 -0
- package/cloud-runtime/standalone/apps/local/styles/workspaceSidebar.css +65 -0
- package/cloud-runtime/standalone/apps/local/worker/index.js +0 -4
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/darwin-arm64/pty.node +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/darwin-arm64/spawn-helper +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/darwin-x64/pty.node +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/darwin-x64/spawn-helper +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-arm64/conpty/OpenConsole.exe +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-arm64/conpty/conpty.dll +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-arm64/conpty.node +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-arm64/conpty.pdb +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-arm64/conpty_console_list.node +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-arm64/conpty_console_list.pdb +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-arm64/pty.node +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-arm64/pty.pdb +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-arm64/winpty-agent.exe +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-arm64/winpty-agent.pdb +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-arm64/winpty.dll +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-arm64/winpty.pdb +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-x64/conpty/OpenConsole.exe +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-x64/conpty/conpty.dll +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-x64/conpty.node +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-x64/conpty.pdb +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-x64/conpty_console_list.node +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-x64/conpty_console_list.pdb +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-x64/pty.node +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-x64/pty.pdb +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-x64/winpty-agent.exe +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-x64/winpty-agent.pdb +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-x64/winpty.dll +0 -0
- package/cloud-runtime/standalone/node_modules/node-pty/prebuilds/win32-x64/winpty.pdb +0 -0
- package/lib/cli/daemon.js +13 -2
- package/lib/cli/onboarding.js +5 -6
- package/lib/cli/runCli.js +1 -1
- package/lib/cloud/client.js +1 -1
- package/lib/commands/chat.js +37 -11
- package/lib/commands/daemonBoard.js +19 -13
- package/lib/config/cloudConfig.js +1 -1
- package/lib/orchestrator/httpClient.js +1 -1
- package/lib/prompts/templates.js +8 -9
- package/package.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__01ol22y._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__088h0r2._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__094z9yf._.js +0 -9
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0avz575._.js +0 -49
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0xxf2a0.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/0rhn_lucide-react_dist_esm_0xd_mxu._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__044xm0q._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__066ay_e._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__09smg3p._.js +0 -18
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0iix1sf._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0r54zr9._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0s8z2_c._.js +0 -18
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0w1mm2j._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0wq3ukc._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__13h-0om._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_03-mlx0._.js +0 -7
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0ag3.tl._.js +0 -7
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0dh_hx0._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0h8cbsi._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0i1ffhz._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0nlki7b._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0_q01av._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0eh.4j7._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0qaowqy._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0s0iy2_._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0zr-_na._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_10qsqky._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0.bv3h68wo33z.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/016.x9zt9~rsh.js +0 -16
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/027-6dwgpb0cy.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/031720jijg_th.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/03m1xs0rztynh.js +0 -16
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/07o~9mm~xds_b.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/08zgoptetnxjj.css +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/09_yj-9nfh48m.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/09c7ssmgohk7l.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0awbe2r3qazge.css +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0dro-bz6f72z0.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0gbunx8z.~i4x.js +0 -5
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0ge81r~ap.u7n.js +0 -28
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0ghg5160qeazw.js +0 -5
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0gl_8hdxl5qnd.js +0 -37
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0g~v8p6_pc46-.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0jb4f8425s.-2.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0kukkarp4un0o.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0m.2b-cekea8b.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0pt8_y9asrg~7.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0wyg4lymaq0hg.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0xl~1ux2f~rcu.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0y7-eze-w7~b4.js +0 -5
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0y8e--tok1214.js +0 -5
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0yy~0bgsz~o6-.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/100xrwo-45nrg.js +0 -20
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/14h3qxwuo~1q9.js +0 -20
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/17oesq5eds3xi.js +0 -1
- /package/cloud-runtime/standalone/apps/local/.next/static/{z8XjY2Aj-ox_Dro192i4I → fPVnk_kTRzrxXr7U3TRFW}/_buildManifest.js +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/static/{z8XjY2Aj-ox_Dro192i4I → fPVnk_kTRzrxXr7U3TRFW}/_clientMiddlewareManifest.js +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/static/{z8XjY2Aj-ox_Dro192i4I → fPVnk_kTRzrxXr7U3TRFW}/_ssgManifest.js +0 -0
|
@@ -26,6 +26,7 @@ import {
|
|
|
26
26
|
FALLBACK_STAGE_CONFIG,
|
|
27
27
|
type StageConfig
|
|
28
28
|
} from "@/hooks/useWorkflows";
|
|
29
|
+
import { useInputCapabilities } from "@/hooks/useInputCapabilities";
|
|
29
30
|
|
|
30
31
|
// Re-export for backward compatibility
|
|
31
32
|
export const STAGES = FALLBACK_STAGES;
|
|
@@ -60,6 +61,7 @@ export default function KanbanBoard({
|
|
|
60
61
|
creatingStage,
|
|
61
62
|
graphColumnFn,
|
|
62
63
|
}: KanbanBoardProps) {
|
|
64
|
+
const { isTouchLayout } = useInputCapabilities();
|
|
63
65
|
// Use props or fallbacks
|
|
64
66
|
const stages = propStages || FALLBACK_STAGES;
|
|
65
67
|
const stageConfigMap = propStageConfig || FALLBACK_STAGE_CONFIG;
|
|
@@ -387,6 +389,46 @@ export default function KanbanBoard({
|
|
|
387
389
|
}
|
|
388
390
|
}
|
|
389
391
|
|
|
392
|
+
const handleStageMove = useCallback(async (task: Task, targetStage: string) => {
|
|
393
|
+
const originalStage = getColumn(task);
|
|
394
|
+
if (!checkTransition(originalStage || "", targetStage)) {
|
|
395
|
+
return;
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
const targetTasks = localTasks.filter((entry) => entry.id !== task.id && getColumn(entry) === targetStage);
|
|
399
|
+
const nextPriority =
|
|
400
|
+
targetTasks.length > 0
|
|
401
|
+
? Math.max(...targetTasks.map((entry) => entry.priority || 0)) + 1
|
|
402
|
+
: 0;
|
|
403
|
+
|
|
404
|
+
const nextTasks = localTasks.map((entry) =>
|
|
405
|
+
entry.id === task.id
|
|
406
|
+
? {
|
|
407
|
+
...entry,
|
|
408
|
+
stage: targetStage as Task["stage"],
|
|
409
|
+
priority: nextPriority,
|
|
410
|
+
}
|
|
411
|
+
: entry
|
|
412
|
+
);
|
|
413
|
+
|
|
414
|
+
setLocalTasks(nextTasks);
|
|
415
|
+
onTasksChange?.(nextTasks);
|
|
416
|
+
|
|
417
|
+
if (!onTaskUpdate) {
|
|
418
|
+
return;
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
try {
|
|
422
|
+
await onTaskUpdate(task.id, {
|
|
423
|
+
stage: targetStage as Task["stage"],
|
|
424
|
+
priority: nextPriority,
|
|
425
|
+
});
|
|
426
|
+
} catch (error) {
|
|
427
|
+
console.error("Failed to update task:", error);
|
|
428
|
+
setLocalTasks(tasks);
|
|
429
|
+
}
|
|
430
|
+
}, [checkTransition, localTasks, onTaskUpdate, onTasksChange, tasks]);
|
|
431
|
+
|
|
390
432
|
return (
|
|
391
433
|
<DndContext
|
|
392
434
|
sensors={sensors}
|
|
@@ -443,10 +485,13 @@ export default function KanbanBoard({
|
|
|
443
485
|
stage={stage}
|
|
444
486
|
tasks={grouped[stage] || []}
|
|
445
487
|
allTasks={localTasks}
|
|
488
|
+
stages={stages}
|
|
489
|
+
isTouchLayout={isTouchLayout}
|
|
446
490
|
selectedTaskId={selectedTaskId}
|
|
447
491
|
setSelectedTaskId={setSelectedTaskId}
|
|
448
492
|
onSelectTask={onSelectTask}
|
|
449
493
|
onTaskUpdate={onTaskUpdate}
|
|
494
|
+
onStageMove={handleStageMove}
|
|
450
495
|
index={index}
|
|
451
496
|
onAddTask={onAddTask}
|
|
452
497
|
config={stageConfigMap[stage] || { icon: '📌', label: stage, color: 'var(--primary)' }}
|
|
@@ -471,10 +516,13 @@ interface StageColumnProps {
|
|
|
471
516
|
stage: string;
|
|
472
517
|
tasks: Task[];
|
|
473
518
|
allTasks: Task[];
|
|
519
|
+
stages: readonly string[];
|
|
520
|
+
isTouchLayout: boolean;
|
|
474
521
|
selectedTaskId: string | null;
|
|
475
522
|
setSelectedTaskId: (id: string | null) => void;
|
|
476
523
|
onSelectTask?: (task: Task) => void;
|
|
477
524
|
onTaskUpdate?: (taskId: string, updates: Partial<Task>) => Promise<void>;
|
|
525
|
+
onStageMove?: (task: Task, targetStage: string) => void | Promise<void>;
|
|
478
526
|
index: number;
|
|
479
527
|
onAddTask?: (title: string, stage: string) => void;
|
|
480
528
|
config: StageConfig;
|
|
@@ -485,10 +533,13 @@ function StageColumn({
|
|
|
485
533
|
stage,
|
|
486
534
|
tasks,
|
|
487
535
|
allTasks,
|
|
536
|
+
stages,
|
|
537
|
+
isTouchLayout,
|
|
488
538
|
selectedTaskId,
|
|
489
539
|
setSelectedTaskId,
|
|
490
540
|
onSelectTask,
|
|
491
541
|
onTaskUpdate,
|
|
542
|
+
onStageMove,
|
|
492
543
|
index,
|
|
493
544
|
onAddTask,
|
|
494
545
|
config,
|
|
@@ -527,10 +578,13 @@ function StageColumn({
|
|
|
527
578
|
stage={stage}
|
|
528
579
|
tasks={tasks}
|
|
529
580
|
allTasks={allTasks}
|
|
581
|
+
stages={stages}
|
|
582
|
+
isTouchLayout={isTouchLayout}
|
|
530
583
|
selectedTaskId={selectedTaskId}
|
|
531
584
|
setSelectedTaskId={setSelectedTaskId}
|
|
532
585
|
onSelectTask={onSelectTask}
|
|
533
586
|
onTaskUpdate={onTaskUpdate}
|
|
587
|
+
onStageMove={onStageMove}
|
|
534
588
|
config={config}
|
|
535
589
|
onAddTask={onAddTask}
|
|
536
590
|
isCreating={isCreating}
|
|
@@ -543,16 +597,33 @@ interface FlatColumnContentProps {
|
|
|
543
597
|
stage: string;
|
|
544
598
|
tasks: Task[];
|
|
545
599
|
allTasks: Task[];
|
|
600
|
+
stages: readonly string[];
|
|
601
|
+
isTouchLayout: boolean;
|
|
546
602
|
selectedTaskId: string | null;
|
|
547
603
|
setSelectedTaskId: (id: string | null) => void;
|
|
548
604
|
onSelectTask?: (task: Task) => void;
|
|
549
605
|
onTaskUpdate?: (taskId: string, updates: Partial<Task>) => Promise<void>;
|
|
606
|
+
onStageMove?: (task: Task, targetStage: string) => void | Promise<void>;
|
|
550
607
|
config: StageConfig;
|
|
551
608
|
onAddTask?: (title: string, stage: string) => void;
|
|
552
609
|
isCreating?: boolean;
|
|
553
610
|
}
|
|
554
611
|
|
|
555
|
-
function FlatColumnContent({
|
|
612
|
+
function FlatColumnContent({
|
|
613
|
+
stage,
|
|
614
|
+
tasks,
|
|
615
|
+
allTasks,
|
|
616
|
+
stages,
|
|
617
|
+
isTouchLayout,
|
|
618
|
+
selectedTaskId,
|
|
619
|
+
setSelectedTaskId,
|
|
620
|
+
onSelectTask,
|
|
621
|
+
onTaskUpdate,
|
|
622
|
+
onStageMove,
|
|
623
|
+
config,
|
|
624
|
+
onAddTask,
|
|
625
|
+
isCreating,
|
|
626
|
+
}: FlatColumnContentProps) {
|
|
556
627
|
const allIds = useMemo(() => tasks.map(t => t.id), [tasks]);
|
|
557
628
|
const [isAdding, setIsAdding] = useState(false);
|
|
558
629
|
const [newTitle, setNewTitle] = useState('');
|
|
@@ -655,6 +726,18 @@ function FlatColumnContent({ stage, tasks, allTasks, selectedTaskId, setSelected
|
|
|
655
726
|
onClick={() => onSelectTask?.(task)}
|
|
656
727
|
onStatusChange={onTaskUpdate ? (s) => onTaskUpdate(task.id, { status: s }) : undefined}
|
|
657
728
|
onApprovalModeChange={onTaskUpdate ? (m) => onTaskUpdate(task.id, { approval_mode: m }) : undefined}
|
|
729
|
+
onStageChange={
|
|
730
|
+
isTouchLayout && onStageMove
|
|
731
|
+
? (nextStage) => {
|
|
732
|
+
if (nextStage) {
|
|
733
|
+
void onStageMove(task, nextStage);
|
|
734
|
+
}
|
|
735
|
+
}
|
|
736
|
+
: undefined
|
|
737
|
+
}
|
|
738
|
+
stageOptions={isTouchLayout ? stages : undefined}
|
|
739
|
+
currentStage={stage}
|
|
740
|
+
dragDisabled={isTouchLayout}
|
|
658
741
|
allTasks={allTasks}
|
|
659
742
|
relationship={rel}
|
|
660
743
|
/>
|
|
@@ -677,5 +760,3 @@ function FlatColumnContent({ stage, tasks, allTasks, selectedTaskId, setSelected
|
|
|
677
760
|
</SortableContext>
|
|
678
761
|
);
|
|
679
762
|
}
|
|
680
|
-
|
|
681
|
-
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import React, { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
4
4
|
import dynamic from "next/dynamic";
|
|
5
|
-
import { ArrowDown, ArrowUp, Check, ChevronDown, Clock, ExternalLink, FileText, Link2, Play, Plus, RefreshCw, Search, Settings, User } from "lucide-react";
|
|
5
|
+
import { ArrowDown, ArrowUp, Check, ChevronDown, Clock, ExternalLink, FileText, Link2, Play, Plus, RefreshCw, Search, Settings, User, X } from "lucide-react";
|
|
6
6
|
import { useUrlSelection } from "@/hooks/useUrlSelection";
|
|
7
7
|
import { useLinearIssues, type LinearIssue } from "@/hooks/useLinearIssues";
|
|
8
8
|
import { useLinearConnection } from "@/hooks/useLinearConnection";
|
|
@@ -13,6 +13,7 @@ import { useProcessPolling } from "@/hooks/useProcessPolling";
|
|
|
13
13
|
import { Markdown } from "@/components/chat-ui/Markdown";
|
|
14
14
|
import RunScriptManager from "@/components/linear/RunScriptManager";
|
|
15
15
|
import { stripMarkers } from "@/lib/chat-utils";
|
|
16
|
+
import { useInputCapabilities } from "@/hooks/useInputCapabilities";
|
|
16
17
|
import {
|
|
17
18
|
loadLinearBoardFilters,
|
|
18
19
|
persistLinearBoardFilters,
|
|
@@ -36,6 +37,10 @@ const Composer = dynamic(
|
|
|
36
37
|
{ ssr: false }
|
|
37
38
|
);
|
|
38
39
|
|
|
40
|
+
function createThreadId() {
|
|
41
|
+
return globalThis.crypto?.randomUUID?.() ?? `thread-${Date.now()}-${Math.random().toString(36).slice(2)}`;
|
|
42
|
+
}
|
|
43
|
+
|
|
39
44
|
function ResizeHandle({
|
|
40
45
|
onResize,
|
|
41
46
|
}: {
|
|
@@ -316,14 +321,14 @@ function FilterPopdown({
|
|
|
316
321
|
return;
|
|
317
322
|
}
|
|
318
323
|
|
|
319
|
-
const handlePointerDown = (event:
|
|
324
|
+
const handlePointerDown = (event: PointerEvent) => {
|
|
320
325
|
if (wrapperRef.current && !wrapperRef.current.contains(event.target as Node)) {
|
|
321
326
|
setOpen(false);
|
|
322
327
|
}
|
|
323
328
|
};
|
|
324
329
|
|
|
325
|
-
document.addEventListener("
|
|
326
|
-
return () => document.removeEventListener("
|
|
330
|
+
document.addEventListener("pointerdown", handlePointerDown);
|
|
331
|
+
return () => document.removeEventListener("pointerdown", handlePointerDown);
|
|
327
332
|
}, [open]);
|
|
328
333
|
|
|
329
334
|
useEffect(() => {
|
|
@@ -420,14 +425,14 @@ function MultiFilterPopdown({
|
|
|
420
425
|
return;
|
|
421
426
|
}
|
|
422
427
|
|
|
423
|
-
const handlePointerDown = (event:
|
|
428
|
+
const handlePointerDown = (event: PointerEvent) => {
|
|
424
429
|
if (wrapperRef.current && !wrapperRef.current.contains(event.target as Node)) {
|
|
425
430
|
setOpen(false);
|
|
426
431
|
}
|
|
427
432
|
};
|
|
428
433
|
|
|
429
|
-
document.addEventListener("
|
|
430
|
-
return () => document.removeEventListener("
|
|
434
|
+
document.addEventListener("pointerdown", handlePointerDown);
|
|
435
|
+
return () => document.removeEventListener("pointerdown", handlePointerDown);
|
|
431
436
|
}, [open]);
|
|
432
437
|
|
|
433
438
|
const toggleValue = useCallback(
|
|
@@ -591,7 +596,10 @@ function TicketChatStarter({
|
|
|
591
596
|
const defaultAgent = participants[0];
|
|
592
597
|
const sessionScriptButtonLabel =
|
|
593
598
|
activeSessionScriptLabel === "AGX default" ? "Session script" : activeSessionScriptLabel;
|
|
594
|
-
const threadIdRef = useRef(
|
|
599
|
+
const threadIdRef = useRef<string | null>(null);
|
|
600
|
+
if (!threadIdRef.current) {
|
|
601
|
+
threadIdRef.current = createThreadId();
|
|
602
|
+
}
|
|
595
603
|
const { messages, setMessages, sendMessage, chatRuns } = useGroupChat(threadIdRef.current);
|
|
596
604
|
const { processes, streaming } = useProcessPolling(
|
|
597
605
|
{ workspaceId: threadIdRef.current },
|
|
@@ -1201,6 +1209,7 @@ interface LinearBoardProps {
|
|
|
1201
1209
|
}
|
|
1202
1210
|
|
|
1203
1211
|
export default function LinearBoard({ projectId, projectSlug, initialShowSettings }: LinearBoardProps) {
|
|
1212
|
+
const { isTouchLayout } = useInputCapabilities();
|
|
1204
1213
|
const {
|
|
1205
1214
|
connected,
|
|
1206
1215
|
loading: connectionLoading,
|
|
@@ -1238,6 +1247,7 @@ export default function LinearBoard({ projectId, projectSlug, initialShowSetting
|
|
|
1238
1247
|
const [issueActiveAgents, setIssueActiveAgents] = useState<Map<string, Array<{ agentId: string; agentName: string }>>>(new Map());
|
|
1239
1248
|
const [pickerIssue, setPickerIssue] = useState<LinearIssue | null>(null);
|
|
1240
1249
|
const [pickerAnchor, setPickerAnchor] = useState<{ top: number; left: number } | null>(null);
|
|
1250
|
+
const [touchPanelTab, setTouchPanelTab] = useState<"runs" | "ticket">("runs");
|
|
1241
1251
|
const searchDebounceRef = useRef<ReturnType<typeof setTimeout> | null>(null);
|
|
1242
1252
|
const skipNextFilterPersistRef = useRef(true);
|
|
1243
1253
|
const runScriptsButtonRef = useRef<HTMLButtonElement | null>(null);
|
|
@@ -1303,7 +1313,8 @@ export default function LinearBoard({ projectId, projectSlug, initialShowSetting
|
|
|
1303
1313
|
if (projectSlug) {
|
|
1304
1314
|
params.set("projectSlug", projectSlug);
|
|
1305
1315
|
}
|
|
1306
|
-
const
|
|
1316
|
+
const query = params.toString();
|
|
1317
|
+
const url = query ? `/api/linear/options?${query}` : "/api/linear/options";
|
|
1307
1318
|
fetch(url)
|
|
1308
1319
|
.then((res) => res.json())
|
|
1309
1320
|
.then((data) => {
|
|
@@ -1574,6 +1585,24 @@ export default function LinearBoard({ projectId, projectSlug, initialShowSetting
|
|
|
1574
1585
|
}
|
|
1575
1586
|
}, [replaceSelection, runs, runsLoading, selectedIssue, selectedRunId]);
|
|
1576
1587
|
|
|
1588
|
+
useEffect(() => {
|
|
1589
|
+
if (!isTouchLayout) {
|
|
1590
|
+
return;
|
|
1591
|
+
}
|
|
1592
|
+
|
|
1593
|
+
if (!selectedIssue) {
|
|
1594
|
+
setTouchPanelTab("runs");
|
|
1595
|
+
return;
|
|
1596
|
+
}
|
|
1597
|
+
|
|
1598
|
+
if (selectedRunId === NEW_SESSION_PANEL_ID || selectedRun || runs.length === 0) {
|
|
1599
|
+
setTouchPanelTab("ticket");
|
|
1600
|
+
return;
|
|
1601
|
+
}
|
|
1602
|
+
|
|
1603
|
+
setTouchPanelTab("runs");
|
|
1604
|
+
}, [isTouchLayout, runs.length, selectedIssue, selectedRun, selectedRunId]);
|
|
1605
|
+
|
|
1577
1606
|
useEffect(() => {
|
|
1578
1607
|
let cancelled = false;
|
|
1579
1608
|
|
|
@@ -1661,7 +1690,7 @@ export default function LinearBoard({ projectId, projectSlug, initialShowSetting
|
|
|
1661
1690
|
return;
|
|
1662
1691
|
}
|
|
1663
1692
|
|
|
1664
|
-
const handlePointerDown = (event:
|
|
1693
|
+
const handlePointerDown = (event: PointerEvent) => {
|
|
1665
1694
|
const target = event.target as Node;
|
|
1666
1695
|
if (runScriptsPanelRef.current?.contains(target)) {
|
|
1667
1696
|
return;
|
|
@@ -1678,10 +1707,10 @@ export default function LinearBoard({ projectId, projectSlug, initialShowSetting
|
|
|
1678
1707
|
}
|
|
1679
1708
|
};
|
|
1680
1709
|
|
|
1681
|
-
document.addEventListener("
|
|
1710
|
+
document.addEventListener("pointerdown", handlePointerDown);
|
|
1682
1711
|
document.addEventListener("keydown", handleKeyDown);
|
|
1683
1712
|
return () => {
|
|
1684
|
-
document.removeEventListener("
|
|
1713
|
+
document.removeEventListener("pointerdown", handlePointerDown);
|
|
1685
1714
|
document.removeEventListener("keydown", handleKeyDown);
|
|
1686
1715
|
};
|
|
1687
1716
|
}, [showRunScripts]);
|
|
@@ -1797,7 +1826,327 @@ export default function LinearBoard({ projectId, projectSlug, initialShowSetting
|
|
|
1797
1826
|
|
|
1798
1827
|
return (
|
|
1799
1828
|
<div className="relative flex h-full overflow-hidden">
|
|
1800
|
-
|
|
1829
|
+
{isTouchLayout ? (
|
|
1830
|
+
<>
|
|
1831
|
+
<div className="flex min-h-0 flex-1 flex-col">
|
|
1832
|
+
<div className="shrink-0 border-b border-[var(--card-border)]">
|
|
1833
|
+
<div className="flex h-12 items-center gap-2 px-3">
|
|
1834
|
+
<div className="flex flex-1 items-center gap-2 rounded-md border border-[var(--card-border)] bg-[var(--background)] px-2.5 py-1.5 transition-all focus-within:border-[var(--muted-foreground)] focus-within:ring-1 focus-within:ring-[var(--muted-foreground)]">
|
|
1835
|
+
<Search size={14} className="shrink-0 text-[var(--muted-foreground)]" />
|
|
1836
|
+
<input
|
|
1837
|
+
type="text"
|
|
1838
|
+
className="flex-1 bg-transparent text-sm outline-none placeholder:text-[var(--muted-foreground)]"
|
|
1839
|
+
placeholder="Search tickets..."
|
|
1840
|
+
value={search}
|
|
1841
|
+
onChange={(event) => handleSearchChange(event.target.value)}
|
|
1842
|
+
/>
|
|
1843
|
+
</div>
|
|
1844
|
+
<button
|
|
1845
|
+
type="button"
|
|
1846
|
+
className="shrink-0 rounded p-2 text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)] disabled:cursor-not-allowed disabled:opacity-50"
|
|
1847
|
+
onClick={() => void refreshIssues()}
|
|
1848
|
+
title="Refresh tickets"
|
|
1849
|
+
aria-label="Refresh tickets"
|
|
1850
|
+
disabled={issuesLoading}
|
|
1851
|
+
>
|
|
1852
|
+
<RefreshCw size={16} className={issuesLoading ? "animate-spin" : undefined} />
|
|
1853
|
+
</button>
|
|
1854
|
+
<button
|
|
1855
|
+
type="button"
|
|
1856
|
+
className="shrink-0 rounded p-2 text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]"
|
|
1857
|
+
onClick={() => {
|
|
1858
|
+
setShowRunScripts(false);
|
|
1859
|
+
setShowSettings(true);
|
|
1860
|
+
}}
|
|
1861
|
+
title="Linear settings"
|
|
1862
|
+
>
|
|
1863
|
+
<Settings size={16} />
|
|
1864
|
+
</button>
|
|
1865
|
+
</div>
|
|
1866
|
+
<div className="flex flex-wrap items-center gap-1.5 px-3 pb-2">
|
|
1867
|
+
{showStatusFilter ? (
|
|
1868
|
+
<MultiFilterPopdown
|
|
1869
|
+
label="Status"
|
|
1870
|
+
values={selectedStatuses}
|
|
1871
|
+
options={statusOptions}
|
|
1872
|
+
activeClasses="border-amber-500/30 bg-amber-500/10 text-amber-300"
|
|
1873
|
+
onChange={setSelectedStatuses}
|
|
1874
|
+
emptyLabel="All statuses"
|
|
1875
|
+
/>
|
|
1876
|
+
) : null}
|
|
1877
|
+
<MultiFilterPopdown
|
|
1878
|
+
label="Assignee"
|
|
1879
|
+
values={selectedAssigneeIds}
|
|
1880
|
+
options={assigneeOptions}
|
|
1881
|
+
activeClasses="border-blue-500/30 bg-blue-500/10 text-blue-400"
|
|
1882
|
+
onChange={setSelectedAssigneeIds}
|
|
1883
|
+
emptyLabel="All assignees"
|
|
1884
|
+
/>
|
|
1885
|
+
{showWorkspaceFilter ? (
|
|
1886
|
+
<FilterSelect
|
|
1887
|
+
label="Workspace"
|
|
1888
|
+
value={selectedWorkspaceId}
|
|
1889
|
+
options={workspaceOptions}
|
|
1890
|
+
activeClasses="border-emerald-500/30 bg-emerald-500/10 text-emerald-400"
|
|
1891
|
+
onChange={setSelectedWorkspaceId}
|
|
1892
|
+
/>
|
|
1893
|
+
) : null}
|
|
1894
|
+
{showCycleFilter ? (
|
|
1895
|
+
<FilterSelect
|
|
1896
|
+
label="Cycle"
|
|
1897
|
+
value={selectedCycleId}
|
|
1898
|
+
options={cycleOptions}
|
|
1899
|
+
activeClasses="border-purple-500/30 bg-purple-500/10 text-purple-400"
|
|
1900
|
+
onChange={setSelectedCycleId}
|
|
1901
|
+
/>
|
|
1902
|
+
) : null}
|
|
1903
|
+
<FilterSelect
|
|
1904
|
+
label="Sort"
|
|
1905
|
+
value={sortBy}
|
|
1906
|
+
options={[
|
|
1907
|
+
{ value: "activity", label: "Activity" },
|
|
1908
|
+
{ value: "identifier", label: "Ticket ID" },
|
|
1909
|
+
{ value: "status", label: "Status" },
|
|
1910
|
+
{ value: "created", label: "Created" },
|
|
1911
|
+
]}
|
|
1912
|
+
activeClasses="border-sky-500/30 bg-sky-500/10 text-sky-400"
|
|
1913
|
+
onChange={(value) => setSortBy(value as typeof sortBy)}
|
|
1914
|
+
/>
|
|
1915
|
+
<button
|
|
1916
|
+
type="button"
|
|
1917
|
+
className="rounded-full border border-[var(--card-border)] p-1 text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]"
|
|
1918
|
+
title={sortDir === "desc" ? "Descending" : "Ascending"}
|
|
1919
|
+
onClick={() => setSortDir((d) => (d === "desc" ? "asc" : "desc"))}
|
|
1920
|
+
>
|
|
1921
|
+
{sortDir === "desc" ? <ArrowDown size={12} /> : <ArrowUp size={12} />}
|
|
1922
|
+
</button>
|
|
1923
|
+
<button
|
|
1924
|
+
type="button"
|
|
1925
|
+
className={`flex items-center gap-1 rounded-full border px-2.5 py-1 text-[11px] font-medium transition-colors ${
|
|
1926
|
+
hasActivity
|
|
1927
|
+
? "border-orange-500/30 bg-orange-500/10 text-orange-400"
|
|
1928
|
+
: "border-[var(--card-border)] text-[var(--muted-foreground)] hover:bg-[var(--card-bg)]"
|
|
1929
|
+
}`}
|
|
1930
|
+
onClick={() => setHasActivity((v) => !v)}
|
|
1931
|
+
>
|
|
1932
|
+
My activity
|
|
1933
|
+
</button>
|
|
1934
|
+
</div>
|
|
1935
|
+
</div>
|
|
1936
|
+
|
|
1937
|
+
<div className="flex-1 overflow-y-auto">
|
|
1938
|
+
{issuesLoading && issues.length === 0 ? (
|
|
1939
|
+
<div className="px-3 py-4 text-xs text-[var(--muted-foreground)]">
|
|
1940
|
+
Loading tickets...
|
|
1941
|
+
</div>
|
|
1942
|
+
) : issues.length === 0 ? (
|
|
1943
|
+
<div className="px-3 py-4 text-xs text-[var(--muted-foreground)]">
|
|
1944
|
+
No tickets found.
|
|
1945
|
+
</div>
|
|
1946
|
+
) : (
|
|
1947
|
+
<>
|
|
1948
|
+
{issues.map((issue) => (
|
|
1949
|
+
<TicketRow
|
|
1950
|
+
key={issue.id}
|
|
1951
|
+
issue={issue}
|
|
1952
|
+
selected={selectedIssue?.id === issue.id}
|
|
1953
|
+
activeAgents={issueActiveAgents.get(issue.id)}
|
|
1954
|
+
participants={participants}
|
|
1955
|
+
onSelect={() => {
|
|
1956
|
+
setTouchPanelTab("runs");
|
|
1957
|
+
pushSelection({
|
|
1958
|
+
issue: issue.id,
|
|
1959
|
+
run: null,
|
|
1960
|
+
});
|
|
1961
|
+
}}
|
|
1962
|
+
/>
|
|
1963
|
+
))}
|
|
1964
|
+
{hasMore ? (
|
|
1965
|
+
<div
|
|
1966
|
+
ref={sentinelRef}
|
|
1967
|
+
className="py-2 text-center text-xs text-[var(--muted-foreground)]"
|
|
1968
|
+
>
|
|
1969
|
+
{issuesLoading ? "Loading..." : "Load more"}
|
|
1970
|
+
</div>
|
|
1971
|
+
) : null}
|
|
1972
|
+
</>
|
|
1973
|
+
)}
|
|
1974
|
+
</div>
|
|
1975
|
+
</div>
|
|
1976
|
+
|
|
1977
|
+
{selectedIssue ? (
|
|
1978
|
+
<div className="absolute inset-0 z-20 flex flex-col bg-[var(--background)]">
|
|
1979
|
+
<div className="flex items-center justify-between gap-3 border-b border-[var(--card-border)] px-4 py-3">
|
|
1980
|
+
<div className="min-w-0">
|
|
1981
|
+
<div className="text-[10px] font-semibold uppercase tracking-[0.14em] text-[var(--muted-foreground)]">
|
|
1982
|
+
{selectedIssue.identifier}
|
|
1983
|
+
</div>
|
|
1984
|
+
<div className="truncate text-sm font-semibold text-[var(--foreground)]">
|
|
1985
|
+
{selectedIssue.title}
|
|
1986
|
+
</div>
|
|
1987
|
+
</div>
|
|
1988
|
+
<button
|
|
1989
|
+
type="button"
|
|
1990
|
+
className="rounded p-2 text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]"
|
|
1991
|
+
onClick={() => replaceSelection({ issue: null, run: null })}
|
|
1992
|
+
aria-label="Close ticket panel"
|
|
1993
|
+
>
|
|
1994
|
+
<X size={16} />
|
|
1995
|
+
</button>
|
|
1996
|
+
</div>
|
|
1997
|
+
|
|
1998
|
+
<div className="flex items-center gap-2 border-b border-[var(--card-border)] px-3 py-2">
|
|
1999
|
+
<button
|
|
2000
|
+
type="button"
|
|
2001
|
+
className={`rounded-full px-3 py-1.5 text-xs font-medium transition-colors ${
|
|
2002
|
+
touchPanelTab === "runs"
|
|
2003
|
+
? "bg-[var(--card-bg)] text-[var(--foreground)]"
|
|
2004
|
+
: "text-[var(--muted-foreground)] hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]"
|
|
2005
|
+
}`}
|
|
2006
|
+
onClick={() => setTouchPanelTab("runs")}
|
|
2007
|
+
>
|
|
2008
|
+
Runs
|
|
2009
|
+
</button>
|
|
2010
|
+
<button
|
|
2011
|
+
type="button"
|
|
2012
|
+
className={`rounded-full px-3 py-1.5 text-xs font-medium transition-colors ${
|
|
2013
|
+
touchPanelTab === "ticket"
|
|
2014
|
+
? "bg-[var(--card-bg)] text-[var(--foreground)]"
|
|
2015
|
+
: "text-[var(--muted-foreground)] hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]"
|
|
2016
|
+
}`}
|
|
2017
|
+
onClick={() => setTouchPanelTab("ticket")}
|
|
2018
|
+
>
|
|
2019
|
+
Ticket
|
|
2020
|
+
</button>
|
|
2021
|
+
</div>
|
|
2022
|
+
|
|
2023
|
+
<div className="min-h-0 flex-1 overflow-hidden">
|
|
2024
|
+
{touchPanelTab === "runs" ? (
|
|
2025
|
+
<div className="flex h-full flex-col overflow-hidden">
|
|
2026
|
+
<div className="relative flex items-center justify-between border-b border-[var(--card-border)] px-3 py-2">
|
|
2027
|
+
<h3 className="text-xs font-semibold text-[var(--foreground)]">Sessions</h3>
|
|
2028
|
+
<button
|
|
2029
|
+
ref={runScriptsButtonRef}
|
|
2030
|
+
type="button"
|
|
2031
|
+
className="inline-flex items-center gap-1 rounded px-2 py-1 text-[10px] font-medium text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)] disabled:cursor-not-allowed disabled:opacity-40"
|
|
2032
|
+
onClick={() => {
|
|
2033
|
+
setShowRunScripts(false);
|
|
2034
|
+
setTouchPanelTab("ticket");
|
|
2035
|
+
pushSelection({ run: NEW_SESSION_PANEL_ID });
|
|
2036
|
+
}}
|
|
2037
|
+
title="Open a fresh chat for this ticket. You can choose or edit the session script in the ticket tab."
|
|
2038
|
+
aria-label="New session"
|
|
2039
|
+
disabled={!selectedIssue}
|
|
2040
|
+
>
|
|
2041
|
+
<Plus size={12} />
|
|
2042
|
+
New session
|
|
2043
|
+
</button>
|
|
2044
|
+
</div>
|
|
2045
|
+
|
|
2046
|
+
<div className="flex-1 overflow-y-auto">
|
|
2047
|
+
{runsLoading && runs.length === 0 ? (
|
|
2048
|
+
<div className="px-3 py-4 text-xs text-[var(--muted-foreground)]">
|
|
2049
|
+
Loading sessions...
|
|
2050
|
+
</div>
|
|
2051
|
+
) : runs.length === 0 ? (
|
|
2052
|
+
<div className="px-3 py-4 text-xs text-[var(--muted-foreground)]">
|
|
2053
|
+
No previous sessions yet.
|
|
2054
|
+
</div>
|
|
2055
|
+
) : (
|
|
2056
|
+
runs.map((run) => {
|
|
2057
|
+
const runDisplay = getRunDisplayState(run);
|
|
2058
|
+
|
|
2059
|
+
return (
|
|
2060
|
+
<button
|
|
2061
|
+
key={run.id}
|
|
2062
|
+
type="button"
|
|
2063
|
+
className={`w-full px-3 py-2 text-left text-xs transition-colors ${
|
|
2064
|
+
selectedRun?.id === run.id
|
|
2065
|
+
? "bg-[var(--card-bg)]"
|
|
2066
|
+
: "hover:bg-[var(--card-bg)]"
|
|
2067
|
+
}`}
|
|
2068
|
+
onClick={() => {
|
|
2069
|
+
setTouchPanelTab("ticket");
|
|
2070
|
+
pushSelection({ run: run.id });
|
|
2071
|
+
}}
|
|
2072
|
+
>
|
|
2073
|
+
<div className="flex items-center justify-between gap-1">
|
|
2074
|
+
<span className="min-w-0 flex-1 truncate text-[11px] font-medium text-[var(--foreground)]">
|
|
2075
|
+
{getRunTitle(run)}
|
|
2076
|
+
</span>
|
|
2077
|
+
<span className="text-[10px] text-[var(--muted-foreground)]">
|
|
2078
|
+
{formatRunTime(run.startedAt)}
|
|
2079
|
+
</span>
|
|
2080
|
+
</div>
|
|
2081
|
+
<div className="mt-0.5 flex items-center gap-1.5 text-[10px]">
|
|
2082
|
+
<span className={`font-medium ${STATUS_TEXT_COLORS[runDisplay.tone]}`}>
|
|
2083
|
+
{runDisplay.label}
|
|
2084
|
+
</span>
|
|
2085
|
+
<span className="truncate text-[var(--muted-foreground)]">
|
|
2086
|
+
{run.agentName}
|
|
2087
|
+
</span>
|
|
2088
|
+
</div>
|
|
2089
|
+
{run.durationMs != null ? (
|
|
2090
|
+
<div className="text-[10px] text-[var(--muted-foreground)]">
|
|
2091
|
+
{(run.durationMs / 1000).toFixed(1)}s
|
|
2092
|
+
</div>
|
|
2093
|
+
) : null}
|
|
2094
|
+
</button>
|
|
2095
|
+
);
|
|
2096
|
+
})
|
|
2097
|
+
)}
|
|
2098
|
+
</div>
|
|
2099
|
+
</div>
|
|
2100
|
+
) : selectedRun ? (
|
|
2101
|
+
<ThreadMessageList
|
|
2102
|
+
issue={selectedIssue ?? {
|
|
2103
|
+
id: selectedRun.issueId,
|
|
2104
|
+
identifier: selectedRun.issueIdentifier,
|
|
2105
|
+
title: selectedRun.issueTitle,
|
|
2106
|
+
url: null,
|
|
2107
|
+
status: selectedRun.issueStatus,
|
|
2108
|
+
assignee: selectedRun.issueAssignee,
|
|
2109
|
+
updatedAt: selectedRun.updatedAt,
|
|
2110
|
+
}}
|
|
2111
|
+
run={selectedRun}
|
|
2112
|
+
participants={participants}
|
|
2113
|
+
issueStatusOptions={issueStatusOptions}
|
|
2114
|
+
issueStatusUpdating={updatingIssueId === selectedRun.issueId}
|
|
2115
|
+
onIssueStatusChange={handleIssueStatusChange}
|
|
2116
|
+
/>
|
|
2117
|
+
) : participants.length === 0 ? (
|
|
2118
|
+
<div className="flex h-full items-center justify-center text-xs text-[var(--muted-foreground)]">
|
|
2119
|
+
Add at least one agent to this project to start a session.
|
|
2120
|
+
</div>
|
|
2121
|
+
) : selectedRunId === NEW_SESSION_PANEL_ID || runs.length === 0 ? (
|
|
2122
|
+
<TicketChatStarter
|
|
2123
|
+
key={selectedIssue.id}
|
|
2124
|
+
issue={selectedIssue}
|
|
2125
|
+
participants={participants}
|
|
2126
|
+
projectId={projectId}
|
|
2127
|
+
projectSlug={projectSlug}
|
|
2128
|
+
issueStatusOptions={issueStatusOptions}
|
|
2129
|
+
issueStatusUpdating={updatingIssueId === selectedIssue.id}
|
|
2130
|
+
onIssueStatusChange={handleIssueStatusChange}
|
|
2131
|
+
activeSessionScriptLabel={activeSessionScriptLabel}
|
|
2132
|
+
onOpenSessionScripts={() => setShowRunScripts(true)}
|
|
2133
|
+
onStartScriptedSession={(event) => handleStartScriptedSession(selectedIssue, event)}
|
|
2134
|
+
createRun={createRun}
|
|
2135
|
+
updateRun={updateRun}
|
|
2136
|
+
onRunCreated={(runId) => pushSelection({ run: runId })}
|
|
2137
|
+
/>
|
|
2138
|
+
) : (
|
|
2139
|
+
<div className="flex h-full items-center justify-center text-xs text-[var(--muted-foreground)]">
|
|
2140
|
+
{runsLoading ? "Loading sessions..." : "Select a session to continue."}
|
|
2141
|
+
</div>
|
|
2142
|
+
)}
|
|
2143
|
+
</div>
|
|
2144
|
+
</div>
|
|
2145
|
+
) : null}
|
|
2146
|
+
</>
|
|
2147
|
+
) : (
|
|
2148
|
+
<>
|
|
2149
|
+
<div className="flex shrink-0 flex-col border-r border-[var(--card-border)]" style={{ width: ticketPanelWidth }}>
|
|
1801
2150
|
<div className="shrink-0 border-b border-[var(--card-border)]">
|
|
1802
2151
|
<div className="flex h-12 items-center gap-2 px-3">
|
|
1803
2152
|
<div className="flex flex-1 items-center gap-2 rounded-md border border-[var(--card-border)] bg-[var(--background)] px-2.5 py-1.5 transition-all focus-within:border-[var(--muted-foreground)] focus-within:ring-1 focus-within:ring-[var(--muted-foreground)]">
|
|
@@ -2091,6 +2440,8 @@ export default function LinearBoard({ projectId, projectSlug, initialShowSetting
|
|
|
2091
2440
|
</div>
|
|
2092
2441
|
)}
|
|
2093
2442
|
</div>
|
|
2443
|
+
</>
|
|
2444
|
+
)}
|
|
2094
2445
|
|
|
2095
2446
|
{/* Settings overlay */}
|
|
2096
2447
|
{showSettings && (
|
|
@@ -2120,6 +2471,24 @@ export default function LinearBoard({ projectId, projectSlug, initialShowSetting
|
|
|
2120
2471
|
</div>
|
|
2121
2472
|
)}
|
|
2122
2473
|
|
|
2474
|
+
{showRunScripts && isTouchLayout ? (
|
|
2475
|
+
<div className="absolute inset-0 z-30 flex items-center justify-center bg-black/50 p-4">
|
|
2476
|
+
<div
|
|
2477
|
+
ref={runScriptsPanelRef}
|
|
2478
|
+
className="max-h-[85vh] w-full max-w-3xl overflow-y-auto rounded-2xl border border-[var(--card-border)] bg-[var(--background)] p-4 shadow-2xl"
|
|
2479
|
+
>
|
|
2480
|
+
<RunScriptManager
|
|
2481
|
+
projectSlug={projectSlug}
|
|
2482
|
+
scripts={runScripts}
|
|
2483
|
+
activeScriptId={activeScriptId}
|
|
2484
|
+
onSetActiveScriptId={setActiveScriptId}
|
|
2485
|
+
onSaveScript={saveScript}
|
|
2486
|
+
onDeleteScript={deleteScript}
|
|
2487
|
+
/>
|
|
2488
|
+
</div>
|
|
2489
|
+
</div>
|
|
2490
|
+
) : null}
|
|
2491
|
+
|
|
2123
2492
|
{/* Agent picker popover */}
|
|
2124
2493
|
{pickerIssue && pickerAnchor && (
|
|
2125
2494
|
<>
|