@mndrk/agx 2.4.9 → 2.4.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cloud-runtime/standalone/apps/local/.next/BUILD_ID +1 -1
- package/cloud-runtime/standalone/apps/local/.next/app-path-routes-manifest.json +7 -0
- package/cloud-runtime/standalone/apps/local/.next/build-manifest.json +5 -5
- package/cloud-runtime/standalone/apps/local/.next/prerender-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/routes-manifest.json +47 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error/page/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found/page/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found/page/next-font-manifest.json +3 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_tree.segment.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents/[id]/page/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents/[id]/page/next-font-manifest.json +3 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents/[id]/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents/[id]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents/[id]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page/next-font-manifest.json +3 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents.rsc +5 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_full.segment.rsc +5 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_index.segment.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_tree.segment.rsc +5 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/agents/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/agents.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/agent-specs/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/[id]/profile/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/export/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat-runs/[id]/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat-runs/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat-runs/active-agents/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat-runs/active-agents/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat-runs/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat-runs/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/file-search/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/filesystem/analyze/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/filesystem/analyze/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/diff/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/diff/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/diff/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/diff/route.js +7 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/diff/route.js.map +5 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/diff/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/diff/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/repos/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/repos/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/repos/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/repos/route.js +7 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/repos/route.js.map +5 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/repos/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/repos/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/refresh/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/refresh/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/refresh/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/refresh/route.js +7 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/refresh/route.js.map +5 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/refresh/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/refresh/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/rescan/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/rescan/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/rescan/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/rescan/route.js +7 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/rescan/route.js.map +5 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/rescan/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/rescan/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/route.js +7 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/route.js.map +5 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/git/workspaces/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/issues/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/[id]/route/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/[id]/route/build-manifest.json +11 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/[id]/route/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/[id]/route.js +7 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/[id]/route.js.map +5 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/[id]/route.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/[id]/route_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/context/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/for-target/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/link/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/prs/seed/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/repos/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/github/repos/sync/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/messages/[id]/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/messages/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/participants/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/processes/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/processes/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/scheduled-tasks/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/search/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/teams/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/poll/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/providers/check/[id]/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/providers/check/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/providers/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/providers/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/queue/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/debug/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/poll/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/assign/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/available/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/detail/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/history/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/learn/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/unlearn/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/status/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/status/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/summarize/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/system/db-status/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/system/db-status/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/comments/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/terminal/sessions/[id]/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/terminal/sessions/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/threads/knowledge/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/threads/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/active-agents/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/active-agents/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/auth/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/callback/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/groups/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/items/[id]/activity/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/items/[id]/recap/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/items/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/items/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/labels/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/labels/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/mcp-setup/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/metadata/bulk/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/metadata/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/options/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/runs/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/runs/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/runs/scripted/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/stats/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/stats/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/status/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/token/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/token-receive/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/[tracker]/worker/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/trackers/connections/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/update-check/route.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/update-check/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/index.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/index.rsc +6 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_full.segment.rsc +6 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_index.segment.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_tree.segment.rsc +5 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos/page/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos/page/next-font-manifest.json +3 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.rsc +5 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/_full.segment.rsc +5 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/_index.segment.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/_tree.segment.rsc +5 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/integrations/github/select-repos/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/integrations/github/select-repos.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/integrations/github.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/integrations/github/select-repos.segments/integrations.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/page/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/page/next-font-manifest.json +3 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page/next-font-manifest.json +3 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page/next-font-manifest.json +3 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page/next-font-manifest.json +3 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page/next-font-manifest.json +3 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/notifications/page/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/notifications/page/next-font-manifest.json +3 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/notifications/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/notifications/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/notifications/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page/next-font-manifest.json +3 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page/next-font-manifest.json +3 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page/next-font-manifest.json +3 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/[prId]/page/app-paths-manifest.json +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/[prId]/page/build-manifest.json +18 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/[prId]/page/next-font-manifest.json +13 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/[prId]/page/react-loadable-manifest.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/[prId]/page/server-reference-manifest.json +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/[prId]/page.js +16 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/[prId]/page.js.map +5 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/[prId]/page.js.nft.json +1 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/[prId]/page_client-reference-manifest.js +2 -0
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/page/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/page/next-font-manifest.json +3 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/prs/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page/next-font-manifest.json +3 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page/next-font-manifest.json +3 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page/next-font-manifest.json +3 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page/next-font-manifest.json +3 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page/next-font-manifest.json +3 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page/next-font-manifest.json +3 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page/next-font-manifest.json +3 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page/next-font-manifest.json +3 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/page/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/page/next-font-manifest.json +3 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/[tracker]/page/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/[tracker]/page/next-font-manifest.json +3 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/[tracker]/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/[tracker]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/[tracker]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/connect/page/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/connect/page/next-font-manifest.json +3 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/connect/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/connect/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/connect/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/page/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/page/next-font-manifest.json +3 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/tracking/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/page/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/page/next-font-manifest.json +3 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects.rsc +6 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_full.segment.rsc +6 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_index.segment.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_tree.segment.rsc +5 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/projects.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page/next-font-manifest.json +3 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup.rsc +6 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_full.segment.rsc +6 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_index.segment.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_tree.segment.rsc +5 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/setup/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/setup.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/status/page/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/status/page/next-font-manifest.json +3 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/status/page.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/status/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/status/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/status.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/status.rsc +6 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_full.segment.rsc +6 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_index.segment.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_tree.segment.rsc +5 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/status/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/status.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app-paths-manifest.json +7 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__037eb67e._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__97e7a600._.js → [root-of-the-server]__0ce28b4a._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__2564bd1e._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__26904897._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__f48224f7._.js → [root-of-the-server]__273384ad._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__bdc396a9._.js → [root-of-the-server]__2d6f22a3._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__af70f062._.js → [root-of-the-server]__3a038592._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__9cb1dc55._.js → [root-of-the-server]__3b27260f._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__1321970e._.js → [root-of-the-server]__5da8d281._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__92d34a52._.js → [root-of-the-server]__69a60d71._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__66437bd3._.js → [root-of-the-server]__6edb829d._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__8917bc4c._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__870fac73._.js → [root-of-the-server]__8cb4fb94._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__95298612._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__aa1b171a._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__b719a2ed._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__94f42197._.js → [root-of-the-server]__be9b56bb._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__c57c0958._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__cce177d8._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__e33b34ce._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/{[root-of-the-server]__61c40dc9._.js → [root-of-the-server]__ee43b5b0._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_1d99e7a5._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_22ab9b7c._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_56a2544c._.js +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_5843a1a1._.js +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local__next-internal_server_app_api_git_diff_route_actions_5ed8f528.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local__next-internal_server_app_api_git_repos_route_actions_24bb70fb.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local__next-internal_server_app_api_git_workspaces_route_actions_2ffcb8e1.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local__next-internal_server_app_api_github_prs_[id]_route_actions_97f96f83.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_bd72806a._.js +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_6bd3d8a2._.js +12 -12
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_cli-runner_ts_ead5489c._.js +12 -12
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_d268503a._.js +12 -12
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_orchestrator_chat-processor_ts_46384f36._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ebff2__next-internal_server_app_api_git_workspaces_refresh_route_actions_6586e386.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ebff2__next-internal_server_app_api_git_workspaces_rescan_route_actions_2566b872.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__14448535._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__17c701d2._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{[root-of-the-server]__ce586680._.js → [root-of-the-server]__24007358._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__263b7091._.js +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{[root-of-the-server]__2c4531d0._.js → [root-of-the-server]__6e4038bb._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__7a31a76d._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__9193284e._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{[root-of-the-server]__5f31e40b._.js → [root-of-the-server]__af9b12ac._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__c027b3e3._.js +15 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__c0bc6058._.js +7 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{[root-of-the-server]__9434d6d7._.js → [root-of-the-server]__c2331483._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__d8f968ee._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{_a0f42923._.js → _f2cf58ea._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_4d3f9c1e._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_6d8c811a._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_988d29c0._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_folders_page_tsx_72fb68e5._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_page_tsx_76330306._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_page_tsx_b5cec607._.js +5 -5
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_setup_page_tsx_9a67cfaf._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_b87f08ce._.js +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_c012eb07._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_ProjectModal_tsx_c447494c._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_TrackerBoard_tsx_98970bab._.js +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_prs_review_6ac47c7c._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_eec36ab6._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_fed01721._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/ebff2__next-internal_server_app_projects_[slug]_prs_[prId]_page_actions_37d43e50.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/functions-config-manifest.json +6 -0
- package/cloud-runtime/standalone/apps/local/.next/server/middleware-build-manifest.js +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/middleware-manifest.json +5 -5
- package/cloud-runtime/standalone/apps/local/.next/server/next-font-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/next-font-manifest.json +93 -29
- package/cloud-runtime/standalone/apps/local/.next/server/pages/404.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/pages/500.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/server-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/server-reference-manifest.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/16786eff1b844fce.css +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/23b7c6b08d8bf807.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/38a2210cf8c5fa16.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{d6a9cc66254693b8.js → 46add4300ec4ed84.js} +1 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/4f3bd9585037d960.js +16 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/60239e52ecfd3f7e.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{8b87c2521c519a1f.js → 6135e7752be76b7e.js} +11 -11
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/731deba285de6535.js +16 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/7ca9570f1f269043.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/86c552479b09e1f3.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/8f6587b3b3255b54.js +16 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/9ac96f1f33a266f9.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/a2eeffc281bd68bc.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/a68ffbf383609000.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{c9a2c4b55bb76f4f.js → b27f760849f14f13.js} +5 -5
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/b2c704fe1711d660.js +16 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/b53629835d2a70f0.js +16 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/b59bb2518194866e.css +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/bb99cb03648e6fae.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{72b4109642bf21f4.js → cb34ff86458b2477.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/dc12676eea40fd39.css +4 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/de6617e175bb536b.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{turbopack-87f23485587f08c3.js → turbopack-90109c6adbc88193.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/static/media/04c5164763c40239-s.690580e8.woff2 +0 -0
- package/cloud-runtime/standalone/apps/local/.next/static/media/051742360c26797e-s.p.102b7f24.woff2 +0 -0
- package/cloud-runtime/standalone/apps/local/.next/static/media/0ee4b8f05dcd9fee-s.45e2741a.woff2 +0 -0
- package/cloud-runtime/standalone/apps/local/.next/static/media/13ae3e01af63c0ce-s.3ec27879.woff2 +0 -0
- package/cloud-runtime/standalone/apps/local/.next/static/media/26f284dcc38c84c0-s.303a03d6.woff2 +0 -0
- package/cloud-runtime/standalone/apps/local/.next/static/media/6a5386fd6038edbe-s.719084df.woff2 +0 -0
- package/cloud-runtime/standalone/apps/local/.next/static/media/7e7f32a39836f228-s.0b4edfe7.woff2 +0 -0
- package/cloud-runtime/standalone/apps/local/.next/static/media/9eba4caf7edd2921-s.57f6a4a3.woff2 +0 -0
- package/cloud-runtime/standalone/apps/local/.next/static/media/ab57efd000576a30-s.p.37015d44.woff2 +0 -0
- package/cloud-runtime/standalone/apps/local/.next/static/media/b8d1f0a88dfecec3-s.cf53ec14.woff2 +0 -0
- package/cloud-runtime/standalone/apps/local/.next/static/media/f285987c35230861-s.b3721d2b.woff2 +0 -0
- package/cloud-runtime/standalone/apps/local/.next/static/media/f6752bd2263820da-s.95b8f539.woff2 +0 -0
- package/cloud-runtime/standalone/apps/local/.next/static/media/fa39153a3fc630ba-s.bff0868b.woff2 +0 -0
- package/cloud-runtime/standalone/apps/local/app/api/git/diff/route.ts +54 -0
- package/cloud-runtime/standalone/apps/local/app/api/git/repos/route.ts +47 -0
- package/cloud-runtime/standalone/apps/local/app/api/git/workspaces/refresh/route.ts +52 -0
- package/cloud-runtime/standalone/apps/local/app/api/git/workspaces/rescan/route.ts +23 -0
- package/cloud-runtime/standalone/apps/local/app/api/git/workspaces/route.ts +46 -0
- package/cloud-runtime/standalone/apps/local/app/api/github/prs/[id]/route.ts +28 -0
- package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/route.ts +4 -1
- package/cloud-runtime/standalone/apps/local/app/api/projects/payload.ts +23 -9
- package/cloud-runtime/standalone/apps/local/app/api/projects/route.ts +4 -1
- package/cloud-runtime/standalone/apps/local/app/layout.tsx +14 -2
- package/cloud-runtime/standalone/apps/local/app/page.tsx +2 -2
- package/cloud-runtime/standalone/apps/local/app/projects/[slug]/page.tsx +1 -1
- package/cloud-runtime/standalone/apps/local/app/projects/[slug]/prs/[prId]/page.tsx +13 -0
- package/cloud-runtime/standalone/apps/local/app/projects/[slug]/prs/page.tsx +5 -4
- package/cloud-runtime/standalone/apps/local/app/projects/page.tsx +7 -3
- package/cloud-runtime/standalone/apps/local/components/ProjectModal.tsx +111 -91
- package/cloud-runtime/standalone/apps/local/components/TrackerBoard.tsx +2 -2
- package/cloud-runtime/standalone/apps/local/components/project-repo-validation.ts +65 -0
- package/cloud-runtime/standalone/apps/local/components/projects/FoldersView.tsx +27 -9
- package/cloud-runtime/standalone/apps/local/components/projects/RepoPathCombobox.tsx +301 -0
- package/cloud-runtime/standalone/apps/local/components/prs/review/AgentChip.tsx +61 -0
- package/cloud-runtime/standalone/apps/local/components/prs/review/CommitRail.tsx +149 -0
- package/cloud-runtime/standalone/apps/local/components/prs/review/DiffPane.tsx +294 -0
- package/cloud-runtime/standalone/apps/local/components/prs/review/FilesPane.tsx +216 -0
- package/cloud-runtime/standalone/apps/local/components/prs/review/PrReviewView.tsx +68 -0
- package/cloud-runtime/standalone/apps/local/components/prs/review/ReviewLayout.tsx +148 -0
- package/cloud-runtime/standalone/apps/local/components/prs/review/StatusBar.tsx +53 -0
- package/cloud-runtime/standalone/apps/local/components/prs/review/TopBar.tsx +137 -0
- package/cloud-runtime/standalone/apps/local/components/prs/review/review.module.css +112 -0
- package/cloud-runtime/standalone/apps/local/components/setup/McpSetupStep.tsx +1 -1
- package/cloud-runtime/standalone/apps/local/components/setup/ProviderStep.tsx +2 -2
- package/cloud-runtime/standalone/apps/local/components/thread/WorkspaceSidebar.tsx +6 -2
- package/cloud-runtime/standalone/apps/local/components/tracker/LinkedPrsSection.tsx +4 -3
- package/cloud-runtime/standalone/apps/local/components/tracker/TicketPanel.tsx +111 -25
- package/cloud-runtime/standalone/apps/local/components/tracker/TicketWorkspaceView.tsx +472 -0
- package/cloud-runtime/standalone/apps/local/components/tracker/WorkspacePicker.tsx +338 -0
- package/cloud-runtime/standalone/apps/local/components/tracking/TrackerSetup.tsx +2 -2
- package/cloud-runtime/standalone/apps/local/hooks/useProviders.ts +1 -0
- package/cloud-runtime/standalone/apps/local/lib/cli-runner.ts +20 -0
- package/cloud-runtime/standalone/apps/local/lib/diff-parser.ts +56 -0
- package/cloud-runtime/standalone/apps/local/lib/gh-pr-cli.ts +198 -0
- package/cloud-runtime/standalone/apps/local/lib/git-diff-cli.ts +232 -0
- package/cloud-runtime/standalone/apps/local/lib/git-repo-index.ts +144 -0
- package/cloud-runtime/standalone/apps/local/lib/git-workspaces.ts +187 -0
- package/cloud-runtime/standalone/apps/local/lib/provider-clis.ts +12 -1
- package/cloud-runtime/standalone/apps/local/lib/repo-suggestions.ts +104 -0
- package/cloud-runtime/standalone/apps/local/lib/stream-multiplexer.ts +1 -0
- package/cloud-runtime/standalone/apps/local/lib/types.ts +1 -1
- package/cloud-runtime/standalone/apps/local/server.ts +14 -0
- package/cloud-runtime/standalone/apps/local/src/graph/work-dispatcher.ts +1 -0
- package/cloud-runtime/standalone/apps/local/state/windowState.ts +20 -0
- package/cloud-runtime/standalone/apps/local/worker/index.js +23 -2
- package/lib/cli/runCli.js +20 -4
- package/package.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__4ea9a658._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__6465e9c6._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__8ddbf4ca._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__5187dece._.js +0 -15
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__636799fb._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__d08d7899._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__e02a457c._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/[root-of-the-server]__e3a1fef0._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_16eaf7ae._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_620cb123._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_ae1a134f._.js +0 -7
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0d22a723b9b96e65.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/114ea1bfd6907330.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/1585dd5f9ec4866a.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/1bc8cc9cbb99c1ed.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/2473c16c0c2f6b5f.css +0 -2
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/2586c0baa16e9a0d.js +0 -16
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/3fce625820bc2bd4.js +0 -16
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/67b36c70b72e0e10.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/6d8a7494a0cea7a0.css +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/90dd4ab03ab145d1.js +0 -16
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/aa3029ae0b62f930.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/c352706a0ad7e35d.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/c5436b2b7e8f0ca9.js +0 -16
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/cf33cb29946990e3.js +0 -16
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/e3bdd1e0f385114e.js +0 -1
- /package/cloud-runtime/standalone/apps/local/.next/static/{EGpM0P8xAEWKkoW-3Ib69 → 5TAcMQcrkt4mBnsqrfw6B}/_buildManifest.js +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/static/{EGpM0P8xAEWKkoW-3Ib69 → 5TAcMQcrkt4mBnsqrfw6B}/_clientMiddlewareManifest.json +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/static/{EGpM0P8xAEWKkoW-3Ib69 → 5TAcMQcrkt4mBnsqrfw6B}/_ssgManifest.js +0 -0
package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_988d29c0._.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[970393,a=>{"use strict";let b=(0,a.i(831709).default)("panel-left-open",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m14 9 3 3-3 3",key:"8010ee"}]]);a.s(["PanelLeftOpen",()=>b],970393)},508869,a=>{"use strict";let b=(0,a.i(831709).default)("sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]);a.s(["Sun",()=>b],508869)},523321,a=>{"use strict";let b=(0,a.i(831709).default)("moon",[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]]);a.s(["Moon",()=>b],523321)},166621,a=>{"use strict";var b=a.i(308316),c=a.i(786220),d=a.i(850985),e=a.i(639211);function f(){let[a,f]=(0,c.useState)("unknown"),[g,h]=(0,c.useState)([]),[i,j]=(0,c.useState)(""),[k,l]=(0,c.useState)(!1),m=(0,c.useCallback)(async()=>{try{let a=await fetch("/api/status");if(!a.ok)return void f("unknown");let b=await a.json();f("ok"===b.status?"ok":"degraded");let c=b.services.filter(a=>"agx-chat"===a.name||"agx-cloud"===a.name);h(c),j(new Date().toLocaleTimeString())}catch{f("unknown"),h([])}},[]);return(0,c.useEffect)(()=>{m();let a=setInterval(m,e.UI_POLL_SYSTEM_STATUS_MS);return()=>clearInterval(a)},[m]),(0,b.jsxs)("div",{className:"relative",onMouseEnter:()=>l(!0),onMouseLeave:()=>l(!1),children:[(0,b.jsx)(d.default,{href:"/status",className:"inline-flex h-8 w-8 items-center justify-center rounded-md border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] transition-all hover:bg-[var(--app-shell-subtle)] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--ring)]",title:"System status",children:(0,b.jsx)("span",{className:`h-2.5 w-2.5 rounded-full ${"ok"===a?"bg-emerald-400":"degraded"===a?"bg-amber-400":"bg-[var(--app-shell-muted)]"} ${"degraded"===a?"animate-pulse":""}`})}),k&&(0,b.jsxs)("div",{className:"absolute top-full right-0 z-50 mt-1.5 w-52 rounded-lg border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] p-3 text-xs shadow-lg",children:[g.length>0?(0,b.jsx)("ul",{className:"space-y-1.5",children:g.map(a=>(0,b.jsxs)("li",{className:"flex items-center justify-between",children:[(0,b.jsx)("span",{className:"font-medium text-[var(--foreground)]",children:a.name}),(0,b.jsx)("span",{className:"ok"===a.status?"text-emerald-600":"error"===a.status?"text-red-500":"text-[var(--muted-foreground)]",children:"ok"===a.status?"Healthy":"error"===a.status?a.detail||"Error":"Unavailable"})]},a.name))}):(0,b.jsx)("p",{className:"text-[var(--app-shell-soft-text)]",children:"Checking..."}),i&&(0,b.jsxs)("p",{className:"mt-2 border-t border-[var(--app-shell-border)] pt-1.5 text-[var(--app-shell-soft-text)]",children:["Last check: ",i]})]})]})}a.s(["StatusIndicator",()=>f])},550158,a=>{"use strict";var b=a.i(308316),c=a.i(786220),d=a.i(197180),e=a.i(811760),f=a.i(66456),g=a.i(157633),h=a.i(736868),i=a.i(831709);let j=(0,i.default)("panel-left-close",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m16 15-3-3 3-3",key:"14y99z"}]]);var k=a.i(353532),l=a.i(542341),m=a.i(824179),n=a.i(489461),o=a.i(97723),p=a.i(985339);let q=(0,i.default)("house",[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"r6nss1"}]]);var r=a.i(737313),s=a.i(144462);let t=(0,i.default)("key-round",[["path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z",key:"1s6t7t"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}]]),u=(0,i.default)("circle-arrow-up",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m16 12-4-4-4 4",key:"177agl"}],["path",{d:"M12 16V8",key:"1sbj14"}]]),v=(0,i.default)("git-pull-request",[["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M13 6h3a2 2 0 0 1 2 2v7",key:"1yeb86"}],["line",{x1:"6",x2:"6",y1:"9",y2:"21",key:"rroup"}]]);var w=a.i(850985),x=a.i(529889),y=a.i(639211),z=a.i(8e4),A=a.i(188834),B=a.i(769677),C=a.i(599086),D=a.i(756490);let E=(0,i.default)("book",[["path",{d:"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",key:"k3hazp"}]]),F=(0,i.default)("lock",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]]);var G=a.i(392045);let H={linear:"Linear",jira:"Jira",intercom:"Intercom",freshdesk:"Freshdesk",github:"GitHub"};function I(a){return H[a]??a.charAt(0).toUpperCase()+a.slice(1)}function J({projectSlug:a,trackerConnections:d,activeTrackerType:e,isTrackingActive:f,onLinkClick:g}){let h=[...d].sort((a,b)=>new Date(a.connectedAt).getTime()-new Date(b.connectedAt).getTime()),i=h.filter(a=>a.connected),j=h.filter(a=>!a.connected),l=i.some(a=>"github"===a.type),[m,n]=(0,c.useState)([]),[o,p]=(0,c.useState)(!0);return(0,c.useEffect)(()=>{if(!l)return void n([]);let a=!1;return fetch("/api/github/repos",{cache:"no-store"}).then(a=>a.ok?a.json():{repos:[]}).then(b=>{a||n(b.repos??[])}).catch(()=>{a||n([])}),()=>{a=!0}},[l]),(0,b.jsxs)(b.Fragment,{children:[0===i.length&&0===j.length&&(0,b.jsx)("div",{className:"workspace-sidebar__workspace-item",children:(0,b.jsxs)(w.default,{href:`/projects/${a}/tracking/connect`,onClick:g,className:`workspace-sidebar__nav-item ${f?"workspace-sidebar__nav-item--active":""}`,children:[(0,b.jsx)(k.Plus,{size:14,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-sm text-[var(--muted-foreground)]",children:"Connect Tracker"})]})}),i.map(c=>{let d=f&&e===c.type;return(0,b.jsxs)("div",{className:"workspace-sidebar__workspace-item",children:[(0,b.jsxs)("div",{className:"flex items-center",children:[(0,b.jsxs)(w.default,{href:`/projects/${a}/tracking/${c.type}`,onClick:g,className:`workspace-sidebar__nav-item flex-1 ${d?"workspace-sidebar__nav-item--active":""}`,"aria-current":d?"page":void 0,children:[(0,b.jsx)(G.TrackerIcon,{trackerType:c.type,className:"flex-shrink-0 h-3.5 w-3.5 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-sm",children:I(c.type)})]}),"github"===c.type&&m.length>0&&(0,b.jsx)("button",{type:"button","aria-label":o?"Collapse GitHub repos":"Expand GitHub repos","aria-expanded":o,onClick:()=>p(a=>!a),className:"p-1 rounded hover:bg-[var(--item-hover-bg)] text-[var(--muted-foreground)]",children:(0,b.jsx)(D.ChevronRight,{size:12,className:`transition-transform ${o?"rotate-90":""}`})})]}),"github"===c.type&&o&&m.length>0&&(0,b.jsx)("div",{className:"flex flex-col gap-0.5 mt-0.5 pl-5",children:m.map(c=>(0,b.jsxs)(w.default,{href:`/projects/${a}/tracking/github?repo=${encodeURIComponent(c.id)}`,onClick:g,className:"workspace-sidebar__nav-item",title:c.id,children:[c.private?(0,b.jsx)(F,{size:12,className:"flex-shrink-0 text-[var(--muted-foreground)]"}):(0,b.jsx)(E,{size:12,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-xs text-[var(--muted-foreground)] truncate",children:c.name})]},c.id))})]},c.type)}),j.map(c=>(0,b.jsx)("div",{className:"workspace-sidebar__workspace-item",children:(0,b.jsxs)(w.default,{href:`/projects/${a}/tracking/${c.type}`,onClick:g,className:"workspace-sidebar__nav-item",children:[(0,b.jsx)(G.TrackerIcon,{trackerType:c.type,className:"flex-shrink-0 h-3.5 w-3.5 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-sm",children:I(c.type)}),(0,b.jsx)("span",{className:"ml-auto shrink-0",title:"Connection issue — click to reconnect",children:(0,b.jsx)(C.AlertTriangle,{size:12,className:"text-yellow-500"})})]})},c.type)),(i.length>0||j.length>0)&&(0,b.jsx)("div",{className:"workspace-sidebar__workspace-item",children:(0,b.jsxs)(w.default,{href:`/projects/${a}/tracking/connect`,onClick:g,className:"workspace-sidebar__nav-item",children:[(0,b.jsx)(k.Plus,{size:14,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-sm text-[var(--muted-foreground)]",children:"Connect"})]})})]})}var K=a.i(70014),L=a.i(227444);function M({compact:a=!1}){return(0,b.jsxs)("span",{className:`workspace-sidebar__brand-logo${a?" workspace-sidebar__brand-logo--compact":""}`,"aria-hidden":"true",children:[(0,b.jsx)("img",{src:"/logo_dark.png",alt:"AGX",className:"block dark:hidden",style:{height:28}}),(0,b.jsx)("img",{src:"/logo_light.png",alt:"AGX",className:"hidden dark:block",style:{height:28}})]})}function N({label:a,children:e}){let f=(0,c.useRef)(null),[g,h]=(0,c.useState)(null);return(0,b.jsxs)("div",{ref:f,onMouseEnter:()=>{let a=f.current?.firstElementChild??f.current;if(!a)return;let b=a.getBoundingClientRect();h({top:b.top+b.height/2,left:b.right+8})},onMouseLeave:()=>h(null),style:{display:"contents"},children:[e,g&&(0,d.createPortal)((0,b.jsx)("div",{className:"workspace-sidebar__rail-tooltip",style:{top:g.top,left:g.left,transform:"translateY(-50%)"},children:a}),document.body)]})}function O({projects:a,activeProjectId:d,onSelectProject:f,onCreateProject:h}){let[i,j]=(0,c.useState)(!1),[n,o]=(0,c.useState)(""),p=(0,c.useRef)(null),q=(0,c.useRef)(null),r=a.find(a=>a.id===d)??a[0],s=n.trim()?a.filter(a=>a.name.toLowerCase().includes(n.toLowerCase())):a;return(0,c.useEffect)(()=>{if(!i)return;let a=a=>{p.current&&!p.current.contains(a.target)&&(j(!1),o(""))};return document.addEventListener("pointerdown",a),()=>document.removeEventListener("pointerdown",a)},[i]),(0,c.useEffect)(()=>{i&&q.current&&q.current.focus()},[i]),(0,b.jsxs)("div",{className:"relative px-3 pt-3 pb-2",ref:p,children:[(0,b.jsxs)("button",{type:"button",onClick:()=>j(!i),className:"flex w-full items-center gap-2 rounded-lg border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] px-2.5 py-2 text-sm text-[var(--foreground)] transition-all hover:border-[var(--app-shell-border-strong)]",children:[(0,b.jsx)(g.Folder,{size:14,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"flex-1 truncate text-left font-medium",children:r?.name??"Select project"}),(0,b.jsx)(e.ChevronDown,{size:14,className:`flex-shrink-0 text-[var(--muted-foreground)] transition-transform ${i?"rotate-180":""}`})]}),i&&(0,b.jsxs)("div",{className:"absolute left-3 right-3 z-50 mt-1 rounded-lg border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] shadow-lg overflow-hidden",children:[(0,b.jsx)("div",{className:"p-2 border-b border-[var(--app-shell-border)]",children:(0,b.jsxs)("div",{className:"flex items-center gap-2 rounded-md border border-[var(--app-shell-border)] bg-[var(--app-shell-subtle)] px-2 py-1.5",children:[(0,b.jsx)(l.Search,{size:12,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("input",{ref:q,type:"text",value:n,onChange:a=>o(a.target.value),placeholder:"Search projects...",className:"flex-1 bg-transparent text-xs text-[var(--foreground)] placeholder:text-[var(--muted-foreground)] outline-none"}),n&&(0,b.jsx)("button",{type:"button",onClick:()=>o(""),className:"text-[var(--muted-foreground)] hover:text-[var(--foreground)]",children:(0,b.jsx)(m.X,{size:10})})]})}),(0,b.jsxs)("div",{className:"max-h-52 overflow-y-auto py-1",children:[s.map(a=>(0,b.jsxs)("button",{type:"button",onClick:()=>{f?.(a.id),j(!1),o("")},className:`flex w-full items-center gap-2 px-3 py-1.5 text-sm transition-colors hover:bg-[var(--app-shell-subtle)] ${a.id===r?.id?"text-[var(--foreground)] font-medium":"text-[var(--muted-foreground)]"}`,children:[(0,b.jsx)(g.Folder,{size:12,className:"flex-shrink-0"}),(0,b.jsx)("span",{className:"truncate",children:a.name})]},a.id)),0===s.length&&(0,b.jsx)("p",{className:"px-3 py-2 text-xs text-[var(--muted-foreground)]",children:"No projects found"})]}),(0,b.jsx)("div",{className:"border-t border-[var(--app-shell-border)] p-1",children:(0,b.jsxs)("button",{type:"button",onClick:()=>{j(!1),o(""),h()},className:"flex w-full items-center gap-2 rounded-md px-2.5 py-1.5 text-xs text-[var(--muted-foreground)] transition-colors hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]",children:[(0,b.jsx)(k.Plus,{size:12}),(0,b.jsx)("span",{children:"New project"})]})})]})]})}function P({threads:a,participants:e=[],activeThreadId:g,isLoading:i,isCreating:l,onSelectThread:C,onCreateThread:D,onRenameThread:E,onDeleteThread:F,deletingThreadId:G=null,renamingThreadId:H=null,activeParticipantIds:I=[],onToggleParticipantActive:P,visible:Q=!1,isRestoringActiveThread:R=!1,onToggle:S,onSearch:T,projects:U=[],onCreateProject:V,onUpdateProject:W,onDeleteProject:X,onAddAgentToProject:Y,onRemoveAgentFromProject:Z,onAddAgentViaForm:$,onReorderProjectAgents:_,onUpdateParticipant:aa,onSelectProject:ab,activeProjectId:ac=null,activeProjectView:ad=null,width:ae,onWidthChange:af,onAddTeam:ag,stageShow:ah,trackerConnections:ai=[]}){let aj,ak,{isTouchLayout:al,isPhone:am}=(0,x.useInputCapabilities)(),{updateAvailable:an}=function(){let[a,b]=(0,c.useState)({updateAvailable:!1,latestVersion:null});return(0,c.useEffect)(()=>{async function a(){try{let a=await fetch("/api/update-check");if(!a.ok)return;let c=await a.json(),d=c?.updateAvailable===!0,e="string"==typeof c?.latestVersion?c.latestVersion:null;b({updateAvailable:d,latestVersion:e})}catch{}}a();let c=setInterval(()=>{a()},y.UI_POLL_UPDATE_CHECK_MS);return()=>clearInterval(c)},[]),a}(),ao=(0,c.useRef)(!1);(0,c.useRef)(0);let ap=(0,c.useRef)(null),[aq,ar]=(0,c.useState)(!1),[as,at]=(0,c.useState)(new Set);(0,c.useEffect)(()=>{if(as.size>0||!U?.length)return;let a=U.find(a=>!1);at(new Set([a?.id??U[0].id]))},[U]);let[au,av]=(0,c.useState)(null),[aw,ax]=(0,c.useState)(new Set),[ay,az]=(0,c.useState)(!1),[aA,aB]=(0,c.useState)(null),[aC,aD]=(0,c.useState)(null),aE=(0,A.useProjectFormState)(),[aF,aG]=(0,c.useState)(null),aH=(0,c.useCallback)(a=>{a&&(a.focus(),a.select())},[]),[aI,aJ]=(0,c.useState)(null),[aK,aL]=(0,c.useState)(null),aM=aK?e.find(a=>a.id===aK)??null:null,[aN,aO]=(0,c.useState)(null),[aP,aQ]=(0,c.useState)({});(0,c.useEffect)(()=>{if(!U?.length)return;let a=!1,b=async()=>{try{let b=await fetch("/api/processes?enrich=1");if(!b.ok||a)return;let c=await b.json();if(a)return;let d=c.filter(a=>"spawning"===a.state||"running"===a.state),f={};for(let a of U){let b=a.slug.trim().toLowerCase(),c=new Set((a.thread_ids??[]).map(a=>a.trim()).filter(Boolean)),g=[],h=[],i=[],j=new Set,k=new Set,l=new Set;for(let a of d){let d=a.projectSlug?.trim().toLowerCase();if(!(d&&d===b||c.has(a.workspaceId)||c.has(a.threadId)))continue;let f=e.find(b=>b.id===a.agentId),m={agentId:a.agentId,color:f?.color??"#10b981"};a.linearIssueId?k.has(a.agentId)||(k.add(a.agentId),h.push(m)):a.threadId?.startsWith("objective-chat:")||a.workspaceId?.startsWith("objective-chat:")?j.has(a.agentId)||(j.add(a.agentId),g.push(m)):l.has(a.agentId)||(l.add(a.agentId),i.push(m))}(g.length||h.length||i.length)&&(f[a.id]={objectives:g,linear:h,chat:i})}aQ(f)}catch{}};b();let c=setInterval(b,3e3);return()=>{a=!0,clearInterval(c)}},[U,e]);let[aR,aS]=(0,c.useState)({}),[aT,aU]=(0,c.useState)(new Set),[aV,aW]=(0,c.useState)(new Set),aX=(0,c.useRef)(new Set);(0,c.useEffect)(()=>{Array.from(as).forEach(a=>{aV.has(a)||(aW(b=>new Set(b).add(a)),(async()=>{try{let b=await fetch(`/api/projects/${a}/teams`);if(!b.ok)return;let c=await b.json();aS(b=>({...b,[a]:c.teams??[]}))}catch{}})())})},[as,aV]);let[aY,aZ]=(0,c.useState)(null),a$=async()=>{if(!aA&&!aC)return;if(!aE.form.name.trim())return void aE.setFormError("Project name is required");let a=aE.repos.find(a=>a.name.trim()&&!a.path.trim());if(a)return void aE.setFormError(`Local path is required for folder "${a.name}"`);aE.setFormError(null),aE.setIsSubmitting(!0);let b=(0,A.createProjectPayload)(aE.form,aE.repos);aC?await W?.(aC.id,b):await V?.(b,aA?.threadId),aE.setIsSubmitting(!1),aB(null),aD(null)};(0,c.useEffect)(()=>{ar(!0)},[]),(0,c.useEffect)(()=>{let a=!1;async function b(){if(aN?.repoId)try{let b=await fetch(`/api/knowledge-notes?scope=repo&subjectId=${encodeURIComponent(aN.repoId)}`),c=(b.ok?await b.json():{note:null}).note;a||aO(a=>a&&a.repoId===aN.repoId?{...a,generatedKnowledge:c?.content?[{id:c.id,content:c.content,created_at:c.updatedAt??c.createdAt}]:[],isLoadingKnowledge:!1}:a)}catch{a||aO(a=>a&&a.repoId===aN.repoId?{...a,generatedKnowledge:[],isLoadingKnowledge:!1}:a)}}return aN?.repoId&&b(),()=>{a=!0}},[aN?.repoId]);let a_=au?U.find(a=>a.id===au.projectId):null,a0=new Set(a_?.agents.map(a=>a.agent_id)??[]),a1=au?e.filter(a=>!a0.has(a.id)):[],a2=a.length>0,a3=!!Q,a4=(0,c.useCallback)(()=>{al&&S?.()},[al,S]),a5=[...a].sort((a,b)=>(a.title??"").localeCompare(b.title??"")),a6=new Map(a.map(a=>[a.id,a])),a7=U.filter(a=>!a.is_default),a8=a7.find(a=>a.id===ac)??a7[0]??null,{connections:a9}=(0,L.useTrackerConnections)(a8?.id??null),ba=ah??{home:!0,threads:!0,terminal:!0,objectives:!1,objectivesIsNew:!1,tracking:!1,teams:!1,folders:!1,scheduledTasks:!1,envVars:!1,notifications:!1};if((0,c.useEffect)(()=>{if(0===a7.length)return;let b=new Map,c=new Set,d=new Map;for(let a of a7){for(let b of a.thread_ids??[])"string"==typeof b&&b.trim()&&c.add(b);for(let c of(0,B.readProjectObjectivesWorkspace)(a.metadata).objectives){let d=c.id.trim();d&&b.set(d,{projectId:a.id,canonicalThreadId:c.threadId?.trim()||`objective-chat:${d}`})}}for(let b of a){let a=b.metadata&&"object"==typeof b.metadata?b.metadata:null,c="objective"===("string"==typeof a?.scope?a.scope:"")||b.id.startsWith("objective-chat:"),e=b.title?.trim().toLowerCase()??"";if(!c||!e)continue;let f=d.get(e)??[];f.push(b),d.set(e,f)}for(let[a,b]of d)d.set(a,[...b].sort((a,b)=>b.updatedAt-a.updatedAt));for(let e of a){let a=e.metadata&&"object"==typeof e.metadata?e.metadata:null,f="string"==typeof a?.scope?a.scope:"",g="string"==typeof a?.objectiveId?a.objectiveId.trim():"",h=e.id.startsWith("objective-chat:")?e.id.slice(15).trim():"",i=g||h,j="objective"===f||!!h,k=e.title?.trim().toLowerCase()??"",l=0===e.messages.length&&e.updatedAt<Date.now()-3e5;if(!j)continue;let m=i?b.get(i):void 0;if(m){if(e.id!==m.canonicalThreadId&&l){let a=`delete:${e.id}`;if(aX.current.has(a))continue;aX.current.add(a),Promise.resolve(F(e.id)).catch(b=>{aX.current.delete(a),console.warn("Failed to delete legacy objective thread",b)});continue}if(!c.has(e.id)){let a=`link:${e.id}`;if(aX.current.has(a))continue;aX.current.add(a),fetch(`/api/projects/${m.projectId}/threads`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:e.id})}).then(a=>{if(!a.ok)throw Error(`Request failed with status ${a.status}`)}).catch(b=>{aX.current.delete(a),console.warn("Failed to re-link objective thread",b)})}continue}if(!l)continue;let n=k?d.get(k)??[]:[];if(n.length<2||n[0]?.id===e.id)continue;let o=`delete:${e.id}`;aX.current.has(o)||(aX.current.add(o),Promise.resolve(F(e.id)).catch(a=>{aX.current.delete(o),console.warn("Failed to delete orphan objective thread",a)}))}},[a7,F,a]),!function({focusTarget:a,shouldFocus:b}){(0,c.useEffect)(()=>{if(!b||"u"<typeof document)return;let c=a.current;if(!c||c instanceof HTMLButtonElement&&c.disabled)return;let d=document.activeElement;if(!(d&&(c===d||c.contains(d))))try{c.focus({preventScroll:!0})}catch{c.focus()}},[a,b])}({focusTarget:ap,shouldFocus:a3&&!(i&&!a2||R&&a2)&&!a2&&!l}),!a3){if(al)return null;let c=a8?.slug;return(0,b.jsxs)("aside",{id:"workspace-sidebar",className:"workspace-sidebar workspace-sidebar--collapsed","aria-label":"Workspace sidebar",children:[(0,b.jsx)("div",{className:"workspace-sidebar__brand",children:(0,b.jsx)("button",{type:"button",onClick:S,className:"workspace-sidebar__brand-trigger border-none outline-none cursor-pointer","aria-label":"Show chats",title:"Show chats",children:(0,b.jsx)(M,{compact:!0})})}),c&&(0,b.jsxs)("nav",{className:"workspace-sidebar__collapsed-rail",children:[(0,b.jsx)(N,{label:"Home",children:(0,b.jsx)(w.default,{href:`/projects/${c}`,className:`workspace-sidebar__rail-icon${"home"===ad?" workspace-sidebar__rail-icon--active":""}`,children:(0,b.jsx)(q,{size:16})})}),(ba.objectives||ba.tracking||ba.scheduledTasks)&&(0,b.jsx)("div",{className:"workspace-sidebar__rail-separator"}),ba.objectives&&(0,b.jsx)(N,{label:"Objectives",children:(0,b.jsx)(w.default,{href:`/projects/${c}/objectives`,className:`workspace-sidebar__rail-icon${"objectives"===ad?" workspace-sidebar__rail-icon--active":""}`,children:(0,b.jsx)(n.Target,{size:16})})}),ba.tracking&&(0,b.jsx)(N,{label:"Task Tracking",children:(0,b.jsx)(w.default,{href:`/projects/${c}/tracking`,className:`workspace-sidebar__rail-icon${"linear"===ad||"tracking"===ad?" workspace-sidebar__rail-icon--active":""}`,children:(0,b.jsx)(K.LinearIcon,{className:"h-4 w-4"})})}),ba.tracking&&(0,b.jsx)(N,{label:"Pull Requests",children:(0,b.jsx)(w.default,{href:`/projects/${c}/prs`,className:"workspace-sidebar__rail-icon",children:(0,b.jsx)(v,{size:16})})}),ba.scheduledTasks&&(0,b.jsx)(N,{label:"Scheduled Jobs",children:(0,b.jsx)(w.default,{href:`/projects/${c}/automations`,className:`workspace-sidebar__rail-icon${"automations"===ad?" workspace-sidebar__rail-icon--active":""}`,children:(0,b.jsx)(f.Zap,{size:16})})}),(0,b.jsx)("div",{className:"workspace-sidebar__rail-separator"}),(0,b.jsx)(N,{label:"Terminal",children:(0,b.jsx)(w.default,{href:`/projects/${c}/terminal`,className:`workspace-sidebar__rail-icon${"terminal"===ad?" workspace-sidebar__rail-icon--active":""}`,children:(0,b.jsx)(s.TerminalSquare,{size:16})})}),(0,b.jsx)(N,{label:"Chat",children:(0,b.jsx)("button",{type:"button",className:`workspace-sidebar__rail-icon${"thread"===ad?" workspace-sidebar__rail-icon--active":""}`,onClick:()=>{let b=a5.filter(a=>a8?.thread_ids?.includes(a.id)),c=a8?.thread_ids?.find(b=>a.some(a=>a.id===b))??b[0]?.id;c&&C(c)},children:(0,b.jsx)(r.MessageSquare,{size:16})})}),(ba.teams||ba.folders||ba.envVars||ba.notifications)&&(0,b.jsx)("div",{className:"workspace-sidebar__rail-separator"}),ba.teams&&(0,b.jsx)(N,{label:"Teams",children:(0,b.jsx)(w.default,{href:`/projects/${c}/teams`,className:`workspace-sidebar__rail-icon${"teams"===ad?" workspace-sidebar__rail-icon--active":""}`,children:(0,b.jsx)(p.Users,{size:16})})}),ba.folders&&(0,b.jsx)(N,{label:"Workspace Map",children:(0,b.jsx)(w.default,{href:`/projects/${c}/folders`,className:`workspace-sidebar__rail-icon${"folders"===ad?" workspace-sidebar__rail-icon--active":""}`,children:(0,b.jsx)(h.FolderGit2,{size:16})})}),ba.envVars&&(0,b.jsx)(N,{label:"Env Variables",children:(0,b.jsx)(w.default,{href:`/projects/${c}/env-vars`,className:`workspace-sidebar__rail-icon${"env-vars"===ad?" workspace-sidebar__rail-icon--active":""}`,children:(0,b.jsx)(t,{size:16})})}),ba.notifications&&(0,b.jsx)(N,{label:"Notifications",children:(0,b.jsx)(w.default,{href:`/projects/${c}/notifications`,className:`workspace-sidebar__rail-icon${"notifications"===ad?" workspace-sidebar__rail-icon--active":""}`,children:(0,b.jsx)(o.Bell,{size:16})})})]}),(0,b.jsxs)("div",{className:"mt-auto p-2 flex flex-col gap-2",children:[an&&c&&(0,b.jsx)(N,{label:"Update available",children:(0,b.jsx)(w.default,{href:`/projects/${c}/terminal?cmd=${encodeURIComponent("agx update && agx chat start")}`,className:"workspace-sidebar__rail-icon",children:(0,b.jsx)(u,{size:16})})}),(0,b.jsx)(N,{label:"Join Discord",children:(0,b.jsx)("a",{href:"https://discord.gg/G9afUYKKY3",target:"_blank",rel:"noopener noreferrer",className:"workspace-sidebar__rail-icon",style:{backgroundColor:"#5865F2",color:"white"},onMouseEnter:a=>a.currentTarget.style.backgroundColor="#4752C4",onMouseLeave:a=>a.currentTarget.style.backgroundColor="#5865F2",children:(0,b.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 71 55",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",children:(0,b.jsx)("path",{d:"M60.1 4.9A58.5 58.5 0 0045.4.2a.2.2 0 00-.2.1 40.8 40.8 0 00-1.8 3.7 54 54 0 00-16.2 0A37.4 37.4 0 0025.4.3a.2.2 0 00-.2-.1A58.4 58.4 0 0010.5 4.9a.2.2 0 00-.1.1C1.5 18.7-.9 32.2.3 45.5v.1a58.8 58.8 0 0017.7 9a.2.2 0 00.3-.1 42 42 0 003.6-5.9.2.2 0 00-.1-.3 38.8 38.8 0 01-5.5-2.6.2.2 0 01 0-.4l1.1-.9a.2.2 0 01.2 0 42 42 0 0035.6 0 .2.2 0 01.2 0l1.1.9a.2.2 0 010 .4 36.4 36.4 0 01-5.5 2.6.2.2 0 00-.1.3 47.2 47.2 0 003.6 5.9.2.2 0 00.3.1 58.6 58.6 0 0017.7-9v-.1c1.4-15.2-2.4-28.4-10-40.1a.2.2 0 00-.1-.1zM23.7 37.3c-3.5 0-6.3-3.2-6.3-7s2.8-7 6.3-7 6.4 3.2 6.3 7-2.8 7-6.3 7zm23.3 0c-3.5 0-6.3-3.2-6.3-7s2.8-7 6.3-7 6.4 3.2 6.3 7-2.8 7-6.3 7z"})})})})]})]})}return(0,b.jsxs)(b.Fragment,{children:[al?(0,b.jsx)("button",{type:"button",className:"workspace-sidebar__backdrop",onClick:S,"aria-label":"Close sidebar"}):null,(0,b.jsxs)("aside",{id:"workspace-sidebar",className:`workspace-sidebar${al?" workspace-sidebar--drawer":""}${al&&am?" workspace-sidebar--drawer-phone":""}`,"aria-label":"Workspace sidebar","aria-busy":i?"true":void 0,"aria-modal":al?"true":void 0,role:al?"dialog":void 0,style:!al&&ae?{width:`${ae}px`,minWidth:`${ae}px`}:void 0,children:[(0,b.jsxs)("div",{className:"workspace-sidebar__brand",children:[(0,b.jsx)("div",{className:"workspace-sidebar__brand-content",children:(0,b.jsx)(M,{})}),S&&(0,b.jsx)("button",{type:"button",onClick:S,"aria-label":"Hide chats",title:"Hide chats",className:"workspace-sidebar__brand-toggle ml-auto inline-flex h-7 w-7 items-center justify-center rounded-md text-[var(--app-shell-soft-text)] transition-all hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]",children:(0,b.jsx)(j,{className:"h-4 w-4",strokeWidth:1.75})})]}),(0,b.jsxs)("div",{className:"workspace-sidebar__content",children:[(0,b.jsx)(O,{projects:a7,activeProjectId:ac,onSelectProject:a=>{ab?.(a),a4()},onCreateProject:()=>{aE.resetForm(),aD(null),aB({})}}),(()=>{if(!a8)return null;let a=a5.filter(a=>a8.thread_ids?.includes(a.id)),c=a8.thread_ids?.find(a=>a6.has(a))??a8.thread_ids?.[0]??a[0]?.id??null,d=a8.id===ac,i=d&&"home"===ad,j=d&&"objectives"===ad,k=d&&"automations"===ad,l=d&&"terminal"===ad,m=d&&"thread"===ad&&c===g,u=d&&"teams"===ad,v=d&&"folders"===ad,x=d&&"env-vars"===ad,y=d&&"notifications"===ad,A=aP[a8.id],B=ba.objectives||ba.scheduledTasks,D=ba.teams||ba.folders||ba.envVars||ba.notifications;return(0,b.jsxs)("nav",{className:"workspace-sidebar__section",children:[(0,b.jsx)("div",{className:"px-2 mt-2 mb-3",children:(0,b.jsx)("div",{className:"workspace-sidebar__workspace-item",children:(0,b.jsxs)(w.default,{href:`/projects/${a8.slug}`,onClick:a4,className:`workspace-sidebar__nav-item ${i?"workspace-sidebar__nav-item--active":""}`,"aria-current":i?"page":void 0,children:[(0,b.jsx)(q,{size:14,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-sm",children:"Home"})]})})}),B&&(0,b.jsxs)("div",{className:"mb-3",children:[(0,b.jsx)("div",{className:"workspace-sidebar__section-header",children:(0,b.jsx)("p",{className:"workspace-sidebar__section-label",children:"Automation"})}),(0,b.jsxs)("div",{className:"px-2 flex flex-col gap-0.5",children:[ba.objectives&&(0,b.jsx)("div",{className:"workspace-sidebar__workspace-item",children:(0,b.jsxs)(w.default,{href:`/projects/${a8.slug}/objectives`,onClick:a4,className:`workspace-sidebar__nav-item ${j?"workspace-sidebar__nav-item--active":""}`,"aria-current":j?"page":void 0,children:[(0,b.jsx)(n.Target,{size:14,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-sm",children:"Objectives"}),ba.objectivesIsNew&&(0,b.jsx)("span",{className:"ml-auto inline-flex items-center rounded-full bg-indigo-500/15 px-1.5 py-0.5 text-[9px] font-bold uppercase tracking-wider text-indigo-500 animate-pulse",children:"NEW"}),!ba.objectivesIsNew&&A?.objectives.length>0&&(0,b.jsx)("span",{className:"inline-flex items-center -space-x-1 ml-auto shrink-0",children:A.objectives.slice(0,3).map(a=>{let c=e.find(b=>b.id===a.agentId);return(0,b.jsxs)("span",{className:"relative inline-block",title:c?.name,children:[(0,b.jsx)("img",{src:(0,z.agentAvatarUrl)(c?.id??a.agentId,16,a.color),alt:c?.name??"",className:"h-3.5 w-3.5 rounded-full ring-[1.5px] ring-[var(--app-shell-pane)]"}),(0,b.jsx)("span",{className:"absolute -bottom-px -right-px h-1.5 w-1.5 rounded-full bg-green-500 ring-[1px] ring-[var(--app-shell-pane)]"})]},a.agentId)})})]})}),ba.scheduledTasks&&(0,b.jsx)("div",{className:"workspace-sidebar__workspace-item",children:(0,b.jsxs)(w.default,{href:`/projects/${a8.slug}/automations`,onClick:a4,className:`workspace-sidebar__nav-item ${k?"workspace-sidebar__nav-item--active":""}`,"aria-current":k?"page":void 0,children:[(0,b.jsx)(f.Zap,{size:14,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-sm",children:"Scheduled Jobs"})]})})]})]}),ba.tracking&&(0,b.jsxs)("div",{className:"mb-3",children:[(0,b.jsx)("div",{className:"workspace-sidebar__section-header",children:(0,b.jsx)("p",{className:"workspace-sidebar__section-label",children:"Task Tracking"})}),(0,b.jsx)("div",{className:"px-2 flex flex-col gap-0.5",children:(0,b.jsx)(J,{projectSlug:a8.slug,trackerConnections:ai,activeTrackerType:null,isTrackingActive:d&&("linear"===ad||"tracking"===ad),onLinkClick:a4})})]}),(0,b.jsxs)("div",{className:"mb-3",children:[(0,b.jsx)("div",{className:"workspace-sidebar__section-header",children:(0,b.jsx)("p",{className:"workspace-sidebar__section-label",children:"Tools"})}),(0,b.jsxs)("div",{className:"px-2 flex flex-col gap-0.5",children:[(0,b.jsx)("div",{className:"workspace-sidebar__workspace-item",children:(0,b.jsxs)(w.default,{href:`/projects/${a8.slug}/terminal`,onClick:a4,className:`workspace-sidebar__nav-item ${l?"workspace-sidebar__nav-item--active":""}`,"aria-current":l?"page":void 0,children:[(0,b.jsx)(s.TerminalSquare,{size:14,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-sm",children:"Terminal"})]})}),(0,b.jsx)("div",{className:"workspace-sidebar__workspace-item",children:c?(0,b.jsxs)("button",{type:"button",className:`workspace-sidebar__nav-item ${m?"workspace-sidebar__nav-item--active":""}`,onClick:()=>{C(c),a4()},"aria-current":m?"page":void 0,children:[(0,b.jsx)(r.MessageSquare,{size:14,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-sm",children:"Chat"}),A?.chat.length>0&&(0,b.jsx)("span",{className:"inline-flex items-center -space-x-1 ml-auto shrink-0",children:A.chat.slice(0,3).map(a=>{let c=e.find(b=>b.id===a.agentId);return(0,b.jsxs)("span",{className:"relative inline-block",title:c?.name,children:[(0,b.jsx)("img",{src:(0,z.agentAvatarUrl)(c?.id??a.agentId,16,a.color),alt:c?.name??"",className:"h-3.5 w-3.5 rounded-full ring-[1.5px] ring-[var(--app-shell-pane)]"}),(0,b.jsx)("span",{className:"absolute -bottom-px -right-px h-1.5 w-1.5 rounded-full bg-green-500 ring-[1px] ring-[var(--app-shell-pane)]"})]},a.agentId)})})]}):(0,b.jsxs)(w.default,{href:`/projects/${a8.slug}/thread`,onClick:a4,className:`workspace-sidebar__nav-item ${m?"workspace-sidebar__nav-item--active":""}`,"aria-current":m?"page":void 0,children:[(0,b.jsx)(r.MessageSquare,{size:14,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-sm",children:"Chat"})]})})]})]}),D&&(0,b.jsxs)("div",{className:"mb-3",children:[(0,b.jsx)("div",{className:"workspace-sidebar__section-header",children:(0,b.jsx)("p",{className:"workspace-sidebar__section-label",children:"Settings"})}),(0,b.jsxs)("div",{className:"px-2 flex flex-col gap-0.5",children:[ba.teams&&(0,b.jsx)("div",{className:"workspace-sidebar__workspace-item",children:(0,b.jsxs)(w.default,{href:`/projects/${a8.slug}/teams`,onClick:a4,className:`workspace-sidebar__nav-item ${u?"workspace-sidebar__nav-item--active":""}`,"aria-current":u?"page":void 0,children:[(0,b.jsx)(p.Users,{size:14,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-sm",children:"Teams"})]})}),ba.folders&&(0,b.jsx)("div",{className:"workspace-sidebar__workspace-item",children:(0,b.jsxs)(w.default,{href:`/projects/${a8.slug}/folders`,onClick:a4,className:`workspace-sidebar__nav-item ${v?"workspace-sidebar__nav-item--active":""}`,"aria-current":v?"page":void 0,children:[(0,b.jsx)(h.FolderGit2,{size:14,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-sm",children:"Workspace Map"})]})}),ba.envVars&&(0,b.jsx)("div",{className:"workspace-sidebar__workspace-item",children:(0,b.jsxs)(w.default,{href:`/projects/${a8.slug}/env-vars`,onClick:a4,className:`workspace-sidebar__nav-item ${x?"workspace-sidebar__nav-item--active":""}`,"aria-current":x?"page":void 0,children:[(0,b.jsx)(t,{size:14,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-sm",children:"Environment Variables"})]})}),ba.notifications&&(0,b.jsx)("div",{className:"workspace-sidebar__workspace-item",children:(0,b.jsxs)(w.default,{href:`/projects/${a8.slug}/notifications`,onClick:a4,className:`workspace-sidebar__nav-item ${y?"workspace-sidebar__nav-item--active":""}`,"aria-current":y?"page":void 0,children:[(0,b.jsx)(o.Bell,{size:14,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-sm",children:"Notifications"})]})})]})]})]})})()]}),(0,b.jsxs)("div",{className:"mt-auto px-3 pb-3 flex flex-col gap-2",children:[an&&a8&&(0,b.jsxs)(w.default,{href:`/projects/${a8.slug}/terminal?cmd=${encodeURIComponent("agx update && agx chat start")}`,className:"flex items-center justify-center gap-2 w-full py-2 rounded-lg text-sm font-medium transition-colors text-[var(--foreground)] bg-[var(--app-shell-subtle)] hover:bg-[var(--app-shell-border)]",children:[(0,b.jsx)(u,{size:14}),"Update available"]}),(0,b.jsxs)("a",{href:"https://discord.gg/G9afUYKKY3",target:"_blank",rel:"noopener noreferrer",className:"flex items-center justify-center gap-2 w-full py-2 rounded-lg text-white text-sm font-medium transition-colors",style:{backgroundColor:"#5865F2"},onMouseEnter:a=>a.currentTarget.style.backgroundColor="#4752C4",onMouseLeave:a=>a.currentTarget.style.backgroundColor="#5865F2",children:[(0,b.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 71 55",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",children:(0,b.jsx)("path",{d:"M60.1 4.9A58.5 58.5 0 0045.4.2a.2.2 0 00-.2.1 40.8 40.8 0 00-1.8 3.7 54 54 0 00-16.2 0A37.4 37.4 0 0025.4.3a.2.2 0 00-.2-.1A58.4 58.4 0 0010.5 4.9a.2.2 0 00-.1.1C1.5 18.7-.9 32.2.3 45.5v.1a58.8 58.8 0 0017.7 9a.2.2 0 00.3-.1 42 42 0 003.6-5.9.2.2 0 00-.1-.3 38.8 38.8 0 01-5.5-2.6.2.2 0 01 0-.4l1.1-.9a.2.2 0 01.2 0 42 42 0 0035.6 0 .2.2 0 01.2 0l1.1.9a.2.2 0 010 .4 36.4 36.4 0 01-5.5 2.6.2.2 0 00-.1.3 47.2 47.2 0 003.6 5.9.2.2 0 00.3.1 58.6 58.6 0 0017.7-9v-.1c1.4-15.2-2.4-28.4-10-40.1a.2.2 0 00-.1-.1zM23.7 37.3c-3.5 0-6.3-3.2-6.3-7s2.8-7 6.3-7 6.4 3.2 6.3 7-2.8 7-6.3 7zm23.3 0c-3.5 0-6.3-3.2-6.3-7s2.8-7 6.3-7 6.4 3.2 6.3 7-2.8 7-6.3 7z"})}),"Join Discord"]})]}),aq&&aN&&(0,d.createPortal)((0,b.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/30 p-4",onClick:()=>{aN.isSaving||aO(null)},children:(0,b.jsxs)("div",{className:"w-full max-w-lg rounded-2xl border border-[var(--border)] bg-[var(--card-bg)] shadow-2xl",onClick:a=>a.stopPropagation(),children:[(0,b.jsxs)("div",{className:"flex items-start justify-between gap-4 border-b border-[var(--border)] px-5 py-4",children:[(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("p",{className:"text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:aN.projectName}),(0,b.jsx)("h3",{className:"truncate text-base font-semibold text-[var(--foreground)]",children:aN.repoId?aN.name||"Folder":"Add Folder"})]}),(0,b.jsx)("button",{type:"button",className:"rounded-md p-1 text-[var(--muted-foreground)] transition-colors hover:bg-[var(--muted)] hover:text-[var(--muted-foreground)]",onClick:()=>{aN.isSaving||aO(null)},"aria-label":"Close folder details",disabled:aN.isSaving,children:(0,b.jsx)(m.X,{size:16})})]}),(0,b.jsxs)("div",{className:"space-y-4 px-5 py-4",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"mb-1 text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:"Name"}),(0,b.jsx)("input",{value:aN.name,onChange:a=>aO(b=>b?{...b,name:a.target.value,error:null}:b),className:"w-full rounded-lg border border-[var(--border)] bg-[var(--app-shell-subtle)] px-3 py-2 text-sm text-[var(--foreground)]",disabled:aN.isSaving,placeholder:"e.g. Frontend, API Docs, Design System"})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"mb-1 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:aN.path,onChange:a=>aO(b=>b?{...b,path:a.target.value,error:null}:b),className:"flex-1 rounded-lg border border-[var(--border)] bg-[var(--app-shell-subtle)] px-3 py-2 font-mono text-xs text-[var(--foreground)]",disabled:aN.isSaving,placeholder:"Local path to folder"}),(0,b.jsx)("button",{type:"button",className:"rounded-lg border border-[var(--border)] bg-[var(--app-shell-subtle)] px-3 py-2 text-xs font-medium text-[var(--muted-foreground)] transition-colors hover:bg-[var(--muted)]",disabled:aN.isSaving,onClick:async()=>{try{let a=await fetch("/api/filesystem/pick-folder",{method:"POST"}),b=await a.json();b.path&&aO(a=>a?{...a,path:b.path,error:null}:a)}catch{}},children:"Browse"})]})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"mb-1 text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:"Notes"}),(0,b.jsx)("textarea",{value:aN.notes,onChange:a=>aO(b=>b?{...b,notes:a.target.value,error:null}:b),className:"min-h-28 w-full rounded-lg border border-[var(--border)] bg-[var(--app-shell-subtle)] px-3 py-3 text-sm text-[var(--foreground)] whitespace-pre-wrap",disabled:aN.isSaving,placeholder:"Coding conventions, deploy steps, doc standards, ownership rules..."})]}),aN.repoId?(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"mb-1 text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:"Living Note"}),aN.isLoadingKnowledge?(0,b.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"Loading note…"}):aN.generatedKnowledge.length>0?(0,b.jsx)("div",{className:"space-y-2",children:aN.generatedKnowledge.slice(0,5).map(a=>(0,b.jsxs)("div",{className:"rounded-lg border border-[var(--border)] bg-[var(--app-shell-subtle)] px-3 py-2 text-sm text-[var(--foreground)]",children:[(0,b.jsx)("div",{children:a.content}),a.created_at?(0,b.jsx)("div",{className:"mt-1 text-[11px] text-[var(--muted-foreground)]",children:new Date(a.created_at).toLocaleString()}):null]},a.id))}):(0,b.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"No note yet."})]}):null,aN.error?(0,b.jsx)("p",{className:"text-xs text-red-600",children:aN.error}):null,(0,b.jsxs)("div",{className:"flex justify-end gap-2 border-t border-[var(--border)] pt-4",children:[(0,b.jsx)("button",{type:"button",className:"rounded-lg px-3 py-2 text-sm text-[var(--muted-foreground)] transition-colors hover:bg-[var(--muted)]",onClick:()=>aO(null),disabled:aN.isSaving,children:"Cancel"}),(0,b.jsx)("button",{type:"button",className:"rounded-lg bg-[var(--foreground)] px-3 py-2 text-sm font-medium text-[var(--card-bg)] transition-colors hover:bg-[var(--foreground)] disabled:cursor-not-allowed disabled:opacity-60",disabled:aN.isSaving||!W,onClick:async()=>{let a=U.find(a=>a.id===aN.projectId);if(!a)return void aO(a=>a?{...a,error:"Project not found."}:a);let b=aN.name.trim(),c=aN.path.trim();if(!b)return void aO(a=>a?{...a,error:"Folder name is required."}:a);if(!c)return void aO(a=>a?{...a,error:"Folder path is required."}:a);aO(a=>a?{...a,isSaving:!0,error:null}:a);try{let d=aN.repoId?a.repos.map(a=>a.id===aN.repoId?{id:a.id,name:b,path:c,git_url:aN.gitUrl.trim()||void 0,notes:aN.notes.trim()||void 0}:{id:a.id,name:a.name,path:a.path,git_url:a.git_url,notes:a.notes}):[...a.repos.map(a=>({id:a.id,name:a.name,path:a.path,git_url:a.git_url,notes:a.notes})),{name:b,path:c,git_url:aN.gitUrl.trim()||void 0,notes:aN.notes.trim()||void 0}];await W?.(a.id,{repos:d}),aO(null)}catch(a){aO(b=>b?{...b,isSaving:!1,error:a instanceof Error?a.message:"Failed to save folder details."}:b)}},children:aN.isSaving?"Saving...":aN.repoId?"Save":"Add Folder"})]})]})]})}),document.body),aq&&au&&!ay&&(0,d.createPortal)((0,b.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/30",onClick:()=>av(null),children:(0,b.jsxs)("div",{className:"bg-[var(--card-bg)] rounded-xl shadow-xl border border-[var(--border)] w-80 max-h-[70vh] flex flex-col",onClick:a=>a.stopPropagation(),children:[(0,b.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-[var(--border)]",children:[(0,b.jsxs)("h3",{className:"text-sm font-medium text-[var(--foreground)]",children:["Add to ",a_?.name??"project"]}),(0,b.jsx)("button",{type:"button",className:"text-[var(--muted-foreground)] hover:text-[var(--muted-foreground)]",onClick:()=>av(null),children:(0,b.jsx)(m.X,{size:16})})]}),(0,b.jsxs)("div",{className:"overflow-y-auto py-1 flex-1",children:[(0,b.jsxs)("button",{type:"button",className:"w-full flex items-center gap-3 px-4 py-2.5 text-sm text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)] transition-colors border-b border-[var(--border)]",onClick:()=>az(!0),children:[(0,b.jsx)(k.Plus,{size:14,className:"text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"text-xs font-medium",children:"Create new agent"})]}),0===a1.length?(0,b.jsx)("p",{className:"px-4 py-6 text-xs text-[var(--muted-foreground)] text-center",children:"All agents are already in this project"}):a1.map(a=>{let c=aw.has(a.id);return(0,b.jsxs)("button",{type:"button",className:`w-full flex items-center gap-3 px-4 py-2.5 text-sm transition-colors ${c?"bg-[var(--muted)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onClick:()=>{ax(b=>{let c=new Set(b);return c.has(a.id)?c.delete(a.id):c.add(a.id),c})},children:[(0,b.jsx)("div",{className:`w-4 h-4 rounded border flex-shrink-0 flex items-center justify-center ${c?"bg-[var(--foreground)] border-[var(--foreground)]":"border-[var(--border)]"}`,children:c&&(0,b.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",children:(0,b.jsx)("path",{d:"M2 5l2 2 4-4",stroke:"white",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),(0,b.jsx)("img",{src:(0,z.agentAvatarUrl)(a.id,24,a.color),alt:"",className:"w-6 h-6 rounded-full flex-shrink-0"}),(0,b.jsxs)("div",{className:"min-w-0 flex-1 text-left",children:[(0,b.jsx)("div",{className:"truncate font-medium text-xs",children:a.name}),(0,b.jsx)("div",{className:"truncate text-[11px] text-[var(--muted-foreground)]",children:a.model})]})]},a.id)})]}),a1.length>0&&(0,b.jsxs)("div",{className:"px-4 py-3 border-t border-[var(--border)] flex justify-end gap-2",children:[(0,b.jsx)("button",{type:"button",className:"px-3 py-1.5 text-xs text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",onClick:()=>av(null),children:"Cancel"}),(0,b.jsxs)("button",{type:"button",disabled:0===aw.size,className:"px-3 py-1.5 text-xs font-medium text-[var(--card-bg)] bg-[var(--foreground)] rounded-lg hover:bg-[var(--foreground)] disabled:opacity-40 disabled:cursor-not-allowed transition-colors",onClick:()=>{for(let a of aw)Y?.(au.projectId,a);av(null)},children:["Add ",aw.size>0?`(${aw.size})`:""]})]})]})}),document.body),aq&&ay&&(0,d.createPortal)((0,b.jsx)(z.AgentForm,{title:"Create new agent",initial:{name:"",provider:"claude",model:"",identity:"",skills:[],skillBindings:[]},submitLabel:"Create & Add",projects:U?.filter(a=>!a.is_default).map(b=>{let c=(b.thread_ids??[]).map(b=>a.find(a=>a.id===b)?.title?.trim()).filter(Boolean).join(", ")||"No chat";return{id:b.id,name:b.name,label:`${c} › ${b.name}`}}),initialProjectIds:au?[au.projectId]:[],onSubmit:async(a,b)=>{let c=["#D97706","#2563EB","#059669","#DC2626","#7C3AED","#DB2777","#0891B2"],d=c[e.length%c.length],f=a.name.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,""),g=b?.[0],h=await fetch("/api/participants",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:f,name:a.name,provider:a.provider,model:a.model,color:a.color??d,...a.role?{role:a.role}:{},...a.identity?{identity:a.identity}:{},skills:a.skills??[],skillBindings:a.skillBindings??[],...g?{projectId:g}:{}})});if(h.ok){let a=await h.json().catch(()=>({})),c="string"==typeof a?.id&&a.id.trim()?a.id.trim():f;for(let a of(b??[]).slice(1))Y?.(a,c);az(!1),av(null)}},onCancel:()=>{az(!1)}}),document.body),aq&&aF&&(0,d.createPortal)((0,b.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/30",onClick:()=>aG(null),children:(0,b.jsxs)("div",{className:"bg-[var(--card-bg)] rounded-xl shadow-xl border border-[var(--border)] w-80 flex flex-col",onClick:a=>a.stopPropagation(),children:[(0,b.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-[var(--border)]",children:[(0,b.jsx)("h3",{className:"text-sm font-medium text-[var(--foreground)]",children:aF.title}),(0,b.jsx)("button",{type:"button",className:"text-[var(--muted-foreground)] hover:text-[var(--muted-foreground)]",onClick:()=>aG(null),children:(0,b.jsx)(m.X,{size:16})})]}),(0,b.jsxs)("form",{className:"px-4 py-4 flex flex-col gap-3",onSubmit:a=>{a.preventDefault();let b=new FormData(a.currentTarget),c=b.get("value")?.trim();c&&(aF.onSubmit(c),aG(null))},children:[(0,b.jsx)("input",{ref:aH,name:"value",type:"text",defaultValue:aF.defaultValue,placeholder:aF.placeholder,className:"w-full px-3 py-2 text-sm border border-[var(--border)] rounded-lg outline-none focus:border-[var(--border)] focus:ring-1 focus:ring-[var(--border)] transition-all"}),(0,b.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,b.jsx)("button",{type:"button",className:"px-3 py-1.5 text-xs text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",onClick:()=>aG(null),children:"Cancel"}),(0,b.jsx)("button",{type:"submit",className:"px-3 py-1.5 text-xs font-medium text-[var(--card-bg)] bg-[var(--foreground)] rounded-lg hover:bg-[var(--foreground)] transition-colors",children:aF.defaultValue?"Save":"Create"})]})]})]})}),document.body),aq&&aI&&(0,d.createPortal)((0,b.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/30",onClick:()=>aJ(null),children:(0,b.jsxs)("div",{className:"bg-[var(--card-bg)] rounded-xl shadow-xl border border-[var(--border)] w-80 flex flex-col",onClick:a=>a.stopPropagation(),children:[(0,b.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-[var(--border)]",children:[(0,b.jsx)("h3",{className:"text-sm font-medium text-[var(--foreground)]",children:aI.title}),(0,b.jsx)("button",{type:"button",className:"text-[var(--muted-foreground)] hover:text-[var(--muted-foreground)]",onClick:()=>aJ(null),children:(0,b.jsx)(m.X,{size:16})})]}),(0,b.jsxs)("div",{className:"px-4 py-4 flex flex-col gap-4",children:[(0,b.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:aI.message}),(0,b.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,b.jsx)("button",{type:"button",className:"px-3 py-1.5 text-xs text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",onClick:()=>aJ(null),children:"Cancel"}),(0,b.jsx)("button",{type:"button",className:"px-3 py-1.5 text-xs font-medium text-white bg-red-600 rounded-lg hover:bg-red-700 transition-colors",onClick:()=>{aI.onConfirm(),aJ(null)},children:"Delete"})]})]})]})}),document.body),aq&&(aA||aC)&&(0,d.createPortal)((0,b.jsx)(A.default,{isOpen:!0,onClose:()=>{aE.resetForm(),aB(null),aD(null)},onSubmit:()=>void a$(),editingProject:aC,form:aE.form,repos:aE.repos,isSubmitting:aE.isSubmitting,formError:aE.formError,onFieldChange:(a,b)=>aE.setForm(c=>({...c,[a]:b})),onRepoChange:aE.handleRepoChange,onAddRepo:aE.addRepo,onRemoveRepo:aE.removeRepo}),document.body),aq&&aM&&(0,d.createPortal)((aj=U.filter(a=>a.agents.some(a=>a.agent_id===aM.id)),ak=U.filter(a=>!a.agents.some(a=>a.agent_id===aM.id)),(0,b.jsx)(z.AgentForm,{title:"Edit agent",initial:{name:aM.name,role:aM.role||"",provider:aM.provider,model:aM.model||"",identity:aM.identity||"",color:aM.color,skills:aM.skills||[],skillBindings:aM.skillBindings||[]},agentId:aM.id,submitLabel:"Save",projectMemberships:{current:aj.map(a=>({id:a.id,name:a.name,is_default:!!a.is_default})),available:ak.map(a=>({id:a.id,name:a.name}))},onAddToProject:Y?a=>Y(a,aM.id):void 0,onRemoveFromProject:Z?a=>Z(a,aM.id):void 0,onSubmit:async a=>{aa&&await aa({...aM,name:a.name,role:a.role||void 0,provider:a.provider,model:a.model,color:a.color??aM.color,...a.identity?{identity:a.identity}:{},skills:a.skills??[],skillBindings:a.skillBindings??[]}),aL(null)},onCancel:()=>aL(null)})),document.body),af&&!al&&(0,b.jsx)("div",{className:"absolute right-0 top-0 bottom-0 z-20 w-1 cursor-col-resize group",onMouseDown:a=>{a.preventDefault(),ao.current=!0;let b=a.clientX,c=ae??368;document.body.style.cursor="col-resize",document.body.style.userSelect="none";let d=a=>{af(Math.max(200,Math.min(600,c+a.clientX-b)))},e=()=>{ao.current=!1,document.body.style.cursor="",document.body.style.userSelect="",window.removeEventListener("mousemove",d),window.removeEventListener("mouseup",e)};window.addEventListener("mousemove",d),window.addEventListener("mouseup",e)},children:(0,b.jsx)("div",{className:"absolute inset-y-0 right-0 w-1 transition-colors hover:bg-[var(--primary)]/40 group-hover:bg-[var(--primary)]/40"})})]})]})}a.s(["WorkspaceSidebar",()=>P],550158)},111013,a=>{"use strict";var b=a.i(786220),c=a.i(516909),d=a.i(870630);function e(){}let f=a=>[...a].sort((a,b)=>b.createdAt-a.createdAt);function g(a){let g=(0,c.useSearchParams)(),h=(a||g.get("thread")||"").trim()||null,i=(0,b.useRef)(!0),[j,k]=(0,b.useState)([]),[l,m]=(0,b.useState)(null),[n,o]=(0,b.useState)(!0),[p,q]=(0,b.useState)(!0),[r,s]=(0,b.useState)(!1),[t,u]=(0,b.useState)(null),[v,w]=(0,b.useState)(null),x=(0,b.useRef)(!1),y=(0,b.useCallback)(a=>{m(a)},[]);(0,b.useEffect)(()=>(i.current=!0,()=>{i.current=!1}),[]),(0,b.useEffect)(()=>{let a=!1;return(async()=>{try{var b;let c,g=await d.threadService.listThreads();if(h&&!g.some(a=>a.id===h)){let a=await d.threadService.createThread({id:h});g=f([...g.filter(b=>b.id!==a.id),a])}if(a||!i.current)return;k(g);let j=h||null,{threadId:l,shouldClearSavedId:n,restoredFromStorage:o}=(b=g,c=b[0]?.id??null,j?b.some(a=>a.id===j)?{threadId:j,shouldClearSavedId:!1,restoredFromStorage:!0}:{threadId:c,shouldClearSavedId:!0,restoredFromStorage:!1}:{threadId:c,shouldClearSavedId:!1,restoredFromStorage:!1});n&&e(),x.current||(x.current=!0),o&&l?y(l):l?m(a=>a??l):m(null)}catch(a){console.error("Failed to load threads",a)}finally{i.current&&(o(!1),q(!1))}})(),()=>{a=!0}},[h,y]),(0,b.useEffect)(()=>{x.current&&(l||e())},[l]);let z=(0,b.useCallback)(async a=>{s(!0);try{let b=await d.threadService.createThread(a);if(!i.current)return b;return k(a=>f([...a.filter(a=>a.id!==b.id),b])),m(b.id),b}catch(a){throw console.error("Failed to create thread",a),a}finally{i.current&&s(!1)}},[]),A=(0,b.useCallback)(async a=>{if(a){u(a);try{if(await d.threadService.deleteThread(a),!i.current)return;let b=[];k(c=>b=f(c.filter(b=>b.id!==a))),m(c=>c===a?b[0]?.id??null:c)}catch(a){throw console.error("Failed to delete thread",a),a}finally{i.current&&u(null)}}},[]),B=(0,b.useCallback)(async(a,b)=>{let c=a.trim(),e=b.trim();if(c&&e){w(c);try{let a=await d.threadService.renameThread(c,e);if(!a||!i.current)return;k(b=>f(b.map(b=>b.id===a.id?a:b)))}catch(a){throw console.error("Failed to rename thread",a),a}finally{i.current&&w(a=>a===c?null:a)}}},[]),C=(0,b.useCallback)(async(a,b)=>{if(a)try{let c=await d.threadService.saveThreadMessages(a,b);if(!c||!i.current)return;k(a=>f(a.map(a=>a.id===c.id?c:a)))}catch(a){console.error("Failed to update thread messages",a)}},[]),D=(0,b.useCallback)(async(a,b)=>{if(a)try{let c=await d.threadService.updateThreadStatus(a,b);if(!c||!i.current)return;k(a=>f(a.map(a=>a.id===c.id?c:a)))}catch(a){console.error("Failed to update thread status",a)}},[]),E=(0,b.useCallback)(async(a,b)=>{if(a)try{let c=await d.threadService.updateThreadOutcomeNote(a,b);if(!c||!i.current)return;k(a=>f(a.map(a=>a.id===c.id?c:a)))}catch(a){console.error("Failed to update thread outcome note",a)}},[]),F=(0,b.useCallback)(async(a,b,c)=>{if(a&&b)try{let e=await d.threadService.updateMessageThreadStatus(a,b,c);if(!e||!i.current)return;k(a=>f(a.map(a=>a.id===e.id?e:a)))}catch(a){console.error("Failed to update message thread status",a)}},[]),G=(0,b.useCallback)(async(a,b,c)=>{if(a&&b)try{let e=await d.threadService.updateMessageOutcomeNote(a,b,c);if(!e||!i.current)return;k(a=>f(a.map(a=>a.id===e.id?e:a)))}catch(a){console.error("Failed to update message outcome note",a)}},[]),H=null!==l&&t===l;return{threads:j,activeThreadId:l,selectThread:y,createThread:z,deleteThread:A,isLoading:n,isRestoringActiveThread:p,isCreating:r,deletingThreadId:t,renamingThreadId:v,isDeletingActiveThread:H,updateThreadMessages:C,renameThread:B,updateThreadStatus:D,updateThreadOutcomeNote:E,updateMessageThreadStatus:F,updateMessageOutcomeNote:G}}a.s(["useThreadState",()=>g],111013)},455106,a=>{"use strict";let b={threadSidebarVisible:!1};function c(){return({...b}).threadSidebarVisible}function d(a){}a.s(["loadWorkspaceSidebarVisible",()=>c,"persistWorkspaceSidebarVisible",()=>d])}];
|
|
1
|
+
module.exports=[970393,a=>{"use strict";let b=(0,a.i(831709).default)("panel-left-open",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m14 9 3 3-3 3",key:"8010ee"}]]);a.s(["PanelLeftOpen",()=>b],970393)},508869,a=>{"use strict";let b=(0,a.i(831709).default)("sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]);a.s(["Sun",()=>b],508869)},523321,a=>{"use strict";let b=(0,a.i(831709).default)("moon",[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]]);a.s(["Moon",()=>b],523321)},166621,a=>{"use strict";var b=a.i(308316),c=a.i(786220),d=a.i(850985),e=a.i(639211);function f(){let[a,f]=(0,c.useState)("unknown"),[g,h]=(0,c.useState)([]),[i,j]=(0,c.useState)(""),[k,l]=(0,c.useState)(!1),m=(0,c.useCallback)(async()=>{try{let a=await fetch("/api/status");if(!a.ok)return void f("unknown");let b=await a.json();f("ok"===b.status?"ok":"degraded");let c=b.services.filter(a=>"agx-chat"===a.name||"agx-cloud"===a.name);h(c),j(new Date().toLocaleTimeString())}catch{f("unknown"),h([])}},[]);return(0,c.useEffect)(()=>{m();let a=setInterval(m,e.UI_POLL_SYSTEM_STATUS_MS);return()=>clearInterval(a)},[m]),(0,b.jsxs)("div",{className:"relative",onMouseEnter:()=>l(!0),onMouseLeave:()=>l(!1),children:[(0,b.jsx)(d.default,{href:"/status",className:"inline-flex h-8 w-8 items-center justify-center rounded-md border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] transition-all hover:bg-[var(--app-shell-subtle)] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--ring)]",title:"System status",children:(0,b.jsx)("span",{className:`h-2.5 w-2.5 rounded-full ${"ok"===a?"bg-emerald-400":"degraded"===a?"bg-amber-400":"bg-[var(--app-shell-muted)]"} ${"degraded"===a?"animate-pulse":""}`})}),k&&(0,b.jsxs)("div",{className:"absolute top-full right-0 z-50 mt-1.5 w-52 rounded-lg border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] p-3 text-xs shadow-lg",children:[g.length>0?(0,b.jsx)("ul",{className:"space-y-1.5",children:g.map(a=>(0,b.jsxs)("li",{className:"flex items-center justify-between",children:[(0,b.jsx)("span",{className:"font-medium text-[var(--foreground)]",children:a.name}),(0,b.jsx)("span",{className:"ok"===a.status?"text-emerald-600":"error"===a.status?"text-red-500":"text-[var(--muted-foreground)]",children:"ok"===a.status?"Healthy":"error"===a.status?a.detail||"Error":"Unavailable"})]},a.name))}):(0,b.jsx)("p",{className:"text-[var(--app-shell-soft-text)]",children:"Checking..."}),i&&(0,b.jsxs)("p",{className:"mt-2 border-t border-[var(--app-shell-border)] pt-1.5 text-[var(--app-shell-soft-text)]",children:["Last check: ",i]})]})]})}a.s(["StatusIndicator",()=>f])},550158,a=>{"use strict";var b=a.i(308316),c=a.i(786220),d=a.i(197180),e=a.i(811760),f=a.i(66456),g=a.i(157633),h=a.i(736868),i=a.i(831709);let j=(0,i.default)("panel-left-close",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}],["path",{d:"m16 15-3-3 3-3",key:"14y99z"}]]);var k=a.i(353532),l=a.i(542341),m=a.i(824179),n=a.i(489461),o=a.i(97723),p=a.i(985339);let q=(0,i.default)("house",[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"r6nss1"}]]);var r=a.i(737313),s=a.i(144462);let t=(0,i.default)("key-round",[["path",{d:"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z",key:"1s6t7t"}],["circle",{cx:"16.5",cy:"7.5",r:".5",fill:"currentColor",key:"w0ekpg"}]]),u=(0,i.default)("circle-arrow-up",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m16 12-4-4-4 4",key:"177agl"}],["path",{d:"M12 16V8",key:"1sbj14"}]]),v=(0,i.default)("git-pull-request",[["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M13 6h3a2 2 0 0 1 2 2v7",key:"1yeb86"}],["line",{x1:"6",x2:"6",y1:"9",y2:"21",key:"rroup"}]]);var w=a.i(850985),x=a.i(529889),y=a.i(639211),z=a.i(8e4),A=a.i(188834),B=a.i(365370),C=a.i(769677),D=a.i(599086),E=a.i(756490);let F=(0,i.default)("book",[["path",{d:"M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H19a1 1 0 0 1 1 1v18a1 1 0 0 1-1 1H6.5a1 1 0 0 1 0-5H20",key:"k3hazp"}]]),G=(0,i.default)("lock",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]]);var H=a.i(392045);let I={linear:"Linear",jira:"Jira",intercom:"Intercom",freshdesk:"Freshdesk",github:"GitHub"};function J(a){return I[a]??a.charAt(0).toUpperCase()+a.slice(1)}function K({projectSlug:a,trackerConnections:d,activeTrackerType:e,isTrackingActive:f,onLinkClick:g}){let h=[...d].sort((a,b)=>new Date(a.connectedAt).getTime()-new Date(b.connectedAt).getTime()),i=h.filter(a=>a.connected),j=h.filter(a=>!a.connected),l=i.some(a=>"github"===a.type),[m,n]=(0,c.useState)([]),[o,p]=(0,c.useState)(!0);return(0,c.useEffect)(()=>{if(!l)return void n([]);let a=!1;return fetch("/api/github/repos",{cache:"no-store"}).then(a=>a.ok?a.json():{repos:[]}).then(b=>{a||n(b.repos??[])}).catch(()=>{a||n([])}),()=>{a=!0}},[l]),(0,b.jsxs)(b.Fragment,{children:[0===i.length&&0===j.length&&(0,b.jsx)("div",{className:"workspace-sidebar__workspace-item",children:(0,b.jsxs)(w.default,{href:`/projects/${a}/tracking/connect`,onClick:g,className:`workspace-sidebar__nav-item ${f?"workspace-sidebar__nav-item--active":""}`,children:[(0,b.jsx)(k.Plus,{size:14,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-sm text-[var(--muted-foreground)]",children:"Connect Tracker"})]})}),i.map(c=>{let d=f&&e===c.type;return(0,b.jsxs)("div",{className:"workspace-sidebar__workspace-item",children:[(0,b.jsxs)("div",{className:"flex items-center",children:[(0,b.jsxs)(w.default,{href:`/projects/${a}/tracking/${c.type}`,onClick:g,className:`workspace-sidebar__nav-item flex-1 ${d?"workspace-sidebar__nav-item--active":""}`,"aria-current":d?"page":void 0,children:[(0,b.jsx)(H.TrackerIcon,{trackerType:c.type,className:"flex-shrink-0 h-3.5 w-3.5 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-sm",children:J(c.type)})]}),"github"===c.type&&m.length>0&&(0,b.jsx)("button",{type:"button","aria-label":o?"Collapse GitHub repos":"Expand GitHub repos","aria-expanded":o,onClick:()=>p(a=>!a),className:"p-1 rounded hover:bg-[var(--item-hover-bg)] text-[var(--muted-foreground)]",children:(0,b.jsx)(E.ChevronRight,{size:12,className:`transition-transform ${o?"rotate-90":""}`})})]}),"github"===c.type&&o&&m.length>0&&(0,b.jsx)("div",{className:"flex flex-col gap-0.5 mt-0.5 pl-5",children:m.map(c=>(0,b.jsxs)(w.default,{href:`/projects/${a}/tracking/github?repo=${encodeURIComponent(c.id)}`,onClick:g,className:"workspace-sidebar__nav-item",title:c.id,children:[c.private?(0,b.jsx)(G,{size:12,className:"flex-shrink-0 text-[var(--muted-foreground)]"}):(0,b.jsx)(F,{size:12,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-xs text-[var(--muted-foreground)] truncate",children:c.name})]},c.id))})]},c.type)}),j.map(c=>(0,b.jsx)("div",{className:"workspace-sidebar__workspace-item",children:(0,b.jsxs)(w.default,{href:`/projects/${a}/tracking/${c.type}`,onClick:g,className:"workspace-sidebar__nav-item",children:[(0,b.jsx)(H.TrackerIcon,{trackerType:c.type,className:"flex-shrink-0 h-3.5 w-3.5 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-sm",children:J(c.type)}),(0,b.jsx)("span",{className:"ml-auto shrink-0",title:"Connection issue — click to reconnect",children:(0,b.jsx)(D.AlertTriangle,{size:12,className:"text-yellow-500"})})]})},c.type)),(i.length>0||j.length>0)&&(0,b.jsx)("div",{className:"workspace-sidebar__workspace-item",children:(0,b.jsxs)(w.default,{href:`/projects/${a}/tracking/connect`,onClick:g,className:"workspace-sidebar__nav-item",children:[(0,b.jsx)(k.Plus,{size:14,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-sm text-[var(--muted-foreground)]",children:"Connect"})]})})]})}var L=a.i(70014),M=a.i(227444);function N({compact:a=!1}){return(0,b.jsxs)("span",{className:`workspace-sidebar__brand-logo${a?" workspace-sidebar__brand-logo--compact":""}`,"aria-hidden":"true",children:[(0,b.jsx)("img",{src:"/logo_dark.png",alt:"AGX",className:"block dark:hidden",style:{height:28}}),(0,b.jsx)("img",{src:"/logo_light.png",alt:"AGX",className:"hidden dark:block",style:{height:28}})]})}function O({label:a,children:e}){let f=(0,c.useRef)(null),[g,h]=(0,c.useState)(null);return(0,b.jsxs)("div",{ref:f,onMouseEnter:()=>{let a=f.current?.firstElementChild??f.current;if(!a)return;let b=a.getBoundingClientRect();h({top:b.top+b.height/2,left:b.right+8})},onMouseLeave:()=>h(null),style:{display:"contents"},children:[e,g&&(0,d.createPortal)((0,b.jsx)("div",{className:"workspace-sidebar__rail-tooltip",style:{top:g.top,left:g.left,transform:"translateY(-50%)"},children:a}),document.body)]})}function P({projects:a,activeProjectId:d,onSelectProject:f,onCreateProject:h}){let[i,j]=(0,c.useState)(!1),[n,o]=(0,c.useState)(""),p=(0,c.useRef)(null),q=(0,c.useRef)(null),r=a.find(a=>a.id===d)??a[0],s=n.trim()?a.filter(a=>a.name.toLowerCase().includes(n.toLowerCase())):a;return(0,c.useEffect)(()=>{if(!i)return;let a=a=>{p.current&&!p.current.contains(a.target)&&(j(!1),o(""))};return document.addEventListener("pointerdown",a),()=>document.removeEventListener("pointerdown",a)},[i]),(0,c.useEffect)(()=>{i&&q.current&&q.current.focus()},[i]),(0,b.jsxs)("div",{className:"relative px-3 pt-3 pb-2",ref:p,children:[(0,b.jsxs)("button",{type:"button",onClick:()=>j(!i),className:"flex w-full items-center gap-2 rounded-lg border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] px-2.5 py-2 text-sm text-[var(--foreground)] transition-all hover:border-[var(--app-shell-border-strong)]",children:[(0,b.jsx)(g.Folder,{size:14,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"flex-1 truncate text-left font-medium",children:r?.name??"Select project"}),(0,b.jsx)(e.ChevronDown,{size:14,className:`flex-shrink-0 text-[var(--muted-foreground)] transition-transform ${i?"rotate-180":""}`})]}),i&&(0,b.jsxs)("div",{className:"absolute left-3 right-3 z-50 mt-1 rounded-lg border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] shadow-lg overflow-hidden",children:[(0,b.jsx)("div",{className:"p-2 border-b border-[var(--app-shell-border)]",children:(0,b.jsxs)("div",{className:"flex items-center gap-2 rounded-md border border-[var(--app-shell-border)] bg-[var(--app-shell-subtle)] px-2 py-1.5",children:[(0,b.jsx)(l.Search,{size:12,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("input",{ref:q,type:"text",value:n,onChange:a=>o(a.target.value),placeholder:"Search projects...",className:"flex-1 bg-transparent text-xs text-[var(--foreground)] placeholder:text-[var(--muted-foreground)] outline-none"}),n&&(0,b.jsx)("button",{type:"button",onClick:()=>o(""),className:"text-[var(--muted-foreground)] hover:text-[var(--foreground)]",children:(0,b.jsx)(m.X,{size:10})})]})}),(0,b.jsxs)("div",{className:"max-h-52 overflow-y-auto py-1",children:[s.map(a=>(0,b.jsxs)("button",{type:"button",onClick:()=>{f?.(a.id),j(!1),o("")},className:`flex w-full items-center gap-2 px-3 py-1.5 text-sm transition-colors hover:bg-[var(--app-shell-subtle)] ${a.id===r?.id?"text-[var(--foreground)] font-medium":"text-[var(--muted-foreground)]"}`,children:[(0,b.jsx)(g.Folder,{size:12,className:"flex-shrink-0"}),(0,b.jsx)("span",{className:"truncate",children:a.name})]},a.id)),0===s.length&&(0,b.jsx)("p",{className:"px-3 py-2 text-xs text-[var(--muted-foreground)]",children:"No projects found"})]}),(0,b.jsx)("div",{className:"border-t border-[var(--app-shell-border)] p-1",children:(0,b.jsxs)("button",{type:"button",onClick:()=>{j(!1),o(""),h()},className:"flex w-full items-center gap-2 rounded-md px-2.5 py-1.5 text-xs text-[var(--muted-foreground)] transition-colors hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]",children:[(0,b.jsx)(k.Plus,{size:12}),(0,b.jsx)("span",{children:"New project"})]})})]})]})}function Q({threads:a,participants:e=[],activeThreadId:g,isLoading:i,isCreating:l,onSelectThread:D,onCreateThread:E,onRenameThread:F,onDeleteThread:G,deletingThreadId:H=null,renamingThreadId:I=null,activeParticipantIds:J=[],onToggleParticipantActive:Q,visible:R=!1,isRestoringActiveThread:S=!1,onToggle:T,onSearch:U,projects:V=[],onCreateProject:W,onUpdateProject:X,onDeleteProject:Y,onAddAgentToProject:Z,onRemoveAgentFromProject:$,onAddAgentViaForm:_,onReorderProjectAgents:aa,onUpdateParticipant:ab,onSelectProject:ac,activeProjectId:ad=null,activeProjectView:ae=null,width:af,onWidthChange:ag,onAddTeam:ah,stageShow:ai,trackerConnections:aj=[]}){let ak,al,{isTouchLayout:am,isPhone:an}=(0,x.useInputCapabilities)(),{updateAvailable:ao}=function(){let[a,b]=(0,c.useState)({updateAvailable:!1,latestVersion:null});return(0,c.useEffect)(()=>{async function a(){try{let a=await fetch("/api/update-check");if(!a.ok)return;let c=await a.json(),d=c?.updateAvailable===!0,e="string"==typeof c?.latestVersion?c.latestVersion:null;b({updateAvailable:d,latestVersion:e})}catch{}}a();let c=setInterval(()=>{a()},y.UI_POLL_UPDATE_CHECK_MS);return()=>clearInterval(c)},[]),a}(),ap=(0,c.useRef)(!1);(0,c.useRef)(0);let aq=(0,c.useRef)(null),[ar,as]=(0,c.useState)(!1),[at,au]=(0,c.useState)(new Set);(0,c.useEffect)(()=>{if(at.size>0||!V?.length)return;let a=V.find(a=>!1);au(new Set([a?.id??V[0].id]))},[V]);let[av,aw]=(0,c.useState)(null),[ax,ay]=(0,c.useState)(new Set),[az,aA]=(0,c.useState)(!1),[aB,aC]=(0,c.useState)(null),[aD,aE]=(0,c.useState)(null),aF=(0,A.useProjectFormState)(),[aG,aH]=(0,c.useState)(null),aI=(0,c.useCallback)(a=>{a&&(a.focus(),a.select())},[]),[aJ,aK]=(0,c.useState)(null),[aL,aM]=(0,c.useState)(null),aN=aL?e.find(a=>a.id===aL)??null:null,[aO,aP]=(0,c.useState)(null),[aQ,aR]=(0,c.useState)({});(0,c.useEffect)(()=>{if(!V?.length)return;let a=!1,b=async()=>{try{let b=await fetch("/api/processes?enrich=1");if(!b.ok||a)return;let c=await b.json();if(a)return;let d=c.filter(a=>"spawning"===a.state||"running"===a.state),f={};for(let a of V){let b=a.slug.trim().toLowerCase(),c=new Set((a.thread_ids??[]).map(a=>a.trim()).filter(Boolean)),g=[],h=[],i=[],j=new Set,k=new Set,l=new Set;for(let a of d){let d=a.projectSlug?.trim().toLowerCase();if(!(d&&d===b||c.has(a.workspaceId)||c.has(a.threadId)))continue;let f=e.find(b=>b.id===a.agentId),m={agentId:a.agentId,color:f?.color??"#10b981"};a.linearIssueId?k.has(a.agentId)||(k.add(a.agentId),h.push(m)):a.threadId?.startsWith("objective-chat:")||a.workspaceId?.startsWith("objective-chat:")?j.has(a.agentId)||(j.add(a.agentId),g.push(m)):l.has(a.agentId)||(l.add(a.agentId),i.push(m))}(g.length||h.length||i.length)&&(f[a.id]={objectives:g,linear:h,chat:i})}aR(f)}catch{}};b();let c=setInterval(b,3e3);return()=>{a=!0,clearInterval(c)}},[V,e]);let[aS,aT]=(0,c.useState)({}),[aU,aV]=(0,c.useState)(new Set),[aW,aX]=(0,c.useState)(new Set),aY=(0,c.useRef)(new Set);(0,c.useEffect)(()=>{Array.from(at).forEach(a=>{aW.has(a)||(aX(b=>new Set(b).add(a)),(async()=>{try{let b=await fetch(`/api/projects/${a}/teams`);if(!b.ok)return;let c=await b.json();aT(b=>({...b,[a]:c.teams??[]}))}catch{}})())})},[at,aW]);let[aZ,a$]=(0,c.useState)(null),a_=async()=>{if(!aB&&!aD)return;if(!aF.form.name.trim())return void aF.setFormError("Project name is required");let a=(0,B.findInvalidProjectRepoDraft)(aF.repos);if(a)return void aF.setFormError((0,B.formatInvalidProjectRepoDraftMessage)(a));aF.setFormError(null),aF.setIsSubmitting(!0);let b=(0,A.createProjectPayload)(aF.form,aF.repos);aD?await X?.(aD.id,b):await W?.(b,aB?.threadId),aF.setIsSubmitting(!1),aC(null),aE(null)};(0,c.useEffect)(()=>{as(!0)},[]),(0,c.useEffect)(()=>{let a=!1;async function b(){if(aO?.repoId)try{let b=await fetch(`/api/knowledge-notes?scope=repo&subjectId=${encodeURIComponent(aO.repoId)}`),c=(b.ok?await b.json():{note:null}).note;a||aP(a=>a&&a.repoId===aO.repoId?{...a,generatedKnowledge:c?.content?[{id:c.id,content:c.content,created_at:c.updatedAt??c.createdAt}]:[],isLoadingKnowledge:!1}:a)}catch{a||aP(a=>a&&a.repoId===aO.repoId?{...a,generatedKnowledge:[],isLoadingKnowledge:!1}:a)}}return aO?.repoId&&b(),()=>{a=!0}},[aO?.repoId]);let a0=av?V.find(a=>a.id===av.projectId):null,a1=new Set(a0?.agents.map(a=>a.agent_id)??[]),a2=av?e.filter(a=>!a1.has(a.id)):[],a3=a.length>0,a4=!!R,a5=(0,c.useCallback)(()=>{am&&T?.()},[am,T]),a6=[...a].sort((a,b)=>(a.title??"").localeCompare(b.title??"")),a7=new Map(a.map(a=>[a.id,a])),a8=V.filter(a=>!a.is_default),a9=a8.find(a=>a.id===ad)??a8[0]??null,{connections:ba}=(0,M.useTrackerConnections)(a9?.id??null),bb=ai??{home:!0,threads:!0,terminal:!0,objectives:!1,objectivesIsNew:!1,tracking:!1,teams:!1,folders:!1,scheduledTasks:!1,envVars:!1,notifications:!1};if((0,c.useEffect)(()=>{if(0===a8.length)return;let b=new Map,c=new Set,d=new Map;for(let a of a8){for(let b of a.thread_ids??[])"string"==typeof b&&b.trim()&&c.add(b);for(let c of(0,C.readProjectObjectivesWorkspace)(a.metadata).objectives){let d=c.id.trim();d&&b.set(d,{projectId:a.id,canonicalThreadId:c.threadId?.trim()||`objective-chat:${d}`})}}for(let b of a){let a=b.metadata&&"object"==typeof b.metadata?b.metadata:null,c="objective"===("string"==typeof a?.scope?a.scope:"")||b.id.startsWith("objective-chat:"),e=b.title?.trim().toLowerCase()??"";if(!c||!e)continue;let f=d.get(e)??[];f.push(b),d.set(e,f)}for(let[a,b]of d)d.set(a,[...b].sort((a,b)=>b.updatedAt-a.updatedAt));for(let e of a){let a=e.metadata&&"object"==typeof e.metadata?e.metadata:null,f="string"==typeof a?.scope?a.scope:"",g="string"==typeof a?.objectiveId?a.objectiveId.trim():"",h=e.id.startsWith("objective-chat:")?e.id.slice(15).trim():"",i=g||h,j="objective"===f||!!h,k=e.title?.trim().toLowerCase()??"",l=0===e.messages.length&&e.updatedAt<Date.now()-3e5;if(!j)continue;let m=i?b.get(i):void 0;if(m){if(e.id!==m.canonicalThreadId&&l){let a=`delete:${e.id}`;if(aY.current.has(a))continue;aY.current.add(a),Promise.resolve(G(e.id)).catch(b=>{aY.current.delete(a),console.warn("Failed to delete legacy objective thread",b)});continue}if(!c.has(e.id)){let a=`link:${e.id}`;if(aY.current.has(a))continue;aY.current.add(a),fetch(`/api/projects/${m.projectId}/threads`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:e.id})}).then(a=>{if(!a.ok)throw Error(`Request failed with status ${a.status}`)}).catch(b=>{aY.current.delete(a),console.warn("Failed to re-link objective thread",b)})}continue}if(!l)continue;let n=k?d.get(k)??[]:[];if(n.length<2||n[0]?.id===e.id)continue;let o=`delete:${e.id}`;aY.current.has(o)||(aY.current.add(o),Promise.resolve(G(e.id)).catch(a=>{aY.current.delete(o),console.warn("Failed to delete orphan objective thread",a)}))}},[a8,G,a]),!function({focusTarget:a,shouldFocus:b}){(0,c.useEffect)(()=>{if(!b||"u"<typeof document)return;let c=a.current;if(!c||c instanceof HTMLButtonElement&&c.disabled)return;let d=document.activeElement;if(!(d&&(c===d||c.contains(d))))try{c.focus({preventScroll:!0})}catch{c.focus()}},[a,b])}({focusTarget:aq,shouldFocus:a4&&!(i&&!a3||S&&a3)&&!a3&&!l}),!a4){if(am)return null;let c=a9?.slug;return(0,b.jsxs)("aside",{id:"workspace-sidebar",className:"workspace-sidebar workspace-sidebar--collapsed","aria-label":"Workspace sidebar",children:[(0,b.jsx)("div",{className:"workspace-sidebar__brand",children:(0,b.jsx)("button",{type:"button",onClick:T,className:"workspace-sidebar__brand-trigger border-none outline-none cursor-pointer","aria-label":"Show chats",title:"Show chats",children:(0,b.jsx)(N,{compact:!0})})}),c&&(0,b.jsxs)("nav",{className:"workspace-sidebar__collapsed-rail",children:[(0,b.jsx)(O,{label:"Home",children:(0,b.jsx)(w.default,{href:`/projects/${c}`,className:`workspace-sidebar__rail-icon${"home"===ae?" workspace-sidebar__rail-icon--active":""}`,children:(0,b.jsx)(q,{size:16})})}),(bb.objectives||bb.tracking||bb.scheduledTasks)&&(0,b.jsx)("div",{className:"workspace-sidebar__rail-separator"}),bb.objectives&&(0,b.jsx)(O,{label:"Objectives",children:(0,b.jsx)(w.default,{href:`/projects/${c}/objectives`,className:`workspace-sidebar__rail-icon${"objectives"===ae?" workspace-sidebar__rail-icon--active":""}`,children:(0,b.jsx)(n.Target,{size:16})})}),bb.tracking&&(0,b.jsx)(O,{label:"Task Tracking",children:(0,b.jsx)(w.default,{href:`/projects/${c}/tracking`,className:`workspace-sidebar__rail-icon${"linear"===ae||"tracking"===ae?" workspace-sidebar__rail-icon--active":""}`,children:(0,b.jsx)(L.LinearIcon,{className:"h-4 w-4"})})}),bb.tracking&&(0,b.jsx)(O,{label:"Pull Requests",children:(0,b.jsx)(w.default,{href:`/projects/${c}/prs`,className:"workspace-sidebar__rail-icon",children:(0,b.jsx)(v,{size:16})})}),bb.scheduledTasks&&(0,b.jsx)(O,{label:"Scheduled Jobs",children:(0,b.jsx)(w.default,{href:`/projects/${c}/automations`,className:`workspace-sidebar__rail-icon${"automations"===ae?" workspace-sidebar__rail-icon--active":""}`,children:(0,b.jsx)(f.Zap,{size:16})})}),(0,b.jsx)("div",{className:"workspace-sidebar__rail-separator"}),(0,b.jsx)(O,{label:"Terminal",children:(0,b.jsx)(w.default,{href:`/projects/${c}/terminal`,className:`workspace-sidebar__rail-icon${"terminal"===ae?" workspace-sidebar__rail-icon--active":""}`,children:(0,b.jsx)(s.TerminalSquare,{size:16})})}),(0,b.jsx)(O,{label:"Chat",children:(0,b.jsx)("button",{type:"button",className:`workspace-sidebar__rail-icon${"thread"===ae?" workspace-sidebar__rail-icon--active":""}`,onClick:()=>{let b=a6.filter(a=>a9?.thread_ids?.includes(a.id)),c=a9?.thread_ids?.find(b=>a.some(a=>a.id===b))??b[0]?.id;c&&D(c)},children:(0,b.jsx)(r.MessageSquare,{size:16})})}),(bb.teams||bb.folders||bb.envVars||bb.notifications)&&(0,b.jsx)("div",{className:"workspace-sidebar__rail-separator"}),bb.teams&&(0,b.jsx)(O,{label:"Teams",children:(0,b.jsx)(w.default,{href:`/projects/${c}/teams`,className:`workspace-sidebar__rail-icon${"teams"===ae?" workspace-sidebar__rail-icon--active":""}`,children:(0,b.jsx)(p.Users,{size:16})})}),bb.folders&&(0,b.jsx)(O,{label:"Workspace Map",children:(0,b.jsx)(w.default,{href:`/projects/${c}/folders`,className:`workspace-sidebar__rail-icon${"folders"===ae?" workspace-sidebar__rail-icon--active":""}`,children:(0,b.jsx)(h.FolderGit2,{size:16})})}),bb.envVars&&(0,b.jsx)(O,{label:"Env Variables",children:(0,b.jsx)(w.default,{href:`/projects/${c}/env-vars`,className:`workspace-sidebar__rail-icon${"env-vars"===ae?" workspace-sidebar__rail-icon--active":""}`,children:(0,b.jsx)(t,{size:16})})}),bb.notifications&&(0,b.jsx)(O,{label:"Notifications",children:(0,b.jsx)(w.default,{href:`/projects/${c}/notifications`,className:`workspace-sidebar__rail-icon${"notifications"===ae?" workspace-sidebar__rail-icon--active":""}`,children:(0,b.jsx)(o.Bell,{size:16})})})]}),(0,b.jsxs)("div",{className:"mt-auto p-2 flex flex-col gap-2",children:[ao&&c&&(0,b.jsx)(O,{label:"Update available",children:(0,b.jsx)(w.default,{href:`/projects/${c}/terminal?cmd=${encodeURIComponent("agx update && agx chat start")}`,className:"workspace-sidebar__rail-icon",children:(0,b.jsx)(u,{size:16})})}),(0,b.jsx)(O,{label:"Join Discord",children:(0,b.jsx)("a",{href:"https://discord.gg/G9afUYKKY3",target:"_blank",rel:"noopener noreferrer",className:"workspace-sidebar__rail-icon",style:{backgroundColor:"#5865F2",color:"white"},onMouseEnter:a=>a.currentTarget.style.backgroundColor="#4752C4",onMouseLeave:a=>a.currentTarget.style.backgroundColor="#5865F2",children:(0,b.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 71 55",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",children:(0,b.jsx)("path",{d:"M60.1 4.9A58.5 58.5 0 0045.4.2a.2.2 0 00-.2.1 40.8 40.8 0 00-1.8 3.7 54 54 0 00-16.2 0A37.4 37.4 0 0025.4.3a.2.2 0 00-.2-.1A58.4 58.4 0 0010.5 4.9a.2.2 0 00-.1.1C1.5 18.7-.9 32.2.3 45.5v.1a58.8 58.8 0 0017.7 9a.2.2 0 00.3-.1 42 42 0 003.6-5.9.2.2 0 00-.1-.3 38.8 38.8 0 01-5.5-2.6.2.2 0 01 0-.4l1.1-.9a.2.2 0 01.2 0 42 42 0 0035.6 0 .2.2 0 01.2 0l1.1.9a.2.2 0 010 .4 36.4 36.4 0 01-5.5 2.6.2.2 0 00-.1.3 47.2 47.2 0 003.6 5.9.2.2 0 00.3.1 58.6 58.6 0 0017.7-9v-.1c1.4-15.2-2.4-28.4-10-40.1a.2.2 0 00-.1-.1zM23.7 37.3c-3.5 0-6.3-3.2-6.3-7s2.8-7 6.3-7 6.4 3.2 6.3 7-2.8 7-6.3 7zm23.3 0c-3.5 0-6.3-3.2-6.3-7s2.8-7 6.3-7 6.4 3.2 6.3 7-2.8 7-6.3 7z"})})})})]})]})}return(0,b.jsxs)(b.Fragment,{children:[am?(0,b.jsx)("button",{type:"button",className:"workspace-sidebar__backdrop",onClick:T,"aria-label":"Close sidebar"}):null,(0,b.jsxs)("aside",{id:"workspace-sidebar",className:`workspace-sidebar${am?" workspace-sidebar--drawer":""}${am&&an?" workspace-sidebar--drawer-phone":""}`,"aria-label":"Workspace sidebar","aria-busy":i?"true":void 0,"aria-modal":am?"true":void 0,role:am?"dialog":void 0,style:!am&&af?{width:`${af}px`,minWidth:`${af}px`}:void 0,children:[(0,b.jsxs)("div",{className:"workspace-sidebar__brand",children:[(0,b.jsx)("div",{className:"workspace-sidebar__brand-content",children:(0,b.jsx)(N,{})}),T&&(0,b.jsx)("button",{type:"button",onClick:T,"aria-label":"Hide chats",title:"Hide chats",className:"workspace-sidebar__brand-toggle ml-auto inline-flex h-7 w-7 items-center justify-center rounded-md text-[var(--app-shell-soft-text)] transition-all hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]",children:(0,b.jsx)(j,{className:"h-4 w-4",strokeWidth:1.75})})]}),(0,b.jsxs)("div",{className:"workspace-sidebar__content",children:[(0,b.jsx)(P,{projects:a8,activeProjectId:ad,onSelectProject:a=>{ac?.(a),a5()},onCreateProject:()=>{aF.resetForm(),aE(null),aC({})}}),(()=>{if(!a9)return null;let a=a6.filter(a=>a9.thread_ids?.includes(a.id)),c=a9.thread_ids?.find(a=>a7.has(a))??a9.thread_ids?.[0]??a[0]?.id??null,d=a9.id===ad,i=d&&"home"===ae,j=d&&"objectives"===ae,k=d&&"automations"===ae,l=d&&"terminal"===ae,m=d&&"thread"===ae&&c===g,u=d&&"teams"===ae,v=d&&"folders"===ae,x=d&&"env-vars"===ae,y=d&&"notifications"===ae,A=aQ[a9.id],B=bb.objectives||bb.scheduledTasks,C=bb.teams||bb.folders||bb.envVars||bb.notifications;return(0,b.jsxs)("nav",{className:"workspace-sidebar__section",children:[(0,b.jsx)("div",{className:"px-2 mt-2 mb-3",children:(0,b.jsx)("div",{className:"workspace-sidebar__workspace-item",children:(0,b.jsxs)(w.default,{href:`/projects/${a9.slug}`,onClick:a5,className:`workspace-sidebar__nav-item ${i?"workspace-sidebar__nav-item--active":""}`,"aria-current":i?"page":void 0,children:[(0,b.jsx)(q,{size:14,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-sm",children:"Home"})]})})}),B&&(0,b.jsxs)("div",{className:"mb-3",children:[(0,b.jsx)("div",{className:"workspace-sidebar__section-header",children:(0,b.jsx)("p",{className:"workspace-sidebar__section-label",children:"Automation"})}),(0,b.jsxs)("div",{className:"px-2 flex flex-col gap-0.5",children:[bb.objectives&&(0,b.jsx)("div",{className:"workspace-sidebar__workspace-item",children:(0,b.jsxs)(w.default,{href:`/projects/${a9.slug}/objectives`,onClick:a5,className:`workspace-sidebar__nav-item ${j?"workspace-sidebar__nav-item--active":""}`,"aria-current":j?"page":void 0,children:[(0,b.jsx)(n.Target,{size:14,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-sm",children:"Objectives"}),bb.objectivesIsNew&&(0,b.jsx)("span",{className:"ml-auto inline-flex items-center rounded-full bg-indigo-500/15 px-1.5 py-0.5 text-[9px] font-bold uppercase tracking-wider text-indigo-500 animate-pulse",children:"NEW"}),!bb.objectivesIsNew&&A?.objectives.length>0&&(0,b.jsx)("span",{className:"inline-flex items-center -space-x-1 ml-auto shrink-0",children:A.objectives.slice(0,3).map(a=>{let c=e.find(b=>b.id===a.agentId);return(0,b.jsxs)("span",{className:"relative inline-block",title:c?.name,children:[(0,b.jsx)("img",{src:(0,z.agentAvatarUrl)(c?.id??a.agentId,16,a.color),alt:c?.name??"",className:"h-3.5 w-3.5 rounded-full ring-[1.5px] ring-[var(--app-shell-pane)]"}),(0,b.jsx)("span",{className:"absolute -bottom-px -right-px h-1.5 w-1.5 rounded-full bg-green-500 ring-[1px] ring-[var(--app-shell-pane)]"})]},a.agentId)})})]})}),bb.scheduledTasks&&(0,b.jsx)("div",{className:"workspace-sidebar__workspace-item",children:(0,b.jsxs)(w.default,{href:`/projects/${a9.slug}/automations`,onClick:a5,className:`workspace-sidebar__nav-item ${k?"workspace-sidebar__nav-item--active":""}`,"aria-current":k?"page":void 0,children:[(0,b.jsx)(f.Zap,{size:14,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-sm",children:"Scheduled Jobs"})]})})]})]}),bb.tracking&&(0,b.jsxs)("div",{className:"mb-3",children:[(0,b.jsx)("div",{className:"workspace-sidebar__section-header",children:(0,b.jsx)("p",{className:"workspace-sidebar__section-label",children:"Task Tracking"})}),(0,b.jsx)("div",{className:"px-2 flex flex-col gap-0.5",children:(0,b.jsx)(K,{projectSlug:a9.slug,trackerConnections:aj,activeTrackerType:null,isTrackingActive:d&&("linear"===ae||"tracking"===ae),onLinkClick:a5})})]}),(0,b.jsxs)("div",{className:"mb-3",children:[(0,b.jsx)("div",{className:"workspace-sidebar__section-header",children:(0,b.jsx)("p",{className:"workspace-sidebar__section-label",children:"Tools"})}),(0,b.jsxs)("div",{className:"px-2 flex flex-col gap-0.5",children:[(0,b.jsx)("div",{className:"workspace-sidebar__workspace-item",children:(0,b.jsxs)(w.default,{href:`/projects/${a9.slug}/terminal`,onClick:a5,className:`workspace-sidebar__nav-item ${l?"workspace-sidebar__nav-item--active":""}`,"aria-current":l?"page":void 0,children:[(0,b.jsx)(s.TerminalSquare,{size:14,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-sm",children:"Terminal"})]})}),(0,b.jsx)("div",{className:"workspace-sidebar__workspace-item",children:c?(0,b.jsxs)("button",{type:"button",className:`workspace-sidebar__nav-item ${m?"workspace-sidebar__nav-item--active":""}`,onClick:()=>{D(c),a5()},"aria-current":m?"page":void 0,children:[(0,b.jsx)(r.MessageSquare,{size:14,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-sm",children:"Chat"}),A?.chat.length>0&&(0,b.jsx)("span",{className:"inline-flex items-center -space-x-1 ml-auto shrink-0",children:A.chat.slice(0,3).map(a=>{let c=e.find(b=>b.id===a.agentId);return(0,b.jsxs)("span",{className:"relative inline-block",title:c?.name,children:[(0,b.jsx)("img",{src:(0,z.agentAvatarUrl)(c?.id??a.agentId,16,a.color),alt:c?.name??"",className:"h-3.5 w-3.5 rounded-full ring-[1.5px] ring-[var(--app-shell-pane)]"}),(0,b.jsx)("span",{className:"absolute -bottom-px -right-px h-1.5 w-1.5 rounded-full bg-green-500 ring-[1px] ring-[var(--app-shell-pane)]"})]},a.agentId)})})]}):(0,b.jsxs)(w.default,{href:`/projects/${a9.slug}/thread`,onClick:a5,className:`workspace-sidebar__nav-item ${m?"workspace-sidebar__nav-item--active":""}`,"aria-current":m?"page":void 0,children:[(0,b.jsx)(r.MessageSquare,{size:14,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-sm",children:"Chat"})]})})]})]}),C&&(0,b.jsxs)("div",{className:"mb-3",children:[(0,b.jsx)("div",{className:"workspace-sidebar__section-header",children:(0,b.jsx)("p",{className:"workspace-sidebar__section-label",children:"Settings"})}),(0,b.jsxs)("div",{className:"px-2 flex flex-col gap-0.5",children:[bb.teams&&(0,b.jsx)("div",{className:"workspace-sidebar__workspace-item",children:(0,b.jsxs)(w.default,{href:`/projects/${a9.slug}/teams`,onClick:a5,className:`workspace-sidebar__nav-item ${u?"workspace-sidebar__nav-item--active":""}`,"aria-current":u?"page":void 0,children:[(0,b.jsx)(p.Users,{size:14,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-sm",children:"Teams"})]})}),bb.folders&&(0,b.jsx)("div",{className:"workspace-sidebar__workspace-item",children:(0,b.jsxs)(w.default,{href:`/projects/${a9.slug}/folders`,onClick:a5,className:`workspace-sidebar__nav-item ${v?"workspace-sidebar__nav-item--active":""}`,"aria-current":v?"page":void 0,children:[(0,b.jsx)(h.FolderGit2,{size:14,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-sm",children:"Workspace Map"})]})}),bb.envVars&&(0,b.jsx)("div",{className:"workspace-sidebar__workspace-item",children:(0,b.jsxs)(w.default,{href:`/projects/${a9.slug}/env-vars`,onClick:a5,className:`workspace-sidebar__nav-item ${x?"workspace-sidebar__nav-item--active":""}`,"aria-current":x?"page":void 0,children:[(0,b.jsx)(t,{size:14,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-sm",children:"Environment Variables"})]})}),bb.notifications&&(0,b.jsx)("div",{className:"workspace-sidebar__workspace-item",children:(0,b.jsxs)(w.default,{href:`/projects/${a9.slug}/notifications`,onClick:a5,className:`workspace-sidebar__nav-item ${y?"workspace-sidebar__nav-item--active":""}`,"aria-current":y?"page":void 0,children:[(0,b.jsx)(o.Bell,{size:14,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-sm",children:"Notifications"})]})})]})]})]})})()]}),(0,b.jsxs)("div",{className:"mt-auto px-3 pb-3 flex flex-col gap-2",children:[ao&&a9&&(0,b.jsxs)(w.default,{href:`/projects/${a9.slug}/terminal?cmd=${encodeURIComponent("agx update && agx chat start")}`,className:"flex items-center justify-center gap-2 w-full py-2 rounded-lg text-sm font-medium transition-colors text-[var(--foreground)] bg-[var(--app-shell-subtle)] hover:bg-[var(--app-shell-border)]",children:[(0,b.jsx)(u,{size:14}),"Update available"]}),(0,b.jsxs)("a",{href:"https://discord.gg/G9afUYKKY3",target:"_blank",rel:"noopener noreferrer",className:"flex items-center justify-center gap-2 w-full py-2 rounded-lg text-white text-sm font-medium transition-colors",style:{backgroundColor:"#5865F2"},onMouseEnter:a=>a.currentTarget.style.backgroundColor="#4752C4",onMouseLeave:a=>a.currentTarget.style.backgroundColor="#5865F2",children:[(0,b.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 71 55",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",children:(0,b.jsx)("path",{d:"M60.1 4.9A58.5 58.5 0 0045.4.2a.2.2 0 00-.2.1 40.8 40.8 0 00-1.8 3.7 54 54 0 00-16.2 0A37.4 37.4 0 0025.4.3a.2.2 0 00-.2-.1A58.4 58.4 0 0010.5 4.9a.2.2 0 00-.1.1C1.5 18.7-.9 32.2.3 45.5v.1a58.8 58.8 0 0017.7 9a.2.2 0 00.3-.1 42 42 0 003.6-5.9.2.2 0 00-.1-.3 38.8 38.8 0 01-5.5-2.6.2.2 0 01 0-.4l1.1-.9a.2.2 0 01.2 0 42 42 0 0035.6 0 .2.2 0 01.2 0l1.1.9a.2.2 0 010 .4 36.4 36.4 0 01-5.5 2.6.2.2 0 00-.1.3 47.2 47.2 0 003.6 5.9.2.2 0 00.3.1 58.6 58.6 0 0017.7-9v-.1c1.4-15.2-2.4-28.4-10-40.1a.2.2 0 00-.1-.1zM23.7 37.3c-3.5 0-6.3-3.2-6.3-7s2.8-7 6.3-7 6.4 3.2 6.3 7-2.8 7-6.3 7zm23.3 0c-3.5 0-6.3-3.2-6.3-7s2.8-7 6.3-7 6.4 3.2 6.3 7-2.8 7-6.3 7z"})}),"Join Discord"]})]}),ar&&aO&&(0,d.createPortal)((0,b.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/30 p-4",onClick:()=>{aO.isSaving||aP(null)},children:(0,b.jsxs)("div",{className:"w-full max-w-lg rounded-2xl border border-[var(--border)] bg-[var(--card-bg)] shadow-2xl",onClick:a=>a.stopPropagation(),children:[(0,b.jsxs)("div",{className:"flex items-start justify-between gap-4 border-b border-[var(--border)] px-5 py-4",children:[(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("p",{className:"text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:aO.projectName}),(0,b.jsx)("h3",{className:"truncate text-base font-semibold text-[var(--foreground)]",children:aO.repoId?aO.name||"Folder":"Add Folder"})]}),(0,b.jsx)("button",{type:"button",className:"rounded-md p-1 text-[var(--muted-foreground)] transition-colors hover:bg-[var(--muted)] hover:text-[var(--muted-foreground)]",onClick:()=>{aO.isSaving||aP(null)},"aria-label":"Close folder details",disabled:aO.isSaving,children:(0,b.jsx)(m.X,{size:16})})]}),(0,b.jsxs)("div",{className:"space-y-4 px-5 py-4",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"mb-1 text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:"Name"}),(0,b.jsx)("input",{value:aO.name,onChange:a=>aP(b=>b?{...b,name:a.target.value,error:null}:b),className:"w-full rounded-lg border border-[var(--border)] bg-[var(--app-shell-subtle)] px-3 py-2 text-sm text-[var(--foreground)]",disabled:aO.isSaving,placeholder:"e.g. Frontend, API Docs, Design System"})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"mb-1 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:aO.path,onChange:a=>aP(b=>b?{...b,path:a.target.value,error:null}:b),className:"flex-1 rounded-lg border border-[var(--border)] bg-[var(--app-shell-subtle)] px-3 py-2 font-mono text-xs text-[var(--foreground)]",disabled:aO.isSaving,placeholder:"Local path to folder"}),(0,b.jsx)("button",{type:"button",className:"rounded-lg border border-[var(--border)] bg-[var(--app-shell-subtle)] px-3 py-2 text-xs font-medium text-[var(--muted-foreground)] transition-colors hover:bg-[var(--muted)]",disabled:aO.isSaving,onClick:async()=>{try{let a=await fetch("/api/filesystem/pick-folder",{method:"POST"}),b=await a.json();b.path&&aP(a=>a?{...a,path:b.path,error:null}:a)}catch{}},children:"Browse"})]})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"mb-1 text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:"Notes"}),(0,b.jsx)("textarea",{value:aO.notes,onChange:a=>aP(b=>b?{...b,notes:a.target.value,error:null}:b),className:"min-h-28 w-full rounded-lg border border-[var(--border)] bg-[var(--app-shell-subtle)] px-3 py-3 text-sm text-[var(--foreground)] whitespace-pre-wrap",disabled:aO.isSaving,placeholder:"Coding conventions, deploy steps, doc standards, ownership rules..."})]}),aO.repoId?(0,b.jsxs)("div",{children:[(0,b.jsx)("p",{className:"mb-1 text-[11px] font-semibold uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:"Living Note"}),aO.isLoadingKnowledge?(0,b.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"Loading note…"}):aO.generatedKnowledge.length>0?(0,b.jsx)("div",{className:"space-y-2",children:aO.generatedKnowledge.slice(0,5).map(a=>(0,b.jsxs)("div",{className:"rounded-lg border border-[var(--border)] bg-[var(--app-shell-subtle)] px-3 py-2 text-sm text-[var(--foreground)]",children:[(0,b.jsx)("div",{children:a.content}),a.created_at?(0,b.jsx)("div",{className:"mt-1 text-[11px] text-[var(--muted-foreground)]",children:new Date(a.created_at).toLocaleString()}):null]},a.id))}):(0,b.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"No note yet."})]}):null,aO.error?(0,b.jsx)("p",{className:"text-xs text-red-600",children:aO.error}):null,(0,b.jsxs)("div",{className:"flex justify-end gap-2 border-t border-[var(--border)] pt-4",children:[(0,b.jsx)("button",{type:"button",className:"rounded-lg px-3 py-2 text-sm text-[var(--muted-foreground)] transition-colors hover:bg-[var(--muted)]",onClick:()=>aP(null),disabled:aO.isSaving,children:"Cancel"}),(0,b.jsx)("button",{type:"button",className:"rounded-lg bg-[var(--foreground)] px-3 py-2 text-sm font-medium text-[var(--card-bg)] transition-colors hover:bg-[var(--foreground)] disabled:cursor-not-allowed disabled:opacity-60",disabled:aO.isSaving||!X,onClick:async()=>{let a=V.find(a=>a.id===aO.projectId);if(!a)return void aP(a=>a?{...a,error:"Project not found."}:a);let b=aO.name.trim(),c=aO.path.trim();if(!b)return void aP(a=>a?{...a,error:"Folder name is required."}:a);if(!c)return void aP(a=>a?{...a,error:"Folder path is required."}:a);aP(a=>a?{...a,isSaving:!0,error:null}:a);try{let d=aO.repoId?a.repos.map(a=>a.id===aO.repoId?{id:a.id,name:b,path:c,git_url:aO.gitUrl.trim()||void 0,notes:aO.notes.trim()||void 0}:{id:a.id,name:a.name,path:a.path,git_url:a.git_url,notes:a.notes}):[...a.repos.map(a=>({id:a.id,name:a.name,path:a.path,git_url:a.git_url,notes:a.notes})),{name:b,path:c,git_url:aO.gitUrl.trim()||void 0,notes:aO.notes.trim()||void 0}];await X?.(a.id,{repos:d}),aP(null)}catch(a){aP(b=>b?{...b,isSaving:!1,error:a instanceof Error?a.message:"Failed to save folder details."}:b)}},children:aO.isSaving?"Saving...":aO.repoId?"Save":"Add Folder"})]})]})]})}),document.body),ar&&av&&!az&&(0,d.createPortal)((0,b.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/30",onClick:()=>aw(null),children:(0,b.jsxs)("div",{className:"bg-[var(--card-bg)] rounded-xl shadow-xl border border-[var(--border)] w-80 max-h-[70vh] flex flex-col",onClick:a=>a.stopPropagation(),children:[(0,b.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-[var(--border)]",children:[(0,b.jsxs)("h3",{className:"text-sm font-medium text-[var(--foreground)]",children:["Add to ",a0?.name??"project"]}),(0,b.jsx)("button",{type:"button",className:"text-[var(--muted-foreground)] hover:text-[var(--muted-foreground)]",onClick:()=>aw(null),children:(0,b.jsx)(m.X,{size:16})})]}),(0,b.jsxs)("div",{className:"overflow-y-auto py-1 flex-1",children:[(0,b.jsxs)("button",{type:"button",className:"w-full flex items-center gap-3 px-4 py-2.5 text-sm text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)] transition-colors border-b border-[var(--border)]",onClick:()=>aA(!0),children:[(0,b.jsx)(k.Plus,{size:14,className:"text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"text-xs font-medium",children:"Create new agent"})]}),0===a2.length?(0,b.jsx)("p",{className:"px-4 py-6 text-xs text-[var(--muted-foreground)] text-center",children:"All agents are already in this project"}):a2.map(a=>{let c=ax.has(a.id);return(0,b.jsxs)("button",{type:"button",className:`w-full flex items-center gap-3 px-4 py-2.5 text-sm transition-colors ${c?"bg-[var(--muted)] text-[var(--foreground)]":"text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)]"}`,onClick:()=>{ay(b=>{let c=new Set(b);return c.has(a.id)?c.delete(a.id):c.add(a.id),c})},children:[(0,b.jsx)("div",{className:`w-4 h-4 rounded border flex-shrink-0 flex items-center justify-center ${c?"bg-[var(--foreground)] border-[var(--foreground)]":"border-[var(--border)]"}`,children:c&&(0,b.jsx)("svg",{width:"10",height:"10",viewBox:"0 0 10 10",fill:"none",children:(0,b.jsx)("path",{d:"M2 5l2 2 4-4",stroke:"white",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),(0,b.jsx)("img",{src:(0,z.agentAvatarUrl)(a.id,24,a.color),alt:"",className:"w-6 h-6 rounded-full flex-shrink-0"}),(0,b.jsxs)("div",{className:"min-w-0 flex-1 text-left",children:[(0,b.jsx)("div",{className:"truncate font-medium text-xs",children:a.name}),(0,b.jsx)("div",{className:"truncate text-[11px] text-[var(--muted-foreground)]",children:a.model})]})]},a.id)})]}),a2.length>0&&(0,b.jsxs)("div",{className:"px-4 py-3 border-t border-[var(--border)] flex justify-end gap-2",children:[(0,b.jsx)("button",{type:"button",className:"px-3 py-1.5 text-xs text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",onClick:()=>aw(null),children:"Cancel"}),(0,b.jsxs)("button",{type:"button",disabled:0===ax.size,className:"px-3 py-1.5 text-xs font-medium text-[var(--card-bg)] bg-[var(--foreground)] rounded-lg hover:bg-[var(--foreground)] disabled:opacity-40 disabled:cursor-not-allowed transition-colors",onClick:()=>{for(let a of ax)Z?.(av.projectId,a);aw(null)},children:["Add ",ax.size>0?`(${ax.size})`:""]})]})]})}),document.body),ar&&az&&(0,d.createPortal)((0,b.jsx)(z.AgentForm,{title:"Create new agent",initial:{name:"",provider:"claude",model:"",identity:"",skills:[],skillBindings:[]},submitLabel:"Create & Add",projects:V?.filter(a=>!a.is_default).map(b=>{let c=(b.thread_ids??[]).map(b=>a.find(a=>a.id===b)?.title?.trim()).filter(Boolean).join(", ")||"No chat";return{id:b.id,name:b.name,label:`${c} › ${b.name}`}}),initialProjectIds:av?[av.projectId]:[],onSubmit:async(a,b)=>{let c=["#D97706","#2563EB","#059669","#DC2626","#7C3AED","#DB2777","#0891B2"],d=c[e.length%c.length],f=a.name.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,""),g=b?.[0],h=await fetch("/api/participants",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:f,name:a.name,provider:a.provider,model:a.model,color:a.color??d,...a.role?{role:a.role}:{},...a.identity?{identity:a.identity}:{},skills:a.skills??[],skillBindings:a.skillBindings??[],...g?{projectId:g}:{}})});if(h.ok){let a=await h.json().catch(()=>({})),c="string"==typeof a?.id&&a.id.trim()?a.id.trim():f;for(let a of(b??[]).slice(1))Z?.(a,c);aA(!1),aw(null)}},onCancel:()=>{aA(!1)}}),document.body),ar&&aG&&(0,d.createPortal)((0,b.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/30",onClick:()=>aH(null),children:(0,b.jsxs)("div",{className:"bg-[var(--card-bg)] rounded-xl shadow-xl border border-[var(--border)] w-80 flex flex-col",onClick:a=>a.stopPropagation(),children:[(0,b.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-[var(--border)]",children:[(0,b.jsx)("h3",{className:"text-sm font-medium text-[var(--foreground)]",children:aG.title}),(0,b.jsx)("button",{type:"button",className:"text-[var(--muted-foreground)] hover:text-[var(--muted-foreground)]",onClick:()=>aH(null),children:(0,b.jsx)(m.X,{size:16})})]}),(0,b.jsxs)("form",{className:"px-4 py-4 flex flex-col gap-3",onSubmit:a=>{a.preventDefault();let b=new FormData(a.currentTarget),c=b.get("value")?.trim();c&&(aG.onSubmit(c),aH(null))},children:[(0,b.jsx)("input",{ref:aI,name:"value",type:"text",defaultValue:aG.defaultValue,placeholder:aG.placeholder,className:"w-full px-3 py-2 text-sm border border-[var(--border)] rounded-lg outline-none focus:border-[var(--border)] focus:ring-1 focus:ring-[var(--border)] transition-all"}),(0,b.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,b.jsx)("button",{type:"button",className:"px-3 py-1.5 text-xs text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",onClick:()=>aH(null),children:"Cancel"}),(0,b.jsx)("button",{type:"submit",className:"px-3 py-1.5 text-xs font-medium text-[var(--card-bg)] bg-[var(--foreground)] rounded-lg hover:bg-[var(--foreground)] transition-colors",children:aG.defaultValue?"Save":"Create"})]})]})]})}),document.body),ar&&aJ&&(0,d.createPortal)((0,b.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/30",onClick:()=>aK(null),children:(0,b.jsxs)("div",{className:"bg-[var(--card-bg)] rounded-xl shadow-xl border border-[var(--border)] w-80 flex flex-col",onClick:a=>a.stopPropagation(),children:[(0,b.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-[var(--border)]",children:[(0,b.jsx)("h3",{className:"text-sm font-medium text-[var(--foreground)]",children:aJ.title}),(0,b.jsx)("button",{type:"button",className:"text-[var(--muted-foreground)] hover:text-[var(--muted-foreground)]",onClick:()=>aK(null),children:(0,b.jsx)(m.X,{size:16})})]}),(0,b.jsxs)("div",{className:"px-4 py-4 flex flex-col gap-4",children:[(0,b.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:aJ.message}),(0,b.jsxs)("div",{className:"flex justify-end gap-2",children:[(0,b.jsx)("button",{type:"button",className:"px-3 py-1.5 text-xs text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",onClick:()=>aK(null),children:"Cancel"}),(0,b.jsx)("button",{type:"button",className:"px-3 py-1.5 text-xs font-medium text-white bg-red-600 rounded-lg hover:bg-red-700 transition-colors",onClick:()=>{aJ.onConfirm(),aK(null)},children:"Delete"})]})]})]})}),document.body),ar&&(aB||aD)&&(0,d.createPortal)((0,b.jsx)(A.default,{isOpen:!0,onClose:()=>{aF.resetForm(),aC(null),aE(null)},onSubmit:()=>void a_(),editingProject:aD,form:aF.form,repos:aF.repos,isSubmitting:aF.isSubmitting,formError:aF.formError,onFieldChange:(a,b)=>aF.setForm(c=>({...c,[a]:b})),onRepoChange:aF.handleRepoChange,onAddRepo:aF.addRepo,onRemoveRepo:aF.removeRepo}),document.body),ar&&aN&&(0,d.createPortal)((ak=V.filter(a=>a.agents.some(a=>a.agent_id===aN.id)),al=V.filter(a=>!a.agents.some(a=>a.agent_id===aN.id)),(0,b.jsx)(z.AgentForm,{title:"Edit agent",initial:{name:aN.name,role:aN.role||"",provider:aN.provider,model:aN.model||"",identity:aN.identity||"",color:aN.color,skills:aN.skills||[],skillBindings:aN.skillBindings||[]},agentId:aN.id,submitLabel:"Save",projectMemberships:{current:ak.map(a=>({id:a.id,name:a.name,is_default:!!a.is_default})),available:al.map(a=>({id:a.id,name:a.name}))},onAddToProject:Z?a=>Z(a,aN.id):void 0,onRemoveFromProject:$?a=>$(a,aN.id):void 0,onSubmit:async a=>{ab&&await ab({...aN,name:a.name,role:a.role||void 0,provider:a.provider,model:a.model,color:a.color??aN.color,...a.identity?{identity:a.identity}:{},skills:a.skills??[],skillBindings:a.skillBindings??[]}),aM(null)},onCancel:()=>aM(null)})),document.body),ag&&!am&&(0,b.jsx)("div",{className:"absolute right-0 top-0 bottom-0 z-20 w-1 cursor-col-resize group",onMouseDown:a=>{a.preventDefault(),ap.current=!0;let b=a.clientX,c=af??368;document.body.style.cursor="col-resize",document.body.style.userSelect="none";let d=a=>{ag(Math.max(200,Math.min(600,c+a.clientX-b)))},e=()=>{ap.current=!1,document.body.style.cursor="",document.body.style.userSelect="",window.removeEventListener("mousemove",d),window.removeEventListener("mouseup",e)};window.addEventListener("mousemove",d),window.addEventListener("mouseup",e)},children:(0,b.jsx)("div",{className:"absolute inset-y-0 right-0 w-1 transition-colors hover:bg-[var(--primary)]/40 group-hover:bg-[var(--primary)]/40"})})]})]})}a.s(["WorkspaceSidebar",()=>Q],550158)},111013,a=>{"use strict";var b=a.i(786220),c=a.i(516909),d=a.i(870630);function e(){}let f=a=>[...a].sort((a,b)=>b.createdAt-a.createdAt);function g(a){let g=(0,c.useSearchParams)(),h=(a||g.get("thread")||"").trim()||null,i=(0,b.useRef)(!0),[j,k]=(0,b.useState)([]),[l,m]=(0,b.useState)(null),[n,o]=(0,b.useState)(!0),[p,q]=(0,b.useState)(!0),[r,s]=(0,b.useState)(!1),[t,u]=(0,b.useState)(null),[v,w]=(0,b.useState)(null),x=(0,b.useRef)(!1),y=(0,b.useCallback)(a=>{m(a)},[]);(0,b.useEffect)(()=>(i.current=!0,()=>{i.current=!1}),[]),(0,b.useEffect)(()=>{let a=!1;return(async()=>{try{var b;let c,g=await d.threadService.listThreads();if(h&&!g.some(a=>a.id===h)){let a=await d.threadService.createThread({id:h});g=f([...g.filter(b=>b.id!==a.id),a])}if(a||!i.current)return;k(g);let j=h||null,{threadId:l,shouldClearSavedId:n,restoredFromStorage:o}=(b=g,c=b[0]?.id??null,j?b.some(a=>a.id===j)?{threadId:j,shouldClearSavedId:!1,restoredFromStorage:!0}:{threadId:c,shouldClearSavedId:!0,restoredFromStorage:!1}:{threadId:c,shouldClearSavedId:!1,restoredFromStorage:!1});n&&e(),x.current||(x.current=!0),o&&l?y(l):l?m(a=>a??l):m(null)}catch(a){console.error("Failed to load threads",a)}finally{i.current&&(o(!1),q(!1))}})(),()=>{a=!0}},[h,y]),(0,b.useEffect)(()=>{x.current&&(l||e())},[l]);let z=(0,b.useCallback)(async a=>{s(!0);try{let b=await d.threadService.createThread(a);if(!i.current)return b;return k(a=>f([...a.filter(a=>a.id!==b.id),b])),m(b.id),b}catch(a){throw console.error("Failed to create thread",a),a}finally{i.current&&s(!1)}},[]),A=(0,b.useCallback)(async a=>{if(a){u(a);try{if(await d.threadService.deleteThread(a),!i.current)return;let b=[];k(c=>b=f(c.filter(b=>b.id!==a))),m(c=>c===a?b[0]?.id??null:c)}catch(a){throw console.error("Failed to delete thread",a),a}finally{i.current&&u(null)}}},[]),B=(0,b.useCallback)(async(a,b)=>{let c=a.trim(),e=b.trim();if(c&&e){w(c);try{let a=await d.threadService.renameThread(c,e);if(!a||!i.current)return;k(b=>f(b.map(b=>b.id===a.id?a:b)))}catch(a){throw console.error("Failed to rename thread",a),a}finally{i.current&&w(a=>a===c?null:a)}}},[]),C=(0,b.useCallback)(async(a,b)=>{if(a)try{let c=await d.threadService.saveThreadMessages(a,b);if(!c||!i.current)return;k(a=>f(a.map(a=>a.id===c.id?c:a)))}catch(a){console.error("Failed to update thread messages",a)}},[]),D=(0,b.useCallback)(async(a,b)=>{if(a)try{let c=await d.threadService.updateThreadStatus(a,b);if(!c||!i.current)return;k(a=>f(a.map(a=>a.id===c.id?c:a)))}catch(a){console.error("Failed to update thread status",a)}},[]),E=(0,b.useCallback)(async(a,b)=>{if(a)try{let c=await d.threadService.updateThreadOutcomeNote(a,b);if(!c||!i.current)return;k(a=>f(a.map(a=>a.id===c.id?c:a)))}catch(a){console.error("Failed to update thread outcome note",a)}},[]),F=(0,b.useCallback)(async(a,b,c)=>{if(a&&b)try{let e=await d.threadService.updateMessageThreadStatus(a,b,c);if(!e||!i.current)return;k(a=>f(a.map(a=>a.id===e.id?e:a)))}catch(a){console.error("Failed to update message thread status",a)}},[]),G=(0,b.useCallback)(async(a,b,c)=>{if(a&&b)try{let e=await d.threadService.updateMessageOutcomeNote(a,b,c);if(!e||!i.current)return;k(a=>f(a.map(a=>a.id===e.id?e:a)))}catch(a){console.error("Failed to update message outcome note",a)}},[]),H=null!==l&&t===l;return{threads:j,activeThreadId:l,selectThread:y,createThread:z,deleteThread:A,isLoading:n,isRestoringActiveThread:p,isCreating:r,deletingThreadId:t,renamingThreadId:v,isDeletingActiveThread:H,updateThreadMessages:C,renameThread:B,updateThreadStatus:D,updateThreadOutcomeNote:E,updateMessageThreadStatus:F,updateMessageOutcomeNote:G}}a.s(["useThreadState",()=>g],111013)},455106,a=>{"use strict";let b={threadSidebarVisible:!1};function c(){return({...b}).threadSidebarVisible}function d(a){}a.s(["loadWorkspaceSidebarVisible",()=>c,"persistWorkspaceSidebarVisible",()=>d])}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=apps_local_988d29c0._.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
|