@mndrk/agx 2.4.9 → 2.4.11
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/cloud-runtime/standalone/apps/local/.next/BUILD_ID +1 -1
- package/cloud-runtime/standalone/apps/local/.next/app-path-routes-manifest.json +7 -0
- package/cloud-runtime/standalone/apps/local/.next/build-manifest.json +5 -5
- package/cloud-runtime/standalone/apps/local/.next/prerender-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/routes-manifest.json +47 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error/page/build-manifest.json +3 -3
- 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/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.html +2 -2
- 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/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found/page/next-font-manifest.json +3 -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 +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
- 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 +3 -3
- 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 +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents/[id]/page/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents/[id]/page/next-font-manifest.json +3 -1
- 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/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page/next-font-manifest.json +3 -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 +5 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_full.segment.rsc +5 -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 +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_tree.segment.rsc +5 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/agents/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/agents.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/agent-specs/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/[id]/profile/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/export/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat-runs/[id]/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat-runs/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat-runs/active-agents/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat-runs/active-agents/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat-runs/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat-runs/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/git/diff/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/diff/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/diff/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/diff/route.js +7 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/diff/route.js.map +5 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/diff/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/diff/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/repos/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/repos/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/repos/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/repos/route.js +7 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/repos/route.js.map +5 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/repos/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/repos/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/refresh/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/refresh/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/refresh/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/refresh/route.js +7 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/refresh/route.js.map +5 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/refresh/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/refresh/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/rescan/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/rescan/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/rescan/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/rescan/route.js +7 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/rescan/route.js.map +5 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/rescan/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/rescan/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/route.js +7 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/route.js.map +5 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/issues/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/[id]/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/[id]/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/[id]/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/[id]/route.js +7 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/[id]/route.js.map +5 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/[id]/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/[id]/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/context/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/for-target/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/link/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/seed/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/repos/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/repos/sync/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/messages/[id]/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/messages/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/participants/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/processes/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/processes/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/scheduled-tasks/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/search/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/teams/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/poll/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/providers/check/[id]/route.js +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 +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/providers/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/queue/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/debug/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/poll/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/assign/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/available/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/detail/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/history/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/learn/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/unlearn/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/status/route.js +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/system/db-status/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/system/db-status/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/comments/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/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.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/threads/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/active-agents/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/active-agents/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/auth/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/callback/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/groups/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/items/[id]/activity/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/items/[id]/recap/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/items/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/items/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/labels/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/labels/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/mcp-setup/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/metadata/bulk/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/metadata/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/options/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/runs/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/runs/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/runs/scripted/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/stats/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/stats/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/status/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/token/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/token-receive/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/worker/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/connections/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/update-check/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/update-check/route.js.nft.json +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 +6 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_full.segment.rsc +6 -4
- 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 +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_tree.segment.rsc +5 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos/page/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos/page/next-font-manifest.json +3 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.rsc +5 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/_full.segment.rsc +5 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/_index.segment.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/_tree.segment.rsc +5 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/integrations/github/select-repos/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/integrations/github/select-repos.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/integrations/github.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/integrations.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/page/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/page/next-font-manifest.json +3 -1
- 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/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page/next-font-manifest.json +3 -1
- 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/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page/next-font-manifest.json +3 -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/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page/next-font-manifest.json +3 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page/next-font-manifest.json +3 -1
- 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]/notifications/page/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/notifications/page/next-font-manifest.json +3 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/notifications/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/notifications/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/notifications/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page/next-font-manifest.json +3 -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/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page/next-font-manifest.json +3 -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/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page/next-font-manifest.json +3 -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]/prs/[prId]/page/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/[prId]/page/build-manifest.json +18 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/[prId]/page/next-font-manifest.json +13 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/[prId]/page/react-loadable-manifest.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/[prId]/page/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/[prId]/page.js +16 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/[prId]/page.js.map +5 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/[prId]/page.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/[prId]/page_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/page/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/page/next-font-manifest.json +3 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page/next-font-manifest.json +3 -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/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page/next-font-manifest.json +3 -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/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page/next-font-manifest.json +3 -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/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page/next-font-manifest.json +3 -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/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page/next-font-manifest.json +3 -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/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page/next-font-manifest.json +3 -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/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page/next-font-manifest.json +3 -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/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page/next-font-manifest.json +3 -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/[slug]/thread/page/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/page/next-font-manifest.json +3 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/[tracker]/page/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/[tracker]/page/next-font-manifest.json +3 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/[tracker]/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/[tracker]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/[tracker]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/connect/page/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/connect/page/next-font-manifest.json +3 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/connect/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/connect/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/connect/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/page/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/page/next-font-manifest.json +3 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/page/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/page/next-font-manifest.json +3 -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 +6 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_full.segment.rsc +6 -4
- 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 +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_tree.segment.rsc +5 -3
- 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/setup/page/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page/next-font-manifest.json +3 -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 +6 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_full.segment.rsc +6 -4
- 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 +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_tree.segment.rsc +5 -3
- 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/status/page/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/status/page/next-font-manifest.json +3 -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 +6 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_full.segment.rsc +6 -4
- 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 +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_tree.segment.rsc +5 -3
- 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-paths-manifest.json +7 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__037eb67e._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__97e7a600._.js → [root-of-the-server]__0ce28b4a._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__2564bd1e._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__26904897._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__f48224f7._.js → [root-of-the-server]__273384ad._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__bdc396a9._.js → [root-of-the-server]__2d6f22a3._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__af70f062._.js → [root-of-the-server]__3a038592._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__9cb1dc55._.js → [root-of-the-server]__3b27260f._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__1321970e._.js → [root-of-the-server]__5da8d281._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__92d34a52._.js → [root-of-the-server]__69a60d71._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__66437bd3._.js → [root-of-the-server]__6edb829d._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__8917bc4c._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__870fac73._.js → [root-of-the-server]__8cb4fb94._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__95298612._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__aa1b171a._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__b719a2ed._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__94f42197._.js → [root-of-the-server]__be9b56bb._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__c57c0958._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__cce177d8._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__e33b34ce._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__61c40dc9._.js → [root-of-the-server]__ee43b5b0._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_1d99e7a5._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_22ab9b7c._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_56a2544c._.js +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_5843a1a1._.js +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local__next-internal_server_app_api_git_diff_route_actions_5ed8f528.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local__next-internal_server_app_api_git_repos_route_actions_24bb70fb.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local__next-internal_server_app_api_git_workspaces_route_actions_2ffcb8e1.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local__next-internal_server_app_api_github_prs_[id]_route_actions_97f96f83.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_bd72806a._.js +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_6bd3d8a2._.js +12 -12
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_cli-runner_ts_ead5489c._.js +12 -12
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_d268503a._.js +12 -12
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_orchestrator_chat-processor_ts_46384f36._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ebff2__next-internal_server_app_api_git_workspaces_refresh_route_actions_6586e386.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ebff2__next-internal_server_app_api_git_workspaces_rescan_route_actions_2566b872.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__14448535._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__17c701d2._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{[root-of-the-server]__ce586680._.js → [root-of-the-server]__24007358._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__263b7091._.js +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{[root-of-the-server]__2c4531d0._.js → [root-of-the-server]__6e4038bb._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__7a31a76d._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__9193284e._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{[root-of-the-server]__5f31e40b._.js → [root-of-the-server]__af9b12ac._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__c027b3e3._.js +15 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__c0bc6058._.js +7 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{[root-of-the-server]__9434d6d7._.js → [root-of-the-server]__c2331483._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__d8f968ee._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{_a0f42923._.js → _f2cf58ea._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_4d3f9c1e._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_6d8c811a._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_988d29c0._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_folders_page_tsx_72fb68e5._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_page_tsx_76330306._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_page_tsx_b5cec607._.js +5 -5
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_setup_page_tsx_9a67cfaf._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_b87f08ce._.js +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_c012eb07._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_ProjectModal_tsx_c447494c._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_TrackerBoard_tsx_98970bab._.js +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_prs_review_6ac47c7c._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_eec36ab6._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_fed01721._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/ebff2__next-internal_server_app_projects_[slug]_prs_[prId]_page_actions_37d43e50.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/functions-config-manifest.json +6 -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 +93 -29
- package/cloud-runtime/standalone/apps/local/.next/server/pages/404.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/pages/500.html +2 -2
- 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/16786eff1b844fce.css +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/23b7c6b08d8bf807.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/38a2210cf8c5fa16.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{d6a9cc66254693b8.js → 46add4300ec4ed84.js} +1 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/4f3bd9585037d960.js +16 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/60239e52ecfd3f7e.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{8b87c2521c519a1f.js → 6135e7752be76b7e.js} +11 -11
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/731deba285de6535.js +16 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/7ca9570f1f269043.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/86c552479b09e1f3.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/8f6587b3b3255b54.js +16 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/9ac96f1f33a266f9.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/a2eeffc281bd68bc.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/a68ffbf383609000.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{c9a2c4b55bb76f4f.js → b27f760849f14f13.js} +5 -5
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/b2c704fe1711d660.js +16 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/b53629835d2a70f0.js +16 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/b59bb2518194866e.css +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/bb99cb03648e6fae.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{72b4109642bf21f4.js → cb34ff86458b2477.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/dc12676eea40fd39.css +4 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/de6617e175bb536b.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{turbopack-87f23485587f08c3.js → turbopack-90109c6adbc88193.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/static/media/04c5164763c40239-s.690580e8.woff2 +0 -0
- package/cloud-runtime/standalone/apps/local/.next/static/media/051742360c26797e-s.p.102b7f24.woff2 +0 -0
- package/cloud-runtime/standalone/apps/local/.next/static/media/0ee4b8f05dcd9fee-s.45e2741a.woff2 +0 -0
- package/cloud-runtime/standalone/apps/local/.next/static/media/13ae3e01af63c0ce-s.3ec27879.woff2 +0 -0
- package/cloud-runtime/standalone/apps/local/.next/static/media/26f284dcc38c84c0-s.303a03d6.woff2 +0 -0
- package/cloud-runtime/standalone/apps/local/.next/static/media/6a5386fd6038edbe-s.719084df.woff2 +0 -0
- package/cloud-runtime/standalone/apps/local/.next/static/media/7e7f32a39836f228-s.0b4edfe7.woff2 +0 -0
- package/cloud-runtime/standalone/apps/local/.next/static/media/9eba4caf7edd2921-s.57f6a4a3.woff2 +0 -0
- package/cloud-runtime/standalone/apps/local/.next/static/media/ab57efd000576a30-s.p.37015d44.woff2 +0 -0
- package/cloud-runtime/standalone/apps/local/.next/static/media/b8d1f0a88dfecec3-s.cf53ec14.woff2 +0 -0
- package/cloud-runtime/standalone/apps/local/.next/static/media/f285987c35230861-s.b3721d2b.woff2 +0 -0
- package/cloud-runtime/standalone/apps/local/.next/static/media/f6752bd2263820da-s.95b8f539.woff2 +0 -0
- package/cloud-runtime/standalone/apps/local/.next/static/media/fa39153a3fc630ba-s.bff0868b.woff2 +0 -0
- package/cloud-runtime/standalone/apps/local/app/api/git/diff/route.ts +54 -0
- package/cloud-runtime/standalone/apps/local/app/api/git/repos/route.ts +47 -0
- package/cloud-runtime/standalone/apps/local/app/api/git/workspaces/refresh/route.ts +52 -0
- package/cloud-runtime/standalone/apps/local/app/api/git/workspaces/rescan/route.ts +23 -0
- package/cloud-runtime/standalone/apps/local/app/api/git/workspaces/route.ts +46 -0
- package/cloud-runtime/standalone/apps/local/app/api/github/prs/[id]/route.ts +28 -0
- package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/route.ts +4 -1
- package/cloud-runtime/standalone/apps/local/app/api/projects/payload.ts +23 -9
- package/cloud-runtime/standalone/apps/local/app/api/projects/route.ts +4 -1
- package/cloud-runtime/standalone/apps/local/app/layout.tsx +14 -2
- package/cloud-runtime/standalone/apps/local/app/page.tsx +2 -2
- package/cloud-runtime/standalone/apps/local/app/projects/[slug]/page.tsx +1 -1
- package/cloud-runtime/standalone/apps/local/app/projects/[slug]/prs/[prId]/page.tsx +13 -0
- package/cloud-runtime/standalone/apps/local/app/projects/[slug]/prs/page.tsx +5 -4
- package/cloud-runtime/standalone/apps/local/app/projects/page.tsx +7 -3
- package/cloud-runtime/standalone/apps/local/components/ProjectModal.tsx +111 -91
- package/cloud-runtime/standalone/apps/local/components/TrackerBoard.tsx +2 -2
- package/cloud-runtime/standalone/apps/local/components/project-repo-validation.ts +65 -0
- package/cloud-runtime/standalone/apps/local/components/projects/FoldersView.tsx +27 -9
- package/cloud-runtime/standalone/apps/local/components/projects/RepoPathCombobox.tsx +301 -0
- package/cloud-runtime/standalone/apps/local/components/prs/review/AgentChip.tsx +61 -0
- package/cloud-runtime/standalone/apps/local/components/prs/review/CommitRail.tsx +149 -0
- package/cloud-runtime/standalone/apps/local/components/prs/review/DiffPane.tsx +294 -0
- package/cloud-runtime/standalone/apps/local/components/prs/review/FilesPane.tsx +216 -0
- package/cloud-runtime/standalone/apps/local/components/prs/review/PrReviewView.tsx +68 -0
- package/cloud-runtime/standalone/apps/local/components/prs/review/ReviewLayout.tsx +148 -0
- package/cloud-runtime/standalone/apps/local/components/prs/review/StatusBar.tsx +53 -0
- package/cloud-runtime/standalone/apps/local/components/prs/review/TopBar.tsx +137 -0
- package/cloud-runtime/standalone/apps/local/components/prs/review/review.module.css +112 -0
- package/cloud-runtime/standalone/apps/local/components/setup/McpSetupStep.tsx +1 -1
- package/cloud-runtime/standalone/apps/local/components/setup/ProviderStep.tsx +2 -2
- package/cloud-runtime/standalone/apps/local/components/thread/WorkspaceSidebar.tsx +6 -2
- package/cloud-runtime/standalone/apps/local/components/tracker/LinkedPrsSection.tsx +4 -3
- package/cloud-runtime/standalone/apps/local/components/tracker/TicketPanel.tsx +111 -25
- package/cloud-runtime/standalone/apps/local/components/tracker/TicketWorkspaceView.tsx +472 -0
- package/cloud-runtime/standalone/apps/local/components/tracker/WorkspacePicker.tsx +338 -0
- package/cloud-runtime/standalone/apps/local/components/tracking/TrackerSetup.tsx +2 -2
- package/cloud-runtime/standalone/apps/local/hooks/useProviders.ts +1 -0
- package/cloud-runtime/standalone/apps/local/lib/cli-runner.ts +20 -0
- package/cloud-runtime/standalone/apps/local/lib/diff-parser.ts +56 -0
- package/cloud-runtime/standalone/apps/local/lib/gh-pr-cli.ts +198 -0
- package/cloud-runtime/standalone/apps/local/lib/git-diff-cli.ts +232 -0
- package/cloud-runtime/standalone/apps/local/lib/git-repo-index.ts +144 -0
- package/cloud-runtime/standalone/apps/local/lib/git-workspaces.ts +187 -0
- package/cloud-runtime/standalone/apps/local/lib/provider-clis.ts +12 -1
- package/cloud-runtime/standalone/apps/local/lib/repo-suggestions.ts +104 -0
- package/cloud-runtime/standalone/apps/local/lib/stream-multiplexer.ts +1 -0
- package/cloud-runtime/standalone/apps/local/lib/types.ts +1 -1
- package/cloud-runtime/standalone/apps/local/server.ts +14 -0
- package/cloud-runtime/standalone/apps/local/src/graph/work-dispatcher.ts +1 -0
- package/cloud-runtime/standalone/apps/local/state/windowState.ts +20 -0
- package/cloud-runtime/standalone/apps/local/worker/index.js +23 -2
- package/lib/cli/runCli.js +20 -4
- package/package.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__4ea9a658._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__6465e9c6._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__8ddbf4ca._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__5187dece._.js +0 -15
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__636799fb._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__d08d7899._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__e02a457c._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__e3a1fef0._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_16eaf7ae._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_620cb123._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_ae1a134f._.js +0 -7
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0d22a723b9b96e65.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/114ea1bfd6907330.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/1585dd5f9ec4866a.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/1bc8cc9cbb99c1ed.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/2473c16c0c2f6b5f.css +0 -2
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/2586c0baa16e9a0d.js +0 -16
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/3fce625820bc2bd4.js +0 -16
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/67b36c70b72e0e10.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/6d8a7494a0cea7a0.css +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/90dd4ab03ab145d1.js +0 -16
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/aa3029ae0b62f930.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/c352706a0ad7e35d.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/c5436b2b7e8f0ca9.js +0 -16
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/cf33cb29946990e3.js +0 -16
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/e3bdd1e0f385114e.js +0 -1
- /package/cloud-runtime/standalone/apps/local/.next/static/{EGpM0P8xAEWKkoW-3Ib69 → 5TAcMQcrkt4mBnsqrfw6B}/_buildManifest.js +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/static/{EGpM0P8xAEWKkoW-3Ib69 → 5TAcMQcrkt4mBnsqrfw6B}/_clientMiddlewareManifest.json +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/static/{EGpM0P8xAEWKkoW-3Ib69 → 5TAcMQcrkt4mBnsqrfw6B}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,558201,e=>{"use strict";let t=(0,e.i(363732).default)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]);e.s(["Terminal",()=>t],558201)},906724,595807,e=>{"use strict";let t=(0,e.i(363732).default)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);e.s(["default",()=>t],595807),e.s(["Loader2",()=>t],906724)},529471,e=>{"use strict";let t=(0,e.i(363732).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);e.s(["Check",()=>t],529471)},363732,e=>{"use strict";var t=e.i(935851);let a=(...e)=>e.filter((e,t,a)=>!!e&&""!==e.trim()&&a.indexOf(e)===t).join(" ").trim(),r=e=>{let t=e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,a)=>a?a.toUpperCase():t.toLowerCase());return t.charAt(0).toUpperCase()+t.slice(1)};var s={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let l=(0,t.forwardRef)(({color:e="currentColor",size:r=24,strokeWidth:l=2,absoluteStrokeWidth:i,className:n="",children:d,iconNode:o,...c},u)=>(0,t.createElement)("svg",{ref:u,...s,width:r,height:r,stroke:e,strokeWidth:i?24*Number(l)/Number(r):l,className:a("lucide",n),...!d&&!(e=>{for(let t in e)if(t.startsWith("aria-")||"role"===t||"title"===t)return!0;return!1})(c)&&{"aria-hidden":"true"},...c},[...o.map(([e,a])=>(0,t.createElement)(e,a)),...Array.isArray(d)?d:[d]])),i=(e,s)=>{let i=(0,t.forwardRef)(({className:i,...n},d)=>(0,t.createElement)(l,{ref:d,iconNode:s,className:a(`lucide-${r(e).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${e}`,i),...n}));return i.displayName=r(e),i};e.s(["default",()=>i],363732)},506420,(e,t,a)=>{t.exports=e.r(27944)},498027,e=>{"use strict";let t=(0,e.i(363732).default)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);e.s(["ChevronDown",()=>t],498027)},19035,e=>{"use strict";let t=(0,e.i(363732).default)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);e.s(["Copy",()=>t],19035)},245110,e=>{"use strict";let t=(0,e.i(363732).default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);e.s(["ExternalLink",()=>t],245110)},211464,e=>{"use strict";let t=(0,e.i(363732).default)("circle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);e.s(["Circle",()=>t],211464)},318634,e=>{"use strict";var t=e.i(762281),a=e.i(935851);function r(e){return null===e.installed?"checking":e.installed?!e.authenticated&&e.authCmd?"needs-auth":"ready":"not-installed"}let s=[{id:"claude",label:"Claude Code",bin:"claude",description:"Recommended for the fastest AGX setup.",installCmd:"npm install -g @anthropic-ai/claude-code",docsUrl:"https://docs.anthropic.com/en/docs/claude-code/quickstart",recommended:!0,statusLabel:"Installed",authCheck:{cmd:'claude -p "say yes" 2>/dev/null',timeout:15e3},authCmd:{cmd:"claude",description:"Opens browser for Anthropic login"}},{id:"codex",label:"Codex",bin:"codex",description:"OpenAI's terminal coding agent.",installCmd:"npm install -g @openai/codex",docsUrl:"https://github.com/openai/codex",statusLabel:"Installed",authCheck:{cmd:"codex --version 2>/dev/null",timeout:5e3},authCmd:{cmd:"codex login --device-auth",description:"Device auth flow for OpenAI"}},{id:"gemini",label:"Gemini CLI",bin:"gemini",description:"Google's CLI for Gemini workflows.",installCmd:"npm install -g @google/gemini-cli",docsUrl:"https://github.com/google-gemini/gemini-cli",statusLabel:"Installed",authCheck:{cmd:'echo "hi" | gemini 2>/dev/null',timeout:15e3},authCmd:{cmd:"gemini",description:"Opens browser for Google login"}},{id:"ollama",label:"Ollama",bin:"ollama",description:"Run local models on your machine.",installCmd:"curl -fsSL https://ollama.com/install.sh | sh",docsUrl:"https://ollama.com/download",statusLabel:"Installed",authCheck:{cmd:"ollama list 2>/dev/null",timeout:5e3}},{id:"kimi",label:"Kimi Code",bin:"kimi",description:"Moonshot's Kimi Code CLI.",installCmd:"npm install -g @moonshot/kimi-code",docsUrl:"https://www.kimi.com/code/docs/en/kimi-code-cli/core-operations.html",statusLabel:"Installed",authCheck:{cmd:"kimi --version 2>/dev/null",timeout:5e3},authCmd:{cmd:"kimi",description:"Opens Kimi login flow"}},{id:"zai",label:"Z.AI",bin:"claude",description:"Use the Claude CLI with your Z.AI API key.",installCmd:"npm install -g @anthropic-ai/claude-code",docsUrl:"https://z.ai/",installNote:"Requires Claude Code plus a configured Z.AI API key.",statusLabel:"Via Claude CLI",authCheck:{cmd:'test -n "$ANTHROPIC_API_KEY"',timeout:5e3},authCmd:{cmd:"export ANTHROPIC_API_KEY=<your-key>",description:"Set your Z.AI API key"}}].map(e=>({id:e.id,name:e.label,description:e.description,installCmd:e.installCmd,docsUrl:e.docsUrl,installNote:e.installNote,recommended:e.recommended,authCmd:e.authCmd}));var l=e.i(506420),i=e.i(529471),n=e.i(211464),d=e.i(19035),o=e.i(498027),c=e.i(558201),u=e.i(906724);function m({currentStep:e,totalSteps:a}){return(0,t.jsx)("div",{className:"flex items-center gap-0",role:"progressbar","aria-valuenow":e,"aria-valuemin":1,"aria-valuemax":a,"aria-label":`Step ${e} of ${a}`,children:Array.from({length:a},(a,r)=>{let s=r+1,l=s===e,i=s<e;return(0,t.jsxs)("div",{className:"flex items-center",children:[r>0&&(0,t.jsx)("div",{className:`w-8 h-[2px] ${i?"bg-[var(--foreground)]":"bg-[var(--border)]"}`}),(0,t.jsx)("div",{className:`w-2.5 h-2.5 rounded-full transition-colors ${l?"bg-[var(--foreground)] ring-4 ring-[var(--foreground)]/10":i?"bg-[var(--foreground)]":"bg-[var(--border)]"}`})]},s)})})}function x({currentStep:e,totalSteps:a,children:r,footer:s,wide:l}){let i=l?"max-w-6xl":"max-w-2xl";return(0,t.jsxs)("div",{className:"h-screen w-full flex flex-col bg-[var(--background)]",children:[(0,t.jsx)("div",{className:"flex items-center justify-center pt-8 pb-4",children:(0,t.jsx)(m,{currentStep:e,totalSteps:a})}),(0,t.jsx)("div",{className:"flex-1 overflow-y-auto px-4 min-h-0",children:(0,t.jsx)("div",{className:`${i} mx-auto w-full py-6 h-full`,children:r})}),s&&(0,t.jsx)("div",{className:"border-t border-[var(--border)] bg-[var(--background)] px-4 py-4",children:(0,t.jsx)("div",{className:`${i} mx-auto w-full`,children:s})})]})}var h=e.i(539361);function p({text:e}){let[r,s]=(0,a.useState)(!1),l=(0,a.useCallback)(()=>{navigator.clipboard.writeText(e).then(()=>{s(!0),setTimeout(()=>s(!1),2e3)})},[e]);return(0,t.jsx)("button",{type:"button",onClick:l,className:"p-1.5 rounded-md hover:bg-[var(--muted)] transition-colors text-[var(--muted-foreground)] hover:text-[var(--foreground)]",title:"Copy command",children:r?(0,t.jsx)(i.Check,{className:"w-3.5 h-3.5 text-emerald-500"}):(0,t.jsx)(d.Copy,{className:"w-3.5 h-3.5"})})}function f({cli:e,onVerify:s,onRunInTerminal:l}){let d=r(e),[m,x]=(0,a.useState)("needs-auth"===d),[h,f]=(0,a.useState)(!1),[g,b]=(0,a.useState)(null),v="not-installed"===d||"needs-auth"===d,y=(0,a.useCallback)(async()=>{f(!0),b(null);try{let t=await fetch(`/api/providers/check/${e.id}`,{cache:"no-store"});if(!t.ok)return void b("Check failed");(await t.json()).authenticated?s?.(e.id):b("Not authenticated yet")}catch{b("Check failed")}finally{f(!1)}},[e.id,s]),j="not-installed"===d?e.installCmd:e.authCmd?.cmd;return(0,t.jsxs)("div",{className:"border border-[var(--card-border)] rounded-lg overflow-hidden",children:[(0,t.jsxs)("button",{type:"button",onClick:()=>v&&x(!m),className:`w-full flex items-center gap-2.5 px-3 py-2 transition-colors text-left ${v?"hover:bg-[var(--item-hover-bg)] cursor-pointer":"cursor-default"}`,children:[(0,t.jsx)("div",{className:"shrink-0",children:"checking"===d?(0,t.jsx)(n.Circle,{className:"w-3.5 h-3.5 text-[var(--muted-foreground)] animate-pulse"}):"ready"===d?(0,t.jsx)("div",{className:"w-4 h-4 rounded-full bg-emerald-100 dark:bg-emerald-900/30 flex items-center justify-center",children:(0,t.jsx)(i.Check,{className:"w-2.5 h-2.5 text-emerald-600 dark:text-emerald-400"})}):"needs-auth"===d?(0,t.jsx)("div",{className:"w-4 h-4 rounded-full bg-amber-100 dark:bg-amber-900/30 flex items-center justify-center",children:(0,t.jsx)(n.Circle,{className:"w-2.5 h-2.5 text-amber-600 dark:text-amber-400"})}):(0,t.jsx)(n.Circle,{className:"w-3.5 h-3.5 text-[var(--muted-foreground)]"})}),(0,t.jsx)("span",{className:"flex-1 min-w-0 text-[13px] font-semibold text-[var(--foreground)] truncate",children:e.name}),"ready"===d&&(0,t.jsx)("span",{className:"text-[10px] font-medium text-emerald-600 dark:text-emerald-400",children:"Ready"}),"needs-auth"===d&&(0,t.jsx)("span",{className:"text-[10px] font-medium text-amber-600 dark:text-amber-400",children:"Needs auth"}),"not-installed"===d&&e.recommended&&(0,t.jsx)("span",{className:"text-[10px] font-medium text-[var(--muted-foreground)]",children:"Recommended"}),v&&(0,t.jsx)(o.ChevronDown,{className:`w-3.5 h-3.5 text-[var(--muted-foreground)] transition-transform ${m?"rotate-180":""}`})]}),m&&v&&j&&(0,t.jsxs)("div",{className:"px-3 pb-2.5 pt-1 border-t border-[var(--card-border)] flex items-center gap-1.5",children:[(0,t.jsxs)("button",{type:"button",onClick:()=>l?.(j),className:"inline-flex items-center gap-1.5 px-2.5 py-1 text-[11px] font-medium rounded-md bg-[var(--foreground)] text-[var(--background)] hover:opacity-90 transition-colors",children:[(0,t.jsx)(c.Terminal,{className:"w-3 h-3"}),"Run"]}),"needs-auth"===d&&(0,t.jsxs)("button",{type:"button",onClick:y,disabled:h,className:"inline-flex items-center gap-1 px-2.5 py-1 text-[11px] font-medium rounded-md border border-[var(--card-border)] text-[var(--foreground)] hover:bg-[var(--secondary)] transition-colors disabled:opacity-60",children:[h&&(0,t.jsx)(u.Loader2,{className:"w-3 h-3 animate-spin"}),h?"Checking":"Verify"]}),(0,t.jsx)(p,{text:j}),g&&(0,t.jsx)("span",{className:"text-[10px] text-amber-600 dark:text-amber-400 ml-auto",children:g})]})]})}function g({clis:e,readyState:r,authenticatedCount:s,totalCount:l,onVerifySuccess:i,onNext:n}){let d="ready"===r,o=(0,a.useRef)(null),m=(0,a.useCallback)(e=>{o.current?.sendCommand(e)},[]);return(0,t.jsxs)(x,{currentStep:1,totalSteps:2,wide:!0,footer:(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)("span",{className:"text-[13px] text-[var(--muted-foreground)]",children:(0,t.jsxs)("span",{className:d?"text-emerald-600 dark:text-emerald-400":"",children:[s,"/",l," providers ready"]})}),(0,t.jsx)("button",{type:"button",onClick:n,disabled:!d,className:"inline-flex items-center gap-2 px-6 py-2.5 bg-[var(--foreground)] text-[var(--background)] text-[14px] font-semibold rounded-lg hover:opacity-90 transition-all disabled:opacity-40 disabled:cursor-not-allowed",children:"Next"})]}),children:[(0,t.jsxs)("div",{className:"text-center mb-8",children:[(0,t.jsx)("h1",{className:"text-[24px] font-bold text-[var(--foreground)] tracking-tight",children:"Connect a Provider"}),(0,t.jsxs)("p",{className:"mt-2 text-[14px] text-[var(--muted-foreground)] leading-relaxed",children:["AGX runs AI-assisted dev work across your tickets, repos, and PRs.",(0,t.jsx)("br",{}),"Connect one or more providers to power the agents that do the work."]})]}),(0,t.jsxs)("div",{className:"flex gap-6 min-h-0 items-start",children:[(0,t.jsxs)("div",{className:"w-[280px] shrink-0",children:["checking"===r&&(0,t.jsxs)("div",{className:"text-center py-8",children:[(0,t.jsx)(u.Loader2,{className:"w-6 h-6 animate-spin text-[var(--muted-foreground)] mx-auto"}),(0,t.jsx)("p",{className:"mt-3 text-[13px] text-[var(--muted-foreground)]",children:"Detecting installed providers..."})]}),"error"===r&&(0,t.jsx)("div",{className:"text-center py-8",children:(0,t.jsx)("p",{className:"text-[14px] text-[var(--muted-foreground)]",children:"Could not detect providers. Please reload."})}),("needs-setup"===r||"ready"===r)&&(0,t.jsx)("div",{className:"space-y-1.5",children:e.map(e=>(0,t.jsx)(f,{cli:e,onVerify:i,onRunInTerminal:m},e.id))})]}),(0,t.jsxs)("div",{className:"flex-1 min-w-0 h-[420px] flex flex-col rounded-xl border border-[var(--card-border)] overflow-hidden bg-[#1e1e1e]",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 border-b border-[var(--card-border)] bg-[var(--secondary)] shrink-0",children:[(0,t.jsx)(c.Terminal,{className:"w-3.5 h-3.5 text-[var(--muted-foreground)]"}),(0,t.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-wide text-[var(--muted-foreground)]",children:"Terminal"})]}),(0,t.jsx)("div",{className:"flex-1 min-h-0",children:(0,t.jsx)(h.default,{ref:o,tabId:"setup-provider"})})]})]})]})}var b=e.i(245110);let v=(0,e.i(363732).default)("plug",[["path",{d:"M12 22v-5",key:"1ega77"}],["path",{d:"M15 8V2",key:"18g5xt"}],["path",{d:"M17 8a1 1 0 0 1 1 1v4a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V9a1 1 0 0 1 1-1z",key:"1xoxul"}],["path",{d:"M9 8V2",key:"14iosj"}]]),y=[{id:"linear",name:"Linear",description:"So your Linear tickets show up in AGX and agents can move them through to a PR.",docsUrl:"https://linear.app/docs/mcp"}],j=[{id:"claude",label:"Claude Code",launchCmd:"claude"},{id:"codex",label:"Codex",launchCmd:"codex"},{id:"gemini",label:"Gemini CLI",launchCmd:"gemini"}];function k({onFinish:e,onBack:r}){let[s,l]=(0,a.useState)(!0),[n,d]=(0,a.useState)({}),[o,m]=(0,a.useState)({}),[p,f]=(0,a.useState)(null),[g,k]=(0,a.useState)(null),C=(0,a.useRef)(null),N=(0,a.useCallback)(e=>{C.current?.sendCommand(e)},[]),w=(0,a.useCallback)(async()=>{try{let[e,t]=await Promise.all([fetch("/api/linear/status"),fetch("/api/linear/mcp-setup")]),a=await e.json(),r=await t.json();d(a.clis??{}),m(r.configured??{})}catch{}finally{l(!1)}},[]);(0,a.useEffect)(()=>{w()},[w]);let L=(0,a.useCallback)(async e=>{f(e),k(null);try{let t=await fetch("/api/linear/mcp-setup",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cli:e})});if(t.ok)await w();else{let e=await t.json().catch(()=>({}));k(e.error||"Failed to configure MCP")}}catch{k("Failed to configure MCP")}finally{f(null)}},[w]),I=j.filter(e=>n[e.id]),A=I.some(e=>o[e.id]);return(0,t.jsxs)(x,{currentStep:2,totalSteps:2,wide:!0,footer:(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)("button",{type:"button",onClick:r,className:"text-[14px] text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",children:"Back"}),(0,t.jsx)("button",{type:"button",onClick:e,className:"inline-flex items-center gap-2 px-6 py-2.5 bg-[var(--foreground)] text-[var(--background)] text-[14px] font-semibold rounded-lg hover:opacity-90 transition-all",children:A?"Finish":"Skip"})]}),children:[(0,t.jsxs)("div",{className:"text-center mb-8",children:[(0,t.jsx)("h1",{className:"text-[24px] font-bold text-[var(--foreground)] tracking-tight",children:"Configure MCP Servers"}),(0,t.jsx)("p",{className:"mt-2 text-[14px] text-[var(--muted-foreground)] leading-relaxed",children:"MCP servers let your agents interact with external tools. After registering a server below, launch your CLI in the terminal to complete the OAuth login."})]}),(0,t.jsxs)("div",{className:"flex gap-6 min-h-0 items-start",children:[(0,t.jsx)("div",{className:"w-[380px] shrink-0 space-y-6",children:s?(0,t.jsxs)("div",{className:"text-center py-8",children:[(0,t.jsx)(u.Loader2,{className:"w-6 h-6 animate-spin text-[var(--muted-foreground)] mx-auto"}),(0,t.jsx)("p",{className:"mt-3 text-[13px] text-[var(--muted-foreground)]",children:"Checking MCP configuration..."})]}):(0,t.jsxs)(t.Fragment,{children:[y.map(e=>(0,t.jsxs)("div",{className:"border border-[var(--card-border)] rounded-lg overflow-hidden",children:[(0,t.jsxs)("div",{className:"px-4 py-3 flex items-center gap-3",children:[(0,t.jsx)("div",{className:"w-8 h-8 rounded-lg bg-[var(--secondary)] flex items-center justify-center",children:(0,t.jsx)(v,{className:"w-4 h-4 text-[var(--foreground)]"})}),(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-[14px] font-semibold text-[var(--foreground)]",children:e.name}),A&&(0,t.jsx)("span",{className:"text-[11px] font-medium text-emerald-600 dark:text-emerald-400 bg-emerald-50 dark:bg-emerald-900/20 px-1.5 py-0.5 rounded",children:"Registered"})]}),(0,t.jsx)("p",{className:"text-[12px] text-[var(--muted-foreground)]",children:e.description})]})]}),(0,t.jsxs)("div",{className:"border-t border-[var(--card-border)] px-4 py-3 space-y-2",children:[(0,t.jsx)("p",{className:"text-[11px] font-semibold uppercase tracking-wide text-[var(--muted-foreground)] mb-2",children:"Register & authenticate per CLI"}),j.map(e=>{let a=n[e.id],r=o[e.id],s=p===e.id;return(0,t.jsxs)("div",{className:`flex items-center justify-between rounded-md border border-[var(--card-border)] px-3 py-2.5 ${!a?"opacity-40":""}`,children:[(0,t.jsx)("span",{className:"text-[13px] text-[var(--foreground)]",children:e.label}),a?r?(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)("span",{className:"flex items-center gap-1 text-[11px] text-emerald-600 dark:text-emerald-400",children:[(0,t.jsx)(i.Check,{className:"w-3.5 h-3.5"}),"Registered"]}),(0,t.jsx)("button",{type:"button",onClick:()=>N(e.launchCmd),className:"inline-flex items-center gap-1.5 px-2.5 py-1 text-[11px] font-medium rounded-md border border-[var(--card-border)] hover:bg-[var(--secondary)] transition-colors",title:`Launch ${e.label} to authenticate`,children:"Launch & authenticate"})]}):(0,t.jsx)("button",{type:"button",onClick:()=>L(e.id),disabled:s,className:"inline-flex items-center gap-1.5 px-3 py-1 text-[12px] font-medium rounded-md border border-[var(--card-border)] hover:bg-[var(--secondary)] transition-colors disabled:opacity-50",children:s?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(u.Loader2,{className:"w-3 h-3 animate-spin"}),"Registering..."]}):"Register"}):(0,t.jsx)("span",{className:"text-[11px] text-[var(--muted-foreground)]",children:"Not installed"})]},e.id)}),g&&(0,t.jsx)("p",{className:"text-[12px] text-red-500 dark:text-red-400 mt-1",children:g})]}),(0,t.jsx)("div",{className:"border-t border-[var(--card-border)] px-4 py-2.5",children:(0,t.jsxs)("a",{href:e.docsUrl,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1 text-[12px] text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",children:["Learn more about ",e.name," MCP",(0,t.jsx)(b.ExternalLink,{className:"w-3 h-3"})]})})]},e.id)),0===I.length&&(0,t.jsx)("div",{className:"text-center py-4",children:(0,t.jsx)("p",{className:"text-[13px] text-[var(--muted-foreground)]",children:"No CLI providers detected. Go back and install a provider first, or skip this step."})}),(0,t.jsxs)("p",{className:"text-[11px] leading-relaxed text-[var(--muted-foreground)]",children:["Registering writes the MCP server into the CLI config. You still need to launch the CLI (right) and complete the interactive OAuth flow (usually ",(0,t.jsx)("code",{className:"text-[var(--foreground)]",children:"/mcp"}),")."]})]})}),(0,t.jsxs)("div",{className:"flex-1 min-w-0 h-[500px] flex flex-col rounded-xl border border-[var(--card-border)] overflow-hidden bg-[#1e1e1e]",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 border-b border-[var(--card-border)] bg-[var(--secondary)] shrink-0",children:[(0,t.jsx)(c.Terminal,{className:"w-3.5 h-3.5 text-[var(--muted-foreground)]"}),(0,t.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-wide text-[var(--muted-foreground)]",children:"Terminal"})]}),(0,t.jsx)("div",{className:"flex-1 min-h-0",children:(0,t.jsx)(h.default,{ref:C,tabId:"setup-mcp"})})]})]})]})}function C(){let e=function(){let[e,t]=(0,a.useState)("checking"),[l,i]=(0,a.useState)(s.map(e=>({...e,installed:null,authenticated:null})));(0,a.useEffect)(()=>{let e=!1;return(async()=>{try{let a=await fetch("/api/providers",{cache:"no-store"});if(e)return;if(!a.ok)return void t("error");let l=await a.json(),n=Array.isArray(l?.providers)?l.providers:[],d=s.map(e=>{let t=n.find(t=>t?.id===e.id);return{...e,installed:t?.installed??!1,authenticated:t?.authenticated??!1}});e||(i(d),t(d.some(e=>"ready"===r(e))?"ready":"needs-setup"))}catch{e||t("error")}})(),()=>{e=!0}},[]);let n=(0,a.useCallback)(e=>{i(a=>{let s=a.map(t=>t.id===e?{...t,authenticated:!0}:t);return s.some(e=>"ready"===r(e))&&t("ready"),s})},[]),d=(0,a.useMemo)(()=>l.filter(e=>"needs-auth"===r(e)).map(e=>e.id),[l]),o=d.join(",");(0,a.useEffect)(()=>{if("checking"===e||0===d.length)return;let t=new AbortController,a=new Map;return d.forEach(function e(r){if(t.signal.aborted)return;let s=setTimeout(async()=>{if(!t.signal.aborted){try{let e=await fetch(`/api/providers/check/${r}`,{cache:"no-store",signal:t.signal});if(t.signal.aborted)return;if(e.ok){let t=await e.json();if(t.authenticated)return void n(r);if(!t.installed)return void i(e=>e.map(e=>e.id===r?{...e,installed:!1,authenticated:!1}:e))}}catch{if(t.signal.aborted)return}t.signal.aborted||e(r)}},5e3);a.set(r,s)}),()=>{t.abort(),a.forEach(e=>clearTimeout(e))}},[e,o,n]);let c=l.filter(e=>"ready"===r(e)).length;return{readyState:e,clis:l,authenticatedCount:c,totalCount:l.length,handleVerifySuccess:n}}(),i=function(){let e=(0,l.useRouter)(),[t,r]=(0,a.useState)(1),s=(0,a.useCallback)(()=>{r(e=>Math.min(e+1,2))},[]);return{step:t,goNext:s,goBack:(0,a.useCallback)(()=>{r(e=>Math.max(e-1,1))},[]),finish:(0,a.useCallback)(()=>{e.push("/")},[e])}}();return(0,t.jsxs)(t.Fragment,{children:[1===i.step&&(0,t.jsx)(g,{clis:e.clis,readyState:e.readyState,authenticatedCount:e.authenticatedCount,totalCount:e.totalCount,onVerifySuccess:e.handleVerifySuccess,onNext:i.goNext}),2===i.step&&(0,t.jsx)(k,{onBack:i.goBack,onFinish:i.finish})]})}e.s(["default",()=>C],318634)}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,580873,e=>{"use strict";let t=(0,e.i(363732).default)("clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6l4 2",key:"mmk7yg"}]]);e.s(["Clock",()=>t],580873)},417442,e=>{"use strict";let t=(0,e.i(363732).default)("arrow-right",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);e.s(["ArrowRight",()=>t],417442)},807087,e=>{"use strict";let t=(0,e.i(363732).default)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);e.s(["CheckCircle2",()=>t],807087)},287472,e=>{"use strict";var t=e.i(935851);let r=new Map;function s(e){let t=r.get(e);return t?Date.now()-t.ts>3e5?(r.delete(e),null):t:null}function a(e){r.delete(e)}function n(e,n){let[i,l]=(0,t.useState)(!1),[o,c]=(0,t.useState)(!0),[d,u]=(0,t.useState)(null),[m,p]=(0,t.useState)({claude:!1,codex:!1,gemini:!1}),[h,x]=(0,t.useState)({}),g=(0,t.useRef)(null),f=`/api/trackers/${encodeURIComponent(e)}`,v=`${e}:${n}`,j=(0,t.useCallback)(async()=>{try{let e=await fetch(`${f}/mcp-setup`),t=await e.json();x(t.configured??{})}catch{}},[f]),b=(0,t.useCallback)(async()=>{if(!n)return l(!1),!1;let e=s(v);if(e)return l(e.connected),u(e.user),p(e.clis),x(e.mcpConfigured),c(!1),e.connected;try{var t;let e=`?projectId=${encodeURIComponent(n)}`,[s,a]=await Promise.all([fetch(`${f}/status${e}`),fetch(`${f}/mcp-setup`)]),i=await s.json(),o=await a.json(),c=i.clis??{claude:!1,codex:!1,gemini:!1},d=o.configured??{},m=i.user??null;return l(i.connected),u(m),p(c),x(d),t={connected:i.connected,user:m,clis:c,mcpConfigured:d},r.set(v,{...t,ts:Date.now()}),i.connected}catch{return l(!1),!1}finally{c(!1)}},[n,f,v]);(0,t.useEffect)(()=>{let e=s(v);e?(l(e.connected),u(e.user),p(e.clis),x(e.mcpConfigured),c(!1)):(c(!0),l(!1),u(null))},[e,n,v]),(0,t.useEffect)(()=>(b(),()=>{g.current&&clearInterval(g.current)}),[b]);let y=(0,t.useCallback)(()=>{n&&(a(v),window.open(`${f}/auth?projectId=${encodeURIComponent(n)}`,"_blank","noopener"),g.current&&clearInterval(g.current),g.current=setInterval(async()=>{a(v),await b()&&g.current&&(clearInterval(g.current),g.current=null)},2e3))},[n,f,v,b]),w=(0,t.useCallback)(async e=>{if(!n)return{ok:!1,error:"Missing projectId"};try{let t=await fetch(`${f}/token`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectId:n,accessToken:e})});if(!t.ok){let e=await t.json().catch(()=>({}));return{ok:!1,error:e.error||"Failed to save token"}}return a(v),await b(),{ok:!0}}catch{return{ok:!1,error:"Failed to connect"}}},[n,f,v,b]);return{connected:i,loading:o,user:d,clis:m,mcpConfigured:h,connect:y,connectWithKey:w,disconnect:(0,t.useCallback)(async()=>{n&&(a(v),await fetch(`${f}/status?projectId=${encodeURIComponent(n)}`,{method:"DELETE"}),"github"===e&&Object.keys(sessionStorage).filter(e=>e.startsWith("github_")).forEach(e=>sessionStorage.removeItem(e)),l(!1),u(null))},[n,f,v,e]),configureMcp:(0,t.useCallback)(async e=>{try{let t=await fetch(`${f}/mcp-setup`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cli:e})});if(!t.ok){let e=await t.json().catch(()=>({}));return{ok:!1,error:e.error||"Failed to configure MCP"}}return await j(),{ok:!0}}catch{return{ok:!1,error:"Failed to configure MCP"}}},[f,j]),refresh:b}}e.s(["useTrackerConnection",()=>n])},378562,e=>{"use strict";var t=e.i(762281),r=e.i(307241);function s({icon:e,title:s,description:a,ctaLabel:n,ctaHref:i}){return(0,t.jsx)("div",{className:"h-full w-full flex items-center justify-center bg-[var(--background)] px-6 py-12",children:(0,t.jsxs)("div",{className:"max-w-md w-full text-center space-y-6",children:[(0,t.jsx)("div",{className:"mx-auto w-14 h-14 rounded-2xl bg-[var(--secondary)] flex items-center justify-center",children:e}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("h1",{className:"text-[22px] font-bold text-[var(--foreground)] tracking-tight",children:s}),(0,t.jsx)("p",{className:"text-[14px] text-[var(--muted-foreground)] leading-relaxed",children:a})]}),(0,t.jsx)(r.default,{href:i,className:"inline-flex items-center gap-2 px-6 py-2.5 bg-[var(--foreground)] text-[var(--background)] text-[14px] font-semibold rounded-lg hover:opacity-90 transition-all",children:n})]})})}e.s(["EmptyStateCard",()=>s])},116e3,11354,370326,e=>{"use strict";var t=e.i(935851);let r=["repositories","docs","config","scripts"],s=[{id:"repositories",label:"Repositories",icon:"GitBranch"},{id:"docs",label:"Docs",icon:"FileText"},{id:"config",label:"Config",icon:"Settings"},{id:"scripts",label:"Scripts",icon:"Terminal"}],a=s.map(e=>({...e})),n=new Map(s.map(e=>[e.id,e]));function i(e){let t=n.get(e);return t?{...t}:null}function l(e){let t=e.trim(),r=t?i(t):null;return r?r.label:t?t.replace(/[_-]+/g," ").replace(/\s+/g," ").replace(/\b\w/g,e=>e.toUpperCase()):"Custom"}function o(e){return[...e].sort((e,t)=>e.sort_order!==t.sort_order?e.sort_order-t.sort_order:e.name.localeCompare(t.name))}function c(e){return Object.values(e).reduce((e,t)=>e+t.length,0)}function d(e,t=[]){return[...a.map(t=>{let r=o(e[t.id]??[]);return{id:t.id,label:t.label,entries:r,isPreset:!0,isEmpty:0===r.length}}),...[...new Set([...Object.keys(e),...t])].map(e=>e.trim()).filter(e=>e.length>0).filter(e=>!r.includes(e)).sort((e,t)=>l(e).localeCompare(l(t))).map(t=>{let r=o(e[t]??[]);return{id:t,label:l(t),entries:r,isPreset:!1,isEmpty:0===r.length}})]}async function u(e,t){let r=await e.json().catch(()=>({}));return"string"==typeof r.error?r.error:t}function m(e){let[r,s]=(0,t.useState)({}),[a,n]=(0,t.useState)(!1),[i,l]=(0,t.useState)(null),o=(0,t.useCallback)(async()=>{if(!e){s({}),n(!1),l(null);return}n(!0);try{let t=await fetch(`/api/projects/${e}/workspace`);if(!t.ok)throw Error(await u(t,"Failed to fetch workspace map"));let r=await t.json();s(r.workspace??{}),l(null)}catch(e){l(e instanceof Error?e:Error("Unknown error"))}finally{n(!1)}},[e]);(0,t.useEffect)(()=>{o()},[o]);let d=(0,t.useCallback)(async t=>{let r=await fetch(`/api/projects/${e}/workspace`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!r.ok)throw Error(await u(r,"Failed to create workspace entry"));let s=await r.json();return await o(),s.entry},[o,e]),m=(0,t.useCallback)(async(t,r)=>{let s=await fetch(`/api/projects/${e}/workspace/${t}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)});if(!s.ok)throw Error(await u(s,"Failed to update workspace entry"));let a=await s.json();return await o(),a.entry},[o,e]),p=(0,t.useCallback)(async t=>{let r=await fetch(`/api/projects/${e}/workspace/${t}`,{method:"DELETE"});if(!r.ok)throw Error(await u(r,"Failed to delete workspace entry"));await o()},[o,e]);return{workspace:r,entryCount:c(r),isLoading:a,error:i,refetch:o,createEntry:d,updateEntry:m,deleteEntry:p}}e.s(["DEFAULT_WORKSPACE_CATEGORIES",0,a,"WORKSPACE_CATEGORY_IDS",0,r,"getWorkspaceCategory",()=>i],11354),e.s(["buildWorkspaceCategoryGroups",()=>d,"countWorkspaceEntries",()=>c],370326),e.s(["useProjectWorkspace",()=>m],116e3)},768834,e=>{"use strict";var t=e.i(935851);let r=e=>{let t,r=new Set,s=(e,s)=>{let a="function"==typeof e?e(t):e;if(!Object.is(a,t)){let e=t;t=(null!=s?s:"object"!=typeof a||null===a)?a:Object.assign({},t,a),r.forEach(r=>r(t,e))}},a=()=>t,n={setState:s,getState:a,getInitialState:()=>i,subscribe:e=>(r.add(e),()=>r.delete(e))},i=t=e(s,a,n);return n},s=e=>{let s=e?r(e):r,a=e=>(function(e,r=e=>e){let s=t.default.useSyncExternalStore(e.subscribe,t.default.useCallback(()=>r(e.getState()),[e,r]),t.default.useCallback(()=>r(e.getInitialState()),[e,r]));return t.default.useDebugValue(s),s})(s,e);return Object.assign(a,s),a},a=e=>e?s(e):s;e.s(["create",()=>a],768834)},50778,e=>{"use strict";let t,r;var s=e.i(768834);let a=e=>t=>{try{let r=e(t);if(r instanceof Promise)return r;return{then:e=>a(e)(r),catch(e){return this}}}catch(e){return{then(e){return this},catch:t=>a(t)(e)}}};function n(e){let t=e.map(e=>{let t=e.title.match(/^Terminal (\d+)$/);return t?Number(t[1]):0}).filter(e=>e>0),r=t.length>0?Math.max(...t)+1:1;return`Terminal ${r}`}function i(e,t,r){return Math.max(t,Math.min(r,e))}function l(e){let t=e.map(e=>{let t=e.title.match(/^Terminal (\d+)$/);return t?Number(t[1]):0}).filter(e=>e>0),r=t.length>0?Math.max(...t)+1:1;return`Terminal ${r}`}function o(e,t,r=crypto.randomUUID()){return{id:r,title:l(e),cwd:t,createdAt:Date.now(),status:"connecting",colSpan:1,rowSpan:1}}function c(e,t,r,s,a){return{id:e?.id||t,title:"string"==typeof e?.title&&e.title.trim().length>0?e.title:l([]),cwd:e?.cwd??s,createdAt:e?.createdAt??r,sessionId:void 0,status:"connecting",command:e?.command??a,colSpan:i(e?.colSpan??1,1,2),rowSpan:i(e?.rowSpan??1,1,4)}}function d(e=[]){return e.map((e,t)=>{let r="number"==typeof e.createdAt?e.createdAt:Date.now()+t,s=[];if(Array.isArray(e.terminals)&&e.terminals.length>0)for(let[t,a]of e.terminals.entries()){let n=c(a,`${e.id||crypto.randomUUID()}-terminal-${t+1}`,"number"==typeof a?.createdAt?a.createdAt:r);a?.title&&0!==a.title.trim().length||(n.title=l(s)),s.push(n)}else{let t=c(e,String(e.id||crypto.randomUUID()),r,e.cwd,e.command);e.title&&0!==e.title.trim().length||(t.title=l(s)),s.push(t)}return{id:String(e.id||crypto.randomUUID()),title:"string"==typeof e.title?e.title:n([]),createdAt:r,terminals:s}})}function u(e,t,r){let s=r(e[t]??[]);return{...e,[t]:s}}let m=(0,s.create)()((t=(e,t)=>({sessions:{},getProjectSessions:e=>t().sessions[e]??[],createSession(r,s){let a=crypto.randomUUID(),i={id:a,title:n(t().sessions[r]??[]),createdAt:Date.now(),terminals:[o([],s)]};return e(e=>({sessions:u(e.sessions,r,e=>[...e,i])})),a},closeSession(t,r){e(e=>({sessions:u(e.sessions,t,e=>e.filter(e=>e.id!==r))}))},renameSession(t,r,s){e(e=>({sessions:u(e.sessions,t,e=>e.map(e=>e.id===r?{...e,title:s}:e))}))},addTerminal(t,r,s){let a=crypto.randomUUID(),n=!1;return e(e=>({sessions:u(e.sessions,t,e=>e.map(e=>e.id!==r?e:(n=!0,{...e,terminals:[...e.terminals,o(e.terminals,s,a)]})))})),n?a:null},closeTerminal(t,r,s){e(e=>({sessions:u(e.sessions,t,e=>e.map(e=>e.id!==r?e:{...e,terminals:e.terminals.filter(e=>e.id!==s)}).filter(e=>e.terminals.length>0))}))},renameTerminal(t,r,s,a){e(e=>({sessions:u(e.sessions,t,e=>e.map(e=>e.id===r?{...e,terminals:e.terminals.map(e=>e.id===s?{...e,title:a}:e)}:e))}))},updateTerminalLayout(t,r,s,a){e(e=>({sessions:u(e.sessions,t,e=>e.map(e=>e.id===r?{...e,terminals:e.terminals.map(e=>e.id===s?{...e,colSpan:i(a.colSpan??e.colSpan,1,2),rowSpan:i(a.rowSpan??e.rowSpan,1,4)}:e)}:e))}))},setTerminalSessionId(t,r,s,a){e(e=>({sessions:u(e.sessions,t,e=>e.map(e=>e.id===r?{...e,terminals:e.terminals.map(e=>e.id===s?{...e,sessionId:a}:e)}:e))}))},updateTerminalStatus(t,r,s,a){e(e=>({sessions:u(e.sessions,t,e=>e.map(e=>e.id===r?{...e,terminals:e.terminals.map(e=>e.id===s?{...e,status:a}:e)}:e))}))}}),r={name:"agx-terminal-tabs",merge(e,t){let r=e??{};return{...t,...r,sessions:function(e){if(e&&"object"==typeof e&&!Array.isArray(e)){let t={};for(let[r,s]of Object.entries(e))t[r]=d(Array.isArray(s)?s:[]);return t}return Array.isArray(e)?{__global__:d(e)}:{}}(r.sessions)}}},(e,s,n)=>{let i,l={storage:function(e,t){let r;try{r=e()}catch(e){return}return{getItem:e=>{var t;let s=e=>null===e?null:JSON.parse(e,void 0),a=null!=(t=r.getItem(e))?t:null;return a instanceof Promise?a.then(s):s(a)},setItem:(e,t)=>r.setItem(e,JSON.stringify(t,void 0)),removeItem:e=>r.removeItem(e)}}(()=>window.localStorage),partialize:e=>e,version:0,merge:(e,t)=>({...t,...e}),...r},o=!1,c=0,d=new Set,u=new Set,m=l.storage;if(!m)return t((...t)=>{console.warn(`[zustand persist middleware] Unable to update item '${l.name}', the given storage is currently unavailable.`),e(...t)},s,n);let p=()=>{let e=l.partialize({...s()});return m.setItem(l.name,{state:e,version:l.version})},h=n.setState;n.setState=(e,t)=>(h(e,t),p());let x=t((...t)=>(e(...t),p()),s,n);n.getInitialState=()=>x;let g=()=>{var t,r;if(!m)return;let n=++c;o=!1,d.forEach(e=>{var t;return e(null!=(t=s())?t:x)});let h=(null==(r=l.onRehydrateStorage)?void 0:r.call(l,null!=(t=s())?t:x))||void 0;return a(m.getItem.bind(m))(l.name).then(e=>{if(e)if("number"!=typeof e.version||e.version===l.version)return[!1,e.state];else{if(l.migrate){let t=l.migrate(e.state,e.version);return t instanceof Promise?t.then(e=>[!0,e]):[!0,t]}console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}return[!1,void 0]}).then(t=>{var r;if(n!==c)return;let[a,o]=t;if(e(i=l.merge(o,null!=(r=s())?r:x),!0),a)return p()}).then(()=>{n===c&&(null==h||h(s(),void 0),i=s(),o=!0,u.forEach(e=>e(i)))}).catch(e=>{n===c&&(null==h||h(void 0,e))})};return n.persist={setOptions:e=>{l={...l,...e},e.storage&&(m=e.storage)},clearStorage:()=>{null==m||m.removeItem(l.name)},getOptions:()=>l,rehydrate:()=>g(),hasHydrated:()=>o,onHydrate:e=>(d.add(e),()=>{d.delete(e)}),onFinishHydration:e=>(u.add(e),()=>{u.delete(e)})},l.skipHydration||g(),i||x}));e.s(["useTerminalTabsStore",0,m],50778)},317389,e=>{"use strict";var t=e.i(762281),r=e.i(935851),s=e.i(572665),a=e.i(506420),n=e.i(716436);function i({projectSlug:e,projectThreadIds:s=[]}){let i=(0,a.useRouter)(),[l,o]=(0,r.useState)([]),[c,d]=(0,r.useState)([]),u=(0,r.useCallback)(async()=>{try{let e=await fetch("/api/participants");if(!e.ok)return;let t=await e.json();d(Array.isArray(t)?t:t.participants??[])}catch{}},[]);(0,r.useEffect)(()=>{u()},[u]),(0,r.useEffect)(()=>{let t=!1,r=e.trim().toLowerCase(),a=new Set(s.map(e=>e.trim()).filter(Boolean)),n=async()=>{try{let e=await fetch("/api/processes?enrich=1");if(!e.ok||t)return;let s=await e.json();if(t)return;let n=s.filter(e=>"spawning"===e.state||"running"===e.state).filter(e=>{let t=e.projectSlug.trim().toLowerCase();return!!t&&t===r||a.has(e.workspaceId)||a.has(e.threadId)}).sort((e,t)=>t.lastActivity-e.lastActivity);o(n)}catch{}};n();let i=setInterval(n,3e3);return()=>{t=!0,clearInterval(i)}},[e,s]);let m=new Map(c.map(e=>[e.id,e.name])),p=e=>m.get(e)||e.slice(0,8),h=[],x=new Map;for(let e of l){let t=x.get(e.agentId);t||(t={agentId:e.agentId,agentName:p(e.agentId),activities:[]},x.set(e.agentId,t),h.push(t)),t.activities.push({key:`${e.workspaceId}-${e.threadId}-${e.agentId}`,workspaceId:e.workspaceId,threadId:e.threadId,state:e.state,threadLabel:e.threadTitle?.trim()?e.threadTitle.trim():e.threadId?.trim()?`Thread ${e.threadId.slice(0,12)}...`:"Main thread",lastActiveLabel:function(e){let t=Math.max(0,Math.floor((Date.now()-e)/1e3));if(t<5)return"Just now";if(t<60)return`${t}s ago`;let r=Math.floor(t/60);if(r<60)return`${r}m ago`;let s=Math.floor(r/60);if(s<24)return`${s}h ago`;let a=Math.floor(s/24);return`${a}d ago`}(e.lastActivity),lastActivity:e.lastActivity,linearIssueId:e.linearIssueId,linearRunId:e.linearRunId,trackerType:e.trackerType,responseMessageId:e.responseMessageId})}if(0===h.length)return null;let g=l.length;return(0,t.jsxs)("section",{className:"col-span-full overflow-hidden rounded-2xl border border-[var(--card-border)] bg-[var(--card-bg)]",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between gap-3 border-b border-[var(--border)] px-4 py-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 text-xs uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:[(0,t.jsx)(n.Activity,{className:"h-3.5 w-3.5"}),"Working Now"]}),(0,t.jsxs)("p",{className:"mt-1 text-xs text-[var(--muted-foreground)]",children:[h.length," ",1===h.length?"agent":"agents"," active across"," ",g," ",1===g?"thread":"threads","."]})]}),(0,t.jsxs)("span",{className:"rounded-full border border-[var(--status-completed-border)] bg-[var(--status-completed-bg)] px-2.5 py-1 text-[10px] font-medium uppercase tracking-wider text-[var(--status-completed-text)]",children:[g," live ",1===g?"entry":"entries"]})]}),(0,t.jsx)("div",{className:"divide-y divide-[var(--border)]",children:h.map(r=>(0,t.jsxs)("div",{className:"px-4 py-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[(0,t.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-sm font-medium text-[var(--foreground)]",children:[(0,t.jsx)("span",{className:"h-2 w-2 rounded-full bg-emerald-400 animate-pulse"}),r.agentName]}),r.activities.length>1&&(0,t.jsxs)("span",{className:"rounded-full bg-[var(--secondary)] px-2 py-0.5 text-[10px] text-[var(--muted-foreground)]",children:[r.activities.length," threads"]})]}),(0,t.jsx)("div",{className:"space-y-1 ml-4",children:r.activities.map(r=>(0,t.jsxs)("div",{className:"mx-[-0.5rem] flex cursor-pointer items-center gap-3 rounded-lg px-2 py-1.5 text-sm transition-colors hover:bg-[var(--secondary)]",onClick:()=>i.push(function(e,t){if(t.linearIssueId&&t.linearRunId){let r=`/projects/${e}/tracking/${t.trackerType??"linear"}?issue=${encodeURIComponent(t.linearIssueId)}&run=${encodeURIComponent(t.linearRunId)}`;return t.responseMessageId?`${r}&message=${encodeURIComponent(t.responseMessageId)}`:r}let r=t.workspaceId??"",s=t.threadId??"",a="objective-chat:",n=r.startsWith(a)?r:s.startsWith(a)?s:null;if(n){let i=n.slice(a.length),l=new URLSearchParams;s&&s!==r&&l.set("session",s),t.responseMessageId&&l.set("message",t.responseMessageId);let o=l.toString();return`/projects/${e}/objectives/${encodeURIComponent(i)}${o?`?${o}`:""}`}let i="tracker-run:";if(r.startsWith(i)){let s=t.linearRunId??r.slice(i.length),a=new URLSearchParams;return t.linearIssueId&&a.set("issue",t.linearIssueId),a.set("run",s),t.responseMessageId&&a.set("message",t.responseMessageId),`/projects/${e}/tracking/${t.trackerType??"linear"}?${a.toString()}`}let l=new URLSearchParams;s&&l.set("open",s),t.responseMessageId&&l.set("message",t.responseMessageId);let o=l.toString();return`/projects/${e}/thread/${encodeURIComponent(r)}${o?`?${o}`:""}`}(e,r)),children:[(0,t.jsxs)("span",{className:"inline-flex shrink-0 items-center gap-1.5 rounded-full border border-[var(--status-completed-border)] bg-[var(--status-completed-bg)] px-2 py-0.5 text-[11px] font-medium text-[var(--status-completed-text)]",children:[(0,t.jsx)("span",{className:"h-1.5 w-1.5 rounded-full bg-emerald-400"}),"spawning"===r.state?"Starting":"Working"]}),(0,t.jsx)("span",{className:"min-w-0 flex-1 truncate text-[var(--foreground)]",children:r.threadLabel}),(0,t.jsx)("span",{className:"shrink-0 text-xs text-[var(--muted-foreground)]",children:r.lastActiveLabel})]},r.key))})]},r.agentId))})]})}var l=e.i(807087);function o({projectId:e,projectSlug:s,projectThreadIds:n=[]}){let i=(0,a.useRouter)(),[o,c]=(0,r.useState)([]),[d,u]=(0,r.useState)([]),[m,p]=(0,r.useState)([]),h=(0,r.useCallback)(async()=>{try{let e=await fetch("/api/participants");if(!e.ok)return;let t=await e.json();u(Array.isArray(t)?t:t.participants??[])}catch{}},[]),x=(0,r.useCallback)(async()=>{try{let t=await fetch(`/api/projects/${e}/teams`);if(!t.ok)return;let r=await t.json();p(Array.isArray(r)?r:[])}catch{}},[e]);(0,r.useEffect)(()=>{h(),x()},[h,x]),(0,r.useEffect)(()=>{let e=!1,t=s.trim().toLowerCase(),r=new Set(n.map(e=>e.trim()).filter(Boolean)),a=async()=>{try{let s=await fetch("/api/processes?enrich=1");if(!s.ok||e)return;let a=await s.json();if(e)return;let n=a.filter(e=>"done"===e.state).filter(e=>{let s=e.projectSlug.trim().toLowerCase();return!!s&&s===t||r.has(e.workspaceId)||r.has(e.threadId)}).sort((e,t)=>t.lastActivity-e.lastActivity).slice(0,10);c(n)}catch{}};a();let i=setInterval(a,1e4);return()=>{e=!0,clearInterval(i)}},[s,n]);let g=new Map(d.map(e=>[e.id,e.name])),f=new Map;for(let e of m)for(let t of e.agents)f.set(t.agent_id,{id:e.id,name:e.name});return 0===o.length?null:(0,t.jsxs)("section",{className:"col-span-full overflow-hidden rounded-2xl border border-[var(--card-border)] bg-[var(--card-bg)]",children:[(0,t.jsx)("div",{className:"flex items-center justify-between gap-3 border-b border-[var(--border)] px-4 py-3",children:(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 text-xs uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:[(0,t.jsx)(l.CheckCircle2,{className:"h-3.5 w-3.5"}),"Recently Completed"]}),(0,t.jsxs)("p",{className:"mt-1 text-xs text-[var(--muted-foreground)]",children:["Last ",o.length," completed"," ",1===o.length?"task":"tasks","."]})]})}),(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsxs)("table",{className:"min-w-full text-sm",children:[(0,t.jsx)("thead",{className:"bg-[var(--secondary)]",children:(0,t.jsxs)("tr",{className:"text-left text-[11px] uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:[(0,t.jsx)("th",{className:"px-4 py-3 font-medium",children:"Agent"}),(0,t.jsx)("th",{className:"px-4 py-3 font-medium",children:"Status"}),(0,t.jsx)("th",{className:"px-4 py-3 font-medium",children:"Thread"}),(0,t.jsx)("th",{className:"px-4 py-3 font-medium",children:"Last active"})]})}),(0,t.jsx)("tbody",{children:o.map(e=>{let r;return(0,t.jsxs)("tr",{className:"cursor-pointer border-t border-[var(--border)] text-[var(--foreground)] transition-colors hover:bg-[var(--secondary)]",onClick:()=>i.push(function(e,t){if(t.linearIssueId&&t.linearRunId){let r=`/projects/${e}/tracking/${t.trackerType??"linear"}?issue=${encodeURIComponent(t.linearIssueId)}&run=${encodeURIComponent(t.linearRunId)}`;return t.responseMessageId?`${r}&message=${encodeURIComponent(t.responseMessageId)}`:r}let r=t.workspaceId??"",s=t.threadId??"",a="objective-chat:",n=r.startsWith(a)?r:s.startsWith(a)?s:null;if(n){let i=n.slice(a.length),l=new URLSearchParams;s&&s!==r&&l.set("session",s),t.responseMessageId&&l.set("message",t.responseMessageId);let o=l.toString();return`/projects/${e}/objectives/${encodeURIComponent(i)}${o?`?${o}`:""}`}let i="tracker-run:";if(r.startsWith(i)){let s=t.linearRunId??r.slice(i.length),a=new URLSearchParams;return t.linearIssueId&&a.set("issue",t.linearIssueId),a.set("run",s),t.responseMessageId&&a.set("message",t.responseMessageId),`/projects/${e}/tracking/${t.trackerType??"linear"}?${a.toString()}`}let l=new URLSearchParams;s&&l.set("open",s),t.responseMessageId&&l.set("message",t.responseMessageId);let o=l.toString();return`/projects/${e}/thread/${encodeURIComponent(r)}${o?`?${o}`:""}`}(s,e)),children:[(0,t.jsx)("td",{className:"px-4 py-3 text-[var(--foreground)]",children:(r=e.agentId,g.get(r)||r.slice(0,8))}),(0,t.jsx)("td",{className:"px-4 py-3",children:(0,t.jsxs)("span",{className:"inline-flex items-center gap-1.5 rounded-full border border-[var(--border)] bg-[var(--secondary)] px-2 py-0.5 text-[11px] font-medium text-[var(--muted-foreground)]",children:[(0,t.jsx)(l.CheckCircle2,{className:"h-3 w-3"}),"Done"]})}),(0,t.jsx)("td",{className:"max-w-[24rem] px-4 py-3 text-[var(--muted-foreground)]",children:(0,t.jsx)("span",{className:"block truncate",children:e.threadTitle?.trim()?e.threadTitle.trim():e.threadId?.trim()?`Thread ${e.threadId.slice(0,12)}...`:"Main thread"})}),(0,t.jsx)("td",{className:"px-4 py-3 text-[var(--muted-foreground)]",children:function(e){let t=Math.max(0,Math.floor((Date.now()-e)/1e3));if(t<5)return"Just now";if(t<60)return`${t}s ago`;let r=Math.floor(t/60);if(r<60)return`${r}m ago`;let s=Math.floor(r/60);if(s<24)return`${s}h ago`;let a=Math.floor(s/24);return`${a}d ago`}(e.lastActivity)})]},`${e.workspaceId}-${e.threadId}-${e.agentId}`)})})]})})]})}var c=e.i(417442);function d({projectId:e,onViewAll:a}){let[n,i]=(0,r.useState)([]),[l,o]=(0,r.useState)(!0);return(0,r.useEffect)(()=>{fetch(`/api/projects/${e}/teams`).then(e=>e.ok?e.json():{teams:[]}).then(e=>i(e.teams??[])).catch(()=>i([])).finally(()=>o(!1))},[e]),(0,t.jsxs)("div",{className:"rounded-2xl border border-[var(--card-border)] bg-[var(--card-bg)] p-4",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(s.Users,{className:"h-4 w-4 text-[var(--muted-foreground)]"}),(0,t.jsx)("span",{className:"text-sm font-medium text-[var(--foreground)]",children:"Teams"}),!l&&n.length>0&&(0,t.jsx)("span",{className:"rounded-full bg-[var(--secondary)] px-2 py-0.5 text-xs text-[var(--muted-foreground)]",children:n.length})]}),a&&(0,t.jsxs)("button",{onClick:a,className:"flex items-center gap-1 text-xs text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)]",children:["View all ",(0,t.jsx)(c.ArrowRight,{className:"w-3 h-3"})]})]}),l?(0,t.jsx)("div",{className:"space-y-2",children:[1,2,3].map(e=>(0,t.jsx)("div",{className:"h-5 animate-pulse rounded bg-[var(--muted)]"},e))}):0===n.length?(0,t.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"No teams yet"}):(0,t.jsx)("div",{className:"space-y-2",children:n.slice(0,5).map(e=>(0,t.jsxs)("div",{className:"flex items-center gap-2 text-sm",children:[(0,t.jsx)(s.Users,{className:"h-4 w-4 text-[var(--muted-foreground)]"}),(0,t.jsx)("span",{className:"text-[var(--foreground)]",children:e.name}),(0,t.jsxs)("span",{className:"text-[var(--muted-foreground)]",children:[e.agents.length," agents"]})]},e.id))})]})}var u=e.i(580873);function m({projectId:e,projectSlug:s,onViewAll:n}){let i=(0,a.useRouter)(),[l,o]=(0,r.useState)([]),[d,m]=(0,r.useState)([]),[p,h]=(0,r.useState)({}),[x,g]=(0,r.useState)(!0),[f,v]=(0,r.useState)(()=>Date.now());(0,r.useEffect)(()=>{let e=window.setInterval(()=>{v(Date.now())},3e4);return()=>{window.clearInterval(e)}},[]),(0,r.useEffect)(()=>{let t=!1,r=async()=>{try{let[r,s]=await Promise.all([fetch("/api/automations"),fetch(`/api/prompt-jobs?projectId=${encodeURIComponent(e)}`)]),a=r.ok?await r.json():{automations:[]},n=s.ok?await s.json():{jobs:[]};if(t)return;let i=(a.automations??[]).filter(t=>t.projectId===e).slice(0,20),l=(n.jobs??[]).filter(t=>t.projectId===e).slice(0,20);o(i),m(l);let c=Object.fromEntries(await Promise.all(l.map(async e=>{try{let t=await fetch(`/api/prompt-jobs/${encodeURIComponent(e.id)}/runs`);if(!t.ok)return[e.id,null];let r=((await t.json()).runs??[])[0]??null;return[e.id,r]}catch{return[e.id,null]}})));if(t)return;h(c)}catch{if(t)return;o([]),m([]),h({})}finally{t||g(!1)}};return g(!0),r(),()=>{t=!0}},[e]);let j=e=>{if(!s||"prompt"!==e.kind)return;let t=new URLSearchParams({job:e.jobId});e.runId&&t.set("run",e.runId),i.push(`/projects/${s}/automations?${t.toString()}`)},b=[...d.filter(e=>{let t=p[e.id];return t?.status==="queued"||t?.status==="running"}).map(e=>({id:`prompt:${e.id}`,title:e.name,kind:"prompt",jobId:e.id,runId:p[e.id]?.id??null,updatedAt:p[e.id]?.createdAt??e.updatedAt})),...l.filter(e=>"running"===e.executionState||e.schedule?.tickInProgress).map(e=>({id:`automation:${e.graphId}`,title:e.title,kind:"automation",updatedAt:e.updatedAt}))].sort((e,t)=>Date.parse(t.updatedAt)-Date.parse(e.updatedAt)),y=new Set(b.map(e=>e.id)),w=[...d.filter(e=>"active"===e.state&&"number"==typeof e.nextRunAt).map(e=>({id:`prompt:${e.id}`,title:e.name,kind:"prompt",jobId:e.id,runId:null,nextRunAt:e.nextRunAt})),...l.filter(e=>e.schedule?.state==="active"&&"number"==typeof e.schedule?.nextTickAt).map(e=>({id:`automation:${e.graphId}`,title:e.title,kind:"automation",nextRunAt:e.schedule.nextTickAt}))].filter(e=>!y.has(e.id)).sort((e,t)=>e.nextRunAt-t.nextRunAt),N=d.length+l.length;return(0,t.jsxs)("div",{className:"rounded-2xl border border-[var(--card-border)] bg-[var(--card-bg)] p-4",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(u.Clock,{className:"h-4 w-4 text-[var(--muted-foreground)]"}),(0,t.jsx)("span",{className:"text-sm font-medium text-[var(--foreground)]",children:"Scheduled Jobs"}),!x&&N>0&&(0,t.jsx)("span",{className:"rounded-full bg-[var(--secondary)] px-2 py-0.5 text-xs text-[var(--muted-foreground)]",children:N})]}),n&&(0,t.jsxs)("button",{onClick:n,className:"flex items-center gap-1 text-xs text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)]",children:["View all ",(0,t.jsx)(c.ArrowRight,{className:"w-3 h-3"})]})]}),x?(0,t.jsx)("div",{className:"space-y-2",children:[1,2,3].map(e=>(0,t.jsx)("div",{className:"h-5 animate-pulse rounded bg-[var(--muted)]"},e))}):0===N?(0,t.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"No scheduled tasks"}):(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between text-xs uppercase tracking-wide text-[var(--muted-foreground)]",children:[(0,t.jsx)("span",{children:"Currently running"}),(0,t.jsx)("span",{children:b.length})]}),0===b.length?(0,t.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"Nothing running right now"}):(0,t.jsx)("div",{className:"space-y-2",children:b.slice(0,3).map(e=>(0,t.jsxs)("button",{type:"button",onClick:()=>j(e),disabled:"prompt"!==e.kind||!s,className:`flex w-full items-center gap-2 rounded-md px-1 py-1 text-left text-sm transition-colors ${"prompt"===e.kind&&s?"cursor-pointer hover:bg-[var(--secondary)]":"cursor-default"}`,children:[(0,t.jsx)("span",{className:"h-2 w-2 shrink-0 rounded-full bg-emerald-400"}),(0,t.jsx)("span",{className:"truncate text-[var(--foreground)]",children:e.title}),(0,t.jsx)("span",{className:"ml-auto shrink-0 text-xs text-[var(--status-completed-text)]",children:"running"})]},e.id))})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between text-xs uppercase tracking-wide text-[var(--muted-foreground)]",children:[(0,t.jsx)("span",{children:"Upcoming runs"}),(0,t.jsx)("span",{children:w.length})]}),0===w.length?(0,t.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"No upcoming runs"}):(0,t.jsx)("div",{className:"space-y-2",children:w.slice(0,3).map(e=>{var r;return(0,t.jsxs)("button",{type:"button",onClick:()=>j(e),disabled:"prompt"!==e.kind||!s,className:`flex w-full items-center gap-2 rounded-md px-1 py-1 text-left text-sm transition-colors ${"prompt"===e.kind&&s?"cursor-pointer hover:bg-[var(--secondary)]":"cursor-default"}`,children:[(0,t.jsx)(u.Clock,{className:"h-3.5 w-3.5 shrink-0 text-[var(--muted-foreground)]"}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("div",{className:"truncate text-[var(--foreground)]",children:e.title}),(0,t.jsxs)("div",{className:"text-xs text-[var(--muted-foreground)]",children:["number"!=typeof(r=e.nextRunAt)?"No next run":new Intl.DateTimeFormat(void 0,{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"}).format(new Date(r))," ",(0,t.jsxs)("span",{className:"text-[var(--app-shell-soft-text)]",children:["• ",(e=>{if("number"!=typeof e)return"";let t=e-f;if(t<=0)return"now";let r=Math.ceil(t/6e4);if(r<60)return`in ${r}m`;let s=Math.floor(r/60),a=r%60;if(s<24)return 0===a?`in ${s}h`:`in ${s}h ${a}m`;let n=Math.floor(s/24),i=s%24;return 0===i?`in ${n}d`:`in ${n}d ${i}h`})(e.nextRunAt)]})]})]})]},e.id)})})]})]})]})}var p=e.i(196630),h=e.i(538292),x=e.i(116e3),g=e.i(370326);function f({projectId:e,onViewAll:r}){let{workspace:s,entryCount:a,isLoading:n,error:i}=(0,x.useProjectWorkspace)(e),l=(0,g.buildWorkspaceCategoryGroups)(s).filter(e=>e.entries.length>0).slice(0,3);return(0,t.jsxs)("div",{className:"rounded-2xl border border-[var(--card-border)] bg-[var(--card-bg)] p-4",children:[(0,t.jsxs)("div",{className:"mb-3 flex items-center justify-between",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(p.FolderGit2,{className:"h-4 w-4 text-[var(--muted-foreground)]"}),(0,t.jsx)("span",{className:"text-sm font-medium text-[var(--foreground)]",children:"Workspace Map"}),a>0&&(0,t.jsx)("span",{className:"rounded-full bg-[var(--secondary)] px-2 py-0.5 text-xs text-[var(--muted-foreground)]",children:a})]}),r&&(0,t.jsxs)("button",{type:"button",onClick:r,className:"flex items-center gap-1 text-xs text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)]",children:["View all ",(0,t.jsx)(c.ArrowRight,{className:"h-3 w-3"})]})]}),n&&(0,t.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"Loading workspace map..."}),!n&&i&&(0,t.jsx)("p",{className:"text-sm text-[var(--destructive)]",children:"Unable to load the workspace map right now."}),!n&&!i&&0===a&&(0,t.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"No workspace locations mapped yet. Add repositories, docs, or scripts so agents know where to work."}),!n&&!i&&a>0&&(0,t.jsx)("div",{className:"space-y-3",children:l.map(e=>(0,t.jsxs)("div",{className:"rounded-xl border border-[var(--border)] bg-[var(--secondary)]/30 px-3 py-2.5",children:[(0,t.jsxs)("div",{className:"mb-2 flex items-center justify-between gap-2",children:[(0,t.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:e.label}),(0,t.jsx)("span",{className:"text-[11px] text-[var(--muted-foreground)]",children:e.entries.length})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[e.entries.slice(0,2).map(e=>(0,t.jsxs)("div",{className:"flex items-start gap-2 text-sm",children:[(0,t.jsx)(h.FolderOpen,{className:"mt-0.5 h-3.5 w-3.5 shrink-0 text-[var(--muted-foreground)]"}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("div",{className:"truncate text-[var(--foreground)]",children:e.name}),(0,t.jsx)("div",{className:"truncate text-xs text-[var(--muted-foreground)]",children:e.path||e.purpose||"No path set yet"})]})]},e.id)),e.entries.length>2&&(0,t.jsxs)("p",{className:"text-xs text-[var(--muted-foreground)]",children:["+ ",e.entries.length-2," more"]})]})]},e.id))})]})}var v=e.i(938201),j=e.i(524123),b=e.i(902572),y=e.i(958164);let w={on_track:{label:"On Track",dot:"bg-[var(--status-completed)]",badge:"border-[var(--status-completed-border)] bg-[var(--status-completed-bg)] text-[var(--status-completed-text)]"},at_risk:{label:"At Risk",dot:"bg-[var(--status-blocked)]",badge:"border-[var(--status-blocked-border)] bg-[var(--status-blocked-bg)] text-[var(--status-blocked-text)]"},off_track:{label:"Off Track",dot:"bg-[var(--status-failed)]",badge:"border-[var(--status-failed-border)] bg-[var(--status-failed-bg)] text-[var(--status-failed-text)]"},done:{label:"Done",dot:"bg-[var(--muted-foreground)]",badge:"border-[var(--border)] bg-[var(--secondary)] text-[var(--muted-foreground)]"}};function N({objective:e,teamName:r,onClick:s}){let a=w[e.status]??w.on_track,n="done"===e.status;return(0,t.jsxs)("button",{type:"button",onClick:s,className:`w-full rounded-2xl border border-[var(--card-border)] bg-[var(--card-bg)] p-4 text-left transition-colors hover:bg-[var(--secondary)] ${n?"opacity-60":""}`,children:[(0,t.jsxs)("div",{className:"flex items-start justify-between gap-2 mb-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,t.jsx)("span",{className:`h-2 w-2 shrink-0 rounded-full ${a.dot}`}),(0,t.jsx)("span",{className:"truncate text-sm font-medium text-[var(--foreground)]",children:e.title})]}),(0,t.jsx)("span",{className:`shrink-0 rounded-full border px-2 py-0.5 text-[11px] font-medium ${a.badge}`,children:a.label})]}),(0,t.jsx)("div",{className:"mb-2",children:(0,t.jsx)("div",{className:"h-1.5 overflow-hidden rounded-full bg-[var(--muted)]",children:(0,t.jsx)("div",{className:"h-full rounded-full bg-emerald-500/70 transition-all",style:{width:`${Math.min(e.progress,100)}%`}})})}),(0,t.jsxs)("div",{className:"flex items-center justify-between text-xs text-[var(--muted-foreground)]",children:[(0,t.jsxs)("span",{className:r?"":"flex items-center gap-1 text-[var(--status-blocked-text)]",children:[!r&&(0,t.jsx)(y.AlertTriangle,{className:"h-3 w-3"}),r??"No team"]}),(0,t.jsxs)("span",{children:[e.progress,"%"]})]})]})}function k({projectId:e,projectSlug:s}){let n=(0,a.useRouter)(),{projects:i,isLoading:l}=(0,j.useProjects)(),o=(0,r.useMemo)(()=>i.find(e=>e.slug===s),[i,s]),d=(0,r.useMemo)(()=>(0,b.readProjectObjectivesWorkspace)(o?.metadata).objectives,[o?.metadata]),[u,m]=(0,r.useState)([]);(0,r.useEffect)(()=>{fetch(`/api/projects/${e}/teams`).then(e=>e.ok?e.json():{teams:[]}).then(e=>m(e.teams??[])).catch(()=>m([]))},[e]);let p=(0,r.useMemo)(()=>new Map(u.map(e=>[e.id,e.name])),[u]),h=d.filter(e=>e.progress>=100).length;return l?(0,t.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[1,2].map(e=>(0,t.jsx)("div",{className:"h-28 animate-pulse rounded-2xl bg-[var(--muted)]"},e))}):0===d.length?(0,t.jsxs)("button",{type:"button",onClick:()=>n.push(`/projects/${s}/objectives`),className:"w-full rounded-2xl border border-dashed border-[var(--border)] bg-[var(--card-bg)] p-6 text-center transition-colors hover:border-[var(--card-hover-border)] hover:bg-[var(--secondary)]",children:[(0,t.jsx)(v.Target,{className:"mx-auto mb-2 h-5 w-5 text-[var(--muted-foreground)]"}),(0,t.jsx)("span",{className:"text-sm text-[var(--muted-foreground)]",children:"Add your first objective"})]}):(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3 text-xs text-[var(--muted-foreground)]",children:[(0,t.jsxs)("span",{children:[d.length," ",1===d.length?"objective":"objectives"]}),(0,t.jsx)("span",{className:"text-[var(--border)]",children:"|"}),(0,t.jsxs)("span",{children:[h,"/",d.length," complete"]})]}),(0,t.jsxs)("button",{onClick:()=>n.push(`/projects/${s}/objectives`),className:"flex items-center gap-1 text-xs text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)]",children:["View all ",(0,t.jsx)(c.ArrowRight,{className:"w-3 h-3"})]})]}),(0,t.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:d.map(e=>(0,t.jsx)(N,{objective:e,teamName:p.get(e.teamId)??null,onClick:()=>n.push(`/projects/${s}/objectives/${encodeURIComponent(e.id)}`)},e.id))})]})}var I=e.i(597628),S=e.i(99296),$=e.i(287472),C=e.i(681619),A=e.i(50778);function T({icon:e,title:r,accentClass:s,onClick:a,badge:n,children:i}){return(0,t.jsxs)("button",{type:"button",onClick:a,className:"w-full rounded-2xl border border-[var(--card-border)] bg-[var(--card-bg)] p-4 text-left transition-colors hover:bg-[var(--secondary)]",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:s,children:e}),(0,t.jsx)("span",{className:"text-sm font-medium text-[var(--foreground)]",children:r})]}),n]}),i&&(0,t.jsx)("div",{className:"text-sm",children:i})]})}function R({projectId:e,projectSlug:s,primaryThreadId:n}){var i;let l=(0,a.useRouter)(),{connected:o,loading:c}=(0,$.useTrackerConnection)("linear",e),[d,u]=(0,r.useState)(null),[m,p]=(0,r.useState)(0),h=(0,A.useTerminalTabsStore)(e=>e.sessions[s])??[],[x,g]=(0,r.useState)(()=>A.useTerminalTabsStore.persist.hasHydrated()),f=(0,r.useMemo)(()=>0===h.length?null:h.reduce((e,t)=>t.createdAt>e.createdAt?t:e),[h]);return(0,r.useEffect)(()=>{let t=!1;return fetch(`/api/threads?projectId=${encodeURIComponent(e)}&limit=3&format=json`).then(e=>e.ok?e.json():{threads:{},total:0}).then(e=>{if(t)return;let r=Object.values(e.threads??{}).flatMap(e=>e.threads??[]).slice(0,3);u(r),p("number"==typeof e.total?e.total:r.length)}).catch(()=>{t||(u([]),p(0))}),()=>{t=!0}},[e]),(0,r.useEffect)(()=>(g(A.useTerminalTabsStore.persist.hasHydrated()),A.useTerminalTabsStore.persist.onFinishHydration(()=>{g(!0)})),[]),(0,t.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4",children:[(0,t.jsx)(T,{icon:(0,t.jsx)(I.MessageSquare,{className:"w-4 h-4"}),title:"Chat",accentClass:"text-indigo-400",onClick:()=>{n&&l.push(`/projects/${s}/thread/${encodeURIComponent(n)}`)},badge:m>0?(0,t.jsx)("span",{className:"rounded-full bg-[var(--secondary)] px-2 py-0.5 text-xs text-[var(--muted-foreground)]",children:m}):void 0,children:null===d?(0,t.jsx)("div",{className:"space-y-1.5",children:[1,2].map(e=>(0,t.jsx)("div",{className:"h-5 animate-pulse rounded bg-[var(--muted)]"},e))}):0===d.length?(0,t.jsx)("p",{className:"text-[var(--muted-foreground)]",children:"No threads yet"}):(0,t.jsx)("div",{className:"space-y-1",children:d.map(e=>(0,t.jsxs)("div",{className:"flex items-center gap-2 truncate text-[var(--foreground)]",children:[(0,t.jsx)(I.MessageSquare,{className:"h-3 w-3 shrink-0 text-[var(--muted-foreground)]"}),(0,t.jsx)("span",{className:"truncate",children:e.title})]},e.id))})}),(0,t.jsx)(T,{icon:(0,t.jsx)(S.TerminalSquare,{className:"w-4 h-4"}),title:"Terminal",accentClass:"text-emerald-400",onClick:()=>l.push(`/projects/${s}/terminal`),badge:x&&h.length>0?(0,t.jsx)("span",{className:"rounded-full bg-[var(--secondary)] px-2 py-0.5 text-xs text-[var(--muted-foreground)]",children:h.length}):void 0,children:x?0===h.length?(0,t.jsx)("p",{className:"text-[var(--muted-foreground)]",children:"No sessions yet"}):(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsx)("p",{className:"text-[var(--foreground)]",children:(i=h.length,`${i} saved session${1===i?"":"s"}`)}),(0,t.jsxs)("p",{className:"truncate text-[var(--muted-foreground)]",children:["Latest: ",f?.title??"Untitled terminal"]})]}):(0,t.jsx)("div",{className:"space-y-1.5",children:[1,2].map(e=>(0,t.jsx)("div",{className:"h-5 animate-pulse rounded bg-[var(--muted)]"},e))})}),(0,t.jsx)(T,{icon:(0,t.jsx)(C.TrackerIcon,{trackerType:"linear",className:"w-4 h-4"}),title:"Tasks",accentClass:"text-blue-400",onClick:()=>l.push(`/projects/${s}/tracking`),badge:c?void 0:o?(0,t.jsx)("span",{className:"rounded-full border border-[var(--status-completed-border)] bg-[var(--status-completed-bg)] px-2 py-0.5 text-[11px] text-[var(--status-completed-text)]",children:"Connected"}):(0,t.jsx)("span",{className:"rounded-full border border-[var(--border)] bg-[var(--secondary)] px-2 py-0.5 text-[11px] text-[var(--muted-foreground)]",children:"Connect"}),children:!c&&!o&&(0,t.jsx)("p",{className:"text-[var(--muted-foreground)]",children:"Connect to see issues"})})]})}function M({projectId:e,projectSlug:r,projectDescription:s,threadIds:n}){let l=(0,a.useRouter)(),c=n[0]??null;return(0,t.jsx)("div",{className:"h-full overflow-y-auto",children:(0,t.jsxs)("div",{className:"max-w-5xl mx-auto px-6 py-8 space-y-8",children:[s&&(0,t.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:s}),(0,t.jsxs)("section",{children:[(0,t.jsx)("h2",{className:"mb-3 text-sm text-[var(--muted-foreground)]",children:"What you're working toward"}),(0,t.jsx)(k,{projectId:e,projectSlug:r})]}),(0,t.jsxs)("section",{children:[(0,t.jsx)("h2",{className:"mb-3 text-sm text-[var(--muted-foreground)]",children:"Start working"}),(0,t.jsx)(R,{projectId:e,projectSlug:r,primaryThreadId:c})]}),(0,t.jsxs)("section",{children:[(0,t.jsx)("h2",{className:"mb-3 text-sm text-[var(--muted-foreground)]",children:"What's happening now"}),(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsx)(m,{projectId:e,projectSlug:r,onViewAll:()=>l.push(`/projects/${r}/automations`)}),(0,t.jsx)(i,{projectSlug:r,projectThreadIds:n}),(0,t.jsx)(o,{projectId:e,projectSlug:r,projectThreadIds:n})]})]}),(0,t.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[(0,t.jsx)(f,{projectId:e,onViewAll:()=>l.push(`/projects/${r}/folders`)}),(0,t.jsx)(d,{projectId:e,onViewAll:()=>l.push(`/projects/${r}/teams`)})]})]})})}var U=e.i(378562);function E({params:e}){let{slug:a}=(0,r.use)(e),{projects:n}=(0,j.useProjectsWithAgents)(),i=n.find(e=>e.slug===a),[l,o]=(0,r.useState)("loading");return((0,r.useEffect)(()=>{if(!i)return;let e=!1;return(async()=>{try{let t=await fetch(`/api/projects/${i.id}/teams`,{cache:"no-store"});if(e)return;let r=t.ok?await t.json():{teams:[]},s=Array.isArray(r?.teams)?r.teams:[];o(0===s.length?"empty":"has-teams")}catch{e||o("has-teams")}})(),()=>{e=!0}},[i]),i)?"empty"===l?(0,t.jsx)(U.EmptyStateCard,{icon:(0,t.jsx)(s.Users,{className:"w-6 h-6 text-[var(--foreground)]"}),title:`Add a team to ${i.name}`,description:"Teams give your project the agents that will actually do the work. Add one to get started.",ctaLabel:"Add a team",ctaHref:`/projects/${i.slug}/teams/new`}):(0,t.jsx)(M,{projectId:i.id,projectSlug:i.slug,projectName:i.name,projectDescription:i.description,projectMetadata:i.metadata,repos:i.repos,threadIds:i.thread_ids}):(0,t.jsx)("div",{className:"flex items-center justify-center h-full text-sm text-zinc-500",children:"Loading project..."})}e.s(["default",()=>E],317389)}]);
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,580873,e=>{"use strict";let t=(0,e.i(363732).default)("clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6l4 2",key:"mmk7yg"}]]);e.s(["Clock",()=>t],580873)},417442,e=>{"use strict";let t=(0,e.i(363732).default)("arrow-right",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);e.s(["ArrowRight",()=>t],417442)},807087,e=>{"use strict";let t=(0,e.i(363732).default)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);e.s(["CheckCircle2",()=>t],807087)},287472,e=>{"use strict";var t=e.i(935851);let r=new Map;function s(e){let t=r.get(e);return t?Date.now()-t.ts>3e5?(r.delete(e),null):t:null}function a(e){r.delete(e)}function n(e,n){let[i,l]=(0,t.useState)(!1),[o,c]=(0,t.useState)(!0),[d,u]=(0,t.useState)(null),[m,p]=(0,t.useState)({claude:!1,codex:!1,gemini:!1}),[h,x]=(0,t.useState)({}),g=(0,t.useRef)(null),f=`/api/trackers/${encodeURIComponent(e)}`,v=`${e}:${n}`,j=(0,t.useCallback)(async()=>{try{let e=await fetch(`${f}/mcp-setup`),t=await e.json();x(t.configured??{})}catch{}},[f]),b=(0,t.useCallback)(async()=>{if(!n)return l(!1),!1;let e=s(v);if(e)return l(e.connected),u(e.user),p(e.clis),x(e.mcpConfigured),c(!1),e.connected;try{var t;let e=`?projectId=${encodeURIComponent(n)}`,[s,a]=await Promise.all([fetch(`${f}/status${e}`),fetch(`${f}/mcp-setup`)]),i=await s.json(),o=await a.json(),c=i.clis??{claude:!1,codex:!1,gemini:!1},d=o.configured??{},m=i.user??null;return l(i.connected),u(m),p(c),x(d),t={connected:i.connected,user:m,clis:c,mcpConfigured:d},r.set(v,{...t,ts:Date.now()}),i.connected}catch{return l(!1),!1}finally{c(!1)}},[n,f,v]);(0,t.useEffect)(()=>{let e=s(v);e?(l(e.connected),u(e.user),p(e.clis),x(e.mcpConfigured),c(!1)):(c(!0),l(!1),u(null))},[e,n,v]),(0,t.useEffect)(()=>(b(),()=>{g.current&&clearInterval(g.current)}),[b]);let y=(0,t.useCallback)(()=>{n&&(a(v),window.open(`${f}/auth?projectId=${encodeURIComponent(n)}`,"_blank","noopener"),g.current&&clearInterval(g.current),g.current=setInterval(async()=>{a(v),await b()&&g.current&&(clearInterval(g.current),g.current=null)},2e3))},[n,f,v,b]),w=(0,t.useCallback)(async e=>{if(!n)return{ok:!1,error:"Missing projectId"};try{let t=await fetch(`${f}/token`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectId:n,accessToken:e})});if(!t.ok){let e=await t.json().catch(()=>({}));return{ok:!1,error:e.error||"Failed to save token"}}return a(v),await b(),{ok:!0}}catch{return{ok:!1,error:"Failed to connect"}}},[n,f,v,b]);return{connected:i,loading:o,user:d,clis:m,mcpConfigured:h,connect:y,connectWithKey:w,disconnect:(0,t.useCallback)(async()=>{n&&(a(v),await fetch(`${f}/status?projectId=${encodeURIComponent(n)}`,{method:"DELETE"}),"github"===e&&Object.keys(sessionStorage).filter(e=>e.startsWith("github_")).forEach(e=>sessionStorage.removeItem(e)),l(!1),u(null))},[n,f,v,e]),configureMcp:(0,t.useCallback)(async e=>{try{let t=await fetch(`${f}/mcp-setup`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cli:e})});if(!t.ok){let e=await t.json().catch(()=>({}));return{ok:!1,error:e.error||"Failed to configure MCP"}}return await j(),{ok:!0}}catch{return{ok:!1,error:"Failed to configure MCP"}}},[f,j]),refresh:b}}e.s(["useTrackerConnection",()=>n])},378562,e=>{"use strict";var t=e.i(762281),r=e.i(307241);function s({icon:e,title:s,description:a,ctaLabel:n,ctaHref:i}){return(0,t.jsx)("div",{className:"h-full w-full flex items-center justify-center bg-[var(--background)] px-6 py-12",children:(0,t.jsxs)("div",{className:"max-w-md w-full text-center space-y-6",children:[(0,t.jsx)("div",{className:"mx-auto w-14 h-14 rounded-2xl bg-[var(--secondary)] flex items-center justify-center",children:e}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("h1",{className:"text-[22px] font-bold text-[var(--foreground)] tracking-tight",children:s}),(0,t.jsx)("p",{className:"text-[14px] text-[var(--muted-foreground)] leading-relaxed",children:a})]}),(0,t.jsx)(r.default,{href:i,className:"inline-flex items-center gap-2 px-6 py-2.5 bg-[var(--foreground)] text-[var(--background)] text-[14px] font-semibold rounded-lg hover:opacity-90 transition-all",children:n})]})})}e.s(["EmptyStateCard",()=>s])},116e3,11354,370326,e=>{"use strict";var t=e.i(935851);let r=["repositories","docs","config","scripts"],s=[{id:"repositories",label:"Repositories",icon:"GitBranch"},{id:"docs",label:"Docs",icon:"FileText"},{id:"config",label:"Config",icon:"Settings"},{id:"scripts",label:"Scripts",icon:"Terminal"}],a=s.map(e=>({...e})),n=new Map(s.map(e=>[e.id,e]));function i(e){let t=n.get(e);return t?{...t}:null}function l(e){let t=e.trim(),r=t?i(t):null;return r?r.label:t?t.replace(/[_-]+/g," ").replace(/\s+/g," ").replace(/\b\w/g,e=>e.toUpperCase()):"Custom"}function o(e){return[...e].sort((e,t)=>e.sort_order!==t.sort_order?e.sort_order-t.sort_order:e.name.localeCompare(t.name))}function c(e){return Object.values(e).reduce((e,t)=>e+t.length,0)}function d(e,t=[]){return[...a.map(t=>{let r=o(e[t.id]??[]);return{id:t.id,label:t.label,entries:r,isPreset:!0,isEmpty:0===r.length}}),...[...new Set([...Object.keys(e),...t])].map(e=>e.trim()).filter(e=>e.length>0).filter(e=>!r.includes(e)).sort((e,t)=>l(e).localeCompare(l(t))).map(t=>{let r=o(e[t]??[]);return{id:t,label:l(t),entries:r,isPreset:!1,isEmpty:0===r.length}})]}async function u(e,t){let r=await e.json().catch(()=>({}));return"string"==typeof r.error?r.error:t}function m(e){let[r,s]=(0,t.useState)({}),[a,n]=(0,t.useState)(!1),[i,l]=(0,t.useState)(null),o=(0,t.useCallback)(async()=>{if(!e){s({}),n(!1),l(null);return}n(!0);try{let t=await fetch(`/api/projects/${e}/workspace`);if(!t.ok)throw Error(await u(t,"Failed to fetch workspace map"));let r=await t.json();s(r.workspace??{}),l(null)}catch(e){l(e instanceof Error?e:Error("Unknown error"))}finally{n(!1)}},[e]);(0,t.useEffect)(()=>{o()},[o]);let d=(0,t.useCallback)(async t=>{let r=await fetch(`/api/projects/${e}/workspace`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!r.ok)throw Error(await u(r,"Failed to create workspace entry"));let s=await r.json();return await o(),s.entry},[o,e]),m=(0,t.useCallback)(async(t,r)=>{let s=await fetch(`/api/projects/${e}/workspace/${t}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)});if(!s.ok)throw Error(await u(s,"Failed to update workspace entry"));let a=await s.json();return await o(),a.entry},[o,e]),p=(0,t.useCallback)(async t=>{let r=await fetch(`/api/projects/${e}/workspace/${t}`,{method:"DELETE"});if(!r.ok)throw Error(await u(r,"Failed to delete workspace entry"));await o()},[o,e]);return{workspace:r,entryCount:c(r),isLoading:a,error:i,refetch:o,createEntry:d,updateEntry:m,deleteEntry:p}}e.s(["DEFAULT_WORKSPACE_CATEGORIES",0,a,"WORKSPACE_CATEGORY_IDS",0,r,"getWorkspaceCategory",()=>i],11354),e.s(["buildWorkspaceCategoryGroups",()=>d,"countWorkspaceEntries",()=>c],370326),e.s(["useProjectWorkspace",()=>m],116e3)},768834,e=>{"use strict";var t=e.i(935851);let r=e=>{let t,r=new Set,s=(e,s)=>{let a="function"==typeof e?e(t):e;if(!Object.is(a,t)){let e=t;t=(null!=s?s:"object"!=typeof a||null===a)?a:Object.assign({},t,a),r.forEach(r=>r(t,e))}},a=()=>t,n={setState:s,getState:a,getInitialState:()=>i,subscribe:e=>(r.add(e),()=>r.delete(e))},i=t=e(s,a,n);return n},s=e=>{let s=e?r(e):r,a=e=>(function(e,r=e=>e){let s=t.default.useSyncExternalStore(e.subscribe,t.default.useCallback(()=>r(e.getState()),[e,r]),t.default.useCallback(()=>r(e.getInitialState()),[e,r]));return t.default.useDebugValue(s),s})(s,e);return Object.assign(a,s),a},a=e=>e?s(e):s;e.s(["create",()=>a],768834)},50778,e=>{"use strict";let t,r;var s=e.i(768834);let a=e=>t=>{try{let r=e(t);if(r instanceof Promise)return r;return{then:e=>a(e)(r),catch(e){return this}}}catch(e){return{then(e){return this},catch:t=>a(t)(e)}}};function n(e){let t=e.map(e=>{let t=e.title.match(/^Terminal (\d+)$/);return t?Number(t[1]):0}).filter(e=>e>0),r=t.length>0?Math.max(...t)+1:1;return`Terminal ${r}`}function i(e,t,r){return Math.max(t,Math.min(r,e))}function l(e){let t=e.map(e=>{let t=e.title.match(/^Terminal (\d+)$/);return t?Number(t[1]):0}).filter(e=>e>0),r=t.length>0?Math.max(...t)+1:1;return`Terminal ${r}`}function o(e,t,r=crypto.randomUUID()){return{id:r,title:l(e),cwd:t,createdAt:Date.now(),status:"connecting",colSpan:1,rowSpan:1}}function c(e,t,r,s,a){return{id:e?.id||t,title:"string"==typeof e?.title&&e.title.trim().length>0?e.title:l([]),cwd:e?.cwd??s,createdAt:e?.createdAt??r,sessionId:void 0,status:"connecting",command:e?.command??a,colSpan:i(e?.colSpan??1,1,2),rowSpan:i(e?.rowSpan??1,1,4)}}function d(e=[]){return e.map((e,t)=>{let r="number"==typeof e.createdAt?e.createdAt:Date.now()+t,s=[];if(Array.isArray(e.terminals)&&e.terminals.length>0)for(let[t,a]of e.terminals.entries()){let n=c(a,`${e.id||crypto.randomUUID()}-terminal-${t+1}`,"number"==typeof a?.createdAt?a.createdAt:r);a?.title&&0!==a.title.trim().length||(n.title=l(s)),s.push(n)}else{let t=c(e,String(e.id||crypto.randomUUID()),r,e.cwd,e.command);e.title&&0!==e.title.trim().length||(t.title=l(s)),s.push(t)}return{id:String(e.id||crypto.randomUUID()),title:"string"==typeof e.title?e.title:n([]),createdAt:r,terminals:s}})}function u(e,t,r){let s=r(e[t]??[]);return{...e,[t]:s}}let m=(0,s.create)()((t=(e,t)=>({sessions:{},getProjectSessions:e=>t().sessions[e]??[],createSession(r,s){let a=crypto.randomUUID(),i={id:a,title:n(t().sessions[r]??[]),createdAt:Date.now(),terminals:[o([],s)]};return e(e=>({sessions:u(e.sessions,r,e=>[...e,i])})),a},closeSession(t,r){e(e=>({sessions:u(e.sessions,t,e=>e.filter(e=>e.id!==r))}))},renameSession(t,r,s){e(e=>({sessions:u(e.sessions,t,e=>e.map(e=>e.id===r?{...e,title:s}:e))}))},addTerminal(t,r,s){let a=crypto.randomUUID(),n=!1;return e(e=>({sessions:u(e.sessions,t,e=>e.map(e=>e.id!==r?e:(n=!0,{...e,terminals:[...e.terminals,o(e.terminals,s,a)]})))})),n?a:null},closeTerminal(t,r,s){e(e=>({sessions:u(e.sessions,t,e=>e.map(e=>e.id!==r?e:{...e,terminals:e.terminals.filter(e=>e.id!==s)}).filter(e=>e.terminals.length>0))}))},renameTerminal(t,r,s,a){e(e=>({sessions:u(e.sessions,t,e=>e.map(e=>e.id===r?{...e,terminals:e.terminals.map(e=>e.id===s?{...e,title:a}:e)}:e))}))},updateTerminalLayout(t,r,s,a){e(e=>({sessions:u(e.sessions,t,e=>e.map(e=>e.id===r?{...e,terminals:e.terminals.map(e=>e.id===s?{...e,colSpan:i(a.colSpan??e.colSpan,1,2),rowSpan:i(a.rowSpan??e.rowSpan,1,4)}:e)}:e))}))},setTerminalSessionId(t,r,s,a){e(e=>({sessions:u(e.sessions,t,e=>e.map(e=>e.id===r?{...e,terminals:e.terminals.map(e=>e.id===s?{...e,sessionId:a}:e)}:e))}))},updateTerminalStatus(t,r,s,a){e(e=>({sessions:u(e.sessions,t,e=>e.map(e=>e.id===r?{...e,terminals:e.terminals.map(e=>e.id===s?{...e,status:a}:e)}:e))}))}}),r={name:"agx-terminal-tabs",merge(e,t){let r=e??{};return{...t,...r,sessions:function(e){if(e&&"object"==typeof e&&!Array.isArray(e)){let t={};for(let[r,s]of Object.entries(e))t[r]=d(Array.isArray(s)?s:[]);return t}return Array.isArray(e)?{__global__:d(e)}:{}}(r.sessions)}}},(e,s,n)=>{let i,l={storage:function(e,t){let r;try{r=e()}catch(e){return}return{getItem:e=>{var t;let s=e=>null===e?null:JSON.parse(e,void 0),a=null!=(t=r.getItem(e))?t:null;return a instanceof Promise?a.then(s):s(a)},setItem:(e,t)=>r.setItem(e,JSON.stringify(t,void 0)),removeItem:e=>r.removeItem(e)}}(()=>window.localStorage),partialize:e=>e,version:0,merge:(e,t)=>({...t,...e}),...r},o=!1,c=0,d=new Set,u=new Set,m=l.storage;if(!m)return t((...t)=>{console.warn(`[zustand persist middleware] Unable to update item '${l.name}', the given storage is currently unavailable.`),e(...t)},s,n);let p=()=>{let e=l.partialize({...s()});return m.setItem(l.name,{state:e,version:l.version})},h=n.setState;n.setState=(e,t)=>(h(e,t),p());let x=t((...t)=>(e(...t),p()),s,n);n.getInitialState=()=>x;let g=()=>{var t,r;if(!m)return;let n=++c;o=!1,d.forEach(e=>{var t;return e(null!=(t=s())?t:x)});let h=(null==(r=l.onRehydrateStorage)?void 0:r.call(l,null!=(t=s())?t:x))||void 0;return a(m.getItem.bind(m))(l.name).then(e=>{if(e)if("number"!=typeof e.version||e.version===l.version)return[!1,e.state];else{if(l.migrate){let t=l.migrate(e.state,e.version);return t instanceof Promise?t.then(e=>[!0,e]):[!0,t]}console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}return[!1,void 0]}).then(t=>{var r;if(n!==c)return;let[a,o]=t;if(e(i=l.merge(o,null!=(r=s())?r:x),!0),a)return p()}).then(()=>{n===c&&(null==h||h(s(),void 0),i=s(),o=!0,u.forEach(e=>e(i)))}).catch(e=>{n===c&&(null==h||h(void 0,e))})};return n.persist={setOptions:e=>{l={...l,...e},e.storage&&(m=e.storage)},clearStorage:()=>{null==m||m.removeItem(l.name)},getOptions:()=>l,rehydrate:()=>g(),hasHydrated:()=>o,onHydrate:e=>(d.add(e),()=>{d.delete(e)}),onFinishHydration:e=>(u.add(e),()=>{u.delete(e)})},l.skipHydration||g(),i||x}));e.s(["useTerminalTabsStore",0,m],50778)},317389,e=>{"use strict";var t=e.i(762281),r=e.i(935851),s=e.i(572665),a=e.i(506420),n=e.i(716436);function i({projectSlug:e,projectThreadIds:s=[]}){let i=(0,a.useRouter)(),[l,o]=(0,r.useState)([]),[c,d]=(0,r.useState)([]),u=(0,r.useCallback)(async()=>{try{let e=await fetch("/api/participants");if(!e.ok)return;let t=await e.json();d(Array.isArray(t)?t:t.participants??[])}catch{}},[]);(0,r.useEffect)(()=>{u()},[u]),(0,r.useEffect)(()=>{let t=!1,r=e.trim().toLowerCase(),a=new Set(s.map(e=>e.trim()).filter(Boolean)),n=async()=>{try{let e=await fetch("/api/processes?enrich=1");if(!e.ok||t)return;let s=await e.json();if(t)return;let n=s.filter(e=>"spawning"===e.state||"running"===e.state).filter(e=>{let t=e.projectSlug.trim().toLowerCase();return!!t&&t===r||a.has(e.workspaceId)||a.has(e.threadId)}).sort((e,t)=>t.lastActivity-e.lastActivity);o(n)}catch{}};n();let i=setInterval(n,3e3);return()=>{t=!0,clearInterval(i)}},[e,s]);let m=new Map(c.map(e=>[e.id,e.name])),p=e=>m.get(e)||e.slice(0,8),h=[],x=new Map;for(let e of l){let t=x.get(e.agentId);t||(t={agentId:e.agentId,agentName:p(e.agentId),activities:[]},x.set(e.agentId,t),h.push(t)),t.activities.push({key:`${e.workspaceId}-${e.threadId}-${e.agentId}`,workspaceId:e.workspaceId,threadId:e.threadId,state:e.state,threadLabel:e.threadTitle?.trim()?e.threadTitle.trim():e.threadId?.trim()?`Thread ${e.threadId.slice(0,12)}...`:"Main thread",lastActiveLabel:function(e){let t=Math.max(0,Math.floor((Date.now()-e)/1e3));if(t<5)return"Just now";if(t<60)return`${t}s ago`;let r=Math.floor(t/60);if(r<60)return`${r}m ago`;let s=Math.floor(r/60);if(s<24)return`${s}h ago`;let a=Math.floor(s/24);return`${a}d ago`}(e.lastActivity),lastActivity:e.lastActivity,linearIssueId:e.linearIssueId,linearRunId:e.linearRunId,trackerType:e.trackerType,responseMessageId:e.responseMessageId})}if(0===h.length)return null;let g=l.length;return(0,t.jsxs)("section",{className:"col-span-full overflow-hidden rounded-2xl border border-[var(--card-border)] bg-[var(--card-bg)]",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between gap-3 border-b border-[var(--border)] px-4 py-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 text-xs uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:[(0,t.jsx)(n.Activity,{className:"h-3.5 w-3.5"}),"Working Now"]}),(0,t.jsxs)("p",{className:"mt-1 text-xs text-[var(--muted-foreground)]",children:[h.length," ",1===h.length?"agent":"agents"," active across"," ",g," ",1===g?"thread":"threads","."]})]}),(0,t.jsxs)("span",{className:"rounded-full border border-[var(--status-completed-border)] bg-[var(--status-completed-bg)] px-2.5 py-1 text-[10px] font-medium uppercase tracking-wider text-[var(--status-completed-text)]",children:[g," live ",1===g?"entry":"entries"]})]}),(0,t.jsx)("div",{className:"divide-y divide-[var(--border)]",children:h.map(r=>(0,t.jsxs)("div",{className:"px-4 py-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[(0,t.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-sm font-medium text-[var(--foreground)]",children:[(0,t.jsx)("span",{className:"h-2 w-2 rounded-full bg-emerald-400 animate-pulse"}),r.agentName]}),r.activities.length>1&&(0,t.jsxs)("span",{className:"rounded-full bg-[var(--secondary)] px-2 py-0.5 text-[10px] text-[var(--muted-foreground)]",children:[r.activities.length," threads"]})]}),(0,t.jsx)("div",{className:"space-y-1 ml-4",children:r.activities.map(r=>(0,t.jsxs)("div",{className:"mx-[-0.5rem] flex cursor-pointer items-center gap-3 rounded-lg px-2 py-1.5 text-sm transition-colors hover:bg-[var(--secondary)]",onClick:()=>i.push(function(e,t){if(t.linearIssueId&&t.linearRunId){let r=`/projects/${e}/tracking/${t.trackerType??"linear"}?issue=${encodeURIComponent(t.linearIssueId)}&run=${encodeURIComponent(t.linearRunId)}`;return t.responseMessageId?`${r}&message=${encodeURIComponent(t.responseMessageId)}`:r}let r=t.workspaceId??"",s=t.threadId??"",a="objective-chat:",n=r.startsWith(a)?r:s.startsWith(a)?s:null;if(n){let i=n.slice(a.length),l=new URLSearchParams;s&&s!==r&&l.set("session",s),t.responseMessageId&&l.set("message",t.responseMessageId);let o=l.toString();return`/projects/${e}/objectives/${encodeURIComponent(i)}${o?`?${o}`:""}`}let i="tracker-run:";if(r.startsWith(i)){let s=t.linearRunId??r.slice(i.length),a=new URLSearchParams;return t.linearIssueId&&a.set("issue",t.linearIssueId),a.set("run",s),t.responseMessageId&&a.set("message",t.responseMessageId),`/projects/${e}/tracking/${t.trackerType??"linear"}?${a.toString()}`}let l=new URLSearchParams;s&&l.set("open",s),t.responseMessageId&&l.set("message",t.responseMessageId);let o=l.toString();return`/projects/${e}/thread/${encodeURIComponent(r)}${o?`?${o}`:""}`}(e,r)),children:[(0,t.jsxs)("span",{className:"inline-flex shrink-0 items-center gap-1.5 rounded-full border border-[var(--status-completed-border)] bg-[var(--status-completed-bg)] px-2 py-0.5 text-[11px] font-medium text-[var(--status-completed-text)]",children:[(0,t.jsx)("span",{className:"h-1.5 w-1.5 rounded-full bg-emerald-400"}),"spawning"===r.state?"Starting":"Working"]}),(0,t.jsx)("span",{className:"min-w-0 flex-1 truncate text-[var(--foreground)]",children:r.threadLabel}),(0,t.jsx)("span",{className:"shrink-0 text-xs text-[var(--muted-foreground)]",children:r.lastActiveLabel})]},r.key))})]},r.agentId))})]})}var l=e.i(807087);function o({projectId:e,projectSlug:s,projectThreadIds:n=[]}){let i=(0,a.useRouter)(),[o,c]=(0,r.useState)([]),[d,u]=(0,r.useState)([]),[m,p]=(0,r.useState)([]),h=(0,r.useCallback)(async()=>{try{let e=await fetch("/api/participants");if(!e.ok)return;let t=await e.json();u(Array.isArray(t)?t:t.participants??[])}catch{}},[]),x=(0,r.useCallback)(async()=>{try{let t=await fetch(`/api/projects/${e}/teams`);if(!t.ok)return;let r=await t.json();p(Array.isArray(r)?r:[])}catch{}},[e]);(0,r.useEffect)(()=>{h(),x()},[h,x]),(0,r.useEffect)(()=>{let e=!1,t=s.trim().toLowerCase(),r=new Set(n.map(e=>e.trim()).filter(Boolean)),a=async()=>{try{let s=await fetch("/api/processes?enrich=1");if(!s.ok||e)return;let a=await s.json();if(e)return;let n=a.filter(e=>"done"===e.state).filter(e=>{let s=e.projectSlug.trim().toLowerCase();return!!s&&s===t||r.has(e.workspaceId)||r.has(e.threadId)}).sort((e,t)=>t.lastActivity-e.lastActivity).slice(0,10);c(n)}catch{}};a();let i=setInterval(a,1e4);return()=>{e=!0,clearInterval(i)}},[s,n]);let g=new Map(d.map(e=>[e.id,e.name])),f=new Map;for(let e of m)for(let t of e.agents)f.set(t.agent_id,{id:e.id,name:e.name});return 0===o.length?null:(0,t.jsxs)("section",{className:"col-span-full overflow-hidden rounded-2xl border border-[var(--card-border)] bg-[var(--card-bg)]",children:[(0,t.jsx)("div",{className:"flex items-center justify-between gap-3 border-b border-[var(--border)] px-4 py-3",children:(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 text-xs uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:[(0,t.jsx)(l.CheckCircle2,{className:"h-3.5 w-3.5"}),"Recently Completed"]}),(0,t.jsxs)("p",{className:"mt-1 text-xs text-[var(--muted-foreground)]",children:["Last ",o.length," completed"," ",1===o.length?"task":"tasks","."]})]})}),(0,t.jsx)("div",{className:"overflow-x-auto",children:(0,t.jsxs)("table",{className:"min-w-full text-sm",children:[(0,t.jsx)("thead",{className:"bg-[var(--secondary)]",children:(0,t.jsxs)("tr",{className:"text-left text-[11px] uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:[(0,t.jsx)("th",{className:"px-4 py-3 font-medium",children:"Agent"}),(0,t.jsx)("th",{className:"px-4 py-3 font-medium",children:"Status"}),(0,t.jsx)("th",{className:"px-4 py-3 font-medium",children:"Thread"}),(0,t.jsx)("th",{className:"px-4 py-3 font-medium",children:"Last active"})]})}),(0,t.jsx)("tbody",{children:o.map(e=>{let r;return(0,t.jsxs)("tr",{className:"cursor-pointer border-t border-[var(--border)] text-[var(--foreground)] transition-colors hover:bg-[var(--secondary)]",onClick:()=>i.push(function(e,t){if(t.linearIssueId&&t.linearRunId){let r=`/projects/${e}/tracking/${t.trackerType??"linear"}?issue=${encodeURIComponent(t.linearIssueId)}&run=${encodeURIComponent(t.linearRunId)}`;return t.responseMessageId?`${r}&message=${encodeURIComponent(t.responseMessageId)}`:r}let r=t.workspaceId??"",s=t.threadId??"",a="objective-chat:",n=r.startsWith(a)?r:s.startsWith(a)?s:null;if(n){let i=n.slice(a.length),l=new URLSearchParams;s&&s!==r&&l.set("session",s),t.responseMessageId&&l.set("message",t.responseMessageId);let o=l.toString();return`/projects/${e}/objectives/${encodeURIComponent(i)}${o?`?${o}`:""}`}let i="tracker-run:";if(r.startsWith(i)){let s=t.linearRunId??r.slice(i.length),a=new URLSearchParams;return t.linearIssueId&&a.set("issue",t.linearIssueId),a.set("run",s),t.responseMessageId&&a.set("message",t.responseMessageId),`/projects/${e}/tracking/${t.trackerType??"linear"}?${a.toString()}`}let l=new URLSearchParams;s&&l.set("open",s),t.responseMessageId&&l.set("message",t.responseMessageId);let o=l.toString();return`/projects/${e}/thread/${encodeURIComponent(r)}${o?`?${o}`:""}`}(s,e)),children:[(0,t.jsx)("td",{className:"px-4 py-3 text-[var(--foreground)]",children:(r=e.agentId,g.get(r)||r.slice(0,8))}),(0,t.jsx)("td",{className:"px-4 py-3",children:(0,t.jsxs)("span",{className:"inline-flex items-center gap-1.5 rounded-full border border-[var(--border)] bg-[var(--secondary)] px-2 py-0.5 text-[11px] font-medium text-[var(--muted-foreground)]",children:[(0,t.jsx)(l.CheckCircle2,{className:"h-3 w-3"}),"Done"]})}),(0,t.jsx)("td",{className:"max-w-[24rem] px-4 py-3 text-[var(--muted-foreground)]",children:(0,t.jsx)("span",{className:"block truncate",children:e.threadTitle?.trim()?e.threadTitle.trim():e.threadId?.trim()?`Thread ${e.threadId.slice(0,12)}...`:"Main thread"})}),(0,t.jsx)("td",{className:"px-4 py-3 text-[var(--muted-foreground)]",children:function(e){let t=Math.max(0,Math.floor((Date.now()-e)/1e3));if(t<5)return"Just now";if(t<60)return`${t}s ago`;let r=Math.floor(t/60);if(r<60)return`${r}m ago`;let s=Math.floor(r/60);if(s<24)return`${s}h ago`;let a=Math.floor(s/24);return`${a}d ago`}(e.lastActivity)})]},`${e.workspaceId}-${e.threadId}-${e.agentId}`)})})]})})]})}var c=e.i(417442);function d({projectId:e,onViewAll:a}){let[n,i]=(0,r.useState)([]),[l,o]=(0,r.useState)(!0);return(0,r.useEffect)(()=>{fetch(`/api/projects/${e}/teams`).then(e=>e.ok?e.json():{teams:[]}).then(e=>i(e.teams??[])).catch(()=>i([])).finally(()=>o(!1))},[e]),(0,t.jsxs)("div",{className:"rounded-2xl border border-[var(--card-border)] bg-[var(--card-bg)] p-4",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(s.Users,{className:"h-4 w-4 text-[var(--muted-foreground)]"}),(0,t.jsx)("span",{className:"text-sm font-medium text-[var(--foreground)]",children:"Teams"}),!l&&n.length>0&&(0,t.jsx)("span",{className:"rounded-full bg-[var(--secondary)] px-2 py-0.5 text-xs text-[var(--muted-foreground)]",children:n.length})]}),a&&(0,t.jsxs)("button",{onClick:a,className:"flex items-center gap-1 text-xs text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)]",children:["View all ",(0,t.jsx)(c.ArrowRight,{className:"w-3 h-3"})]})]}),l?(0,t.jsx)("div",{className:"space-y-2",children:[1,2,3].map(e=>(0,t.jsx)("div",{className:"h-5 animate-pulse rounded bg-[var(--muted)]"},e))}):0===n.length?(0,t.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"No teams yet"}):(0,t.jsx)("div",{className:"space-y-2",children:n.slice(0,5).map(e=>(0,t.jsxs)("div",{className:"flex items-center gap-2 text-sm",children:[(0,t.jsx)(s.Users,{className:"h-4 w-4 text-[var(--muted-foreground)]"}),(0,t.jsx)("span",{className:"text-[var(--foreground)]",children:e.name}),(0,t.jsxs)("span",{className:"text-[var(--muted-foreground)]",children:[e.agents.length," agents"]})]},e.id))})]})}var u=e.i(580873);function m({projectId:e,projectSlug:s,onViewAll:n}){let i=(0,a.useRouter)(),[l,o]=(0,r.useState)([]),[d,m]=(0,r.useState)([]),[p,h]=(0,r.useState)({}),[x,g]=(0,r.useState)(!0),[f,v]=(0,r.useState)(()=>Date.now());(0,r.useEffect)(()=>{let e=window.setInterval(()=>{v(Date.now())},3e4);return()=>{window.clearInterval(e)}},[]),(0,r.useEffect)(()=>{let t=!1,r=async()=>{try{let[r,s]=await Promise.all([fetch("/api/automations"),fetch(`/api/prompt-jobs?projectId=${encodeURIComponent(e)}`)]),a=r.ok?await r.json():{automations:[]},n=s.ok?await s.json():{jobs:[]};if(t)return;let i=(a.automations??[]).filter(t=>t.projectId===e).slice(0,20),l=(n.jobs??[]).filter(t=>t.projectId===e).slice(0,20);o(i),m(l);let c=Object.fromEntries(await Promise.all(l.map(async e=>{try{let t=await fetch(`/api/prompt-jobs/${encodeURIComponent(e.id)}/runs`);if(!t.ok)return[e.id,null];let r=((await t.json()).runs??[])[0]??null;return[e.id,r]}catch{return[e.id,null]}})));if(t)return;h(c)}catch{if(t)return;o([]),m([]),h({})}finally{t||g(!1)}};return g(!0),r(),()=>{t=!0}},[e]);let j=e=>{if(!s||"prompt"!==e.kind)return;let t=new URLSearchParams({job:e.jobId});e.runId&&t.set("run",e.runId),i.push(`/projects/${s}/automations?${t.toString()}`)},b=[...d.filter(e=>{let t=p[e.id];return t?.status==="queued"||t?.status==="running"}).map(e=>({id:`prompt:${e.id}`,title:e.name,kind:"prompt",jobId:e.id,runId:p[e.id]?.id??null,updatedAt:p[e.id]?.createdAt??e.updatedAt})),...l.filter(e=>"running"===e.executionState||e.schedule?.tickInProgress).map(e=>({id:`automation:${e.graphId}`,title:e.title,kind:"automation",updatedAt:e.updatedAt}))].sort((e,t)=>Date.parse(t.updatedAt)-Date.parse(e.updatedAt)),y=new Set(b.map(e=>e.id)),w=[...d.filter(e=>"active"===e.state&&"number"==typeof e.nextRunAt).map(e=>({id:`prompt:${e.id}`,title:e.name,kind:"prompt",jobId:e.id,runId:null,nextRunAt:e.nextRunAt})),...l.filter(e=>e.schedule?.state==="active"&&"number"==typeof e.schedule?.nextTickAt).map(e=>({id:`automation:${e.graphId}`,title:e.title,kind:"automation",nextRunAt:e.schedule.nextTickAt}))].filter(e=>!y.has(e.id)).sort((e,t)=>e.nextRunAt-t.nextRunAt),N=d.length+l.length;return(0,t.jsxs)("div",{className:"rounded-2xl border border-[var(--card-border)] bg-[var(--card-bg)] p-4",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(u.Clock,{className:"h-4 w-4 text-[var(--muted-foreground)]"}),(0,t.jsx)("span",{className:"text-sm font-medium text-[var(--foreground)]",children:"Scheduled Jobs"}),!x&&N>0&&(0,t.jsx)("span",{className:"rounded-full bg-[var(--secondary)] px-2 py-0.5 text-xs text-[var(--muted-foreground)]",children:N})]}),n&&(0,t.jsxs)("button",{onClick:n,className:"flex items-center gap-1 text-xs text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)]",children:["View all ",(0,t.jsx)(c.ArrowRight,{className:"w-3 h-3"})]})]}),x?(0,t.jsx)("div",{className:"space-y-2",children:[1,2,3].map(e=>(0,t.jsx)("div",{className:"h-5 animate-pulse rounded bg-[var(--muted)]"},e))}):0===N?(0,t.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"No scheduled tasks"}):(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between text-xs uppercase tracking-wide text-[var(--muted-foreground)]",children:[(0,t.jsx)("span",{children:"Currently running"}),(0,t.jsx)("span",{children:b.length})]}),0===b.length?(0,t.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"Nothing running right now"}):(0,t.jsx)("div",{className:"space-y-2",children:b.slice(0,3).map(e=>(0,t.jsxs)("button",{type:"button",onClick:()=>j(e),disabled:"prompt"!==e.kind||!s,className:`flex w-full items-center gap-2 rounded-md px-1 py-1 text-left text-sm transition-colors ${"prompt"===e.kind&&s?"cursor-pointer hover:bg-[var(--secondary)]":"cursor-default"}`,children:[(0,t.jsx)("span",{className:"h-2 w-2 shrink-0 rounded-full bg-emerald-400"}),(0,t.jsx)("span",{className:"truncate text-[var(--foreground)]",children:e.title}),(0,t.jsx)("span",{className:"ml-auto shrink-0 text-xs text-[var(--status-completed-text)]",children:"running"})]},e.id))})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between text-xs uppercase tracking-wide text-[var(--muted-foreground)]",children:[(0,t.jsx)("span",{children:"Upcoming runs"}),(0,t.jsx)("span",{children:w.length})]}),0===w.length?(0,t.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"No upcoming runs"}):(0,t.jsx)("div",{className:"space-y-2",children:w.slice(0,3).map(e=>{var r;return(0,t.jsxs)("button",{type:"button",onClick:()=>j(e),disabled:"prompt"!==e.kind||!s,className:`flex w-full items-center gap-2 rounded-md px-1 py-1 text-left text-sm transition-colors ${"prompt"===e.kind&&s?"cursor-pointer hover:bg-[var(--secondary)]":"cursor-default"}`,children:[(0,t.jsx)(u.Clock,{className:"h-3.5 w-3.5 shrink-0 text-[var(--muted-foreground)]"}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("div",{className:"truncate text-[var(--foreground)]",children:e.title}),(0,t.jsxs)("div",{className:"text-xs text-[var(--muted-foreground)]",children:["number"!=typeof(r=e.nextRunAt)?"No next run":new Intl.DateTimeFormat(void 0,{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"}).format(new Date(r))," ",(0,t.jsxs)("span",{className:"text-[var(--app-shell-soft-text)]",children:["• ",(e=>{if("number"!=typeof e)return"";let t=e-f;if(t<=0)return"now";let r=Math.ceil(t/6e4);if(r<60)return`in ${r}m`;let s=Math.floor(r/60),a=r%60;if(s<24)return 0===a?`in ${s}h`:`in ${s}h ${a}m`;let n=Math.floor(s/24),i=s%24;return 0===i?`in ${n}d`:`in ${n}d ${i}h`})(e.nextRunAt)]})]})]})]},e.id)})})]})]})]})}var p=e.i(196630),h=e.i(538292),x=e.i(116e3),g=e.i(370326);function f({projectId:e,onViewAll:r}){let{workspace:s,entryCount:a,isLoading:n,error:i}=(0,x.useProjectWorkspace)(e),l=(0,g.buildWorkspaceCategoryGroups)(s).filter(e=>e.entries.length>0).slice(0,3);return(0,t.jsxs)("div",{className:"rounded-2xl border border-[var(--card-border)] bg-[var(--card-bg)] p-4",children:[(0,t.jsxs)("div",{className:"mb-3 flex items-center justify-between",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(p.FolderGit2,{className:"h-4 w-4 text-[var(--muted-foreground)]"}),(0,t.jsx)("span",{className:"text-sm font-medium text-[var(--foreground)]",children:"Workspace Map"}),a>0&&(0,t.jsx)("span",{className:"rounded-full bg-[var(--secondary)] px-2 py-0.5 text-xs text-[var(--muted-foreground)]",children:a})]}),r&&(0,t.jsxs)("button",{type:"button",onClick:r,className:"flex items-center gap-1 text-xs text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)]",children:["View all ",(0,t.jsx)(c.ArrowRight,{className:"h-3 w-3"})]})]}),n&&(0,t.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"Loading workspace map..."}),!n&&i&&(0,t.jsx)("p",{className:"text-sm text-[var(--destructive)]",children:"Unable to load the workspace map right now."}),!n&&!i&&0===a&&(0,t.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"No workspace locations mapped yet. Add repositories, docs, or scripts so agents know where to work."}),!n&&!i&&a>0&&(0,t.jsx)("div",{className:"space-y-3",children:l.map(e=>(0,t.jsxs)("div",{className:"rounded-xl border border-[var(--border)] bg-[var(--secondary)]/30 px-3 py-2.5",children:[(0,t.jsxs)("div",{className:"mb-2 flex items-center justify-between gap-2",children:[(0,t.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:e.label}),(0,t.jsx)("span",{className:"text-[11px] text-[var(--muted-foreground)]",children:e.entries.length})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[e.entries.slice(0,2).map(e=>(0,t.jsxs)("div",{className:"flex items-start gap-2 text-sm",children:[(0,t.jsx)(h.FolderOpen,{className:"mt-0.5 h-3.5 w-3.5 shrink-0 text-[var(--muted-foreground)]"}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("div",{className:"truncate text-[var(--foreground)]",children:e.name}),(0,t.jsx)("div",{className:"truncate text-xs text-[var(--muted-foreground)]",children:e.path||e.purpose||"No path set yet"})]})]},e.id)),e.entries.length>2&&(0,t.jsxs)("p",{className:"text-xs text-[var(--muted-foreground)]",children:["+ ",e.entries.length-2," more"]})]})]},e.id))})]})}var v=e.i(938201),j=e.i(524123),b=e.i(902572),y=e.i(958164);let w={on_track:{label:"On Track",dot:"bg-[var(--status-completed)]",badge:"border-[var(--status-completed-border)] bg-[var(--status-completed-bg)] text-[var(--status-completed-text)]"},at_risk:{label:"At Risk",dot:"bg-[var(--status-blocked)]",badge:"border-[var(--status-blocked-border)] bg-[var(--status-blocked-bg)] text-[var(--status-blocked-text)]"},off_track:{label:"Off Track",dot:"bg-[var(--status-failed)]",badge:"border-[var(--status-failed-border)] bg-[var(--status-failed-bg)] text-[var(--status-failed-text)]"},done:{label:"Done",dot:"bg-[var(--muted-foreground)]",badge:"border-[var(--border)] bg-[var(--secondary)] text-[var(--muted-foreground)]"}};function N({objective:e,teamName:r,onClick:s}){let a=w[e.status]??w.on_track,n="done"===e.status;return(0,t.jsxs)("button",{type:"button",onClick:s,className:`w-full rounded-2xl border border-[var(--card-border)] bg-[var(--card-bg)] p-4 text-left transition-colors hover:bg-[var(--secondary)] ${n?"opacity-60":""}`,children:[(0,t.jsxs)("div",{className:"flex items-start justify-between gap-2 mb-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,t.jsx)("span",{className:`h-2 w-2 shrink-0 rounded-full ${a.dot}`}),(0,t.jsx)("span",{className:"truncate text-sm font-medium text-[var(--foreground)]",children:e.title})]}),(0,t.jsx)("span",{className:`shrink-0 rounded-full border px-2 py-0.5 text-[11px] font-medium ${a.badge}`,children:a.label})]}),(0,t.jsx)("div",{className:"mb-2",children:(0,t.jsx)("div",{className:"h-1.5 overflow-hidden rounded-full bg-[var(--muted)]",children:(0,t.jsx)("div",{className:"h-full rounded-full bg-emerald-500/70 transition-all",style:{width:`${Math.min(e.progress,100)}%`}})})}),(0,t.jsxs)("div",{className:"flex items-center justify-between text-xs text-[var(--muted-foreground)]",children:[(0,t.jsxs)("span",{className:r?"":"flex items-center gap-1 text-[var(--status-blocked-text)]",children:[!r&&(0,t.jsx)(y.AlertTriangle,{className:"h-3 w-3"}),r??"No team"]}),(0,t.jsxs)("span",{children:[e.progress,"%"]})]})]})}function k({projectId:e,projectSlug:s}){let n=(0,a.useRouter)(),{projects:i,isLoading:l}=(0,j.useProjects)(),o=(0,r.useMemo)(()=>i.find(e=>e.slug===s),[i,s]),d=(0,r.useMemo)(()=>(0,b.readProjectObjectivesWorkspace)(o?.metadata).objectives,[o?.metadata]),[u,m]=(0,r.useState)([]);(0,r.useEffect)(()=>{fetch(`/api/projects/${e}/teams`).then(e=>e.ok?e.json():{teams:[]}).then(e=>m(e.teams??[])).catch(()=>m([]))},[e]);let p=(0,r.useMemo)(()=>new Map(u.map(e=>[e.id,e.name])),[u]),h=d.filter(e=>e.progress>=100).length;return l?(0,t.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[1,2].map(e=>(0,t.jsx)("div",{className:"h-28 animate-pulse rounded-2xl bg-[var(--muted)]"},e))}):0===d.length?(0,t.jsxs)("button",{type:"button",onClick:()=>n.push(`/projects/${s}/objectives`),className:"w-full rounded-2xl border border-dashed border-[var(--border)] bg-[var(--card-bg)] p-6 text-center transition-colors hover:border-[var(--card-hover-border)] hover:bg-[var(--secondary)]",children:[(0,t.jsx)(v.Target,{className:"mx-auto mb-2 h-5 w-5 text-[var(--muted-foreground)]"}),(0,t.jsx)("span",{className:"text-sm text-[var(--muted-foreground)]",children:"Add your first objective"})]}):(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3 text-xs text-[var(--muted-foreground)]",children:[(0,t.jsxs)("span",{children:[d.length," ",1===d.length?"objective":"objectives"]}),(0,t.jsx)("span",{className:"text-[var(--border)]",children:"|"}),(0,t.jsxs)("span",{children:[h,"/",d.length," complete"]})]}),(0,t.jsxs)("button",{onClick:()=>n.push(`/projects/${s}/objectives`),className:"flex items-center gap-1 text-xs text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)]",children:["View all ",(0,t.jsx)(c.ArrowRight,{className:"w-3 h-3"})]})]}),(0,t.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:d.map(e=>(0,t.jsx)(N,{objective:e,teamName:p.get(e.teamId)??null,onClick:()=>n.push(`/projects/${s}/objectives/${encodeURIComponent(e.id)}`)},e.id))})]})}var I=e.i(597628),S=e.i(99296),$=e.i(287472),C=e.i(681619),A=e.i(50778);function T({icon:e,title:r,accentClass:s,onClick:a,badge:n,children:i}){return(0,t.jsxs)("button",{type:"button",onClick:a,className:"w-full rounded-2xl border border-[var(--card-border)] bg-[var(--card-bg)] p-4 text-left transition-colors hover:bg-[var(--secondary)]",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:s,children:e}),(0,t.jsx)("span",{className:"text-sm font-medium text-[var(--foreground)]",children:r})]}),n]}),i&&(0,t.jsx)("div",{className:"text-sm",children:i})]})}function R({projectId:e,projectSlug:s,primaryThreadId:n}){var i;let l=(0,a.useRouter)(),{connected:o,loading:c}=(0,$.useTrackerConnection)("linear",e),[d,u]=(0,r.useState)(null),[m,p]=(0,r.useState)(0),h=(0,A.useTerminalTabsStore)(e=>e.sessions[s])??[],[x,g]=(0,r.useState)(()=>A.useTerminalTabsStore.persist.hasHydrated()),f=(0,r.useMemo)(()=>0===h.length?null:h.reduce((e,t)=>t.createdAt>e.createdAt?t:e),[h]);return(0,r.useEffect)(()=>{let t=!1;return fetch(`/api/threads?projectId=${encodeURIComponent(e)}&limit=3&format=json`).then(e=>e.ok?e.json():{threads:{},total:0}).then(e=>{if(t)return;let r=Object.values(e.threads??{}).flatMap(e=>e.threads??[]).slice(0,3);u(r),p("number"==typeof e.total?e.total:r.length)}).catch(()=>{t||(u([]),p(0))}),()=>{t=!0}},[e]),(0,r.useEffect)(()=>(g(A.useTerminalTabsStore.persist.hasHydrated()),A.useTerminalTabsStore.persist.onFinishHydration(()=>{g(!0)})),[]),(0,t.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4",children:[(0,t.jsx)(T,{icon:(0,t.jsx)(I.MessageSquare,{className:"w-4 h-4"}),title:"Chat",accentClass:"text-indigo-400",onClick:()=>{n&&l.push(`/projects/${s}/thread/${encodeURIComponent(n)}`)},badge:m>0?(0,t.jsx)("span",{className:"rounded-full bg-[var(--secondary)] px-2 py-0.5 text-xs text-[var(--muted-foreground)]",children:m}):void 0,children:null===d?(0,t.jsx)("div",{className:"space-y-1.5",children:[1,2].map(e=>(0,t.jsx)("div",{className:"h-5 animate-pulse rounded bg-[var(--muted)]"},e))}):0===d.length?(0,t.jsx)("p",{className:"text-[var(--muted-foreground)]",children:"No threads yet"}):(0,t.jsx)("div",{className:"space-y-1",children:d.map(e=>(0,t.jsxs)("div",{className:"flex items-center gap-2 truncate text-[var(--foreground)]",children:[(0,t.jsx)(I.MessageSquare,{className:"h-3 w-3 shrink-0 text-[var(--muted-foreground)]"}),(0,t.jsx)("span",{className:"truncate",children:e.title})]},e.id))})}),(0,t.jsx)(T,{icon:(0,t.jsx)(S.TerminalSquare,{className:"w-4 h-4"}),title:"Terminal",accentClass:"text-emerald-400",onClick:()=>l.push(`/projects/${s}/terminal`),badge:x&&h.length>0?(0,t.jsx)("span",{className:"rounded-full bg-[var(--secondary)] px-2 py-0.5 text-xs text-[var(--muted-foreground)]",children:h.length}):void 0,children:x?0===h.length?(0,t.jsx)("p",{className:"text-[var(--muted-foreground)]",children:"No sessions yet"}):(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsx)("p",{className:"text-[var(--foreground)]",children:(i=h.length,`${i} saved session${1===i?"":"s"}`)}),(0,t.jsxs)("p",{className:"truncate text-[var(--muted-foreground)]",children:["Latest: ",f?.title??"Untitled terminal"]})]}):(0,t.jsx)("div",{className:"space-y-1.5",children:[1,2].map(e=>(0,t.jsx)("div",{className:"h-5 animate-pulse rounded bg-[var(--muted)]"},e))})}),(0,t.jsx)(T,{icon:(0,t.jsx)(C.TrackerIcon,{trackerType:"linear",className:"w-4 h-4"}),title:"Tasks",accentClass:"text-blue-400",onClick:()=>l.push(`/projects/${s}/tracking`),badge:c?void 0:o?(0,t.jsx)("span",{className:"rounded-full border border-[var(--status-completed-border)] bg-[var(--status-completed-bg)] px-2 py-0.5 text-[11px] text-[var(--status-completed-text)]",children:"Connected"}):(0,t.jsx)("span",{className:"rounded-full border border-[var(--border)] bg-[var(--secondary)] px-2 py-0.5 text-[11px] text-[var(--muted-foreground)]",children:"Connect"}),children:!c&&!o&&(0,t.jsx)("p",{className:"text-[var(--muted-foreground)]",children:"Connect to see issues"})})]})}function M({projectId:e,projectSlug:r,projectDescription:s,threadIds:n}){let l=(0,a.useRouter)(),c=n[0]??null;return(0,t.jsx)("div",{className:"h-full overflow-y-auto",children:(0,t.jsxs)("div",{className:"max-w-5xl mx-auto px-6 py-8 space-y-8",children:[s&&(0,t.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:s}),(0,t.jsxs)("section",{children:[(0,t.jsx)("h2",{className:"mb-3 text-sm text-[var(--muted-foreground)]",children:"What you're working toward"}),(0,t.jsx)(k,{projectId:e,projectSlug:r})]}),(0,t.jsxs)("section",{children:[(0,t.jsx)("h2",{className:"mb-3 text-sm text-[var(--muted-foreground)]",children:"Start working"}),(0,t.jsx)(R,{projectId:e,projectSlug:r,primaryThreadId:c})]}),(0,t.jsxs)("section",{children:[(0,t.jsx)("h2",{className:"mb-3 text-sm text-[var(--muted-foreground)]",children:"What's happening now"}),(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsx)(m,{projectId:e,projectSlug:r,onViewAll:()=>l.push(`/projects/${r}/automations`)}),(0,t.jsx)(i,{projectSlug:r,projectThreadIds:n}),(0,t.jsx)(o,{projectId:e,projectSlug:r,projectThreadIds:n})]})]}),(0,t.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[(0,t.jsx)(f,{projectId:e,onViewAll:()=>l.push(`/projects/${r}/folders`)}),(0,t.jsx)(d,{projectId:e,onViewAll:()=>l.push(`/projects/${r}/teams`)})]})]})})}var U=e.i(378562);function E({params:e}){let{slug:a}=(0,r.use)(e),{projects:n}=(0,j.useProjectsWithAgents)(),i=n.find(e=>e.slug===a),[l,o]=(0,r.useState)("loading");return((0,r.useEffect)(()=>{if(!i)return;let e=!1;return(async()=>{try{let t=await fetch(`/api/projects/${i.id}/teams`,{cache:"no-store"});if(e)return;let r=t.ok?await t.json():{teams:[]},s=Array.isArray(r?.teams)?r.teams:[];o(0===s.length?"empty":"has-teams")}catch{e||o("has-teams")}})(),()=>{e=!0}},[i]),i)?"empty"===l?(0,t.jsx)(U.EmptyStateCard,{icon:(0,t.jsx)(s.Users,{className:"w-6 h-6 text-[var(--foreground)]"}),title:`Add a team to ${i.name}`,description:"Teams are the agents that work through your tickets and PRs. Add one to start shipping.",ctaLabel:"Add a team",ctaHref:`/projects/${i.slug}/teams/new`}):(0,t.jsx)(M,{projectId:i.id,projectSlug:i.slug,projectName:i.name,projectDescription:i.description,projectMetadata:i.metadata,repos:i.repos,threadIds:i.thread_ids}):(0,t.jsx)("div",{className:"flex items-center justify-center h-full text-sm text-zinc-500",children:"Loading project..."})}e.s(["default",()=>E],317389)}]);
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,629155,e=>{"use strict";let t=(0,e.i(363732).default)("hash",[["line",{x1:"4",x2:"20",y1:"9",y2:"9",key:"4lhtct"}],["line",{x1:"4",x2:"20",y1:"15",y2:"15",key:"vyu0kd"}],["line",{x1:"10",x2:"8",y1:"3",y2:"21",key:"1ggp8o"}],["line",{x1:"16",x2:"14",y1:"3",y2:"21",key:"weycgp"}]]);e.s(["Hash",()=>t],629155)},878001,507193,493141,e=>{"use strict";var t=e.i(363732);let r=(0,t.default)("arrow-down",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]]);e.s(["ArrowDown",()=>r],878001);let a=(0,t.default)("arrow-up",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]);e.s(["ArrowUp",()=>a],507193);let n=(0,t.default)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);e.s(["ChevronLeft",()=>n],493141)},982141,e=>{"use strict";let t="agx:lastRun",r="agx:lastSession";function a(){return void 0!==window.localStorage}function n(e){if(!a())return{};try{let t=window.localStorage.getItem(e);if(!t)return{};return JSON.parse(t)}catch{return{}}}function s(e,t){if(a())try{window.localStorage.setItem(e,JSON.stringify(t))}catch{}}function l(e){return n(t)[e]??null}function i(e,r){let a=n(t);a[e]=r,s(t,a)}function o(e){return n(r)[e]??null}function d(e,t){let a=n(r);a[e]=t,s(r,a)}e.s(["loadLastRunForIssue",()=>l,"loadLastSessionForEntity",()=>o,"persistLastRunForIssue",()=>i,"persistLastSessionForEntity",()=>d])},276013,e=>{"use strict";var t=e.i(762281),r=e.i(935851);function a({onResize:e,className:a,ariaLabel:n}){let s=(0,r.useRef)(0),l=(0,r.useRef)(e);l.current=e;let i=(0,r.useCallback)(e=>{e.preventDefault(),s.current=e.clientX,document.body.style.cursor="col-resize",document.body.style.userSelect="none";let t=e=>{let t=e.clientX-s.current;s.current=e.clientX,l.current(t)},r=()=>{document.body.style.cursor="",document.body.style.userSelect="",window.removeEventListener("mousemove",t),window.removeEventListener("mouseup",r)};window.addEventListener("mousemove",t),window.addEventListener("mouseup",r)},[]);return(0,t.jsx)("div",{role:"separator","aria-orientation":"vertical","aria-label":n,className:`group relative z-10 w-0 shrink-0 cursor-col-resize ${a??""}`,onMouseDown:i,children:(0,t.jsx)("div",{className:"absolute inset-y-0 -left-1 w-2 transition-colors group-hover:bg-[var(--primary)]/40"})})}e.s(["ResizeHandle",()=>a])},640481,e=>{"use strict";let t=(0,e.i(363732).default)("pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);e.s(["Pencil",()=>t],640481)},558201,e=>{"use strict";let t=(0,e.i(363732).default)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]);e.s(["Terminal",()=>t],558201)},781873,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"BailoutToCSR",{enumerable:!0,get:function(){return n}});let a=e.r(804984);function n({reason:e,children:t}){if("u"<typeof window)throw Object.defineProperty(new a.BailoutToCSRError(e),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return t}},373512,(e,t,r)=>{"use strict";function a(e){return e.split("/").map(e=>encodeURIComponent(e)).join("/")}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"encodeURIPath",{enumerable:!0,get:function(){return a}})},974052,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"PreloadChunks",{enumerable:!0,get:function(){return o}});let a=e.r(762281),n=e.r(866389),s=e.r(721014),l=e.r(373512),i=e.r(162998);function o({moduleIds:e}){if("u">typeof window)return null;let t=s.workAsyncStorage.getStore();if(void 0===t)return null;let r=[];if(t.reactLoadableManifest&&e){let a=t.reactLoadableManifest;for(let t of e){if(!a[t])continue;let e=a[t].files;r.push(...e)}}if(0===r.length)return null;let o=(0,i.getDeploymentIdQueryOrEmptyString)();return(0,a.jsx)(a.Fragment,{children:r.map(e=>{let r=`${t.assetPrefix}/_next/${(0,l.encodeURIPath)(e)}${o}`;return e.endsWith(".css")?(0,a.jsx)("link",{precedence:"dynamic",href:r,rel:"stylesheet",as:"style",nonce:t.nonce},e):((0,n.preload)(r,{as:"script",fetchPriority:"low",nonce:t.nonce}),null)})})}},184790,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return d}});let a=e.r(762281),n=e.r(935851),s=e.r(781873),l=e.r(974052);function i(e){return{default:e&&"default"in e?e.default:e}}let o={loader:()=>Promise.resolve(i(()=>null)),loading:null,ssr:!0},d=function(e){let t={...o,...e},r=(0,n.lazy)(()=>t.loader().then(i)),d=t.loading;function c(e){let i=d?(0,a.jsx)(d,{isLoading:!0,pastDelay:!0,error:null}):null,o=!t.ssr||!!t.loading,c=o?n.Suspense:n.Fragment,u=t.ssr?(0,a.jsxs)(a.Fragment,{children:["u"<typeof window?(0,a.jsx)(l.PreloadChunks,{moduleIds:t.modules}):null,(0,a.jsx)(r,{...e})]}):(0,a.jsx)(s.BailoutToCSR,{reason:"next/dynamic",children:(0,a.jsx)(r,{...e})});return(0,a.jsx)(c,{...o?{fallback:i}:{},children:u})}return c.displayName="LoadableComponent",c}},353899,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return n}});let a=e.r(555682)._(e.r(184790));function n(e,t){let r={};"function"==typeof e&&(r.loader=e);let n={...r,...t};return(0,a.default)({...n,modules:n.loadableGenerated?.modules})}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},638703,e=>{"use strict";var t=e.i(762281),r=e.i(498027);let a=(0,e.i(363732).default)("chevron-up",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]);function n({visible:e,onClick:n,direction:s="bottom",label:l,offsetClassName:i}){if(!e)return null;let o="top"===s?a:r.ChevronDown;return(0,t.jsx)("div",{className:`pointer-events-none absolute inset-x-0 ${i??("top"===s?"top-3":"bottom-3")} z-10 flex justify-center`,children:(0,t.jsxs)("button",{type:"button",onClick:n,className:`pointer-events-auto inline-flex items-center gap-1.5 px-3 py-1.5 rounded-full border border-[var(--app-shell-border)] bg-[var(--app-shell-surface)] text-[var(--foreground)] text-xs font-medium shadow-md hover:bg-[var(--app-shell-elevated)] transition-colors animate-in fade-in ${"top"===s?"slide-in-from-top-1":"slide-in-from-bottom-1"} duration-200`,children:[(0,t.jsx)(o,{className:"w-3.5 h-3.5"}),l??("top"===s?"Back to top":"Jump to latest")]})})}e.s(["JumpToLatestButton",()=>n],638703)},741746,e=>{"use strict";let t=(0,e.i(363732).default)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);e.s(["AlertCircle",()=>t],741746)},889016,e=>{"use strict";let t=(0,e.i(363732).default)("tag",[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]]);e.s(["Tag",()=>t],889016)},794731,e=>{"use strict";let t=(0,e.i(363732).default)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]);e.s(["Trash2",()=>t],794731)},66386,e=>{"use strict";var t=e.i(935851),r=e.i(506420);function a(e){return"string"!=typeof e?null:e.trim()||null}function n(e,t){return(e.get(t)?.trim()??"")||null}function s(){let e=(0,r.useRouter)(),s=(0,r.usePathname)(),l=(0,r.useSearchParams)(),i=(0,t.useCallback)(e=>n(l,e),[l]),o=(0,t.useCallback)((e,t)=>(function(e,t,r){let s=function(e,t){let r={...t},s=e=>Object.prototype.hasOwnProperty.call(t,e);if(s("issue")&&!s("run")){let s=n(e,"issue");a(t.issue)!==s&&(r.run=null)}if(s("job")&&!s("run")){let s=n(e,"job");a(t.job)!==s&&(r.run=null)}if(s("open")&&!s("message")){let s=n(e,"open");a(t.open)!==s&&(r.message=null)}if(s("group")&&!s("issue")){let s=n(e,"group");a(t.group)!==s&&(r.issue=null,r.run=null)}if(s("issue")&&!s("group")){let s=n(e,"issue");a(t.issue)!==s&&(r.group=null)}return r}(t,r),l=new URLSearchParams(t.toString());for(let[e,t]of Object.entries(s)){let r=a(t);r?l.set(e,r):l.delete(e)}let i=l.toString();return i?`${e}?${i}`:e})(t??s,l,e),[s,l]),d=(0,t.useCallback)((t,r)=>{e.push(o(t,r))},[o,e]),c=(0,t.useCallback)((t,r)=>{e.replace(o(t,r))},[o,e]);return{pathname:s,searchParams:l,getSelection:i,buildHref:o,pushSelection:d,replaceSelection:c}}e.s(["useUrlSelection",()=>s])},203096,e=>{"use strict";let t=(0,e.i(363732).default)("refresh-cw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);e.s(["RefreshCw",()=>t],203096)},580873,e=>{"use strict";let t=(0,e.i(363732).default)("clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6l4 2",key:"mmk7yg"}]]);e.s(["Clock",()=>t],580873)},990933,e=>{"use strict";function t(e){if("string"==typeof e)return e.trim()||void 0}function r(e,r){let a=new Set,n=new Set;!function e(t,r){if(t)for(let a of t)r(a),e(a.content,r)}(e.content,e=>{if("participantMention"!==e.type)return;let t=e.attrs??{},r="string"==typeof t.id?t.id.trim():"",s="string"==typeof t.kind?t.kind:"agent";r&&"agent"===s&&(a.add(r),"parallel"===t.mode&&n.add(r))});let s=t(r);return{...s?{pinnedParticipantId:s}:{},mentionedParticipantIds:Array.from(a),parallelParticipantIds:Array.from(n)}}function a(e,r){let a=function(e){if(!Array.isArray(e))return[];let t=new Set,r=[];for(let a of e){if("string"!=typeof a)continue;let e=a.trim();!e||t.has(e)||(t.add(e),r.push(e))}return r}(e),n=t(r);return n&&a.includes(n)?[n,...a.filter(e=>e!==n)]:a}e.s(["extractComposerRouting",()=>r,"orderParticipantIds",()=>a])},352687,e=>{"use strict";var t=e.i(762281),r=e.i(935851);function a({isOpen:e,title:a,message:n,preview:s,confirmLabel:l="Confirm",cancelLabel:i="Cancel",variant:o="default",onConfirm:d,onCancel:c}){let u=(0,r.useRef)(null),p=(0,r.useRef)(null);(0,r.useEffect)(()=>{if(e){let e=setTimeout(()=>u.current?.focus(),50);return()=>clearTimeout(e)}},[e]);let f=(0,r.useCallback)(e=>{"Escape"===e.key&&c()},[c]);if(!e)return null;let m="danger"===o;return(0,t.jsxs)("div",{className:"fixed inset-0 z-[100] flex items-center justify-center bg-black/50 backdrop-blur-md",style:{animation:"confirm-overlay-in 200ms ease-out"},onClick:e=>e.target===e.currentTarget&&c(),onKeyDown:f,children:[(0,t.jsxs)("div",{ref:p,className:"w-full max-w-md mx-4 bg-[var(--card-bg)] rounded-2xl border border-[var(--card-border)] shadow-2xl overflow-hidden",style:{animation:"confirm-dialog-in 250ms cubic-bezier(0.34, 1.56, 0.64, 1)"},children:[(0,t.jsx)("div",{className:"px-6 pt-6 pb-3",children:(0,t.jsxs)("div",{className:"flex items-start gap-4",children:[m&&(0,t.jsx)("div",{className:"flex-shrink-0 w-11 h-11 rounded-full bg-red-500/10 border border-red-500/20 flex items-center justify-center",children:(0,t.jsx)("svg",{className:"w-5 h-5 text-red-500",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M14.74 9l-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 01-2.244 2.077H8.084a2.25 2.25 0 01-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 00-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 013.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 00-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 00-7.5 0"})})}),(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsx)("h3",{className:"text-[15px] font-semibold text-[var(--foreground)]",children:a}),(0,t.jsx)("p",{className:"mt-1 text-[13px] text-[var(--muted-foreground)] leading-relaxed",children:n})]})]})}),s&&(0,t.jsx)("div",{className:"mx-6 mb-3 px-3 py-2.5 rounded-lg bg-[var(--muted)]/40 border border-[var(--card-border)]",children:(0,t.jsxs)("p",{className:"text-[12px] text-[var(--muted-foreground)] line-clamp-3 leading-relaxed italic",children:["“",s,"”"]})}),(0,t.jsx)("div",{className:"mx-6 border-t border-[var(--card-border)]"}),(0,t.jsxs)("div",{className:"px-6 py-4 flex items-center justify-end gap-2.5",children:[(0,t.jsx)("button",{onClick:c,className:"px-4 py-2 rounded-lg text-[13px] font-medium text-[var(--muted-foreground)] hover:text-[var(--foreground)] hover:bg-[var(--muted)]/60 transition-all duration-150",children:i}),(0,t.jsx)("button",{ref:u,onClick:d,className:`px-4 py-2 rounded-lg text-[13px] font-medium transition-all duration-150 ${m?"bg-red-500 text-white hover:bg-red-600 active:scale-[0.97]":"btn-primary active:scale-[0.97]"}`,children:l})]})]}),(0,t.jsx)("style",{children:`
|
|
2
|
+
@keyframes confirm-overlay-in {
|
|
3
|
+
from { opacity: 0; }
|
|
4
|
+
to { opacity: 1; }
|
|
5
|
+
}
|
|
6
|
+
@keyframes confirm-dialog-in {
|
|
7
|
+
from {
|
|
8
|
+
opacity: 0;
|
|
9
|
+
transform: scale(0.9) translateY(10px);
|
|
10
|
+
}
|
|
11
|
+
to {
|
|
12
|
+
opacity: 1;
|
|
13
|
+
transform: scale(1) translateY(0);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
`})]})}e.s(["default",()=>a])},945028,490011,e=>{"use strict";var t=e.i(935851);function r(e){return`threadId=${encodeURIComponent(e)}`}function a(e){return`workspaceId=${encodeURIComponent(e)}`}function n(e){let[n,s]=(0,t.useState)([]),[l,i]=(0,t.useState)([]),[o,d]=(0,t.useState)([]),c=(0,t.useRef)(e),u=(0,t.useRef)(e);c.current=e,u.current!==e&&(u.current=e,s([]),i([]),d([]));let p=(0,t.useCallback)(async e=>{let t=e?.trim()||c.current?.trim();if(!t){s([]),i([]);return}let n=r(t);try{let[e,r]=await Promise.all([fetch(`/api/history?${n}`),fetch(`/api/logs?${a(t)}`)]);if(c.current!==t)return;e.ok&&s(await e.json()),r.ok&&i(await r.json())}catch{}},[]),f=(0,t.useCallback)(async e=>{let t=e?.trim()||c.current?.trim();if(!t){s([]),i([]);return}let n=r(t);await Promise.all([fetch(`/api/history?${n}`,{method:"DELETE"}),fetch(`/api/logs?${a(t)}`,{method:"DELETE"})]),c.current===t&&(s([]),i([]))},[]),m=(0,t.useCallback)(async(e,t=10,r,a,n,l,i,o,u,p)=>{let f=r?.trim()||c.current?.trim();if(!f)return;let m=Date.now(),h=crypto.randomUUID(),x={id:h,role:"user",participantId:null,content:e,timestamp:m,rootMessageId:a||null,parentMessageId:a||null,depth:+!!a,...l&&l.length>0?{attachments:l}:{}};s(e=>[...e,x]);try{let r=await fetch("/api/chat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:f,prompt:e,promptPrefix:u||void 0,maxRounds:t,userMessageId:h,rootMessageId:a||void 0,attachmentIds:n?.length?n:void 0,activeParticipantIds:Array.isArray(i)?i:void 0,projectSlug:o?.trim()||void 0,routing:p})}),l=await r.json().catch(e=>(console.warn("[useGroupChat] failed to parse run response:",e),null));r.ok&&l?.chatRunId?d(e=>[{chatRunId:l.chatRunId,threadId:f,rootMessageId:a||h,status:"queued",optimistic:!0,enqueuedAt:Date.now()},...e.filter(e=>e.chatRunId!==l.chatRunId)]):r.ok||(console.error(`[useGroupChat] POST /api/chat failed (${r.status}):`,l?.error||r.statusText),s(e=>e.map(e=>e.id===h?{...e,sendFailed:!0}:e)))}catch(e){console.error("[useGroupChat] network error sending message:",e),s(e=>e.map(e=>e.id===h?{...e,sendFailed:!0}:e))}return h},[]),h=(0,t.useCallback)(async()=>{let e=c.current?.trim();if(e)try{await fetch(`/api/processes?workspaceId=${encodeURIComponent(e)}`,{method:"DELETE"})}catch{}},[]),x=(0,t.useCallback)(async e=>{let t=c.current?.trim();if(t)try{await fetch(`/api/processes?workspaceId=${encodeURIComponent(t)}&threadId=${encodeURIComponent(e)}`,{method:"DELETE"})}catch{}},[]);return{messages:n,setMessages:s,logs:l,sendMessage:m,loadHistory:p,clearHistory:f,clearLogs:(0,t.useCallback)(async e=>{let t=e?.trim()||c.current?.trim();t?(await fetch(`/api/logs?${a(t)}`,{method:"DELETE"}).catch(e=>console.warn("[useGroupChat] delete logs failed:",e)),c.current===t&&i([])):i([])},[]),chatRuns:o,setChatRuns:d,stop:h,stopThread:x}}e.s(["useGroupChat",()=>n],945028);let s=new Set(["spawning","running"]);function l(e,r){let a=r?.intervalMs??1500,n=r?.idleIntervalMs??1e4,[l,i]=(0,t.useState)(new Set),[o,d]=(0,t.useState)([]),[c,u]=(0,t.useState)({}),[p,f]=(0,t.useState)([]),m=(0,t.useRef)(e);m.current=e,(0,t.useRef)(r?.messages??[]).current=r?.messages??[];let h=(0,t.useRef)(r?.setMessages);h.current=r?.setMessages;let x=(0,t.useRef)(0),g=(0,t.useRef)(new Map),v=(0,t.useRef)(new Map);(0,t.useEffect)(()=>{let e=r?.messages??[];if(e.length>0){let t=Math.max(...e.map(e=>e.timestamp));t>x.current&&(x.current=t)}},[r?.messages]),(0,t.useEffect)(()=>()=>{for(let e of g.current.values())e.close();g.current.clear()},[]);let y=(0,t.useCallback)(async()=>{let e=m.current;if(!e){i(new Set),d([]),u({}),f([]);return}let t=null;if(e.threadId?t=`/api/processes?threadId=${encodeURIComponent(e.threadId)}`:e.workspaceId&&(t=`/api/processes?workspaceId=${encodeURIComponent(e.workspaceId)}`),!t){i(new Set),d([]),u({}),f([]);return}try{let a=e.workspaceId||e.threadId,n=a?`/api/history?threadId=${encodeURIComponent(a)}&since=${x.current}`:null,l=a?`/api/chat-runs?threadId=${encodeURIComponent(a)}&limit=20`:null,o=[fetch(t)];n&&o.push(fetch(n)),l&&o.push(fetch(l));let[c,u,p]=await Promise.all(o),g=m.current;if(g?.threadId!==e.threadId||g?.workspaceId!==e.workspaceId)return;if(c.ok){let e=await c.json();d(e);let t=new Set(e.filter(e=>s.has(e.state)).map(e=>e.agentId));i(t)}if(p?.ok){var r;let e=(r=await p.json(),Array.isArray(r)?r.map(e=>{if(!e||"object"!=typeof e)return null;let t="string"==typeof e.chatRunId?e.chatRunId:"string"==typeof e.id?e.id:null,r="string"==typeof e.threadId?e.threadId:null,a="string"==typeof e.status?e.status:null,n="string"==typeof e.rootMessageId?e.rootMessageId:(e.rootMessageId,null);return t&&r&&a&&("queued"===a||"running"===a||"awaiting_user"===a||"blocked"===a||"completed"===a||"failed"===a||"cancelled"===a)?{chatRunId:t,threadId:r,rootMessageId:n,status:a,optimistic:!1}:null}).filter(e=>!!e):[]);f(e)}if(u?.ok&&h.current){let e=await u.json();if(e.length>0){let t=Math.max(...e.map(e=>e.timestamp));t>x.current&&(x.current=t),h.current(t=>{let r=new Set(t.map(e=>e.id)),a=e.filter(e=>!r.has(e.id)),n=t.map(t=>e.find(e=>e.id===t.id)??t);return 0===a.length?n:[...n,...a].sort((e,t)=>e.timestamp-t.timestamp)})}}}catch{}},[]);(0,t.useEffect)(()=>{let e=p.filter(e=>"queued"===e.status||"running"===e.status),t=new Set(e.map(e=>e.chatRunId));for(let[e,r]of g.current.entries())t.has(e)||(r.close(),g.current.delete(e),v.current.delete(e));for(let t of e){if(g.current.has(t.chatRunId))continue;let e=new EventSource(`/api/chat-runs/${encodeURIComponent(t.chatRunId)}/events`);g.current.set(t.chatRunId,e);let r=new Map;v.current.set(t.chatRunId,r);let a=new Set;e.addEventListener("chat",n=>{let s;try{s=JSON.parse(n.data)}catch{return}switch(s.type){case"participant-start":case"participant-thinking":a.add(s.participantId),r.has(s.participantId)||r.set(s.participantId,{text:"",thoughts:[]}),u(e=>e[s.participantId]?e:{...e,[s.participantId]:{content:"",rootMessageId:t.rootMessageId??null}});break;case"text-delta":{r.has(s.participantId)||r.set(s.participantId,{text:"",thoughts:[]});let e=r.get(s.participantId);e&&(e.text+=s.delta,u(r=>{let a={...r},n=t.rootMessageId??null;return a[s.participantId]={content:e.text,rootMessageId:n},a}));break}case"participant-thought":{let e=r.get(s.participantId);e&&(e.thoughts.push(s.content),u(t=>{let r=t[s.participantId];return r?{...t,[s.participantId]:{...r,thoughts:[...e.thoughts]}}:t}));break}case"participant-end":a.delete(s.participantId),y().then(()=>{u(e=>{let t={...e};return delete t[s.participantId],t})});break;case"participant-error":a.delete(s.participantId),y().then(()=>{u(e=>{let t={...e};return delete t[s.participantId],t})});break;case"done":e.close(),g.current.delete(t.chatRunId),v.current.delete(t.chatRunId)}}),e.onerror=()=>{e.close(),g.current.delete(t.chatRunId),v.current.delete(t.chatRunId)}}},[p]);let b=e?.threadId||e?.workspaceId||null,j=p.some(e=>"queued"===e.status||"running"===e.status),w=o.some(e=>s.has(e.state)),k=j||w?a:n;return(0,t.useEffect)(()=>{if(!b){i(new Set),d([]),u({}),f([]);return}y();let e=setInterval(y,k);return()=>clearInterval(e)},[b,k,y]),{activeAgents:l,processes:o,streaming:c,chatRuns:p,poll:y}}e.s(["useProcessPolling",()=>l],490011)},417442,e=>{"use strict";let t=(0,e.i(363732).default)("arrow-right",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);e.s(["ArrowRight",()=>t],417442)},437307,e=>{"use strict";let t=(0,e.i(363732).default)("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);e.s(["XCircle",()=>t],437307)},245110,e=>{"use strict";let t=(0,e.i(363732).default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);e.s(["ExternalLink",()=>t],245110)},257587,e=>{"use strict";let t=(0,e.i(363732).default)("settings",[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);e.s(["Settings",()=>t],257587)},693646,e=>{"use strict";let t=(0,e.i(363732).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"}]]);e.s(["Save",()=>t],693646)},459073,e=>{"use strict";let t=(0,e.i(363732).default)("folder-plus",[["path",{d:"M12 10v6",key:"1bos4e"}],["path",{d:"M9 13h6",key:"1uhe8q"}],["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]);e.s(["FolderPlus",()=>t],459073)},509501,e=>{"use strict";var t=e.i(935851);function r(e,r){let[a,n]=(0,t.useState)([]),[s,l]=(0,t.useState)(!1);return(0,t.useEffect)(()=>{let t=!1;return async function(){try{let a=await fetch("/api/participants"),s=a.ok?await a.json():[];if(!r){t||(n(s),l(!0));return}let i=new URLSearchParams;i.set("projectId",r);let o=await fetch(`/api/trackers/${encodeURIComponent(e)}/worker?${i}`).catch(()=>null),d=o?.ok?await o.json().catch(()=>null):null,c=d?.job?.teamId||void 0;if(c){let e=await fetch(`/api/projects/${encodeURIComponent(r)}/teams/${encodeURIComponent(c)}/agents`);if(e.ok){let r=await e.json(),a=Array.isArray(r.agents)?r.agents.sort((e,t)=>(e.routing_order??0)-(t.routing_order??0)).map(e=>e.agent_id).filter(e=>"string"==typeof e&&e.trim().length>0):[];if(a.length>0){let e=new Map(a.map((e,t)=>[e,t])),r=s.filter(t=>e.has(t.id)).sort((t,r)=>(e.get(t.id)??Number.MAX_SAFE_INTEGER)-(e.get(r.id)??Number.MAX_SAFE_INTEGER));if(!t&&r.length>0){n(r),l(!0);return}}}}let u=await fetch(`/api/projects/${encodeURIComponent(r)}/agents`);if(!u.ok){t||(n(s),l(!0));return}let p=await u.json(),f=Array.isArray(p.agents)?p.agents.map(e=>e.agent_id).filter(e=>"string"==typeof e&&e.trim().length>0):[],m=new Map(f.map((e,t)=>[e,t])),h=s.filter(e=>m.has(e.id)).sort((e,t)=>(m.get(e.id)??Number.MAX_SAFE_INTEGER)-(m.get(t.id)??Number.MAX_SAFE_INTEGER));t||(n(h),l(!0))}catch{t||(n([]),l(!0))}}(),()=>{t=!0}},[e,r]),{participants:a,participantsLoaded:s}}e.s(["useTrackerParticipants",()=>r])},695717,e=>{e.v({blip:"review-module__lz5SUa__blip",btn:"review-module__lz5SUa__btn",btnGhost:"review-module__lz5SUa__btnGhost",btnPrimary:"review-module__lz5SUa__btnPrimary",kbd:"review-module__lz5SUa__kbd",leftCol:"review-module__lz5SUa__leftCol",midRow:"review-module__lz5SUa__midRow",mono:"review-module__lz5SUa__mono",reviewBody:"review-module__lz5SUa__reviewBody",rightPane:"review-module__lz5SUa__rightPane",root:"review-module__lz5SUa__root",slim:"review-module__lz5SUa__slim"})},666213,860641,e=>{"use strict";var t=e.i(762281),r=e.i(935851),a=e.i(695717);function n({pr:e}){return(0,t.jsxs)("header",{style:{height:44,flex:"0 0 auto",display:"flex",alignItems:"center",borderBottom:"1px solid var(--line)",background:"var(--bg-raised)",fontFamily:"var(--font-mono)",fontSize:11},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"0 14px",color:"var(--fg)",fontWeight:700,borderRight:"1px solid var(--line)",height:"100%"},children:[(0,t.jsx)("span",{style:{fontFamily:"var(--font-sans)",letterSpacing:"-0.02em",fontSize:14},children:"AGX"}),(0,t.jsx)("span",{style:{color:"var(--fg-mute)",fontSize:10,marginLeft:4},children:"review"})]}),(0,t.jsx)(s,{label:"Repository",value:e.repoId,caret:!0}),(0,t.jsx)(s,{label:"Branch",value:e.headRef,caret:!0,accent:!0}),(0,t.jsx)(s,{label:"Base",value:`← ${e.baseRef}`,caret:!0}),(0,t.jsx)(s,{label:"PR",value:`#${e.number}`}),(0,t.jsx)("div",{style:{marginLeft:"auto",display:"flex",alignItems:"center",gap:12,padding:"0 14px"},children:(0,t.jsx)("a",{href:e.url,target:"_blank",rel:"noreferrer",className:`${a.default.btn} ${a.default.btnGhost}`,children:"↗ open on github"})})]})}function s({label:e,value:r,caret:a,accent:n}){return(0,t.jsxs)("div",{style:{height:"100%",borderRight:"1px solid var(--line)",padding:"0 16px",display:"flex",flexDirection:"column",justifyContent:"center",minWidth:180},children:[(0,t.jsx)("div",{style:{color:"var(--fg-mute)",fontSize:9,letterSpacing:"0.16em",textTransform:"uppercase",marginBottom:2,fontFamily:"var(--font-mono)"},children:e}),(0,t.jsxs)("div",{style:{color:n?"var(--accent)":"var(--fg)",fontFamily:"var(--font-mono)",fontSize:12,display:"flex",alignItems:"center",gap:6,maxWidth:240,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[(0,t.jsx)("span",{style:{overflow:"hidden",textOverflow:"ellipsis"},children:r}),a&&(0,t.jsx)("span",{style:{color:"var(--fg-ghost)",fontSize:10},children:"⌄"})]})]})}let l={added:"A",modified:"M",removed:"D",renamed:"R"},i={A:"var(--add)",M:"var(--accent)",D:"var(--del)",R:"var(--cool)"};function o({files:e,selected:r,onSelect:n}){let s=e.reduce((e,t)=>({a:e.a+t.additions,d:e.d+t.deletions}),{a:0,d:0});return(0,t.jsxs)("aside",{className:a.default.filesSide,style:{flex:1,borderRight:"1px solid var(--line)",background:"var(--bg-inset)",display:"flex",flexDirection:"column",minWidth:0,overflow:"hidden"},children:[(0,t.jsx)("div",{style:{display:"flex",alignItems:"stretch",borderBottom:"1px solid var(--line)",fontFamily:"var(--font-mono)",fontSize:10},children:(0,t.jsxs)("div",{style:{flex:1,padding:"10px 12px",background:"var(--bg-card)",color:"var(--fg)",borderBottom:"2px solid var(--accent)",letterSpacing:"0.1em",textTransform:"uppercase"},children:["Changes ",(0,t.jsx)("span",{style:{color:"var(--fg-mute)",marginLeft:4},children:e.length})]})}),(0,t.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",borderBottom:"1px solid var(--line)",fontFamily:"var(--font-mono)",fontSize:9,letterSpacing:"0.1em",textTransform:"uppercase"},children:[(0,t.jsx)(d,{k:"changed",v:String(e.length),sub:`+${s.a} −${s.d}`,border:!0}),(0,t.jsx)(d,{k:"lines",v:`+${s.a}`,sub:`−${s.d}`})]}),(0,t.jsx)("div",{className:a.default.slim,style:{flex:1,overflow:"auto"},children:e.map(e=>(0,t.jsx)(c,{file:e,active:r===e.path,onClick:()=>n(e.path)},e.path))})]})}function d({k:e,v:r,sub:a,border:n}){return(0,t.jsxs)("div",{style:{padding:"8px 10px",borderRight:n?"1px solid var(--line)":"none",background:"var(--bg-card)"},children:[(0,t.jsx)("div",{style:{color:"var(--fg-mute)",marginBottom:3},children:e}),(0,t.jsx)("div",{style:{color:"var(--fg)",fontSize:13,letterSpacing:0,fontWeight:600},children:r}),(0,t.jsx)("div",{style:{color:"var(--fg-mute)",marginTop:2,fontSize:9,letterSpacing:0,textTransform:"none"},children:a})]})}function c({file:e,active:r,onClick:a}){let n=e.path.lastIndexOf("/"),s=n>=0?e.path.slice(0,n):"",o=n>=0?e.path.slice(n+1):e.path,d=l[e.status]??"M",c=i[d]??"var(--fg)";return(0,t.jsxs)("div",{role:"button",tabIndex:0,onClick:a,onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&a()},style:{display:"grid",gridTemplateColumns:"14px 1fr auto",gap:8,padding:"7px 12px",cursor:"pointer",background:r?"var(--bg-card)":"transparent",borderLeft:r?"2px solid var(--accent)":"2px solid transparent",alignItems:"center"},children:[(0,t.jsx)("span",{style:{fontFamily:"var(--font-mono)",fontSize:10,fontWeight:700,color:c,textAlign:"center"},children:d}),(0,t.jsxs)("div",{style:{minWidth:0,display:"flex",flexDirection:"column"},children:[(0,t.jsx)("span",{style:{color:r?"var(--fg)":"var(--fg-dim)",fontFamily:"var(--font-mono)",fontSize:12,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:o}),s&&(0,t.jsxs)("span",{style:{color:"var(--fg-mute)",fontFamily:"var(--font-mono)",fontSize:9,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:[s,"/"]})]}),(0,t.jsxs)("span",{style:{fontFamily:"var(--font-mono)",fontSize:10,display:"flex",gap:6},children:[(0,t.jsxs)("span",{style:{color:"var(--add)"},children:["+",e.additions]}),(0,t.jsxs)("span",{style:{color:"var(--del)"},children:["−",e.deletions]})]})]})}let u=/^@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@(.*)$/,p={claude:"#c98f5b",codex:"#a8a293",gemini:"#9ab8d8",ollama:"#7dd97b"};function f({name:e,provider:r="claude",size:a=18}){let n=e.split(/[\s-]/).map(e=>e[0]).filter(Boolean).slice(0,2).join("").toUpperCase();return(0,t.jsxs)("span",{title:`${e} \xb7 ${r}`,style:{display:"inline-flex",alignItems:"center",justifyContent:"center",width:a,height:a,borderRadius:3,background:"var(--bg-inset)",border:"1px solid var(--line-strong)",color:"var(--fg)",fontSize:Math.round(.52*a),fontWeight:600,position:"relative",fontFamily:"var(--font-mono)"},children:[n,(0,t.jsx)("span",{style:{position:"absolute",bottom:-2,right:-2,width:6,height:6,borderRadius:"50%",background:p[r]??"var(--fg-mute)",border:"1.5px solid var(--bg-card)"}})]})}let m={added:"A",modified:"M",removed:"D",renamed:"R"};function h({file:e,comments:n}){let s=(0,r.useMemo)(()=>(function(e){if(!e)return[];let t=e.split("\n"),r=[],a=null,n=0,s=0;for(let e of t){let t=u.exec(e);if(t){a&&r.push(a),n=Number(t[1]),s=Number(t[2]),a={head:e,section:t[3].trim(),lines:[]};continue}if(!a||e.startsWith("\\ "))continue;let l=e[0],i=e.slice(1);"+"===l?(a.lines.push({o:null,n:s,k:"add",t:i}),s++):"-"===l?(a.lines.push({o:n,n:null,k:"del",t:i}),n++):(a.lines.push({o:n,n:s,k:"ctx",t:i}),n++,s++)}return a&&r.push(a),r})(e.patch),[e.patch]),l=(0,r.useMemo)(()=>{let t=new Map;for(let r of n){if(r.path!==e.path||null==r.line)continue;let a=t.get(r.line)??[];a.push(r),t.set(r.line,a)}return t},[n,e.path]);return(0,t.jsxs)("main",{style:{flex:1,display:"flex",flexDirection:"column",minWidth:0,overflow:"hidden",background:"var(--bg)"},children:[(0,t.jsx)(x,{file:e}),(0,t.jsx)(g,{threadCount:n.filter(t=>t.path===e.path).length}),(0,t.jsx)("div",{className:a.default.slim,style:{flex:1,overflow:"auto",background:"var(--bg)"},children:0===s.length?(0,t.jsx)("div",{style:{padding:"32px 16px",color:"var(--fg-mute)",fontFamily:"var(--font-mono)",fontSize:12,textAlign:"center"},children:"No diff available for this file."}):s.map((e,r)=>(0,t.jsx)(v,{hunk:e,commentsByLine:l},r))})]})}function x({file:e}){let r=m[e.status]??"M";return(0,t.jsxs)("div",{style:{flex:"0 0 auto",display:"flex",alignItems:"center",gap:14,padding:"10px 16px",borderBottom:"1px solid var(--line)",background:"var(--bg-raised)",fontFamily:"var(--font-mono)",fontSize:11},children:[(0,t.jsx)("span",{style:{padding:"2px 6px",borderRadius:3,border:"1px solid var(--accent)",color:"var(--accent)",fontSize:10,letterSpacing:"0.12em"},children:r}),(0,t.jsx)("span",{style:{color:"var(--fg)",fontSize:13,fontWeight:500},children:e.path}),(0,t.jsx)("span",{style:{color:"var(--fg-mute)"},children:"·"}),(0,t.jsxs)("span",{style:{color:"var(--add)"},children:["+",e.additions]}),(0,t.jsxs)("span",{style:{color:"var(--del)"},children:["−",e.deletions]})]})}function g({threadCount:e}){return(0,t.jsxs)("div",{style:{flex:"0 0 auto",display:"flex",alignItems:"center",gap:12,padding:"6px 16px",borderBottom:"1px solid var(--line)",background:"var(--bg-card)",fontFamily:"var(--font-mono)",fontSize:10,color:"var(--fg-mute)"},children:[(0,t.jsx)("span",{children:"view: unified"}),(0,t.jsx)("span",{style:{marginLeft:"auto",display:"flex",gap:14},children:e>0&&(0,t.jsxs)("span",{style:{color:"var(--warm)"},children:["◆ ",e," thread",1===e?"":"s"]})})]})}function v({hunk:e,commentsByLine:a}){return(0,t.jsxs)("div",{style:{borderTop:"1px solid var(--line)"},children:[(0,t.jsxs)("div",{style:{padding:"6px 16px",background:"var(--bg-inset)",fontFamily:"var(--font-mono)",fontSize:11,color:"var(--fg-mute)",display:"flex",alignItems:"center",gap:12},children:[(0,t.jsx)("span",{style:{color:"var(--cool)"},children:e.head}),e.section&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{style:{color:"var(--fg-ghost)"},children:"·"}),(0,t.jsx)("span",{style:{color:"var(--fg-dim)"},children:e.section})]})]}),e.lines.map((e,n)=>{let s=null!=e.n?a.get(e.n):void 0;return(0,t.jsxs)(r.default.Fragment,{children:[(0,t.jsx)(y,{line:e}),s?.map(e=>(0,t.jsx)(b,{comment:e},e.id))]},n)})]})}function y({line:e}){let r="add"===e.k,a="del"===e.k,n=r?"var(--add-gut)":a?"var(--del-gut)":"transparent";return(0,t.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"44px 44px 16px 1fr",minHeight:20,fontFamily:"var(--font-mono)",fontSize:12,lineHeight:"20px",background:r?"var(--add-bg)":a?"var(--del-bg)":"transparent"},children:[(0,t.jsx)("span",{style:{textAlign:"right",padding:"0 8px",color:"var(--fg-mute)",background:n,borderRight:"1px solid var(--line)",fontSize:10},children:e.o??""}),(0,t.jsx)("span",{style:{textAlign:"right",padding:"0 8px",color:"var(--fg-mute)",background:n,borderRight:"1px solid var(--line)",fontSize:10},children:e.n??""}),(0,t.jsx)("span",{style:{textAlign:"center",color:r?"var(--add)":a?"var(--del)":"var(--fg-ghost)",fontWeight:600,background:n},children:r?"+":a?"−":" "}),(0,t.jsx)("span",{style:{padding:"0 12px",whiteSpace:"pre",color:r?"var(--fg)":"var(--fg-dim)"},children:e.t})]})}function b({comment:e}){let r=new Date(e.createdAt).toLocaleString();return(0,t.jsxs)("div",{style:{margin:"4px 0 4px 88px",border:"1px solid var(--line-strong)",borderRadius:5,background:"var(--bg-card)"},children:[(0,t.jsxs)("div",{style:{padding:"8px 12px",borderBottom:"1px solid var(--line)",display:"flex",alignItems:"center",gap:8,fontFamily:"var(--font-mono)",fontSize:10,color:"var(--fg-mute)"},children:[(0,t.jsx)(f,{name:e.authorLogin,provider:"claude",size:16}),(0,t.jsx)("span",{style:{color:"var(--fg)",fontSize:11},children:e.authorLogin}),(0,t.jsx)("span",{style:{marginLeft:"auto"},children:r})]}),(0,t.jsx)("div",{style:{padding:"10px 12px",fontFamily:"var(--font-sans)",fontSize:13,lineHeight:1.55,color:"var(--fg-dim)",whiteSpace:"pre-wrap"},children:e.body})]})}function j({pr:e,fileCount:r,totalAdditions:n,totalDeletions:s}){let l="merged"===e.state?"merged":"closed"===e.state?"closed":e.draft?"draft":"open";return(0,t.jsxs)("aside",{className:a.default.commitSide,style:{flex:1,minWidth:0,background:"var(--bg-inset)",display:"flex",flexDirection:"column",overflow:"hidden"},children:[(0,t.jsxs)("div",{style:{padding:"14px 16px 12px",borderBottom:"1px solid var(--line)"},children:[(0,t.jsxs)("div",{style:{fontFamily:"var(--font-mono)",fontSize:10,letterSpacing:"0.14em",textTransform:"uppercase",color:"var(--fg-mute)",marginBottom:10},children:["Review · #",e.number]}),(0,t.jsx)("div",{style:{fontFamily:"var(--font-sans)",fontSize:14,fontWeight:600,letterSpacing:"-0.01em",lineHeight:1.35,marginBottom:10},children:e.title}),(0,t.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:[(0,t.jsx)(w,{k:"branch",v:e.headRef,accent:!0}),(0,t.jsx)(w,{k:"base",v:e.baseRef}),(0,t.jsx)(w,{k:"state",v:l}),(0,t.jsx)(w,{k:"files",v:`${r} \xb7 +${n} −${s}`}),e.ciStatus&&(0,t.jsx)(w,{k:"ci",v:e.ciStatus})]})]}),(0,t.jsxs)("div",{className:a.default.slim,style:{padding:"14px 16px",flex:1,overflow:"auto"},children:[(0,t.jsx)("div",{style:{fontFamily:"var(--font-mono)",fontSize:10,letterSpacing:"0.14em",textTransform:"uppercase",color:"var(--fg-mute)",marginBottom:10},children:"Description"}),(0,t.jsx)("div",{style:{fontFamily:"var(--font-sans)",fontSize:12,lineHeight:1.55,color:"var(--fg-dim)",whiteSpace:"pre-wrap"},children:e.body||"(no description)"})]})]})}function w({k:e,v:r,accent:a}){return(0,t.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"70px 1fr",alignItems:"center",gap:8,fontFamily:"var(--font-mono)",fontSize:11},children:[(0,t.jsx)("span",{style:{color:"var(--fg-mute)"},children:e}),(0,t.jsx)("span",{style:{color:a?"var(--accent)":"var(--fg)",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:r})]})}function k({pr:e,fileCount:r,totalAdditions:a,totalDeletions:n,threadCount:s}){return(0,t.jsxs)("footer",{style:{height:26,flex:"0 0 auto",display:"flex",alignItems:"center",padding:"0 14px",gap:14,borderTop:"1px solid var(--line)",background:"var(--bg-raised)",fontFamily:"var(--font-mono)",fontSize:10,color:"var(--fg-mute)"},children:[(0,t.jsxs)("span",{style:{color:"var(--accent)"},children:["● ",e.state]}),(0,t.jsxs)("span",{children:[e.headRef," → ",e.baseRef]}),(0,t.jsx)("span",{style:{color:"var(--fg-ghost)"},children:"·"}),(0,t.jsxs)("span",{children:[r," files · +",a," −",n]}),(0,t.jsx)("span",{style:{color:"var(--fg-ghost)"},children:"·"}),(0,t.jsxs)("span",{children:[s," thread",1===s?"":"s"]}),(0,t.jsx)("span",{style:{marginLeft:"auto"},children:e.repoId})]})}var N=e.i(276013),S=e.i(169433);function C({pr:e,files:s,comments:l,rightPane:i,header:d,statusBar:c}){let[u,p]=(0,r.useState)(s[0]?.path??null),[f,m]=(0,r.useState)(300),[x,g]=(0,r.useState)(380);(0,r.useEffect)(()=>{m((0,S.loadPrReviewFilesPaneWidth)()||300),g((0,S.loadPrReviewRightPaneWidth)()||380)},[]);let v=s.find(e=>e.path===u)??s[0]??null,y=(0,r.useMemo)(()=>s.reduce((e,t)=>({a:e.a+t.additions,d:e.d+t.deletions}),{a:0,d:0}),[s]),b=i??(0,t.jsx)(j,{pr:e,fileCount:s.length,totalAdditions:y.a,totalDeletions:y.d});return(0,t.jsx)("div",{className:a.default.root,children:(0,t.jsxs)("div",{className:a.default.reviewBody,children:[(0,t.jsxs)("div",{className:a.default.leftCol,children:[d??(0,t.jsx)(n,{pr:e}),(0,t.jsxs)("div",{className:a.default.midRow,children:[(0,t.jsx)("div",{style:{width:f,flex:"0 0 auto",minWidth:0,display:"flex"},children:(0,t.jsx)(o,{files:s,selected:u,onSelect:p})}),(0,t.jsx)(N.ResizeHandle,{ariaLabel:"Resize files pane",onResize:e=>m(t=>{let r=Math.max(200,Math.min(560,t+e));return(0,S.persistPrReviewFilesPaneWidth)(r),r})}),(0,t.jsx)("div",{style:{flex:1,minWidth:0,display:"flex"},children:v?(0,t.jsx)(h,{file:v,comments:l}):(0,t.jsx)("main",{style:{flex:1,display:"flex",alignItems:"center",justifyContent:"center",color:"var(--fg-mute)",fontFamily:"var(--font-mono)",fontSize:12},children:"No files in this PR."})})]}),c??(0,t.jsx)(k,{pr:e,fileCount:s.length,totalAdditions:y.a,totalDeletions:y.d,threadCount:l.length})]}),(0,t.jsx)(N.ResizeHandle,{ariaLabel:"Resize right pane",onResize:e=>g(t=>{let r=Math.max(260,Math.min(720,t-e));return(0,S.persistPrReviewRightPaneWidth)(r),r})}),(0,t.jsx)("div",{className:a.default.rightPane,style:{width:x,borderLeft:"1px solid var(--card-border)"},children:b})]})})}function I({prId:e,rightPane:a}){let[n,s]=(0,r.useState)(null),[l,i]=(0,r.useState)(null);return((0,r.useEffect)(()=>{let t=!1;return s(null),i(null),(async()=>{try{let r=await fetch(`/api/github/prs/${encodeURIComponent(e)}`);if(!r.ok)throw Error(`HTTP ${r.status}`);let a=await r.json();t||s(a)}catch(e){t||i(e instanceof Error?e.message:String(e))}})(),()=>{t=!0}},[e]),l)?(0,t.jsxs)("div",{className:"flex h-full items-center justify-center p-6 text-sm text-red-400",children:["Failed to load PR: ",l]}):n?(0,t.jsx)(C,{pr:n.pr,files:n.files,comments:n.comments,rightPane:a}):(0,t.jsx)("div",{className:"flex h-full items-center justify-center p-6 text-sm text-neutral-500",children:"Loading…"})}e.s(["ReviewLayout",()=>C],860641),e.s(["PrReviewView",()=>I],666213)},807087,e=>{"use strict";let t=(0,e.i(363732).default)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);e.s(["CheckCircle2",()=>t],807087)},287472,e=>{"use strict";var t=e.i(935851);let r=new Map;function a(e){let t=r.get(e);return t?Date.now()-t.ts>3e5?(r.delete(e),null):t:null}function n(e){r.delete(e)}function s(e,s){let[l,i]=(0,t.useState)(!1),[o,d]=(0,t.useState)(!0),[c,u]=(0,t.useState)(null),[p,f]=(0,t.useState)({claude:!1,codex:!1,gemini:!1}),[m,h]=(0,t.useState)({}),x=(0,t.useRef)(null),g=`/api/trackers/${encodeURIComponent(e)}`,v=`${e}:${s}`,y=(0,t.useCallback)(async()=>{try{let e=await fetch(`${g}/mcp-setup`),t=await e.json();h(t.configured??{})}catch{}},[g]),b=(0,t.useCallback)(async()=>{if(!s)return i(!1),!1;let e=a(v);if(e)return i(e.connected),u(e.user),f(e.clis),h(e.mcpConfigured),d(!1),e.connected;try{var t;let e=`?projectId=${encodeURIComponent(s)}`,[a,n]=await Promise.all([fetch(`${g}/status${e}`),fetch(`${g}/mcp-setup`)]),l=await a.json(),o=await n.json(),d=l.clis??{claude:!1,codex:!1,gemini:!1},c=o.configured??{},p=l.user??null;return i(l.connected),u(p),f(d),h(c),t={connected:l.connected,user:p,clis:d,mcpConfigured:c},r.set(v,{...t,ts:Date.now()}),l.connected}catch{return i(!1),!1}finally{d(!1)}},[s,g,v]);(0,t.useEffect)(()=>{let e=a(v);e?(i(e.connected),u(e.user),f(e.clis),h(e.mcpConfigured),d(!1)):(d(!0),i(!1),u(null))},[e,s,v]),(0,t.useEffect)(()=>(b(),()=>{x.current&&clearInterval(x.current)}),[b]);let j=(0,t.useCallback)(()=>{s&&(n(v),window.open(`${g}/auth?projectId=${encodeURIComponent(s)}`,"_blank","noopener"),x.current&&clearInterval(x.current),x.current=setInterval(async()=>{n(v),await b()&&x.current&&(clearInterval(x.current),x.current=null)},2e3))},[s,g,v,b]),w=(0,t.useCallback)(async e=>{if(!s)return{ok:!1,error:"Missing projectId"};try{let t=await fetch(`${g}/token`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({projectId:s,accessToken:e})});if(!t.ok){let e=await t.json().catch(()=>({}));return{ok:!1,error:e.error||"Failed to save token"}}return n(v),await b(),{ok:!0}}catch{return{ok:!1,error:"Failed to connect"}}},[s,g,v,b]);return{connected:l,loading:o,user:c,clis:p,mcpConfigured:m,connect:j,connectWithKey:w,disconnect:(0,t.useCallback)(async()=>{s&&(n(v),await fetch(`${g}/status?projectId=${encodeURIComponent(s)}`,{method:"DELETE"}),"github"===e&&Object.keys(sessionStorage).filter(e=>e.startsWith("github_")).forEach(e=>sessionStorage.removeItem(e)),i(!1),u(null))},[s,g,v,e]),configureMcp:(0,t.useCallback)(async e=>{try{let t=await fetch(`${g}/mcp-setup`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cli:e})});if(!t.ok){let e=await t.json().catch(()=>({}));return{ok:!1,error:e.error||"Failed to configure MCP"}}return await y(),{ok:!0}}catch{return{ok:!1,error:"Failed to configure MCP"}}},[g,y]),refresh:b}}e.s(["useTrackerConnection",()=>s])},637790,166735,e=>{"use strict";var t=e.i(363732);let r=(0,t.default)("key",[["path",{d:"m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4",key:"g0fldk"}],["path",{d:"m21 2-9.6 9.6",key:"1j0ho8"}],["circle",{cx:"7.5",cy:"15.5",r:"5.5",key:"yqb3hr"}]]);e.s(["Key",()=>r],637790);let a=(0,t.default)("globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]);e.s(["Globe",()=>a],166735)},711190,e=>{"use strict";let t=(0,e.i(363732).default)("log-out",[["path",{d:"m16 17 5-5-5-5",key:"1bji2h"}],["path",{d:"M21 12H9",key:"dn1m92"}],["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}]]);e.s(["LogOut",()=>t],711190)},202192,457242,e=>{"use strict";var t=e.i(762281),r=e.i(935851),a=e.i(807087),n=e.i(637790),s=e.i(166735),l=e.i(906724),i=e.i(741746),o=e.i(558201),d=e.i(711190),c=e.i(681619),u=e.i(929870),p=e.i(797167),f=e.i(203096);let m=(0,e.i(363732).default)("pin",[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z",key:"1nkz8b"}]]);function h({projectId:e}){let[a,n]=(0,r.useState)([]),[s,i]=(0,r.useState)(!0),[o,d]=(0,r.useState)(null),[c,h]=(0,r.useState)(null),[x,g]=(0,r.useState)(!1),[v,y]=(0,r.useState)([]),[b,j]=(0,r.useState)(!1),[w,k]=(0,r.useState)(null),[N,S]=(0,r.useState)(""),[C,I]=(0,r.useState)("all"),[R,M]=(0,r.useState)(new Set),[P,_]=(0,r.useState)(!1),z=(0,r.useCallback)(async()=>{try{let e=await fetch("/api/github/repos",{cache:"no-store"});if(!e.ok)throw Error("Failed to load repos");let t=await e.json();n(t.repos??[]),d(null)}catch{d("Failed to load repositories")}finally{i(!1)}},[]);(0,r.useEffect)(()=>{z()},[z]);let $=(0,r.useCallback)((e,t)=>`${e}/${t}`.toLowerCase(),[]),E=(0,r.useMemo)(()=>new Set(a.map(e=>$(e.owner,e.name))),[a,$]),L=(0,r.useCallback)(async()=>{if(g(!0),M(new Set),S(""),I("all"),!(v.length>0)){j(!0),k(null);try{let t=await fetch(`/api/github/user-repos?projectId=${encodeURIComponent(e)}`,{cache:"no-store"});if(!t.ok){let e=await t.json().catch(()=>({}));throw Error(e?.error??"Failed to fetch repos")}let r=await t.json();y(r.repos??[])}catch(e){k(e instanceof Error?e.message:"Failed to fetch repos")}finally{j(!1)}}},[e,v.length]),A=()=>{g(!1)};(0,r.useEffect)(()=>{if(!x)return;let e=e=>{"Escape"===e.key&&A()};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[x]);let T=(0,r.useMemo)(()=>{let e=[],t=[];for(let r of v)E.has($(r.owner,r.name))?e.push(r):t.push(r);return[...e,...t]},[v,E,$]),F=(0,r.useMemo)(()=>{let e=N.trim().toLowerCase();return T.filter(t=>("public"!==C||!t.private)&&("private"!==C||!!t.private)&&(!e||t.fullName.toLowerCase().includes(e)||(t.description??"").toLowerCase().includes(e)))},[T,N,C]),O=(0,r.useMemo)(()=>F.filter(e=>!E.has($(e.owner,e.name))),[F,E,$]),U=O.length>0&&O.every(e=>R.has(e.id)),D=async()=>{if(0!==R.size){_(!0);try{let e=v.filter(e=>R.has(e.id));await Promise.all(e.map(e=>fetch("/api/github/repos",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({owner:e.owner,name:e.name,defaultBranch:e.defaultBranch,private:e.private})}))),await z(),A()}finally{_(!1)}}},B=(0,r.useCallback)(async e=>{h(e);try{await fetch("/api/github/repos",{method:"DELETE",headers:{"content-type":"application/json"},body:JSON.stringify({id:e})}),await z()}finally{h(null)}},[z]);return(0,t.jsxs)("div",{className:"w-full max-w-md space-y-4",children:[(0,t.jsxs)("div",{className:"border rounded-xl p-5 flex flex-col gap-4",children:[(0,t.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h4",{className:"text-sm font-medium",children:"Attached repositories"}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5",children:"Repos the local agent watches for PRs, reviews, and comments."})]}),(0,t.jsxs)("button",{type:"button",onClick:L,className:"text-xs px-2.5 py-1.5 rounded border hover:bg-accent inline-flex items-center gap-1",children:[(0,t.jsx)(u.Plus,{className:"w-3.5 h-3.5"}),"Add"]})]}),s?(0,t.jsxs)("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[(0,t.jsx)(l.Loader2,{className:"w-4 h-4 animate-spin"}),"Loading repositories…"]}):o?(0,t.jsx)("p",{className:"text-sm text-destructive",children:o}):0===a.length?(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:"No repositories attached yet."}):(0,t.jsx)("ul",{className:"divide-y",children:a.map(e=>(0,t.jsxs)("li",{className:"flex items-center justify-between py-2",children:[(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsxs)("span",{className:"text-sm font-mono",children:[e.owner,"/",e.name]}),(0,t.jsxs)("span",{className:"text-xs text-muted-foreground",children:[e.defaultBranch??"no default branch",e.private?" · private":" · public",e.accessRevoked?" · access revoked":""]})]}),(0,t.jsx)("button",{type:"button",onClick:()=>B(e.id),disabled:c===e.id,className:"p-1.5 rounded hover:bg-accent disabled:opacity-50",title:"Remove",children:(0,t.jsx)(p.X,{className:"w-3.5 h-3.5"})})]},e.id))})]}),(0,t.jsxs)("div",{className:"border rounded-xl p-5 flex items-center justify-between gap-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h4",{className:"text-sm font-medium",children:"Sync"}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5",children:"Pull the latest PRs, reviews, and comments for attached repos."})]}),(0,t.jsxs)("button",{type:"button",onClick:()=>alert("Sync will run when worker is scheduled"),className:"text-xs px-3 py-1.5 rounded border hover:bg-accent inline-flex items-center gap-1.5",children:[(0,t.jsx)(f.RefreshCw,{className:"w-3.5 h-3.5"}),"Sync now"]})]}),x&&(0,t.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4 bg-black/50 backdrop-blur-sm",onClick:A,children:(0,t.jsxs)("div",{className:"w-full max-w-3xl max-h-[90vh] flex flex-col rounded-xl border border-[var(--border)] bg-[var(--background)] text-[var(--foreground)] shadow-2xl",onClick:e=>e.stopPropagation(),children:[(0,t.jsxs)("header",{className:"px-6 py-5 border-b border-[var(--border)] flex items-start justify-between gap-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 text-xs text-[var(--muted-foreground)] mb-1",children:[(0,t.jsx)("span",{children:"GitHub"}),(0,t.jsx)("span",{children:"·"}),(0,t.jsx)("span",{children:"Attach repositories"})]}),(0,t.jsx)("h1",{className:"text-xl font-semibold tracking-tight",children:"Select repositories"}),(0,t.jsx)("p",{className:"text-sm text-[var(--muted-foreground)] mt-1",children:"Pick the repos you want agx to track. Already-attached repos are pinned at the top."})]}),(0,t.jsx)("button",{onClick:A,className:"p-1.5 rounded hover:bg-[var(--item-hover-bg)] text-[var(--muted-foreground)]","aria-label":"Close",children:(0,t.jsx)(p.X,{className:"w-4 h-4"})})]}),(0,t.jsx)("div",{className:"px-6 py-4 flex-1 overflow-hidden flex flex-col",children:w?(0,t.jsx)("div",{className:"rounded-lg border border-[var(--status-failed-border)] bg-[var(--status-failed-bg)] text-[var(--status-failed)] px-4 py-3 text-sm",children:w}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex flex-col sm:flex-row gap-2 mb-3",children:[(0,t.jsxs)("div",{className:"relative flex-1",children:[(0,t.jsxs)("svg",{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-[var(--muted-foreground)]",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("circle",{cx:"11",cy:"11",r:"8"}),(0,t.jsx)("path",{d:"m21 21-4.3-4.3"})]}),(0,t.jsx)("input",{type:"text",value:N,onChange:e=>S(e.target.value),placeholder:"Search repositories...",className:"w-full pl-9 pr-3 py-2 rounded-lg border border-[var(--border)] bg-[var(--input)] text-sm focus:outline-none focus:border-[var(--primary)] focus:bg-[var(--input-focus)] transition-colors"})]}),(0,t.jsx)("div",{className:"flex gap-1 rounded-lg border border-[var(--border)] p-1",children:["all","public","private"].map(e=>(0,t.jsx)("button",{onClick:()=>I(e),className:`px-3 py-1 text-xs rounded-md capitalize transition-colors ${C===e?"bg-[var(--primary)] text-[var(--primary-foreground)]":"text-[var(--muted-foreground)] hover:text-[var(--foreground)]"}`,children:e},e))})]}),(0,t.jsxs)("div",{className:"flex items-center justify-between mb-2 text-xs text-[var(--muted-foreground)]",children:[(0,t.jsxs)("button",{onClick:()=>{M(e=>{let t=new Set(e);return U?O.forEach(e=>t.delete(e.id)):O.forEach(e=>t.add(e.id)),t})},disabled:0===O.length,className:"hover:text-[var(--foreground)] transition-colors disabled:opacity-50",children:[U?"Deselect all":"Select all",N||"all"!==C?` (${O.length} shown)`:""]}),R.size>0&&(0,t.jsx)("button",{onClick:()=>M(new Set),className:"hover:text-[var(--foreground)] transition-colors",children:"Clear selection"})]}),(0,t.jsx)("div",{className:"rounded-lg border border-[var(--border)] bg-[var(--card-bg)] overflow-hidden flex-1 min-h-0",children:(0,t.jsx)("div",{className:"h-full overflow-y-auto",children:b?(0,t.jsx)("div",{className:"divide-y divide-[var(--border)]",children:Array.from({length:6}).map((e,r)=>(0,t.jsxs)("div",{className:"px-4 py-3 flex items-center gap-3 animate-pulse",children:[(0,t.jsx)("div",{className:"w-4 h-4 rounded bg-[var(--muted)]"}),(0,t.jsx)("div",{className:"w-6 h-6 rounded-full bg-[var(--muted)]"}),(0,t.jsxs)("div",{className:"flex-1 space-y-2",children:[(0,t.jsx)("div",{className:"h-3 w-1/3 rounded bg-[var(--muted)]"}),(0,t.jsx)("div",{className:"h-2 w-2/3 rounded bg-[var(--muted)]"})]})]},r))}):0===F.length?(0,t.jsx)("div",{className:"px-4 py-10 text-center text-sm text-[var(--muted-foreground)]",children:0===v.length?"No repositories found on your account.":"No repos match your search."}):(0,t.jsx)("ul",{className:"divide-y divide-[var(--border)]",children:F.map(e=>{let r=E.has($(e.owner,e.name)),a=R.has(e.id);return(0,t.jsx)("li",{children:(0,t.jsxs)("label",{className:`flex items-start gap-3 px-4 py-3 transition-colors ${r?"bg-[var(--primary-muted)]/40 cursor-default":a?"bg-[var(--primary-muted)] cursor-pointer":"hover:bg-[var(--item-hover-bg)] cursor-pointer"}`,children:[r?(0,t.jsx)("div",{className:"mt-1 w-4 h-4 rounded-sm bg-[var(--primary)]/20 text-[var(--primary)] flex items-center justify-center",title:"Already attached",children:(0,t.jsx)(m,{className:"w-2.5 h-2.5"})}):(0,t.jsx)("input",{type:"checkbox",checked:a,onChange:()=>{!E.has($(e.owner,e.name))&&M(t=>{let r=new Set(t);return r.has(e.id)?r.delete(e.id):r.add(e.id),r})},className:"mt-1 accent-[var(--primary)]"}),(0,t.jsx)("img",{src:e.avatarUrl,alt:"",className:"w-6 h-6 rounded-full mt-0.5 flex-shrink-0"}),(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 flex-wrap",children:[(0,t.jsx)("span",{className:"text-sm font-medium truncate",children:e.fullName}),r&&(0,t.jsxs)("span",{className:"text-[10px] uppercase tracking-wide px-1.5 py-0.5 rounded bg-[var(--primary)]/15 text-[var(--primary)] flex items-center gap-1",children:[(0,t.jsx)(m,{className:"w-2.5 h-2.5"}),"Attached"]}),e.private&&(0,t.jsx)("span",{className:"text-[10px] uppercase tracking-wide px-1.5 py-0.5 rounded bg-[var(--muted)] text-[var(--muted-foreground)]",children:"Private"})]}),e.description&&(0,t.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] mt-0.5 line-clamp-1",children:e.description}),(0,t.jsxs)("div",{className:"text-[11px] text-[var(--muted-foreground)] mt-0.5",children:["Updated ",function(e){let t=Math.floor((Date.now()-new Date(e).getTime())/1e3);if(t<60)return"just now";let r=Math.floor(t/60);if(r<60)return`${r}m ago`;let a=Math.floor(r/60);if(a<24)return`${a}h ago`;let n=Math.floor(a/24);if(n<30)return`${n}d ago`;let s=Math.floor(n/30);return s<12?`${s}mo ago`:`${Math.floor(s/12)}y ago`}(e.updatedAt)]})]})]})},e.id)})})})})]})}),(0,t.jsxs)("footer",{className:"px-6 py-4 border-t border-[var(--border)] flex items-center justify-between gap-3",children:[(0,t.jsxs)("span",{className:"text-sm text-[var(--muted-foreground)]",children:[R.size," selected"]}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)("button",{onClick:A,className:"px-4 py-2 rounded-lg border border-[var(--border)] hover:bg-[var(--item-hover-bg)] text-sm font-medium transition-colors",children:"Cancel"}),(0,t.jsx)("button",{onClick:D,disabled:0===R.size||P,className:"px-4 py-2 rounded-lg bg-[var(--primary)] hover:bg-[var(--primary-hover)] text-[var(--primary-foreground)] text-sm font-medium transition-colors disabled:opacity-50 disabled:cursor-not-allowed",children:P?"Attaching...":`Attach ${R.size} ${1===R.size?"repo":"repos"}`})]})]})]})})]})}e.s(["Pin",()=>m],457242);var x=e.i(352687);let g={claude:{name:"Claude Code",configPath:"~/.claude/settings.json"},codex:{name:"Codex CLI",configPath:"~/.codex/config.toml"},gemini:{name:"Gemini CLI",configPath:"~/.gemini/settings.json"}};function v({trackerType:e,projectId:u,connected:p,onConnect:f,onConnectWithKey:m,onDisconnect:v,loading:y=!1,clis:b,mcpConfigured:j,onConfigureMcp:w}){let[k,N]=r.default.useState(""),[S,C]=r.default.useState(null),[I,R]=r.default.useState(!1),[M,P]=r.default.useState(!1),[_,z]=r.default.useState(null),[$,E]=r.default.useState({}),[L,A]=r.default.useState(!1),T=async e=>{if(!w)return;z(e),E(t=>({...t,[e]:""}));let t=await w(e);t.ok||E(r=>({...r,[e]:t.error??"Failed to install MCP"})),z(null)},F=b?["claude","codex","gemini"].filter(e=>b[e]):["claude"];if(y)return(0,t.jsx)("div",{className:"flex items-center justify-center p-12",children:(0,t.jsx)(l.Loader2,{className:"animate-spin h-8 w-8 text-muted-foreground"})});if(p)return(0,t.jsxs)("div",{className:"p-8 flex flex-col items-center gap-6",children:[(0,t.jsxs)("div",{className:"w-full max-w-md p-8 border border-green-500/20 bg-green-500/5 rounded-2xl flex flex-col items-center gap-4 text-center",children:[(0,t.jsx)("div",{className:"h-16 w-16 rounded-full bg-green-500/10 flex items-center justify-center text-green-600 shadow-inner",children:(0,t.jsx)(a.CheckCircle2,{className:"h-8 w-8"})}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)("h3",{className:"text-xl font-bold text-foreground capitalize",children:[e," Connected"]}),(0,t.jsxs)("p",{className:"text-sm text-muted-foreground leading-relaxed",children:["Your ",e," tickets now live in AGX. Assign them to agents, review the work, and ship PRs from one window."]})]}),(0,t.jsxs)("div",{className:"mt-2 px-4 py-1.5 rounded-full bg-background border text-xs font-medium text-muted-foreground flex items-center gap-2",children:[(0,t.jsx)("div",{className:"h-1.5 w-1.5 rounded-full bg-green-500 animate-pulse"}),"Active Connection"]}),v&&(0,t.jsxs)("button",{onClick:()=>A(!0),className:"flex items-center gap-1.5 text-xs text-muted-foreground hover:text-destructive transition-colors mt-1",children:[(0,t.jsx)(d.LogOut,{className:"h-3.5 w-3.5"}),"Disconnect"]})]}),"github"===e&&(0,t.jsx)(h,{projectId:u}),v&&(0,t.jsx)(x.default,{isOpen:L,title:`Disconnect ${e}?`,message:"github"===e?"This revokes the stored credentials. Your attached repositories and synced history stay — reconnecting will resume where you left off.":`This revokes the stored credentials for ${e}. Project settings and synced history stay.`,confirmLabel:"Disconnect",cancelLabel:"Cancel",variant:"danger",onConfirm:()=>{A(!1),v()},onCancel:()=>A(!1)}),"github"!==e&&F.length>0&&(0,t.jsx)("div",{className:"w-full max-w-md",children:(0,t.jsxs)("div",{className:"border rounded-xl p-5 flex flex-col gap-4",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(o.Terminal,{className:"h-4 w-4 text-muted-foreground"}),(0,t.jsx)("span",{className:"text-sm font-medium",children:"MCP Server"})]}),(0,t.jsxs)("p",{className:"text-xs text-muted-foreground leading-relaxed -mt-2",children:["Connect your ",e," workspace so your tickets show up in AGX and agents can work them through to a PR."]}),F.map(e=>{let r=g[e],n=j?.[e]??!1,s=_===e,o=$[e];return(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,t.jsx)("span",{className:"text-xs font-medium text-foreground",children:r.name}),n?(0,t.jsxs)("span",{className:"text-xs font-medium text-green-600 flex items-center gap-1",children:[(0,t.jsx)(a.CheckCircle2,{className:"h-3.5 w-3.5"}),"Installed"]}):(0,t.jsx)("button",{onClick:()=>T(e),disabled:s||!w,className:"flex items-center gap-1.5 px-3 py-1 bg-secondary text-secondary-foreground rounded-md text-xs font-semibold hover:bg-secondary/90 disabled:opacity-50 transition-all active:scale-[0.98]",children:s?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(l.Loader2,{className:"h-3 w-3 animate-spin"}),"Installing…"]}):(0,t.jsx)(t.Fragment,{children:"Install"})})]}),n&&(0,t.jsxs)("p",{className:"text-[10px] text-muted-foreground",children:["Configured in ",(0,t.jsx)("code",{className:"font-mono",children:r.configPath})]}),o&&(0,t.jsxs)("div",{className:"flex items-center gap-1.5 text-xs text-destructive bg-destructive/10 p-2 rounded-md",children:[(0,t.jsx)(i.AlertCircle,{className:"h-3.5 w-3.5 shrink-0"}),o]})]},e)})]})})]});let O=async()=>{if(k.trim()){P(!0),C(null);try{let e=await m(k.trim());e.ok?(N(""),R(!1)):C(e.error??"Failed to connect")}catch(e){C("An unexpected error occurred")}finally{P(!1)}}};return(0,t.jsxs)("div",{className:"flex flex-col items-center gap-6 p-8",children:[(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)(c.TrackerIcon,{trackerType:e,className:"h-16 w-16"}),(0,t.jsx)("div",{className:"absolute -bottom-1 -right-1 h-6 w-6 rounded-full bg-background border flex items-center justify-center shadow-sm",children:(0,t.jsx)(s.Globe,{className:"h-3 w-3 text-muted-foreground"})})]}),(0,t.jsxs)("div",{className:"text-center space-y-2",children:[(0,t.jsxs)("h3",{className:"text-lg font-semibold capitalize",children:["Connect to ",e]}),(0,t.jsxs)("p",{className:"text-sm text-muted-foreground text-center max-w-sm leading-relaxed",children:["Link your ",e," account to import issues, track progress, and automate your workflow."]})]}),(0,t.jsxs)("div",{className:"flex flex-col gap-3 w-full max-w-xs pt-2",children:[(0,t.jsxs)("button",{onClick:f,className:"flex items-center justify-center gap-2 w-full px-4 py-2.5 bg-primary text-primary-foreground rounded-lg text-sm font-semibold hover:bg-primary/90 transition-all active:scale-[0.98] shadow-sm",children:[(0,t.jsx)(s.Globe,{className:"h-4 w-4"}),"Connect with OAuth"]}),(0,t.jsxs)("button",{onClick:()=>{R(!I),C(null)},className:"flex items-center justify-center gap-2 w-full px-4 py-2 text-sm text-muted-foreground hover:text-foreground transition-colors font-medium",children:[(0,t.jsx)(n.Key,{className:"h-3.5 w-3.5"}),I?"Use OAuth instead":"github"===e?"Connect with Personal Access Token":"Connect with API key"]}),(0,t.jsx)("div",{className:`grid transition-all duration-300 ease-in-out ${I?"grid-rows-[1fr] opacity-100":"grid-rows-[0fr] opacity-0 pointer-events-none"}`,children:(0,t.jsx)("div",{className:"overflow-hidden",children:(0,t.jsxs)("div",{className:"flex flex-col gap-3 pt-2",children:[(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("input",{type:"password",value:k,onChange:e=>{N(e.target.value),S&&C(null)},placeholder:"github"===e?"ghp_… or github_pat_…":"Paste your API key here",className:`w-full px-3 py-2 border rounded-lg text-sm bg-background transition-colors focus:outline-none focus:ring-2 focus:ring-primary/20 ${S?"border-destructive":"focus:border-primary"}`,onKeyDown:e=>"Enter"===e.key&&O()}),(0,t.jsx)(n.Key,{className:"absolute right-3 top-2.5 h-4 w-4 text-muted-foreground/50"})]}),S&&(0,t.jsxs)("div",{className:"flex items-center gap-2 text-xs text-destructive bg-destructive/10 p-2 rounded-md",children:[(0,t.jsx)(i.AlertCircle,{className:"h-3.5 w-3.5 shrink-0"}),(0,t.jsx)("p",{children:S})]}),(0,t.jsx)("button",{onClick:O,disabled:M||!k.trim(),className:"flex items-center justify-center gap-2 w-full px-4 py-2 bg-secondary text-secondary-foreground rounded-lg text-sm font-semibold hover:bg-secondary/90 disabled:opacity-50 transition-all active:scale-[0.98]",children:M?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(l.Loader2,{className:"h-4 w-4 animate-spin"}),"Connecting..."]}):"Verify & Connect"}),(0,t.jsx)("p",{className:"text-[10px] text-muted-foreground text-center px-2",children:"github"===e?"Fine-grained PAT recommended. Needs repo access + read on issues/pull requests.":`Your API key is stored securely and only used for ${e} integration.`})]})})})]})]})}e.s(["default",()=>v],202192)},427877,e=>{"use strict";var t=e.i(762281),r=e.i(935851),a=e.i(506420),n=e.i(524123),s=e.i(471387);function l({params:e}){let{slug:l,tracker:i}=(0,r.use)(e),o=(0,a.useSearchParams)(),{projects:d}=(0,n.useProjects)(),c=d.find(e=>e.slug===l),u="true"===o.get("settings"),p="github"===i?o.get("repo"):null;return(0,r.useEffect)(()=>{"github"===i&&p&&c?.id&&fetch("/api/github/repos/sync",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({projectId:c.id,repoId:p})}).catch(()=>{})},[i,p,c?.id]),(0,t.jsx)(s.default,{trackerType:i,projectId:c?.id,projectSlug:c?.slug??l,initialShowSettings:u,initialGroupId:p??void 0})}e.s(["default",()=>l])},469612,e=>{e.v(t=>Promise.all(["static/chunks/256961ed1522219b.js"].map(t=>e.l(t))).then(()=>t(668610)))},501223,e=>{e.v(t=>Promise.all(["static/chunks/94f26a112344ab1b.css","static/chunks/5591af73db0a3aee.js","static/chunks/42a62b80b32a97f7.js"].map(t=>e.l(t))).then(()=>t(844118)))}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,292135,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"warnOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},571278,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={assign:function(){return s},searchParamsToUrlQuery:function(){return a},urlQueryToSearchParams:function(){return u}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});function a(e){let t={};for(let[r,n]of e.entries()){let e=t[r];void 0===e?t[r]=n:Array.isArray(e)?e.push(n):t[r]=[e,n]}return t}function i(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function u(e){let t=new URLSearchParams;for(let[r,n]of Object.entries(e))if(Array.isArray(n))for(let e of n)t.append(r,i(e));else t.set(r,i(n));return t}function s(e,...t){for(let r of t){for(let t of r.keys())e.delete(t);for(let[t,n]of r.entries())e.append(t,n)}return e}},13168,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={formatUrl:function(){return u},formatWithValidation:function(){return l},urlObjectKeys:function(){return s}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let a=e.r(190809)._(e.r(571278)),i=/https?|ftp|gopher|file/;function u(e){let{auth:t,hostname:r}=e,n=e.protocol||"",o=e.pathname||"",u=e.hash||"",s=e.query||"",l=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?l=t+e.host:r&&(l=t+(~r.indexOf(":")?`[${r}]`:r),e.port&&(l+=":"+e.port)),s&&"object"==typeof s&&(s=String(a.urlQueryToSearchParams(s)));let c=e.search||s&&`?${s}`||"";return n&&!n.endsWith(":")&&(n+=":"),e.slashes||(!n||i.test(n))&&!1!==l?(l="//"+(l||""),o&&"/"!==o[0]&&(o="/"+o)):l||(l=""),u&&"#"!==u[0]&&(u="#"+u),c&&"?"!==c[0]&&(c="?"+c),o=o.replace(/[?#]/g,encodeURIComponent),c=c.replace("#","%23"),`${n}${l}${o}${c}${u}`}let s=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function l(e){return u(e)}},950581,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return o}});let n=e.r(935851);function o(e,t){let r=(0,n.useRef)(null),o=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=r.current;e&&(r.current=null,e());let t=o.current;t&&(o.current=null,t())}else e&&(r.current=a(e,n)),t&&(o.current=a(t,n))},[e,t])}function a(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},692942,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={DecodeError:function(){return m},MiddlewareNotFoundError:function(){return x},MissingStaticPage:function(){return j},NormalizeError:function(){return v},PageNotFoundError:function(){return b},SP:function(){return y},ST:function(){return g},WEB_VITALS:function(){return a},execOnce:function(){return i},getDisplayName:function(){return f},getLocationOrigin:function(){return l},getURL:function(){return c},isAbsoluteUrl:function(){return s},isResSent:function(){return d},loadGetInitialProps:function(){return h},normalizeRepeatedSlashes:function(){return p},stringifyError:function(){return k}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let a=["CLS","FCP","FID","INP","LCP","TTFB"];function i(e){let t,r=!1;return(...n)=>(r||(r=!0,t=e(...n)),t)}let u=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,s=e=>u.test(e);function l(){let{protocol:e,hostname:t,port:r}=window.location;return`${e}//${t}${r?":"+r:""}`}function c(){let{href:e}=window.location,t=l();return e.substring(t.length)}function f(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function d(e){return e.finished||e.headersSent}function p(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?`?${t.slice(1).join("?")}`:"")}async function h(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await h(t.Component,t.ctx)}:{};let n=await e.getInitialProps(t);if(r&&d(r))return n;if(!n)throw Object.defineProperty(Error(`"${f(e)}.getInitialProps()" should resolve to an object. But found "${n}" instead.`),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return n}let y="u">typeof performance,g=y&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class m extends Error{}class v extends Error{}class b extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class j extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}class x extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function k(e){return JSON.stringify({message:e.message,stack:e.stack})}},299242,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isLocalURL",{enumerable:!0,get:function(){return a}});let n=e.r(692942),o=e.r(756972);function a(e){if(!(0,n.isAbsoluteUrl)(e))return!0;try{let t=(0,n.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,o.hasBasePath)(r.pathname)}catch(e){return!1}}},405374,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"errorOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},307241,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={default:function(){return m},useLinkStatus:function(){return b}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let a=e.r(190809),i=e.r(762281),u=a._(e.r(935851)),s=e.r(13168),l=e.r(543665),c=e.r(950581),f=e.r(692942),d=e.r(212591);e.r(292135);let p=e.r(53101),h=e.r(299242),y=e.r(979945);function g(e){return"string"==typeof e?e:(0,s.formatUrl)(e)}function m(t){var r;let n,o,a,[s,m]=(0,u.useOptimistic)(p.IDLE_LINK_STATUS),b=(0,u.useRef)(null),{href:j,as:x,children:k,prefetch:w=null,passHref:P,replace:E,shallow:N,scroll:_,onClick:O,onMouseEnter:C,onTouchStart:S,legacyBehavior:A=!1,onNavigate:R,ref:T,unstable_dynamicOnHover:L,...M}=t;n=k,A&&("string"==typeof n||"number"==typeof n)&&(n=(0,i.jsx)("a",{children:n}));let $=u.default.useContext(l.AppRouterContext),U=!1!==w,I=!1!==w?null===(r=w)||"auto"===r?y.FetchStrategy.PPR:y.FetchStrategy.Full:y.FetchStrategy.PPR,{href:F,as:B}=u.default.useMemo(()=>{let e=g(j);return{href:e,as:x?g(x):e}},[j,x]);if(A){if(n?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`<Link legacyBehavior>` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `<a>` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});o=u.default.Children.only(n)}let D=A?o&&"object"==typeof o&&o.ref:T,K=u.default.useCallback(e=>(null!==$&&(b.current=(0,p.mountLinkInstance)(e,F,$,I,U,m)),()=>{b.current&&((0,p.unmountLinkForCurrentNavigation)(b.current),b.current=null),(0,p.unmountPrefetchableInstance)(e)}),[U,F,$,I,m]),z={ref:(0,c.useMergedRef)(K,D),onClick(t){A||"function"!=typeof O||O(t),A&&o.props&&"function"==typeof o.props.onClick&&o.props.onClick(t),!$||t.defaultPrevented||function(t,r,n,o,a,i,s){if("u">typeof window){let l,{nodeName:c}=t.currentTarget;if("A"===c.toUpperCase()&&((l=t.currentTarget.getAttribute("target"))&&"_self"!==l||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,h.isLocalURL)(r)){a&&(t.preventDefault(),location.replace(r));return}if(t.preventDefault(),s){let e=!1;if(s({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:f}=e.r(977803);u.default.startTransition(()=>{f(n||r,a?"replace":"push",i??!0,o.current)})}}(t,F,B,b,E,_,R)},onMouseEnter(e){A||"function"!=typeof C||C(e),A&&o.props&&"function"==typeof o.props.onMouseEnter&&o.props.onMouseEnter(e),$&&U&&(0,p.onNavigationIntent)(e.currentTarget,!0===L)},onTouchStart:function(e){A||"function"!=typeof S||S(e),A&&o.props&&"function"==typeof o.props.onTouchStart&&o.props.onTouchStart(e),$&&U&&(0,p.onNavigationIntent)(e.currentTarget,!0===L)}};return(0,f.isAbsoluteUrl)(B)?z.href=B:A&&!P&&("a"!==o.type||"href"in o.props)||(z.href=(0,d.addBasePath)(B)),a=A?u.default.cloneElement(o,z):(0,i.jsx)("a",{...M,...z,children:n}),(0,i.jsx)(v.Provider,{value:s,children:a})}e.r(405374);let v=(0,u.createContext)(p.IDLE_LINK_STATUS),b=()=>(0,u.useContext)(v);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},572665,e=>{"use strict";let t=(0,e.i(363732).default)("users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]]);e.s(["Users",()=>t],572665)},906724,595807,e=>{"use strict";let t=(0,e.i(363732).default)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);e.s(["default",()=>t],595807),e.s(["Loader2",()=>t],906724)},363732,e=>{"use strict";var t=e.i(935851);let r=(...e)=>e.filter((e,t,r)=>!!e&&""!==e.trim()&&r.indexOf(e)===t).join(" ").trim(),n=e=>{let t=e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,r)=>r?r.toUpperCase():t.toLowerCase());return t.charAt(0).toUpperCase()+t.slice(1)};var o={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let a=(0,t.forwardRef)(({color:e="currentColor",size:n=24,strokeWidth:a=2,absoluteStrokeWidth:i,className:u="",children:s,iconNode:l,...c},f)=>(0,t.createElement)("svg",{ref:f,...o,width:n,height:n,stroke:e,strokeWidth:i?24*Number(a)/Number(n):a,className:r("lucide",u),...!s&&!(e=>{for(let t in e)if(t.startsWith("aria-")||"role"===t||"title"===t)return!0;return!1})(c)&&{"aria-hidden":"true"},...c},[...l.map(([e,r])=>(0,t.createElement)(e,r)),...Array.isArray(s)?s:[s]])),i=(e,o)=>{let i=(0,t.forwardRef)(({className:i,...u},s)=>(0,t.createElement)(a,{ref:s,iconNode:o,className:r(`lucide-${n(e).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${e}`,i),...u}));return i.displayName=n(e),i};e.s(["default",()=>i],363732)},506420,(e,t,r)=>{t.exports=e.r(27944)},459073,e=>{"use strict";let t=(0,e.i(363732).default)("folder-plus",[["path",{d:"M12 10v6",key:"1bos4e"}],["path",{d:"M9 13h6",key:"1uhe8q"}],["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]]);e.s(["FolderPlus",()=>t],459073)},378562,e=>{"use strict";var t=e.i(762281),r=e.i(307241);function n({icon:e,title:n,description:o,ctaLabel:a,ctaHref:i}){return(0,t.jsx)("div",{className:"h-full w-full flex items-center justify-center bg-[var(--background)] px-6 py-12",children:(0,t.jsxs)("div",{className:"max-w-md w-full text-center space-y-6",children:[(0,t.jsx)("div",{className:"mx-auto w-14 h-14 rounded-2xl bg-[var(--secondary)] flex items-center justify-center",children:e}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("h1",{className:"text-[22px] font-bold text-[var(--foreground)] tracking-tight",children:n}),(0,t.jsx)("p",{className:"text-[14px] text-[var(--muted-foreground)] leading-relaxed",children:o})]}),(0,t.jsx)(r.default,{href:i,className:"inline-flex items-center gap-2 px-6 py-2.5 bg-[var(--foreground)] text-[var(--background)] text-[14px] font-semibold rounded-lg hover:opacity-90 transition-all",children:a})]})})}e.s(["EmptyStateCard",()=>n])},649582,e=>{"use strict";var t=e.i(762281),r=e.i(935851),n=e.i(506420),o=e.i(459073),a=e.i(906724),i=e.i(572665),u=e.i(378562);function s(){let e=(0,n.useRouter)(),[s,l]=(0,r.useState)({kind:"loading"});return((0,r.useEffect)(()=>{let t=!1;return(async()=>{try{let r=await fetch("/api/projects",{cache:"no-store"});if(t)return;if(!r.ok)return void e.replace("/setup");let n=await r.json(),o=Array.isArray(n?.projects)?n.projects:[];if(0===o.length){let r=await fetch("/api/providers",{cache:"no-store"});if(t)return;let n=r.ok?await r.json():{providers:[]};if(!(Array.isArray(n?.providers)?n.providers:[]).some(e=>e?.installed&&e?.authenticated))return void e.replace("/setup");l({kind:"no-project"});return}let a=o[0],i=await fetch(`/api/projects/${a.id}/teams`,{cache:"no-store"});if(t)return;let u=i.ok?await i.json():{teams:[]},s=Array.isArray(u?.teams)?u.teams:[];if(0===s.length)return void l({kind:"no-team",projectSlug:a.slug,projectName:a.name});e.replace(`/projects/${a.slug}`)}catch{t||e.replace("/setup")}})(),()=>{t=!0}},[e]),"loading"===s.kind||"ready"===s.kind)?(0,t.jsx)("div",{className:"h-screen w-full flex items-center justify-center bg-[var(--background)]",children:(0,t.jsx)(a.Loader2,{className:"w-6 h-6 animate-spin text-[var(--muted-foreground)]"})}):"no-project"===s.kind?(0,t.jsx)("div",{className:"h-screen w-full bg-[var(--background)]",children:(0,t.jsx)(u.EmptyStateCard,{icon:(0,t.jsx)(o.FolderPlus,{className:"w-6 h-6 text-[var(--foreground)]"}),title:"Create your first project",description:"A project groups your tickets, repos, and PRs — plus the agent teams that work them. Create one to get started.",ctaLabel:"Create a project",ctaHref:"/projects?new=1"})}):(0,t.jsx)("div",{className:"h-screen w-full bg-[var(--background)]",children:(0,t.jsx)(u.EmptyStateCard,{icon:(0,t.jsx)(i.Users,{className:"w-6 h-6 text-[var(--foreground)]"}),title:`Add a team to ${s.projectName}`,description:"Teams are the agents that work through your tickets and PRs. Add one to start shipping.",ctaLabel:"Add a team",ctaHref:`/projects/${s.projectSlug}/teams/new`})})}e.s(["default",()=>s])}]);
|