@mndrk/agx 2.4.10 → 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 +5 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_full.segment.rsc +5 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_index.segment.rsc +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 +1 -1
- 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]__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_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]__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]__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_app_projects_[slug]_folders_page_tsx_72fb68e5._.js +1 -1
- 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_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/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/38a2210cf8c5fa16.js +1 -0
- 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/{afad1102543847bf.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/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/b2c704fe1711d660.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/{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/layout.tsx +14 -2
- 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/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/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/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 -4
- 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]__d08d7899._.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/static/chunks/114ea1bfd6907330.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/5709a6f7c5c182d6.js +0 -1
- 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/aa3029ae0b62f930.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/c8c0c4b13e08bb14.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/de56d09bb0de7dd5.js +0 -16
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/e5fdfbbe9bae1f03.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/f007705fe5db26f1.js +0 -16
- /package/cloud-runtime/standalone/apps/local/.next/static/{x7w3oijN4B1r7IvTuL96T → 5TAcMQcrkt4mBnsqrfw6B}/_buildManifest.js +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/static/{x7w3oijN4B1r7IvTuL96T → 5TAcMQcrkt4mBnsqrfw6B}/_clientMiddlewareManifest.json +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/static/{x7w3oijN4B1r7IvTuL96T → 5TAcMQcrkt4mBnsqrfw6B}/_ssgManifest.js +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
module.exports=[756490,a=>{"use strict";let b=(0,a.i(831709).default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);a.s(["ChevronRight",()=>b],756490)},252197,a=>{"use strict";let b=(0,a.i(831709).default)("user",[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]]);a.s(["User",()=>b],252197)},89613,a=>{"use strict";let b=(0,a.i(831709).default)("folder-open",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]);a.s(["FolderOpen",()=>b],89613)},529889,a=>{"use strict";var b=a.i(786220);function c(){return{isCoarsePointer:!1,canHover:!0,isPhone:!1,isTablet:!1,isTouchLayout:!1}}function d(){let[a,d]=(0,b.useState)(c);return(0,b.useEffect)(()=>{},[]),a}a.s(["useInputCapabilities",()=>d])},47349,(a,b,c)=>{"use strict";var d=a.r(786220);d.useState,d.useEffect,d.useLayoutEffect,d.useDebugValue,c.useSyncExternalStore=void 0!==d.useSyncExternalStore?d.useSyncExternalStore:function(a,b){return b()}},487610,(a,b,c)=>{"use strict";b.exports=a.r(47349)},997514,(a,b,c)=>{"use strict";var d=a.r(786220),e=a.r(487610),f="function"==typeof Object.is?Object.is:function(a,b){return a===b&&(0!==a||1/a==1/b)||a!=a&&b!=b},g=e.useSyncExternalStore,h=d.useRef,i=d.useEffect,j=d.useMemo,k=d.useDebugValue;c.useSyncExternalStoreWithSelector=function(a,b,c,d,e){var l=h(null);if(null===l.current){var m={hasValue:!1,value:null};l.current=m}else m=l.current;var n=g(a,(l=j(function(){function a(a){if(!i){if(i=!0,g=a,a=d(a),void 0!==e&&m.hasValue){var b=m.value;if(e(b,a))return h=b}return h=a}if(b=h,f(g,a))return b;var c=d(a);return void 0!==e&&e(b,c)?(g=a,b):(g=a,h=c)}var g,h,i=!1,j=void 0===c?null:c;return[function(){return a(b())},null===j?void 0:function(){return a(j())}]},[b,c,d,e]))[0],l[1]);return i(function(){m.hasValue=!0,m.value=n},[n]),k(n),n}},864442,(a,b,c)=>{"use strict";b.exports=a.r(997514)},831709,a=>{"use strict";var b=a.i(786220);let c=(...a)=>a.filter((a,b,c)=>!!a&&""!==a.trim()&&c.indexOf(a)===b).join(" ").trim(),d=a=>{let b=a.replace(/^([A-Z])|[\s-_]+(\w)/g,(a,b,c)=>c?c.toUpperCase():b.toLowerCase());return b.charAt(0).toUpperCase()+b.slice(1)};var e={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 f=(0,b.forwardRef)(({color:a="currentColor",size:d=24,strokeWidth:f=2,absoluteStrokeWidth:g,className:h="",children:i,iconNode:j,...k},l)=>(0,b.createElement)("svg",{ref:l,...e,width:d,height:d,stroke:a,strokeWidth:g?24*Number(f)/Number(d):f,className:c("lucide",h),...!i&&!(a=>{for(let b in a)if(b.startsWith("aria-")||"role"===b||"title"===b)return!0;return!1})(k)&&{"aria-hidden":"true"},...k},[...j.map(([a,c])=>(0,b.createElement)(a,c)),...Array.isArray(i)?i:[i]])),g=(a,e)=>{let g=(0,b.forwardRef)(({className:g,...h},i)=>(0,b.createElement)(f,{ref:i,iconNode:e,className:c(`lucide-${d(a).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${a}`,g),...h}));return g.displayName=d(a),g};a.s(["default",()=>g],831709)},830284,a=>{"use strict";var b=a.i(786220);function c(){let[a,c]=(0,b.useState)([]),[d,e]=(0,b.useState)(!1),[f,g]=(0,b.useState)(null),h=(0,b.useCallback)(async()=>{e(!0);try{let a=await fetch("/api/projects");if(!a.ok)throw Error("Failed to fetch projects");let b=await a.json();c(b.projects??[]),g(null)}catch(a){g(a instanceof Error?a:Error("Unknown error"))}finally{e(!1)}},[]);(0,b.useEffect)(()=>{h()},[h]);let i=(0,b.useCallback)(async a=>{let b=await fetch("/api/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!b.ok)throw Error((await b.json().catch(()=>({}))).error||"Failed to create project");let d=(await b.json()).project;return c(a=>[d,...a]),d},[]);return{projects:a,isLoading:d,error:f,refetch:h,createProject:i,updateProject:(0,b.useCallback)(async(a,b)=>{let d=await fetch(`/api/projects/${a}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(b)});if(!d.ok)throw Error((await d.json().catch(()=>({}))).error||"Failed to update project");let e=(await d.json()).project;return c(b=>b.map(b=>b.id===a?e:b)),e},[]),deleteProject:(0,b.useCallback)(async a=>{let b=await fetch(`/api/projects/${a}`,{method:"DELETE"});if(!b.ok)throw Error((await b.json().catch(()=>({}))).error||"Failed to delete project");c(b=>b.filter(b=>b.id!==a))},[])}}function d(){let[a,c]=(0,b.useState)([]),[d,e]=(0,b.useState)(!0),f=(0,b.useCallback)(async()=>{try{let a=await fetch("/api/projects");if(!a.ok)return;let{projects:b}=await a.json(),d=await Promise.all((b??[]).map(async a=>{let b=[],c=[];try{let[d,e]=await Promise.all([fetch(`/api/projects/${a.id}/agents`),fetch(`/api/projects/${a.id}/threads`)]);d.ok&&(b=(await d.json()).agents??[]),e.ok&&(c=((await e.json()).threads??[]).map(a=>a.thread_id))}catch{}return{...a,repos:a.repos??[],agents:b.map(b=>({project_id:a.id,agent_id:b.agent_id,routing_order:b.routing_order,created_at:b.created_at})),thread_ids:c,workspace_ids:c}}));c(d)}catch{}finally{e(!1)}},[]);(0,b.useEffect)(()=>{f()},[f]);let g=(0,b.useCallback)(async(a,b)=>{try{let d="string"==typeof a?{name:a}:a,e=d.name.trim(),f=(d.slug||e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"")).trim(),g=await fetch("/api/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...d,name:e,slug:f})});if(!g.ok)return null;let{project:h}=await g.json(),i=Array.isArray(b)?b:b?[b]:[];for(let a of i)await fetch(`/api/projects/${h.id}/threads`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:a})}).catch(a=>console.warn("[useProjects] link thread failed:",a));let j={...h,repos:h.repos??[],agents:[],thread_ids:i,workspace_ids:i};return c(a=>[...a,j].sort((a,b)=>a.name.localeCompare(b.name))),j}catch{return null}},[]),h=(0,b.useCallback)(async(a,b)=>{try{if(!(await fetch(`/api/projects/${a}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:b})})).ok)return;c(c=>c.map(c=>c.id===a?{...c,name:b}:c).sort((a,b)=>a.name.localeCompare(b.name)))}catch{}},[]),i=(0,b.useCallback)(async a=>{try{if(!(await fetch(`/api/projects/${a}`,{method:"DELETE"})).ok)return;c(b=>b.filter(b=>b.id!==a))}catch{}},[]),j=(0,b.useCallback)(async(a,b)=>{try{let d=await fetch(`/api/projects/${a}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(b)});if(!d.ok){let a=await d.json().catch(()=>({}));throw Error(a.error||"Failed to update project")}let e=(await d.json()).project;return c(b=>b.map(b=>b.id===a?{...b,...e,repos:e.repos??b.repos}:b)),e}catch{return null}},[]),k=(0,b.useCallback)(async(a,b)=>{try{let d=await fetch(`/api/projects/${a}/agents`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentId:b})});if(!d.ok)return;let e=((await d.json()).agents??[]).map(b=>({project_id:a,agent_id:b.agent_id,routing_order:b.routing_order,created_at:b.created_at}));c(b=>b.map(b=>b.id===a?{...b,agents:e}:b))}catch{}},[]),l=(0,b.useCallback)(async(a,b)=>{try{let d=await fetch(`/api/projects/${a}/agents?agentId=${b}`,{method:"DELETE"});if(!d.ok)return;let e=((await d.json()).agents??[]).map(b=>({project_id:a,agent_id:b.agent_id,routing_order:b.routing_order,created_at:b.created_at}));c(b=>b.map(b=>b.id===a?{...b,agents:e}:b))}catch{}},[]);return{projects:a,isLoading:d,createProject:g,updateProject:j,renameProject:h,deleteProject:i,addAgent:k,removeAgent:l,reorderAgents:(0,b.useCallback)(async(a,b)=>{try{let d=await fetch(`/api/projects/${a}/agents`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({orderedAgentIds:b})});if(!d.ok)return;let e=((await d.json()).agents??[]).map(b=>({project_id:a,agent_id:b.agent_id,routing_order:b.routing_order,created_at:b.created_at}));c(b=>b.map(b=>b.id===a?{...b,agents:e}:b))}catch{}},[]),moveAgent:(0,b.useCallback)(async(a,b,c)=>{try{await fetch(`/api/projects/${b}/agents?agentId=${a}`,{method:"DELETE"}),await fetch(`/api/projects/${c}/agents`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentId:a})}),await f()}catch{}},[f]),refresh:f}}a.s(["useProjects",()=>c,"useProjectsWithAgents",()=>d])},824179,a=>{"use strict";let b=(0,a.i(831709).default)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);a.s(["X",()=>b],824179)},353532,a=>{"use strict";let b=(0,a.i(831709).default)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);a.s(["Plus",()=>b],353532)},627421,a=>{"use strict";let b=(0,a.i(831709).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);a.s(["Check",()=>b],627421)},811760,a=>{"use strict";let b=(0,a.i(831709).default)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);a.s(["ChevronDown",()=>b],811760)},542341,a=>{"use strict";let b=(0,a.i(831709).default)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]);a.s(["Search",()=>b],542341)},985339,a=>{"use strict";let b=(0,a.i(831709).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"}]]);a.s(["Users",()=>b],985339)},766412,a=>{"use strict";var b=a.i(308316),c=a.i(786220),d=a.i(811760),e=a.i(542341),f=a.i(627421),g=a.i(824179);function h({options:a,value:h,onChange:i,placeholder:j,disabled:k}){let[l,m]=(0,c.useState)(!1),[n,o]=(0,c.useState)(""),p=(0,c.useRef)(null),q=(0,c.useRef)(null),r=(0,c.useMemo)(()=>{if(!n)return a;let b=n.toLowerCase();return a.filter(a=>a.label.toLowerCase().includes(b)||a.description?.toLowerCase().includes(b)||a.meta?.toLowerCase().includes(b))},[a,n]),s=(0,c.useMemo)(()=>a.find(a=>a.id===h),[a,h]),t=(0,c.useCallback)(a=>{p.current&&!p.current.contains(a.target)&&m(!1)},[]);return(0,c.useEffect)(()=>(document.addEventListener("pointerdown",t),()=>document.removeEventListener("pointerdown",t)),[t]),(0,b.jsxs)("div",{ref:p,className:"relative",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>{k||(m(!l),o(""),setTimeout(()=>q.current?.focus(),0))},disabled:k,className:"input w-full flex items-center justify-between gap-2 text-left cursor-pointer",children:[s?(0,b.jsx)("span",{className:"truncate",children:s.label}):(0,b.jsx)("span",{className:"text-[var(--muted-foreground)] truncate",children:j}),(0,b.jsx)(d.ChevronDown,{className:`w-4 h-4 text-[var(--muted-foreground)] flex-shrink-0 transition-transform ${l?"rotate-180":""}`})]}),l&&(0,b.jsxs)("div",{className:"absolute z-50 mt-2 min-w-full w-max max-w-[28rem] rounded-2xl overflow-hidden right-0",style:{background:"var(--card-bg)",border:"1px solid var(--border)",boxShadow:"0 8px 30px rgba(0,0,0,0.35), 0 0 0 1px rgba(255,255,255,0.05)"},children:[(0,b.jsxs)("div",{className:"flex items-center gap-2.5 px-3.5 py-3 border-b",style:{borderColor:"var(--border)"},children:[(0,b.jsx)(e.Search,{className:"w-4 h-4 text-[var(--muted-foreground)] flex-shrink-0"}),(0,b.jsx)("input",{ref:q,value:n,onChange:a=>o(a.target.value),placeholder:"Search...",className:"flex-1 bg-transparent text-sm outline-none placeholder:text-[var(--muted-foreground)]"}),n&&(0,b.jsx)("button",{onClick:()=>o(""),className:"text-[var(--muted-foreground)] hover:text-[var(--foreground)]",children:(0,b.jsx)(g.X,{className:"w-3.5 h-3.5"})})]}),(0,b.jsxs)("div",{className:"max-h-72 overflow-y-auto py-1",children:[0===r.length&&(0,b.jsx)("div",{className:"px-4 py-6 text-xs text-[var(--muted-foreground)] text-center",children:"No matches"}),r.map(a=>{let c=a.id===h;return(0,b.jsxs)("button",{onClick:()=>{a.disabled||(i(a.id),m(!1),o(""))},disabled:a.disabled,className:`
|
|
1
|
+
module.exports=[756490,a=>{"use strict";let b=(0,a.i(831709).default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);a.s(["ChevronRight",()=>b],756490)},89613,a=>{"use strict";let b=(0,a.i(831709).default)("folder-open",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]);a.s(["FolderOpen",()=>b],89613)},252197,a=>{"use strict";let b=(0,a.i(831709).default)("user",[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]]);a.s(["User",()=>b],252197)},529889,a=>{"use strict";var b=a.i(786220);function c(){return{isCoarsePointer:!1,canHover:!0,isPhone:!1,isTablet:!1,isTouchLayout:!1}}function d(){let[a,d]=(0,b.useState)(c);return(0,b.useEffect)(()=>{},[]),a}a.s(["useInputCapabilities",()=>d])},47349,(a,b,c)=>{"use strict";var d=a.r(786220);d.useState,d.useEffect,d.useLayoutEffect,d.useDebugValue,c.useSyncExternalStore=void 0!==d.useSyncExternalStore?d.useSyncExternalStore:function(a,b){return b()}},487610,(a,b,c)=>{"use strict";b.exports=a.r(47349)},997514,(a,b,c)=>{"use strict";var d=a.r(786220),e=a.r(487610),f="function"==typeof Object.is?Object.is:function(a,b){return a===b&&(0!==a||1/a==1/b)||a!=a&&b!=b},g=e.useSyncExternalStore,h=d.useRef,i=d.useEffect,j=d.useMemo,k=d.useDebugValue;c.useSyncExternalStoreWithSelector=function(a,b,c,d,e){var l=h(null);if(null===l.current){var m={hasValue:!1,value:null};l.current=m}else m=l.current;var n=g(a,(l=j(function(){function a(a){if(!i){if(i=!0,g=a,a=d(a),void 0!==e&&m.hasValue){var b=m.value;if(e(b,a))return h=b}return h=a}if(b=h,f(g,a))return b;var c=d(a);return void 0!==e&&e(b,c)?(g=a,b):(g=a,h=c)}var g,h,i=!1,j=void 0===c?null:c;return[function(){return a(b())},null===j?void 0:function(){return a(j())}]},[b,c,d,e]))[0],l[1]);return i(function(){m.hasValue=!0,m.value=n},[n]),k(n),n}},864442,(a,b,c)=>{"use strict";b.exports=a.r(997514)},831709,a=>{"use strict";var b=a.i(786220);let c=(...a)=>a.filter((a,b,c)=>!!a&&""!==a.trim()&&c.indexOf(a)===b).join(" ").trim(),d=a=>{let b=a.replace(/^([A-Z])|[\s-_]+(\w)/g,(a,b,c)=>c?c.toUpperCase():b.toLowerCase());return b.charAt(0).toUpperCase()+b.slice(1)};var e={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 f=(0,b.forwardRef)(({color:a="currentColor",size:d=24,strokeWidth:f=2,absoluteStrokeWidth:g,className:h="",children:i,iconNode:j,...k},l)=>(0,b.createElement)("svg",{ref:l,...e,width:d,height:d,stroke:a,strokeWidth:g?24*Number(f)/Number(d):f,className:c("lucide",h),...!i&&!(a=>{for(let b in a)if(b.startsWith("aria-")||"role"===b||"title"===b)return!0;return!1})(k)&&{"aria-hidden":"true"},...k},[...j.map(([a,c])=>(0,b.createElement)(a,c)),...Array.isArray(i)?i:[i]])),g=(a,e)=>{let g=(0,b.forwardRef)(({className:g,...h},i)=>(0,b.createElement)(f,{ref:i,iconNode:e,className:c(`lucide-${d(a).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${a}`,g),...h}));return g.displayName=d(a),g};a.s(["default",()=>g],831709)},830284,a=>{"use strict";var b=a.i(786220);function c(){let[a,c]=(0,b.useState)([]),[d,e]=(0,b.useState)(!1),[f,g]=(0,b.useState)(null),h=(0,b.useCallback)(async()=>{e(!0);try{let a=await fetch("/api/projects");if(!a.ok)throw Error("Failed to fetch projects");let b=await a.json();c(b.projects??[]),g(null)}catch(a){g(a instanceof Error?a:Error("Unknown error"))}finally{e(!1)}},[]);(0,b.useEffect)(()=>{h()},[h]);let i=(0,b.useCallback)(async a=>{let b=await fetch("/api/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!b.ok)throw Error((await b.json().catch(()=>({}))).error||"Failed to create project");let d=(await b.json()).project;return c(a=>[d,...a]),d},[]);return{projects:a,isLoading:d,error:f,refetch:h,createProject:i,updateProject:(0,b.useCallback)(async(a,b)=>{let d=await fetch(`/api/projects/${a}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(b)});if(!d.ok)throw Error((await d.json().catch(()=>({}))).error||"Failed to update project");let e=(await d.json()).project;return c(b=>b.map(b=>b.id===a?e:b)),e},[]),deleteProject:(0,b.useCallback)(async a=>{let b=await fetch(`/api/projects/${a}`,{method:"DELETE"});if(!b.ok)throw Error((await b.json().catch(()=>({}))).error||"Failed to delete project");c(b=>b.filter(b=>b.id!==a))},[])}}function d(){let[a,c]=(0,b.useState)([]),[d,e]=(0,b.useState)(!0),f=(0,b.useCallback)(async()=>{try{let a=await fetch("/api/projects");if(!a.ok)return;let{projects:b}=await a.json(),d=await Promise.all((b??[]).map(async a=>{let b=[],c=[];try{let[d,e]=await Promise.all([fetch(`/api/projects/${a.id}/agents`),fetch(`/api/projects/${a.id}/threads`)]);d.ok&&(b=(await d.json()).agents??[]),e.ok&&(c=((await e.json()).threads??[]).map(a=>a.thread_id))}catch{}return{...a,repos:a.repos??[],agents:b.map(b=>({project_id:a.id,agent_id:b.agent_id,routing_order:b.routing_order,created_at:b.created_at})),thread_ids:c,workspace_ids:c}}));c(d)}catch{}finally{e(!1)}},[]);(0,b.useEffect)(()=>{f()},[f]);let g=(0,b.useCallback)(async(a,b)=>{try{let d="string"==typeof a?{name:a}:a,e=d.name.trim(),f=(d.slug||e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"")).trim(),g=await fetch("/api/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...d,name:e,slug:f})});if(!g.ok)return null;let{project:h}=await g.json(),i=Array.isArray(b)?b:b?[b]:[];for(let a of i)await fetch(`/api/projects/${h.id}/threads`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:a})}).catch(a=>console.warn("[useProjects] link thread failed:",a));let j={...h,repos:h.repos??[],agents:[],thread_ids:i,workspace_ids:i};return c(a=>[...a,j].sort((a,b)=>a.name.localeCompare(b.name))),j}catch{return null}},[]),h=(0,b.useCallback)(async(a,b)=>{try{if(!(await fetch(`/api/projects/${a}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:b})})).ok)return;c(c=>c.map(c=>c.id===a?{...c,name:b}:c).sort((a,b)=>a.name.localeCompare(b.name)))}catch{}},[]),i=(0,b.useCallback)(async a=>{try{if(!(await fetch(`/api/projects/${a}`,{method:"DELETE"})).ok)return;c(b=>b.filter(b=>b.id!==a))}catch{}},[]),j=(0,b.useCallback)(async(a,b)=>{try{let d=await fetch(`/api/projects/${a}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(b)});if(!d.ok){let a=await d.json().catch(()=>({}));throw Error(a.error||"Failed to update project")}let e=(await d.json()).project;return c(b=>b.map(b=>b.id===a?{...b,...e,repos:e.repos??b.repos}:b)),e}catch{return null}},[]),k=(0,b.useCallback)(async(a,b)=>{try{let d=await fetch(`/api/projects/${a}/agents`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentId:b})});if(!d.ok)return;let e=((await d.json()).agents??[]).map(b=>({project_id:a,agent_id:b.agent_id,routing_order:b.routing_order,created_at:b.created_at}));c(b=>b.map(b=>b.id===a?{...b,agents:e}:b))}catch{}},[]),l=(0,b.useCallback)(async(a,b)=>{try{let d=await fetch(`/api/projects/${a}/agents?agentId=${b}`,{method:"DELETE"});if(!d.ok)return;let e=((await d.json()).agents??[]).map(b=>({project_id:a,agent_id:b.agent_id,routing_order:b.routing_order,created_at:b.created_at}));c(b=>b.map(b=>b.id===a?{...b,agents:e}:b))}catch{}},[]);return{projects:a,isLoading:d,createProject:g,updateProject:j,renameProject:h,deleteProject:i,addAgent:k,removeAgent:l,reorderAgents:(0,b.useCallback)(async(a,b)=>{try{let d=await fetch(`/api/projects/${a}/agents`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({orderedAgentIds:b})});if(!d.ok)return;let e=((await d.json()).agents??[]).map(b=>({project_id:a,agent_id:b.agent_id,routing_order:b.routing_order,created_at:b.created_at}));c(b=>b.map(b=>b.id===a?{...b,agents:e}:b))}catch{}},[]),moveAgent:(0,b.useCallback)(async(a,b,c)=>{try{await fetch(`/api/projects/${b}/agents?agentId=${a}`,{method:"DELETE"}),await fetch(`/api/projects/${c}/agents`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentId:a})}),await f()}catch{}},[f]),refresh:f}}a.s(["useProjects",()=>c,"useProjectsWithAgents",()=>d])},824179,a=>{"use strict";let b=(0,a.i(831709).default)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);a.s(["X",()=>b],824179)},353532,a=>{"use strict";let b=(0,a.i(831709).default)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);a.s(["Plus",()=>b],353532)},627421,a=>{"use strict";let b=(0,a.i(831709).default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);a.s(["Check",()=>b],627421)},811760,a=>{"use strict";let b=(0,a.i(831709).default)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);a.s(["ChevronDown",()=>b],811760)},542341,a=>{"use strict";let b=(0,a.i(831709).default)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]);a.s(["Search",()=>b],542341)},985339,a=>{"use strict";let b=(0,a.i(831709).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"}]]);a.s(["Users",()=>b],985339)},766412,a=>{"use strict";var b=a.i(308316),c=a.i(786220),d=a.i(811760),e=a.i(542341),f=a.i(627421),g=a.i(824179);function h({options:a,value:h,onChange:i,placeholder:j,disabled:k}){let[l,m]=(0,c.useState)(!1),[n,o]=(0,c.useState)(""),p=(0,c.useRef)(null),q=(0,c.useRef)(null),r=(0,c.useMemo)(()=>{if(!n)return a;let b=n.toLowerCase();return a.filter(a=>a.label.toLowerCase().includes(b)||a.description?.toLowerCase().includes(b)||a.meta?.toLowerCase().includes(b))},[a,n]),s=(0,c.useMemo)(()=>a.find(a=>a.id===h),[a,h]),t=(0,c.useCallback)(a=>{p.current&&!p.current.contains(a.target)&&m(!1)},[]);return(0,c.useEffect)(()=>(document.addEventListener("pointerdown",t),()=>document.removeEventListener("pointerdown",t)),[t]),(0,b.jsxs)("div",{ref:p,className:"relative",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>{k||(m(!l),o(""),setTimeout(()=>q.current?.focus(),0))},disabled:k,className:"input w-full flex items-center justify-between gap-2 text-left cursor-pointer",children:[s?(0,b.jsx)("span",{className:"truncate",children:s.label}):(0,b.jsx)("span",{className:"text-[var(--muted-foreground)] truncate",children:j}),(0,b.jsx)(d.ChevronDown,{className:`w-4 h-4 text-[var(--muted-foreground)] flex-shrink-0 transition-transform ${l?"rotate-180":""}`})]}),l&&(0,b.jsxs)("div",{className:"absolute z-50 mt-2 min-w-full w-max max-w-[28rem] rounded-2xl overflow-hidden right-0",style:{background:"var(--card-bg)",border:"1px solid var(--border)",boxShadow:"0 8px 30px rgba(0,0,0,0.35), 0 0 0 1px rgba(255,255,255,0.05)"},children:[(0,b.jsxs)("div",{className:"flex items-center gap-2.5 px-3.5 py-3 border-b",style:{borderColor:"var(--border)"},children:[(0,b.jsx)(e.Search,{className:"w-4 h-4 text-[var(--muted-foreground)] flex-shrink-0"}),(0,b.jsx)("input",{ref:q,value:n,onChange:a=>o(a.target.value),placeholder:"Search...",className:"flex-1 bg-transparent text-sm outline-none placeholder:text-[var(--muted-foreground)]"}),n&&(0,b.jsx)("button",{onClick:()=>o(""),className:"text-[var(--muted-foreground)] hover:text-[var(--foreground)]",children:(0,b.jsx)(g.X,{className:"w-3.5 h-3.5"})})]}),(0,b.jsxs)("div",{className:"max-h-72 overflow-y-auto py-1",children:[0===r.length&&(0,b.jsx)("div",{className:"px-4 py-6 text-xs text-[var(--muted-foreground)] text-center",children:"No matches"}),r.map(a=>{let c=a.id===h;return(0,b.jsxs)("button",{onClick:()=>{a.disabled||(i(a.id),m(!1),o(""))},disabled:a.disabled,className:`
|
|
2
2
|
w-full text-left px-3.5 py-2.5 flex items-center gap-3 transition-colors
|
|
3
3
|
${a.disabled?"opacity-35 cursor-not-allowed":""}
|
|
4
4
|
${c?"bg-[var(--primary)]/10":"hover:bg-[var(--muted)]/40"}
|
|
5
5
|
`,children:[(0,b.jsx)("div",{className:`w-5 h-5 rounded-md flex items-center justify-center flex-shrink-0 border ${c?"bg-[var(--primary)] border-[var(--primary)]":"border-[var(--border)]"}`,children:c&&(0,b.jsx)(f.Check,{className:"w-3 h-3 text-white"})}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"text-sm font-medium",children:a.label}),a.meta&&(0,b.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 rounded-full bg-[var(--muted)]/50 text-[var(--muted-foreground)]",children:a.meta})]}),a.description&&(0,b.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] mt-0.5 line-clamp-1",children:a.description})]})]},a.id)})]})]})]})}a.s(["default",()=>h])},804632,a=>{"use strict";let b=(0,a.i(831709).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"}]]);a.s(["Copy",()=>b],804632)},724938,a=>{"use strict";let b=(0,a.i(831709).default)("sparkles",[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]]);a.s(["Sparkles",()=>b],724938)}];
|
|
6
6
|
|
|
7
|
-
//# sourceMappingURL=
|
|
7
|
+
//# sourceMappingURL=_f2cf58ea._.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[639211,a=>{"use strict";a.s(["GRAPH_TIMEOUT_DEFAULT_MS",0,864e5,"NODE_TIMEOUT_DEFAULT_MS",0,18e5,"UI_POLL_CHAT_ALT_MS",0,15e3,"UI_POLL_CHAT_CHECK_MS",0,1e4,"UI_POLL_DB_HEALTH_MS",0,3e4,"UI_POLL_PROMPT_RUNS_MS",0,5e3,"UI_POLL_SYSTEM_STATUS_MS",0,3e4,"UI_POLL_UPDATE_CHECK_MS",0,18e5])},349692,372871,a=>{"use strict";let b=(0,a.i(831709).default)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);a.s(["default",()=>b],372871),a.s(["Loader2",()=>b],349692)},392045,70014,a=>{"use strict";var b=a.i(308316);function c({className:a}){return(0,b.jsx)("svg",{className:a,viewBox:"0 0 24 24",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",children:(0,b.jsx)("path",{d:"M2.886 4.18A11.982 11.982 0 0 1 11.99 0C18.624 0 24 5.376 24 12.009c0 3.64-1.62 6.903-4.18 9.105L2.887 4.18ZM1.817 5.626l16.556 16.556c-.524.33-1.075.62-1.65.866L.951 7.277c.247-.575.537-1.126.866-1.65ZM.322 9.163l14.515 14.515c-.71.172-1.443.282-2.195.322L0 11.358a12 12 0 0 1 .322-2.195Zm-.17 4.862 9.823 9.824a12.02 12.02 0 0 1-9.824-9.824Z"})})}a.s(["LinearIcon",()=>c],70014);let d={linear:c,jira:function({className:a}){return(0,b.jsxs)("svg",{className:a,viewBox:"12 12 104 104",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",children:[(0,b.jsx)("path",{d:"M108.023 16H61.805c0 11.52 9.324 20.848 20.847 20.848h8.5v8.226c0 11.52 9.328 20.848 20.848 20.848V19.977A3.98 3.98 0 00108.023 16zm0 0"}),(0,b.jsx)("path",{d:"M85.121 39.04H38.902c0 11.519 9.325 20.847 20.844 20.847h8.504v8.226c0 11.52 9.328 20.848 20.848 20.848V43.016a3.983 3.983 0 00-3.977-3.977zm0 0"}),(0,b.jsx)("path",{d:"M62.219 62.078H16c0 11.524 9.324 20.848 20.848 20.848h8.5v8.23c0 11.52 9.328 20.844 20.847 20.844V66.059a3.984 3.984 0 00-3.976-3.98zm0 0"})]})},github:function({className:a}){return(0,b.jsx)("svg",{className:a,viewBox:"0 0 24 24",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",children:(0,b.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0024 12c0-6.63-5.37-12-12-12z"})})}};function e({trackerType:a,className:c}){let e=d[a];return e?(0,b.jsx)(e,{className:c}):(0,b.jsx)(f,{className:c})}function f({className:a}){return(0,b.jsxs)("svg",{className:a,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",children:[(0,b.jsx)("path",{d:"M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2"}),(0,b.jsx)("rect",{x:"9",y:"3",width:"6",height:"4",rx:"2"}),(0,b.jsx)("path",{d:"M9 12h6"}),(0,b.jsx)("path",{d:"M9 16h6"})]})}a.s(["TrackerIcon",()=>e],392045)},552605,a=>{"use strict";let b=(0,a.i(831709).default)("file-text",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);a.s(["FileText",()=>b],552605)},157633,a=>{"use strict";let b=(0,a.i(831709).default)("folder",[["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"}]]);a.s(["Folder",()=>b],157633)},427411,a=>{"use strict";let b={bounds:null,sidebar:{workspaceWidth:260,logPanelHeight:200,workspaceVisible:!0,logPanelVisible:!1,linearTicketPanelWidth:576,objectiveChatPanelWidth:440,objectiveListPanelWidth:320,prReviewFilesPaneWidth:300,prReviewRightPaneWidth:380},scroll:{lastThreadId:null,lastWorkspaceId:null}};function c(){return({...b}).sidebar}function d(a){let c={...b};c.sidebar={...c.sidebar,...a}}function e(){return c().workspaceWidth}function f(a){d({workspaceWidth:a})}function g(){return c().linearTicketPanelWidth}function h(a){d({linearTicketPanelWidth:a})}function i(){return c().objectiveChatPanelWidth}function j(a){d({objectiveChatPanelWidth:a})}function k(){return c().prReviewFilesPaneWidth}function l(a){d({prReviewFilesPaneWidth:a})}function m(){return c().prReviewRightPaneWidth}function n(a){d({prReviewRightPaneWidth:a})}function o(){return c().objectiveListPanelWidth}function p(a){d({objectiveListPanelWidth:a})}a.s(["loadLinearTicketPanelWidth",()=>g,"loadObjectiveChatPanelWidth",()=>i,"loadObjectiveListPanelWidth",()=>o,"loadPrReviewFilesPaneWidth",()=>k,"loadPrReviewRightPaneWidth",()=>m,"loadWorkspaceWidth",()=>e,"persistLinearTicketPanelWidth",()=>h,"persistObjectiveChatPanelWidth",()=>j,"persistObjectiveListPanelWidth",()=>p,"persistPrReviewFilesPaneWidth",()=>l,"persistPrReviewRightPaneWidth",()=>n,"persistWorkspaceWidth",()=>f])},870630,a=>{"use strict";let b="agx-chat:threads";function c(){let a=globalThis.localStorage;if(!a)throw Error("LocalThreadAdapter requires a browser-like environment with `localStorage`.");return a}function d(){let a=c().getItem(b);if(!a)return{threads:{}};try{let b=JSON.parse(a);if(b&&"object"==typeof b&&b.threads&&"object"==typeof b.threads)return{threads:Object.fromEntries(Object.entries(b.threads).map(([a,b])=>{var c,d;return[a,(c=a,d=b,{id:c,title:d?.title,messages:Array.isArray(d?.messages)?[...d.messages]:[],createdAt:"number"==typeof d?.createdAt?d.createdAt:Date.now(),updatedAt:"number"==typeof d?.updatedAt?d.updatedAt:Date.now(),metadata:d?.metadata,status:d?.status,outcomeNote:d?.outcomeNote,projectId:"string"==typeof d?.projectId?d.projectId:"string"==typeof d?.teamId?d.teamId:d?.projectId===null||d?.teamId===null?null:void 0})]}))}}catch{}return{threads:{}}}function e(a){c().setItem(b,JSON.stringify(a))}function f(a){return{...a,messages:a.messages.map(a=>({...a})),metadata:a.metadata?{...a.metadata}:void 0}}let g=new class{async saveThread(a){let b=Date.now(),c=d(),g=c.threads[a.id],h=g?.createdAt??a.createdAt??b,i=a.updatedAt??b,j={id:a.id,title:a.title,messages:a.messages.map(a=>({...a})),metadata:a.metadata,createdAt:h,updatedAt:i,status:a.status,outcomeNote:a.outcomeNote,projectId:a.projectId??a.teamId};return c.threads[a.id]=j,e(c),f(j)}async loadThread(a){let b=d().threads[a];return b?f(b):null}async listThreads(a){let b=Object.values(d().threads),c=a?.order??"desc",e=[...b].sort((a,b)=>"asc"===c?a.updatedAt-b.updatedAt:b.updatedAt-a.updatedAt),g=Math.max(0,a?.offset??0),h=a?.limit,i="number"==typeof h&&h>=0?e.slice(g,g+h):e.slice(g);return{total:b.length,threads:i.map(f)}}async deleteThread(a){let b=d();b.threads[a]&&(delete b.threads[a],e(b))}};a.s(["threadService",0,{listThreads:async()=>[...(await g.listThreads({order:"desc"})).threads.filter(a=>!0!==a.metadata?.archived)].sort((a,b)=>b.updatedAt-a.updatedAt),async createThread(a){let b="string"==typeof a?.id?a.id.trim():"";if(b){let c=await g.loadThread(b);if(c){let b={...c.metadata??{},...a?.metadata??{},archived:!1,archivedAt:null};return g.saveThread({id:c.id,title:a?.title??c.title,messages:a?.messages?.length?a.messages:c.messages,metadata:b,createdAt:c.createdAt})}}let c={id:b||("u">typeof crypto&&"function"==typeof crypto.randomUUID?crypto.randomUUID():`thread-${Date.now()}-${Math.random().toString(16).slice(2)}`),messages:a?.messages?.length?a.messages:[],title:a?.title,metadata:a?.metadata};return g.saveThread(c)},async deleteThread(a){let b=a.trim();if(!b)return;let c=await g.loadThread(b);if(!c)return;let d={...c.metadata??{},archived:!0,archivedAt:Date.now()};await g.saveThread({id:c.id,title:c.title,messages:c.messages,metadata:d,createdAt:c.createdAt})},async renameThread(a,b){let c=a.trim(),d=b.trim();if(!c||!d)return null;let e=await g.loadThread(c);return e?(e.title?.trim()??"")===d?e:g.saveThread({id:e.id,title:d,messages:e.messages,metadata:e.metadata,createdAt:e.createdAt}):null},async updateThreadStatus(a,b){let c=await g.loadThread(a);return c?c.status===b?c:g.saveThread({id:c.id,title:c.title,messages:c.messages,metadata:c.metadata,createdAt:c.createdAt,status:b,outcomeNote:c.outcomeNote}):null},async updateThreadOutcomeNote(a,b){let c=await g.loadThread(a);return c?c.outcomeNote===b?c:g.saveThread({id:c.id,title:c.title,messages:c.messages,metadata:c.metadata,createdAt:c.createdAt,status:c.status,outcomeNote:b}):null},async updateMessageThreadStatus(a,b,c){let d=await g.loadThread(a);if(!d)return null;let e=d.messages.map(a=>a.id===b?{...a,threadStatus:c}:a);return g.saveThread({id:d.id,title:d.title,messages:e,metadata:d.metadata,createdAt:d.createdAt,status:d.status,outcomeNote:d.outcomeNote})},async updateMessageOutcomeNote(a,b,c){let d=await g.loadThread(a);if(!d)return null;let e=d.messages.map(a=>a.id===b?{...a,outcomeNote:c}:a);return g.saveThread({id:d.id,title:d.title,messages:e,metadata:d.metadata,createdAt:d.createdAt,status:d.status,outcomeNote:d.outcomeNote})},async saveThreadMessages(a,b){let c=await g.loadThread(a);if(!c)return null;let d=c.title?.trim()||function(a){let b=a.find(a=>"user"===a.role)?.content?.trim();if(!b)return;let c=b.replace(/\s+/g," ");return c.length>60?`${c.slice(0,60).trim()}…`:c}(b);return function(a,b){if(a.length!==b.length)return!1;for(let c=0;c<a.length;c+=1){let d=a[c],e=b[c];if(d.id!==e.id||d.role!==e.role||d.participantId!==e.participantId||d.content!==e.content||d.timestamp!==e.timestamp)return!1}return!0}(c.messages,b)&&(c.title?.trim()||void 0)===d?c:g.saveThread({id:c.id,title:d,messages:b,metadata:c.metadata,createdAt:c.createdAt})}}],870630)},599086,a=>{"use strict";let b=(0,a.i(831709).default)("triangle-alert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);a.s(["AlertTriangle",()=>b],599086)},736868,a=>{"use strict";let b=(0,a.i(831709).default)("folder-git-2",[["path",{d:"M18 19a5 5 0 0 1-5-5v8",key:"sz5oeg"}],["path",{d:"M9 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v5",key:"1w6njk"}],["circle",{cx:"13",cy:"12",r:"2",key:"1j92g6"}],["circle",{cx:"20",cy:"19",r:"2",key:"1obnsp"}]]);a.s(["FolderGit2",()=>b],736868)},769677,a=>{"use strict";let b="project_objectives_workspace",c="project_goals_workspace",d=new Set(["on_track","at_risk","off_track","done"]);function e(a){return!!a&&"object"==typeof a&&!Array.isArray(a)}function f(a){return`${a}_${Math.random().toString(36).slice(2,10)}`}function g(a){return[...a].sort((a,b)=>Date.parse(b.updatedAt)-Date.parse(a.updatedAt))}function h(a){return[...a].sort((a,b)=>Date.parse(a.createdAt)-Date.parse(b.createdAt))}function i(a){return[...a].sort((a,b)=>Date.parse(b.createdAt)-Date.parse(a.createdAt))}function j(a,b=""){return"string"==typeof a?a:b}function k(a){return Array.isArray(a)?Array.from(new Set(a.map(a=>"string"==typeof a?a.trim():"").filter(Boolean))):[]}function l(a,b="1970-01-01T00:00:00.000Z"){if("string"!=typeof a)return b;let c=Date.parse(a);return Number.isNaN(c)?b:new Date(c).toISOString()}function m(a){return"number"==typeof a&&Number.isFinite(a)?Math.max(0,Math.min(100,Math.round(a))):0}function n(a,b=0){return"number"==typeof a&&Number.isFinite(a)?Math.max(0,Math.floor(a)):b}function o(a,b="objective"){let c=a.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").replace(/-{2,}/g,"-").slice(0,32);return c||b.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"objective"}function p(a,b,c="objective"){let d=o(c),e=o(a,d),f=e,g=2;for(;b.has(f);){let a=`-${g}`,b=Math.max(1,32-a.length);f=`${e.slice(0,b)}${a}`,g+=1}return b.add(f),f}function q(a,b,c){return p(a,new Set(b.filter(a=>a.id!==c).map(a=>o(a.key||a.title||a.id))),c??a)}function r(a){var b;if(!e(a))return null;let c=l(a.updatedAt??a.createdAt),g=l(a.createdAt,c);return{id:j(a.id,f("objective")),title:j(a.title,"Untitled objective"),teamId:j(a.teamId??a.team_id??a.ownerTeamId),key:o(j(a.key??a.slug??a.label),j(a.title??a.id,"objective")),threadId:j(a.threadId)||null,chatSessionVersion:n(a.chatSessionVersion,0),scheduledTaskIds:k(a.scheduledTaskIds??a.promptJobIds),summary:j(a.summary),progress:m(a.progress),status:"string"==typeof(b=a.status)&&d.has(b)?b:"on_track",createdAt:g,updatedAt:c}}function s(a){if(!e(a))return null;let b=l(a.updatedAt??a.createdAt),c=l(a.createdAt,b),d=j(a.objectiveId??a.goalId);return d?{id:j(a.id,f("objective_activity")),objectiveId:d,sourceType:"note",sourceLabel:j(a.sourceLabel,"Update"),title:j(a.title,"Untitled activity"),body:j(a.body),createdAt:c,updatedAt:b,relatedTaskId:j(a.relatedTaskId)||null}:null}function t(a){if(!e(a))return null;let b=j(a.activityId);return b?{id:j(a.id,f("objective_thread_message")),activityId:b,author:j(a.author,"You"),body:j(a.body),createdAt:l(a.createdAt)}:null}function u(){return{objectives:[],activities:[],activityThreads:{}}}function v(a){let b;if(!e(a))return u();let c=Array.isArray(a.objectives)?a.objectives.map(a=>r(a)).filter(a=>null!==a):[],d=Array.isArray(a.activities)?a.activities.map(a=>s(a)).filter(a=>null!==a):[],f=e(a.activityThreads)?Object.fromEntries(Object.entries(a.activityThreads).map(([a,b])=>[a,h(Array.isArray(b)?b.map(a=>t(a)).filter(a=>null!==a):[])])):{};return{objectives:g((b=new Set,c.map(a=>{let c=p(a.key||a.title||a.id,b,a.id||a.title||"objective");return a.key===c?a:{...a,key:c}}))),activities:i(d),activityThreads:f}}function w(a){if(!e(a))return u();let d=a[b];if(void 0!==d){let a=v(d);if(a.objectives.length>0||a.activities.length>0||Object.keys(a.activityThreads).length>0)return a}let f=a[c];if(void 0!==f){if(!e(f))return u();let a=Array.isArray(f.goals)?f.goals.map(a=>(function(a){if(!e(a))return null;let b=j(a.target),c=[j(a.summary),b?`Measure: ${b}`:""].filter(Boolean).join("\n\n");return r({...a,summary:c})})(a)).filter(a=>null!==a):[],b=Array.isArray(f.manualActivities)?f.manualActivities.map(a=>s({...a,sourceLabel:"Update"})).filter(a=>null!==a):[],c=e(f.activityThreads)?Object.fromEntries(Object.entries(f.activityThreads).map(([a,b])=>[a,h(Array.isArray(b)?b.map(b=>t({...b,activityId:a})).filter(a=>null!==a):[])])):{};return{objectives:g(a),activities:i(b),activityThreads:c}}return u()}function x(a,d){let e={...a};return delete e[c],e[b]=v(d),e}function y(a){return{id:a.id??f("objective"),title:a.title.trim(),teamId:a.teamId.trim(),key:o(a.key?.trim()??a.title.trim(),a.id??a.title),threadId:"string"==typeof a.threadId&&a.threadId.trim()?a.threadId.trim():null,chatSessionVersion:n(a.chatSessionVersion??2,2),scheduledTaskIds:k(a.scheduledTaskIds??[]),summary:a.summary?.trim()??"",progress:m(a.progress??0),status:a.status??"on_track",createdAt:a.now,updatedAt:a.now}}function z(a,b){let c=a.objectives.findIndex(a=>a.id===b.id)>=0?a.objectives.map(a=>a.id===b.id?b:a):[b,...a.objectives];return{...a,objectives:g(c)}}function A(a,b){let c=new Set(a.activities.filter(a=>a.objectiveId===b).map(a=>a.id)),d=Object.fromEntries(Object.entries(a.activityThreads).filter(([a])=>!c.has(a)));return{objectives:a.objectives.filter(a=>a.id!==b),activities:a.activities.filter(a=>a.objectiveId!==b),activityThreads:d}}function B({objective:a,workspace:b}){return b.activities.filter(b=>b.objectiveId===a.id).map(a=>({...a,threadCount:b.activityThreads[a.id]?.length??0})).sort((a,b)=>Date.parse(b.createdAt)-Date.parse(a.createdAt))}a.s(["CURRENT_OBJECTIVE_CHAT_SESSION_VERSION",0,2,"LEGACY_PROJECT_GOALS_METADATA_KEY",0,c,"PROJECT_HEALTH_METADATA_KEY",0,"project_health_snapshot","PROJECT_OBJECTIVES_METADATA_KEY",0,b,"buildObjectiveTimelineActivities",()=>B,"createProjectObjective",()=>y,"generateProjectObjectiveKey",()=>q,"readProjectObjectivesWorkspace",()=>w,"removeProjectObjective",()=>A,"upsertProjectObjective",()=>z,"writeProjectObjectivesWorkspace",()=>x])}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=apps_local_4d3f9c1e._.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[249603,a=>{"use strict";var b=a.i(308316),c=a.i(786220);function d({onResize:a,className:d,ariaLabel:e}){let f=(0,c.useRef)(0),g=(0,c.useRef)(a);g.current=a;let h=(0,c.useCallback)(a=>{a.preventDefault(),f.current=a.clientX,document.body.style.cursor="col-resize",document.body.style.userSelect="none";let b=a=>{let b=a.clientX-f.current;f.current=a.clientX,g.current(b)},c=()=>{document.body.style.cursor="",document.body.style.userSelect="",window.removeEventListener("mousemove",b),window.removeEventListener("mouseup",c)};window.addEventListener("mousemove",b),window.addEventListener("mouseup",c)},[]);return(0,b.jsx)("div",{role:"separator","aria-orientation":"vertical","aria-label":e,className:`group relative z-10 w-0 shrink-0 cursor-col-resize ${d??""}`,onMouseDown:h,children:(0,b.jsx)("div",{className:"absolute inset-y-0 -left-1 w-2 transition-colors group-hover:bg-[var(--primary)]/40"})})}a.s(["ResizeHandle",()=>d])},934657,a=>{"use strict";var b=a.i(308316),c=a.i(786220),d=a.i(777270);function e({params:a}){let{prId:e}=(0,c.use)(a);return(0,b.jsx)(d.PrReviewView,{prId:e})}a.s(["default",()=>e])}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=apps_local_6d8c811a._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[524509,a=>{"use strict";var b=a.i(308316),c=a.i(786220),d=a.i(340492),e=a.i(552605),f=a.i(157633),g=a.i(736868),h=a.i(785630),i=a.i(349692),j=a.i(667597),k=a.i(353532),l=a.i(354658),m=a.i(642784),n=a.i(144462),o=a.i(697183),p=a.i(262403),q=a.i(824179),r=a.i(109467),s=a.i(446946),t=a.i(967878);function u(a,b){switch(a){case"repositories":return"Repository";case"docs":return"Doc";case"config":return"Config";case"scripts":return"Script";default:return b}}function v(a,b){return{category:a,name:b?.name??"",path:b?.path??"",purpose:b?.purpose??"",error:null,isSaving:!1}}function w(a){switch(a){case"repositories":return g.FolderGit2;case"docs":return e.FileText;case"config":return m.Settings;case"scripts":return n.TerminalSquare;default:return f.Folder}}function x({projectId:a}){let{workspace:e,entryCount:f,isLoading:m,error:n,refetch:x,createEntry:y,updateEntry:z,deleteEntry:A}=(0,r.useProjectWorkspace)(a),[B,C]=(0,c.useState)([]),[D,E]=(0,c.useState)(null),[F,G]=(0,c.useState)(v("repositories")),[H,I]=(0,c.useState)(null),[J,K]=(0,c.useState)(null),[L,M]=(0,c.useState)(!1),[N,O]=(0,c.useState)(""),[P,Q]=(0,c.useState)(null),R=(0,c.useRef)(null),S=(0,s.buildWorkspaceCategoryGroups)(e,B),T=0===f&&0===B.length&&!D,U=(0,c.useCallback)((a,b="neutral")=>{Q({tone:b,message:a}),window.setTimeout(()=>Q(null),3500)},[]),V=(0,c.useCallback)(async()=>{let a=await fetch("/api/filesystem/pick-folder",{method:"POST"}),b=await a.json().catch(()=>({}));if(!a.ok)throw Error("string"==typeof b.error?b.error:"Failed to open folder picker");return"string"==typeof b.path?b.path:null},[]),W=(0,c.useCallback)(()=>{E(null),G(v("repositories"))},[]),X=(0,c.useCallback)(a=>{E(a),G(v(a)),I(null),K(null)},[]),Y=(0,c.useCallback)(a=>{I(a.id),K(v(a.category,a)),E(null),G(v(a.category))},[]),Z=(0,c.useCallback)(()=>{I(null),K(null)},[]),$=(0,c.useCallback)(async()=>{let a=F.name.trim();if(!a)return void G(a=>({...a,error:"Name is required"}));G(a=>({...a,isSaving:!0,error:null}));try{await y({category:F.category,name:a,path:F.path.trim()||null,purpose:F.purpose.trim()||null}),W(),U(`Added ${a} to ${S.find(a=>a.id===F.category)?.label??"workspace map"}`,"success")}catch(a){G(b=>({...b,isSaving:!1,error:a instanceof Error?a.message:"Failed to add workspace entry"}))}},[F,W,y,S,U]),_=(0,c.useCallback)(async()=>{if(!H||!J)return;let a=J.name.trim();if(!a)return void K(a=>a?{...a,error:"Name is required"}:a);K(a=>a?{...a,isSaving:!0,error:null}:a);try{await z(H,{name:a,path:J.path.trim()||null,purpose:J.purpose.trim()||null}),Z(),U("Workspace entry updated","success")}catch(a){K(b=>({...b??v(""),isSaving:!1,error:a instanceof Error?a.message:"Failed to update workspace entry"}))}},[Z,J,H,U,z]),aa=(0,c.useCallback)(async a=>{if(window.confirm(`Delete ${a.name} from ${a.category}?`))try{await A(a.id),H===a.id&&Z(),U(`Deleted ${a.name}`,"success")}catch(a){U(a instanceof Error?a.message:"Failed to delete workspace entry","error")}},[Z,A,H,U]),ab=(0,c.useCallback)(async()=>{try{let a=await V();a&&G(b=>({...b,path:a,error:null}))}catch(a){G(b=>({...b,error:a instanceof Error?a.message:"Failed to pick folder"}))}},[V]),ac=(0,c.useCallback)(async()=>{if(J)try{let a=await V();a&&K(b=>b?{...b,path:a,error:null}:b)}catch(a){K(b=>b?{...b,error:a instanceof Error?a.message:"Failed to pick folder"}:b)}},[J,V]),ad=(0,c.useCallback)(async a=>{try{let b=await V();if(!b)return;await z(a.id,{path:b}),U(`Updated path for ${a.name}`,"success")}catch(a){U(a instanceof Error?a.message:"Failed to update path","error")}},[V,U,z]),ae=(0,c.useCallback)(()=>{let a=N.trim();if(!a)return;let b=S.find(b=>b.id.toLowerCase()===a.toLowerCase()||b.label.toLowerCase()===a.toLowerCase());if(b){O(""),M(!1),X(b.id);return}C(b=>[...b,a]),O(""),M(!1),X(a)},[N,S,X]),af=(0,c.useCallback)(a=>{C(b=>b.filter(b=>b!==a)),D===a&&W()},[D,W]),ag=(0,c.useCallback)(()=>{window.open(`/api/projects/${a}/workspace/export`,"_blank")},[a]),ah=(0,c.useCallback)(async b=>{let c=b.target.files?.[0];if(c)try{let b=await c.text(),d=await fetch(`/api/projects/${a}/workspace/import`,{method:"POST",headers:{"Content-Type":"application/x-yaml"},body:b});if(!d.ok){let a=await d.json().catch(()=>({}));throw Error("string"==typeof a.error?a.error:"Failed to import workspace YAML")}await x(),U("Imported workspace YAML","success")}catch(a){U(a instanceof Error?a.message:"Failed to import workspace YAML","error")}finally{R.current&&(R.current.value="")}},[a,x,U]);return(0,b.jsx)("div",{className:"h-full overflow-y-auto",children:(0,b.jsxs)("div",{className:"mx-auto flex max-w-5xl flex-col gap-6 px-6 py-8",children:[(0,b.jsxs)("section",{className:"rounded-3xl border border-[var(--card-border)] bg-[var(--card-bg)] p-6 shadow-sm",children:[(0,b.jsxs)("div",{className:"flex flex-col gap-4 lg:flex-row lg:items-start lg:justify-between",children:[(0,b.jsxs)("div",{className:"max-w-2xl",children:[(0,b.jsxs)("div",{className:"mb-3 flex items-center gap-2 text-[11px] font-semibold uppercase tracking-[0.2em] text-[var(--muted-foreground)]",children:[(0,b.jsx)(g.FolderGit2,{className:"h-3.5 w-3.5"}),"Project Setup"]}),(0,b.jsx)("h1",{className:"text-2xl font-semibold text-[var(--foreground)]",children:"Workspace Map"}),(0,b.jsx)("p",{className:"mt-2 text-sm leading-6 text-[var(--muted-foreground)]",children:"Map your project's folders so agents know where things live. Group repositories, docs, config, and scripts into a workspace that people and automation can navigate without guesswork."})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>M(a=>!a),className:"inline-flex items-center gap-2 rounded-xl border border-[var(--border)] bg-[var(--background)] px-3 py-2 text-sm text-[var(--foreground)] transition-colors hover:bg-[var(--secondary)]",children:[(0,b.jsx)(h.FolderPlus,{className:"h-4 w-4"}),"Add Category"]}),(0,b.jsxs)("button",{type:"button",onClick:ag,className:"inline-flex items-center gap-2 rounded-xl border border-[var(--border)] bg-[var(--background)] px-3 py-2 text-sm text-[var(--foreground)] transition-colors hover:bg-[var(--secondary)]",children:[(0,b.jsx)(d.Download,{className:"h-4 w-4"}),"Export YAML"]}),(0,b.jsxs)("label",{className:"inline-flex cursor-pointer items-center gap-2 rounded-xl border border-[var(--border)] bg-[var(--background)] px-3 py-2 text-sm text-[var(--foreground)] transition-colors hover:bg-[var(--secondary)]",children:[(0,b.jsx)(p.Upload,{className:"h-4 w-4"}),"Import YAML",(0,b.jsx)("input",{ref:R,type:"file",accept:".yaml,.yml",onChange:ah,className:"hidden"})]})]})]}),L&&(0,b.jsxs)("div",{className:"mt-4 flex flex-col gap-2 rounded-2xl border border-[var(--border)] bg-[var(--secondary)]/30 p-4 md:flex-row md:items-center",children:[(0,b.jsx)("input",{value:N,onChange:a=>O(a.target.value),placeholder:"Custom category name",className:"flex-1 rounded-xl border border-[var(--border)] bg-[var(--background)] px-3 py-2 text-sm text-[var(--foreground)]"}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("button",{type:"button",onClick:ae,disabled:!N.trim(),className:"rounded-xl bg-[var(--foreground)] px-4 py-2 text-sm font-medium text-[var(--background)] disabled:opacity-40",children:"Create Category"}),(0,b.jsx)("button",{type:"button",onClick:()=>{M(!1),O("")},className:"rounded-xl px-3 py-2 text-sm text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)]",children:"Cancel"})]})]}),P&&(0,b.jsx)("p",{className:`mt-4 text-sm ${"error"===P.tone?"text-[var(--destructive)]":"success"===P.tone?"text-emerald-500":"text-[var(--muted-foreground)]"}`,children:P.message})]}),m&&(0,b.jsx)("section",{className:"rounded-3xl border border-[var(--card-border)] bg-[var(--card-bg)] p-8",children:(0,b.jsxs)("div",{className:"flex items-center gap-3 text-sm text-[var(--muted-foreground)]",children:[(0,b.jsx)(i.Loader2,{className:"h-4 w-4 animate-spin"}),"Loading workspace map..."]})}),!m&&n&&(0,b.jsx)("section",{className:"rounded-3xl border border-[var(--card-border)] bg-[var(--card-bg)] p-8",children:(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsx)("p",{className:"text-sm text-[var(--destructive)]",children:n.message||"Failed to load workspace map"}),(0,b.jsx)("button",{type:"button",onClick:()=>void x(),className:"rounded-xl border border-[var(--border)] bg-[var(--background)] px-3 py-2 text-sm text-[var(--foreground)] transition-colors hover:bg-[var(--secondary)]",children:"Try Again"})]})}),!m&&!n&&T&&(0,b.jsx)("section",{className:"rounded-3xl border border-dashed border-[var(--border)] bg-[var(--card-bg)] p-10 text-center",children:(0,b.jsxs)("div",{className:"mx-auto max-w-2xl",children:[(0,b.jsx)("h2",{className:"text-xl font-semibold text-[var(--foreground)]",children:"Tell your agents where things live."}),(0,b.jsx)("p",{className:"mt-3 text-sm leading-6 text-[var(--muted-foreground)]",children:"Add folders to your workspace so agents can find and work in the right places. Start with a repository, docs, or config, or import a shared workspace definition."}),(0,b.jsxs)("div",{className:"mt-6 flex flex-wrap items-center justify-center gap-3",children:[t.DEFAULT_WORKSPACE_CATEGORIES.slice(0,3).map(a=>{let c=w(a.id);return(0,b.jsxs)("button",{type:"button",onClick:()=>X(a.id),className:"inline-flex items-center gap-2 rounded-xl border border-[var(--border)] bg-[var(--background)] px-4 py-2 text-sm text-[var(--foreground)] transition-colors hover:bg-[var(--secondary)]",children:[(0,b.jsx)(c,{className:"h-4 w-4"}),"Add ",u(a.id,a.label)]},a.id)}),(0,b.jsxs)("label",{className:"inline-flex cursor-pointer items-center gap-2 rounded-xl border border-[var(--border)] bg-[var(--background)] px-4 py-2 text-sm text-[var(--foreground)] transition-colors hover:bg-[var(--secondary)]",children:[(0,b.jsx)(p.Upload,{className:"h-4 w-4"}),"Import YAML",(0,b.jsx)("input",{type:"file",accept:".yaml,.yml",onChange:ah,className:"hidden"})]})]})]})}),!m&&!n&&!T&&(0,b.jsx)("div",{className:"space-y-4",children:S.map(a=>{let c=w(a.id);return(0,b.jsxs)("section",{className:"rounded-3xl border border-[var(--card-border)] bg-[var(--card-bg)] p-6",children:[(0,b.jsxs)("div",{className:"flex flex-col gap-4 border-b border-[var(--border)] pb-4 md:flex-row md:items-start md:justify-between",children:[(0,b.jsxs)("div",{className:"flex items-start gap-3",children:[(0,b.jsx)("div",{className:"rounded-2xl border border-[var(--border)] bg-[var(--secondary)]/40 p-3",children:(0,b.jsx)(c,{className:"h-5 w-5 text-[var(--muted-foreground)]"})}),(0,b.jsxs)("div",{children:[(0,b.jsx)("h2",{className:"text-lg font-semibold text-[var(--foreground)]",children:a.label}),(0,b.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:a.entries.length>0?`${a.entries.length} location${1===a.entries.length?"":"s"} mapped`:a.isPreset?`No ${a.label.toLowerCase()} mapped yet`:"Custom category ready for entries"})]})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[!a.isPreset&&a.isEmpty&&(0,b.jsxs)("button",{type:"button",onClick:()=>af(a.id),className:"inline-flex items-center gap-2 rounded-xl border border-[var(--border)] bg-[var(--background)] px-3 py-2 text-sm text-[var(--muted-foreground)] transition-colors hover:text-[var(--destructive)]",children:[(0,b.jsx)(o.Trash2,{className:"h-4 w-4"}),"Remove Empty Category"]}),(0,b.jsxs)("button",{type:"button",onClick:()=>X(a.id),className:"inline-flex items-center gap-2 rounded-xl border border-[var(--border)] bg-[var(--background)] px-3 py-2 text-sm text-[var(--foreground)] transition-colors hover:bg-[var(--secondary)]",children:[(0,b.jsx)(k.Plus,{className:"h-4 w-4"}),"Add to ",a.label]})]})]}),(0,b.jsxs)("div",{className:"mt-4 space-y-3",children:[0===a.entries.length&&D!==a.id&&(0,b.jsx)("p",{className:"rounded-2xl border border-dashed border-[var(--border)] px-4 py-5 text-sm text-[var(--muted-foreground)]",children:a.isPreset?`Start this section by adding a ${u(a.id,a.label).toLowerCase()} and selecting a folder on disk.`:"This custom category is empty until you add its first folder."}),a.entries.map(a=>{let c=H===a.id&&J;return(0,b.jsxs)("div",{className:"rounded-2xl border border-[var(--border)] bg-[var(--secondary)]/20 p-4",children:[!c&&(0,b.jsxs)("div",{className:"flex flex-col gap-4 lg:flex-row lg:items-start lg:justify-between",children:[(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("div",{className:"flex items-center gap-2",children:(0,b.jsx)("p",{className:"text-base font-medium text-[var(--foreground)]",children:a.name})}),(0,b.jsx)("p",{className:"mt-2 break-all font-mono text-xs text-[var(--muted-foreground)]",children:a.path||"No path selected yet"}),(0,b.jsx)("p",{className:"mt-3 text-sm leading-6 text-[var(--muted-foreground)]",children:a.purpose||"No purpose documented yet."})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)("button",{type:"button",onClick:()=>void ad(a),className:"rounded-xl border border-[var(--border)] bg-[var(--background)] px-3 py-2 text-sm text-[var(--foreground)] transition-colors hover:bg-[var(--secondary)]",children:"Browse"}),(0,b.jsxs)("button",{type:"button",onClick:()=>Y(a),className:"inline-flex items-center gap-2 rounded-xl border border-[var(--border)] bg-[var(--background)] px-3 py-2 text-sm text-[var(--foreground)] transition-colors hover:bg-[var(--secondary)]",children:[(0,b.jsx)(j.Pencil,{className:"h-4 w-4"}),"Edit"]}),(0,b.jsxs)("button",{type:"button",onClick:()=>void aa(a),className:"inline-flex items-center gap-2 rounded-xl border border-[var(--border)] bg-[var(--background)] px-3 py-2 text-sm text-[var(--muted-foreground)] transition-colors hover:text-[var(--destructive)]",children:[(0,b.jsx)(o.Trash2,{className:"h-4 w-4"}),"Delete"]})]})]}),c&&J&&(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsxs)("div",{className:"grid gap-3 md:grid-cols-2",children:[(0,b.jsxs)("label",{className:"block",children:[(0,b.jsx)("span",{className:"mb-1 block text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:"Name"}),(0,b.jsx)("input",{value:J.name,onChange:a=>K(b=>b?{...b,name:a.target.value,error:null}:b),className:"w-full rounded-xl border border-[var(--border)] bg-[var(--background)] px-3 py-2 text-sm text-[var(--foreground)]"})]}),(0,b.jsxs)("label",{className:"block",children:[(0,b.jsx)("span",{className:"mb-1 block text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:"Path"}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("input",{value:J.path,onChange:a=>K(b=>b?{...b,path:a.target.value,error:null}:b),className:"w-full rounded-xl border border-[var(--border)] bg-[var(--background)] px-3 py-2 text-sm text-[var(--foreground)]",placeholder:"/Users/you/Projects/repo"}),(0,b.jsx)("button",{type:"button",onClick:()=>void ac(),className:"rounded-xl border border-[var(--border)] bg-[var(--background)] px-3 py-2 text-sm text-[var(--foreground)] transition-colors hover:bg-[var(--secondary)]",children:"Browse"})]})]})]}),(0,b.jsxs)("label",{className:"block",children:[(0,b.jsx)("span",{className:"mb-1 block text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:"Purpose"}),(0,b.jsx)("textarea",{value:J.purpose,onChange:a=>K(b=>b?{...b,purpose:a.target.value,error:null}:b),className:"min-h-24 w-full rounded-xl border border-[var(--border)] bg-[var(--background)] px-3 py-3 text-sm text-[var(--foreground)]",placeholder:"What should agents or teammates expect in this folder?"})]}),J.error&&(0,b.jsx)("p",{className:"text-sm text-[var(--destructive)]",children:J.error}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>void _(),disabled:J.isSaving,className:"inline-flex items-center gap-2 rounded-xl bg-[var(--foreground)] px-4 py-2 text-sm font-medium text-[var(--background)] disabled:opacity-40",children:[J.isSaving?(0,b.jsx)(i.Loader2,{className:"h-4 w-4 animate-spin"}):(0,b.jsx)(l.Save,{className:"h-4 w-4"}),"Save Changes"]}),(0,b.jsxs)("button",{type:"button",onClick:Z,className:"inline-flex items-center gap-2 rounded-xl px-3 py-2 text-sm text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)]",children:[(0,b.jsx)(q.X,{className:"h-4 w-4"}),"Cancel"]})]})]})]},a.id)}),D===a.id&&(0,b.jsxs)("div",{className:"rounded-2xl border border-[var(--border)] bg-[var(--background)] p-4",children:[(0,b.jsxs)("div",{className:"mb-3 flex items-center gap-2",children:[(0,b.jsx)(k.Plus,{className:"h-4 w-4 text-[var(--muted-foreground)]"}),(0,b.jsxs)("p",{className:"text-sm font-medium text-[var(--foreground)]",children:["Add to ",a.label]})]}),(0,b.jsxs)("div",{className:"grid gap-3 md:grid-cols-2",children:[(0,b.jsxs)("label",{className:"block",children:[(0,b.jsx)("span",{className:"mb-1 block text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:"Name"}),(0,b.jsx)("input",{value:F.name,onChange:a=>G(b=>({...b,name:a.target.value,error:null})),className:"w-full rounded-xl border border-[var(--border)] bg-[var(--card-bg)] px-3 py-2 text-sm text-[var(--foreground)]",placeholder:"backend, handbook, deploy"})]}),(0,b.jsxs)("label",{className:"block",children:[(0,b.jsx)("span",{className:"mb-1 block text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:"Path"}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("input",{value:F.path,onChange:a=>G(b=>({...b,path:a.target.value,error:null})),className:"w-full rounded-xl border border-[var(--border)] bg-[var(--card-bg)] px-3 py-2 text-sm text-[var(--foreground)]",placeholder:"/Users/you/Projects/repo"}),(0,b.jsx)("button",{type:"button",onClick:()=>void ab(),className:"rounded-xl border border-[var(--border)] bg-[var(--card-bg)] px-3 py-2 text-sm text-[var(--foreground)] transition-colors hover:bg-[var(--secondary)]",children:"Browse"})]})]})]}),(0,b.jsxs)("label",{className:"mt-3 block",children:[(0,b.jsx)("span",{className:"mb-1 block text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:"Purpose"}),(0,b.jsx)("textarea",{value:F.purpose,onChange:a=>G(b=>({...b,purpose:a.target.value,error:null})),className:"min-h-24 w-full rounded-xl border border-[var(--border)] bg-[var(--card-bg)] px-3 py-3 text-sm text-[var(--foreground)]",placeholder:"Describe what lives here and why it matters."})]}),F.error&&(0,b.jsx)("p",{className:"mt-3 text-sm text-[var(--destructive)]",children:F.error}),(0,b.jsxs)("div",{className:"mt-4 flex flex-wrap items-center gap-2",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>void $(),disabled:F.isSaving,className:"inline-flex items-center gap-2 rounded-xl bg-[var(--foreground)] px-4 py-2 text-sm font-medium text-[var(--background)] disabled:opacity-40",children:[F.isSaving?(0,b.jsx)(i.Loader2,{className:"h-4 w-4 animate-spin"}):(0,b.jsx)(l.Save,{className:"h-4 w-4"}),"Save Entry"]}),(0,b.jsxs)("button",{type:"button",onClick:W,className:"inline-flex items-center gap-2 rounded-xl px-3 py-2 text-sm text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)]",children:[(0,b.jsx)(q.X,{className:"h-4 w-4"}),"Cancel"]})]})]})]})]},a.id)})})]})})}var y=a.i(830284);function z({params:a}){let{slug:d}=(0,c.use)(a),{projects:e}=(0,y.useProjectsWithAgents)(),f=e.find(a=>a.slug===d);return f?(0,b.jsx)(x,{projectId:f.id}):(0,b.jsx)("div",{className:"flex items-center justify-center h-full text-sm text-zinc-500",children:"Loading..."})}a.s(["default",()=>z],524509)}];
|
|
1
|
+
module.exports=[524509,a=>{"use strict";var b=a.i(308316),c=a.i(786220),d=a.i(340492),e=a.i(552605),f=a.i(736868),g=a.i(785630),h=a.i(349692),i=a.i(667597),j=a.i(353532),k=a.i(354658),l=a.i(642784),m=a.i(144462),n=a.i(697183),o=a.i(262403),p=a.i(824179),q=a.i(157633),r=a.i(109467),s=a.i(446946),t=a.i(967878);let u={current:null,inflight:null};async function v(a){let b=Date.now();if(!a&&u.current&&b-u.current.fetchedAt<6e4)return u.current;if(u.inflight)return u.inflight;u.inflight=(async()=>{let a=await fetch("/api/git/repos?limit=200");if(!a.ok)throw Error("Failed to fetch repository index");let b=await a.json(),c={repos:b.repos??[],scanning:!!b.scanning,scannedAt:b.scannedAt??null,fetchedAt:Date.now()};return u.current=c,c})();try{return await u.inflight}finally{u.inflight=null}}function w({value:a,onChange:d,onSelectMatch:e,placeholder:f,disabled:g,category:i,className:j}){let k="repositories"===i,l=(0,c.useRef)(null),m=(0,c.useRef)(null),[n,o]=(0,c.useState)(!1),[p,r]=(0,c.useState)(0),[s,t]=(0,c.useState)(u.current),[w,x]=(0,c.useState)(!1),y=j??"w-full rounded-xl border border-[var(--border)] bg-[var(--card-bg)] px-3 py-2 text-sm text-[var(--foreground)]",z=(0,c.useCallback)(async()=>{if(k){x(!0);try{let a=await v(!1);t(a)}catch{}finally{x(!1)}}},[k]),A=(0,c.useMemo)(()=>k&&s?function(a,b,c){let d=b.trim().toLowerCase();if(!d)return[...a].sort((a,b)=>a.path.length!==b.path.length?a.path.length-b.path.length:a.path.localeCompare(b.path)).slice(0,8);let e=[];for(let b of a){let a=b.basename.toLowerCase(),c=b.path.toLowerCase();(a.includes(d)||c.includes(d))&&e.push({repo:b,score:function(a,b){if(!b)return 0;let c=b.toLowerCase(),d=a.basename.toLowerCase(),e=a.path.toLowerCase();return d===c?100:d.startsWith(c)?50:d.includes(c)?25:10*!!e.includes(c)}(b,d)})}return e.sort((a,b)=>a.score!==b.score?b.score-a.score:a.repo.path.length!==b.repo.path.length?a.repo.path.length-b.repo.path.length:a.repo.path.localeCompare(b.repo.path)),e.slice(0,8).map(a=>a.repo)}(s.repos,a,0):[],[s,k,a]);(0,c.useEffect)(()=>{r(0)},[a,n]),(0,c.useEffect)(()=>{if(n)return document.addEventListener("mousedown",a),()=>document.removeEventListener("mousedown",a);function a(a){m.current&&(m.current.contains(a.target)||o(!1))}},[n]);let B=(0,c.useCallback)(a=>{d(a.path),e?.({path:a.path,basename:a.basename}),o(!1),l.current?.blur()},[d,e]),C=(0,c.useCallback)(()=>{k&&(o(!0),z())},[z,k]),D=(0,c.useCallback)(a=>{if(k){if("Escape"===a.key){n&&(a.preventDefault(),o(!1));return}if(!n){("ArrowDown"===a.key||"ArrowUp"===a.key||"Enter"===a.key)&&(A.length>0||s?.scanning)&&o(!0);return}"ArrowDown"===a.key?(a.preventDefault(),r(a=>0===A.length?0:(a+1)%A.length)):"ArrowUp"===a.key?(a.preventDefault(),r(a=>0===A.length?0:(a-1+A.length)%A.length)):"Enter"===a.key&&A[p]&&(a.preventDefault(),B(A[p]))}},[p,s?.scanning,B,k,A,n]);if(!k)return(0,b.jsx)("input",{ref:l,value:a,disabled:g,placeholder:f,onChange:a=>d(a.target.value),className:y});let E=!!s?.scanning&&(s?.repos.length??0)===0;return(0,b.jsxs)("div",{ref:m,className:"relative w-full",children:[(0,b.jsx)("input",{ref:l,value:a,disabled:g,placeholder:f,onFocus:C,onChange:a=>{d(a.target.value),n||o(!0)},onKeyDown:D,autoComplete:"off",spellCheck:!1,className:y}),n&&(A.length>0||E||w)&&(0,b.jsxs)("div",{className:"absolute left-0 right-0 top-full z-30 mt-1 max-h-80 overflow-auto rounded-xl border border-[var(--border)] bg-[var(--card-bg)] shadow-lg",role:"listbox",children:[A.map((a,c)=>{let d=c===p;return(0,b.jsxs)("button",{type:"button",role:"option","aria-selected":d,onMouseDown:b=>{b.preventDefault(),B(a)},onMouseEnter:()=>r(c),className:`flex w-full items-center gap-2 px-3 py-2 text-left text-sm transition-colors ${d?"bg-[var(--secondary)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--secondary)]/60"}`,children:[(0,b.jsx)(q.Folder,{className:"h-4 w-4 flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsxs)("span",{className:"flex min-w-0 flex-1 items-baseline gap-2",children:[(0,b.jsx)("span",{className:"truncate font-medium",children:a.basename}),(0,b.jsx)("span",{className:"truncate font-mono text-[11px] text-[var(--muted-foreground)]",children:a.path})]})]},a.path)}),0===A.length&&w&&(0,b.jsx)("p",{className:"px-3 py-2 text-xs text-[var(--muted-foreground)]",children:"Loading..."}),E&&(0,b.jsxs)("p",{className:"flex items-center gap-1.5 border-t border-[var(--border)] px-3 py-2 text-[11px] text-[var(--muted-foreground)]",children:[(0,b.jsx)(h.Loader2,{className:"h-3 w-3 animate-spin"}),"Indexing..."]})]})]})}function x(a,b){switch(a){case"repositories":return"Repository";case"docs":return"Doc";case"config":return"Config";case"scripts":return"Script";default:return b}}function y(a,b){return{category:a,name:b?.name??"",path:b?.path??"",purpose:b?.purpose??"",error:null,isSaving:!1}}function z(a){switch(a){case"repositories":return f.FolderGit2;case"docs":return e.FileText;case"config":return l.Settings;case"scripts":return m.TerminalSquare;default:return q.Folder}}function A({projectId:a}){let{workspace:e,entryCount:l,isLoading:m,error:q,refetch:u,createEntry:v,updateEntry:A,deleteEntry:B}=(0,r.useProjectWorkspace)(a),[C,D]=(0,c.useState)([]),[E,F]=(0,c.useState)(null),[G,H]=(0,c.useState)(y("repositories")),[I,J]=(0,c.useState)(null),[K,L]=(0,c.useState)(null),[M,N]=(0,c.useState)(!1),[O,P]=(0,c.useState)(""),[Q,R]=(0,c.useState)(null),S=(0,c.useRef)(null),T=(0,s.buildWorkspaceCategoryGroups)(e,C),U=0===l&&0===C.length&&!E,V=(0,c.useCallback)((a,b="neutral")=>{R({tone:b,message:a}),window.setTimeout(()=>R(null),3500)},[]),W=(0,c.useCallback)(async()=>{let a=await fetch("/api/filesystem/pick-folder",{method:"POST"}),b=await a.json().catch(()=>({}));if(!a.ok)throw Error("string"==typeof b.error?b.error:"Failed to open folder picker");return"string"==typeof b.path?b.path:null},[]),X=(0,c.useCallback)(()=>{F(null),H(y("repositories"))},[]),Y=(0,c.useCallback)(a=>{F(a),H(y(a)),J(null),L(null)},[]),Z=(0,c.useCallback)(a=>{J(a.id),L(y(a.category,a)),F(null),H(y(a.category))},[]),$=(0,c.useCallback)(()=>{J(null),L(null)},[]),_=(0,c.useCallback)(async()=>{let a=G.name.trim();if(!a)return void H(a=>({...a,error:"Name is required"}));H(a=>({...a,isSaving:!0,error:null}));try{await v({category:G.category,name:a,path:G.path.trim()||null,purpose:G.purpose.trim()||null}),X(),V(`Added ${a} to ${T.find(a=>a.id===G.category)?.label??"workspace map"}`,"success")}catch(a){H(b=>({...b,isSaving:!1,error:a instanceof Error?a.message:"Failed to add workspace entry"}))}},[G,X,v,T,V]),aa=(0,c.useCallback)(async()=>{if(!I||!K)return;let a=K.name.trim();if(!a)return void L(a=>a?{...a,error:"Name is required"}:a);L(a=>a?{...a,isSaving:!0,error:null}:a);try{await A(I,{name:a,path:K.path.trim()||null,purpose:K.purpose.trim()||null}),$(),V("Workspace entry updated","success")}catch(a){L(b=>({...b??y(""),isSaving:!1,error:a instanceof Error?a.message:"Failed to update workspace entry"}))}},[$,K,I,V,A]),ab=(0,c.useCallback)(async a=>{if(window.confirm(`Delete ${a.name} from ${a.category}?`))try{await B(a.id),I===a.id&&$(),V(`Deleted ${a.name}`,"success")}catch(a){V(a instanceof Error?a.message:"Failed to delete workspace entry","error")}},[$,B,I,V]),ac=(0,c.useCallback)(async()=>{try{let a=await W();a&&H(b=>({...b,path:a,error:null}))}catch(a){H(b=>({...b,error:a instanceof Error?a.message:"Failed to pick folder"}))}},[W]),ad=(0,c.useCallback)(async()=>{if(K)try{let a=await W();a&&L(b=>b?{...b,path:a,error:null}:b)}catch(a){L(b=>b?{...b,error:a instanceof Error?a.message:"Failed to pick folder"}:b)}},[K,W]),ae=(0,c.useCallback)(async a=>{try{let b=await W();if(!b)return;await A(a.id,{path:b}),V(`Updated path for ${a.name}`,"success")}catch(a){V(a instanceof Error?a.message:"Failed to update path","error")}},[W,V,A]),af=(0,c.useCallback)(()=>{let a=O.trim();if(!a)return;let b=T.find(b=>b.id.toLowerCase()===a.toLowerCase()||b.label.toLowerCase()===a.toLowerCase());if(b){P(""),N(!1),Y(b.id);return}D(b=>[...b,a]),P(""),N(!1),Y(a)},[O,T,Y]),ag=(0,c.useCallback)(a=>{D(b=>b.filter(b=>b!==a)),E===a&&X()},[E,X]),ah=(0,c.useCallback)(()=>{window.open(`/api/projects/${a}/workspace/export`,"_blank")},[a]),ai=(0,c.useCallback)(async b=>{let c=b.target.files?.[0];if(c)try{let b=await c.text(),d=await fetch(`/api/projects/${a}/workspace/import`,{method:"POST",headers:{"Content-Type":"application/x-yaml"},body:b});if(!d.ok){let a=await d.json().catch(()=>({}));throw Error("string"==typeof a.error?a.error:"Failed to import workspace YAML")}await u(),V("Imported workspace YAML","success")}catch(a){V(a instanceof Error?a.message:"Failed to import workspace YAML","error")}finally{S.current&&(S.current.value="")}},[a,u,V]);return(0,b.jsx)("div",{className:"h-full overflow-y-auto",children:(0,b.jsxs)("div",{className:"mx-auto flex max-w-5xl flex-col gap-6 px-6 py-8",children:[(0,b.jsxs)("section",{className:"rounded-3xl border border-[var(--card-border)] bg-[var(--card-bg)] p-6 shadow-sm",children:[(0,b.jsxs)("div",{className:"flex flex-col gap-4 lg:flex-row lg:items-start lg:justify-between",children:[(0,b.jsxs)("div",{className:"max-w-2xl",children:[(0,b.jsxs)("div",{className:"mb-3 flex items-center gap-2 text-[11px] font-semibold uppercase tracking-[0.2em] text-[var(--muted-foreground)]",children:[(0,b.jsx)(f.FolderGit2,{className:"h-3.5 w-3.5"}),"Project Setup"]}),(0,b.jsx)("h1",{className:"text-2xl font-semibold text-[var(--foreground)]",children:"Workspace Map"}),(0,b.jsx)("p",{className:"mt-2 text-sm leading-6 text-[var(--muted-foreground)]",children:"Map your project's folders so agents know where things live. Group repositories, docs, config, and scripts into a workspace that people and automation can navigate without guesswork."})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>N(a=>!a),className:"inline-flex items-center gap-2 rounded-xl border border-[var(--border)] bg-[var(--background)] px-3 py-2 text-sm text-[var(--foreground)] transition-colors hover:bg-[var(--secondary)]",children:[(0,b.jsx)(g.FolderPlus,{className:"h-4 w-4"}),"Add Category"]}),(0,b.jsxs)("button",{type:"button",onClick:ah,className:"inline-flex items-center gap-2 rounded-xl border border-[var(--border)] bg-[var(--background)] px-3 py-2 text-sm text-[var(--foreground)] transition-colors hover:bg-[var(--secondary)]",children:[(0,b.jsx)(d.Download,{className:"h-4 w-4"}),"Export YAML"]}),(0,b.jsxs)("label",{className:"inline-flex cursor-pointer items-center gap-2 rounded-xl border border-[var(--border)] bg-[var(--background)] px-3 py-2 text-sm text-[var(--foreground)] transition-colors hover:bg-[var(--secondary)]",children:[(0,b.jsx)(o.Upload,{className:"h-4 w-4"}),"Import YAML",(0,b.jsx)("input",{ref:S,type:"file",accept:".yaml,.yml",onChange:ai,className:"hidden"})]})]})]}),M&&(0,b.jsxs)("div",{className:"mt-4 flex flex-col gap-2 rounded-2xl border border-[var(--border)] bg-[var(--secondary)]/30 p-4 md:flex-row md:items-center",children:[(0,b.jsx)("input",{value:O,onChange:a=>P(a.target.value),placeholder:"Custom category name",className:"flex-1 rounded-xl border border-[var(--border)] bg-[var(--background)] px-3 py-2 text-sm text-[var(--foreground)]"}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("button",{type:"button",onClick:af,disabled:!O.trim(),className:"rounded-xl bg-[var(--foreground)] px-4 py-2 text-sm font-medium text-[var(--background)] disabled:opacity-40",children:"Create Category"}),(0,b.jsx)("button",{type:"button",onClick:()=>{N(!1),P("")},className:"rounded-xl px-3 py-2 text-sm text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)]",children:"Cancel"})]})]}),Q&&(0,b.jsx)("p",{className:`mt-4 text-sm ${"error"===Q.tone?"text-[var(--destructive)]":"success"===Q.tone?"text-emerald-500":"text-[var(--muted-foreground)]"}`,children:Q.message})]}),m&&(0,b.jsx)("section",{className:"rounded-3xl border border-[var(--card-border)] bg-[var(--card-bg)] p-8",children:(0,b.jsxs)("div",{className:"flex items-center gap-3 text-sm text-[var(--muted-foreground)]",children:[(0,b.jsx)(h.Loader2,{className:"h-4 w-4 animate-spin"}),"Loading workspace map..."]})}),!m&&q&&(0,b.jsx)("section",{className:"rounded-3xl border border-[var(--card-border)] bg-[var(--card-bg)] p-8",children:(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsx)("p",{className:"text-sm text-[var(--destructive)]",children:q.message||"Failed to load workspace map"}),(0,b.jsx)("button",{type:"button",onClick:()=>void u(),className:"rounded-xl border border-[var(--border)] bg-[var(--background)] px-3 py-2 text-sm text-[var(--foreground)] transition-colors hover:bg-[var(--secondary)]",children:"Try Again"})]})}),!m&&!q&&U&&(0,b.jsx)("section",{className:"rounded-3xl border border-dashed border-[var(--border)] bg-[var(--card-bg)] p-10 text-center",children:(0,b.jsxs)("div",{className:"mx-auto max-w-2xl",children:[(0,b.jsx)("h2",{className:"text-xl font-semibold text-[var(--foreground)]",children:"Tell your agents where things live."}),(0,b.jsx)("p",{className:"mt-3 text-sm leading-6 text-[var(--muted-foreground)]",children:"Add folders to your workspace so agents can find and work in the right places. Start with a repository, docs, or config, or import a shared workspace definition."}),(0,b.jsxs)("div",{className:"mt-6 flex flex-wrap items-center justify-center gap-3",children:[t.DEFAULT_WORKSPACE_CATEGORIES.slice(0,3).map(a=>{let c=z(a.id);return(0,b.jsxs)("button",{type:"button",onClick:()=>Y(a.id),className:"inline-flex items-center gap-2 rounded-xl border border-[var(--border)] bg-[var(--background)] px-4 py-2 text-sm text-[var(--foreground)] transition-colors hover:bg-[var(--secondary)]",children:[(0,b.jsx)(c,{className:"h-4 w-4"}),"Add ",x(a.id,a.label)]},a.id)}),(0,b.jsxs)("label",{className:"inline-flex cursor-pointer items-center gap-2 rounded-xl border border-[var(--border)] bg-[var(--background)] px-4 py-2 text-sm text-[var(--foreground)] transition-colors hover:bg-[var(--secondary)]",children:[(0,b.jsx)(o.Upload,{className:"h-4 w-4"}),"Import YAML",(0,b.jsx)("input",{type:"file",accept:".yaml,.yml",onChange:ai,className:"hidden"})]})]})]})}),!m&&!q&&!U&&(0,b.jsx)("div",{className:"space-y-4",children:T.map(a=>{let c=z(a.id);return(0,b.jsxs)("section",{className:"rounded-3xl border border-[var(--card-border)] bg-[var(--card-bg)] p-6",children:[(0,b.jsxs)("div",{className:"flex flex-col gap-4 border-b border-[var(--border)] pb-4 md:flex-row md:items-start md:justify-between",children:[(0,b.jsxs)("div",{className:"flex items-start gap-3",children:[(0,b.jsx)("div",{className:"rounded-2xl border border-[var(--border)] bg-[var(--secondary)]/40 p-3",children:(0,b.jsx)(c,{className:"h-5 w-5 text-[var(--muted-foreground)]"})}),(0,b.jsxs)("div",{children:[(0,b.jsx)("h2",{className:"text-lg font-semibold text-[var(--foreground)]",children:a.label}),(0,b.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:a.entries.length>0?`${a.entries.length} location${1===a.entries.length?"":"s"} mapped`:a.isPreset?`No ${a.label.toLowerCase()} mapped yet`:"Custom category ready for entries"})]})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[!a.isPreset&&a.isEmpty&&(0,b.jsxs)("button",{type:"button",onClick:()=>ag(a.id),className:"inline-flex items-center gap-2 rounded-xl border border-[var(--border)] bg-[var(--background)] px-3 py-2 text-sm text-[var(--muted-foreground)] transition-colors hover:text-[var(--destructive)]",children:[(0,b.jsx)(n.Trash2,{className:"h-4 w-4"}),"Remove Empty Category"]}),(0,b.jsxs)("button",{type:"button",onClick:()=>Y(a.id),className:"inline-flex items-center gap-2 rounded-xl border border-[var(--border)] bg-[var(--background)] px-3 py-2 text-sm text-[var(--foreground)] transition-colors hover:bg-[var(--secondary)]",children:[(0,b.jsx)(j.Plus,{className:"h-4 w-4"}),"Add to ",a.label]})]})]}),(0,b.jsxs)("div",{className:"mt-4 space-y-3",children:[0===a.entries.length&&E!==a.id&&(0,b.jsx)("p",{className:"rounded-2xl border border-dashed border-[var(--border)] px-4 py-5 text-sm text-[var(--muted-foreground)]",children:a.isPreset?`Start this section by adding a ${x(a.id,a.label).toLowerCase()} and selecting a folder on disk.`:"This custom category is empty until you add its first folder."}),a.entries.map(a=>{let c=I===a.id&&K;return(0,b.jsxs)("div",{className:"rounded-2xl border border-[var(--border)] bg-[var(--secondary)]/20 p-4",children:[!c&&(0,b.jsxs)("div",{className:"flex flex-col gap-4 lg:flex-row lg:items-start lg:justify-between",children:[(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("div",{className:"flex items-center gap-2",children:(0,b.jsx)("p",{className:"text-base font-medium text-[var(--foreground)]",children:a.name})}),(0,b.jsx)("p",{className:"mt-2 break-all font-mono text-xs text-[var(--muted-foreground)]",children:a.path||"No path selected yet"}),(0,b.jsx)("p",{className:"mt-3 text-sm leading-6 text-[var(--muted-foreground)]",children:a.purpose||"No purpose documented yet."})]}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)("button",{type:"button",onClick:()=>void ae(a),className:"rounded-xl border border-[var(--border)] bg-[var(--background)] px-3 py-2 text-sm text-[var(--foreground)] transition-colors hover:bg-[var(--secondary)]",children:"Browse"}),(0,b.jsxs)("button",{type:"button",onClick:()=>Z(a),className:"inline-flex items-center gap-2 rounded-xl border border-[var(--border)] bg-[var(--background)] px-3 py-2 text-sm text-[var(--foreground)] transition-colors hover:bg-[var(--secondary)]",children:[(0,b.jsx)(i.Pencil,{className:"h-4 w-4"}),"Edit"]}),(0,b.jsxs)("button",{type:"button",onClick:()=>void ab(a),className:"inline-flex items-center gap-2 rounded-xl border border-[var(--border)] bg-[var(--background)] px-3 py-2 text-sm text-[var(--muted-foreground)] transition-colors hover:text-[var(--destructive)]",children:[(0,b.jsx)(n.Trash2,{className:"h-4 w-4"}),"Delete"]})]})]}),c&&K&&(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsxs)("div",{className:"grid gap-3 md:grid-cols-2",children:[(0,b.jsxs)("label",{className:"block",children:[(0,b.jsx)("span",{className:"mb-1 block text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:"Name"}),(0,b.jsx)("input",{value:K.name,onChange:a=>L(b=>b?{...b,name:a.target.value,error:null}:b),className:"w-full rounded-xl border border-[var(--border)] bg-[var(--background)] px-3 py-2 text-sm text-[var(--foreground)]"})]}),(0,b.jsxs)("label",{className:"block",children:[(0,b.jsx)("span",{className:"mb-1 block text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:"Path"}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(w,{category:K.category,value:K.path,onChange:a=>L(b=>b?{...b,path:a,error:null}:b),onSelectMatch:a=>L(b=>{if(!b)return b;let c=0===b.name.trim().length?a.basename:b.name;return{...b,name:c,path:a.path,error:null}}),placeholder:"/Users/you/Projects/repo",className:"w-full rounded-xl border border-[var(--border)] bg-[var(--background)] px-3 py-2 text-sm text-[var(--foreground)]"}),(0,b.jsx)("button",{type:"button",onClick:()=>void ad(),className:"rounded-xl border border-[var(--border)] bg-[var(--background)] px-3 py-2 text-sm text-[var(--foreground)] transition-colors hover:bg-[var(--secondary)]",children:"Browse"})]})]})]}),(0,b.jsxs)("label",{className:"block",children:[(0,b.jsx)("span",{className:"mb-1 block text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:"Purpose"}),(0,b.jsx)("textarea",{value:K.purpose,onChange:a=>L(b=>b?{...b,purpose:a.target.value,error:null}:b),className:"min-h-24 w-full rounded-xl border border-[var(--border)] bg-[var(--background)] px-3 py-3 text-sm text-[var(--foreground)]",placeholder:"What should agents or teammates expect in this folder?"})]}),K.error&&(0,b.jsx)("p",{className:"text-sm text-[var(--destructive)]",children:K.error}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>void aa(),disabled:K.isSaving,className:"inline-flex items-center gap-2 rounded-xl bg-[var(--foreground)] px-4 py-2 text-sm font-medium text-[var(--background)] disabled:opacity-40",children:[K.isSaving?(0,b.jsx)(h.Loader2,{className:"h-4 w-4 animate-spin"}):(0,b.jsx)(k.Save,{className:"h-4 w-4"}),"Save Changes"]}),(0,b.jsxs)("button",{type:"button",onClick:$,className:"inline-flex items-center gap-2 rounded-xl px-3 py-2 text-sm text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)]",children:[(0,b.jsx)(p.X,{className:"h-4 w-4"}),"Cancel"]})]})]})]},a.id)}),E===a.id&&(0,b.jsxs)("div",{className:"rounded-2xl border border-[var(--border)] bg-[var(--background)] p-4",children:[(0,b.jsxs)("div",{className:"mb-3 flex items-center gap-2",children:[(0,b.jsx)(j.Plus,{className:"h-4 w-4 text-[var(--muted-foreground)]"}),(0,b.jsxs)("p",{className:"text-sm font-medium text-[var(--foreground)]",children:["Add to ",a.label]})]}),(0,b.jsxs)("div",{className:"grid gap-3 md:grid-cols-2",children:[(0,b.jsxs)("label",{className:"block",children:[(0,b.jsx)("span",{className:"mb-1 block text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:"Name"}),(0,b.jsx)("input",{value:G.name,onChange:a=>H(b=>({...b,name:a.target.value,error:null})),className:"w-full rounded-xl border border-[var(--border)] bg-[var(--card-bg)] px-3 py-2 text-sm text-[var(--foreground)]",placeholder:"backend, handbook, deploy"})]}),(0,b.jsxs)("label",{className:"block",children:[(0,b.jsx)("span",{className:"mb-1 block text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:"Path"}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(w,{category:G.category,value:G.path,onChange:a=>H(b=>({...b,path:a,error:null})),onSelectMatch:a=>H(b=>{let c=0===b.name.trim().length?a.basename:b.name;return{...b,name:c,path:a.path,error:null}}),placeholder:"/Users/you/Projects/repo",className:"w-full rounded-xl border border-[var(--border)] bg-[var(--card-bg)] px-3 py-2 text-sm text-[var(--foreground)]"}),(0,b.jsx)("button",{type:"button",onClick:()=>void ac(),className:"rounded-xl border border-[var(--border)] bg-[var(--card-bg)] px-3 py-2 text-sm text-[var(--foreground)] transition-colors hover:bg-[var(--secondary)]",children:"Browse"})]})]})]}),(0,b.jsxs)("label",{className:"mt-3 block",children:[(0,b.jsx)("span",{className:"mb-1 block text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:"Purpose"}),(0,b.jsx)("textarea",{value:G.purpose,onChange:a=>H(b=>({...b,purpose:a.target.value,error:null})),className:"min-h-24 w-full rounded-xl border border-[var(--border)] bg-[var(--card-bg)] px-3 py-3 text-sm text-[var(--foreground)]",placeholder:"Describe what lives here and why it matters."})]}),G.error&&(0,b.jsx)("p",{className:"mt-3 text-sm text-[var(--destructive)]",children:G.error}),(0,b.jsxs)("div",{className:"mt-4 flex flex-wrap items-center gap-2",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>void _(),disabled:G.isSaving,className:"inline-flex items-center gap-2 rounded-xl bg-[var(--foreground)] px-4 py-2 text-sm font-medium text-[var(--background)] disabled:opacity-40",children:[G.isSaving?(0,b.jsx)(h.Loader2,{className:"h-4 w-4 animate-spin"}):(0,b.jsx)(k.Save,{className:"h-4 w-4"}),"Save Entry"]}),(0,b.jsxs)("button",{type:"button",onClick:X,className:"inline-flex items-center gap-2 rounded-xl px-3 py-2 text-sm text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)]",children:[(0,b.jsx)(p.X,{className:"h-4 w-4"}),"Cancel"]})]})]})]})]},a.id)})})]})})}var B=a.i(830284);function C({params:a}){let{slug:d}=(0,c.use)(a),{projects:e}=(0,B.useProjectsWithAgents)(),f=e.find(a=>a.slug===d);return f?(0,b.jsx)(A,{projectId:f.id}):(0,b.jsx)("div",{className:"flex items-center justify-center h-full text-sm text-zinc-500",children:"Loading..."})}a.s(["default",()=>C],524509)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=apps_local_app_projects_%5Bslug%5D_folders_page_tsx_72fb68e5._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[514760,a=>{"use strict";var b=a.i(308316),c=a.i(786220);function d(a){return null===a.installed?"checking":a.installed?!a.authenticated&&a.authCmd?"needs-auth":"ready":"not-installed"}let e=[{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:"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(a=>({id:a.id,name:a.label,description:a.description,installCmd:a.installCmd,docsUrl:a.docsUrl,installNote:a.installNote,recommended:a.recommended,authCmd:a.authCmd}));var f=a.i(516909),g=a.i(627421),h=a.i(70887),i=a.i(804632),j=a.i(811760),k=a.i(356239),l=a.i(349692);function m({currentStep:a,totalSteps:c}){return(0,b.jsx)("div",{className:"flex items-center gap-0",role:"progressbar","aria-valuenow":a,"aria-valuemin":1,"aria-valuemax":c,"aria-label":`Step ${a} of ${c}`,children:Array.from({length:c},(c,d)=>{let e=d+1,f=e===a,g=e<a;return(0,b.jsxs)("div",{className:"flex items-center",children:[d>0&&(0,b.jsx)("div",{className:`w-8 h-[2px] ${g?"bg-[var(--foreground)]":"bg-[var(--border)]"}`}),(0,b.jsx)("div",{className:`w-2.5 h-2.5 rounded-full transition-colors ${f?"bg-[var(--foreground)] ring-4 ring-[var(--foreground)]/10":g?"bg-[var(--foreground)]":"bg-[var(--border)]"}`})]},e)})})}function n({currentStep:a,totalSteps:c,children:d,footer:e,wide:f}){let g=f?"max-w-6xl":"max-w-2xl";return(0,b.jsxs)("div",{className:"h-screen w-full flex flex-col bg-[var(--background)]",children:[(0,b.jsx)("div",{className:"flex items-center justify-center pt-8 pb-4",children:(0,b.jsx)(m,{currentStep:a,totalSteps:c})}),(0,b.jsx)("div",{className:"flex-1 overflow-y-auto px-4 min-h-0",children:(0,b.jsx)("div",{className:`${g} mx-auto w-full py-6 h-full`,children:d})}),e&&(0,b.jsx)("div",{className:"border-t border-[var(--border)] bg-[var(--background)] px-4 py-4",children:(0,b.jsx)("div",{className:`${g} mx-auto w-full`,children:e})})]})}var o=a.i(303592);function p({text:a}){let[d,e]=(0,c.useState)(!1),f=(0,c.useCallback)(()=>{navigator.clipboard.writeText(a).then(()=>{e(!0),setTimeout(()=>e(!1),2e3)})},[a]);return(0,b.jsx)("button",{type:"button",onClick:f,className:"p-1.5 rounded-md hover:bg-[var(--muted)] transition-colors text-[var(--muted-foreground)] hover:text-[var(--foreground)]",title:"Copy command",children:d?(0,b.jsx)(g.Check,{className:"w-3.5 h-3.5 text-emerald-500"}):(0,b.jsx)(i.Copy,{className:"w-3.5 h-3.5"})})}function q({cli:a,onVerify:e,onRunInTerminal:f}){let i=d(a),[m,n]=(0,c.useState)("needs-auth"===i),[o,q]=(0,c.useState)(!1),[r,s]=(0,c.useState)(null),t="not-installed"===i||"needs-auth"===i,u=(0,c.useCallback)(async()=>{q(!0),s(null);try{let b=await fetch(`/api/providers/check/${a.id}`,{cache:"no-store"});if(!b.ok)return void s("Check failed");(await b.json()).authenticated?e?.(a.id):s("Not authenticated yet")}catch{s("Check failed")}finally{q(!1)}},[a.id,e]),v="not-installed"===i?a.installCmd:a.authCmd?.cmd;return(0,b.jsxs)("div",{className:"border border-[var(--card-border)] rounded-lg overflow-hidden",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>t&&n(!m),className:`w-full flex items-center gap-2.5 px-3 py-2 transition-colors text-left ${t?"hover:bg-[var(--item-hover-bg)] cursor-pointer":"cursor-default"}`,children:[(0,b.jsx)("div",{className:"shrink-0",children:"checking"===i?(0,b.jsx)(h.Circle,{className:"w-3.5 h-3.5 text-[var(--muted-foreground)] animate-pulse"}):"ready"===i?(0,b.jsx)("div",{className:"w-4 h-4 rounded-full bg-emerald-100 dark:bg-emerald-900/30 flex items-center justify-center",children:(0,b.jsx)(g.Check,{className:"w-2.5 h-2.5 text-emerald-600 dark:text-emerald-400"})}):"needs-auth"===i?(0,b.jsx)("div",{className:"w-4 h-4 rounded-full bg-amber-100 dark:bg-amber-900/30 flex items-center justify-center",children:(0,b.jsx)(h.Circle,{className:"w-2.5 h-2.5 text-amber-600 dark:text-amber-400"})}):(0,b.jsx)(h.Circle,{className:"w-3.5 h-3.5 text-[var(--muted-foreground)]"})}),(0,b.jsx)("span",{className:"flex-1 min-w-0 text-[13px] font-semibold text-[var(--foreground)] truncate",children:a.name}),"ready"===i&&(0,b.jsx)("span",{className:"text-[10px] font-medium text-emerald-600 dark:text-emerald-400",children:"Ready"}),"needs-auth"===i&&(0,b.jsx)("span",{className:"text-[10px] font-medium text-amber-600 dark:text-amber-400",children:"Needs auth"}),"not-installed"===i&&a.recommended&&(0,b.jsx)("span",{className:"text-[10px] font-medium text-[var(--muted-foreground)]",children:"Recommended"}),t&&(0,b.jsx)(j.ChevronDown,{className:`w-3.5 h-3.5 text-[var(--muted-foreground)] transition-transform ${m?"rotate-180":""}`})]}),m&&t&&v&&(0,b.jsxs)("div",{className:"px-3 pb-2.5 pt-1 border-t border-[var(--card-border)] flex items-center gap-1.5",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>f?.(v),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,b.jsx)(k.Terminal,{className:"w-3 h-3"}),"Run"]}),"needs-auth"===i&&(0,b.jsxs)("button",{type:"button",onClick:u,disabled:o,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:[o&&(0,b.jsx)(l.Loader2,{className:"w-3 h-3 animate-spin"}),o?"Checking":"Verify"]}),(0,b.jsx)(p,{text:v}),r&&(0,b.jsx)("span",{className:"text-[10px] text-amber-600 dark:text-amber-400 ml-auto",children:r})]})]})}function r({clis:a,readyState:d,authenticatedCount:e,totalCount:f,onVerifySuccess:g,onNext:h}){let i="ready"===d,j=(0,c.useRef)(null),m=(0,c.useCallback)(a=>{j.current?.sendCommand(a)},[]);return(0,b.jsxs)(n,{currentStep:1,totalSteps:2,wide:!0,footer:(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsx)("span",{className:"text-[13px] text-[var(--muted-foreground)]",children:(0,b.jsxs)("span",{className:i?"text-emerald-600 dark:text-emerald-400":"",children:[e,"/",f," providers ready"]})}),(0,b.jsx)("button",{type:"button",onClick:h,disabled:!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 disabled:opacity-40 disabled:cursor-not-allowed",children:"Next"})]}),children:[(0,b.jsxs)("div",{className:"text-center mb-8",children:[(0,b.jsx)("h1",{className:"text-[24px] font-bold text-[var(--foreground)] tracking-tight",children:"Connect a Provider"}),(0,b.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,b.jsx)("br",{}),"Connect one or more providers to power the agents that do the work."]})]}),(0,b.jsxs)("div",{className:"flex gap-6 min-h-0 items-start",children:[(0,b.jsxs)("div",{className:"w-[280px] shrink-0",children:["checking"===d&&(0,b.jsxs)("div",{className:"text-center py-8",children:[(0,b.jsx)(l.Loader2,{className:"w-6 h-6 animate-spin text-[var(--muted-foreground)] mx-auto"}),(0,b.jsx)("p",{className:"mt-3 text-[13px] text-[var(--muted-foreground)]",children:"Detecting installed providers..."})]}),"error"===d&&(0,b.jsx)("div",{className:"text-center py-8",children:(0,b.jsx)("p",{className:"text-[14px] text-[var(--muted-foreground)]",children:"Could not detect providers. Please reload."})}),("needs-setup"===d||"ready"===d)&&(0,b.jsx)("div",{className:"space-y-1.5",children:a.map(a=>(0,b.jsx)(q,{cli:a,onVerify:g,onRunInTerminal:m},a.id))})]}),(0,b.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,b.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,b.jsx)(k.Terminal,{className:"w-3.5 h-3.5 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-wide text-[var(--muted-foreground)]",children:"Terminal"})]}),(0,b.jsx)("div",{className:"flex-1 min-h-0",children:(0,b.jsx)(o.default,{ref:j,tabId:"setup-provider"})})]})]})]})}var s=a.i(379065);let t=(0,a.i(831709).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"}]]),u=[{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"}],v=[{id:"claude",label:"Claude Code",launchCmd:"claude"},{id:"codex",label:"Codex",launchCmd:"codex"},{id:"gemini",label:"Gemini CLI",launchCmd:"gemini"}];function w({onFinish:a,onBack:d}){let[e,f]=(0,c.useState)(!0),[h,i]=(0,c.useState)({}),[j,m]=(0,c.useState)({}),[p,q]=(0,c.useState)(null),[r,w]=(0,c.useState)(null),x=(0,c.useRef)(null),y=(0,c.useCallback)(a=>{x.current?.sendCommand(a)},[]),z=(0,c.useCallback)(async()=>{try{let[a,b]=await Promise.all([fetch("/api/linear/status"),fetch("/api/linear/mcp-setup")]),c=await a.json(),d=await b.json();i(c.clis??{}),m(d.configured??{})}catch{}finally{f(!1)}},[]);(0,c.useEffect)(()=>{z()},[z]);let A=(0,c.useCallback)(async a=>{q(a),w(null);try{let b=await fetch("/api/linear/mcp-setup",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cli:a})});if(b.ok)await z();else{let a=await b.json().catch(()=>({}));w(a.error||"Failed to configure MCP")}}catch{w("Failed to configure MCP")}finally{q(null)}},[z]),B=v.filter(a=>h[a.id]),C=B.some(a=>j[a.id]);return(0,b.jsxs)(n,{currentStep:2,totalSteps:2,wide:!0,footer:(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsx)("button",{type:"button",onClick:d,className:"text-[14px] text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",children:"Back"}),(0,b.jsx)("button",{type:"button",onClick:a,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:C?"Finish":"Skip"})]}),children:[(0,b.jsxs)("div",{className:"text-center mb-8",children:[(0,b.jsx)("h1",{className:"text-[24px] font-bold text-[var(--foreground)] tracking-tight",children:"Configure MCP Servers"}),(0,b.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,b.jsxs)("div",{className:"flex gap-6 min-h-0 items-start",children:[(0,b.jsx)("div",{className:"w-[380px] shrink-0 space-y-6",children:e?(0,b.jsxs)("div",{className:"text-center py-8",children:[(0,b.jsx)(l.Loader2,{className:"w-6 h-6 animate-spin text-[var(--muted-foreground)] mx-auto"}),(0,b.jsx)("p",{className:"mt-3 text-[13px] text-[var(--muted-foreground)]",children:"Checking MCP configuration..."})]}):(0,b.jsxs)(b.Fragment,{children:[u.map(a=>(0,b.jsxs)("div",{className:"border border-[var(--card-border)] rounded-lg overflow-hidden",children:[(0,b.jsxs)("div",{className:"px-4 py-3 flex items-center gap-3",children:[(0,b.jsx)("div",{className:"w-8 h-8 rounded-lg bg-[var(--secondary)] flex items-center justify-center",children:(0,b.jsx)(t,{className:"w-4 h-4 text-[var(--foreground)]"})}),(0,b.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"text-[14px] font-semibold text-[var(--foreground)]",children:a.name}),C&&(0,b.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,b.jsx)("p",{className:"text-[12px] text-[var(--muted-foreground)]",children:a.description})]})]}),(0,b.jsxs)("div",{className:"border-t border-[var(--card-border)] px-4 py-3 space-y-2",children:[(0,b.jsx)("p",{className:"text-[11px] font-semibold uppercase tracking-wide text-[var(--muted-foreground)] mb-2",children:"Register & authenticate per CLI"}),v.map(a=>{let c=h[a.id],d=j[a.id],e=p===a.id;return(0,b.jsxs)("div",{className:`flex items-center justify-between rounded-md border border-[var(--card-border)] px-3 py-2.5 ${!c?"opacity-40":""}`,children:[(0,b.jsx)("span",{className:"text-[13px] text-[var(--foreground)]",children:a.label}),c?d?(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsxs)("span",{className:"flex items-center gap-1 text-[11px] text-emerald-600 dark:text-emerald-400",children:[(0,b.jsx)(g.Check,{className:"w-3.5 h-3.5"}),"Registered"]}),(0,b.jsx)("button",{type:"button",onClick:()=>y(a.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 ${a.label} to authenticate`,children:"Launch & authenticate"})]}):(0,b.jsx)("button",{type:"button",onClick:()=>A(a.id),disabled:e,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:e?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(l.Loader2,{className:"w-3 h-3 animate-spin"}),"Registering..."]}):"Register"}):(0,b.jsx)("span",{className:"text-[11px] text-[var(--muted-foreground)]",children:"Not installed"})]},a.id)}),r&&(0,b.jsx)("p",{className:"text-[12px] text-red-500 dark:text-red-400 mt-1",children:r})]}),(0,b.jsx)("div",{className:"border-t border-[var(--card-border)] px-4 py-2.5",children:(0,b.jsxs)("a",{href:a.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 ",a.name," MCP",(0,b.jsx)(s.ExternalLink,{className:"w-3 h-3"})]})})]},a.id)),0===B.length&&(0,b.jsx)("div",{className:"text-center py-4",children:(0,b.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,b.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,b.jsx)("code",{className:"text-[var(--foreground)]",children:"/mcp"}),")."]})]})}),(0,b.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,b.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,b.jsx)(k.Terminal,{className:"w-3.5 h-3.5 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-wide text-[var(--muted-foreground)]",children:"Terminal"})]}),(0,b.jsx)("div",{className:"flex-1 min-h-0",children:(0,b.jsx)(o.default,{ref:x,tabId:"setup-mcp"})})]})]})]})}function x(){let a=function(){let[a,b]=(0,c.useState)("checking"),[f,g]=(0,c.useState)(e.map(a=>({...a,installed:null,authenticated:null})));(0,c.useEffect)(()=>{let a=!1;return(async()=>{try{let c=await fetch("/api/providers",{cache:"no-store"});if(a)return;if(!c.ok)return void b("error");let f=await c.json(),h=Array.isArray(f?.providers)?f.providers:[],i=e.map(a=>{let b=h.find(b=>b?.id===a.id);return{...a,installed:b?.installed??!1,authenticated:b?.authenticated??!1}});a||(g(i),b(i.some(a=>"ready"===d(a))?"ready":"needs-setup"))}catch{a||b("error")}})(),()=>{a=!0}},[]);let h=(0,c.useCallback)(a=>{g(c=>{let e=c.map(b=>b.id===a?{...b,authenticated:!0}:b);return e.some(a=>"ready"===d(a))&&b("ready"),e})},[]),i=(0,c.useMemo)(()=>f.filter(a=>"needs-auth"===d(a)).map(a=>a.id),[f]),j=i.join(",");(0,c.useEffect)(()=>{if("checking"===a||0===i.length)return;let b=new AbortController,c=new Map;return i.forEach(function a(d){if(b.signal.aborted)return;let e=setTimeout(async()=>{if(!b.signal.aborted){try{let a=await fetch(`/api/providers/check/${d}`,{cache:"no-store",signal:b.signal});if(b.signal.aborted)return;if(a.ok){let b=await a.json();if(b.authenticated)return void h(d);if(!b.installed)return void g(a=>a.map(a=>a.id===d?{...a,installed:!1,authenticated:!1}:a))}}catch{if(b.signal.aborted)return}b.signal.aborted||a(d)}},5e3);c.set(d,e)}),()=>{b.abort(),c.forEach(a=>clearTimeout(a))}},[a,j,h]);let k=f.filter(a=>"ready"===d(a)).length;return{readyState:a,clis:f,authenticatedCount:k,totalCount:f.length,handleVerifySuccess:h}}(),g=function(){let a=(0,f.useRouter)(),[b,d]=(0,c.useState)(1),e=(0,c.useCallback)(()=>{d(a=>Math.min(a+1,2))},[]);return{step:b,goNext:e,goBack:(0,c.useCallback)(()=>{d(a=>Math.max(a-1,1))},[]),finish:(0,c.useCallback)(()=>{a.push("/")},[a])}}();return(0,b.jsxs)(b.Fragment,{children:[1===g.step&&(0,b.jsx)(r,{clis:a.clis,readyState:a.readyState,authenticatedCount:a.authenticatedCount,totalCount:a.totalCount,onVerifySuccess:a.handleVerifySuccess,onNext:g.goNext}),2===g.step&&(0,b.jsx)(w,{onBack:g.goBack,onFinish:g.finish})]})}a.s(["default",()=>x],514760)}];
|
|
1
|
+
module.exports=[514760,a=>{"use strict";var b=a.i(308316),c=a.i(786220);function d(a){return null===a.installed?"checking":a.installed?!a.authenticated&&a.authCmd?"needs-auth":"ready":"not-installed"}let e=[{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(a=>({id:a.id,name:a.label,description:a.description,installCmd:a.installCmd,docsUrl:a.docsUrl,installNote:a.installNote,recommended:a.recommended,authCmd:a.authCmd}));var f=a.i(516909),g=a.i(627421),h=a.i(70887),i=a.i(804632),j=a.i(811760),k=a.i(356239),l=a.i(349692);function m({currentStep:a,totalSteps:c}){return(0,b.jsx)("div",{className:"flex items-center gap-0",role:"progressbar","aria-valuenow":a,"aria-valuemin":1,"aria-valuemax":c,"aria-label":`Step ${a} of ${c}`,children:Array.from({length:c},(c,d)=>{let e=d+1,f=e===a,g=e<a;return(0,b.jsxs)("div",{className:"flex items-center",children:[d>0&&(0,b.jsx)("div",{className:`w-8 h-[2px] ${g?"bg-[var(--foreground)]":"bg-[var(--border)]"}`}),(0,b.jsx)("div",{className:`w-2.5 h-2.5 rounded-full transition-colors ${f?"bg-[var(--foreground)] ring-4 ring-[var(--foreground)]/10":g?"bg-[var(--foreground)]":"bg-[var(--border)]"}`})]},e)})})}function n({currentStep:a,totalSteps:c,children:d,footer:e,wide:f}){let g=f?"max-w-6xl":"max-w-2xl";return(0,b.jsxs)("div",{className:"h-screen w-full flex flex-col bg-[var(--background)]",children:[(0,b.jsx)("div",{className:"flex items-center justify-center pt-8 pb-4",children:(0,b.jsx)(m,{currentStep:a,totalSteps:c})}),(0,b.jsx)("div",{className:"flex-1 overflow-y-auto px-4 min-h-0",children:(0,b.jsx)("div",{className:`${g} mx-auto w-full py-6 h-full`,children:d})}),e&&(0,b.jsx)("div",{className:"border-t border-[var(--border)] bg-[var(--background)] px-4 py-4",children:(0,b.jsx)("div",{className:`${g} mx-auto w-full`,children:e})})]})}var o=a.i(303592);function p({text:a}){let[d,e]=(0,c.useState)(!1),f=(0,c.useCallback)(()=>{navigator.clipboard.writeText(a).then(()=>{e(!0),setTimeout(()=>e(!1),2e3)})},[a]);return(0,b.jsx)("button",{type:"button",onClick:f,className:"p-1.5 rounded-md hover:bg-[var(--muted)] transition-colors text-[var(--muted-foreground)] hover:text-[var(--foreground)]",title:"Copy command",children:d?(0,b.jsx)(g.Check,{className:"w-3.5 h-3.5 text-emerald-500"}):(0,b.jsx)(i.Copy,{className:"w-3.5 h-3.5"})})}function q({cli:a,onVerify:e,onRunInTerminal:f}){let i=d(a),[m,n]=(0,c.useState)("needs-auth"===i),[o,q]=(0,c.useState)(!1),[r,s]=(0,c.useState)(null),t="not-installed"===i||"needs-auth"===i,u=(0,c.useCallback)(async()=>{q(!0),s(null);try{let b=await fetch(`/api/providers/check/${a.id}`,{cache:"no-store"});if(!b.ok)return void s("Check failed");(await b.json()).authenticated?e?.(a.id):s("Not authenticated yet")}catch{s("Check failed")}finally{q(!1)}},[a.id,e]),v="not-installed"===i?a.installCmd:a.authCmd?.cmd;return(0,b.jsxs)("div",{className:"border border-[var(--card-border)] rounded-lg overflow-hidden",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>t&&n(!m),className:`w-full flex items-center gap-2.5 px-3 py-2 transition-colors text-left ${t?"hover:bg-[var(--item-hover-bg)] cursor-pointer":"cursor-default"}`,children:[(0,b.jsx)("div",{className:"shrink-0",children:"checking"===i?(0,b.jsx)(h.Circle,{className:"w-3.5 h-3.5 text-[var(--muted-foreground)] animate-pulse"}):"ready"===i?(0,b.jsx)("div",{className:"w-4 h-4 rounded-full bg-emerald-100 dark:bg-emerald-900/30 flex items-center justify-center",children:(0,b.jsx)(g.Check,{className:"w-2.5 h-2.5 text-emerald-600 dark:text-emerald-400"})}):"needs-auth"===i?(0,b.jsx)("div",{className:"w-4 h-4 rounded-full bg-amber-100 dark:bg-amber-900/30 flex items-center justify-center",children:(0,b.jsx)(h.Circle,{className:"w-2.5 h-2.5 text-amber-600 dark:text-amber-400"})}):(0,b.jsx)(h.Circle,{className:"w-3.5 h-3.5 text-[var(--muted-foreground)]"})}),(0,b.jsx)("span",{className:"flex-1 min-w-0 text-[13px] font-semibold text-[var(--foreground)] truncate",children:a.name}),"ready"===i&&(0,b.jsx)("span",{className:"text-[10px] font-medium text-emerald-600 dark:text-emerald-400",children:"Ready"}),"needs-auth"===i&&(0,b.jsx)("span",{className:"text-[10px] font-medium text-amber-600 dark:text-amber-400",children:"Needs auth"}),"not-installed"===i&&a.recommended&&(0,b.jsx)("span",{className:"text-[10px] font-medium text-[var(--muted-foreground)]",children:"Recommended"}),t&&(0,b.jsx)(j.ChevronDown,{className:`w-3.5 h-3.5 text-[var(--muted-foreground)] transition-transform ${m?"rotate-180":""}`})]}),m&&t&&v&&(0,b.jsxs)("div",{className:"px-3 pb-2.5 pt-1 border-t border-[var(--card-border)] flex items-center gap-1.5",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>f?.(v),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,b.jsx)(k.Terminal,{className:"w-3 h-3"}),"Run"]}),"needs-auth"===i&&(0,b.jsxs)("button",{type:"button",onClick:u,disabled:o,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:[o&&(0,b.jsx)(l.Loader2,{className:"w-3 h-3 animate-spin"}),o?"Checking":"Verify"]}),(0,b.jsx)(p,{text:v}),r&&(0,b.jsx)("span",{className:"text-[10px] text-amber-600 dark:text-amber-400 ml-auto",children:r})]})]})}function r({clis:a,readyState:d,authenticatedCount:e,totalCount:f,onVerifySuccess:g,onNext:h}){let i="ready"===d,j=(0,c.useRef)(null),m=(0,c.useCallback)(a=>{j.current?.sendCommand(a)},[]);return(0,b.jsxs)(n,{currentStep:1,totalSteps:2,wide:!0,footer:(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsx)("span",{className:"text-[13px] text-[var(--muted-foreground)]",children:(0,b.jsxs)("span",{className:i?"text-emerald-600 dark:text-emerald-400":"",children:[e,"/",f," providers ready"]})}),(0,b.jsx)("button",{type:"button",onClick:h,disabled:!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 disabled:opacity-40 disabled:cursor-not-allowed",children:"Next"})]}),children:[(0,b.jsxs)("div",{className:"text-center mb-8",children:[(0,b.jsx)("h1",{className:"text-[24px] font-bold text-[var(--foreground)] tracking-tight",children:"Connect a Provider"}),(0,b.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,b.jsx)("br",{}),"Connect one or more providers to power the agents that do the work."]})]}),(0,b.jsxs)("div",{className:"flex gap-6 min-h-0 items-start",children:[(0,b.jsxs)("div",{className:"w-[280px] shrink-0",children:["checking"===d&&(0,b.jsxs)("div",{className:"text-center py-8",children:[(0,b.jsx)(l.Loader2,{className:"w-6 h-6 animate-spin text-[var(--muted-foreground)] mx-auto"}),(0,b.jsx)("p",{className:"mt-3 text-[13px] text-[var(--muted-foreground)]",children:"Detecting installed providers..."})]}),"error"===d&&(0,b.jsx)("div",{className:"text-center py-8",children:(0,b.jsx)("p",{className:"text-[14px] text-[var(--muted-foreground)]",children:"Could not detect providers. Please reload."})}),("needs-setup"===d||"ready"===d)&&(0,b.jsx)("div",{className:"space-y-1.5",children:a.map(a=>(0,b.jsx)(q,{cli:a,onVerify:g,onRunInTerminal:m},a.id))})]}),(0,b.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,b.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,b.jsx)(k.Terminal,{className:"w-3.5 h-3.5 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-wide text-[var(--muted-foreground)]",children:"Terminal"})]}),(0,b.jsx)("div",{className:"flex-1 min-h-0",children:(0,b.jsx)(o.default,{ref:j,tabId:"setup-provider"})})]})]})]})}var s=a.i(379065);let t=(0,a.i(831709).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"}]]),u=[{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"}],v=[{id:"claude",label:"Claude Code",launchCmd:"claude"},{id:"codex",label:"Codex",launchCmd:"codex"},{id:"gemini",label:"Gemini CLI",launchCmd:"gemini"}];function w({onFinish:a,onBack:d}){let[e,f]=(0,c.useState)(!0),[h,i]=(0,c.useState)({}),[j,m]=(0,c.useState)({}),[p,q]=(0,c.useState)(null),[r,w]=(0,c.useState)(null),x=(0,c.useRef)(null),y=(0,c.useCallback)(a=>{x.current?.sendCommand(a)},[]),z=(0,c.useCallback)(async()=>{try{let[a,b]=await Promise.all([fetch("/api/linear/status"),fetch("/api/linear/mcp-setup")]),c=await a.json(),d=await b.json();i(c.clis??{}),m(d.configured??{})}catch{}finally{f(!1)}},[]);(0,c.useEffect)(()=>{z()},[z]);let A=(0,c.useCallback)(async a=>{q(a),w(null);try{let b=await fetch("/api/linear/mcp-setup",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cli:a})});if(b.ok)await z();else{let a=await b.json().catch(()=>({}));w(a.error||"Failed to configure MCP")}}catch{w("Failed to configure MCP")}finally{q(null)}},[z]),B=v.filter(a=>h[a.id]),C=B.some(a=>j[a.id]);return(0,b.jsxs)(n,{currentStep:2,totalSteps:2,wide:!0,footer:(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsx)("button",{type:"button",onClick:d,className:"text-[14px] text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",children:"Back"}),(0,b.jsx)("button",{type:"button",onClick:a,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:C?"Finish":"Skip"})]}),children:[(0,b.jsxs)("div",{className:"text-center mb-8",children:[(0,b.jsx)("h1",{className:"text-[24px] font-bold text-[var(--foreground)] tracking-tight",children:"Configure MCP Servers"}),(0,b.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,b.jsxs)("div",{className:"flex gap-6 min-h-0 items-start",children:[(0,b.jsx)("div",{className:"w-[380px] shrink-0 space-y-6",children:e?(0,b.jsxs)("div",{className:"text-center py-8",children:[(0,b.jsx)(l.Loader2,{className:"w-6 h-6 animate-spin text-[var(--muted-foreground)] mx-auto"}),(0,b.jsx)("p",{className:"mt-3 text-[13px] text-[var(--muted-foreground)]",children:"Checking MCP configuration..."})]}):(0,b.jsxs)(b.Fragment,{children:[u.map(a=>(0,b.jsxs)("div",{className:"border border-[var(--card-border)] rounded-lg overflow-hidden",children:[(0,b.jsxs)("div",{className:"px-4 py-3 flex items-center gap-3",children:[(0,b.jsx)("div",{className:"w-8 h-8 rounded-lg bg-[var(--secondary)] flex items-center justify-center",children:(0,b.jsx)(t,{className:"w-4 h-4 text-[var(--foreground)]"})}),(0,b.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"text-[14px] font-semibold text-[var(--foreground)]",children:a.name}),C&&(0,b.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,b.jsx)("p",{className:"text-[12px] text-[var(--muted-foreground)]",children:a.description})]})]}),(0,b.jsxs)("div",{className:"border-t border-[var(--card-border)] px-4 py-3 space-y-2",children:[(0,b.jsx)("p",{className:"text-[11px] font-semibold uppercase tracking-wide text-[var(--muted-foreground)] mb-2",children:"Register & authenticate per CLI"}),v.map(a=>{let c=h[a.id],d=j[a.id],e=p===a.id;return(0,b.jsxs)("div",{className:`flex items-center justify-between rounded-md border border-[var(--card-border)] px-3 py-2.5 ${!c?"opacity-40":""}`,children:[(0,b.jsx)("span",{className:"text-[13px] text-[var(--foreground)]",children:a.label}),c?d?(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsxs)("span",{className:"flex items-center gap-1 text-[11px] text-emerald-600 dark:text-emerald-400",children:[(0,b.jsx)(g.Check,{className:"w-3.5 h-3.5"}),"Registered"]}),(0,b.jsx)("button",{type:"button",onClick:()=>y(a.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 ${a.label} to authenticate`,children:"Launch & authenticate"})]}):(0,b.jsx)("button",{type:"button",onClick:()=>A(a.id),disabled:e,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:e?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(l.Loader2,{className:"w-3 h-3 animate-spin"}),"Registering..."]}):"Register"}):(0,b.jsx)("span",{className:"text-[11px] text-[var(--muted-foreground)]",children:"Not installed"})]},a.id)}),r&&(0,b.jsx)("p",{className:"text-[12px] text-red-500 dark:text-red-400 mt-1",children:r})]}),(0,b.jsx)("div",{className:"border-t border-[var(--card-border)] px-4 py-2.5",children:(0,b.jsxs)("a",{href:a.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 ",a.name," MCP",(0,b.jsx)(s.ExternalLink,{className:"w-3 h-3"})]})})]},a.id)),0===B.length&&(0,b.jsx)("div",{className:"text-center py-4",children:(0,b.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,b.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,b.jsx)("code",{className:"text-[var(--foreground)]",children:"/mcp"}),")."]})]})}),(0,b.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,b.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,b.jsx)(k.Terminal,{className:"w-3.5 h-3.5 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-wide text-[var(--muted-foreground)]",children:"Terminal"})]}),(0,b.jsx)("div",{className:"flex-1 min-h-0",children:(0,b.jsx)(o.default,{ref:x,tabId:"setup-mcp"})})]})]})]})}function x(){let a=function(){let[a,b]=(0,c.useState)("checking"),[f,g]=(0,c.useState)(e.map(a=>({...a,installed:null,authenticated:null})));(0,c.useEffect)(()=>{let a=!1;return(async()=>{try{let c=await fetch("/api/providers",{cache:"no-store"});if(a)return;if(!c.ok)return void b("error");let f=await c.json(),h=Array.isArray(f?.providers)?f.providers:[],i=e.map(a=>{let b=h.find(b=>b?.id===a.id);return{...a,installed:b?.installed??!1,authenticated:b?.authenticated??!1}});a||(g(i),b(i.some(a=>"ready"===d(a))?"ready":"needs-setup"))}catch{a||b("error")}})(),()=>{a=!0}},[]);let h=(0,c.useCallback)(a=>{g(c=>{let e=c.map(b=>b.id===a?{...b,authenticated:!0}:b);return e.some(a=>"ready"===d(a))&&b("ready"),e})},[]),i=(0,c.useMemo)(()=>f.filter(a=>"needs-auth"===d(a)).map(a=>a.id),[f]),j=i.join(",");(0,c.useEffect)(()=>{if("checking"===a||0===i.length)return;let b=new AbortController,c=new Map;return i.forEach(function a(d){if(b.signal.aborted)return;let e=setTimeout(async()=>{if(!b.signal.aborted){try{let a=await fetch(`/api/providers/check/${d}`,{cache:"no-store",signal:b.signal});if(b.signal.aborted)return;if(a.ok){let b=await a.json();if(b.authenticated)return void h(d);if(!b.installed)return void g(a=>a.map(a=>a.id===d?{...a,installed:!1,authenticated:!1}:a))}}catch{if(b.signal.aborted)return}b.signal.aborted||a(d)}},5e3);c.set(d,e)}),()=>{b.abort(),c.forEach(a=>clearTimeout(a))}},[a,j,h]);let k=f.filter(a=>"ready"===d(a)).length;return{readyState:a,clis:f,authenticatedCount:k,totalCount:f.length,handleVerifySuccess:h}}(),g=function(){let a=(0,f.useRouter)(),[b,d]=(0,c.useState)(1),e=(0,c.useCallback)(()=>{d(a=>Math.min(a+1,2))},[]);return{step:b,goNext:e,goBack:(0,c.useCallback)(()=>{d(a=>Math.max(a-1,1))},[]),finish:(0,c.useCallback)(()=>{a.push("/")},[a])}}();return(0,b.jsxs)(b.Fragment,{children:[1===g.step&&(0,b.jsx)(r,{clis:a.clis,readyState:a.readyState,authenticatedCount:a.authenticatedCount,totalCount:a.totalCount,onVerifySuccess:a.handleVerifySuccess,onNext:g.goNext}),2===g.step&&(0,b.jsx)(w,{onBack:g.goBack,onFinish:g.finish})]})}a.s(["default",()=>x],514760)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=apps_local_app_setup_page_tsx_9a67cfaf._.js.map
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
module.exports=[581007,a=>{a.n(a.i(703865))},510463,a=>{"use strict";var b=a.i(416153),c=a.i(38046),d=a.i(809091),e=a.i(594184),f=a.i(944454),g=a.i(222189),h=a.i(298095),i=a.i(598297),j=a.i(123387),k=a.i(321637),l=a.i(325385),m=a.i(150420),n=a.i(780722),o=a.i(953655),p=a.i(16983),q=a.i(458223),r=a.i(6039);a.i(976477);var s=a.i(954998),t=a.i(976934),u=a.i(528799),v=a.i(848540),w=a.i(408666),x=a.i(892335),y=a.i(193695),z=a.i(480837),A=a.i(468951);a.i(759001);var B=a.i(888617),C=a.i(343759),D=a.i(424798),E=a.i(402702),F=a.i(912716);let G=["",{children:["projects",{children:["[slug]",{children:["prs",{children:["[prId]",{children:["__PAGE__",{},{metadata:{},page:[()=>a.r(581007),"[project]/apps/local/app/projects/[slug]/prs/[prId]/page.tsx"]}]},{metadata:{}}]},{metadata:{}}]},{metadata:{},layout:[()=>a.r(401178),"[project]/apps/local/app/projects/[slug]/layout.tsx"]}]},{metadata:{}}]},{layout:[()=>a.r(80388),"[project]/apps/local/app/layout.tsx"],"not-found":[()=>a.r(367314),"[project]/apps/local/node_modules/next/dist/client/components/builtin/not-found.js"],forbidden:[()=>a.r(742015),"[project]/apps/local/node_modules/next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>a.r(787941),"[project]/apps/local/node_modules/next/dist/client/components/builtin/unauthorized.js"],"global-error":[()=>a.r(468951),"[project]/apps/local/node_modules/next/dist/client/components/builtin/global-error.js"]}],H={require:a.r.bind(a),loadChunk:a.l.bind(a)},I=new b.AppPageRouteModule({definition:{kind:c.RouteKind.APP_PAGE,page:"/projects/[slug]/prs/[prId]/page",pathname:"/projects/[slug]/prs/[prId]",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:G},distDir:".next",relativeProjectDir:""});async function J(a,b,K){var L;I.isDev&&(0,f.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let M=!!(0,f.getRequestMeta)(a,"minimalMode"),N="/projects/[slug]/prs/[prId]/page";N=N.replace(/\/index$/,"")||"/";let O=await I.prepare(a,b,{srcPage:N,multiZoneDraftMode:!1});if(!O)return b.statusCode=400,b.end("Bad Request"),null==K.waitUntil||K.waitUntil.call(K,Promise.resolve()),null;let{buildId:P,query:Q,params:R,pageIsDynamic:S,buildManifest:T,nextFontManifest:U,reactLoadableManifest:V,serverActionsManifest:W,clientReferenceManifest:X,subresourceIntegrityManifest:Y,prerenderManifest:Z,isDraftMode:$,resolvedPathname:_,revalidateOnlyGenerated:aa,routerServerContext:ab,nextConfig:ac,parsedUrl:ad,interceptionRoutePatterns:ae,deploymentId:af}=O,ag=(0,o.normalizeAppPath)(N),{isOnDemandRevalidate:ah}=O,ai=ac.experimental.ppr&&!ac.cacheComponents&&(0,F.isInterceptionRouteAppPath)(_)?null:I.match(_,Z),aj=!!Z.routes[_],ak=a.headers["user-agent"]||"",al=(0,r.getBotType)(ak),am=(0,n.isHtmlBotRequest)(a),an=(0,f.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[q.NEXT_ROUTER_PREFETCH_HEADER],ao=(0,f.getRequestMeta)(a,"isRSCRequest")??!!a.headers[q.RSC_HEADER],ap=(0,p.getIsPossibleServerAction)(a),aq=(0,k.checkIsAppPPREnabled)(ac.experimental.ppr);if(!(0,f.getRequestMeta)(a,"postponed")&&aq&&"1"===a.headers[v.NEXT_RESUME_HEADER]&&"POST"===a.method){let b=[];for await(let c of a)b.push(c);let c=Buffer.concat(b).toString("utf8");(0,f.addRequestMeta)(a,"postponed",c)}let ar=aq&&(null==(L=Z.routes[ag]??Z.dynamicRoutes[ag])?void 0:L.renderingMode)==="PARTIALLY_STATIC",as=!1,at=!1,au=ar?(0,f.getRequestMeta)(a,"postponed"):void 0,av=ar&&ao&&!an;M&&(av=av&&!!au);let aw=(0,f.getRequestMeta)(a,"segmentPrefetchRSCRequest"),ax=(!am||!ar)&&(!ak||(0,n.shouldServeStreamingMetadata)(ak,ac.htmlLimitedBots)),ay=!!((ai||aj||Z.routes[ag])&&!(am&&ar)),az=ar&&!0===ac.cacheComponents,aA=!0===I.isDev||!ay||"string"==typeof au||(az&&(0,f.getRequestMeta)(a,"onCacheEntryV2")?av&&!M:av),aB=am&&ar,aC=null;$||!ay||aA||ap||au||av||(aC=_);let aD=aC;!aD&&I.isDev&&(aD=_),I.isDev||$||!ay||!ao||av||(0,i.stripFlightHeaders)(a.headers);let aE={...B,tree:G,GlobalError:A.default,handler:J,routeModule:I,__next_app__:H};W&&X&&(0,m.setManifestsSingleton)({page:N,clientReferenceManifest:X,serverActionsManifest:W});let aF=a.method||"GET",aG=(0,e.getTracer)(),aH=aG.getActiveScopeSpan(),aI=async()=>((null==ab?void 0:ab.render404)?await ab.render404(a,b,ad,!1):b.end("This page could not be found"),null);try{let d=I.getVaryHeader(_,ae);b.setHeader("Vary",d);let i=async(c,d)=>{let e=new j.NodeNextRequest(a),f=new j.NodeNextResponse(b);return I.render(e,f,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let a=aG.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==g.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let d=a.get("next.route");if(d){let a=`${aF} ${d}`;c.setAttributes({"next.route":d,"http.route":d,"next.span_name":a}),c.updateName(a)}else c.updateName(`${aF} ${N}`)})},k=(0,f.getRequestMeta)(a,"incrementalCache"),m=async({span:c,postponed:d,fallbackRouteParams:e,forceStaticRender:g})=>{let j={query:Q,params:R,page:ag,sharedContext:{buildId:P},serverComponentsHmrCache:(0,f.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:e,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aE,Component:(0,h.interopDefault)(aE),params:R,routeModule:I,page:N,postponed:d,shouldWaitOnAllReady:aB,serveStreamingMetadata:ax,supportsDynamicResponse:"string"==typeof d||aA,buildManifest:T,nextFontManifest:U,reactLoadableManifest:V,subresourceIntegrityManifest:Y,setCacheStatus:null==ab?void 0:ab.setCacheStatus,setIsrStatus:null==ab?void 0:ab.setIsrStatus,setReactDebugChannel:null==ab?void 0:ab.setReactDebugChannel,sendErrorsToBrowser:null==ab?void 0:ab.sendErrorsToBrowser,dir:require("path").join(process.cwd(),I.relativeProjectDir),isDraftMode:$,botType:al,isOnDemandRevalidate:ah,isPossibleServerAction:ap,assetPrefix:ac.assetPrefix,nextConfigOutput:ac.output,crossOrigin:ac.crossOrigin,trailingSlash:ac.trailingSlash,images:ac.images,previewProps:Z.preview,deploymentId:af,enableTainting:ac.experimental.taint,htmlLimitedBots:ac.htmlLimitedBots,reactMaxHeadersLength:ac.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:k,cacheLifeProfiles:ac.cacheLife,basePath:ac.basePath,serverActions:ac.experimental.serverActions,...as||at?{nextExport:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isDebugDynamicAccesses:as}:{},cacheComponents:!!ac.cacheComponents,experimental:{isRoutePPREnabled:ar,expireTime:ac.expireTime,staleTimes:ac.experimental.staleTimes,dynamicOnHover:!!ac.experimental.dynamicOnHover,inlineCss:!!ac.experimental.inlineCss,authInterrupts:!!ac.experimental.authInterrupts,clientTraceMetadata:ac.experimental.clientTraceMetadata||[],clientParamParsingOrigins:ac.experimental.clientParamParsingOrigins,maxPostponedStateSizeBytes:(0,z.parseMaxPostponedStateSize)(ac.experimental.maxPostponedStateSize)},waitUntil:K.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d,e)=>I.onRequestError(a,b,d,e,ab),err:(0,f.getRequestMeta)(a,"invokeError"),dev:I.isDev}};as&&(j.renderOpts.nextExport=!0,j.renderOpts.supportsDynamicResponse=!1,j.renderOpts.isDebugDynamicAccesses=as),g&&(j.renderOpts.supportsDynamicResponse=!1);let l=await i(c,j),{metadata:m}=l,{cacheControl:n,headers:o={},fetchTags:p,fetchMetrics:q}=m;if(p&&(o[v.NEXT_CACHE_TAGS_HEADER]=p),a.fetchMetrics=q,ay&&(null==n?void 0:n.revalidate)===0&&!I.isDev&&!ar){let a=m.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${_}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""}
|
|
2
|
+
see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:s.CachedRouteKind.APP_PAGE,html:l,headers:o,rscData:m.flightData,postponed:m.postponed,status:m.statusCode,segmentData:m.segmentData},cacheControl:n}},n=async({hasResolved:d,previousCacheEntry:e,isRevalidating:g,span:h,forceStaticRender:i=!1})=>{let j,o=!1===I.isDev,p=d||b.writableEnded;if(ah&&aa&&!e&&!M)return(null==ab?void 0:ab.render404)?await ab.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(ai&&(j=(0,t.parseFallbackField)(ai.fallback)),j===t.FallbackMode.PRERENDER&&(0,r.isBot)(ak)&&(!ar||am)&&(j=t.FallbackMode.BLOCKING_STATIC_RENDER),(null==e?void 0:e.isStale)===-1&&(ah=!0),ah&&(j!==t.FallbackMode.NOT_FOUND||e)&&(j=t.FallbackMode.BLOCKING_STATIC_RENDER),!M&&j!==t.FallbackMode.BLOCKING_STATIC_RENDER&&aD&&!p&&!$&&S&&(o||!aj)){if((o||ai)&&j===t.FallbackMode.NOT_FOUND){if(ac.experimental.adapterPath)return await aI();throw new y.NoFallbackError}if(ar&&(ac.cacheComponents?!av:!ao)){let b=o&&"string"==typeof(null==ai?void 0:ai.fallback)?ai.fallback:ag,d=o&&(null==ai?void 0:ai.fallbackRouteParams)?(0,l.createOpaqueFallbackRouteParams)(ai.fallbackRouteParams):at?(0,l.getFallbackRouteParams)(ag,I):null,e=await I.handleResponse({cacheKey:b,req:a,nextConfig:ac,routeKind:c.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:Z,isRoutePPREnabled:ar,responseGenerator:async()=>m({span:h,postponed:void 0,fallbackRouteParams:d,forceStaticRender:!1}),waitUntil:K.waitUntil,isMinimalMode:M});if(null===e)return null;if(e)return delete e.cacheControl,e}}let q=ah||g||!au?void 0:au;if(az&&!M&&k&&av&&!i){let b=await k.get(_,{kind:s.IncrementalCacheKind.APP_PAGE,isRoutePPREnabled:!0,isFallback:!1});b&&b.value&&b.value.kind===s.CachedRouteKind.APP_PAGE&&(q=b.value.postponed,b&&(-1===b.isStale||!0===b.isStale)&&(0,E.scheduleOnNextTick)(async()=>{let b=I.getResponseCache(a);try{await b.revalidate(_,k,ar,!1,a=>n({...a,forceStaticRender:!0}),null,d,K.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}))}if(as&&void 0!==q)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:s.CachedRouteKind.PAGES,html:u.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let v=o&&(null==ai?void 0:ai.fallbackRouteParams)&&(0,f.getRequestMeta)(a,"renderFallbackShell")?(0,l.createOpaqueFallbackRouteParams)(ai.fallbackRouteParams):at?(0,l.getFallbackRouteParams)(ag,I):null;return m({span:h,postponed:q,fallbackRouteParams:v,forceStaticRender:i})},o=async d=>{var e,g,h,i,j;let k,l=await I.handleResponse({cacheKey:aC,responseGenerator:a=>n({span:d,...a}),routeKind:c.RouteKind.APP_PAGE,isOnDemandRevalidate:ah,isRoutePPREnabled:ar,req:a,nextConfig:ac,prerenderManifest:Z,waitUntil:K.waitUntil,isMinimalMode:M});if($&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),I.isDev&&b.setHeader("Cache-Control","no-store, must-revalidate"),!l){if(aC)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(e=l.value)?void 0:e.kind)!==s.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(h=l.value)?void 0:h.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let o="string"==typeof l.value.postponed;ay&&!av&&(!o||an)&&(M||b.setHeader("x-nextjs-cache",ah?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),b.setHeader(q.NEXT_IS_PRERENDER_HEADER,"1"));let{value:p}=l;if(au)k={revalidate:0,expire:void 0};else if(av)k={revalidate:0,expire:void 0};else if(!I.isDev)if($)k={revalidate:0,expire:void 0};else if(ay){if(l.cacheControl)if("number"==typeof l.cacheControl.revalidate){if(l.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${l.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});k={revalidate:l.cacheControl.revalidate,expire:(null==(i=l.cacheControl)?void 0:i.expire)??ac.expireTime}}else k={revalidate:v.CACHE_ONE_YEAR,expire:void 0}}else b.getHeader("Cache-Control")||(k={revalidate:0,expire:void 0});if(l.cacheControl=k,"string"==typeof aw&&(null==p?void 0:p.kind)===s.CachedRouteKind.APP_PAGE&&p.segmentData){b.setHeader(q.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(j=p.headers)?void 0:j[v.NEXT_CACHE_TAGS_HEADER];M&&ay&&c&&"string"==typeof c&&b.setHeader(v.NEXT_CACHE_TAGS_HEADER,c);let d=p.segmentData.get(aw);return void 0!==d?(0,x.sendRenderResult)({req:a,res:b,generateEtags:ac.generateEtags,poweredByHeader:ac.poweredByHeader,result:u.default.fromStatic(d,q.RSC_CONTENT_TYPE_HEADER),cacheControl:l.cacheControl}):(b.statusCode=204,(0,x.sendRenderResult)({req:a,res:b,generateEtags:ac.generateEtags,poweredByHeader:ac.poweredByHeader,result:u.default.EMPTY,cacheControl:l.cacheControl}))}let r=az?(0,f.getRequestMeta)(a,"onCacheEntryV2")??(0,f.getRequestMeta)(a,"onCacheEntry"):(0,f.getRequestMeta)(a,"onCacheEntry");if(r&&await r(l,{url:(0,f.getRequestMeta)(a,"initURL")??a.url}))return null;if(p.headers){let a={...p.headers};for(let[c,d]of(M&&ay||delete a[v.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let t=null==(g=p.headers)?void 0:g[v.NEXT_CACHE_TAGS_HEADER];if(M&&ay&&t&&"string"==typeof t&&b.setHeader(v.NEXT_CACHE_TAGS_HEADER,t),!p.status||ao&&ar||(b.statusCode=p.status),!M&&p.status&&C.RedirectStatusCode[p.status]&&ao&&(b.statusCode=200),o&&!av&&b.setHeader(q.NEXT_DID_POSTPONE_HEADER,"1"),ao&&!$){if(void 0===p.rscData){if(p.html.contentType!==q.RSC_CONTENT_TYPE_HEADER)if(ac.cacheComponents)return b.statusCode=404,(0,x.sendRenderResult)({req:a,res:b,generateEtags:ac.generateEtags,poweredByHeader:ac.poweredByHeader,result:u.default.EMPTY,cacheControl:l.cacheControl});else throw Object.defineProperty(new D.InvariantError(`Expected RSC response, got ${p.html.contentType}`),"__NEXT_ERROR_CODE",{value:"E789",enumerable:!1,configurable:!0});return(0,x.sendRenderResult)({req:a,res:b,generateEtags:ac.generateEtags,poweredByHeader:ac.poweredByHeader,result:p.html,cacheControl:l.cacheControl})}return(0,x.sendRenderResult)({req:a,res:b,generateEtags:ac.generateEtags,poweredByHeader:ac.poweredByHeader,result:u.default.fromStatic(p.rscData,q.RSC_CONTENT_TYPE_HEADER),cacheControl:l.cacheControl})}let y=p.html;if(!o||M||ao)return(0,x.sendRenderResult)({req:a,res:b,generateEtags:ac.generateEtags,poweredByHeader:ac.poweredByHeader,result:y,cacheControl:l.cacheControl});if(as)return y.push(new ReadableStream({start(a){a.enqueue(w.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,x.sendRenderResult)({req:a,res:b,generateEtags:ac.generateEtags,poweredByHeader:ac.poweredByHeader,result:y,cacheControl:{revalidate:0,expire:void 0}});let z=new TransformStream;return y.push(z.readable),m({span:d,postponed:p.postponed,fallbackRouteParams:null,forceStaticRender:!1}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==s.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(z.writable)}).catch(a=>{z.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,x.sendRenderResult)({req:a,res:b,generateEtags:ac.generateEtags,poweredByHeader:ac.poweredByHeader,result:y,cacheControl:{revalidate:0,expire:void 0}})};if(!aH)return await aG.withPropagatedContext(a.headers,()=>aG.trace(g.BaseServerSpan.handleRequest,{spanName:`${aF} ${N}`,kind:e.SpanKind.SERVER,attributes:{"http.method":aF,"http.target":a.url}},o));await o(aH)}catch(b){throw b instanceof y.NoFallbackError||await I.onRequestError(a,b,{routerKind:"App Router",routePath:N,routeType:"render",revalidateReason:(0,d.getRevalidateReason)({isStaticGeneration:ay,isOnDemandRevalidate:ah})},!1,ab),b}}a.s(["__next_app__",0,H,"handler",()=>J,"routeModule",0,I],414873),a.i(414873),a.s(["ClientPageRoot",()=>B.ClientPageRoot,"ClientSegmentRoot",()=>B.ClientSegmentRoot,"Fragment",()=>B.Fragment,"GlobalError",()=>A.default,"HTTPAccessFallbackBoundary",()=>B.HTTPAccessFallbackBoundary,"LayoutRouter",()=>B.LayoutRouter,"Postpone",()=>B.Postpone,"RenderFromTemplateContext",()=>B.RenderFromTemplateContext,"RootLayoutBoundary",()=>B.RootLayoutBoundary,"SegmentViewNode",()=>B.SegmentViewNode,"SegmentViewStateNode",()=>B.SegmentViewStateNode,"__next_app__",0,H,"actionAsyncStorage",()=>B.actionAsyncStorage,"captureOwnerStack",()=>B.captureOwnerStack,"collectSegmentData",()=>B.collectSegmentData,"createElement",()=>B.createElement,"createMetadataComponents",()=>B.createMetadataComponents,"createPrerenderParamsForClientSegment",()=>B.createPrerenderParamsForClientSegment,"createPrerenderSearchParamsForClientPage",()=>B.createPrerenderSearchParamsForClientPage,"createServerParamsForServerSegment",()=>B.createServerParamsForServerSegment,"createServerSearchParamsForServerPage",()=>B.createServerSearchParamsForServerPage,"createTemporaryReferenceSet",()=>B.createTemporaryReferenceSet,"decodeAction",()=>B.decodeAction,"decodeFormState",()=>B.decodeFormState,"decodeReply",()=>B.decodeReply,"handler",()=>J,"patchFetch",()=>B.patchFetch,"preconnect",()=>B.preconnect,"preloadFont",()=>B.preloadFont,"preloadStyle",()=>B.preloadStyle,"prerender",()=>B.prerender,"renderToReadableStream",()=>B.renderToReadableStream,"routeModule",0,I,"serverHooks",()=>B.serverHooks,"taintObjectReference",()=>B.taintObjectReference,"workAsyncStorage",()=>B.workAsyncStorage,"workUnitAsyncStorage",()=>B.workUnitAsyncStorage],510463)}];
|
|
3
|
+
|
|
4
|
+
//# sourceMappingURL=apps_local_b87f08ce._.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[769677,a=>{"use strict";let b="project_objectives_workspace",c="project_goals_workspace",d=new Set(["on_track","at_risk","off_track","done"]);function e(a){return!!a&&"object"==typeof a&&!Array.isArray(a)}function f(a){return`${a}_${Math.random().toString(36).slice(2,10)}`}function g(a){return[...a].sort((a,b)=>Date.parse(b.updatedAt)-Date.parse(a.updatedAt))}function h(a){return[...a].sort((a,b)=>Date.parse(a.createdAt)-Date.parse(b.createdAt))}function i(a){return[...a].sort((a,b)=>Date.parse(b.createdAt)-Date.parse(a.createdAt))}function j(a,b=""){return"string"==typeof a?a:b}function k(a){return Array.isArray(a)?Array.from(new Set(a.map(a=>"string"==typeof a?a.trim():"").filter(Boolean))):[]}function l(a,b="1970-01-01T00:00:00.000Z"){if("string"!=typeof a)return b;let c=Date.parse(a);return Number.isNaN(c)?b:new Date(c).toISOString()}function m(a){return"number"==typeof a&&Number.isFinite(a)?Math.max(0,Math.min(100,Math.round(a))):0}function n(a,b=0){return"number"==typeof a&&Number.isFinite(a)?Math.max(0,Math.floor(a)):b}function o(a,b="objective"){let c=a.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").replace(/-{2,}/g,"-").slice(0,32);return c||b.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"objective"}function p(a,b,c="objective"){let d=o(c),e=o(a,d),f=e,g=2;for(;b.has(f);){let a=`-${g}`,b=Math.max(1,32-a.length);f=`${e.slice(0,b)}${a}`,g+=1}return b.add(f),f}function q(a,b,c){return p(a,new Set(b.filter(a=>a.id!==c).map(a=>o(a.key||a.title||a.id))),c??a)}function r(a){var b;if(!e(a))return null;let c=l(a.updatedAt??a.createdAt),g=l(a.createdAt,c);return{id:j(a.id,f("objective")),title:j(a.title,"Untitled objective"),teamId:j(a.teamId??a.team_id??a.ownerTeamId),key:o(j(a.key??a.slug??a.label),j(a.title??a.id,"objective")),threadId:j(a.threadId)||null,chatSessionVersion:n(a.chatSessionVersion,0),scheduledTaskIds:k(a.scheduledTaskIds??a.promptJobIds),summary:j(a.summary),progress:m(a.progress),status:"string"==typeof(b=a.status)&&d.has(b)?b:"on_track",createdAt:g,updatedAt:c}}function s(a){if(!e(a))return null;let b=l(a.updatedAt??a.createdAt),c=l(a.createdAt,b),d=j(a.objectiveId??a.goalId);return d?{id:j(a.id,f("objective_activity")),objectiveId:d,sourceType:"note",sourceLabel:j(a.sourceLabel,"Update"),title:j(a.title,"Untitled activity"),body:j(a.body),createdAt:c,updatedAt:b,relatedTaskId:j(a.relatedTaskId)||null}:null}function t(a){if(!e(a))return null;let b=j(a.activityId);return b?{id:j(a.id,f("objective_thread_message")),activityId:b,author:j(a.author,"You"),body:j(a.body),createdAt:l(a.createdAt)}:null}function u(){return{objectives:[],activities:[],activityThreads:{}}}function v(a){let b;if(!e(a))return u();let c=Array.isArray(a.objectives)?a.objectives.map(a=>r(a)).filter(a=>null!==a):[],d=Array.isArray(a.activities)?a.activities.map(a=>s(a)).filter(a=>null!==a):[],f=e(a.activityThreads)?Object.fromEntries(Object.entries(a.activityThreads).map(([a,b])=>[a,h(Array.isArray(b)?b.map(a=>t(a)).filter(a=>null!==a):[])])):{};return{objectives:g((b=new Set,c.map(a=>{let c=p(a.key||a.title||a.id,b,a.id||a.title||"objective");return a.key===c?a:{...a,key:c}}))),activities:i(d),activityThreads:f}}function w(a){if(!e(a))return u();let d=a[b];if(void 0!==d){let a=v(d);if(a.objectives.length>0||a.activities.length>0||Object.keys(a.activityThreads).length>0)return a}let f=a[c];if(void 0!==f){if(!e(f))return u();let a=Array.isArray(f.goals)?f.goals.map(a=>(function(a){if(!e(a))return null;let b=j(a.target),c=[j(a.summary),b?`Measure: ${b}`:""].filter(Boolean).join("\n\n");return r({...a,summary:c})})(a)).filter(a=>null!==a):[],b=Array.isArray(f.manualActivities)?f.manualActivities.map(a=>s({...a,sourceLabel:"Update"})).filter(a=>null!==a):[],c=e(f.activityThreads)?Object.fromEntries(Object.entries(f.activityThreads).map(([a,b])=>[a,h(Array.isArray(b)?b.map(b=>t({...b,activityId:a})).filter(a=>null!==a):[])])):{};return{objectives:g(a),activities:i(b),activityThreads:c}}return u()}function x(a,d){let e={...a};return delete e[c],e[b]=v(d),e}function y(a){return{id:a.id??f("objective"),title:a.title.trim(),teamId:a.teamId.trim(),key:o(a.key?.trim()??a.title.trim(),a.id??a.title),threadId:"string"==typeof a.threadId&&a.threadId.trim()?a.threadId.trim():null,chatSessionVersion:n(a.chatSessionVersion??2,2),scheduledTaskIds:k(a.scheduledTaskIds??[]),summary:a.summary?.trim()??"",progress:m(a.progress??0),status:a.status??"on_track",createdAt:a.now,updatedAt:a.now}}function z(a,b){let c=a.objectives.findIndex(a=>a.id===b.id)>=0?a.objectives.map(a=>a.id===b.id?b:a):[b,...a.objectives];return{...a,objectives:g(c)}}function A(a,b){let c=new Set(a.activities.filter(a=>a.objectiveId===b).map(a=>a.id)),d=Object.fromEntries(Object.entries(a.activityThreads).filter(([a])=>!c.has(a)));return{objectives:a.objectives.filter(a=>a.id!==b),activities:a.activities.filter(a=>a.objectiveId!==b),activityThreads:d}}function B({objective:a,workspace:b}){return b.activities.filter(b=>b.objectiveId===a.id).map(a=>({...a,threadCount:b.activityThreads[a.id]?.length??0})).sort((a,b)=>Date.parse(b.createdAt)-Date.parse(a.createdAt))}a.s(["CURRENT_OBJECTIVE_CHAT_SESSION_VERSION",0,2,"LEGACY_PROJECT_GOALS_METADATA_KEY",0,c,"PROJECT_HEALTH_METADATA_KEY",0,"project_health_snapshot","PROJECT_OBJECTIVES_METADATA_KEY",0,b,"buildObjectiveTimelineActivities",()=>B,"createProjectObjective",()=>y,"generateProjectObjectiveKey",()=>q,"readProjectObjectivesWorkspace",()=>w,"removeProjectObjective",()=>A,"upsertProjectObjective",()=>z,"writeProjectObjectivesWorkspace",()=>x])},204246,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={DEFAULT_SEGMENT_KEY:function(){return l},NOT_FOUND_SEGMENT_KEY:function(){return m},PAGE_SEGMENT_KEY:function(){return k},addSearchParamsIfPageSegment:function(){return i},computeSelectedLayoutSegment:function(){return j},getSegmentValue:function(){return f},getSelectedLayoutSegmentPath:function(){return function a(b,c,d=!0,e=[]){let g;if(d)g=b[1][c];else{let a=b[1];g=a.children??Object.values(a)[0]}if(!g)return e;let h=f(g[0]);return!h||h.startsWith(k)?e:(e.push(h),a(g,c,!1,e))}},isGroupSegment:function(){return g},isParallelRouteSegment:function(){return h}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});function f(a){return Array.isArray(a)?a[1]:a}function g(a){return"("===a[0]&&a.endsWith(")")}function h(a){return a.startsWith("@")&&"@children"!==a}function i(a,b){if(a.includes(k)){let a=JSON.stringify(b);return"{}"!==a?k+"?"+a:k}return a}function j(a,b){if(!a||0===a.length)return null;let c="children"===b?a[0]:a[a.length-1];return c===l?null:c}let k="__PAGE__",l="__DEFAULT__",m="/_not-found"},490335,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={BailoutToCSRError:function(){return g},isBailoutToCSRError:function(){return h}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f="BAILOUT_TO_CLIENT_SIDE_RENDERING";class g extends Error{constructor(a){super(`Bail out to client-side rendering: ${a}`),this.reason=a,this.digest=f}}function h(a){return"object"==typeof a&&null!==a&&"digest"in a&&a.digest===f}},830284,a=>{"use strict";var b=a.i(786220);function c(){let[a,c]=(0,b.useState)([]),[d,e]=(0,b.useState)(!1),[f,g]=(0,b.useState)(null),h=(0,b.useCallback)(async()=>{e(!0);try{let a=await fetch("/api/projects");if(!a.ok)throw Error("Failed to fetch projects");let b=await a.json();c(b.projects??[]),g(null)}catch(a){g(a instanceof Error?a:Error("Unknown error"))}finally{e(!1)}},[]);(0,b.useEffect)(()=>{h()},[h]);let i=(0,b.useCallback)(async a=>{let b=await fetch("/api/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!b.ok)throw Error((await b.json().catch(()=>({}))).error||"Failed to create project");let d=(await b.json()).project;return c(a=>[d,...a]),d},[]);return{projects:a,isLoading:d,error:f,refetch:h,createProject:i,updateProject:(0,b.useCallback)(async(a,b)=>{let d=await fetch(`/api/projects/${a}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(b)});if(!d.ok)throw Error((await d.json().catch(()=>({}))).error||"Failed to update project");let e=(await d.json()).project;return c(b=>b.map(b=>b.id===a?e:b)),e},[]),deleteProject:(0,b.useCallback)(async a=>{let b=await fetch(`/api/projects/${a}`,{method:"DELETE"});if(!b.ok)throw Error((await b.json().catch(()=>({}))).error||"Failed to delete project");c(b=>b.filter(b=>b.id!==a))},[])}}function d(){let[a,c]=(0,b.useState)([]),[d,e]=(0,b.useState)(!0),f=(0,b.useCallback)(async()=>{try{let a=await fetch("/api/projects");if(!a.ok)return;let{projects:b}=await a.json(),d=await Promise.all((b??[]).map(async a=>{let b=[],c=[];try{let[d,e]=await Promise.all([fetch(`/api/projects/${a.id}/agents`),fetch(`/api/projects/${a.id}/threads`)]);d.ok&&(b=(await d.json()).agents??[]),e.ok&&(c=((await e.json()).threads??[]).map(a=>a.thread_id))}catch{}return{...a,repos:a.repos??[],agents:b.map(b=>({project_id:a.id,agent_id:b.agent_id,routing_order:b.routing_order,created_at:b.created_at})),thread_ids:c,workspace_ids:c}}));c(d)}catch{}finally{e(!1)}},[]);(0,b.useEffect)(()=>{f()},[f]);let g=(0,b.useCallback)(async(a,b)=>{try{let d="string"==typeof a?{name:a}:a,e=d.name.trim(),f=(d.slug||e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"")).trim(),g=await fetch("/api/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...d,name:e,slug:f})});if(!g.ok)return null;let{project:h}=await g.json(),i=Array.isArray(b)?b:b?[b]:[];for(let a of i)await fetch(`/api/projects/${h.id}/threads`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:a})}).catch(a=>console.warn("[useProjects] link thread failed:",a));let j={...h,repos:h.repos??[],agents:[],thread_ids:i,workspace_ids:i};return c(a=>[...a,j].sort((a,b)=>a.name.localeCompare(b.name))),j}catch{return null}},[]),h=(0,b.useCallback)(async(a,b)=>{try{if(!(await fetch(`/api/projects/${a}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:b})})).ok)return;c(c=>c.map(c=>c.id===a?{...c,name:b}:c).sort((a,b)=>a.name.localeCompare(b.name)))}catch{}},[]),i=(0,b.useCallback)(async a=>{try{if(!(await fetch(`/api/projects/${a}`,{method:"DELETE"})).ok)return;c(b=>b.filter(b=>b.id!==a))}catch{}},[]),j=(0,b.useCallback)(async(a,b)=>{try{let d=await fetch(`/api/projects/${a}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(b)});if(!d.ok){let a=await d.json().catch(()=>({}));throw Error(a.error||"Failed to update project")}let e=(await d.json()).project;return c(b=>b.map(b=>b.id===a?{...b,...e,repos:e.repos??b.repos}:b)),e}catch{return null}},[]),k=(0,b.useCallback)(async(a,b)=>{try{let d=await fetch(`/api/projects/${a}/agents`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentId:b})});if(!d.ok)return;let e=((await d.json()).agents??[]).map(b=>({project_id:a,agent_id:b.agent_id,routing_order:b.routing_order,created_at:b.created_at}));c(b=>b.map(b=>b.id===a?{...b,agents:e}:b))}catch{}},[]),l=(0,b.useCallback)(async(a,b)=>{try{let d=await fetch(`/api/projects/${a}/agents?agentId=${b}`,{method:"DELETE"});if(!d.ok)return;let e=((await d.json()).agents??[]).map(b=>({project_id:a,agent_id:b.agent_id,routing_order:b.routing_order,created_at:b.created_at}));c(b=>b.map(b=>b.id===a?{...b,agents:e}:b))}catch{}},[]);return{projects:a,isLoading:d,createProject:g,updateProject:j,renameProject:h,deleteProject:i,addAgent:k,removeAgent:l,reorderAgents:(0,b.useCallback)(async(a,b)=>{try{let d=await fetch(`/api/projects/${a}/agents`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({orderedAgentIds:b})});if(!d.ok)return;let e=((await d.json()).agents??[]).map(b=>({project_id:a,agent_id:b.agent_id,routing_order:b.routing_order,created_at:b.created_at}));c(b=>b.map(b=>b.id===a?{...b,agents:e}:b))}catch{}},[]),moveAgent:(0,b.useCallback)(async(a,b,c)=>{try{await fetch(`/api/projects/${b}/agents?agentId=${a}`,{method:"DELETE"}),await fetch(`/api/projects/${c}/agents`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentId:a})}),await f()}catch{}},[f]),refresh:f}}a.s(["useProjects",()=>c,"useProjectsWithAgents",()=>d])},422662,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={getDeploymentId:function(){return f},getDeploymentIdQueryOrEmptyString:function(){return g}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});function f(){return!1}function g(){return""}},639211,a=>{"use strict";a.s(["GRAPH_TIMEOUT_DEFAULT_MS",0,864e5,"NODE_TIMEOUT_DEFAULT_MS",0,18e5,"UI_POLL_CHAT_ALT_MS",0,15e3,"UI_POLL_CHAT_CHECK_MS",0,1e4,"UI_POLL_DB_HEALTH_MS",0,3e4,"UI_POLL_PROMPT_RUNS_MS",0,5e3,"UI_POLL_SYSTEM_STATUS_MS",0,3e4,"UI_POLL_UPDATE_CHECK_MS",0,18e5])}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=apps_local_c012eb07._.js.map
|