@mndrk/agx 2.0.55 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +3 -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 +23 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error/page.js.nft.json +1 -1
- 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.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found/page.js.nft.json +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 +1 -1
- 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 +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 +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 +4 -3
- 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 +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 +1 -1
- 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/automations/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/automations/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat/route.js +2 -2
- 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 +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/daemon/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/filesystem/analyze/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/filesystem/analyze/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/graphs/[graphId]/nodes/[nodeId]/route.js +1 -1
- 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/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 +5 -4
- 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/linear/worker/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/worker/route/build-manifest.json +9 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/worker/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/worker/route.js +13 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/worker/route.js.map +5 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/worker/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/worker/route_client-reference-manifest.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/participants/route.js +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]/activities/route.js +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/activities/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/linear-issues/route.js +4 -4
- 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]/notes/[noteId]/route.js +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/notes/[noteId]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/notes/route.js +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/notes/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/route.js +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/scheduled-tasks/route.js +19 -8
- 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]/validate/route.js +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/validate/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route/build-manifest.json +9 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route.js +28 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route.js.map +5 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route_client-reference-manifest.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/route.js +9 -5
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/search/route.js +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/projects/route.js +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/[id]/cancel/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/[id]/cancel/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/[id]/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/[id]/runs/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/[id]/runs/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/poll/route.js +16 -15
- 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/prompt-jobs/route.js +5 -5
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/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 +2 -2
- 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 +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 +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 +1 -1
- 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]/graph/events/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/history/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/metrics/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/pause/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/replan/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/restart/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/resume/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/rollback/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/schedule/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/graph/stop/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/logs/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/comments/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/complete/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/fail/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/resume/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/start/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/stop/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 +9 -8
- 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/terminal/sessions/[id]/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/terminal/sessions/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/threads/knowledge/route.js +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 +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 +1 -1
- 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 +15 -15
- package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/_full.segment.rsc +15 -15
- 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.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/board/page.js.nft.json +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 +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 +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 +1 -1
- 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 +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 +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 +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 +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 +8 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/linear/page.js +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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 +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.js +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.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/settings/page.js.nft.json +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 +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.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/skills/page.js.nft.json +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 +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 +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 +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/0jps_app_api_projects_[id]_objectives_[objectiveId]_worker_route_actions_0v8q3zz.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[externals]__0_au5u1._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[externals]__13x93ar._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__0_10qfd._.js → [root-of-the-server]__0.6yz1u._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__01lsgl~._.js +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__0205scg._.js → [root-of-the-server]__03.9arn._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__01ol22y._.js → [root-of-the-server]__03h0gqp._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__094z9yf._.js → [root-of-the-server]__08jo91s._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__09j9jpf._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__0-nye63._.js → [root-of-the-server]__09jghbu._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0_7hiof._.js +43 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__0.jam.l._.js → [root-of-the-server]__0a0cq38._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0asvfdo._.js +54 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0c86535._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0cj1krd._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__0aa-88e._.js → [root-of-the-server]__0dy3h2i._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__0touqng._.js → [root-of-the-server]__0e8-2k_._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0enhv5p._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0f9byr.._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0g7hc1-._.js +18 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0g7p6pw._.js +55 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__019q25b._.js → [root-of-the-server]__0gj~dap._.js} +7 -7
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__0e6cj2y._.js → [root-of-the-server]__0hc45jw._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__0avz575._.js → [root-of-the-server]__0hkcw03._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0hmw36u._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0l53ok5._.js +54 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0n.momw._.js +8 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0tjo9we._.js +7 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__0-~t2br._.js → [root-of-the-server]__0v7jjvl._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0x6w64i._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__11nke7t._.js → [root-of-the-server]__0y3qxv1._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__10z8f9h._.js → [root-of-the-server]__0ygidxe._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0z82z0-._.js +49 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0zsv-tb._.js +8 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0~nnfjr._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0~x4jbk._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__10d.dhd._.js +229 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__12qy318._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/_039.xxy._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/_06oeti1._.js +49 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/_0dyy7h.._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/_0gi7c9x._.js +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/_0gr.psg._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/_0sd8z0i._.js +21 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/_0y42h_~._.js +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/_0~ah49q._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_01kqgle._.js +11 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_06qet8g._.js +36 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0_0m2ly._.js +397 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0_a~bj0._.js +25 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0a15wtk._.js +397 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0bjdpen._.js +29 -0
- 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 +41 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0h7wd0e._.js +29 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0i7fs.i._.js +397 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0ipg-p6._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0npxy21._.js +11 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0uhfa93._.js +21 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_12wpldq._.js +25 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local__next-internal_server_app_api_linear_worker_route_actions_116303i.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_01hd2_5._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_01pvj2g._.js +34 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_0ik933l._.js +55 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_0o1v.j4._.js +79 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_0pxj122._.js +55 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_automations_index_ts_0_8ch28._.js +10 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_graph_082u-ls._.js +41 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_prompt-scheduler_0.xgxyl._.js +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_prompt-scheduler_0yu3--n._.js +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_prompt-scheduler_0ze8hzc._.js +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_prompt-scheduler_get-store_ts_0p0aod1._.js +5 -5
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_prompt-scheduler_linear-worker_ts_0ycjwem._.js +5 -0
- 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_0u_5kfo.js +1 -1
- 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_0tvwux2._.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_0hvpc.y._.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]__006vr7.._.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]__0d18x53._.js +18 -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]__0j9m72.._.js +18 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{[root-of-the-server]__02.r909._.js → [root-of-the-server]__0n5g8ml._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0w.zmt6._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0z7nw_r._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__10h_7t0._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_00trrg8._.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/_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/_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/_0wk3skw._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0yeuuy1._.js +25 -0
- 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_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_075cq2j._.js → apps_local_0k4~c1x._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{_0n80y4_._.js → apps_local_0nvzo3y._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0t6p.qm._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0v~bvwg._.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_agents_[id]_page_tsx_06n47n~._.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_new_page_tsx_0yqd0a5._.js +3 -0
- 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_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 +8 -0
- 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 +6 -6
- 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/functions-config-manifest.json +2 -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/003q-y3exxalk.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/00po4v2x~0x_z.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/013gtut17~fne.js +23 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/014z_yruiincl.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/041-dhls9zkl1.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/04yoml2rqnuot.js +16 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/07646a0h94826.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0_mrpyqcoyb_5.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0rm7v.1y6qcni.js → 0aewbg0i704w7.js} +1 -1
- 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/0dnw31436wd~..js +5 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0e307b-0c2jbx.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0edewt9l~cs~k.css +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0f7i3ae1ynhf3.css +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0fonouj2i9qnb.js +5 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0gj98094p~zn4.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0jrkacz_dyem6.js +37 -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/0mig99af4~uos.js +28 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0pdrpsy-zdxp0.js +5 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0p~l5ap6qqx2o.js +1 -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/0stvi5btlxl4m.js +20 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0h_bwlg~kk8lz.js → 0tt1oh112yv-l.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0uve8xrt~0a2e.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0w94x-v00osq0.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0wh6p5~ft5rma.js +5 -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/0zw85-xl9ysjs.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/119v0-idpg-cv.js +16 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/11l2tww5f0hsk.js +20 -0
- 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/16d~es6h6k~rj.js +6 -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/agents/[id]/page.tsx +40 -5
- package/cloud-runtime/standalone/apps/local/app/api/agents/[id]/profile/route.ts +10 -0
- package/cloud-runtime/standalone/apps/local/app/api/automations/route.ts +10 -2
- package/cloud-runtime/standalone/apps/local/app/api/linear/worker/route.ts +151 -0
- package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/objectives/[objectiveId]/route.ts +0 -8
- package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/objectives/[objectiveId]/scheduled-tasks/route.ts +22 -27
- package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/objectives/[objectiveId]/worker/route.ts +89 -0
- package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/route.ts +13 -0
- package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/search/route.ts +4 -4
- package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/teams/route.ts +5 -3
- package/cloud-runtime/standalone/apps/local/app/api/prompt-jobs/route.ts +15 -5
- 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/app/projects/[slug]/teams/new/page.tsx +236 -10
- package/cloud-runtime/standalone/apps/local/app/setup/page.tsx +9 -1
- 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 +70 -20
- 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 +434 -36
- 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 +119 -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 +45 -25
- package/cloud-runtime/standalone/apps/local/components/graph/NodeInspector.tsx +9 -6
- package/cloud-runtime/standalone/apps/local/components/linear/LinearSettingsModal.tsx +105 -0
- package/cloud-runtime/standalone/apps/local/components/linear/LinearWorkerConfig.tsx +367 -0
- 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/ObjectiveHealthTrend.tsx +215 -0
- package/cloud-runtime/standalone/apps/local/components/projects/ObjectiveScheduledTasksPanel.tsx +338 -91
- package/cloud-runtime/standalone/apps/local/components/projects/ProjectHome.tsx +12 -6
- package/cloud-runtime/standalone/apps/local/components/projects/ProjectObjectivesWorkspace.tsx +489 -467
- package/cloud-runtime/standalone/apps/local/components/projects/ProjectSearchBar.tsx +4 -2
- package/cloud-runtime/standalone/apps/local/components/projects/RecentlyCompletedCard.tsx +213 -0
- 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 +171 -56
- 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 +4 -4
- package/cloud-runtime/standalone/apps/local/components/setup/McpSetupStep.tsx +242 -0
- package/cloud-runtime/standalone/apps/local/components/setup/ProjectStep.tsx +2 -2
- package/cloud-runtime/standalone/apps/local/components/setup/ProviderStep.tsx +1 -1
- package/cloud-runtime/standalone/apps/local/components/setup/TeamsStep.tsx +288 -15
- package/cloud-runtime/standalone/apps/local/components/terminal/ProjectTerminal.tsx +233 -89
- 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/hooks/useSetupFlow.ts +16 -2
- package/cloud-runtime/standalone/apps/local/lib/app-config.ts +35 -0
- package/cloud-runtime/standalone/apps/local/lib/objective-health-history.ts +198 -0
- package/cloud-runtime/standalone/apps/local/lib/project-objective-context.ts +10 -0
- package/cloud-runtime/standalone/apps/local/lib/project-objectives.ts +0 -9
- 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/skills-lock.json +20 -0
- package/cloud-runtime/standalone/apps/local/src/automations/adapters.ts +5 -0
- package/cloud-runtime/standalone/apps/local/src/automations/types.ts +5 -0
- package/cloud-runtime/standalone/apps/local/src/automations/validation.ts +12 -5
- package/cloud-runtime/standalone/apps/local/src/graph/types.ts +2 -0
- package/cloud-runtime/standalone/apps/local/src/objectives/parser.ts +0 -2
- package/cloud-runtime/standalone/apps/local/src/objectives/serializer.ts +0 -2
- package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/cron.ts +11 -0
- package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/linear-worker-constants.ts +38 -0
- package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/linear-worker-job.ts +47 -0
- package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/linear-worker.ts +482 -0
- package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/objective-worker-job.ts +47 -0
- package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/objective-worker.ts +511 -0
- package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/processor.ts +239 -368
- package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/store.ts +19 -4
- package/cloud-runtime/standalone/apps/local/src/prompt-scheduler/types.ts +32 -8
- package/cloud-runtime/standalone/apps/local/state/terminalTabs.ts +182 -106
- 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 +9 -14
- 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]__0-0479y._.js +0 -54
- 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]__08oj_ky._.js +0 -49
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__08y2lkj._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__09joc_o._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0gtv0rq._.js +0 -8
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0gvjvx7._.js +0 -237
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0ksbs9p._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0o315az._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0pz~m67._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0q93mk3._.js +0 -7
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0t2jk2r._.js +0 -18
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0vhcrdv._.js +0 -229
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__11s20j6._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__12xhcor._.js +0 -54
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/_01rag2f._.js +0 -49
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/_03y4xss._.js +0 -21
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/_0cm4i3i._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/_0ijzgnb._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_03q7_.q._.js +0 -21
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0m3e2d~._.js +0 -30
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0r-oiga._.js +0 -30
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_00cwfvi._.js +0 -34
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_0hx7xyz._.js +0 -34
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_0rqcat4._.js +0 -55
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_0sc_lek._.js +0 -79
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_135ddsu._.js +0 -55
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_graph_store_ts_0h.2qy9._.js +0 -43
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_prompt-scheduler_processor_ts_0i1av_r._.js +0 -474
- 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]__0bf346q._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__0hd2vo4._.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]__0wq3ukc._.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/_03rf_sb._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_09b42z9._.js +0 -3
- 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/_0ndrb_0._.js +0 -8
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0nlki7b._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0ut3k~7._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0vibfch._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0yffwm4._.js +0 -8
- 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.a4-dh~x9sa3.js +0 -6
- 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/051-7k0nnm-vm.js +0 -1
- 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-_2lcshmjl5.js +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/0o0hwfzwwty4b.js +0 -6
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0ov5lu0tz2o2e.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/0~apd0q5_i88z.js +0 -16
- 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 → RnYHmEXBwXJjVrVVx2CuP}/_buildManifest.js +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/static/{z8XjY2Aj-ox_Dro192i4I → RnYHmEXBwXJjVrVVx2CuP}/_clientMiddlewareManifest.js +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/static/{z8XjY2Aj-ox_Dro192i4I → RnYHmEXBwXJjVrVVx2CuP}/_ssgManifest.js +0 -0
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[657613,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(50944),e=a.i(285320),f=a.i(508869),g=a.i(523321),h=a.i(166621),i=a.i(971382);let j=(0,a.i(831709).default)("clock-3",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6h4",key:"135r8i"}]]);var k=a.i(552605),l=a.i(349692),m=a.i(737313),n=a.i(542341),o=a.i(489461),p=a.i(985339),q=a.i(824179);function r({projectId:a}){let e=(0,d.useRouter)(),f=(0,d.usePathname)(),g=(0,c.useRef)(null),h=(0,c.useRef)(null),[s,t]=(0,c.useState)(""),[u,v]=(0,c.useState)([]),[w,x]=(0,c.useState)(0),[y,z]=(0,c.useState)(!1),[A,B]=(0,c.useState)(null),[C,D]=(0,c.useState)(!1),[E,F]=(0,c.useState)(0),[G,H]=(0,c.useState)(new Set),I=s.trim(),J=(0,c.useMemo)(()=>u.map(a=>({...a,visibleResults:G.has(a.id)?a.results:a.results.slice(0,3),hiddenCount:Math.max(0,a.results.length-3)})),[G,u]),K=(0,c.useMemo)(()=>J.flatMap(a=>a.visibleResults),[J]),L=(0,c.useMemo)(()=>K.map(a=>`${a.kind}:${a.id}`),[K]),M=(0,c.useCallback)(()=>{t(""),v([]),x(0),B(null),z(!1),F(0)},[]),N=(0,c.useCallback)(a=>{M(),D(!1),e.push(a.href)},[M,e]);(0,c.useEffect)(()=>{M(),D(!1),H(new Set)},[M,f]),(0,c.useEffect)(()=>{let a=a=>{g.current?.contains(a.target)||D(!1)};return window.addEventListener("pointerdown",a),()=>window.removeEventListener("pointerdown",a)},[]),(0,c.useEffect)(()=>{let a=a=>{(a.metaKey||a.ctrlKey)&&"k"===a.key.toLowerCase()&&(a.preventDefault(),h.current?.focus(),h.current?.select())};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[]),(0,c.useEffect)(()=>{C&&F(0)},[C,u]),(0,c.useEffect)(()=>{if(!I||I.length<2){v([]),x(0),B(null),z(!1),H(new Set);return}let b=!1;z(!0);let c=window.setTimeout(()=>{(async()=>{try{let c=new URLSearchParams({q:I}),d=await fetch(`/api/projects/${encodeURIComponent(a)}/search?${c.toString()}`,{cache:"no-store"}),e=await d.json().catch(()=>null);if(b)return;if(!d.ok){let a=e&&"object"==typeof e&&"error"in e?String(e.error):"Search failed";v([]),x(0),B(a);return}v(Array.isArray(e.sections)?e.sections:[]),x("number"==typeof e.total?e.total:0),B(null),H(new Set)}catch(a){if(b)return;console.error("Project search failed",a),v([]),x(0),B("Search failed")}finally{b||z(!1)}})()},220);return()=>{b=!0,window.clearTimeout(c)}},[I,a]);let O=C&&(I.length>0||y||null!==A),P=K.length>0?K[Math.max(0,Math.min(E,K.length-1))]:null,Q=(0,c.useCallback)(a=>{H(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),c})},[]);return(0,b.jsxs)("div",{ref:g,className:"relative w-full max-w-xl",children:[(0,b.jsxs)("div",{className:"group/search relative",children:[(0,b.jsx)(n.Search,{className:"pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-[var(--app-shell-soft-text)] transition-colors group-focus-within/search:text-[var(--primary)]",strokeWidth:1.8}),(0,b.jsx)("input",{ref:h,type:"text",value:s,onFocus:()=>D(!0),onChange:a=>{t(a.target.value),D(!0)},onKeyDown:a=>{if("ArrowDown"===a.key&&K.length>0){a.preventDefault(),F(a=>(a+1)%K.length);return}if("ArrowUp"===a.key&&K.length>0){a.preventDefault(),F(a=>(a-1+K.length)%K.length);return}if("Enter"===a.key&&P){a.preventDefault(),N(P);return}"Escape"===a.key&&(I?M():(D(!1),h.current?.blur()))},placeholder:"Search objectives, tickets, tasks, teams, agents, and chat…",className:"h-8 w-full rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] pl-9 pr-16 text-xs font-medium text-[var(--foreground)] outline-none placeholder:text-[var(--app-shell-soft-text)] transition-all hover:border-[var(--app-shell-border-strong)] focus:border-[var(--primary)] focus:ring-2 focus:ring-[var(--ring)]"}),I?(0,b.jsxs)("div",{className:"absolute right-2 top-1/2 flex -translate-y-1/2 items-center gap-2",children:[(0,b.jsx)("span",{className:"text-[11px] font-bold text-[var(--muted-foreground)]",children:y?"…":w}),(0,b.jsx)("button",{type:"button",onClick:()=>{M(),h.current?.focus()},className:"inline-flex h-5 w-5 items-center justify-center rounded-md text-[var(--app-shell-soft-text)] transition-colors hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]","aria-label":"Clear search",children:(0,b.jsx)(q.X,{className:"h-3.5 w-3.5"})})]}):(0,b.jsx)("kbd",{className:"pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 rounded-md border border-[var(--app-shell-border)] bg-[var(--app-shell-subtle)] px-1.5 py-0.5 font-sans text-[10px] font-bold text-[var(--app-shell-soft-text)]",children:"⌘K"})]}),O?(0,b.jsx)("div",{className:"absolute left-0 right-0 top-[calc(100%+0.5rem)] z-50 overflow-hidden rounded-2xl border border-[var(--app-shell-border)] bg-[var(--app-shell-surface)] shadow-2xl shadow-black/20",children:(0,b.jsxs)("div",{className:"max-h-[28rem] overflow-y-auto p-2",children:[I.length<2?(0,b.jsx)("div",{className:"rounded-xl px-3 py-4 text-sm text-[var(--muted-foreground)]",children:"Keep typing to search across project entities."}):null,y?(0,b.jsxs)("div",{className:"flex items-center gap-2 rounded-xl px-3 py-4 text-sm text-[var(--muted-foreground)]",children:[(0,b.jsx)(l.Loader2,{className:"h-4 w-4 animate-spin"}),"Searching this project…"]}):null,!y&&A?(0,b.jsx)("div",{className:"rounded-xl px-3 py-4 text-sm text-rose-500",children:A}):null,y||A||!(I.length>=2)||0!==u.length?null:(0,b.jsx)("div",{className:"rounded-xl px-3 py-4 text-sm text-[var(--muted-foreground)]",children:"No matches in this project."}),!y&&!A&&J.map(a=>(0,b.jsxs)("div",{className:"mb-2 last:mb-0",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3 px-3 pb-1 pt-2",children:[(0,b.jsxs)("div",{className:"text-[10px] font-semibold uppercase tracking-[0.16em] text-[var(--app-shell-soft-text)]",children:[a.label,(0,b.jsx)("span",{className:"ml-1.5 text-[9px] text-[var(--muted-foreground)]",children:a.results.length})]}),a.results.length>3?(0,b.jsx)("button",{type:"button",onMouseDown:a=>a.preventDefault(),onClick:()=>Q(a.id),className:"text-[10px] font-medium text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)]",children:G.has(a.id)?"Collapse":`Show ${a.hiddenCount} more`}):null]}),(0,b.jsx)("div",{className:"space-y-1",children:a.visibleResults.map(a=>{let c,d,e=`${a.kind}:${a.id}`,f=L.findIndex(a=>a===e),g=f===E,h=function(a){switch(a){case"objective":return o.Target;case"linear_issue":return k.FileText;case"scheduled_task":return j;case"team":return p.Users;case"agent":return i.Bot;case"chat_thread":case"chat_message":return m.MessageSquare;default:return n.Search}}(a.kind);return(0,b.jsxs)("button",{type:"button",onMouseDown:a=>a.preventDefault(),onMouseEnter:()=>F(f),onClick:()=>N(a),className:`flex w-full items-start gap-3 rounded-xl px-3 py-2.5 text-left transition-colors ${g?"bg-[var(--app-shell-subtle)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}`,children:[(0,b.jsx)("span",{className:"mt-0.5 inline-flex h-7 w-7 shrink-0 items-center justify-center rounded-lg border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] text-[var(--app-shell-muted)]",children:(0,b.jsx)(h,{className:"h-3.5 w-3.5",strokeWidth:1.75})}),(0,b.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,b.jsxs)("span",{className:"flex min-w-0 items-center gap-2",children:[(0,b.jsx)("span",{className:"truncate text-sm font-medium",children:a.title}),(0,b.jsx)("span",{className:"shrink-0 rounded-full bg-[var(--app-shell-subtle)] px-1.5 py-0.5 text-[10px] font-semibold uppercase tracking-wide text-[var(--app-shell-soft-text)]",children:a.label})]}),a.context?(0,b.jsx)("span",{className:"mt-0.5 block truncate text-xs text-[var(--muted-foreground)]",children:a.context}):null,a.description?(0,b.jsx)("span",{className:"mt-1 block text-xs leading-5 text-[var(--muted-foreground)]",children:(c=a.description.split(/(<\/?mark>)/g),d=!1,c.map((a,c)=>"<mark>"===a?(d=!0,null):"</mark>"===a?(d=!1,null):a?d?(0,b.jsx)("mark",{className:"rounded bg-amber-200/80 px-0.5 text-inherit",children:a},`mark-${c}`):(0,b.jsx)("span",{children:a},`text-${c}`):null))}):null]})]},e)})})]},a.id))]})}):null]})}var s=a.i(550158),t=a.i(830284),u=a.i(111013),v=a.i(455106),w=a.i(427411);function x({children:a,params:i}){let{slug:j}=(0,c.use)(i),k=(0,d.useRouter)(),l=(0,d.usePathname)(),{projects:m,isLoading:n,createProject:o,updateProject:p,deleteProject:q,addAgent:y,removeAgent:z}=(0,t.useProjectsWithAgents)(),{threads:A,isLoading:B,isCreating:C,deletingThreadId:D,renamingThreadId:E,isRestoringActiveThread:F,createThread:G,renameThread:H,deleteThread:I}=(0,u.useThreadState)(),[J,K]=(0,c.useState)([]),[L,M]=(0,c.useState)(!1),[N,O]=(0,c.useState)(368),[P,Q]=(0,c.useState)(()=>"light");(0,c.useEffect)(()=>{M((0,v.loadWorkspaceSidebarVisible)()),O((0,w.loadWorkspaceWidth)()||368)},[]),(0,c.useEffect)(()=>{},[P]),(0,c.useEffect)(()=>{fetch("/api/participants").then(a=>a.json()).then(a=>K(Array.isArray(a)?a:[])).catch(()=>K([]))},[]);let R=(0,c.useMemo)(()=>m.find(a=>a.slug===j)??null,[m,j]),S=(0,c.useMemo)(()=>{let a=l.match(/\/projects\/[^/]+\/thread\/([^/]+)/);return a?.[1]?decodeURIComponent(a[1]):R?.thread_ids[0]??null},[R?.thread_ids,l]),T=(0,c.useMemo)(()=>l.includes("/linear")?"linear":l.includes("/automations")?"automations":l.includes("/thread/")?"thread":l.includes("/knowledge")?"knowledge":l.includes("/objectives")?"objectives":l.includes("/teams")?"teams":l.includes("/env-vars")?"env-vars":l.includes("/terminal")?"terminal":l.includes("/settings")?"settings":"home",[l]),U=(0,c.useCallback)(a=>{O(a),(0,w.persistWorkspaceWidth)(a)},[]);return n?(0,b.jsx)("div",{className:"flex items-center justify-center h-full",children:(0,b.jsx)("span",{className:"spinner w-8 h-8 border-3 border-[var(--primary)] border-t-transparent rounded-full"})}):R?(0,b.jsxs)("div",{className:"flex h-dvh min-h-0 overflow-hidden bg-[var(--background)]",children:[(0,b.jsx)(s.WorkspaceSidebar,{threads:A,participants:J,activeThreadId:S,isLoading:B,isRestoringActiveThread:F,isCreating:C,deletingThreadId:D,renamingThreadId:E,onSelectThread:a=>k.push(`/projects/${j}/thread/${encodeURIComponent(a)}`),onCreateThread:G,onRenameThread:H,onDeleteThread:I,visible:L,onToggle:()=>{let a=!L;M(a),(0,v.persistWorkspaceSidebarVisible)(a)},width:N,onWidthChange:U,projects:m,onCreateProject:o,onUpdateProject:p,onDeleteProject:q,onAddAgentToProject:y,onRemoveAgentFromProject:z,activeProjectId:R.id,activeProjectView:T,onUpdateParticipant:async a=>{let b=await fetch("/api/participants",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!b.ok)throw Error("Failed to update agent");let c=await b.json();K(a=>a.map(a=>a.id===c.id?c:a))},onSelectProject:a=>{let b=m.find(b=>b.id===a);b&&k.push(`/projects/${b.slug}`)}}),(0,b.jsxs)("div",{className:"flex-1 min-h-0 flex flex-col min-w-0 h-full overflow-hidden",children:[(0,b.jsxs)("div",{className:"flex items-center px-4 py-2 border-b border-[var(--app-shell-border)] bg-[var(--background)] shrink-0",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5 min-w-0 flex-shrink-0",children:[l!==`/projects/${j}`&&(0,b.jsx)("button",{type:"button",onClick:()=>k.back(),className:"p-1 -ml-1 rounded-lg text-[var(--muted-foreground)] hover:text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)] transition-colors",children:(0,b.jsx)(e.ArrowLeft,{className:"w-4 h-4"})}),(0,b.jsx)("button",{type:"button",onClick:()=>k.push(`/projects/${j}`),className:`text-xs transition-colors ${"home"===T?"text-[var(--foreground)]":"text-[var(--muted-foreground)] hover:text-[var(--foreground)]"}`,children:R.name}),"home"!==T&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:"\\"}),(0,b.jsx)("button",{type:"button",onClick:()=>k.push(`/projects/${j}/${"thread"===T?"":T}`),className:"text-xs text-[var(--foreground)] hover:text-[var(--muted-foreground)] transition-colors",children:{objectives:"Objectives",teams:"Teams","env-vars":"Environment Variables",linear:"Linear",automations:"Scheduled Tasks",thread:"Chat",knowledge:"Knowledge",terminal:"Terminal",settings:"Settings"}[T]??T}),(0,b.jsx)("span",{id:"topbar-breadcrumb",className:"contents"})]})]}),(0,b.jsx)("div",{className:"flex-1 flex justify-center min-w-0 px-4",children:(0,b.jsx)(r,{projectId:R.id})}),(0,b.jsxs)("div",{className:"flex items-center gap-2 flex-shrink-0",children:[(0,b.jsx)(h.StatusIndicator,{}),(0,b.jsx)("button",{type:"button",onClick:()=>Q(a=>"dark"===a?"light":"dark"),"aria-label":"dark"===P?"Switch to light theme":"Switch to dark theme",title:"dark"===P?"Switch to light theme":"Switch to dark theme",className:"inline-flex h-7 w-7 items-center justify-center rounded-lg text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]",children:"dark"===P?(0,b.jsx)(f.Sun,{className:"h-3.5 w-3.5"}):(0,b.jsx)(g.Moon,{className:"h-3.5 w-3.5"})})]})]}),a]})]}):(0,b.jsxs)("div",{className:"flex flex-col items-center justify-center h-full",children:[(0,b.jsx)("h2",{className:"text-xl font-bold mb-2",children:"Project Not Found"}),(0,b.jsxs)("p",{className:"text-[var(--muted-foreground)] mb-4",children:["The project “",j,"” does not exist or you do not have access to it."]}),(0,b.jsx)("button",{onClick:()=>k.push("/projects"),className:"px-4 py-2 bg-[var(--primary)] text-white rounded-lg hover:bg-[var(--primary-dark)] transition-colors",children:"Back to Projects"})]})}a.s(["default",0,function({children:a,params:d}){return(0,b.jsx)(c.Suspense,{fallback:(0,b.jsx)("div",{className:"flex h-full items-center justify-center text-sm text-[var(--muted-foreground)]",children:"Loading project…"}),children:(0,b.jsx)(x,{params:d,children:a})})}],657613)}];
|
|
1
|
+
module.exports=[657613,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(50944),e=a.i(285320),f=a.i(970393),g=a.i(508869),h=a.i(523321),i=a.i(166621),j=a.i(971382);let k=(0,a.i(831709).default)("clock-3",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6h4",key:"135r8i"}]]);var l=a.i(552605),m=a.i(349692),n=a.i(737313),o=a.i(542341),p=a.i(489461),q=a.i(985339),r=a.i(824179),s=a.i(529889);function t({projectId:a}){let{isTouchLayout:e}=(0,s.useInputCapabilities)(),f=(0,d.useRouter)(),g=(0,d.usePathname)(),h=(0,c.useRef)(null),i=(0,c.useRef)(null),[u,v]=(0,c.useState)(""),[w,x]=(0,c.useState)([]),[y,z]=(0,c.useState)(0),[A,B]=(0,c.useState)(!1),[C,D]=(0,c.useState)(null),[E,F]=(0,c.useState)(!1),[G,H]=(0,c.useState)(0),[I,J]=(0,c.useState)(new Set),K=u.trim(),L=(0,c.useMemo)(()=>w.map(a=>({...a,visibleResults:I.has(a.id)?a.results:a.results.slice(0,3),hiddenCount:Math.max(0,a.results.length-3)})),[I,w]),M=(0,c.useMemo)(()=>L.flatMap(a=>a.visibleResults),[L]),N=(0,c.useMemo)(()=>M.map(a=>`${a.kind}:${a.id}`),[M]),O=(0,c.useCallback)(()=>{v(""),x([]),z(0),D(null),B(!1),H(0)},[]),P=(0,c.useCallback)(a=>{O(),F(!1),f.push(a.href)},[O,f]);(0,c.useEffect)(()=>{O(),F(!1),J(new Set)},[O,g]),(0,c.useEffect)(()=>{let a=a=>{h.current?.contains(a.target)||F(!1)};return window.addEventListener("pointerdown",a),()=>window.removeEventListener("pointerdown",a)},[]),(0,c.useEffect)(()=>{let a=a=>{(a.metaKey||a.ctrlKey)&&"k"===a.key.toLowerCase()&&(a.preventDefault(),i.current?.focus(),i.current?.select())};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[]),(0,c.useEffect)(()=>{E&&H(0)},[E,w]),(0,c.useEffect)(()=>{if(!K||K.length<2){x([]),z(0),D(null),B(!1),J(new Set);return}let b=!1;B(!0);let c=window.setTimeout(()=>{(async()=>{try{let c=new URLSearchParams({q:K}),d=await fetch(`/api/projects/${encodeURIComponent(a)}/search?${c.toString()}`,{cache:"no-store"}),e=await d.json().catch(()=>null);if(b)return;if(!d.ok){let a=e&&"object"==typeof e&&"error"in e?String(e.error):"Search failed";x([]),z(0),D(a);return}x(Array.isArray(e.sections)?e.sections:[]),z("number"==typeof e.total?e.total:0),D(null),J(new Set)}catch(a){if(b)return;console.error("Project search failed",a),x([]),z(0),D("Search failed")}finally{b||B(!1)}})()},220);return()=>{b=!0,window.clearTimeout(c)}},[K,a]);let Q=E&&(K.length>0||A||null!==C),R=M.length>0?M[Math.max(0,Math.min(G,M.length-1))]:null,S=(0,c.useCallback)(a=>{J(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),c})},[]);return(0,b.jsxs)("div",{ref:h,className:"relative w-full max-w-xl",children:[(0,b.jsxs)("div",{className:"group/search relative",children:[(0,b.jsx)(o.Search,{className:"pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-[var(--app-shell-soft-text)] transition-colors group-focus-within/search:text-[var(--primary)]",strokeWidth:1.8}),(0,b.jsx)("input",{ref:i,type:"text",value:u,onFocus:()=>F(!0),onChange:a=>{v(a.target.value),F(!0)},onKeyDown:a=>{if("ArrowDown"===a.key&&M.length>0){a.preventDefault(),H(a=>(a+1)%M.length);return}if("ArrowUp"===a.key&&M.length>0){a.preventDefault(),H(a=>(a-1+M.length)%M.length);return}if("Enter"===a.key&&R){a.preventDefault(),P(R);return}"Escape"===a.key&&(K?O():(F(!1),i.current?.blur()))},placeholder:"Search objectives, tickets, tasks, teams, agents, and chat…",className:"h-8 w-full rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] pl-9 pr-16 text-xs font-medium text-[var(--foreground)] outline-none placeholder:text-[var(--app-shell-soft-text)] transition-all hover:border-[var(--app-shell-border-strong)] focus:border-[var(--primary)] focus:ring-2 focus:ring-[var(--ring)]"}),K?(0,b.jsxs)("div",{className:"absolute right-2 top-1/2 flex -translate-y-1/2 items-center gap-2",children:[(0,b.jsx)("span",{className:"text-[11px] font-bold text-[var(--muted-foreground)]",children:A?"…":y}),(0,b.jsx)("button",{type:"button",onClick:()=>{O(),i.current?.focus()},className:"inline-flex h-5 w-5 items-center justify-center rounded-md text-[var(--app-shell-soft-text)] transition-colors hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]","aria-label":"Clear search",children:(0,b.jsx)(r.X,{className:"h-3.5 w-3.5"})})]}):e?null:(0,b.jsx)("kbd",{className:"pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 rounded-md border border-[var(--app-shell-border)] bg-[var(--app-shell-subtle)] px-1.5 py-0.5 font-sans text-[10px] font-bold text-[var(--app-shell-soft-text)]",children:"⌘K"})]}),Q?(0,b.jsx)("div",{className:"absolute left-0 right-0 top-[calc(100%+0.5rem)] z-50 overflow-hidden rounded-2xl border border-[var(--app-shell-border)] bg-[var(--app-shell-surface)] shadow-2xl shadow-black/20",children:(0,b.jsxs)("div",{className:"max-h-[28rem] overflow-y-auto p-2",children:[K.length<2?(0,b.jsx)("div",{className:"rounded-xl px-3 py-4 text-sm text-[var(--muted-foreground)]",children:"Keep typing to search across project entities."}):null,A?(0,b.jsxs)("div",{className:"flex items-center gap-2 rounded-xl px-3 py-4 text-sm text-[var(--muted-foreground)]",children:[(0,b.jsx)(m.Loader2,{className:"h-4 w-4 animate-spin"}),"Searching this project…"]}):null,!A&&C?(0,b.jsx)("div",{className:"rounded-xl px-3 py-4 text-sm text-rose-500",children:C}):null,A||C||!(K.length>=2)||0!==w.length?null:(0,b.jsx)("div",{className:"rounded-xl px-3 py-4 text-sm text-[var(--muted-foreground)]",children:"No matches in this project."}),!A&&!C&&L.map(a=>(0,b.jsxs)("div",{className:"mb-2 last:mb-0",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3 px-3 pb-1 pt-2",children:[(0,b.jsxs)("div",{className:"text-[10px] font-semibold uppercase tracking-[0.16em] text-[var(--app-shell-soft-text)]",children:[a.label,(0,b.jsx)("span",{className:"ml-1.5 text-[9px] text-[var(--muted-foreground)]",children:a.results.length})]}),a.results.length>3?(0,b.jsx)("button",{type:"button",onMouseDown:a=>a.preventDefault(),onClick:()=>S(a.id),className:"text-[10px] font-medium text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)]",children:I.has(a.id)?"Collapse":`Show ${a.hiddenCount} more`}):null]}),(0,b.jsx)("div",{className:"space-y-1",children:a.visibleResults.map(a=>{let c,d,e=`${a.kind}:${a.id}`,f=N.findIndex(a=>a===e),g=f===G,h=function(a){switch(a){case"objective":return p.Target;case"linear_issue":return l.FileText;case"scheduled_task":return k;case"team":return q.Users;case"agent":return j.Bot;case"chat_thread":case"chat_message":return n.MessageSquare;default:return o.Search}}(a.kind);return(0,b.jsxs)("button",{type:"button",onMouseDown:a=>a.preventDefault(),onMouseEnter:()=>H(f),onClick:()=>P(a),className:`flex w-full items-start gap-3 rounded-xl px-3 py-2.5 text-left transition-colors ${g?"bg-[var(--app-shell-subtle)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}`,children:[(0,b.jsx)("span",{className:"mt-0.5 inline-flex h-7 w-7 shrink-0 items-center justify-center rounded-lg border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] text-[var(--app-shell-muted)]",children:(0,b.jsx)(h,{className:"h-3.5 w-3.5",strokeWidth:1.75})}),(0,b.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,b.jsxs)("span",{className:"flex min-w-0 items-center gap-2",children:[(0,b.jsx)("span",{className:"truncate text-sm font-medium",children:a.title}),(0,b.jsx)("span",{className:"shrink-0 rounded-full bg-[var(--app-shell-subtle)] px-1.5 py-0.5 text-[10px] font-semibold uppercase tracking-wide text-[var(--app-shell-soft-text)]",children:a.label})]}),a.context?(0,b.jsx)("span",{className:"mt-0.5 block truncate text-xs text-[var(--muted-foreground)]",children:a.context}):null,a.description?(0,b.jsx)("span",{className:"mt-1 block text-xs leading-5 text-[var(--muted-foreground)]",children:(c=a.description.split(/(<\/?mark>)/g),d=!1,c.map((a,c)=>"<mark>"===a?(d=!0,null):"</mark>"===a?(d=!1,null):a?d?(0,b.jsx)("mark",{className:"rounded bg-amber-200/80 px-0.5 text-inherit",children:a},`mark-${c}`):(0,b.jsx)("span",{children:a},`text-${c}`):null))}):null]})]},e)})})]},a.id))]})}):null]})}var u=a.i(550158),v=a.i(830284),w=a.i(111013),x=a.i(455106),y=a.i(427411);function z({children:a,params:j}){let{slug:k}=(0,c.use)(j),{isTouchLayout:l}=(0,s.useInputCapabilities)(),m=(0,d.useRouter)(),n=(0,d.usePathname)(),{projects:o,isLoading:p,createProject:q,updateProject:r,deleteProject:A,addAgent:B,removeAgent:C}=(0,v.useProjectsWithAgents)(),{threads:D,isLoading:E,isCreating:F,deletingThreadId:G,renamingThreadId:H,isRestoringActiveThread:I,createThread:J,renameThread:K,deleteThread:L}=(0,w.useThreadState)(),[M,N]=(0,c.useState)([]),[O,P]=(0,c.useState)(!1),[Q,R]=(0,c.useState)(368),[S,T]=(0,c.useState)(()=>"light");(0,c.useEffect)(()=>{P((0,x.loadWorkspaceSidebarVisible)()),R((0,y.loadWorkspaceWidth)()||368)},[]),(0,c.useEffect)(()=>{},[S]),(0,c.useEffect)(()=>{fetch("/api/participants").then(a=>a.json()).then(a=>N(Array.isArray(a)?a:[])).catch(()=>N([]))},[]);let U=(0,c.useMemo)(()=>o.find(a=>a.slug===k)??null,[o,k]),V=(0,c.useMemo)(()=>{let a=n.match(/\/projects\/[^/]+\/thread\/([^/]+)/);return a?.[1]?decodeURIComponent(a[1]):U?.thread_ids[0]??null},[U?.thread_ids,n]),W=(0,c.useMemo)(()=>n.includes("/linear")?"linear":n.includes("/automations")?"automations":n.includes("/thread/")?"thread":n.includes("/knowledge")?"knowledge":n.includes("/objectives")?"objectives":n.includes("/teams")?"teams":n.includes("/folders")?"folders":n.includes("/env-vars")?"env-vars":n.includes("/terminal")?"terminal":n.includes("/settings")?"settings":"home",[n]),X=()=>{let a=!O;P(a),(0,x.persistWorkspaceSidebarVisible)(a)},Y=(0,c.useCallback)(a=>{R(a),(0,y.persistWorkspaceWidth)(a)},[]);return p?(0,b.jsx)("div",{className:"flex items-center justify-center h-full",children:(0,b.jsx)("span",{className:"spinner w-8 h-8 border-3 border-[var(--primary)] border-t-transparent rounded-full"})}):U?(0,b.jsxs)("div",{className:"flex h-dvh min-h-0 overflow-hidden bg-[var(--background)]",children:[(0,b.jsx)(u.WorkspaceSidebar,{threads:D,participants:M,activeThreadId:V,isLoading:E,isRestoringActiveThread:I,isCreating:F,deletingThreadId:G,renamingThreadId:H,onSelectThread:a=>m.push(`/projects/${k}/thread/${encodeURIComponent(a)}`),onCreateThread:J,onRenameThread:K,onDeleteThread:L,visible:O,onToggle:X,width:Q,onWidthChange:Y,projects:o,onCreateProject:q,onUpdateProject:r,onDeleteProject:A,onAddAgentToProject:B,onRemoveAgentFromProject:C,activeProjectId:U.id,activeProjectView:W,onUpdateParticipant:async a=>{let b=await fetch("/api/participants",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!b.ok)throw Error("Failed to update agent");let c=await b.json();N(a=>a.map(a=>a.id===c.id?c:a))},onSelectProject:a=>{let b=o.find(b=>b.id===a);b&&m.push(`/projects/${b.slug}`)}}),(0,b.jsxs)("div",{className:"flex-1 min-h-0 flex flex-col min-w-0 h-full overflow-hidden",children:[(0,b.jsxs)("div",{className:"flex items-center px-4 py-2 border-b border-[var(--app-shell-border)] bg-[var(--background)] shrink-0",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5 min-w-0 flex-shrink-0",children:[!O&&(0,b.jsx)("button",{type:"button",onClick:X,className:"inline-flex h-9 w-9 items-center justify-center rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] text-[var(--muted-foreground)] transition-colors hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]",title:"Show sidebar","aria-label":"Show sidebar",children:(0,b.jsx)(f.PanelLeftOpen,{className:"h-4 w-4"})}),n!==`/projects/${k}`&&(0,b.jsx)("button",{type:"button",onClick:()=>m.back(),className:"p-1 -ml-1 rounded-lg text-[var(--muted-foreground)] hover:text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)] transition-colors",children:(0,b.jsx)(e.ArrowLeft,{className:"w-4 h-4"})}),(0,b.jsx)("button",{type:"button",onClick:()=>m.push(`/projects/${k}`),className:`text-xs transition-colors ${"home"===W?"text-[var(--foreground)]":"text-[var(--muted-foreground)] hover:text-[var(--foreground)]"}`,children:U.name}),"home"!==W&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:"\\"}),(0,b.jsx)("button",{type:"button",onClick:()=>m.push(`/projects/${k}/${"thread"===W?"":W}`),className:"text-xs text-[var(--foreground)] hover:text-[var(--muted-foreground)] transition-colors",children:{objectives:"Objectives",teams:"Teams",folders:"Folders","env-vars":"Environment Variables",linear:"Linear",automations:"Scheduled Tasks",thread:"Chat",knowledge:"Knowledge",terminal:"Terminal",settings:"Settings"}[W]??W}),(0,b.jsx)("span",{id:"topbar-breadcrumb",className:"contents"})]})]}),(0,b.jsx)("div",{className:"flex-1 flex justify-center min-w-0 px-4",children:(0,b.jsx)(t,{projectId:U.id})}),(0,b.jsxs)("div",{className:"flex items-center gap-2 flex-shrink-0",children:[(0,b.jsx)(i.StatusIndicator,{}),(0,b.jsx)("button",{type:"button",onClick:()=>T(a=>"dark"===a?"light":"dark"),"aria-label":"dark"===S?"Switch to light theme":"Switch to dark theme",title:"dark"===S?"Switch to light theme":"Switch to dark theme",className:`inline-flex items-center justify-center rounded-lg text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)] ${l?"h-9 w-9":"h-7 w-7"}`,children:"dark"===S?(0,b.jsx)(g.Sun,{className:l?"h-4 w-4":"h-3.5 w-3.5"}):(0,b.jsx)(h.Moon,{className:l?"h-4 w-4":"h-3.5 w-3.5"})})]})]}),a]})]}):(0,b.jsxs)("div",{className:"flex flex-col items-center justify-center h-full",children:[(0,b.jsx)("h2",{className:"text-xl font-bold mb-2",children:"Project Not Found"}),(0,b.jsxs)("p",{className:"text-[var(--muted-foreground)] mb-4",children:["The project “",k,"” does not exist or you do not have access to it."]}),(0,b.jsx)("button",{onClick:()=>m.push("/projects"),className:"px-4 py-2 bg-[var(--primary)] text-white rounded-lg hover:bg-[var(--primary-dark)] transition-colors",children:"Back to Projects"})]})}a.s(["default",0,function({children:a,params:d}){return(0,b.jsx)(c.Suspense,{fallback:(0,b.jsx)("div",{className:"flex h-full items-center justify-center text-sm text-[var(--muted-foreground)]",children:"Loading project…"}),children:(0,b.jsx)(z,{params:d,children:a})})}],657613)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=apps_local_app_projects_%5Bslug%5D_layout_tsx_0aaa3~t._.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
module.exports=[576608,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(50944),e=a.i(830284),f=a.i(819721),g=a.i(831709);let h=(0,g.default)("arrow-down",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]),i=(0,g.default)("arrow-up",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]);var j=a.i(627421),k=a.i(811760),l=a.i(820859),m=a.i(379065),n=a.i(552605);let o=(0,g.default)("link-2",[["path",{d:"M9 17H7A5 5 0 0 1 7 7h2",key:"8i5ue5"}],["path",{d:"M15 7h2a5 5 0 1 1 0 10h-2",key:"1b9ql8"}],["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}]]);var p=a.i(73948),q=a.i(353532),r=a.i(864061),s=a.i(542341),t=a.i(642784),u=a.i(252197),v=a.i(520612),w=a.i(675665);let x={activeScriptId:null,scripts:[]};var y=a.i(155829),z=a.i(496368),A=a.i(86007);let B=(0,g.default)("save",[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]]);var C=a.i(697183),D=a.i(734709),E=a.i(86466);function F({projectSlug:a,scripts:d,activeScriptId:e,onSetActiveScriptId:f,onSaveScript:g,onDeleteScript:h}){let i=(0,c.useMemo)(()=>d.find(a=>a.id===e)??null,[e,d]),[k,l]=(0,c.useState)(()=>e?{type:"edit",scriptId:e}:{type:"new"}),[m,n]=(0,c.useState)(""),[o,p]=(0,c.useState)(""),[r,s]=(0,c.useState)(null),[t,u]=(0,c.useState)(null),v="edit"===k.type?k.scriptId:null;(0,c.useEffect)(()=>{if("edit"===k.type){let a=d.find(a=>a.id===k.scriptId);if(a){n(a.name),p(a.prompt);return}}if(i&&"new"!==k.type){("edit"!==k.type||k.scriptId!==i.id)&&l({type:"edit",scriptId:i.id}),n(i.name),p(i.prompt);return}0===d.length&&"new"!==k.type&&(l({type:"new"}),n(""),p(""))},[i,v,k,d]);let w=()=>{l({type:"new"}),n(""),p(""),s(null)},x=()=>{try{let a=g({name:m,prompt:o});l({type:"edit",scriptId:a.id}),s(null)}catch(a){s(a instanceof Error?a.message:"Failed to save session script.")}};return(0,b.jsxs)("div",{className:"flex flex-col gap-5",children:[(0,b.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,b.jsx)("h3",{className:"text-sm font-semibold text-[var(--foreground)]",children:"Session Scripts"}),(0,b.jsxs)("p",{className:"text-xs leading-relaxed text-[var(--muted-foreground)]",children:["Save reusable kickoff prompts for the ",String(a??"").trim()||"global Linear board",". These scripts stay on this device and layer on top of the built-in ticket context whenever you start a scripted session."]})]}),(0,b.jsxs)("div",{className:"grid gap-5 md:grid-cols-[240px_minmax(0,1fr)]",children:[(0,b.jsxs)("aside",{className:"rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] p-3",children:[(0,b.jsxs)("div",{className:"mb-3 flex items-center justify-between",children:[(0,b.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-[0.16em] text-[var(--muted-foreground)]",children:"Library"}),(0,b.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1 rounded-md border border-[var(--card-border)] px-2 py-1 text-[11px] font-medium text-[var(--foreground)] transition-colors hover:bg-[var(--background)]",onClick:w,children:[(0,b.jsx)(q.Plus,{size:12}),"New"]})]}),(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsxs)("button",{type:"button",className:`flex w-full items-center gap-2 rounded-lg px-3 py-2 text-left text-xs transition-colors ${null===e?"bg-[var(--background)] text-[var(--foreground)]":"text-[var(--muted-foreground)] hover:bg-[var(--background)] hover:text-[var(--foreground)]"}`,onClick:()=>f(null),children:[(0,b.jsx)("span",{className:`flex h-4 w-4 shrink-0 items-center justify-center rounded-full border ${null===e?"border-blue-500 bg-blue-500 text-white":"border-[var(--card-border)]"}`,children:null===e?(0,b.jsx)(j.Check,{size:10}):null}),(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate font-medium",children:"AGX default"})]}),0===d.length?(0,b.jsx)("div",{className:"rounded-lg border border-dashed border-[var(--card-border)] px-3 py-4 text-xs leading-relaxed text-[var(--muted-foreground)]",children:"No saved scripts yet. Create one to reuse your preferred scripted session prompt."}):d.map(a=>{let c=a.id===e,d="edit"===k.type&&k.scriptId===a.id;return(0,b.jsx)("button",{type:"button",className:`rounded-lg border px-3 py-2 text-left transition-colors ${d?"border-blue-500/50 bg-[var(--background)]":"border-transparent hover:border-[var(--card-border)] hover:bg-[var(--background)]"}`,onClick:()=>{l({type:"edit",scriptId:a.id}),n(a.name),p(a.prompt),s(null),f(a.id)},children:(0,b.jsxs)("div",{className:"flex items-start gap-2",children:[(0,b.jsx)("span",{className:`mt-0.5 flex h-4 w-4 shrink-0 items-center justify-center rounded-full border ${c?"border-blue-500 bg-blue-500 text-white":"border-[var(--card-border)]"}`,children:c?(0,b.jsx)(j.Check,{size:10}):null}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("div",{className:"truncate text-xs font-medium text-[var(--foreground)]",children:a.name}),(0,b.jsx)("div",{className:"mt-1 line-clamp-2 text-[11px] leading-relaxed text-[var(--muted-foreground)]",children:a.prompt}),(0,b.jsxs)("div",{className:"mt-2 text-[10px] uppercase tracking-[0.14em] text-[var(--muted-foreground)]",children:["Updated ",function(a){try{return new Date(a).toLocaleString([],{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"})}catch{return a}}(a.updatedAt)]})]})]})},a.id)})]})]}),(0,b.jsxs)("section",{className:"rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] p-4",children:[(0,b.jsxs)("div",{className:"mb-4 flex items-start justify-between gap-3",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h4",{className:"text-sm font-semibold text-[var(--foreground)]",children:"edit"===k.type?"Edit Session Script":"New Session Script"}),(0,b.jsxs)("p",{className:"mt-1 text-xs leading-relaxed text-[var(--muted-foreground)]",children:["Use placeholders like ",(0,b.jsx)("code",{children:"{{ticket.identifier}}"}),", ",(0,b.jsx)("code",{children:"{{ticket.title}}"}),", ",(0,b.jsx)("code",{children:"{{ticket.status}}"}),", ",(0,b.jsx)("code",{children:"{{ticket.assignee}}"}),", ",(0,b.jsx)("code",{children:"{{project.slug}}"}),", ",(0,b.jsx)("code",{children:"{{knowledge_base.root}}"}),", ",(0,b.jsx)("code",{children:"{{knowledge_base.issue_path}}"}),", and ",(0,b.jsx)("code",{children:"{{worktree.path}}"}),"."]})]}),i?(0,b.jsxs)("span",{className:"rounded-full border border-blue-500/30 bg-blue-500/10 px-2.5 py-1 text-[11px] font-medium text-blue-400",children:["Active: ",i.name]}):(0,b.jsx)("span",{className:"rounded-full border border-[var(--card-border)] px-2.5 py-1 text-[11px] font-medium text-[var(--muted-foreground)]",children:"Active: AGX default"})]}),(0,b.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,b.jsxs)("label",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-[0.14em] text-[var(--muted-foreground)]",children:"Name"}),(0,b.jsx)("input",{type:"text",className:"rounded-lg border border-[var(--card-border)] bg-[var(--background)] px-3 py-2 text-sm text-[var(--foreground)] outline-none transition-colors focus:border-blue-500",placeholder:"Investigation-first",value:m,onChange:a=>n(a.target.value)})]}),(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-[0.14em] text-[var(--muted-foreground)]",children:"Prompt"}),(0,b.jsx)("div",{className:"overflow-hidden rounded-lg border border-[var(--card-border)] bg-[var(--background)] transition-colors focus-within:border-blue-500 [&_.rich-text-editor_.ProseMirror]:min-h-[220px]",children:(0,b.jsx)(E.default,{content:o,onChange:p,placeholder:"Read {{ticket.identifier}} and the full comment thread in Linear before changing code.\nWrite your investigation to {{knowledge_base.issue_path}} and stop after posting a plan unless the issue is already approved for implementation."})})]}),r?(0,b.jsx)("div",{className:"rounded-lg border border-red-500/30 bg-red-500/10 px-3 py-2 text-xs text-red-300",children:r}):null,(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 rounded-lg bg-blue-500 px-3 py-2 text-sm font-medium text-white transition-colors hover:bg-blue-600",onClick:x,children:[(0,b.jsx)(B,{size:14}),"Save as new"]}),"edit"===k.type?(0,b.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 rounded-lg border border-[var(--card-border)] px-3 py-2 text-sm font-medium text-[var(--foreground)] transition-colors hover:bg-[var(--background)]",onClick:()=>{if("edit"!==k.type)return void x();try{let a=g({id:k.scriptId,name:m,prompt:o});l({type:"edit",scriptId:a.id}),s(null)}catch(a){s(a instanceof Error?a.message:"Failed to update session script.")}},children:[(0,b.jsx)(B,{size:14}),"Update"]}):null,"edit"===k.type?(0,b.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 rounded-lg border border-red-500/30 px-3 py-2 text-sm font-medium text-red-300 transition-colors hover:bg-red-500/10",onClick:()=>{u(d.find(a=>a.id===k.scriptId)??null)},children:[(0,b.jsx)(C.Trash2,{size:14}),"Delete"]}):null,(0,b.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 rounded-lg border border-[var(--card-border)] px-3 py-2 text-sm font-medium text-[var(--muted-foreground)] transition-colors hover:bg-[var(--background)] hover:text-[var(--foreground)]",onClick:w,children:[(0,b.jsx)(q.Plus,{size:14}),"Clear editor"]})]})]})]})]}),(0,b.jsx)(D.default,{isOpen:!!t,title:"Delete session script?",message:"This removes the saved script from this device for the current project.",preview:t?.name,confirmLabel:"Delete",variant:"danger",onConfirm:()=>{t&&(h(t.id),"edit"===k.type&&k.scriptId===t.id&&(l({type:"new"}),n(""),p("")),u(null),s(null))},onCancel:()=>u(null)})]})}var G=a.i(475632);let H={search:"",assigneeIds:[],statuses:[],teamId:"",cycleId:"",sortBy:"activity",sortDir:"desc",hasActivity:!1};var I=a.i(427411),J=a.i(785061);function K(a,b){return a.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||b}var L=a.i(349692);let M=[{id:"claude",label:"Claude Code",icon:"🟣"},{id:"codex",label:"Codex",icon:"⚫"},{id:"gemini",label:"Gemini CLI",icon:"🔵"}];function N({connected:a,user:d,clis:e,mcpConfigured:f,onConnect:g,onConnectWithKey:h,onDisconnect:i,onConfigureMcp:k,onContinue:l}){let[n,o]=(0,c.useState)(""),[p,q]=(0,c.useState)(null),[r,s]=(0,c.useState)(!1),[t,u]=(0,c.useState)(null),[v,w]=(0,c.useState)(null),x=async()=>{if(!n.trim())return;s(!0),q(null);let a=await h(n.trim());s(!1),a.ok||q(a.error||"Failed to connect")},y=async a=>{u(a),w(null);let b=await k(a);u(null),b.ok||w(b.error||"Failed to configure")},z=M.filter(a=>e[a.id]).some(a=>f[a.id]);return(0,b.jsx)("div",{className:"flex h-full items-center justify-center",children:(0,b.jsxs)("div",{className:"w-full max-w-md space-y-6 px-6",children:[(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[a&&(0,b.jsx)("div",{className:"flex h-4 w-4 items-center justify-center rounded-full bg-green-500/20",children:(0,b.jsx)(j.Check,{size:10,className:"text-green-500"})}),(0,b.jsx)("h2",{className:"text-sm font-semibold text-[var(--foreground)]",children:"Connect to Linear"})]}),(0,b.jsx)("p",{className:"mt-1 text-xs text-[var(--muted-foreground)]",children:"Connect your workspace to browse tickets and execute them with agents."}),(0,b.jsx)("div",{className:"mt-3 space-y-3",children:a?(0,b.jsxs)("div",{className:"flex items-center justify-between rounded-md border border-[var(--card-border)] px-3 py-2",children:[(0,b.jsxs)("div",{className:"text-xs text-[var(--foreground)]",children:["Connected as"," ",(0,b.jsx)("span",{className:"font-medium",children:d?.name})]}),(0,b.jsx)("button",{type:"button",onClick:i,className:"text-[10px] text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",children:"Disconnect"})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("button",{type:"button",onClick:g,className:"w-full rounded-md bg-[var(--foreground)] px-4 py-2 text-xs font-medium text-[var(--card-bg)] transition-opacity hover:opacity-90",children:"Connect with Linear"}),(0,b.jsxs)("div",{className:"flex items-center gap-2 text-[10px] text-[var(--muted-foreground)]",children:[(0,b.jsx)("div",{className:"flex-1 border-t border-[var(--card-border)]"}),"or",(0,b.jsx)("div",{className:"flex-1 border-t border-[var(--card-border)]"})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"text-[10px] text-[var(--muted-foreground)] block mb-1",children:"Personal API key"}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)("input",{type:"password",value:n,onChange:a=>{o(a.target.value),q(null)},onKeyDown:a=>{"Enter"===a.key&&x()},placeholder:"lin_api_...",className:"flex-1 rounded-md border border-[var(--card-border)] bg-transparent px-3 py-1.5 text-xs text-[var(--foreground)] placeholder:text-[var(--muted-foreground)] focus:outline-none focus:ring-1 focus:ring-[var(--foreground)]"}),(0,b.jsx)("button",{type:"button",onClick:x,disabled:!n.trim()||r,className:"rounded-md border border-[var(--card-border)] px-3 py-1.5 text-xs text-[var(--foreground)] transition-colors hover:bg-[var(--card-border)] disabled:opacity-40",children:r?"...":"Save"})]}),p&&(0,b.jsx)("p",{className:"mt-1 text-[10px] text-red-400",children:p}),(0,b.jsxs)("a",{href:"https://linear.app/settings/api",target:"_blank",rel:"noopener noreferrer",className:"mt-1 inline-flex items-center gap-1 text-[10px] text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",children:["Generate at linear.app/settings/api",(0,b.jsx)(m.ExternalLink,{size:8})]})]})]})})]}),a&&(0,b.jsxs)("div",{children:[(0,b.jsx)("h2",{className:"text-sm font-semibold text-[var(--foreground)]",children:"Configure MCP"}),(0,b.jsx)("p",{className:"mt-1 text-xs text-[var(--muted-foreground)]",children:"Add the Linear MCP server to your AI tools so agents can read and update tickets during execution."}),(0,b.jsxs)("div",{className:"mt-3 space-y-1",children:[M.map(a=>{let c=e[a.id],d=f[a.id],g=t===a.id;return(0,b.jsxs)("div",{className:`flex items-center justify-between rounded-md border border-[var(--card-border)] px-3 py-2 ${!c?"opacity-40":""}`,children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 text-xs",children:[(0,b.jsx)("span",{children:a.icon}),(0,b.jsx)("span",{className:"text-[var(--foreground)]",children:a.label})]}),c?d?(0,b.jsxs)("span",{className:"flex items-center gap-1 text-[10px] text-green-500",children:[(0,b.jsx)(j.Check,{size:10}),"Configured"]}):(0,b.jsx)("button",{type:"button",onClick:()=>y(a.id),disabled:g,className:"flex items-center gap-1 rounded px-2 py-0.5 text-[10px] text-[var(--foreground)] border border-[var(--card-border)] hover:bg-[var(--card-border)] transition-colors disabled:opacity-50",children:g?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(L.Loader2,{size:10,className:"animate-spin"}),"Configuring..."]}):"Configure"}):(0,b.jsx)("span",{className:"text-[10px] text-[var(--muted-foreground)]",children:"Not installed"})]},a.id)}),v&&(0,b.jsx)("p",{className:"mt-1 text-[10px] text-red-400",children:v})]}),(0,b.jsx)("button",{type:"button",onClick:l,className:"mt-4 w-full rounded-md bg-[var(--foreground)] px-4 py-2 text-xs font-medium text-[var(--card-bg)] transition-opacity hover:opacity-90",children:z?"Continue":"Skip for now"})]})]})})}let O=(0,f.default)(async()=>{},{loadableGenerated:{modules:[844118]},ssr:!1});function P({onResize:a}){let d=(0,c.useRef)(!1),e=(0,c.useRef)(0);return(0,c.useEffect)(()=>{if(!d.current)return;let b=b=>{let c=b.clientX-e.current;e.current=b.clientX,a(c)},c=()=>{d.current=!1,document.body.style.cursor="",document.body.style.userSelect="",window.removeEventListener("mousemove",b),window.removeEventListener("mouseup",c)};return window.addEventListener("mousemove",b),window.addEventListener("mouseup",c),()=>{window.removeEventListener("mousemove",b),window.removeEventListener("mouseup",c)}}),(0,b.jsx)("div",{className:"group relative z-10 w-0 shrink-0 cursor-col-resize",onMouseDown:a=>{a.preventDefault(),d.current=!0,e.current=a.clientX,document.body.style.cursor="col-resize",document.body.style.userSelect="none"},children:(0,b.jsx)("div",{className:"absolute inset-y-0 -left-0.5 w-1 transition-colors group-hover:bg-[var(--primary)]/40"})})}function Q(a,b,c=20){let d=b?b.replace("#",""):"e2e8f0";return`https://api.dicebear.com/9.x/bottts-neutral/svg?seed=${encodeURIComponent(a)}&size=${c}&backgroundColor=${d}`}function R(a){if("chat"===a.mode)switch(a.status){case"queued":return{label:"starting",tone:"queued"};case"running":return{label:"thinking",tone:"running"};case"success":return{label:"ready",tone:"ready"};case"failed":return{label:"error",tone:"failed"};case"cancelled":return{label:"stopped",tone:"cancelled"}}return{label:function(a){switch(a){case"queued":return"queued";case"running":return"running";case"success":return"success";case"failed":return"failed";case"cancelled":return"cancelled";default:return a}}(a.status),tone:a.status}}function S(a){let b=a.sessionTitle?.trim();return b||("scripted"===a.mode?"Scripted session":"Chat session")}let T={"In Progress":"In Prog","In Review":"Review",Backlog:"Backlog",Todo:"Todo",Done:"Done",Cancelled:"Cancl."},U={queued:"bg-amber-500/10 border-amber-500/20 text-amber-400",running:"bg-yellow-500/10 border-yellow-500/20 text-yellow-400",ready:"bg-sky-500/10 border-sky-500/20 text-sky-400",success:"bg-emerald-500/10 border-emerald-500/20 text-emerald-400",failed:"bg-red-500/10 border-red-500/20 text-red-400",cancelled:"bg-zinc-500/10 border-zinc-500/20 text-zinc-400"},V={queued:"bg-amber-400",running:"bg-yellow-400",ready:"bg-sky-400",success:"bg-emerald-400",failed:"bg-red-400",cancelled:"bg-zinc-400"},W={queued:"text-amber-500",running:"text-yellow-500",ready:"text-sky-500",success:"text-green-500",failed:"text-red-500",cancelled:"text-[var(--muted-foreground)]"};function X({label:a,value:c,options:d,activeClasses:e,onChange:f,disabled:g=!1}){let h=c.trim().length>0;return(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsx)("select",{"aria-label":a,className:`max-w-[160px] appearance-none rounded-full border bg-transparent px-2.5 py-0.5 pr-6 text-[11px] font-medium outline-none transition-colors disabled:cursor-not-allowed disabled:opacity-60 ${h?e:"border-[var(--card-border)] text-[var(--muted-foreground)] hover:bg-[var(--card-bg)]"}`,value:c,disabled:g,onChange:a=>f(a.target.value),children:d.map(c=>(0,b.jsx)("option",{value:c.value,children:c.label},`${a}-${c.value||"all"}`))}),(0,b.jsx)(k.ChevronDown,{size:12,className:"pointer-events-none absolute right-2 top-1/2 -translate-y-1/2 text-current"})]})}function Y({status:a,options:c,onChange:d,disabled:e=!1,updating:f=!1}){return(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsx)("select",{"aria-label":"Ticket status",className:"max-w-[160px] appearance-none rounded-md border border-[var(--card-border)] bg-[var(--card-bg)] px-2.5 py-1 pr-8 text-xs font-medium text-[var(--foreground)] outline-none transition-colors hover:border-[var(--muted-foreground)] disabled:cursor-not-allowed disabled:opacity-60",value:a,disabled:e||f,onChange:a=>d(a.target.value),children:c.map(a=>(0,b.jsx)("option",{value:a.value,children:a.label},`ticket-status-${a.value}`))}),f?(0,b.jsx)(r.RefreshCw,{size:12,className:"pointer-events-none absolute right-6 top-1/2 -translate-y-1/2 animate-spin text-[var(--muted-foreground)]"}):null,(0,b.jsx)(k.ChevronDown,{size:12,className:"pointer-events-none absolute right-2 top-1/2 -translate-y-1/2 text-[var(--muted-foreground)]"})]})}function Z({label:a,values:d,options:e,activeClasses:f,onChange:g,emptyLabel:h}){let[i,l]=(0,c.useState)(!1),m=(0,c.useRef)(null),n=e.filter(a=>a.value&&d.includes(a.value)),o=n.length>0,p=(()=>{if(0===n.length||n.length===e.length)return h??a;if(1===n.length)return n[0]?.label??h??a;let b=a.toLowerCase();return`${n.length} ${b}${b.endsWith("s")?"es":"s"}`})();(0,c.useEffect)(()=>{if(!i)return;let a=a=>{m.current&&!m.current.contains(a.target)&&l(!1)};return document.addEventListener("mousedown",a),()=>document.removeEventListener("mousedown",a)},[i]);let q=(0,c.useCallback)(a=>{a?g(d.includes(a)?d.filter(b=>b!==a):[...d,a]):g([])},[g,d]);return(0,b.jsxs)("div",{className:"relative",ref:m,children:[(0,b.jsxs)("button",{type:"button","aria-label":a,"aria-haspopup":"listbox","aria-expanded":i,className:`flex max-w-[180px] items-center gap-1 rounded-full border px-2.5 py-0.5 text-[11px] font-medium transition-colors ${o?f:"border-[var(--card-border)] text-[var(--muted-foreground)] hover:bg-[var(--card-bg)]"}`,onClick:()=>l(a=>!a),children:[(0,b.jsx)("span",{className:"max-w-[132px] truncate",children:p}),(0,b.jsx)(k.ChevronDown,{size:12,className:`shrink-0 transition-transform ${i?"rotate-180":""}`})]}),i?(0,b.jsxs)("div",{role:"listbox","aria-label":`${a} options`,"aria-multiselectable":"true",className:"absolute left-0 top-full z-50 mt-1 min-w-[240px] overflow-hidden rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] p-1 shadow-lg backdrop-blur-sm",children:[(0,b.jsxs)("button",{type:"button",role:"option","aria-selected":!o,className:`flex w-full items-center gap-2 rounded-lg px-3 py-2 text-left text-xs transition-colors ${!o?"bg-[var(--background)] font-medium text-[var(--foreground)]":"text-[var(--muted-foreground)] hover:bg-[var(--background)] hover:text-[var(--foreground)]"}`,onClick:()=>g([]),children:[(0,b.jsx)("span",{className:`flex h-4 w-4 shrink-0 items-center justify-center rounded-full border ${!o?"border-blue-500 bg-blue-500 text-white":"border-[var(--card-border)]"}`,children:o?null:(0,b.jsx)(j.Check,{size:10})}),(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate",children:h??a})]}),n.length>0?(0,b.jsx)("div",{className:"px-3 pb-1 pt-2 text-[10px] font-medium uppercase tracking-[0.12em] text-[var(--muted-foreground)]",children:"Selected"}):null,e.filter(a=>a.value).map(c=>{let e=d.includes(c.value);return(0,b.jsxs)("button",{type:"button",role:"option","aria-selected":e,className:`flex w-full items-center gap-2 rounded-lg px-3 py-2 text-left text-xs transition-colors ${e?"bg-[var(--background)] font-medium text-[var(--foreground)]":"text-[var(--muted-foreground)] hover:bg-[var(--background)] hover:text-[var(--foreground)]"}`,onClick:()=>q(c.value),children:[(0,b.jsx)("span",{className:`flex h-4 w-4 shrink-0 items-center justify-center rounded border ${e?"border-blue-500 bg-blue-500 text-white":"border-[var(--card-border)]"}`,children:e?(0,b.jsx)(j.Check,{size:10}):null}),(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate",children:c.label})]},`${a}-${c.value}`)})]}):null]})}function $({issue:a,participants:d,projectId:e,projectSlug:f,issueStatusOptions:g,issueStatusUpdating:h,onIssueStatusChange:i,activeSessionScriptLabel:j,onOpenSessionScripts:k,onStartScriptedSession:l,createRun:m,updateRun:o,onRunCreated:q}){let r=d[0],s=(0,c.useRef)(crypto.randomUUID()),{messages:t,setMessages:v,sendMessage:w,chatRuns:x}=(0,y.useGroupChat)(s.current),{processes:B,streaming:C}=(0,z.useProcessPolling)({workspaceId:s.current},{messages:t,setMessages:v}),D=new Set(["queued","running","awaiting_user","blocked"]),E=x.some(a=>D.has(a.status))||B.some(a=>"spawning"===a.state||"running"===a.state)?x.some(a=>"queued"===a.status)?"queued":"working":"ready",F=(0,c.useMemo)(()=>new Map(d.map(a=>[a.id,a])),[d]),H=(0,c.useRef)(!1),I=(0,c.useCallback)(async(b,c,g,h,i,j,k)=>{if(H.current)return;H.current=!0;let l=(i?d.find(a=>a.id===i):null)??r;if(l)try{var n,p,s;let c,d,g,h,i,r,t,u,v,w,x,y,z,A,B,C,D,E,F,G,{promptPrefix:H}=(g=(p={issue:{identifier:a.identifier,title:a.title,status:a.status,assignee:a.assignee},project:f?{slug:f}:null}).issue.identifier.trim()||"TICKET-ID",h=p.issue.title.trim()||"Untitled ticket",i=String(p.issue.status??"").trim()||"Unknown",r=String(p.issue.assignee??"").trim()||"Unassigned",t=function(a){let b=String(a?.slug??"").trim();if(b)return K(b,"project");let c=String(a?.name??"").trim();return c?K(c,"project"):"project"}(p.project),u=String(p.project?.name??"").trim()||t,v=String(p.runtime?.knowledgeBaseRoot??"").trim()||`~/.agx/vault/${t}`,w=String(p.runtime?.issueKnowledgePath??"").trim()||`${v}/issues/${g}/`,x=String(p.runtime?.isolatedWorktreePath??"").trim()||`/tmp/agx-${K(g,"ticket")}`,z=(y={issue:{identifier:g,title:h,status:i,assignee:r},project:{name:u,slug:t,label:(s=p.project,c=String(s?.name??"").trim(),d=String(s?.slug??"").trim(),c&&d?`${c} (${d})`:c||d||"current project"),repos:p.project?.repos?[...p.project.repos]:[]},runtime:{knowledgeBaseRoot:v,issueKnowledgePath:w,isolatedWorktreePath:x}}).issue.identifier,A=y.issue.title,B=y.issue.status,C=y.issue.assignee,D=y.runtime.knowledgeBaseRoot,E=y.runtime.issueKnowledgePath,F=y.runtime.isolatedWorktreePath,G=`LINEAR TASK EXECUTION
|
|
1
|
+
module.exports=[576608,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(50944),e=a.i(830284),f=a.i(819721),g=a.i(831709);let h=(0,g.default)("arrow-down",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]),i=(0,g.default)("arrow-up",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]);var j=a.i(627421),k=a.i(811760),l=a.i(820859),m=a.i(379065),n=a.i(552605);let o=(0,g.default)("link-2",[["path",{d:"M9 17H7A5 5 0 0 1 7 7h2",key:"8i5ue5"}],["path",{d:"M15 7h2a5 5 0 1 1 0 10h-2",key:"1b9ql8"}],["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}]]);var p=a.i(73948),q=a.i(353532),r=a.i(864061),s=a.i(542341),t=a.i(642784),u=a.i(252197),v=a.i(824179),w=a.i(520612),x=a.i(675665);let y={activeScriptId:null,scripts:[]};var z=a.i(155829),A=a.i(496368),B=a.i(86007),C=a.i(354658),D=a.i(697183),E=a.i(734709),F=a.i(86466);function G({projectSlug:a,scripts:d,activeScriptId:e,onSetActiveScriptId:f,onSaveScript:g,onDeleteScript:h}){let i=(0,c.useMemo)(()=>d.find(a=>a.id===e)??null,[e,d]),[k,l]=(0,c.useState)(()=>e?{type:"edit",scriptId:e}:{type:"new"}),[m,n]=(0,c.useState)(""),[o,p]=(0,c.useState)(""),[r,s]=(0,c.useState)(null),[t,u]=(0,c.useState)(null),v="edit"===k.type?k.scriptId:null;(0,c.useEffect)(()=>{if("edit"===k.type){let a=d.find(a=>a.id===k.scriptId);if(a){n(a.name),p(a.prompt);return}}if(i&&"new"!==k.type){("edit"!==k.type||k.scriptId!==i.id)&&l({type:"edit",scriptId:i.id}),n(i.name),p(i.prompt);return}0===d.length&&"new"!==k.type&&(l({type:"new"}),n(""),p(""))},[i,v,k,d]);let w=()=>{l({type:"new"}),n(""),p(""),s(null)},x=()=>{try{let a=g({name:m,prompt:o});l({type:"edit",scriptId:a.id}),s(null)}catch(a){s(a instanceof Error?a.message:"Failed to save session script.")}};return(0,b.jsxs)("div",{className:"flex flex-col gap-5",children:[(0,b.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,b.jsx)("h3",{className:"text-sm font-semibold text-[var(--foreground)]",children:"Session Scripts"}),(0,b.jsxs)("p",{className:"text-xs leading-relaxed text-[var(--muted-foreground)]",children:["Save reusable kickoff prompts for the ",String(a??"").trim()||"global Linear board",". These scripts stay on this device and layer on top of the built-in ticket context whenever you start a scripted session."]})]}),(0,b.jsxs)("div",{className:"grid gap-5 md:grid-cols-[240px_minmax(0,1fr)]",children:[(0,b.jsxs)("aside",{className:"rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] p-3",children:[(0,b.jsxs)("div",{className:"mb-3 flex items-center justify-between",children:[(0,b.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-[0.16em] text-[var(--muted-foreground)]",children:"Library"}),(0,b.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1 rounded-md border border-[var(--card-border)] px-2 py-1 text-[11px] font-medium text-[var(--foreground)] transition-colors hover:bg-[var(--background)]",onClick:w,children:[(0,b.jsx)(q.Plus,{size:12}),"New"]})]}),(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsxs)("button",{type:"button",className:`flex w-full items-center gap-2 rounded-lg px-3 py-2 text-left text-xs transition-colors ${null===e?"bg-[var(--background)] text-[var(--foreground)]":"text-[var(--muted-foreground)] hover:bg-[var(--background)] hover:text-[var(--foreground)]"}`,onClick:()=>f(null),children:[(0,b.jsx)("span",{className:`flex h-4 w-4 shrink-0 items-center justify-center rounded-full border ${null===e?"border-blue-500 bg-blue-500 text-white":"border-[var(--card-border)]"}`,children:null===e?(0,b.jsx)(j.Check,{size:10}):null}),(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate font-medium",children:"AGX default"})]}),0===d.length?(0,b.jsx)("div",{className:"rounded-lg border border-dashed border-[var(--card-border)] px-3 py-4 text-xs leading-relaxed text-[var(--muted-foreground)]",children:"No saved scripts yet. Create one to reuse your preferred scripted session prompt."}):d.map(a=>{let c=a.id===e,d="edit"===k.type&&k.scriptId===a.id;return(0,b.jsx)("button",{type:"button",className:`rounded-lg border px-3 py-2 text-left transition-colors ${d?"border-blue-500/50 bg-[var(--background)]":"border-transparent hover:border-[var(--card-border)] hover:bg-[var(--background)]"}`,onClick:()=>{l({type:"edit",scriptId:a.id}),n(a.name),p(a.prompt),s(null),f(a.id)},children:(0,b.jsxs)("div",{className:"flex items-start gap-2",children:[(0,b.jsx)("span",{className:`mt-0.5 flex h-4 w-4 shrink-0 items-center justify-center rounded-full border ${c?"border-blue-500 bg-blue-500 text-white":"border-[var(--card-border)]"}`,children:c?(0,b.jsx)(j.Check,{size:10}):null}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("div",{className:"truncate text-xs font-medium text-[var(--foreground)]",children:a.name}),(0,b.jsx)("div",{className:"mt-1 line-clamp-2 text-[11px] leading-relaxed text-[var(--muted-foreground)]",children:a.prompt}),(0,b.jsxs)("div",{className:"mt-2 text-[10px] uppercase tracking-[0.14em] text-[var(--muted-foreground)]",children:["Updated ",function(a){try{return new Date(a).toLocaleString([],{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"})}catch{return a}}(a.updatedAt)]})]})]})},a.id)})]})]}),(0,b.jsxs)("section",{className:"rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] p-4",children:[(0,b.jsxs)("div",{className:"mb-4 flex items-start justify-between gap-3",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h4",{className:"text-sm font-semibold text-[var(--foreground)]",children:"edit"===k.type?"Edit Session Script":"New Session Script"}),(0,b.jsxs)("p",{className:"mt-1 text-xs leading-relaxed text-[var(--muted-foreground)]",children:["Use placeholders like ",(0,b.jsx)("code",{children:"{{ticket.identifier}}"}),", ",(0,b.jsx)("code",{children:"{{ticket.title}}"}),", ",(0,b.jsx)("code",{children:"{{ticket.status}}"}),", ",(0,b.jsx)("code",{children:"{{ticket.assignee}}"}),", ",(0,b.jsx)("code",{children:"{{project.slug}}"}),", ",(0,b.jsx)("code",{children:"{{knowledge_base.root}}"}),", ",(0,b.jsx)("code",{children:"{{knowledge_base.issue_path}}"}),", and ",(0,b.jsx)("code",{children:"{{worktree.path}}"}),"."]})]}),i?(0,b.jsxs)("span",{className:"rounded-full border border-blue-500/30 bg-blue-500/10 px-2.5 py-1 text-[11px] font-medium text-blue-400",children:["Active: ",i.name]}):(0,b.jsx)("span",{className:"rounded-full border border-[var(--card-border)] px-2.5 py-1 text-[11px] font-medium text-[var(--muted-foreground)]",children:"Active: AGX default"})]}),(0,b.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,b.jsxs)("label",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-[0.14em] text-[var(--muted-foreground)]",children:"Name"}),(0,b.jsx)("input",{type:"text",className:"rounded-lg border border-[var(--card-border)] bg-[var(--background)] px-3 py-2 text-sm text-[var(--foreground)] outline-none transition-colors focus:border-blue-500",placeholder:"Investigation-first",value:m,onChange:a=>n(a.target.value)})]}),(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-[0.14em] text-[var(--muted-foreground)]",children:"Prompt"}),(0,b.jsx)("div",{className:"overflow-hidden rounded-lg border border-[var(--card-border)] bg-[var(--background)] transition-colors focus-within:border-blue-500 [&_.rich-text-editor_.ProseMirror]:min-h-[220px]",children:(0,b.jsx)(F.default,{content:o,onChange:p,placeholder:"Read {{ticket.identifier}} and the full comment thread in Linear before changing code.\nWrite your investigation to {{knowledge_base.issue_path}} and stop after posting a plan unless the issue is already approved for implementation."})})]}),r?(0,b.jsx)("div",{className:"rounded-lg border border-red-500/30 bg-red-500/10 px-3 py-2 text-xs text-red-300",children:r}):null,(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 rounded-lg bg-blue-500 px-3 py-2 text-sm font-medium text-white transition-colors hover:bg-blue-600",onClick:x,children:[(0,b.jsx)(C.Save,{size:14}),"Save as new"]}),"edit"===k.type?(0,b.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 rounded-lg border border-[var(--card-border)] px-3 py-2 text-sm font-medium text-[var(--foreground)] transition-colors hover:bg-[var(--background)]",onClick:()=>{if("edit"!==k.type)return void x();try{let a=g({id:k.scriptId,name:m,prompt:o});l({type:"edit",scriptId:a.id}),s(null)}catch(a){s(a instanceof Error?a.message:"Failed to update session script.")}},children:[(0,b.jsx)(C.Save,{size:14}),"Update"]}):null,"edit"===k.type?(0,b.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 rounded-lg border border-red-500/30 px-3 py-2 text-sm font-medium text-red-300 transition-colors hover:bg-red-500/10",onClick:()=>{u(d.find(a=>a.id===k.scriptId)??null)},children:[(0,b.jsx)(D.Trash2,{size:14}),"Delete"]}):null,(0,b.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 rounded-lg border border-[var(--card-border)] px-3 py-2 text-sm font-medium text-[var(--muted-foreground)] transition-colors hover:bg-[var(--background)] hover:text-[var(--foreground)]",onClick:w,children:[(0,b.jsx)(q.Plus,{size:14}),"Clear editor"]})]})]})]})]}),(0,b.jsx)(E.default,{isOpen:!!t,title:"Delete session script?",message:"This removes the saved script from this device for the current project.",preview:t?.name,confirmLabel:"Delete",variant:"danger",onConfirm:()=>{t&&(h(t.id),"edit"===k.type&&k.scriptId===t.id&&(l({type:"new"}),n(""),p("")),u(null),s(null))},onCancel:()=>u(null)})]})}var H=a.i(475632),I=a.i(529889);let J={search:"",assigneeIds:[],statuses:[],teamId:"",cycleId:"",sortBy:"activity",sortDir:"desc",hasActivity:!1};var K=a.i(427411),L=a.i(785061);function M(a,b){return a.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||b}var N=a.i(349692);let O=[{id:"claude",label:"Claude Code",icon:"🟣"},{id:"codex",label:"Codex",icon:"⚫"},{id:"gemini",label:"Gemini CLI",icon:"🔵"}];function P({connected:a,user:d,clis:e,mcpConfigured:f,onConnect:g,onConnectWithKey:h,onDisconnect:i,onConfigureMcp:k,onContinue:l}){let[n,o]=(0,c.useState)(""),[p,q]=(0,c.useState)(null),[r,s]=(0,c.useState)(!1),[t,u]=(0,c.useState)(null),[v,w]=(0,c.useState)(null),x=async()=>{if(!n.trim())return;s(!0),q(null);let a=await h(n.trim());s(!1),a.ok||q(a.error||"Failed to connect")},y=async a=>{u(a),w(null);let b=await k(a);u(null),b.ok||w(b.error||"Failed to configure")},z=O.filter(a=>e[a.id]).some(a=>f[a.id]);return(0,b.jsx)("div",{className:"flex h-full items-center justify-center",children:(0,b.jsxs)("div",{className:"w-full max-w-md space-y-6 px-6",children:[(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[a&&(0,b.jsx)("div",{className:"flex h-4 w-4 items-center justify-center rounded-full bg-green-500/20",children:(0,b.jsx)(j.Check,{size:10,className:"text-green-500"})}),(0,b.jsx)("h2",{className:"text-sm font-semibold text-[var(--foreground)]",children:"Connect to Linear"})]}),(0,b.jsx)("p",{className:"mt-1 text-xs text-[var(--muted-foreground)]",children:"Connect your workspace to browse tickets and execute them with agents."}),(0,b.jsx)("div",{className:"mt-3 space-y-3",children:a?(0,b.jsxs)("div",{className:"flex items-center justify-between rounded-md border border-[var(--card-border)] px-3 py-2",children:[(0,b.jsxs)("div",{className:"text-xs text-[var(--foreground)]",children:["Connected as"," ",(0,b.jsx)("span",{className:"font-medium",children:d?.name})]}),(0,b.jsx)("button",{type:"button",onClick:i,className:"text-[10px] text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",children:"Disconnect"})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("button",{type:"button",onClick:g,className:"w-full rounded-md bg-[var(--foreground)] px-4 py-2 text-xs font-medium text-[var(--card-bg)] transition-opacity hover:opacity-90",children:"Connect with Linear"}),(0,b.jsxs)("div",{className:"flex items-center gap-2 text-[10px] text-[var(--muted-foreground)]",children:[(0,b.jsx)("div",{className:"flex-1 border-t border-[var(--card-border)]"}),"or",(0,b.jsx)("div",{className:"flex-1 border-t border-[var(--card-border)]"})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"text-[10px] text-[var(--muted-foreground)] block mb-1",children:"Personal API key"}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)("input",{type:"password",value:n,onChange:a=>{o(a.target.value),q(null)},onKeyDown:a=>{"Enter"===a.key&&x()},placeholder:"lin_api_...",className:"flex-1 rounded-md border border-[var(--card-border)] bg-transparent px-3 py-1.5 text-xs text-[var(--foreground)] placeholder:text-[var(--muted-foreground)] focus:outline-none focus:ring-1 focus:ring-[var(--foreground)]"}),(0,b.jsx)("button",{type:"button",onClick:x,disabled:!n.trim()||r,className:"rounded-md border border-[var(--card-border)] px-3 py-1.5 text-xs text-[var(--foreground)] transition-colors hover:bg-[var(--card-border)] disabled:opacity-40",children:r?"...":"Save"})]}),p&&(0,b.jsx)("p",{className:"mt-1 text-[10px] text-red-400",children:p}),(0,b.jsxs)("a",{href:"https://linear.app/settings/api",target:"_blank",rel:"noopener noreferrer",className:"mt-1 inline-flex items-center gap-1 text-[10px] text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",children:["Generate at linear.app/settings/api",(0,b.jsx)(m.ExternalLink,{size:8})]})]})]})})]}),a&&(0,b.jsxs)("div",{children:[(0,b.jsx)("h2",{className:"text-sm font-semibold text-[var(--foreground)]",children:"Configure MCP"}),(0,b.jsx)("p",{className:"mt-1 text-xs text-[var(--muted-foreground)]",children:"Add the Linear MCP server to your AI tools so agents can read and update tickets during execution."}),(0,b.jsxs)("div",{className:"mt-3 space-y-1",children:[O.map(a=>{let c=e[a.id],d=f[a.id],g=t===a.id;return(0,b.jsxs)("div",{className:`flex items-center justify-between rounded-md border border-[var(--card-border)] px-3 py-2 ${!c?"opacity-40":""}`,children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 text-xs",children:[(0,b.jsx)("span",{children:a.icon}),(0,b.jsx)("span",{className:"text-[var(--foreground)]",children:a.label})]}),c?d?(0,b.jsxs)("span",{className:"flex items-center gap-1 text-[10px] text-green-500",children:[(0,b.jsx)(j.Check,{size:10}),"Configured"]}):(0,b.jsx)("button",{type:"button",onClick:()=>y(a.id),disabled:g,className:"flex items-center gap-1 rounded px-2 py-0.5 text-[10px] text-[var(--foreground)] border border-[var(--card-border)] hover:bg-[var(--card-border)] transition-colors disabled:opacity-50",children:g?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(N.Loader2,{size:10,className:"animate-spin"}),"Configuring..."]}):"Configure"}):(0,b.jsx)("span",{className:"text-[10px] text-[var(--muted-foreground)]",children:"Not installed"})]},a.id)}),v&&(0,b.jsx)("p",{className:"mt-1 text-[10px] text-red-400",children:v})]}),(0,b.jsx)("button",{type:"button",onClick:l,className:"mt-4 w-full rounded-md bg-[var(--foreground)] px-4 py-2 text-xs font-medium text-[var(--card-bg)] transition-opacity hover:opacity-90",children:z?"Continue":"Skip for now"})]})]})})}var Q=a.i(971382),R=a.i(756490),S=a.i(327788),T=a.i(201485),U=a.i(736707);let V=(0,f.default)(async()=>{},{loadableGenerated:{modules:[668610]},ssr:!1});function W({children:a}){return(0,b.jsx)("label",{className:"block text-[10px] font-semibold text-[var(--muted-foreground)] uppercase tracking-widest mb-2",children:a})}function X({title:a,expanded:c,onToggle:d,children:e}){return(0,b.jsxs)("div",{className:"rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] overflow-hidden",children:[(0,b.jsxs)("button",{type:"button",onClick:d,className:"flex w-full items-center gap-2 px-4 py-3 text-left text-xs font-semibold text-[var(--muted-foreground)] uppercase tracking-widest hover:text-[var(--foreground)] transition-colors",children:[c?(0,b.jsx)(k.ChevronDown,{size:12}):(0,b.jsx)(R.ChevronRight,{size:12}),a]}),c&&(0,b.jsx)("div",{className:"border-t border-[var(--card-border)]",children:e})]})}function Y({projectId:a}){let[d,e]=(0,c.useState)(null),[f,g]=(0,c.useState)([]),[h,i]=(0,c.useState)(!0),[j,k]=(0,c.useState)(!1),[l,m]=(0,c.useState)(U.LINEAR_WORKER_DEFAULT_PROMPT),[n,o]=(0,c.useState)(U.LINEAR_WORKER_DEFAULT_SCRIPT_PROMPT),[q,s]=(0,c.useState)("*/30 * * * *"),[t,u]=(0,c.useState)(""),[v,w]=(0,c.useState)(""),[x,y]=(0,c.useState)(!1),[z,A]=(0,c.useState)(!0),B=(0,c.useRef)(!1),C=(0,c.useCallback)(async()=>{try{let b=new URLSearchParams;a&&b.set("projectId",a);let c=await fetch(`/api/linear/worker?${b}`);if(!c.ok)return;let d=await c.json();d.job&&(e(d.job),m(d.job.prompt||U.LINEAR_WORKER_DEFAULT_PROMPT),o(d.job.scriptPrompt||U.LINEAR_WORKER_DEFAULT_SCRIPT_PROMPT),s(d.job.cronExpr||d.job.cadence||"*/30 * * * *"),u(d.job.condition||""),w(d.job.teamId||""))}catch{}finally{i(!1)}},[a]),D=(0,c.useCallback)(async()=>{if(a)try{let b=await fetch(`/api/projects/${a}/teams`);if(!b.ok)return;let c=((await b.json()).teams??[]).map(a=>({id:a.id,name:a.name}));g(c)}catch{}},[a]);(0,c.useEffect)(()=>{B.current||(B.current=!0,C(),D())},[C,D]),(0,c.useEffect)(()=>{let a=setInterval(C,15e3);return()=>clearInterval(a)},[C]);let E=(0,c.useCallback)(async()=>{k(!0);try{let b={prompt:l,scriptPrompt:n,cadence:q,condition:t,teamId:v};a&&(b.projectId=a);let c=await fetch("/api/linear/worker",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(b)});if(c.ok){let a=await c.json();e(a.job)}}catch{}finally{k(!1)}},[l,n,q,t,v,a]),F=(0,c.useCallback)(async()=>{if(!d)return void await E();k(!0);try{let b="active"===d.state?"paused":"active",c=await fetch("/api/linear/worker",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectId:a,state:b})});if(c.ok){let a=await c.json();e(a.job)}}catch{}finally{k(!1)}},[d,a,E]);if(h)return(0,b.jsxs)("div",{className:"flex items-center gap-2 py-12 justify-center text-sm text-[var(--muted-foreground)]",children:[(0,b.jsx)(r.RefreshCw,{size:14,className:"animate-spin"}),"Loading Linear Worker..."]});let G=d?.state==="active";return(0,b.jsxs)("div",{className:"flex flex-col gap-4 h-full",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsx)("div",{className:"flex items-center gap-4 text-xs text-[var(--muted-foreground)]",children:d&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:`rounded-full border px-2 py-0.5 text-[10px] font-semibold uppercase tracking-[0.16em] ${G?"border-emerald-500/30 bg-emerald-500/10 text-emerald-400":"border-yellow-500/30 bg-yellow-500/10 text-yellow-400"}`,children:d.state}),(0,b.jsxs)("span",{children:["Next: ",(0,b.jsx)("span",{className:"text-[var(--foreground)]",children:function(a,b){if("paused"===b)return"Paused";if("stopped"===b)return"Stopped";if(null===a)return"Pending";let c=a-Date.now();return c<0?"Overdue":c<6e4?`in ${Math.round(c/1e3)}s`:c<36e5?`in ${Math.round(c/6e4)}m`:c<864e5?`in ${Math.round(c/36e5)}h`:`in ${Math.round(c/864e5)}d`}(d.nextRunAt,d.state)})]}),(0,b.jsxs)("span",{children:["Last: ",(0,b.jsx)("span",{className:"text-[var(--foreground)]",children:function(a){if(!a)return"Never";let b=Date.now()-a;return b<6e4?"Just now":b<36e5?`${Math.round(b/6e4)}m ago`:b<864e5?`${Math.round(b/36e5)}h ago`:`${Math.round(b/864e5)}d ago`}(d.lastRunAt)})]}),d.lastOutcome&&(0,b.jsxs)("span",{children:["Outcome:"," ",(0,b.jsx)("span",{className:"success"===d.lastOutcome?"text-emerald-400":"failed"===d.lastOutcome?"text-red-400":"text-[var(--foreground)]",children:d.lastOutcome})]})]})}),(0,b.jsx)("button",{type:"button",disabled:j,onClick:F,className:`flex items-center gap-1.5 rounded-lg border px-3 py-1.5 text-xs font-medium transition-colors ${G?"border-yellow-500/30 bg-yellow-500/10 text-yellow-400 hover:bg-yellow-500/20":"border-emerald-500/30 bg-emerald-500/10 text-emerald-400 hover:bg-emerald-500/20"}`,children:G?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(S.Pause,{size:12})," Pause"]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(p.Play,{size:12})," ",d?"Resume":"Enable"]})})]}),(0,b.jsxs)("div",{className:"flex flex-1 min-h-0 gap-6 overflow-y-auto",children:[(0,b.jsxs)("div",{className:"flex flex-1 min-w-0 flex-col gap-4",children:[(0,b.jsx)(X,{title:"How to pick a ticket",expanded:x,onToggle:()=>y(!x),children:(0,b.jsx)("div",{className:"min-h-[120px] overflow-y-auto resize-y",style:{height:320},children:(0,b.jsx)(V,{content:l,onChange:a=>m(a),placeholder:"Describe how to pick which ticket to work on..."})})}),(0,b.jsx)(X,{title:"How to work a ticket",expanded:z,onToggle:()=>A(!z),children:(0,b.jsx)("div",{className:"min-h-[300px] max-h-[50vh] overflow-y-auto",children:(0,b.jsx)(V,{content:n,onChange:a=>o(a),placeholder:"Instructions injected into the agent session when working a ticket..."})})})]}),(0,b.jsxs)("div",{className:"w-[340px] shrink-0 space-y-6",children:[f.length>0&&(0,b.jsxs)("div",{children:[(0,b.jsx)(W,{children:"Team"}),(0,b.jsx)(T.SimpleDropdown,{value:v||"",options:[{value:"",label:"Select a team"},...f.map(a=>({value:a.id,label:a.name}))],onChange:a=>w(a),ariaLabel:"Select team"}),(0,b.jsx)("p",{className:"mt-1.5 text-[10px] text-[var(--muted-foreground)]",children:"Agents in this team become default participants of the linear chat."})]}),(0,b.jsx)(T.ScheduleConditionPicker,{value:{cadence:q,condition:t},onChange:a=>{s(a.cadence),u(a.condition)},scheduleLabel:"Schedule",conditionLabel:"Condition"})]})]}),(0,b.jsx)("div",{className:"flex shrink-0 justify-end pt-2",children:(0,b.jsx)("button",{type:"button",disabled:j,onClick:E,className:"rounded-lg bg-[var(--foreground)] px-5 py-2 text-sm font-medium text-[var(--background)] transition-opacity hover:opacity-90 disabled:opacity-40",children:j?"Saving...":"Save configuration"})})]})}function Z({connected:a,user:d,clis:e,mcpConfigured:f,onConnect:g,onConnectWithKey:h,onDisconnect:i,onConfigureMcp:j,onClose:k,projectId:l}){let[m,n]=(0,c.useState)(a?"worker":"connection"),p=[{id:"connection",label:"Connection",icon:(0,b.jsx)(o,{size:14})},{id:"worker",label:"Linear Worker",icon:(0,b.jsx)(Q.Bot,{size:14}),disabled:!a}];return(0,b.jsx)("div",{className:"absolute inset-0 z-30 flex items-center justify-center bg-black/50",children:(0,b.jsxs)("div",{className:"relative flex w-full max-w-6xl flex-col rounded-lg border border-[var(--card-border)] bg-[var(--background)] shadow-xl",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between border-b border-[var(--card-border)] px-6",children:[(0,b.jsx)("div",{className:"flex items-center gap-6",children:p.map(a=>{let c=m===a.id;return(0,b.jsxs)("button",{onClick:()=>!a.disabled&&n(a.id),disabled:a.disabled,className:`relative flex items-center gap-2 py-4 text-sm font-semibold transition-colors ${c?"text-[var(--foreground)]":a.disabled?"cursor-not-allowed text-[var(--muted-foreground)]/40":"text-[var(--muted-foreground)] hover:text-[var(--foreground)]"}`,children:[a.icon,a.label,c&&(0,b.jsx)("span",{className:"absolute bottom-0 left-0 right-0 h-[2px] rounded-full bg-[var(--foreground)]"})]},a.id)})}),(0,b.jsx)("button",{type:"button",className:"rounded p-1.5 text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]",onClick:k,children:(0,b.jsx)(v.X,{size:18})})]}),(0,b.jsxs)("div",{className:"flex-1 min-h-0 max-h-[80vh] overflow-y-auto p-6",children:["connection"===m&&(0,b.jsx)(P,{connected:a,user:d,clis:e,mcpConfigured:f,onConnect:g,onConnectWithKey:h,onDisconnect:i,onConfigureMcp:j,onContinue:k}),"worker"===m&&a&&(0,b.jsx)(Y,{projectId:l})]})]})})}let $=(0,f.default)(async()=>{},{loadableGenerated:{modules:[844118]},ssr:!1});function _({onResize:a}){let d=(0,c.useRef)(!1),e=(0,c.useRef)(0);return(0,c.useEffect)(()=>{if(!d.current)return;let b=b=>{let c=b.clientX-e.current;e.current=b.clientX,a(c)},c=()=>{d.current=!1,document.body.style.cursor="",document.body.style.userSelect="",window.removeEventListener("mousemove",b),window.removeEventListener("mouseup",c)};return window.addEventListener("mousemove",b),window.addEventListener("mouseup",c),()=>{window.removeEventListener("mousemove",b),window.removeEventListener("mouseup",c)}}),(0,b.jsx)("div",{className:"group relative z-10 w-0 shrink-0 cursor-col-resize",onMouseDown:a=>{a.preventDefault(),d.current=!0,e.current=a.clientX,document.body.style.cursor="col-resize",document.body.style.userSelect="none"},children:(0,b.jsx)("div",{className:"absolute inset-y-0 -left-0.5 w-1 transition-colors group-hover:bg-[var(--primary)]/40"})})}function aa(a,b,c=20){let d=b?b.replace("#",""):"e2e8f0";return`https://api.dicebear.com/9.x/bottts-neutral/svg?seed=${encodeURIComponent(a)}&size=${c}&backgroundColor=${d}`}function ab(a){return new Date(a).toLocaleTimeString([],{hour:"numeric",minute:"2-digit"})}function ac(a){if("chat"===a.mode)switch(a.status){case"queued":return{label:"starting",tone:"queued"};case"running":return{label:"thinking",tone:"running"};case"success":return{label:"ready",tone:"ready"};case"failed":return{label:"error",tone:"failed"};case"cancelled":return{label:"stopped",tone:"cancelled"}}return{label:function(a){switch(a){case"queued":return"queued";case"running":return"running";case"success":return"success";case"failed":return"failed";case"cancelled":return"cancelled";default:return a}}(a.status),tone:a.status}}function ad(a){let b=a.sessionTitle?.trim();return b||("scripted"===a.mode?"Scripted session":"Chat session")}let ae={"In Progress":"In Prog","In Review":"Review",Backlog:"Backlog",Todo:"Todo",Done:"Done",Cancelled:"Cancl."},af={queued:"bg-amber-500/10 border-amber-500/20 text-amber-400",running:"bg-yellow-500/10 border-yellow-500/20 text-yellow-400",ready:"bg-sky-500/10 border-sky-500/20 text-sky-400",success:"bg-emerald-500/10 border-emerald-500/20 text-emerald-400",failed:"bg-red-500/10 border-red-500/20 text-red-400",cancelled:"bg-zinc-500/10 border-zinc-500/20 text-zinc-400"},ag={queued:"bg-amber-400",running:"bg-yellow-400",ready:"bg-sky-400",success:"bg-emerald-400",failed:"bg-red-400",cancelled:"bg-zinc-400"},ah={queued:"text-amber-500",running:"text-yellow-500",ready:"text-sky-500",success:"text-green-500",failed:"text-red-500",cancelled:"text-[var(--muted-foreground)]"};function ai({label:a,value:c,options:d,activeClasses:e,onChange:f,disabled:g=!1}){let h=c.trim().length>0;return(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsx)("select",{"aria-label":a,className:`max-w-[160px] appearance-none rounded-full border bg-transparent px-2.5 py-0.5 pr-6 text-[11px] font-medium outline-none transition-colors disabled:cursor-not-allowed disabled:opacity-60 ${h?e:"border-[var(--card-border)] text-[var(--muted-foreground)] hover:bg-[var(--card-bg)]"}`,value:c,disabled:g,onChange:a=>f(a.target.value),children:d.map(c=>(0,b.jsx)("option",{value:c.value,children:c.label},`${a}-${c.value||"all"}`))}),(0,b.jsx)(k.ChevronDown,{size:12,className:"pointer-events-none absolute right-2 top-1/2 -translate-y-1/2 text-current"})]})}function aj({status:a,options:c,onChange:d,disabled:e=!1,updating:f=!1}){return(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsx)("select",{"aria-label":"Ticket status",className:"max-w-[160px] appearance-none rounded-md border border-[var(--card-border)] bg-[var(--card-bg)] px-2.5 py-1 pr-8 text-xs font-medium text-[var(--foreground)] outline-none transition-colors hover:border-[var(--muted-foreground)] disabled:cursor-not-allowed disabled:opacity-60",value:a,disabled:e||f,onChange:a=>d(a.target.value),children:c.map(a=>(0,b.jsx)("option",{value:a.value,children:a.label},`ticket-status-${a.value}`))}),f?(0,b.jsx)(r.RefreshCw,{size:12,className:"pointer-events-none absolute right-6 top-1/2 -translate-y-1/2 animate-spin text-[var(--muted-foreground)]"}):null,(0,b.jsx)(k.ChevronDown,{size:12,className:"pointer-events-none absolute right-2 top-1/2 -translate-y-1/2 text-[var(--muted-foreground)]"})]})}function ak({label:a,values:d,options:e,activeClasses:f,onChange:g,emptyLabel:h}){let[i,l]=(0,c.useState)(!1),m=(0,c.useRef)(null),n=e.filter(a=>a.value&&d.includes(a.value)),o=n.length>0,p=(()=>{if(0===n.length||n.length===e.length)return h??a;if(1===n.length)return n[0]?.label??h??a;let b=a.toLowerCase();return`${n.length} ${b}${b.endsWith("s")?"es":"s"}`})();(0,c.useEffect)(()=>{if(!i)return;let a=a=>{m.current&&!m.current.contains(a.target)&&l(!1)};return document.addEventListener("pointerdown",a),()=>document.removeEventListener("pointerdown",a)},[i]);let q=(0,c.useCallback)(a=>{a?g(d.includes(a)?d.filter(b=>b!==a):[...d,a]):g([])},[g,d]);return(0,b.jsxs)("div",{className:"relative",ref:m,children:[(0,b.jsxs)("button",{type:"button","aria-label":a,"aria-haspopup":"listbox","aria-expanded":i,className:`flex max-w-[180px] items-center gap-1 rounded-full border px-2.5 py-0.5 text-[11px] font-medium transition-colors ${o?f:"border-[var(--card-border)] text-[var(--muted-foreground)] hover:bg-[var(--card-bg)]"}`,onClick:()=>l(a=>!a),children:[(0,b.jsx)("span",{className:"max-w-[132px] truncate",children:p}),(0,b.jsx)(k.ChevronDown,{size:12,className:`shrink-0 transition-transform ${i?"rotate-180":""}`})]}),i?(0,b.jsxs)("div",{role:"listbox","aria-label":`${a} options`,"aria-multiselectable":"true",className:"absolute left-0 top-full z-50 mt-1 min-w-[240px] overflow-hidden rounded-xl border border-[var(--card-border)] bg-[var(--card-bg)] p-1 shadow-lg backdrop-blur-sm",children:[(0,b.jsxs)("button",{type:"button",role:"option","aria-selected":!o,className:`flex w-full items-center gap-2 rounded-lg px-3 py-2 text-left text-xs transition-colors ${!o?"bg-[var(--background)] font-medium text-[var(--foreground)]":"text-[var(--muted-foreground)] hover:bg-[var(--background)] hover:text-[var(--foreground)]"}`,onClick:()=>g([]),children:[(0,b.jsx)("span",{className:`flex h-4 w-4 shrink-0 items-center justify-center rounded-full border ${!o?"border-blue-500 bg-blue-500 text-white":"border-[var(--card-border)]"}`,children:o?null:(0,b.jsx)(j.Check,{size:10})}),(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate",children:h??a})]}),n.length>0?(0,b.jsx)("div",{className:"px-3 pb-1 pt-2 text-[10px] font-medium uppercase tracking-[0.12em] text-[var(--muted-foreground)]",children:"Selected"}):null,e.filter(a=>a.value).map(c=>{let e=d.includes(c.value);return(0,b.jsxs)("button",{type:"button",role:"option","aria-selected":e,className:`flex w-full items-center gap-2 rounded-lg px-3 py-2 text-left text-xs transition-colors ${e?"bg-[var(--background)] font-medium text-[var(--foreground)]":"text-[var(--muted-foreground)] hover:bg-[var(--background)] hover:text-[var(--foreground)]"}`,onClick:()=>q(c.value),children:[(0,b.jsx)("span",{className:`flex h-4 w-4 shrink-0 items-center justify-center rounded border ${e?"border-blue-500 bg-blue-500 text-white":"border-[var(--card-border)]"}`,children:e?(0,b.jsx)(j.Check,{size:10}):null}),(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate",children:c.label})]},`${a}-${c.value}`)})]}):null]})}function al({issue:a,participants:d,projectId:e,projectSlug:f,issueStatusOptions:g,issueStatusUpdating:h,onIssueStatusChange:i,activeSessionScriptLabel:j,onOpenSessionScripts:k,onStartScriptedSession:l,createRun:m,updateRun:o,onRunCreated:q}){let r=d[0],s=(0,c.useRef)(null);s.current||(s.current=globalThis.crypto?.randomUUID?.()??`thread-${Date.now()}-${Math.random().toString(36).slice(2)}`);let{messages:t,setMessages:v,sendMessage:w,chatRuns:x}=(0,z.useGroupChat)(s.current),{processes:y,streaming:C}=(0,A.useProcessPolling)({workspaceId:s.current},{messages:t,setMessages:v}),D=new Set(["queued","running","awaiting_user","blocked"]),E=x.some(a=>D.has(a.status))||y.some(a=>"spawning"===a.state||"running"===a.state)?x.some(a=>"queued"===a.status)?"queued":"working":"ready",F=(0,c.useMemo)(()=>new Map(d.map(a=>[a.id,a])),[d]),G=(0,c.useRef)(!1),I=(0,c.useCallback)(async(b,c,g,h,i,j,k)=>{if(G.current)return;G.current=!0;let l=(i?d.find(a=>a.id===i):null)??r;if(l)try{var n,p,s;let c,d,g,h,i,r,t,u,v,w,x,y,z,A,B,C,D,E,F,G,{promptPrefix:H}=(g=(p={issue:{identifier:a.identifier,title:a.title,status:a.status,assignee:a.assignee},project:f?{slug:f}:null}).issue.identifier.trim()||"TICKET-ID",h=p.issue.title.trim()||"Untitled ticket",i=String(p.issue.status??"").trim()||"Unknown",r=String(p.issue.assignee??"").trim()||"Unassigned",t=function(a){let b=String(a?.slug??"").trim();if(b)return M(b,"project");let c=String(a?.name??"").trim();return c?M(c,"project"):"project"}(p.project),u=String(p.project?.name??"").trim()||t,v=String(p.runtime?.knowledgeBaseRoot??"").trim()||`~/.agx/vault/${t}`,w=String(p.runtime?.issueKnowledgePath??"").trim()||`${v}/issues/${g}/`,x=String(p.runtime?.isolatedWorktreePath??"").trim()||`/tmp/agx-${M(g,"ticket")}`,z=(y={issue:{identifier:g,title:h,status:i,assignee:r},project:{name:u,slug:t,label:(s=p.project,c=String(s?.name??"").trim(),d=String(s?.slug??"").trim(),c&&d?`${c} (${d})`:c||d||"current project"),repos:p.project?.repos?[...p.project.repos]:[]},runtime:{knowledgeBaseRoot:v,issueKnowledgePath:w,isolatedWorktreePath:x}}).issue.identifier,A=y.issue.title,B=y.issue.status,C=y.issue.assignee,D=y.runtime.knowledgeBaseRoot,E=y.runtime.issueKnowledgePath,F=y.runtime.isolatedWorktreePath,G=`LINEAR TASK EXECUTION
|
|
2
2
|
|
|
3
3
|
You are an engineer working through a single Linear ticket. Work like a careful teammate: continue existing work when present, investigate before coding, present a plan before implementation, ask clarifying questions when requirements are ambiguous, and stop cleanly when blocked instead of guessing.
|
|
4
4
|
|
|
@@ -34,6 +34,6 @@ RULES
|
|
|
34
34
|
- Leave the ticket and the knowledge base in a resumable state at the end of the session. Clean up temporary worktrees or session claims if your workflow created them.
|
|
35
35
|
|
|
36
36
|
`,{prompt:`Work on this Linear ticket: ${z} - ${A}`,promptPrefix:G}),I=H+(j?`
|
|
37
|
-
${j}`:""),J=await m({projectId:e??null,projectSlug:f??null,issueId:a.id,issueIdentifier:a.identifier,issueTitle:a.title,issueStatus:a.status,issueAssignee:a.assignee??null,agentId:l.id,agentName:l.name,mode:"chat"}),L=await fetch("/api/chat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({prompt:b,promptPrefix:I,threadId:J.threadId,activeParticipantIds:[l.id],projectSlug:f??void 0,routing:k})}),M=await L.json().catch(()=>({}));if(!L.ok||!M.chatRunId||!M.userMessageId)throw Error(M.error||"Failed to start chat session");await o(J.id,{chatRunId:M.chatRunId,rootMessageId:M.userMessageId}),q(J.id)}catch(a){console.error("Failed to create chat session:",a),H.current=!1,a instanceof Error&&window.alert(a.message)}},[a,d,r,e,f,m,o,q]);return(0,b.jsxs)("div",{className:"relative flex min-w-0 flex-1 flex-col overflow-hidden",children:[(0,b.jsxs)("header",{className:"flex h-12 shrink-0 items-center justify-between border-b border-[var(--card-border)] px-6",children:[(0,b.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[(0,b.jsx)("span",{className:"shrink-0 font-mono text-sm text-[var(--muted-foreground)]",children:a.identifier}),(0,b.jsx)("div",{className:"h-1 w-1 shrink-0 rounded-full bg-[var(--card-border)]"}),(0,b.jsx)("span",{className:"truncate text-sm font-medium text-[var(--foreground)]",children:a.title})]}),(0,b.jsxs)("div",{className:"flex shrink-0 items-center gap-2",children:[(0,b.jsx)(Y,{status:a.status,options:g,disabled:0===g.length,updating:h,onChange:b=>i(a,b)}),(0,b.jsxs)("button",{type:"button",className:"flex items-center gap-1 rounded-md border border-[var(--card-border)] px-2 py-1 text-xs font-medium text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]",onClick:k,title:`Session script: ${j}. Choose or edit the kickoff prompt for this ticket.`,children:[(0,b.jsx)(n.FileText,{size:12}),(0,b.jsx)("span",{className:"max-w-[120px] truncate",children:"AGX default"===j?"Session script":j})]}),(0,b.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 rounded-md bg-blue-500 px-2.5 py-1 text-xs font-medium text-white transition-colors hover:bg-blue-600",onClick:l,children:[(0,b.jsx)(p.Play,{size:12}),(0,b.jsx)("span",{children:"Start scripted session"})]})]})]}),(0,b.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto px-6 py-6 pb-64",children:0===t.length?(0,b.jsxs)("div",{className:"flex h-full flex-col items-center justify-center gap-2 text-[var(--muted-foreground)]",children:[(0,b.jsx)("span",{className:"text-sm",children:"Start a new session for this ticket"}),(0,b.jsx)("span",{className:"text-xs",children:"Type a message to open a chat, or launch the active session script."})]}):(0,b.jsxs)("div",{className:"mx-auto max-w-4xl space-y-8",children:[t.map(a=>{let c=a.participantId?F.get(a.participantId):null,d=(0,G.stripMarkers)(a.content);return d.trim()?(0,b.jsxs)("div",{className:"flex gap-3",children:["user"===a.role?(0,b.jsx)("div",{className:"flex h-7 w-7 shrink-0 items-center justify-center rounded-full bg-[var(--app-shell-subtle,var(--card-bg))]",children:(0,b.jsx)(u.User,{className:"h-3.5 w-3.5 text-[var(--muted-foreground)]"})}):(0,b.jsx)("img",{src:Q(a.participantId??"",c?.color),alt:c?.name??"Agent",className:"h-7 w-7 shrink-0 rounded-full object-cover"}),(0,b.jsxs)("div",{className:"min-w-0 flex-1 flex flex-col gap-1.5",children:[(0,b.jsx)("span",{className:"text-sm font-semibold text-[var(--foreground)]",children:"user"===a.role?"You":c?.name??"Agent"}),(0,b.jsx)("div",{className:"text-sm text-[var(--foreground)]",children:(0,b.jsx)(A.Markdown,{content:d,isUser:"user"===a.role})})]})]},a.id):null}),Object.entries(C).map(([a])=>{let c=F.get(a);return(0,b.jsxs)("div",{className:"flex items-center gap-3 text-sm text-[var(--muted-foreground)]",children:[(0,b.jsx)("img",{src:Q(a,c?.color),alt:c?.name??"Agent",className:"h-7 w-7 shrink-0 rounded-full object-cover"}),c?.name??"Agent"," is thinking..."]},`stream-${a}`)})]})}),(0,b.jsx)("div",{className:"absolute bottom-3 left-3 right-3 p-2",children:(0,b.jsx)(O,{onSend:I,onStop:()=>{},participants:d,projectSlug:f??void 0,loading:"ready"!==E,commands:[],activityStatus:E,placeholder:`Ask about ${a.identifier}...`,initialPinnedParticipantId:r?.id})})]})}function _({issue:a,run:d,participants:e,issueStatusOptions:f,issueStatusUpdating:g,onIssueStatusChange:h}){let{messages:i,setMessages:j,sendMessage:k,loadHistory:m,stop:n}=(0,y.useGroupChat)(d.threadId),{processes:o,streaming:p,chatRuns:q}=(0,z.useProcessPolling)(d.rootMessageId?{workspaceId:d.threadId,threadId:d.rootMessageId}:{workspaceId:d.threadId},{messages:i,setMessages:j}),r=(0,c.useMemo)(()=>{let a=q[0];if(!a)return R(d);let b={queued:"queued",running:"running",awaiting_user:"running",blocked:"running",completed:"success",failed:"failed",cancelled:"cancelled"}[a.status]??d.status;return R({...d,status:b})},[q,d]);(0,c.useEffect)(()=>{m()},[m,d.threadId]);let s=(0,c.useMemo)(()=>new Map(e.map(a=>[a.id,a])),[e]),t=new Set(["queued","running","awaiting_user","blocked"]),v=q.some(a=>t.has(a.status))||o.some(a=>"spawning"===a.state||"running"===a.state)?q.some(a=>"queued"===a.status)?"queued":"working":"ready",w=(0,c.useCallback)((a,b,c,f,g,h,i)=>{d.rootMessageId&&k(a,b,void 0,d.rootMessageId,c,void 0,(0,J.orderParticipantIds)(e.map(a=>a.id),g),d.projectSlug??void 0,h,i)},[e,d.projectSlug,d.rootMessageId,k]);return(0,b.jsxs)("div",{className:"relative flex min-w-0 flex-1 flex-col overflow-hidden",children:[(0,b.jsxs)("header",{className:"flex h-12 shrink-0 items-center justify-between border-b border-[var(--card-border)] px-6",children:[(0,b.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[(0,b.jsx)("span",{className:"shrink-0 font-mono text-sm text-[var(--muted-foreground)]",children:a.identifier}),(0,b.jsx)("div",{className:"h-1 w-1 shrink-0 rounded-full bg-[var(--card-border)]"}),(0,b.jsx)("span",{className:"truncate text-sm font-medium text-[var(--foreground)]",children:S(d)})]}),(0,b.jsxs)("div",{className:"flex shrink-0 items-center gap-4",children:[(0,b.jsx)(Y,{status:a.status,options:f,disabled:0===f.length,updating:g,onChange:b=>h(a,b)}),(0,b.jsxs)("div",{className:`flex items-center gap-2 rounded-md border px-2.5 py-1 ${U[r.tone]}`,children:[(0,b.jsx)("div",{className:`h-1.5 w-1.5 rounded-full ${V[r.tone]}`}),(0,b.jsx)("span",{className:"text-xs font-semibold uppercase tracking-wider",children:r.label})]}),null!=d.durationMs&&(0,b.jsxs)("div",{className:"flex items-center gap-1.5 text-sm text-[var(--muted-foreground)]",children:[(0,b.jsx)(l.Clock,{size:14}),(0,b.jsxs)("span",{children:[(d.durationMs/1e3).toFixed(1),"s"]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2 rounded-full border border-[var(--card-border)] bg-[var(--card-bg)] px-2 py-1",children:[(0,b.jsx)("img",{src:Q(d.agentId,s.get(d.agentId)?.color),alt:d.agentName,className:"h-5 w-5 rounded-full object-cover"}),(0,b.jsx)("span",{className:"pr-1 text-xs font-medium",children:d.agentName})]})]})]}),(0,b.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto px-6 py-6 pb-64",children:0===i.length?(0,b.jsx)("div",{className:"py-8 text-center text-xs text-[var(--muted-foreground)]",children:"queued"===d.status||"running"===d.status?"Starting session...":"No thread messages yet."}):(0,b.jsxs)("div",{className:"mx-auto max-w-4xl space-y-8",children:[i.map(a=>{let c=a.participantId?s.get(a.participantId):null,e=(0,G.stripMarkers)(a.content);if(!e.trim())return null;let f=a.participantId??d.agentId;return(0,b.jsxs)("div",{className:"flex gap-3",children:["user"===a.role?(0,b.jsx)("div",{className:"flex h-7 w-7 shrink-0 items-center justify-center rounded-full bg-[var(--app-shell-subtle,var(--card-bg))]",children:(0,b.jsx)(u.User,{className:"h-3.5 w-3.5 text-[var(--muted-foreground)]"})}):(0,b.jsx)("img",{src:Q(f,c?.color),alt:c?.name??d.agentName,className:"h-7 w-7 shrink-0 rounded-full object-cover"}),(0,b.jsxs)("div",{className:"min-w-0 flex-1 flex flex-col gap-1.5",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsx)("div",{className:"flex items-center gap-2",children:"user"===a.role?(0,b.jsx)("span",{className:"text-sm font-semibold text-[var(--foreground)]",children:"You"}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:"text-sm font-semibold",style:{color:c?.color??"var(--foreground)"},children:c?.name??d.agentName}),(0,b.jsx)("span",{className:"rounded bg-[var(--card-bg)] px-1.5 py-0.5 text-[10px] font-bold uppercase tracking-wider text-[var(--muted-foreground)]",children:"Agent"})]})}),(0,b.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:new Date(a.timestamp).toLocaleTimeString([],{hour:"numeric",minute:"2-digit"})})]}),"user"===a.role?(0,b.jsx)("div",{className:"w-fit max-w-[85%] rounded-xl rounded-tl-sm border border-[var(--card-border)] bg-[var(--card-bg)] px-4 py-3 text-sm text-[var(--foreground)]",children:(0,b.jsx)(A.Markdown,{content:e,isUser:!0})}):(0,b.jsx)("div",{className:"text-sm text-[var(--foreground)]",children:(0,b.jsx)(A.Markdown,{content:e,isUser:!1})})]})]},a.id)}),Object.entries(p).filter(([,a])=>!d.rootMessageId||a.rootMessageId===d.rootMessageId).map(([a])=>{let c=s.get(a);return(0,b.jsxs)("div",{className:"flex items-center gap-3 text-sm text-[var(--muted-foreground)]",children:[(0,b.jsx)("img",{src:Q(a,c?.color),alt:c?.name??d.agentName,className:"h-7 w-7 shrink-0 rounded-full object-cover"}),c?.name??d.agentName," is thinking..."]},`stream-${a}`)})]})}),(0,b.jsx)("div",{className:"absolute bottom-3 left-3 right-3 p-2",children:d.rootMessageId?(0,b.jsx)(O,{onSend:w,onStop:n,participants:e,projectSlug:d.projectSlug??void 0,loading:"ready"!==v,commands:[],activityStatus:v,placeholder:"Continue this session...",initialPinnedParticipantId:d.agentId}):(0,b.jsx)("div",{className:"px-2 py-1 text-xs text-[var(--muted-foreground)]",children:"Waiting for the session to start..."})})]})}function aa({issue:a,selected:d,onSelect:e,activeAgents:f,participants:g}){let[h,i]=(0,c.useState)(!1),k=(0,c.useRef)(null);(0,c.useEffect)(()=>()=>{k.current&&window.clearTimeout(k.current)},[]);let l=(0,c.useCallback)(async b=>{if(b.stopPropagation(),a.url)try{await navigator.clipboard.writeText(a.url),i(!0),k.current&&window.clearTimeout(k.current),k.current=window.setTimeout(()=>{i(!1)},1500)}catch(a){console.error("Failed to copy Linear issue URL:",a),i(!1)}},[a.url]),n=(0,c.useCallback)(b=>{if(b.stopPropagation(),a.url){var c;let b;c=a.url,b=window.open(c,"_blank","noopener,noreferrer"),b?.focus()}},[a.url]),p=T[a.status]??a.status.slice(0,6);return(0,b.jsxs)("div",{className:`group relative flex cursor-pointer items-center gap-3 px-4 py-2.5 text-sm transition-colors ${d?"bg-[var(--card-bg)]":"hover:bg-[var(--card-bg)]/50"}`,onClick:e,role:"button",tabIndex:0,onKeyDown:a=>{("Enter"===a.key||" "===a.key)&&(a.preventDefault(),e())},children:[d&&(0,b.jsx)("div",{className:"absolute left-0 top-0 bottom-0 w-[3px] rounded-r-full bg-blue-500"}),(0,b.jsx)("span",{className:"w-24 shrink-0 whitespace-nowrap font-mono text-xs text-[var(--muted-foreground)]",children:a.identifier}),(0,b.jsx)("span",{className:`min-w-0 flex-1 truncate text-xs ${d?"font-medium text-[var(--foreground)]":"text-[var(--muted-foreground)]"}`,children:a.title}),(0,b.jsx)("span",{className:"shrink-0 text-xs text-[var(--muted-foreground)]",children:p}),f&&f.length>0&&(0,b.jsx)("span",{className:"inline-flex items-center -space-x-1 shrink-0",children:f.slice(0,3).map(a=>{let c=g?.find(b=>b.id===a.agentId);return(0,b.jsxs)("span",{className:"relative inline-block",title:c?.name??a.agentName,children:[(0,b.jsx)("img",{src:Q(a.agentId,c?.color,16),alt:c?.name??a.agentName,className:"h-3 w-3 rounded-full ring-[1.5px] ring-[var(--app-shell-pane)]"}),(0,b.jsx)("span",{className:"absolute -bottom-px -right-px h-1.5 w-1.5 rounded-full bg-green-500 ring-[1px] ring-[var(--app-shell-pane)]"})]},a.agentId)})}),(0,b.jsxs)("div",{className:"flex shrink-0 items-center gap-1",children:[(0,b.jsx)("button",{type:"button",className:`flex h-6 w-6 shrink-0 items-center justify-center rounded text-[var(--muted-foreground)] transition-all hover:bg-zinc-700 hover:text-[var(--foreground)] ${d?"opacity-100":"opacity-0 group-hover:opacity-100"} ${a.url?"":"cursor-not-allowed opacity-40 hover:bg-transparent hover:text-[var(--muted-foreground)]"}`,onClick:a=>{l(a)},title:h?"Copied ticket URL":"Copy ticket URL","aria-label":h?"Copied ticket URL":"Copy ticket URL",disabled:!a.url,children:h?(0,b.jsx)(j.Check,{size:10,className:"text-emerald-400"}):(0,b.jsx)(o,{size:10})}),(0,b.jsx)("button",{type:"button",className:`flex h-6 w-6 shrink-0 items-center justify-center rounded text-[var(--muted-foreground)] transition-all hover:bg-zinc-700 hover:text-[var(--foreground)] ${d?"opacity-100":"opacity-0 group-hover:opacity-100"} ${a.url?"":"cursor-not-allowed opacity-40 hover:bg-transparent hover:text-[var(--muted-foreground)]"}`,onClick:n,title:a.url?"Open this Linear ticket in a new tab":"This ticket does not have a Linear URL","aria-label":a.url?"Open this Linear ticket in a new tab":"This ticket does not have a Linear URL",disabled:!a.url,children:(0,b.jsx)(m.ExternalLink,{size:10})})]})]})}function ab({projectId:a,projectSlug:d,initialShowSettings:e}){let{connected:f,loading:g,user:j,clis:k,mcpConfigured:l,connect:m,connectWithKey:n,disconnect:o,configureMcp:p}=(0,w.useLinearConnection)(),[u,y]=(0,c.useState)(!1),[z,A]=(0,c.useState)(e??!1),[B,C]=(0,c.useState)(!1),[D,E]=(0,c.useState)(()=>(0,I.loadLinearTicketPanelWidth)()||576),[G,J]=(0,c.useState)(()=>(0,I.loadLinearRunsPanelWidth)()||224),[K,L]=(0,c.useState)(""),[M,O]=(0,c.useState)(""),[T,U]=(0,c.useState)(!1),[V,Y]=(0,c.useState)([]),[ac,ad]=(0,c.useState)([]),[ae,af]=(0,c.useState)([]),[ag,ah]=(0,c.useState)([]),[ai,aj]=(0,c.useState)([]),[ak,al]=(0,c.useState)([]),[am,an]=(0,c.useState)(""),[ao,ap]=(0,c.useState)(""),[aq,ar]=(0,c.useState)("activity"),[as,at]=(0,c.useState)("desc"),[au,av]=(0,c.useState)(!1),[aw,ax]=(0,c.useState)(null),[ay,az]=(0,c.useState)(null),[aA,aB]=(0,c.useState)([]),[aC,aD]=(0,c.useState)(new Map),[aE,aF]=(0,c.useState)(null),[aG,aH]=(0,c.useState)(null),aI=(0,c.useRef)(null),aJ=(0,c.useRef)(!0),aK=(0,c.useRef)(null),aL=(0,c.useRef)(null),{getSelection:aM,pushSelection:aN,replaceSelection:aO}=(0,v.useUrlSelection)(),aP=aM("issue"),aQ=aM("run"),aR=(0,c.useCallback)(a=>{L(a),aI.current&&clearTimeout(aI.current),aI.current=setTimeout(()=>O(a),300)},[]);(0,c.useEffect)(()=>()=>{aI.current&&clearTimeout(aI.current)},[]),(0,c.useEffect)(()=>{let a={...H};aJ.current=!0,L(a.search),O(a.search),ah(a.assigneeIds),aj(a.statuses),ap(a.teamId),an(a.cycleId),ar(a.sortBy),at(a.sortDir),av(a.hasActivity)},[d]),(0,c.useEffect)(()=>{if(aJ.current){aJ.current=!1;return}},[d,K,ag,ai,ao,am,aq,as,au]),(0,c.useEffect)(()=>{if(!f)return;let a=!1;U(!1);let b=new URLSearchParams;return d&&b.set("projectSlug",d),fetch(b.size>0?`/api/linear/options?${b.toString()}`:"/api/linear/options").then(a=>a.json()).then(b=>{a||(Y(Array.isArray(b.assignees)?b.assignees:[]),ad(Array.isArray(b.statuses)?b.statuses:[]),af(Array.isArray(b.teams)?b.teams:[]),al(Array.isArray(b.cycles)?b.cycles:[]),U(!0))}).catch(()=>{a||(Y([]),ad([]),af([]),al([]),U(!0))}),()=>{a=!0}},[f,d]),(0,c.useEffect)(()=>{if(!T)return;let a=ag.filter(a=>V.some(b=>b.id===a));a.length!==ag.length&&ah(a)},[V,T,ag]),(0,c.useEffect)(()=>{if(!T)return;let a=ai.filter(a=>ac.includes(a));a.length!==ai.length&&aj(a)},[T,ai,ac]),(0,c.useEffect)(()=>{if(T){if(ae.length<=1&&ao)return void ap("");ao&&!ae.some(a=>a.id===ao)&&ap("")}},[T,ao,ae]),(0,c.useEffect)(()=>{T&&am&&!ak.some(a=>a.id===am)&&an("")},[ak,T,am]);let{issues:aS,loading:aT,hasMore:aU,loadMore:aV,refresh:aW,updateIssue:aX}=function(a,b=!0,d={}){let[e,f]=(0,c.useState)([]),[g,h]=(0,c.useState)(!0),[i,j]=(0,c.useState)(null),[k,l]=(0,c.useState)(!1),m=(0,c.useRef)(i),n=(0,c.useRef)(!1);m.current=i,(0,c.useEffect)(()=>{n.current=!1},[d.projectSlug]);let o=(0,c.useCallback)(async(c,e=!1)=>{if(b){h(!0);try{let b=new URLSearchParams;if(a.teamId&&b.set("teamId",a.teamId),a.statuses?.length)for(let c of a.statuses)b.append("status",c);if(a.search&&b.set("search",a.search),a.assigneeIds?.length)for(let c of a.assigneeIds)b.append("assigneeId",c);else a.assignedToMe&&b.set("assignedToMe","true");a.cycleId&&b.set("cycleId",a.cycleId),a.sortBy&&b.set("sortBy",a.sortBy),a.sortDir&&b.set("sortDir",a.sortDir),a.hasActivity&&b.set("hasActivity","true"),c&&m.current&&b.set("cursor",m.current),d.projectSlug&&b.set("projectSlug",d.projectSlug),d.limit&&b.set("limit",String(d.limit)),e&&b.set("refresh","true");let g=await fetch(`/api/linear/issues?${b.toString()}`),h=await g.json(),i=h.issues??[];f(a=>c?[...a,...i]:i),j(h.pageInfo?.endCursor??null),l(h.pageInfo?.hasNextPage??!1),n.current=!0}catch{c||f([])}finally{h(!1)}}},[a.teamId,a.statuses,a.search,a.assigneeIds,a.assignedToMe,a.cycleId,a.sortBy,a.sortDir,a.hasActivity,b,d.projectSlug,d.limit]);(0,c.useEffect)(()=>{j(null),o(!1,!n.current)},[o]);let p=(0,c.useCallback)(()=>o(!0),[o]);return{issues:e,loading:g,hasMore:k,loadMore:p,refresh:(0,c.useCallback)(()=>(j(null),o(!1,!0)),[o]),updateIssue:(0,c.useCallback)(a=>{f(b=>b.map(b=>b.id===a.id?a:b))},[])}}((0,c.useMemo)(()=>({search:M||void 0,statuses:ai.length>0&&ai.length<ac.length?ai:void 0,assigneeIds:ag.length>0?ag:void 0,teamId:ao||void 0,cycleId:am||void 0,sortBy:aq,sortDir:as,hasActivity:au||void 0}),[M,ag,am,ai,ao,ac.length,aq,as,au]),f,{projectSlug:d}),aY=(0,c.useMemo)(()=>aP?aS.find(a=>a.id===aP)??null:null,[aS,aP]),aZ=aY??(aw?.id===aP?aw:null),{runs:a$,loading:a_,createRun:a0,updateRun:a1}=function(a,b){let[d,e]=(0,c.useState)([]),[f,g]=(0,c.useState)(!1),h=(0,c.useRef)(a??null);h.current=a??null;let i=(0,c.useCallback)(async()=>{let a=h.current?.trim();if(!a)return e([]),[];g(!0);try{let c=new URLSearchParams({issueId:a});b&&c.set("projectId",b);let d=await fetch(`/api/linear/runs?${c.toString()}`);if(!d.ok)throw Error(`Failed to fetch Linear runs: ${d.status}`);let f=await d.json(),g=Array.isArray(f.runs)?f.runs:[];return e(g),g}finally{g(!1)}},[b]);return(0,c.useEffect)(()=>{e([]),i()},[i,a]),(0,c.useEffect)(()=>{if(!a)return;let b=window.setInterval(()=>{i()},3e3);return()=>window.clearInterval(b)},[a,i]),{runs:d,loading:f,refresh:i,createRun:(0,c.useCallback)(async a=>{let b=await fetch("/api/linear/runs",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!b.ok)throw Error((await b.json().catch(()=>({}))).error||`Failed to create Linear run: ${b.status}`);let c=(await b.json()).run;return e(a=>[c,...a.filter(a=>a.id!==c.id)]),c},[]),updateRun:(0,c.useCallback)(async(a,b)=>{let c=await fetch(`/api/linear/runs/${encodeURIComponent(a)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(b)});if(!c.ok)throw Error((await c.json().catch(()=>({}))).error||`Failed to update Linear run: ${c.status}`);let d=(await c.json()).run;return e(a=>a.map(a=>a.id===d.id?d:a)),d},[])}}(aZ?.id,a??null),{scripts:a2,activeScriptId:a3,activeScript:a4,setActiveScriptId:a5,saveScript:a6,deleteScript:a7}=function(a){let[b,d]=(0,c.useState)([]),[e,f]=(0,c.useState)(null);(0,c.useEffect)(()=>{let a={...x};d(a.scripts),f(a.activeScriptId)},[a]);let g=(0,c.useCallback)((a,b)=>{d(a),f(b)},[a]),h=(0,c.useCallback)(a=>{let c=a&&b.some(b=>b.id===a)?a:null;g(b,c)},[g,b]),i=(0,c.useCallback)(a=>{let c=new Date().toISOString(),d=a.name.trim(),e=a.prompt.trim();if(!d||!e)throw Error("Run script name and prompt are required.");let f=a.id?b.find(b=>b.id===a.id):null,h=f?{...f,name:d,prompt:e,updatedAt:c}:{id:crypto.randomUUID(),name:d,prompt:e,createdAt:c,updatedAt:c};return g([...f?b.map(a=>a.id===f.id?h:a):[h,...b]].sort((a,b)=>b.updatedAt.localeCompare(a.updatedAt)),h.id),h},[g,b]),j=(0,c.useCallback)(a=>{g(b.filter(b=>b.id!==a),e===a?null:e)},[e,g,b]),k=(0,c.useMemo)(()=>b.find(a=>a.id===e)??null,[e,b]);return{scripts:b,activeScriptId:e,activeScript:k,setActiveScriptId:h,saveScript:i,deleteScript:j}}(d),a8=aQ&&"new"!==aQ?a$.find(a=>a.id===aQ)??null:null,a9=(0,c.useMemo)(()=>V.map(a=>({value:a.id,label:a.name})),[V]),ba=(0,c.useMemo)(()=>ac.map(a=>({value:a,label:a})),[ac]),bb=(0,c.useMemo)(()=>Array.from(new Set([aZ?.status??"",...ac].map(a=>a.trim()).filter(Boolean))).map(a=>({value:a,label:a})),[aZ?.status,ac]),bc=(0,c.useMemo)(()=>[{value:"",label:"Workspace"},...ae.map(a=>({value:a.id,label:a.name}))],[ae]),bd=(0,c.useMemo)(()=>[{value:"",label:"Cycle"},...ak.map(a=>({value:a.id,label:a.name||`Cycle ${a.number}`}))],[ak]),be=ba.length>0,bf=bd.length>1,bg=bc.length>2,bh=a4?.name??"AGX default",bi=(0,c.useCallback)(async(a,b)=>{let c=b.trim();if(c&&c!==a.status){az(a.id);try{let b=await fetch(`/api/linear/issues/${encodeURIComponent(a.id)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({status:c})}),d=await b.json().catch(()=>({}));if(!b.ok||!d.issue)throw Error(d.error||"Failed to update ticket status");let e=d.issue;aX(e),aP===e.id&&ax(e),await aW()}catch(a){a instanceof Error&&window.alert(a.message)}finally{az(b=>b===a.id?null:b)}}},[aW,aP,aX]);(0,c.useEffect)(()=>{if(!aP)return void ax(null);if(aY)return void ax(a=>a?.id===aP?aY:null);let a=!1;return(async()=>{try{let b=await fetch(`/api/linear/issues/${encodeURIComponent(aP)}`);if(a)return;if(404===b.status)return void aO({issue:null,run:null});if(!b.ok)throw Error(`Failed to fetch selected Linear ticket: ${b.status}`);let c=await b.json().catch(()=>({}));if(!c.issue?.id)return void aO({issue:null,run:null});ax(c.issue)}catch(b){a||console.error("Failed to hydrate selected Linear issue",b)}})(),()=>{a=!0}},[aO,aY,aP]),(0,c.useEffect)(()=>{if(!aP){aQ&&aO({run:null});return}},[aO,aP,aQ]),(0,c.useEffect)(()=>{aZ&&aQ&&"new"!==aQ&&!a_&&(a$.some(a=>a.id===aQ)||aO({run:null}))},[aO,a$,a_,aZ,aQ]),(0,c.useEffect)(()=>{let b=!1;return async function(){try{let c=await fetch("/api/participants"),d=c.ok?await c.json():[];if(!a){b||aB(d);return}let e=await fetch(`/api/projects/${encodeURIComponent(a)}/agents`);if(!e.ok){b||aB(d);return}let f=await e.json(),g=Array.isArray(f.agents)?f.agents.map(a=>a.agent_id).filter(a=>"string"==typeof a&&a.trim().length>0):[],h=new Map(g.map((a,b)=>[a,b])),i=d.filter(a=>h.has(a.id)).sort((a,b)=>(h.get(a.id)??Number.MAX_SAFE_INTEGER)-(h.get(b.id)??Number.MAX_SAFE_INTEGER));b||aB(i)}catch{b||aB([])}}(),()=>{b=!0}},[a]),(0,c.useEffect)(()=>{let b=!1;async function c(){try{let c=new URLSearchParams;a&&c.set("projectId",a);let d=await fetch(`/api/linear/issues/active-agents?${c}`);if(!d.ok||b)return;let e=await d.json(),f=new Map;for(let a of e.agents??[]){let b=f.get(a.issueId)??[];b.push({agentId:a.agentId,agentName:a.agentName}),f.set(a.issueId,b)}b||aD(f)}catch{}}c();let d=setInterval(()=>void c(),5e3);return()=>{b=!0,clearInterval(d)}},[a]),(0,c.useEffect)(()=>{if(!B)return;let a=a=>{let b=a.target;aL.current?.contains(b)||aK.current?.contains(b)||C(!1)},b=a=>{"Escape"===a.key&&C(!1)};return document.addEventListener("mousedown",a),document.addEventListener("keydown",b),()=>{document.removeEventListener("mousedown",a),document.removeEventListener("keydown",b)}},[B]);let bj=(0,c.useCallback)(async(b,c)=>{aF(null),aH(null);try{let e=await fetch("/api/linear/runs/scripted",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectId:a??void 0,projectSlug:d??void 0,issueId:b.id,issueIdentifier:b.identifier,issueTitle:b.title,issueStatus:b.status,issueAssignee:b.assignee,agentId:c.id,scriptName:a4?.name,scriptPrompt:a4?.prompt})}),f=await e.json().catch(()=>({}));if(!e.ok||!f.run||!f.chatRunId||!f.userMessageId)throw Error(f.error||"Failed to start scripted session");aN({issue:b.id,run:f.run.id})}catch(a){console.error("Failed to start scripted Linear session:",a),a instanceof Error&&window.alert(a.message)}},[a4,a,d,aN]),bk=(0,c.useCallback)((a,b)=>{if(C(!1),0===aA.length)return void window.alert("Add at least one agent to this project before starting a scripted session.");if(1===aA.length)return void bj(a,aA[0]);let c=b?.currentTarget?.getBoundingClientRect();aF(a),aH(c?{top:c.bottom+4,left:c.left}:{top:200,left:200})},[bj,aA]),bl=(0,c.useRef)(null);if((0,c.useEffect)(()=>{let a=bl.current;if(!a||!aU)return;let b=new IntersectionObserver(a=>{a[0]?.isIntersecting&&aV()},{threshold:.1});return b.observe(a),()=>b.disconnect()},[aU,aV]),g)return(0,b.jsx)("div",{className:"flex h-full items-center justify-center text-xs text-[var(--muted-foreground)]",children:"Loading..."});let bm=f&&!u&&!Object.values(l).some(Boolean);return!f||bm?(0,b.jsx)(N,{connected:f,user:j,clis:k,mcpConfigured:l,onConnect:m,onConnectWithKey:n,onDisconnect:o,onConfigureMcp:p,onContinue:()=>y(!0)}):(0,b.jsxs)("div",{className:"relative flex h-full overflow-hidden",children:[(0,b.jsxs)("div",{className:"flex shrink-0 flex-col border-r border-[var(--card-border)]",style:{width:D},children:[(0,b.jsxs)("div",{className:"shrink-0 border-b border-[var(--card-border)]",children:[(0,b.jsxs)("div",{className:"flex h-12 items-center gap-2 px-3",children:[(0,b.jsxs)("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)]",children:[(0,b.jsx)(s.Search,{size:14,className:"shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("input",{type:"text",className:"flex-1 bg-transparent text-sm outline-none placeholder:text-[var(--muted-foreground)]",placeholder:"Search tickets...",value:K,onChange:a=>aR(a.target.value)})]}),(0,b.jsx)("button",{type:"button",className:"shrink-0 rounded p-1.5 text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)] disabled:cursor-not-allowed disabled:opacity-50",onClick:()=>void aW(),title:"Refresh tickets","aria-label":"Refresh tickets",disabled:aT,children:(0,b.jsx)(r.RefreshCw,{size:16,className:aT?"animate-spin":void 0})}),(0,b.jsx)("button",{type:"button",className:"shrink-0 rounded p-1.5 text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]",onClick:()=>{C(!1),A(!0)},title:"Linear settings",children:(0,b.jsx)(t.Settings,{size:16})})]}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5 px-3 pb-2",children:[be?(0,b.jsx)(Z,{label:"Status",values:ai,options:ba,activeClasses:"border-amber-500/30 bg-amber-500/10 text-amber-300",onChange:aj,emptyLabel:"All statuses"}):null,(0,b.jsx)(Z,{label:"Assignee",values:ag,options:a9,activeClasses:"border-blue-500/30 bg-blue-500/10 text-blue-400",onChange:ah,emptyLabel:"All assignees"}),bg?(0,b.jsx)(X,{label:"Workspace",value:ao,options:bc,activeClasses:"border-emerald-500/30 bg-emerald-500/10 text-emerald-400",onChange:ap}):null,bf?(0,b.jsx)(X,{label:"Cycle",value:am,options:bd,activeClasses:"border-purple-500/30 bg-purple-500/10 text-purple-400",onChange:an}):null,(0,b.jsx)(X,{label:"Sort",value:aq,options:[{value:"activity",label:"Activity"},{value:"identifier",label:"Ticket ID"},{value:"status",label:"Status"},{value:"created",label:"Created"}],activeClasses:"border-sky-500/30 bg-sky-500/10 text-sky-400",onChange:a=>ar(a)}),(0,b.jsx)("button",{type:"button",className:"rounded-full border border-[var(--card-border)] p-0.5 text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]",title:"desc"===as?"Descending":"Ascending",onClick:()=>at(a=>"desc"===a?"asc":"desc"),children:"desc"===as?(0,b.jsx)(h,{size:12}):(0,b.jsx)(i,{size:12})}),(0,b.jsx)("button",{type:"button",className:`flex items-center gap-1 rounded-full border px-2.5 py-0.5 text-[11px] font-medium transition-colors ${au?"border-orange-500/30 bg-orange-500/10 text-orange-400":"border-[var(--card-border)] text-[var(--muted-foreground)] hover:bg-[var(--card-bg)]"}`,onClick:()=>av(a=>!a),children:"My activity"})]})]}),(0,b.jsx)("div",{className:"flex-1 overflow-y-auto",children:aT&&0===aS.length?(0,b.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)]",children:"Loading tickets..."}):0===aS.length?(0,b.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)]",children:"No tickets found."}):(0,b.jsxs)(b.Fragment,{children:[aS.map(a=>(0,b.jsx)(aa,{issue:a,selected:aZ?.id===a.id,activeAgents:aC.get(a.id),participants:aA,onSelect:()=>aN({issue:a.id,run:null})},a.id)),aU?(0,b.jsx)("div",{ref:bl,className:"py-2 text-center text-xs text-[var(--muted-foreground)]",children:aT?"Loading...":"Load more"}):null]})})]}),(0,b.jsx)(P,{onResize:a=>E(b=>{let c=Math.max(180,Math.min(600,b+a));return(0,I.persistLinearTicketPanelWidth)(c),c})}),(0,b.jsxs)("div",{className:"flex shrink-0 flex-col border-r border-[var(--card-border)]",style:{width:G},children:[(0,b.jsxs)("div",{className:"relative flex items-center justify-between border-b border-[var(--card-border)] px-3 py-2",children:[(0,b.jsx)("h3",{className:"text-xs font-semibold text-[var(--foreground)]",children:"Sessions"}),(0,b.jsxs)("button",{ref:aK,type:"button",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",onClick:()=>{C(!1),aN({run:"new"})},title:"Open a fresh chat for this ticket. You can choose or edit the session script in the session details pane.","aria-label":"New session",disabled:!aZ,children:[(0,b.jsx)(q.Plus,{size:12}),"New session"]}),B?(0,b.jsx)("div",{ref:aL,className:"absolute right-3 top-full z-20 mt-2 max-h-[80vh] overflow-y-auto rounded-2xl border border-[var(--card-border)] bg-[var(--background)] p-4 shadow-2xl",style:{width:"min(760px, calc(100vw - 32px))"},children:(0,b.jsx)(F,{projectSlug:d,scripts:a2,activeScriptId:a3,onSetActiveScriptId:a5,onSaveScript:a6,onDeleteScript:a7})}):null]}),(0,b.jsx)("div",{className:"flex-1 overflow-y-auto",children:aZ?(0,b.jsx)(b.Fragment,{children:a_&&0===a$.length?(0,b.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)]",children:"Loading sessions..."}):0===a$.length?(0,b.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)]",children:"No previous sessions yet."}):a$.map(a=>{let c=R(a);return(0,b.jsxs)("button",{type:"button",className:`w-full px-3 py-2 text-left text-xs transition-colors ${a8?.id===a.id?"bg-[var(--card-bg)]":"hover:bg-[var(--card-bg)]"}`,onClick:()=>aN({run:a.id}),children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-1",children:[(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate text-[11px] font-medium text-[var(--foreground)]",children:S(a)}),(0,b.jsx)("span",{className:"text-[10px] text-[var(--muted-foreground)]",children:new Date(a.startedAt).toLocaleTimeString([],{hour:"numeric",minute:"2-digit"})})]}),(0,b.jsxs)("div",{className:"mt-0.5 flex items-center gap-1.5 text-[10px]",children:[(0,b.jsx)("span",{className:`font-medium ${W[c.tone]}`,children:c.label}),(0,b.jsx)("span",{className:"truncate text-[var(--muted-foreground)]",children:a.agentName})]}),null!=a.durationMs?(0,b.jsxs)("div",{className:"text-[10px] text-[var(--muted-foreground)]",children:[(a.durationMs/1e3).toFixed(1),"s"]}):null]},a.id)})}):(0,b.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)]",children:"Select a ticket to see sessions."})})]}),(0,b.jsx)(P,{onResize:a=>J(b=>{let c=Math.max(140,Math.min(500,b+a));return(0,I.persistLinearRunsPanelWidth)(c),c})}),(0,b.jsx)("div",{className:"flex min-w-0 flex-1 flex-col overflow-hidden",children:a8?(0,b.jsx)(_,{issue:aZ??{id:a8.issueId,identifier:a8.issueIdentifier,title:a8.issueTitle,url:null,status:a8.issueStatus,assignee:a8.issueAssignee,updatedAt:a8.updatedAt},run:a8,participants:aA,issueStatusOptions:bb,issueStatusUpdating:ay===a8.issueId,onIssueStatusChange:bi}):aZ?0===aA.length?(0,b.jsx)("div",{className:"flex h-full items-center justify-center text-xs text-[var(--muted-foreground)]",children:"Add at least one agent to this project to start a session."}):"new"===aQ||0===a$.length?(0,b.jsx)($,{issue:aZ,participants:aA,projectId:a,projectSlug:d,issueStatusOptions:bb,issueStatusUpdating:ay===aZ.id,onIssueStatusChange:bi,activeSessionScriptLabel:bh,onOpenSessionScripts:()=>C(!0),onStartScriptedSession:a=>bk(aZ,a),createRun:a0,updateRun:a1,onRunCreated:a=>aN({run:a})},aZ.id):(0,b.jsx)("div",{className:"flex h-full items-center justify-center text-xs text-[var(--muted-foreground)]",children:a_?"Loading sessions...":"Select a session to continue."}):(0,b.jsx)("div",{className:"flex h-full items-center justify-center text-xs text-[var(--muted-foreground)]",children:"Select a ticket from the list."})}),z&&(0,b.jsx)("div",{className:"absolute inset-0 z-30 flex items-center justify-center bg-black/50",children:(0,b.jsxs)("div",{className:"relative w-full max-w-lg rounded-lg border border-[var(--card-border)] bg-[var(--background)] shadow-xl",children:[(0,b.jsx)("button",{type:"button",className:"absolute right-3 top-3 rounded p-1 text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]",onClick:()=>A(!1),children:"×"}),(0,b.jsx)("div",{className:"max-h-[80vh] overflow-y-auto p-6",children:(0,b.jsx)(N,{connected:f,user:j,clis:k,mcpConfigured:l,onConnect:m,onConnectWithKey:n,onDisconnect:o,onConfigureMcp:p,onContinue:()=>A(!1)})})]})}),aE&&aG&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"fixed inset-0 z-40",onClick:()=>{aF(null),aH(null)}}),(0,b.jsxs)("div",{className:"fixed z-50 min-w-[180px] rounded border border-[var(--card-border)] bg-[var(--card-bg)] py-1 shadow-lg",style:{top:aG.top,left:aG.left},children:[(0,b.jsx)("div",{className:"px-3 py-1.5 text-[10px] font-semibold uppercase tracking-wider text-[var(--muted-foreground)]",children:"Pick an agent"}),aA.map(a=>(0,b.jsxs)("button",{type:"button",className:"flex w-full items-center gap-2 px-3 py-1.5 text-left text-xs transition-colors hover:bg-[var(--card-bg)]",onClick:()=>void bj(aE,a),children:[(0,b.jsx)("img",{src:Q(a.id,a.color,20),alt:"",className:"h-5 w-5 shrink-0 rounded-full"}),(0,b.jsxs)("span",{className:"flex flex-col",children:[(0,b.jsx)("span",{className:"font-medium text-[var(--foreground)]",children:a.name}),a.title?(0,b.jsx)("span",{className:"text-[10px] text-[var(--muted-foreground)]",children:a.title}):null]})]},a.id))]})]})]})}a.s(["default",0,function({params:a}){let{slug:f}=(0,c.use)(a),g=(0,d.useSearchParams)(),{projects:h}=(0,e.useProjects)(),i=h.find(a=>a.slug===f),j="true"===g.get("settings");return(0,b.jsx)(ab,{projectId:i?.id,projectSlug:i?.slug??f,initialShowSettings:j})}],576608)}];
|
|
37
|
+
${j}`:""),J=await m({projectId:e??null,projectSlug:f??null,issueId:a.id,issueIdentifier:a.identifier,issueTitle:a.title,issueStatus:a.status,issueAssignee:a.assignee??null,agentId:l.id,agentName:l.name,mode:"chat"}),K=await fetch("/api/chat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({prompt:b,promptPrefix:I,threadId:J.threadId,activeParticipantIds:[l.id],projectSlug:f??void 0,routing:k})}),L=await K.json().catch(()=>({}));if(!K.ok||!L.chatRunId||!L.userMessageId)throw Error(L.error||"Failed to start chat session");await o(J.id,{chatRunId:L.chatRunId,rootMessageId:L.userMessageId}),q(J.id)}catch(a){console.error("Failed to create chat session:",a),G.current=!1,a instanceof Error&&window.alert(a.message)}},[a,d,r,e,f,m,o,q]);return(0,b.jsxs)("div",{className:"relative flex min-w-0 flex-1 flex-col overflow-hidden",children:[(0,b.jsxs)("header",{className:"flex h-12 shrink-0 items-center justify-between border-b border-[var(--card-border)] px-6",children:[(0,b.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[(0,b.jsx)("span",{className:"shrink-0 font-mono text-sm text-[var(--muted-foreground)]",children:a.identifier}),(0,b.jsx)("div",{className:"h-1 w-1 shrink-0 rounded-full bg-[var(--card-border)]"}),(0,b.jsx)("span",{className:"truncate text-sm font-medium text-[var(--foreground)]",children:a.title})]}),(0,b.jsxs)("div",{className:"flex shrink-0 items-center gap-2",children:[(0,b.jsx)(aj,{status:a.status,options:g,disabled:0===g.length,updating:h,onChange:b=>i(a,b)}),(0,b.jsxs)("button",{type:"button",className:"flex items-center gap-1 rounded-md border border-[var(--card-border)] px-2 py-1 text-xs font-medium text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]",onClick:k,title:`Session script: ${j}. Choose or edit the kickoff prompt for this ticket.`,children:[(0,b.jsx)(n.FileText,{size:12}),(0,b.jsx)("span",{className:"max-w-[120px] truncate",children:"AGX default"===j?"Session script":j})]}),(0,b.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 rounded-md bg-blue-500 px-2.5 py-1 text-xs font-medium text-white transition-colors hover:bg-blue-600",onClick:l,children:[(0,b.jsx)(p.Play,{size:12}),(0,b.jsx)("span",{children:"Start scripted session"})]})]})]}),(0,b.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto px-6 py-6 pb-64",children:0===t.length?(0,b.jsxs)("div",{className:"flex h-full flex-col items-center justify-center gap-2 text-[var(--muted-foreground)]",children:[(0,b.jsx)("span",{className:"text-sm",children:"Start a new session for this ticket"}),(0,b.jsx)("span",{className:"text-xs",children:"Type a message to open a chat, or launch the active session script."})]}):(0,b.jsxs)("div",{className:"mx-auto max-w-4xl space-y-8",children:[t.map(a=>{let c=a.participantId?F.get(a.participantId):null,d=(0,H.stripMarkers)(a.content);return d.trim()?(0,b.jsxs)("div",{className:"flex gap-3",children:["user"===a.role?(0,b.jsx)("div",{className:"flex h-7 w-7 shrink-0 items-center justify-center rounded-full bg-[var(--app-shell-subtle,var(--card-bg))]",children:(0,b.jsx)(u.User,{className:"h-3.5 w-3.5 text-[var(--muted-foreground)]"})}):(0,b.jsx)("img",{src:aa(a.participantId??"",c?.color),alt:c?.name??"Agent",className:"h-7 w-7 shrink-0 rounded-full object-cover"}),(0,b.jsxs)("div",{className:"min-w-0 flex-1 flex flex-col gap-1.5",children:[(0,b.jsx)("span",{className:"text-sm font-semibold text-[var(--foreground)]",children:"user"===a.role?"You":c?.name??"Agent"}),(0,b.jsx)("div",{className:"text-sm text-[var(--foreground)]",children:(0,b.jsx)(B.Markdown,{content:d,isUser:"user"===a.role})})]})]},a.id):null}),Object.entries(C).map(([a])=>{let c=F.get(a);return(0,b.jsxs)("div",{className:"flex items-center gap-3 text-sm text-[var(--muted-foreground)]",children:[(0,b.jsx)("img",{src:aa(a,c?.color),alt:c?.name??"Agent",className:"h-7 w-7 shrink-0 rounded-full object-cover"}),c?.name??"Agent"," is thinking..."]},`stream-${a}`)})]})}),(0,b.jsx)("div",{className:"absolute bottom-3 left-3 right-3 p-2",children:(0,b.jsx)($,{onSend:I,onStop:()=>{},participants:d,projectSlug:f??void 0,loading:"ready"!==E,commands:[],activityStatus:E,placeholder:`Ask about ${a.identifier}...`,initialPinnedParticipantId:r?.id})})]})}function am({issue:a,run:d,participants:e,issueStatusOptions:f,issueStatusUpdating:g,onIssueStatusChange:h}){let{messages:i,setMessages:j,sendMessage:k,loadHistory:m,stop:n}=(0,z.useGroupChat)(d.threadId),{processes:o,streaming:p,chatRuns:q}=(0,A.useProcessPolling)(d.rootMessageId?{workspaceId:d.threadId,threadId:d.rootMessageId}:{workspaceId:d.threadId},{messages:i,setMessages:j}),r=(0,c.useMemo)(()=>{let a=q[0];if(!a)return ac(d);let b={queued:"queued",running:"running",awaiting_user:"running",blocked:"running",completed:"success",failed:"failed",cancelled:"cancelled"}[a.status]??d.status;return ac({...d,status:b})},[q,d]);(0,c.useEffect)(()=>{m()},[m,d.threadId]);let s=(0,c.useMemo)(()=>new Map(e.map(a=>[a.id,a])),[e]),t=new Set(["queued","running","awaiting_user","blocked"]),v=q.some(a=>t.has(a.status))||o.some(a=>"spawning"===a.state||"running"===a.state)?q.some(a=>"queued"===a.status)?"queued":"working":"ready",w=(0,c.useCallback)((a,b,c,f,g,h,i)=>{d.rootMessageId&&k(a,b,void 0,d.rootMessageId,c,void 0,(0,L.orderParticipantIds)(e.map(a=>a.id),g),d.projectSlug??void 0,h,i)},[e,d.projectSlug,d.rootMessageId,k]);return(0,b.jsxs)("div",{className:"relative flex min-w-0 flex-1 flex-col overflow-hidden",children:[(0,b.jsxs)("header",{className:"flex h-12 shrink-0 items-center justify-between border-b border-[var(--card-border)] px-6",children:[(0,b.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[(0,b.jsx)("span",{className:"shrink-0 font-mono text-sm text-[var(--muted-foreground)]",children:a.identifier}),(0,b.jsx)("div",{className:"h-1 w-1 shrink-0 rounded-full bg-[var(--card-border)]"}),(0,b.jsx)("span",{className:"truncate text-sm font-medium text-[var(--foreground)]",children:ad(d)})]}),(0,b.jsxs)("div",{className:"flex shrink-0 items-center gap-4",children:[(0,b.jsx)(aj,{status:a.status,options:f,disabled:0===f.length,updating:g,onChange:b=>h(a,b)}),(0,b.jsxs)("div",{className:`flex items-center gap-2 rounded-md border px-2.5 py-1 ${af[r.tone]}`,children:[(0,b.jsx)("div",{className:`h-1.5 w-1.5 rounded-full ${ag[r.tone]}`}),(0,b.jsx)("span",{className:"text-xs font-semibold uppercase tracking-wider",children:r.label})]}),null!=d.durationMs&&(0,b.jsxs)("div",{className:"flex items-center gap-1.5 text-sm text-[var(--muted-foreground)]",children:[(0,b.jsx)(l.Clock,{size:14}),(0,b.jsxs)("span",{children:[(d.durationMs/1e3).toFixed(1),"s"]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2 rounded-full border border-[var(--card-border)] bg-[var(--card-bg)] px-2 py-1",children:[(0,b.jsx)("img",{src:aa(d.agentId,s.get(d.agentId)?.color),alt:d.agentName,className:"h-5 w-5 rounded-full object-cover"}),(0,b.jsx)("span",{className:"pr-1 text-xs font-medium",children:d.agentName})]})]})]}),(0,b.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto px-6 py-6 pb-64",children:0===i.length?(0,b.jsx)("div",{className:"py-8 text-center text-xs text-[var(--muted-foreground)]",children:"queued"===d.status||"running"===d.status?"Starting session...":"No thread messages yet."}):(0,b.jsxs)("div",{className:"mx-auto max-w-4xl space-y-8",children:[i.map(a=>{let c=a.participantId?s.get(a.participantId):null,e=(0,H.stripMarkers)(a.content);if(!e.trim())return null;let f=a.participantId??d.agentId;return(0,b.jsxs)("div",{className:"flex gap-3",children:["user"===a.role?(0,b.jsx)("div",{className:"flex h-7 w-7 shrink-0 items-center justify-center rounded-full bg-[var(--app-shell-subtle,var(--card-bg))]",children:(0,b.jsx)(u.User,{className:"h-3.5 w-3.5 text-[var(--muted-foreground)]"})}):(0,b.jsx)("img",{src:aa(f,c?.color),alt:c?.name??d.agentName,className:"h-7 w-7 shrink-0 rounded-full object-cover"}),(0,b.jsxs)("div",{className:"min-w-0 flex-1 flex flex-col gap-1.5",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsx)("div",{className:"flex items-center gap-2",children:"user"===a.role?(0,b.jsx)("span",{className:"text-sm font-semibold text-[var(--foreground)]",children:"You"}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:"text-sm font-semibold",style:{color:c?.color??"var(--foreground)"},children:c?.name??d.agentName}),(0,b.jsx)("span",{className:"rounded bg-[var(--card-bg)] px-1.5 py-0.5 text-[10px] font-bold uppercase tracking-wider text-[var(--muted-foreground)]",children:"Agent"})]})}),(0,b.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:new Date(a.timestamp).toLocaleTimeString([],{hour:"numeric",minute:"2-digit"})})]}),"user"===a.role?(0,b.jsx)("div",{className:"w-fit max-w-[85%] rounded-xl rounded-tl-sm border border-[var(--card-border)] bg-[var(--card-bg)] px-4 py-3 text-sm text-[var(--foreground)]",children:(0,b.jsx)(B.Markdown,{content:e,isUser:!0})}):(0,b.jsx)("div",{className:"text-sm text-[var(--foreground)]",children:(0,b.jsx)(B.Markdown,{content:e,isUser:!1})})]})]},a.id)}),Object.entries(p).filter(([,a])=>!d.rootMessageId||a.rootMessageId===d.rootMessageId).map(([a])=>{let c=s.get(a);return(0,b.jsxs)("div",{className:"flex items-center gap-3 text-sm text-[var(--muted-foreground)]",children:[(0,b.jsx)("img",{src:aa(a,c?.color),alt:c?.name??d.agentName,className:"h-7 w-7 shrink-0 rounded-full object-cover"}),c?.name??d.agentName," is thinking..."]},`stream-${a}`)})]})}),(0,b.jsx)("div",{className:"absolute bottom-3 left-3 right-3 p-2",children:d.rootMessageId?(0,b.jsx)($,{onSend:w,onStop:n,participants:e,projectSlug:d.projectSlug??void 0,loading:"ready"!==v,commands:[],activityStatus:v,placeholder:"Continue this session...",initialPinnedParticipantId:d.agentId}):(0,b.jsx)("div",{className:"px-2 py-1 text-xs text-[var(--muted-foreground)]",children:"Waiting for the session to start..."})})]})}function an({issue:a,selected:d,onSelect:e,activeAgents:f,participants:g}){let[h,i]=(0,c.useState)(!1),k=(0,c.useRef)(null);(0,c.useEffect)(()=>()=>{k.current&&window.clearTimeout(k.current)},[]);let l=(0,c.useCallback)(async b=>{if(b.stopPropagation(),a.url)try{await navigator.clipboard.writeText(a.url),i(!0),k.current&&window.clearTimeout(k.current),k.current=window.setTimeout(()=>{i(!1)},1500)}catch(a){console.error("Failed to copy Linear issue URL:",a),i(!1)}},[a.url]),n=(0,c.useCallback)(b=>{if(b.stopPropagation(),a.url){var c;let b;c=a.url,b=window.open(c,"_blank","noopener,noreferrer"),b?.focus()}},[a.url]),p=ae[a.status]??a.status.slice(0,6);return(0,b.jsxs)("div",{className:`group relative flex cursor-pointer items-center gap-3 px-4 py-2.5 text-sm transition-colors ${d?"bg-[var(--card-bg)]":"hover:bg-[var(--card-bg)]/50"}`,onClick:e,role:"button",tabIndex:0,onKeyDown:a=>{("Enter"===a.key||" "===a.key)&&(a.preventDefault(),e())},children:[d&&(0,b.jsx)("div",{className:"absolute left-0 top-0 bottom-0 w-[3px] rounded-r-full bg-blue-500"}),(0,b.jsx)("span",{className:"w-24 shrink-0 whitespace-nowrap font-mono text-xs text-[var(--muted-foreground)]",children:a.identifier}),(0,b.jsx)("span",{className:`min-w-0 flex-1 truncate text-xs ${d?"font-medium text-[var(--foreground)]":"text-[var(--muted-foreground)]"}`,children:a.title}),(0,b.jsx)("span",{className:"shrink-0 text-xs text-[var(--muted-foreground)]",children:p}),f&&f.length>0&&(0,b.jsx)("span",{className:"inline-flex items-center -space-x-1 shrink-0",children:f.slice(0,3).map(a=>{let c=g?.find(b=>b.id===a.agentId);return(0,b.jsxs)("span",{className:"relative inline-block",title:c?.name??a.agentName,children:[(0,b.jsx)("img",{src:aa(a.agentId,c?.color,16),alt:c?.name??a.agentName,className:"h-3 w-3 rounded-full ring-[1.5px] ring-[var(--app-shell-pane)]"}),(0,b.jsx)("span",{className:"absolute -bottom-px -right-px h-1.5 w-1.5 rounded-full bg-green-500 ring-[1px] ring-[var(--app-shell-pane)]"})]},a.agentId)})}),(0,b.jsxs)("div",{className:"flex shrink-0 items-center gap-1",children:[(0,b.jsx)("button",{type:"button",className:`flex h-6 w-6 shrink-0 items-center justify-center rounded text-[var(--muted-foreground)] transition-all hover:bg-zinc-700 hover:text-[var(--foreground)] ${d?"opacity-100":"opacity-0 group-hover:opacity-100"} ${a.url?"":"cursor-not-allowed opacity-40 hover:bg-transparent hover:text-[var(--muted-foreground)]"}`,onClick:a=>{l(a)},title:h?"Copied ticket URL":"Copy ticket URL","aria-label":h?"Copied ticket URL":"Copy ticket URL",disabled:!a.url,children:h?(0,b.jsx)(j.Check,{size:10,className:"text-emerald-400"}):(0,b.jsx)(o,{size:10})}),(0,b.jsx)("button",{type:"button",className:`flex h-6 w-6 shrink-0 items-center justify-center rounded text-[var(--muted-foreground)] transition-all hover:bg-zinc-700 hover:text-[var(--foreground)] ${d?"opacity-100":"opacity-0 group-hover:opacity-100"} ${a.url?"":"cursor-not-allowed opacity-40 hover:bg-transparent hover:text-[var(--muted-foreground)]"}`,onClick:n,title:a.url?"Open this Linear ticket in a new tab":"This ticket does not have a Linear URL","aria-label":a.url?"Open this Linear ticket in a new tab":"This ticket does not have a Linear URL",disabled:!a.url,children:(0,b.jsx)(m.ExternalLink,{size:10})})]})]})}function ao({projectId:a,projectSlug:d,initialShowSettings:e}){let{isTouchLayout:f}=(0,I.useInputCapabilities)(),{connected:g,loading:j,user:k,clis:l,mcpConfigured:m,connect:n,connectWithKey:o,disconnect:p,configureMcp:u}=(0,x.useLinearConnection)(),[z,A]=(0,c.useState)(!1),[B,C]=(0,c.useState)(e??!1),[D,E]=(0,c.useState)(!1),[F,H]=(0,c.useState)(()=>(0,K.loadLinearTicketPanelWidth)()||576),[L,M]=(0,c.useState)(()=>(0,K.loadLinearRunsPanelWidth)()||224),[N,O]=(0,c.useState)(""),[Q,R]=(0,c.useState)(""),[S,T]=(0,c.useState)(!1),[U,V]=(0,c.useState)([]),[W,X]=(0,c.useState)([]),[Y,$]=(0,c.useState)([]),[ae,af]=(0,c.useState)([]),[ag,aj]=(0,c.useState)([]),[ap,aq]=(0,c.useState)([]),[ar,as]=(0,c.useState)(""),[at,au]=(0,c.useState)(""),[av,aw]=(0,c.useState)("activity"),[ax,ay]=(0,c.useState)("desc"),[az,aA]=(0,c.useState)(!1),[aB,aC]=(0,c.useState)(null),[aD,aE]=(0,c.useState)(null),[aF,aG]=(0,c.useState)([]),[aH,aI]=(0,c.useState)(new Map),[aJ,aK]=(0,c.useState)(null),[aL,aM]=(0,c.useState)(null),[aN,aO]=(0,c.useState)("runs"),aP=(0,c.useRef)(null),aQ=(0,c.useRef)(!0),aR=(0,c.useRef)(null),aS=(0,c.useRef)(null),{getSelection:aT,pushSelection:aU,replaceSelection:aV}=(0,w.useUrlSelection)(),aW=aT("issue"),aX=aT("run"),aY=(0,c.useCallback)(a=>{O(a),aP.current&&clearTimeout(aP.current),aP.current=setTimeout(()=>R(a),300)},[]);(0,c.useEffect)(()=>()=>{aP.current&&clearTimeout(aP.current)},[]),(0,c.useEffect)(()=>{let a={...J};aQ.current=!0,O(a.search),R(a.search),af(a.assigneeIds),aj(a.statuses),au(a.teamId),as(a.cycleId),aw(a.sortBy),ay(a.sortDir),aA(a.hasActivity)},[d]),(0,c.useEffect)(()=>{if(aQ.current){aQ.current=!1;return}},[d,N,ae,ag,at,ar,av,ax,az]),(0,c.useEffect)(()=>{if(!g)return;let a=!1;T(!1);let b=new URLSearchParams;d&&b.set("projectSlug",d);let c=b.toString();return fetch(c?`/api/linear/options?${c}`:"/api/linear/options").then(a=>a.json()).then(b=>{a||(V(Array.isArray(b.assignees)?b.assignees:[]),X(Array.isArray(b.statuses)?b.statuses:[]),$(Array.isArray(b.teams)?b.teams:[]),aq(Array.isArray(b.cycles)?b.cycles:[]),T(!0))}).catch(()=>{a||(V([]),X([]),$([]),aq([]),T(!0))}),()=>{a=!0}},[g,d]),(0,c.useEffect)(()=>{if(!S)return;let a=ae.filter(a=>U.some(b=>b.id===a));a.length!==ae.length&&af(a)},[U,S,ae]),(0,c.useEffect)(()=>{if(!S)return;let a=ag.filter(a=>W.includes(a));a.length!==ag.length&&aj(a)},[S,ag,W]),(0,c.useEffect)(()=>{if(S){if(Y.length<=1&&at)return void au("");at&&!Y.some(a=>a.id===at)&&au("")}},[S,at,Y]),(0,c.useEffect)(()=>{S&&ar&&!ap.some(a=>a.id===ar)&&as("")},[ap,S,ar]);let{issues:aZ,loading:a$,hasMore:a_,loadMore:a0,refresh:a1,updateIssue:a2}=function(a,b=!0,d={}){let[e,f]=(0,c.useState)([]),[g,h]=(0,c.useState)(!0),[i,j]=(0,c.useState)(null),[k,l]=(0,c.useState)(!1),m=(0,c.useRef)(i),n=(0,c.useRef)(!1);m.current=i,(0,c.useEffect)(()=>{n.current=!1},[d.projectSlug]);let o=(0,c.useCallback)(async(c,e=!1)=>{if(b){h(!0);try{let b=new URLSearchParams;if(a.teamId&&b.set("teamId",a.teamId),a.statuses?.length)for(let c of a.statuses)b.append("status",c);if(a.search&&b.set("search",a.search),a.assigneeIds?.length)for(let c of a.assigneeIds)b.append("assigneeId",c);else a.assignedToMe&&b.set("assignedToMe","true");a.cycleId&&b.set("cycleId",a.cycleId),a.sortBy&&b.set("sortBy",a.sortBy),a.sortDir&&b.set("sortDir",a.sortDir),a.hasActivity&&b.set("hasActivity","true"),c&&m.current&&b.set("cursor",m.current),d.projectSlug&&b.set("projectSlug",d.projectSlug),d.limit&&b.set("limit",String(d.limit)),e&&b.set("refresh","true");let g=await fetch(`/api/linear/issues?${b.toString()}`),h=await g.json(),i=h.issues??[];f(a=>c?[...a,...i]:i),j(h.pageInfo?.endCursor??null),l(h.pageInfo?.hasNextPage??!1),n.current=!0}catch{c||f([])}finally{h(!1)}}},[a.teamId,a.statuses,a.search,a.assigneeIds,a.assignedToMe,a.cycleId,a.sortBy,a.sortDir,a.hasActivity,b,d.projectSlug,d.limit]);(0,c.useEffect)(()=>{j(null),o(!1,!n.current)},[o]);let p=(0,c.useCallback)(()=>o(!0),[o]);return{issues:e,loading:g,hasMore:k,loadMore:p,refresh:(0,c.useCallback)(()=>(j(null),o(!1,!0)),[o]),updateIssue:(0,c.useCallback)(a=>{f(b=>b.map(b=>b.id===a.id?a:b))},[])}}((0,c.useMemo)(()=>({search:Q||void 0,statuses:ag.length>0&&ag.length<W.length?ag:void 0,assigneeIds:ae.length>0?ae:void 0,teamId:at||void 0,cycleId:ar||void 0,sortBy:av,sortDir:ax,hasActivity:az||void 0}),[Q,ae,ar,ag,at,W.length,av,ax,az]),g,{projectSlug:d}),a3=(0,c.useMemo)(()=>aW?aZ.find(a=>a.id===aW)??null:null,[aZ,aW]),a4=a3??(aB?.id===aW?aB:null),{runs:a5,loading:a6,createRun:a7,updateRun:a8}=function(a,b){let[d,e]=(0,c.useState)([]),[f,g]=(0,c.useState)(!1),h=(0,c.useRef)(a??null);h.current=a??null;let i=(0,c.useCallback)(async()=>{let a=h.current?.trim();if(!a)return e([]),[];g(!0);try{let c=new URLSearchParams({issueId:a});b&&c.set("projectId",b);let d=await fetch(`/api/linear/runs?${c.toString()}`);if(!d.ok)throw Error(`Failed to fetch Linear runs: ${d.status}`);let f=await d.json(),g=Array.isArray(f.runs)?f.runs:[];return e(g),g}finally{g(!1)}},[b]);return(0,c.useEffect)(()=>{e([]),i()},[i,a]),(0,c.useEffect)(()=>{if(!a)return;let b=window.setInterval(()=>{i()},3e3);return()=>window.clearInterval(b)},[a,i]),{runs:d,loading:f,refresh:i,createRun:(0,c.useCallback)(async a=>{let b=await fetch("/api/linear/runs",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!b.ok)throw Error((await b.json().catch(()=>({}))).error||`Failed to create Linear run: ${b.status}`);let c=(await b.json()).run;return e(a=>[c,...a.filter(a=>a.id!==c.id)]),c},[]),updateRun:(0,c.useCallback)(async(a,b)=>{let c=await fetch(`/api/linear/runs/${encodeURIComponent(a)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(b)});if(!c.ok)throw Error((await c.json().catch(()=>({}))).error||`Failed to update Linear run: ${c.status}`);let d=(await c.json()).run;return e(a=>a.map(a=>a.id===d.id?d:a)),d},[])}}(a4?.id,a??null),{scripts:a9,activeScriptId:ba,activeScript:bb,setActiveScriptId:bc,saveScript:bd,deleteScript:be}=function(a){let[b,d]=(0,c.useState)([]),[e,f]=(0,c.useState)(null);(0,c.useEffect)(()=>{let a={...y};d(a.scripts),f(a.activeScriptId)},[a]);let g=(0,c.useCallback)((a,b)=>{d(a),f(b)},[a]),h=(0,c.useCallback)(a=>{let c=a&&b.some(b=>b.id===a)?a:null;g(b,c)},[g,b]),i=(0,c.useCallback)(a=>{let c=new Date().toISOString(),d=a.name.trim(),e=a.prompt.trim();if(!d||!e)throw Error("Run script name and prompt are required.");let f=a.id?b.find(b=>b.id===a.id):null,h=f?{...f,name:d,prompt:e,updatedAt:c}:{id:crypto.randomUUID(),name:d,prompt:e,createdAt:c,updatedAt:c};return g([...f?b.map(a=>a.id===f.id?h:a):[h,...b]].sort((a,b)=>b.updatedAt.localeCompare(a.updatedAt)),h.id),h},[g,b]),j=(0,c.useCallback)(a=>{g(b.filter(b=>b.id!==a),e===a?null:e)},[e,g,b]),k=(0,c.useMemo)(()=>b.find(a=>a.id===e)??null,[e,b]);return{scripts:b,activeScriptId:e,activeScript:k,setActiveScriptId:h,saveScript:i,deleteScript:j}}(d),bf=aX&&"new"!==aX?a5.find(a=>a.id===aX)??null:null,bg=(0,c.useMemo)(()=>U.map(a=>({value:a.id,label:a.name})),[U]),bh=(0,c.useMemo)(()=>W.map(a=>({value:a,label:a})),[W]),bi=(0,c.useMemo)(()=>Array.from(new Set([a4?.status??"",...W].map(a=>a.trim()).filter(Boolean))).map(a=>({value:a,label:a})),[a4?.status,W]),bj=(0,c.useMemo)(()=>[{value:"",label:"Workspace"},...Y.map(a=>({value:a.id,label:a.name}))],[Y]),bk=(0,c.useMemo)(()=>[{value:"",label:"Cycle"},...ap.map(a=>({value:a.id,label:a.name||`Cycle ${a.number}`}))],[ap]),bl=bh.length>0,bm=bk.length>1,bn=bj.length>2,bo=bb?.name??"AGX default",bp=(0,c.useCallback)(async(a,b)=>{let c=b.trim();if(c&&c!==a.status){aE(a.id);try{let b=await fetch(`/api/linear/issues/${encodeURIComponent(a.id)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({status:c})}),d=await b.json().catch(()=>({}));if(!b.ok||!d.issue)throw Error(d.error||"Failed to update ticket status");let e=d.issue;a2(e),aW===e.id&&aC(e),await a1()}catch(a){a instanceof Error&&window.alert(a.message)}finally{aE(b=>b===a.id?null:b)}}},[a1,aW,a2]);(0,c.useEffect)(()=>{if(!aW)return void aC(null);if(a3)return void aC(a=>a?.id===aW?a3:null);let a=!1;return(async()=>{try{let b=await fetch(`/api/linear/issues/${encodeURIComponent(aW)}`);if(a)return;if(404===b.status)return void aV({issue:null,run:null});if(!b.ok)throw Error(`Failed to fetch selected Linear ticket: ${b.status}`);let c=await b.json().catch(()=>({}));if(!c.issue?.id)return void aV({issue:null,run:null});aC(c.issue)}catch(b){a||console.error("Failed to hydrate selected Linear issue",b)}})(),()=>{a=!0}},[aV,a3,aW]),(0,c.useEffect)(()=>{if(!aW){aX&&aV({run:null});return}},[aV,aW,aX]),(0,c.useEffect)(()=>{a4&&aX&&"new"!==aX&&!a6&&(a5.some(a=>a.id===aX)||aV({run:null}))},[aV,a5,a6,a4,aX]),(0,c.useEffect)(()=>{if(f){if(!a4)return void aO("runs");if("new"===aX||bf||0===a5.length)return void aO("ticket");aO("runs")}},[f,a5.length,a4,bf,aX]),(0,c.useEffect)(()=>{let b=!1;return async function(){try{let c=await fetch("/api/participants"),d=c.ok?await c.json():[];if(!a){b||aG(d);return}let e=new URLSearchParams;e.set("projectId",a);let f=await fetch(`/api/linear/worker?${e}`).catch(()=>null),g=f?.ok?await f.json().catch(()=>null):null,h=g?.job?.teamId||void 0;if(h){let c=await fetch(`/api/projects/${encodeURIComponent(a)}/teams/${encodeURIComponent(h)}/agents`);if(c.ok){let a=await c.json(),e=Array.isArray(a.agents)?a.agents.sort((a,b)=>(a.routing_order??0)-(b.routing_order??0)).map(a=>a.agent_id).filter(a=>"string"==typeof a&&a.trim().length>0):[];if(e.length>0){let a=new Map(e.map((a,b)=>[a,b])),c=d.filter(b=>a.has(b.id)).sort((b,c)=>(a.get(b.id)??Number.MAX_SAFE_INTEGER)-(a.get(c.id)??Number.MAX_SAFE_INTEGER));if(!b&&c.length>0)return void aG(c)}}}let i=await fetch(`/api/projects/${encodeURIComponent(a)}/agents`);if(!i.ok){b||aG(d);return}let j=await i.json(),k=Array.isArray(j.agents)?j.agents.map(a=>a.agent_id).filter(a=>"string"==typeof a&&a.trim().length>0):[],l=new Map(k.map((a,b)=>[a,b])),m=d.filter(a=>l.has(a.id)).sort((a,b)=>(l.get(a.id)??Number.MAX_SAFE_INTEGER)-(l.get(b.id)??Number.MAX_SAFE_INTEGER));b||aG(m)}catch{b||aG([])}}(),()=>{b=!0}},[a]),(0,c.useEffect)(()=>{let b=!1;async function c(){try{let c=new URLSearchParams;a&&c.set("projectId",a);let d=await fetch(`/api/linear/issues/active-agents?${c}`);if(!d.ok||b)return;let e=await d.json(),f=new Map;for(let a of e.agents??[]){let b=f.get(a.issueId)??[];b.push({agentId:a.agentId,agentName:a.agentName}),f.set(a.issueId,b)}b||aI(f)}catch{}}c();let d=setInterval(()=>void c(),5e3);return()=>{b=!0,clearInterval(d)}},[a]),(0,c.useEffect)(()=>{if(!D)return;let a=a=>{let b=a.target;aS.current?.contains(b)||aR.current?.contains(b)||E(!1)},b=a=>{"Escape"===a.key&&E(!1)};return document.addEventListener("pointerdown",a),document.addEventListener("keydown",b),()=>{document.removeEventListener("pointerdown",a),document.removeEventListener("keydown",b)}},[D]);let bq=(0,c.useCallback)(async(b,c)=>{aK(null),aM(null);try{let e=await fetch("/api/linear/runs/scripted",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectId:a??void 0,projectSlug:d??void 0,issueId:b.id,issueIdentifier:b.identifier,issueTitle:b.title,issueStatus:b.status,issueAssignee:b.assignee,agentId:c.id,scriptName:bb?.name,scriptPrompt:bb?.prompt})}),f=await e.json().catch(()=>({}));if(!e.ok||!f.run||!f.chatRunId||!f.userMessageId)throw Error(f.error||"Failed to start scripted session");aU({issue:b.id,run:f.run.id})}catch(a){console.error("Failed to start scripted Linear session:",a),a instanceof Error&&window.alert(a.message)}},[bb,a,d,aU]),br=(0,c.useCallback)((a,b)=>{if(E(!1),0===aF.length)return void window.alert("Add at least one agent to this project before starting a scripted session.");if(1===aF.length)return void bq(a,aF[0]);let c=b?.currentTarget?.getBoundingClientRect();aK(a),aM(c?{top:c.bottom+4,left:c.left}:{top:200,left:200})},[bq,aF]),bs=(0,c.useRef)(null);if((0,c.useEffect)(()=>{let a=bs.current;if(!a||!a_)return;let b=new IntersectionObserver(a=>{a[0]?.isIntersecting&&a0()},{threshold:.1});return b.observe(a),()=>b.disconnect()},[a_,a0]),j)return(0,b.jsx)("div",{className:"flex h-full items-center justify-center text-xs text-[var(--muted-foreground)]",children:"Loading..."});let bt=g&&!z&&!Object.values(m).some(Boolean);return!g||bt?(0,b.jsx)(P,{connected:g,user:k,clis:l,mcpConfigured:m,onConnect:n,onConnectWithKey:o,onDisconnect:p,onConfigureMcp:u,onContinue:()=>A(!0)}):(0,b.jsxs)("div",{className:"relative flex h-full overflow-hidden",children:[f?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col",children:[(0,b.jsxs)("div",{className:"shrink-0 border-b border-[var(--card-border)]",children:[(0,b.jsxs)("div",{className:"flex h-12 items-center gap-2 px-3",children:[(0,b.jsxs)("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)]",children:[(0,b.jsx)(s.Search,{size:14,className:"shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("input",{type:"text",className:"flex-1 bg-transparent text-sm outline-none placeholder:text-[var(--muted-foreground)]",placeholder:"Search tickets...",value:N,onChange:a=>aY(a.target.value)})]}),(0,b.jsx)("button",{type:"button",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",onClick:()=>void a1(),title:"Refresh tickets","aria-label":"Refresh tickets",disabled:a$,children:(0,b.jsx)(r.RefreshCw,{size:16,className:a$?"animate-spin":void 0})}),(0,b.jsx)("button",{type:"button",className:"shrink-0 rounded p-2 text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]",onClick:()=>{E(!1),C(!0)},title:"Linear settings",children:(0,b.jsx)(t.Settings,{size:16})})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5 px-3 pb-2",children:[bl?(0,b.jsx)(ak,{label:"Status",values:ag,options:bh,activeClasses:"border-amber-500/30 bg-amber-500/10 text-amber-300",onChange:aj,emptyLabel:"All statuses"}):null,(0,b.jsx)(ak,{label:"Assignee",values:ae,options:bg,activeClasses:"border-blue-500/30 bg-blue-500/10 text-blue-400",onChange:af,emptyLabel:"All assignees"}),bn?(0,b.jsx)(ai,{label:"Workspace",value:at,options:bj,activeClasses:"border-emerald-500/30 bg-emerald-500/10 text-emerald-400",onChange:au}):null,bm?(0,b.jsx)(ai,{label:"Cycle",value:ar,options:bk,activeClasses:"border-purple-500/30 bg-purple-500/10 text-purple-400",onChange:as}):null,(0,b.jsx)(ai,{label:"Sort",value:av,options:[{value:"activity",label:"Activity"},{value:"identifier",label:"Ticket ID"},{value:"status",label:"Status"},{value:"created",label:"Created"}],activeClasses:"border-sky-500/30 bg-sky-500/10 text-sky-400",onChange:a=>aw(a)}),(0,b.jsx)("button",{type:"button",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)]",title:"desc"===ax?"Descending":"Ascending",onClick:()=>ay(a=>"desc"===a?"asc":"desc"),children:"desc"===ax?(0,b.jsx)(h,{size:12}):(0,b.jsx)(i,{size:12})}),(0,b.jsx)("button",{type:"button",className:`flex items-center gap-1 rounded-full border px-2.5 py-1 text-[11px] font-medium transition-colors ${az?"border-orange-500/30 bg-orange-500/10 text-orange-400":"border-[var(--card-border)] text-[var(--muted-foreground)] hover:bg-[var(--card-bg)]"}`,onClick:()=>aA(a=>!a),children:"My activity"})]})]}),(0,b.jsx)("div",{className:"flex-1 overflow-y-auto",children:a$&&0===aZ.length?(0,b.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)]",children:"Loading tickets..."}):0===aZ.length?(0,b.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)]",children:"No tickets found."}):(0,b.jsxs)(b.Fragment,{children:[aZ.map(a=>(0,b.jsx)(an,{issue:a,selected:a4?.id===a.id,activeAgents:aH.get(a.id),participants:aF,onSelect:()=>{aO("runs"),aU({issue:a.id,run:null})}},a.id)),a_?(0,b.jsx)("div",{ref:bs,className:"py-2 text-center text-xs text-[var(--muted-foreground)]",children:a$?"Loading...":"Load more"}):null]})})]}),a4?(0,b.jsxs)("div",{className:"absolute inset-0 z-20 flex flex-col bg-[var(--background)]",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3 border-b border-[var(--card-border)] px-4 py-3",children:[(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("div",{className:"text-[10px] font-semibold uppercase tracking-[0.14em] text-[var(--muted-foreground)]",children:a4.identifier}),(0,b.jsx)("div",{className:"truncate text-sm font-semibold text-[var(--foreground)]",children:a4.title})]}),(0,b.jsx)("button",{type:"button",className:"rounded p-2 text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]",onClick:()=>aV({issue:null,run:null}),"aria-label":"Close ticket panel",children:(0,b.jsx)(v.X,{size:16})})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2 border-b border-[var(--card-border)] px-3 py-2",children:[(0,b.jsx)("button",{type:"button",className:`rounded-full px-3 py-1.5 text-xs font-medium transition-colors ${"runs"===aN?"bg-[var(--card-bg)] text-[var(--foreground)]":"text-[var(--muted-foreground)] hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]"}`,onClick:()=>aO("runs"),children:"Runs"}),(0,b.jsx)("button",{type:"button",className:`rounded-full px-3 py-1.5 text-xs font-medium transition-colors ${"ticket"===aN?"bg-[var(--card-bg)] text-[var(--foreground)]":"text-[var(--muted-foreground)] hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]"}`,onClick:()=>aO("ticket"),children:"Ticket"})]}),(0,b.jsx)("div",{className:"min-h-0 flex-1 overflow-hidden",children:"runs"===aN?(0,b.jsxs)("div",{className:"flex h-full flex-col overflow-hidden",children:[(0,b.jsxs)("div",{className:"relative flex items-center justify-between border-b border-[var(--card-border)] px-3 py-2",children:[(0,b.jsx)("h3",{className:"text-xs font-semibold text-[var(--foreground)]",children:"Sessions"}),(0,b.jsxs)("button",{ref:aR,type:"button",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",onClick:()=>{E(!1),aO("ticket"),aU({run:"new"})},title:"Open a fresh chat for this ticket. You can choose or edit the session script in the ticket tab.","aria-label":"New session",disabled:!a4,children:[(0,b.jsx)(q.Plus,{size:12}),"New session"]})]}),(0,b.jsx)("div",{className:"flex-1 overflow-y-auto",children:a6&&0===a5.length?(0,b.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)]",children:"Loading sessions..."}):0===a5.length?(0,b.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)]",children:"No previous sessions yet."}):a5.map(a=>{let c=ac(a);return(0,b.jsxs)("button",{type:"button",className:`w-full px-3 py-2 text-left text-xs transition-colors ${bf?.id===a.id?"bg-[var(--card-bg)]":"hover:bg-[var(--card-bg)]"}`,onClick:()=>{aO("ticket"),aU({run:a.id})},children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-1",children:[(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate text-[11px] font-medium text-[var(--foreground)]",children:ad(a)}),(0,b.jsx)("span",{className:"text-[10px] text-[var(--muted-foreground)]",children:ab(a.startedAt)})]}),(0,b.jsxs)("div",{className:"mt-0.5 flex items-center gap-1.5 text-[10px]",children:[(0,b.jsx)("span",{className:`font-medium ${ah[c.tone]}`,children:c.label}),(0,b.jsx)("span",{className:"truncate text-[var(--muted-foreground)]",children:a.agentName})]}),null!=a.durationMs?(0,b.jsxs)("div",{className:"text-[10px] text-[var(--muted-foreground)]",children:[(a.durationMs/1e3).toFixed(1),"s"]}):null]},a.id)})})]}):bf?(0,b.jsx)(am,{issue:a4??{id:bf.issueId,identifier:bf.issueIdentifier,title:bf.issueTitle,url:null,status:bf.issueStatus,assignee:bf.issueAssignee,updatedAt:bf.updatedAt},run:bf,participants:aF,issueStatusOptions:bi,issueStatusUpdating:aD===bf.issueId,onIssueStatusChange:bp}):0===aF.length?(0,b.jsx)("div",{className:"flex h-full items-center justify-center text-xs text-[var(--muted-foreground)]",children:"Add at least one agent to this project to start a session."}):"new"===aX||0===a5.length?(0,b.jsx)(al,{issue:a4,participants:aF,projectId:a,projectSlug:d,issueStatusOptions:bi,issueStatusUpdating:aD===a4.id,onIssueStatusChange:bp,activeSessionScriptLabel:bo,onOpenSessionScripts:()=>E(!0),onStartScriptedSession:a=>br(a4,a),createRun:a7,updateRun:a8,onRunCreated:a=>aU({run:a})},a4.id):(0,b.jsx)("div",{className:"flex h-full items-center justify-center text-xs text-[var(--muted-foreground)]",children:a6?"Loading sessions...":"Select a session to continue."})})]}):null]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"flex shrink-0 flex-col border-r border-[var(--card-border)]",style:{width:F},children:[(0,b.jsxs)("div",{className:"shrink-0 border-b border-[var(--card-border)]",children:[(0,b.jsxs)("div",{className:"flex h-12 items-center gap-2 px-3",children:[(0,b.jsxs)("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)]",children:[(0,b.jsx)(s.Search,{size:14,className:"shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("input",{type:"text",className:"flex-1 bg-transparent text-sm outline-none placeholder:text-[var(--muted-foreground)]",placeholder:"Search tickets...",value:N,onChange:a=>aY(a.target.value)})]}),(0,b.jsx)("button",{type:"button",className:"shrink-0 rounded p-1.5 text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)] disabled:cursor-not-allowed disabled:opacity-50",onClick:()=>void a1(),title:"Refresh tickets","aria-label":"Refresh tickets",disabled:a$,children:(0,b.jsx)(r.RefreshCw,{size:16,className:a$?"animate-spin":void 0})}),(0,b.jsx)("button",{type:"button",className:"shrink-0 rounded p-1.5 text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]",onClick:()=>{E(!1),C(!0)},title:"Linear settings",children:(0,b.jsx)(t.Settings,{size:16})})]}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5 px-3 pb-2",children:[bl?(0,b.jsx)(ak,{label:"Status",values:ag,options:bh,activeClasses:"border-amber-500/30 bg-amber-500/10 text-amber-300",onChange:aj,emptyLabel:"All statuses"}):null,(0,b.jsx)(ak,{label:"Assignee",values:ae,options:bg,activeClasses:"border-blue-500/30 bg-blue-500/10 text-blue-400",onChange:af,emptyLabel:"All assignees"}),bn?(0,b.jsx)(ai,{label:"Workspace",value:at,options:bj,activeClasses:"border-emerald-500/30 bg-emerald-500/10 text-emerald-400",onChange:au}):null,bm?(0,b.jsx)(ai,{label:"Cycle",value:ar,options:bk,activeClasses:"border-purple-500/30 bg-purple-500/10 text-purple-400",onChange:as}):null,(0,b.jsx)(ai,{label:"Sort",value:av,options:[{value:"activity",label:"Activity"},{value:"identifier",label:"Ticket ID"},{value:"status",label:"Status"},{value:"created",label:"Created"}],activeClasses:"border-sky-500/30 bg-sky-500/10 text-sky-400",onChange:a=>aw(a)}),(0,b.jsx)("button",{type:"button",className:"rounded-full border border-[var(--card-border)] p-0.5 text-[var(--muted-foreground)] transition-colors hover:bg-[var(--card-bg)] hover:text-[var(--foreground)]",title:"desc"===ax?"Descending":"Ascending",onClick:()=>ay(a=>"desc"===a?"asc":"desc"),children:"desc"===ax?(0,b.jsx)(h,{size:12}):(0,b.jsx)(i,{size:12})}),(0,b.jsx)("button",{type:"button",className:`flex items-center gap-1 rounded-full border px-2.5 py-0.5 text-[11px] font-medium transition-colors ${az?"border-orange-500/30 bg-orange-500/10 text-orange-400":"border-[var(--card-border)] text-[var(--muted-foreground)] hover:bg-[var(--card-bg)]"}`,onClick:()=>aA(a=>!a),children:"My activity"})]})]}),(0,b.jsx)("div",{className:"flex-1 overflow-y-auto",children:a$&&0===aZ.length?(0,b.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)]",children:"Loading tickets..."}):0===aZ.length?(0,b.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)]",children:"No tickets found."}):(0,b.jsxs)(b.Fragment,{children:[aZ.map(a=>(0,b.jsx)(an,{issue:a,selected:a4?.id===a.id,activeAgents:aH.get(a.id),participants:aF,onSelect:()=>aU({issue:a.id,run:null})},a.id)),a_?(0,b.jsx)("div",{ref:bs,className:"py-2 text-center text-xs text-[var(--muted-foreground)]",children:a$?"Loading...":"Load more"}):null]})})]}),(0,b.jsx)(_,{onResize:a=>H(b=>{let c=Math.max(180,Math.min(600,b+a));return(0,K.persistLinearTicketPanelWidth)(c),c})}),(0,b.jsxs)("div",{className:"flex shrink-0 flex-col border-r border-[var(--card-border)]",style:{width:L},children:[(0,b.jsxs)("div",{className:"relative flex items-center justify-between border-b border-[var(--card-border)] px-3 py-2",children:[(0,b.jsx)("h3",{className:"text-xs font-semibold text-[var(--foreground)]",children:"Sessions"}),(0,b.jsxs)("button",{ref:aR,type:"button",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",onClick:()=>{E(!1),aU({run:"new"})},title:"Open a fresh chat for this ticket. You can choose or edit the session script in the session details pane.","aria-label":"New session",disabled:!a4,children:[(0,b.jsx)(q.Plus,{size:12}),"New session"]}),D?(0,b.jsx)("div",{ref:aS,className:"absolute right-3 top-full z-20 mt-2 max-h-[80vh] overflow-y-auto rounded-2xl border border-[var(--card-border)] bg-[var(--background)] p-4 shadow-2xl",style:{width:"min(760px, calc(100vw - 32px))"},children:(0,b.jsx)(G,{projectSlug:d,scripts:a9,activeScriptId:ba,onSetActiveScriptId:bc,onSaveScript:bd,onDeleteScript:be})}):null]}),(0,b.jsx)("div",{className:"flex-1 overflow-y-auto",children:a4?(0,b.jsx)(b.Fragment,{children:a6&&0===a5.length?(0,b.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)]",children:"Loading sessions..."}):0===a5.length?(0,b.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)]",children:"No previous sessions yet."}):a5.map(a=>{let c=ac(a);return(0,b.jsxs)("button",{type:"button",className:`w-full px-3 py-2 text-left text-xs transition-colors ${bf?.id===a.id?"bg-[var(--card-bg)]":"hover:bg-[var(--card-bg)]"}`,onClick:()=>aU({run:a.id}),children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-1",children:[(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate text-[11px] font-medium text-[var(--foreground)]",children:ad(a)}),(0,b.jsx)("span",{className:"text-[10px] text-[var(--muted-foreground)]",children:ab(a.startedAt)})]}),(0,b.jsxs)("div",{className:"mt-0.5 flex items-center gap-1.5 text-[10px]",children:[(0,b.jsx)("span",{className:`font-medium ${ah[c.tone]}`,children:c.label}),(0,b.jsx)("span",{className:"truncate text-[var(--muted-foreground)]",children:a.agentName})]}),null!=a.durationMs?(0,b.jsxs)("div",{className:"text-[10px] text-[var(--muted-foreground)]",children:[(a.durationMs/1e3).toFixed(1),"s"]}):null]},a.id)})}):(0,b.jsx)("div",{className:"px-3 py-4 text-xs text-[var(--muted-foreground)]",children:"Select a ticket to see sessions."})})]}),(0,b.jsx)(_,{onResize:a=>M(b=>{let c=Math.max(140,Math.min(500,b+a));return(0,K.persistLinearRunsPanelWidth)(c),c})}),(0,b.jsx)("div",{className:"flex min-w-0 flex-1 flex-col overflow-hidden",children:bf?(0,b.jsx)(am,{issue:a4??{id:bf.issueId,identifier:bf.issueIdentifier,title:bf.issueTitle,url:null,status:bf.issueStatus,assignee:bf.issueAssignee,updatedAt:bf.updatedAt},run:bf,participants:aF,issueStatusOptions:bi,issueStatusUpdating:aD===bf.issueId,onIssueStatusChange:bp}):a4?0===aF.length?(0,b.jsx)("div",{className:"flex h-full items-center justify-center text-xs text-[var(--muted-foreground)]",children:"Add at least one agent to this project to start a session."}):"new"===aX||0===a5.length?(0,b.jsx)(al,{issue:a4,participants:aF,projectId:a,projectSlug:d,issueStatusOptions:bi,issueStatusUpdating:aD===a4.id,onIssueStatusChange:bp,activeSessionScriptLabel:bo,onOpenSessionScripts:()=>E(!0),onStartScriptedSession:a=>br(a4,a),createRun:a7,updateRun:a8,onRunCreated:a=>aU({run:a})},a4.id):(0,b.jsx)("div",{className:"flex h-full items-center justify-center text-xs text-[var(--muted-foreground)]",children:a6?"Loading sessions...":"Select a session to continue."}):(0,b.jsx)("div",{className:"flex h-full items-center justify-center text-xs text-[var(--muted-foreground)]",children:"Select a ticket from the list."})})]}),B&&(0,b.jsx)(Z,{connected:g,user:k,clis:l,mcpConfigured:m,onConnect:n,onConnectWithKey:o,onDisconnect:p,onConfigureMcp:u,onClose:()=>C(!1),projectId:a}),D&&f?(0,b.jsx)("div",{className:"absolute inset-0 z-30 flex items-center justify-center bg-black/50 p-4",children:(0,b.jsx)("div",{ref:aS,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",children:(0,b.jsx)(G,{projectSlug:d,scripts:a9,activeScriptId:ba,onSetActiveScriptId:bc,onSaveScript:bd,onDeleteScript:be})})}):null,aJ&&aL&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"fixed inset-0 z-40",onClick:()=>{aK(null),aM(null)}}),(0,b.jsxs)("div",{className:"fixed z-50 min-w-[180px] rounded border border-[var(--card-border)] bg-[var(--card-bg)] py-1 shadow-lg",style:{top:aL.top,left:aL.left},children:[(0,b.jsx)("div",{className:"px-3 py-1.5 text-[10px] font-semibold uppercase tracking-wider text-[var(--muted-foreground)]",children:"Pick an agent"}),aF.map(a=>(0,b.jsxs)("button",{type:"button",className:"flex w-full items-center gap-2 px-3 py-1.5 text-left text-xs transition-colors hover:bg-[var(--card-bg)]",onClick:()=>void bq(aJ,a),children:[(0,b.jsx)("img",{src:aa(a.id,a.color,20),alt:"",className:"h-5 w-5 shrink-0 rounded-full"}),(0,b.jsxs)("span",{className:"flex flex-col",children:[(0,b.jsx)("span",{className:"font-medium text-[var(--foreground)]",children:a.name}),a.title?(0,b.jsx)("span",{className:"text-[10px] text-[var(--muted-foreground)]",children:a.title}):null]})]},a.id))]})]})]})}a.s(["default",0,function({params:a}){let{slug:f}=(0,c.use)(a),g=(0,d.useSearchParams)(),{projects:h}=(0,e.useProjects)(),i=h.find(a=>a.slug===f),j="true"===g.get("settings");return(0,b.jsx)(ao,{projectId:i?.id,projectSlug:i?.slug??f,initialShowSettings:j})}],576608)}];
|
|
38
38
|
|
|
39
39
|
//# sourceMappingURL=apps_local_app_projects_%5Bslug%5D_linear_page_tsx_0a~n5y8._.js.map
|