@mndrk/agx 2.0.47 → 2.0.48
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/.next/BUILD_ID +1 -1
- package/cloud-runtime/standalone/.next/build-manifest.json +2 -2
- package/cloud-runtime/standalone/.next/prerender-manifest.json +3 -3
- package/cloud-runtime/standalone/.next/server/app/_global-error.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/_global-error.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/_not-found.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/_not-found.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/agents/[id]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/agents/[id]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/agents/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/agents/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/agents.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/agents.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/agents.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/agents.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/agents.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/agents.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/agents.segments/agents/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/agents.segments/agents.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/agent-specs/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/agents/[id]/profile/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/agents/export/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/automations/create/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/automations/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/chat/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/file-search/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/graphs/[graphId]/nodes/[nodeId]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/health/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/knowledge-notes/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/learnings/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/linear/callback/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/linear/callback/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/linear/cycles/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/linear/cycles/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/linear/issues/context/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/linear/issues/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/linear/options/route.js +2 -2
- package/cloud-runtime/standalone/.next/server/app/api/linear/options/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/linear/status/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/linear/status/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/linear/token/route.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/linear/token/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/start/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/orchestrator/tasks/[taskId]/status/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/participants/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/agents/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v1/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/migrate-v2/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/skills/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/threads/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/projects/[id]/variables/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/cancel/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/[id]/runs/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/agents/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/poll/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/prompt-jobs/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/providers/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/queue/complete/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/queue/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/schedules/debug/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/schedules/poll/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/schedules/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/status/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/summarize/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/comments/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/costs/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/dependencies/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/events/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/history/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/metrics/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/replan/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/restart/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/resume/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/rollback/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/schedule/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/start/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/graph/stop/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/history/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/logs/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/comments/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/complete/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/fail/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/resume/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/start/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/stop/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/assign-orphans/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/extract/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/tasks/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/threads/knowledge/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/threads/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/api/user-settings/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/automations/page/react-loadable-manifest.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/automations/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/automations/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/automations.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/automations.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/automations.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/automations.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/automations.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/automations.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/automations.segments/automations/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/automations.segments/automations.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/board/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/board.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/board.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/board.segments/_full.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/board.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/board.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/board.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/board.segments/board/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/board.segments/board.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/execution-graph/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/execution-graph/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/execution-graph.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/execution-graph.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/execution-graph/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/execution-graph.segments/execution-graph.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/folders/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/folders/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/folders.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/folders.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/folders.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/folders.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/folders.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/folders.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/folders.segments/folders/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/folders.segments/folders.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/index.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/index.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/index.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/index.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/automations/page/react-loadable-manifest.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/automations/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/automations/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/graph/[taskId]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/graph/[taskId]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/knowledge/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/linear/page/react-loadable-manifest.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/linear/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/linear/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/[slug]/thread/[threadId]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/orphans/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_full.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects/orphans/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects/orphans.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/orphans.segments/projects.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/projects.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/projects.segments/_full.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/projects.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/projects.segments/projects.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/settings.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/settings.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/settings.segments/_full.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/settings.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/settings.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/settings.segments/settings.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/skills.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/skills.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/skills.segments/_full.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/skills.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/skills.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/skills.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/skills.segments/skills/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/skills.segments/skills.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/status/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/status.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/status.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/status.segments/_full.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/status.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/status.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/status.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/status.segments/status/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/status.segments/status.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/thread/[id]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/thread/[id]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/welcome/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/.next/server/app/welcome/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/app/welcome.html +2 -2
- package/cloud-runtime/standalone/.next/server/app/welcome.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/welcome.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/.next/server/app/welcome.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/app/welcome.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/welcome.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/welcome.segments/welcome/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/.next/server/app/welcome.segments/welcome.segment.rsc +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__015d40a6._.js +67 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__067034dd._.js +67 -0
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__20a2cb22._.js +8 -8
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__37844df7._.js +67 -0
- package/cloud-runtime/standalone/.next/server/chunks/{[root-of-the-server]__d9f2041b._.js → [root-of-the-server]__3a93931b._.js} +4 -4
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__a3955224._.js +16 -16
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__c8890cd6._.js +12 -12
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__0b2a2b86._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__32546242._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__5ff9ead4._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__f2c3b7ab._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__f59f0dc7._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/{[root-of-the-server]__d96bb3b5._.js → [root-of-the-server]__fbe1ab4a._.js} +2 -2
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_1e9b9b1e._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_24fe6213._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_36a0c486._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_3b21d3b2._.js +95 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_3eeac8f9._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_48db42b7._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_59f30a73._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_7d3b0032._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_916950b3._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_b598ae8a._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_cc8c8302._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_d972a4e1._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_dd7bb6fb._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_dd9880fb._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_f02d786a._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_fd8cafe9._.js +3 -0
- package/cloud-runtime/standalone/.next/server/chunks/ssr/app_projects_[slug]_linear_page_tsx_971a6ba7._.js +15 -12
- package/cloud-runtime/standalone/.next/server/chunks/ssr/components_chat-ui_bfeda794._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/ssr/components_thread_WorkspaceSidebar_tsx_e660301b._.js +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_54bf563f._.js +3 -0
- package/cloud-runtime/standalone/.next/server/middleware-manifest.json +5 -5
- package/cloud-runtime/standalone/.next/server/pages/404.html +2 -2
- package/cloud-runtime/standalone/.next/server/pages/500.html +2 -2
- package/cloud-runtime/standalone/.next/server/server-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/.next/server/server-reference-manifest.json +1 -1
- package/cloud-runtime/standalone/.next/static/chunks/04c135686161dbb1.js +40 -0
- package/cloud-runtime/standalone/.next/static/chunks/0d63db0c39c0a3b2.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/136ed07d84b14632.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/18866ed04ed3a063.css +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/{ccaf68956da192f8.js → 1bb38e61d891453c.js} +1 -1
- package/cloud-runtime/standalone/.next/static/chunks/2c7c8259c2b56bf5.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/2da1f13d50dc4e54.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/{fdadad2379039dce.js → 442eb8ef62bef9f9.js} +3 -3
- package/cloud-runtime/standalone/.next/static/chunks/{41c518743656a291.js → 5f33b52d582b0bb4.js} +1 -1
- package/cloud-runtime/standalone/.next/static/chunks/{97c11137cd6fc860.js → 64c2961edd3a3b13.js} +1 -1
- package/cloud-runtime/standalone/.next/static/chunks/{db131a0b6350e416.js → 692ce04abdbb3970.js} +1 -1
- package/cloud-runtime/standalone/.next/static/chunks/83be8569d298c6b0.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/87b3afe828c8cc52.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/{4343e7fe5bf5f34a.js → 9328740727c6456d.js} +1 -1
- package/cloud-runtime/standalone/.next/static/chunks/95d47e285ae9c031.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/b9bf5d3ee92a1313.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/ea35fb870141bcff.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/f59722264449b61c.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/f727d2c8f039511d.js +1 -0
- package/cloud-runtime/standalone/.next/static/chunks/{31fe4e36a00fd7b5.js → f8706212baa8ec67.js} +1 -1
- package/cloud-runtime/standalone/.next/static/chunks/fd823c9d1381335d.js +1 -0
- package/cloud-runtime/standalone/app/automations/page.tsx +11 -1
- package/cloud-runtime/standalone/app/projects/[slug]/layout.tsx +11 -1
- package/cloud-runtime/standalone/components/LinearBoard.tsx +118 -21
- package/cloud-runtime/standalone/components/chat-ui/ChatContainer.tsx +10 -0
- package/cloud-runtime/standalone/components/linear/RunScriptManager.tsx +356 -0
- package/cloud-runtime/standalone/components/thread/WorkspaceSidebar.tsx +35 -0
- package/cloud-runtime/standalone/hooks/useLinearRunScripts.ts +115 -0
- package/cloud-runtime/standalone/lib/linear-client.ts +33 -3
- package/cloud-runtime/standalone/lib/linear-execution-prompt.ts +92 -15
- package/cloud-runtime/standalone/state/automations/.state/c4300b01-1203-40fe-b3a9-b9fb9ec0c5cc.json +8 -0
- package/cloud-runtime/standalone/state/automations/active/c4300b01-1203-40fe-b3a9-b9fb9ec0c5cc.md +15 -0
- package/cloud-runtime/standalone/state/linearRunScripts.test.ts +99 -0
- package/cloud-runtime/standalone/state/linearRunScripts.ts +132 -0
- package/cloud-runtime/standalone/state/windowState.ts +21 -0
- package/cloud-runtime/standalone/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__1154e5b3._.js +0 -67
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__76290829._.js +0 -67
- package/cloud-runtime/standalone/.next/server/chunks/[root-of-the-server]__ad6d6402._.js +0 -67
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__21a9eaef._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__69887882._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__9ad05ace._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/[root-of-the-server]__bb149a22._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_11ce4c04._.js +0 -95
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_1d949e96._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_32a156b6._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_43c091dc._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_45175f47._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_4f0c544d._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_69164b06._.js +0 -95
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_7f7a828a._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_97f6a18e._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_a511a014._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_c3a3a829._.js +0 -3
- package/cloud-runtime/standalone/.next/server/chunks/ssr/_cee3cf86._.js +0 -95
- package/cloud-runtime/standalone/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_e8bdedc5._.js +0 -3
- package/cloud-runtime/standalone/.next/static/chunks/14fff3c493ea9c54.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/2a9c83f8211196e0.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/5405540470146645.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/69f2db4b9996b9c1.js +0 -37
- package/cloud-runtime/standalone/.next/static/chunks/8aeb69ceb497ad85.css +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/a9da98f883ac833b.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/b2127dc67c5ade9f.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/baf5d39d089efb87.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/bf2a2fafb710e63c.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/c78969fde5798275.js +0 -1
- package/cloud-runtime/standalone/.next/static/chunks/d3dc6fadb96ab3a2.js +0 -1
- package/cloud-runtime/standalone/state/automations/.state/24a6a5db-3b14-49c4-841f-29f10f015fbb.json +0 -8
- package/cloud-runtime/standalone/state/automations/active/24a6a5db-3b14-49c4-841f-29f10f015fbb.md +0 -17
- /package/cloud-runtime/standalone/.next/static/{lOB5InbmVcurTLQo9J3KK → gty0FO80D_lbq3o9lSpQQ}/_buildManifest.js +0 -0
- /package/cloud-runtime/standalone/.next/static/{lOB5InbmVcurTLQo9J3KK → gty0FO80D_lbq3o9lSpQQ}/_clientMiddlewareManifest.json +0 -0
- /package/cloud-runtime/standalone/.next/static/{lOB5InbmVcurTLQo9J3KK → gty0FO80D_lbq3o9lSpQQ}/_ssgManifest.js +0 -0
|
@@ -8,6 +8,6 @@ ${a}`)}if(Z.hasFilePaths){let a=await aJ(Z.filePaths);a.contextPrefix&&f.push(a.
|
|
|
8
8
|
|
|
9
9
|
${b.join("\n\n")}
|
|
10
10
|
|
|
11
|
-
`}(c);d&&f.push(d.trimEnd())}catch(a){console.error("Failed to load Linear issue mention context:",a)}let h=f.length>0?f.join("\n\n")+"\n\n":void 0,i=(0,aL.extractComposerRouting)(c,E);d&&$.pushEntry(d);let j=Y.attachmentIds.length>0?Y.attachmentIds:void 0,k=j?Y.getAttachmentMetas():void 0;a(e,10,j,k,E??void 0,h,i),_.commands.clearContent(),S([]),Y.clear(),Z.clearFilePaths(),U.close(),V.close(),X.close()},[_,U,V,l,a,Y,Z,R,X,$,I,t,E]),aj=U.isOpen&&U.filteredSuggestions.length>0;V.isOpen&&V.filteredCommands.length,W.isOpen&&W.suggestions.length,X.isOpen&&X.suggestions.length,aj&&U.filteredSuggestions[U.activeIndex];let ak=Y.staged.some(a=>"uploading"===a.status),al=!_||_.isEmpty,am=g.find(a=>a.id===E)??null;return(0,b.jsx)("div",{className:"pb-6",children:(0,b.jsxs)("div",{className:"max-w-3xl mx-auto",children:[(0,b.jsx)(a9,{onDrop:Y.stageFiles,children:(0,b.jsxs)("div",{className:"bg-[var(--app-shell-surface)] border border-[var(--app-shell-border)] shadow-[var(--shadow-sm)] focus-within:border-[var(--app-shell-border-strong)] focus-within:ring-1 focus-within:ring-[var(--ring)] transition-all flex flex-col rounded-2xl",children:[s&&(0,b.jsxs)("div",{className:`relative overflow-hidden border-b transition-all duration-500 ${r?"border-orange-200/50 dark:border-orange-500/30":"border-gray-100 dark:border-gray-800/60"}`,children:[(0,b.jsx)("div",{className:`absolute inset-0 transition-opacity duration-700 ${r?"opacity-100":"opacity-0"}`,style:{background:"linear-gradient(120deg, var(--warning-muted) 0%, transparent 50%, var(--warning-muted) 100%)",backgroundSize:"200% 100%",animation:r?"shipBgSweep 4s ease-in-out infinite":"none"}}),r&&(0,b.jsx)("div",{className:"absolute inset-0 overflow-hidden pointer-events-none",children:[...Array(8)].map((a,c)=>(0,b.jsx)("div",{className:"absolute h-[1.5px] rounded-full",style:{top:`${12+10*c}%`,right:"-10%",width:`${20+c%3*15}%`,background:"linear-gradient(to left, transparent, var(--warning))",opacity:.3+c%3*.1,animation:`shipSpeedLine ${.8+c%4*.3}s ${.1*c}s ease-in-out infinite`}},c))}),(0,b.jsx)("div",{className:"relative px-3 py-2",children:(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("div",{className:`p-1 rounded-md transition-all duration-300 ${r?"bg-[var(--warning)] text-[var(--warning-muted)] shadow-md":"bg-[var(--app-shell-subtle)] text-[var(--app-shell-muted)]"}`,style:r?{animation:"shipPulse 2s ease-in-out infinite"}:{},children:(0,b.jsx)(ac,{size:14})}),(0,b.jsx)("span",{className:`text-sm font-semibold transition-colors duration-300 ${r?"text-[var(--warning)]":"text-[var(--foreground)]"}`,children:"Ship Mode"}),(0,b.jsx)("span",{className:`text-xs transition-colors duration-300 ${r?"text-[var(--warning)] opacity-60":"text-[var(--app-shell-muted)] opacity-60"}`,children:"|"}),(0,b.jsx)("span",{className:`text-xs font-medium transition-colors duration-300 ${r?"text-[var(--warning)] opacity-80":"text-[var(--app-shell-muted)]"}`,children:r?"Continuous execution is active for this thread":"Continuous execution stays off until you enable it"})]}),(0,b.jsx)("button",{type:"button",onClick:()=>s(!r),className:`relative inline-flex h-6 w-11 items-center rounded-full transition-colors duration-200 focus:outline-none focus:ring-2 focus:ring-[var(--warning)] focus:ring-offset-2 focus:ring-offset-[var(--background)] ${r?"bg-[var(--warning)]":"bg-[var(--app-shell-border-strong)]"}`,children:(0,b.jsx)("span",{className:`inline-block h-4 w-4 transform rounded-full bg-[var(--app-shell-elevated)] shadow-sm transition-transform duration-200 ${r?"translate-x-6":"translate-x-1"}`})})]})})]}),(0,b.jsxs)("div",{className:"p-1.5 transition-all",children:[Y.staged.length>0&&(0,b.jsx)("div",{className:"mx-2 mt-2 mb-1",children:(0,b.jsx)(a8,{attachments:Y.staged,onRemove:Y.remove,onRetry:Y.retry})}),(0,b.jsxs)("div",{className:"p-2 relative",children:[(0,b.jsx)("input",{ref:O,type:"file",multiple:!0,className:"hidden",onChange:a=>{a.target.files&&a.target.files.length>0&&(Y.stageFiles(a.target.files),a.target.value="")}}),(0,b.jsxs)("div",{className:"flex-1 relative",onClick:aa,onPasteCapture:ab,children:[(0,b.jsx)(aq.EditorContent,{editor:_,className:"composer-editor"}),(0,b.jsx)(aZ,{isOpen:U.isOpen&&!V.isOpen,suggestions:U.filteredSuggestions,activeIndex:U.activeIndex,listboxId:"composer-mention-listbox",optionIdPrefix:"composer-mention-option",onSelect:ad}),(0,b.jsx)(a$,{isOpen:V.isOpen,commands:V.filteredCommands,activeIndex:V.activeIndex,listboxId:"composer-command-listbox",optionIdPrefix:"composer-command-option",onSelect:ah}),(0,b.jsx)(a4,{isOpen:W.isOpen,suggestions:W.suggestions,activeIndex:W.activeIndex,isLoading:W.isLoading,error:W.error,listboxId:"composer-file-mention-listbox",optionIdPrefix:"composer-file-mention-option",onSelect:a=>{"folder"===a.type?af(a):ae(a)},onAttachContents:W.onAttachContents}),(0,b.jsx)(a5,{isOpen:X.isOpen&&!V.isOpen&&!W.isOpen,suggestions:X.suggestions,activeIndex:X.activeIndex,listboxId:"composer-thread-mention-listbox",optionIdPrefix:"composer-thread-mention-option",onSelect:ag})]})]}),(0,b.jsxs)("div",{className:"flex items-center justify-between px-3 py-2 border-t border-[var(--app-shell-border)] transition-colors",children:[(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[(0,b.jsx)("button",{type:"button",onClick:Q,className:"p-1.5 text-[var(--app-shell-muted)] hover:text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)] rounded-lg transition-colors","aria-label":"Attach file",title:"Attach file",children:(0,b.jsx)(ba,{className:"h-4 w-4",strokeWidth:1.75})}),(0,b.jsx)("div",{className:"w-px h-4 bg-[var(--app-shell-border)]"}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("span",{className:"text-[10px] font-semibold text-[var(--app-shell-muted)] uppercase tracking-wider mr-1",children:"Agents"}),(0,b.jsx)("div",{className:"flex items-center -space-x-1.5",children:0===g.length?(0,b.jsx)("span",{className:"text-[10px] font-medium text-[var(--app-shell-muted)]",children:"No agents"}):g.map(a=>(0,b.jsxs)("div",{role:"button",tabIndex:0,"aria-pressed":E===a.id,onClick:()=>F(b=>b===a.id?null:a.id),onKeyDown:b=>{("Enter"===b.key||" "===b.key)&&(b.preventDefault(),F(b=>b===a.id?null:a.id))},className:`relative w-6 h-6 rounded-full bg-[var(--app-shell-subtle)] border-2 border-[var(--app-shell-elevated)] shadow-sm flex items-center justify-center overflow-visible shrink-0 transition-all cursor-pointer ${E===a.id?"-translate-y-0.5 ring-2 ring-[var(--ring)] ring-offset-1 ring-offset-[var(--background)]":"hover:-translate-y-0.5"}`,title:a.name,children:[(0,b.jsx)("img",{src:`https://api.dicebear.com/9.x/bottts-neutral/svg?seed=${a.id}&backgroundColor=${a.color?a.color.replace("#",""):"e2e8f0"}`,alt:a.name,className:"w-full h-full rounded-full object-cover"}),D&&(0,b.jsx)("span",{className:`absolute -bottom-0.5 -right-0.5 w-2 h-2 border border-[var(--app-shell-elevated)] rounded-full ${"queued"===C?"bg-amber-400":"bg-emerald-400"}`})]},a.id))})]}),am&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"w-px h-4 bg-[var(--app-shell-border)]"}),(0,b.jsxs)("span",{className:"text-[10px] font-medium text-[var(--app-shell-muted)]",children:["Pinned: ",(0,b.jsx)("span",{className:"text-[var(--foreground)]",children:am.name})]})]}),t.length>0&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"w-px h-4 bg-[var(--app-shell-border)]"}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsxs)("div",{className:"relative",ref:N,children:[(0,b.jsxs)("button",{type:"button",onClick:()=>M(a=>!a),className:"composer-repo-select-trigger","aria-haspopup":"listbox","aria-expanded":L,children:[(0,b.jsx)(bb.FolderGit2,{className:"h-3.5 w-3.5",strokeWidth:1.75}),(0,b.jsx)("span",{children:"Repos"}),(0,b.jsx)(u.ChevronDown,{className:`h-3 w-3 transition-transform ${L?"rotate-180":""}`})]}),L&&(0,b.jsx)("div",{className:"composer-repo-dropdown",role:"listbox","aria-multiselectable":"true",children:t.map(a=>{let c=I.has(a.id);return(0,b.jsxs)("button",{type:"button",role:"option","aria-selected":c,className:`composer-repo-dropdown__item ${c?"composer-repo-dropdown__item--selected":""}`,onClick:()=>K(b=>{let c=new Set(b);return c.has(a.id)?c.delete(a.id):c.add(a.id),c}),children:[(0,b.jsx)("span",{className:`w-3.5 h-3.5 rounded border flex items-center justify-center shrink-0 transition-colors ${c?"bg-emerald-500 border-emerald-500 text-white":"border-[var(--app-shell-border-strong)]"}`,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:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),(0,b.jsx)("span",{className:"truncate",children:a.name})]},a.id)})})]}),(A=(z=t.filter(a=>I.has(a.id))).slice(0,1),B=z.length-1,(0,b.jsxs)(b.Fragment,{children:[A.map(a=>(0,b.jsxs)("span",{className:"composer-repo-pill",title:a.path||a.name,children:[(0,b.jsx)(bb.FolderGit2,{className:"h-3 w-3 shrink-0",strokeWidth:1.75}),(0,b.jsx)("span",{className:"composer-repo-pill__name",children:a.name}),(0,b.jsx)("button",{type:"button",className:"composer-repo-pill__remove",onClick:()=>K(b=>{let c=new Set(b);return c.delete(a.id),c}),"aria-label":`Remove ${a.name}`,children:(0,b.jsx)(x.X,{className:"h-3 w-3"})})]},a.id)),B>0&&(0,b.jsxs)("span",{className:"composer-repo-pill composer-repo-pill--overflow",children:["+",B]})]}))]})]})]}),D?(0,b.jsx)("button",{type:"button",onClick:d,className:"flex items-center gap-2 bg-[var(--destructive-muted)] text-[var(--destructive)] border border-[var(--status-failed-border)] px-4 py-1.5 rounded-lg text-sm font-semibold hover:opacity-90 transition-colors",children:"Stop"}):(0,b.jsxs)("button",{type:"button",onClick:ai,disabled:al&&!Y.hasUploaded&&!Z.hasFilePaths||ak,className:"flex items-center gap-2 bg-[var(--primary)] hover:bg-[var(--primary-hover)] text-[var(--primary-foreground)] px-4 py-1.5 rounded-lg text-sm font-semibold transition-colors disabled:opacity-50 disabled:cursor-not-allowed shadow-sm",children:["Send",(0,b.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,b.jsx)("line",{x1:"22",y1:"2",x2:"11",y2:"13"}),(0,b.jsx)("polygon",{points:"22 2 15 22 11 13 2 9 22 2"})]})]})]})]})]})}),(0,b.jsxs)("div",{className:"mt-3 flex items-center justify-between text-xs text-[var(--app-shell-muted)] px-1",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("div",{className:`w-1.5 h-1.5 rounded-full ${"working"===C?"bg-emerald-400 animate-pulse":"queued"===C?"bg-amber-400":"bg-emerald-400"}`}),(0,b.jsx)("span",{children:"working"===C?"Working":"queued"===C?"Queued":"Ready"})]}),(0,b.jsxs)("span",{children:["Press ",(0,b.jsx)("kbd",{className:"px-1 py-0.5 rounded bg-[var(--app-shell-elevated)] border border-[var(--app-shell-border)] text-[var(--app-shell-muted)] shadow-sm text-[10px]",children:"Enter"})," to send, ",(0,b.jsx)("kbd",{className:"px-1 py-0.5 rounded bg-[var(--app-shell-elevated)] border border-[var(--app-shell-border)] text-[var(--app-shell-muted)] shadow-sm text-[10px]",children:"Shift"})," + ",(0,b.jsx)("kbd",{className:"px-1 py-0.5 rounded bg-[var(--app-shell-elevated)] border border-[var(--app-shell-border)] text-[var(--app-shell-muted)] shadow-sm text-[10px]",children:"Enter"})," for new line"]})]})]})})}var be=a.i(655672);let bf={activeParticipantIdsByThread:{}};function bg(a,b){let c=a.trim();if(c)({...bf}).activeParticipantIdsByThread[c]=function(a){if(!Array.isArray(a))return[];let b=new Set,c=[];for(let d of a){if("string"!=typeof d)continue;let a=d.trim();!a||b.has(a)||(b.add(a),c.push(a))}return c}(b)}var bh=a.i(215040),bi=a.i(731626);function bj({isOpen:a,title:d,message:e,preview:f,confirmLabel:g="Confirm",cancelLabel:h="Cancel",variant:i="default",onConfirm:j,onCancel:k}){let l=(0,c.useRef)(null),m=(0,c.useRef)(null);(0,c.useEffect)(()=>{if(a){let a=setTimeout(()=>l.current?.focus(),50);return()=>clearTimeout(a)}},[a]);let n=(0,c.useCallback)(a=>{"Escape"===a.key&&k()},[k]);if(!a)return null;let o="danger"===i;return(0,b.jsxs)("div",{style:{animation:"confirm-overlay-in 200ms ease-out"},onClick:a=>a.target===a.currentTarget&&k(),onKeyDown:n,className:"jsx-1da17079bc733bcf fixed inset-0 z-[100] flex items-center justify-center bg-black/50 backdrop-blur-md",children:[(0,b.jsxs)("div",{ref:m,style:{animation:"confirm-dialog-in 250ms cubic-bezier(0.34, 1.56, 0.64, 1)"},className:"jsx-1da17079bc733bcf w-full max-w-md mx-4 bg-[var(--card-bg)] rounded-2xl border border-[var(--card-border)] shadow-2xl overflow-hidden",children:[(0,b.jsx)("div",{className:"jsx-1da17079bc733bcf px-6 pt-6 pb-3",children:(0,b.jsxs)("div",{className:"jsx-1da17079bc733bcf flex items-start gap-4",children:[o&&(0,b.jsx)("div",{className:"jsx-1da17079bc733bcf flex-shrink-0 w-11 h-11 rounded-full bg-red-500/10 border border-red-500/20 flex items-center justify-center",children:(0,b.jsx)("svg",{fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:1.5,className:"jsx-1da17079bc733bcf w-5 h-5 text-red-500",children:(0,b.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M14.74 9l-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 01-2.244 2.077H8.084a2.25 2.25 0 01-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 00-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 013.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 00-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 00-7.5 0",className:"jsx-1da17079bc733bcf"})})}),(0,b.jsxs)("div",{className:"jsx-1da17079bc733bcf flex-1 min-w-0",children:[(0,b.jsx)("h3",{className:"jsx-1da17079bc733bcf text-[15px] font-semibold text-[var(--foreground)]",children:d}),(0,b.jsx)("p",{className:"jsx-1da17079bc733bcf mt-1 text-[13px] text-[var(--muted-foreground)] leading-relaxed",children:e})]})]})}),f&&(0,b.jsx)("div",{className:"jsx-1da17079bc733bcf mx-6 mb-3 px-3 py-2.5 rounded-lg bg-[var(--muted)]/40 border border-[var(--card-border)]",children:(0,b.jsxs)("p",{className:"jsx-1da17079bc733bcf text-[12px] text-[var(--muted-foreground)] line-clamp-3 leading-relaxed italic",children:["“",f,"”"]})}),(0,b.jsx)("div",{className:"jsx-1da17079bc733bcf mx-6 border-t border-[var(--card-border)]"}),(0,b.jsxs)("div",{className:"jsx-1da17079bc733bcf px-6 py-4 flex items-center justify-end gap-2.5",children:[(0,b.jsx)("button",{onClick:k,className:"jsx-1da17079bc733bcf px-4 py-2 rounded-lg text-[13px] font-medium text-[var(--muted-foreground)] hover:text-[var(--foreground)] hover:bg-[var(--muted)]/60 transition-all duration-150",children:h}),(0,b.jsx)("button",{ref:l,onClick:j,className:`jsx-1da17079bc733bcf px-4 py-2 rounded-lg text-[13px] font-medium transition-all duration-150 ${o?"bg-red-500 text-white hover:bg-red-600 active:scale-[0.97]":"btn-primary active:scale-[0.97]"}`,children:g})]})]}),(0,b.jsx)(bi.default,{id:"1da17079bc733bcf",children:"@keyframes confirm-overlay-in{0%{opacity:0}to{opacity:1}}@keyframes confirm-dialog-in{0%{opacity:0;transform:scale(.9)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}"})]})}var bk=a.i(56196),bl=a.i(587532),bm=a.i(613749);let bn=(0,s.default)("square-terminal",[["path",{d:"m7 11 2-2-2-2",key:"1lz0vl"}],["path",{d:"M11 13h4",key:"1p7l4v"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}]]),bo=(0,s.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"}]]),bp=(0,s.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"}]]),bq=(0,s.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"}]]);var br=a.i(953722),bs=a.i(404650),bs=bs;function bt({logs:a,participants:d,onClear:e,open:f,onToggle:g}){let[h,i]=(0,c.useState)(420),[j,k]=(0,c.useState)(null),l=(0,c.useRef)(null),m=(0,c.useRef)(!1),n=(0,c.useRef)(0),o=(0,c.useRef)(0),p=Object.fromEntries(d.map(a=>[a.id,a]));(0,c.useEffect)(()=>{f&&l.current?.scrollIntoView({behavior:"smooth"})},[a.length,f]);let q=(0,c.useCallback)(a=>{a.preventDefault(),m.current=!0,n.current=a.clientX,o.current=h,a.target.setPointerCapture(a.pointerId)},[h]),r=(0,c.useCallback)(a=>{if(!m.current)return;let b=n.current-a.clientX;i(Math.max(280,Math.min(o.current+b,.6*window.innerWidth)))},[]),s=(0,c.useCallback)(()=>{m.current=!1},[]);if(!f)return null;let t=j?a.filter(a=>a.participantId===j):a;return(0,b.jsxs)("div",{className:"flex h-full shrink-0",children:[(0,b.jsx)("div",{onPointerDown:q,onPointerMove:r,onPointerUp:s,className:"w-1.5 cursor-col-resize bg-zinc-800 hover:bg-zinc-600 transition-colors flex items-center justify-center shrink-0",children:(0,b.jsx)("div",{className:"h-8 w-0.5 rounded-full bg-zinc-500"})}),(0,b.jsxs)("div",{className:"flex flex-col bg-zinc-950 h-full",style:{width:h},children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 px-3 py-1.5 border-b border-zinc-800 shrink-0",children:[(0,b.jsx)("span",{className:"text-[11px] text-[var(--muted-foreground)] font-mono",children:"Logs"}),(0,b.jsxs)("select",{value:j||"",onChange:a=>k(a.target.value||null),className:"bg-zinc-800 text-zinc-300 text-[11px] rounded px-1.5 py-0.5 outline-none",children:[(0,b.jsx)("option",{value:"",children:"All"}),d.map(a=>(0,b.jsx)("option",{value:a.id,children:a.name},a.id))]}),(0,b.jsxs)("div",{className:"ml-auto flex items-center gap-2",children:[(0,b.jsx)("button",{onClick:e,className:"text-[11px] text-[var(--muted-foreground)] hover:text-zinc-300",children:"Clear"}),(0,b.jsx)("button",{onClick:g,className:"text-[11px] text-[var(--muted-foreground)] hover:text-zinc-300",children:"✕"})]})]}),(0,b.jsxs)("div",{className:"flex-1 overflow-y-auto font-mono text-[11px] leading-4 px-3 py-2",children:[t.map((a,c)=>{let d=p[a.participantId]?.name||a.participantId,e=p[a.participantId]?.color||"#888",f="stderr"===a.stream;return(0,b.jsxs)("div",{className:"flex gap-2 whitespace-pre-wrap break-all",children:[(0,b.jsx)("span",{className:"text-[var(--muted-foreground)] shrink-0 select-none",children:new Date(a.timestamp).toLocaleTimeString([],{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"})}),(0,b.jsx)("span",{className:"shrink-0",style:{color:e},children:d}),(0,b.jsx)("span",{className:f?"text-red-400":"text-[var(--muted-foreground)]",children:a.line})]},c)}),(0,b.jsx)("div",{ref:l})]})]})]})}function bu(){let[a,d]=(0,c.useState)("unknown"),[e,f]=(0,c.useState)([]),[g,h]=(0,c.useState)(""),[j,k]=(0,c.useState)(!1),l=(0,c.useCallback)(async()=>{try{let a=await fetch("/api/status");if(!a.ok)return void d("unknown");let b=await a.json();d("ok"===b.status?"ok":"degraded");let c=b.services.filter(a=>"agx-chat"===a.name||"agx-cloud"===a.name);f(c),h(new Date().toLocaleTimeString())}catch{d("unknown"),f([])}},[]);return(0,c.useEffect)(()=>{l();let a=setInterval(l,3e4);return()=>clearInterval(a)},[l]),(0,b.jsxs)("div",{className:"relative",onMouseEnter:()=>k(!0),onMouseLeave:()=>k(!1),children:[(0,b.jsx)(i.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":""}`})}),j&&(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:[e.length>0?(0,b.jsx)("ul",{className:"space-y-1.5",children:e.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..."}),g&&(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: ",g]})]})]})}function bv(a,b=!1){return(b?a.replace(/(?:^|\n)Thinking\.\.\.[\s\S]*?\.\.\.done thinking\.?\s*/g,"\n").trim():a).replaceAll("<!-- thread-summary -->","").replaceAll("<!-- task-draft -->","").trim().replace(/\r\n/g,"\n").replace(/\n{3,}/g,"\n\n").trim()}async function bw(a){let b=await fetch(`/api/threads/knowledge?rootMessageId=${encodeURIComponent(a)}`,{cache:"no-store"});if(!b.ok)throw Error("Failed to load thread knowledge run");let c=await b.json().catch(()=>null);return c?.run??null}function bx(a,b,c){let d=new Set(a.map(a=>a.id)),e=c?b.find(a=>a.thread_ids?.includes(c)):b[0],f=e?e.agents.map(a=>a.agent_id).filter(a=>d.has(a)):[];return e?f:0===f.length?a.map(a=>a.id):f}function by(a,b,c){let d=Object.fromEntries(b.map(a=>[a.id,a])),e=[];for(let b of a){let a="user"===b.role?"You":b.participantId?d[b.participantId]?.name||b.participantId:"Assistant",c=bv(b.content,"user"!==b.role);c&&(e.push(`**${a}:**`),e.push(""),e.push(c),e.push(""))}if(c){let a=function(a){if(0===a.tasks.length)return"";let b=new Map(a.tasks.map(a=>[a.id,a.title.trim()])),c=["## Draft Tasks",""];return a.projectName&&c.push(`Project: ${a.projectName}`),a.buildStatus&&c.push(`Build status: ${a.buildStatus.replaceAll("_"," ")}`),(a.projectName||a.buildStatus)&&c.push(""),a.tasks.forEach((d,e)=>{let f=bv(d.title)||`Task ${e+1}`,g=bv(d.description),h=(d.dependsOn||[]).map(a=>b.get(a)?.trim()).filter(a=>!!a),i=a.builtTaskIds?.[d.id];c.push(`${e+1}. [ ] **${f}**`),g&&c.push(g),h.length>0&&c.push(`Depends on: ${h.join(", ")}`),i&&c.push(`agx task id: \`${i}\``),c.push("")}),c.join("\n").trim()}(c);a&&e.push(a)}return e.join("\n").trim()}function bz({projectSlug:a,initialThreadId:i,initialRootMessageId:j,showSidebar:k=!0}={}){let l=(0,d.useSearchParams)(),{threads:m,activeThreadId:n,selectThread:o,createThread:p,deleteThread:q,updateThreadMessages:r,isCreating:s,deletingThreadId:t,renamingThreadId:u,isLoading:v,isRestoringActiveThread:w,renameThread:x,updateThreadStatus:y,updateThreadOutcomeNote:z,updateMessageThreadStatus:A,updateMessageOutcomeNote:B}=(0,g.useThreadState)(i),{messages:C,setMessages:D,logs:E,sendMessage:F,loadHistory:H,clearLogs:I,chatRuns:J,setChatRuns:K,stop:L,stopThread:M}=(0,e.useGroupChat)(n),{activeAgents:N,processes:O,streaming:P,chatRuns:Q,poll:R}=(0,f.useProcessPolling)(n?{workspaceId:n}:null,{messages:C,setMessages:D}),S=(0,c.useMemo)(()=>{let a=Date.now(),b=new Map(Q.map(a=>[a.chatRunId,a]));for(let c of J)!(!c.optimistic||b.has(c.chatRunId))&&(a-(c.enqueuedAt??0)>5e3||b.set(c.chatRunId,c));return Array.from(b.values()).filter(a=>"queued"===a.status||"running"===a.status)},[J,Q]),T=N.size>0||S.some(a=>"running"===a.status)?"working":S.some(a=>"queued"===a.status)?"queued":"ready";(0,c.useEffect)(()=>{K(a=>{let b=Date.now(),c=new Map(a.filter(a=>"string"==typeof a.chatRunId&&a.chatRunId.length>0).map(a=>[a.chatRunId,a]));for(let a of Q)a?.chatRunId&&c.set(a.chatRunId,a);return Array.from(c.values()).filter(a=>!!(!a.optimistic||Q.some(b=>b.chatRunId===a.chatRunId))||b-(a.enqueuedAt??0)<=5e3).sort((a,b)=>String(a.chatRunId||"").localeCompare(String(b.chatRunId||"")))})},[Q,K]);let U=(0,c.useCallback)(async a=>{await fetch(`/api/chat-runs/${encodeURIComponent(a)}/signal`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({signal:"cancel",reason:"Stopped from chat UI"})}).catch(()=>{})},[]),V=(0,c.useCallback)(async()=>{let a=S[0];a?.chatRunId&&await U(a.chatRunId),await L(),await R()},[S,U,L,R]),W=(0,c.useCallback)(async a=>{let b=S.find(b=>b.rootMessageId===a);b?.chatRunId&&await U(b.chatRunId),await M(a),await R()},[S,U,M,R]),X=(0,c.useRef)(V);(0,c.useEffect)(()=>{X.current=V},[V]);let{projects:Y,createProject:Z,deleteProject:$,addAgent:_,removeAgent:aa,reorderAgents:ab}=(0,bk.useProjectsWithAgents)(),{projects:ac,updateProject:ad}=(0,bk.useProjects)(),ae=(0,c.useMemo)(()=>n?Y.filter(a=>a.thread_ids?.includes(n)):Y,[Y,n]),af=(0,c.useMemo)(()=>a||ae[0]?.slug||void 0,[a,ae]),[ah,ai]=(0,c.useState)([]),[aj,ak]=(0,c.useState)(!1),[al,an]=(0,c.useState)([]),[ao,aq]=(0,c.useState)(!1),[ar,as]=(0,c.useState)(()=>"light"),[at,au]=(0,c.useState)(!1),av=(0,c.useRef)(!1);(0,c.useEffect)(()=>{let a=(0,be.loadWorkspaceSidebarVisible)();av.current=!0,au(a)},[]),(0,c.useEffect)(()=>{},[ar]);let[aw,ax]=(0,c.useState)(!1),[ay,az]=(0,c.useState)(new Set),[aA,aB]=(0,c.useState)(!1),[aC,aD]=(0,c.useState)(!1),[aE,aF]=(0,c.useState)(null),[aG,aH]=(0,c.useState)(j??null),aI=l.get("open")?.trim()||null,aJ=aG?ay.has(aG):aA;(0,c.useEffect)(()=>{if(!aG)return;let a=!1,b=()=>{fetch(`/api/schedules?rootMessageId=${encodeURIComponent(aG)}`).then(a=>a.json()).then(b=>{a||az(a=>{let c=a.has(aG);if(b.active&&!c){let b=new Set(a);return b.add(aG),b}if(!b.active&&c){let b=new Set(a);return b.delete(aG),b}return a})}).catch(()=>{})};b();let c=setInterval(b,1e4);return()=>{a=!0,clearInterval(c)}},[aG]),(0,c.useEffect)(()=>{let a=!1,b=()=>{fetch("/api/schedules").then(a=>a.json()).then(b=>{!a&&b.activeRootMessageIds&&az(a=>{let c=new Set(b.activeRootMessageIds);for(let b of a)c.add(b);return c.size===a.size&&[...c].every(b=>a.has(b))?a:c})}).catch(()=>{})};b();let c=setInterval(b,15e3);return()=>{a=!0,clearInterval(c)}},[]),(0,c.useEffect)(()=>{if(aG){let b=a?`/projects/${a}/thread/${encodeURIComponent(n??i??"")}?open=${encodeURIComponent(aG)}`:`/thread/${aG}`;window.history.replaceState(null,"",b)}else window.history.replaceState(null,"",a?`/projects/${a}/thread/${encodeURIComponent(n??i??"")}`:"/")},[n,i,aG,a]),(0,c.useEffect)(()=>{a&&aH(a=>a===aI?a:aI)},[a,aI]),(0,c.useEffect)(()=>{j&&(async()=>{try{let a=await fetch(`/api/messages/${j}`);if(!a.ok)return;let{threadId:b}=await a.json();b&&o(b)}catch{}})()},[j,o]);let[aK,aM]=(0,c.useState)(""),[aN,aO]=(0,c.useState)([]),[aP,aQ]=(0,c.useState)(0),[aR,aS]=(0,c.useState)(!1),[aT,aU]=(0,c.useState)(null),[aV,aW]=(0,c.useState)(null),[aX,aY]=(0,c.useState)(new Set),[aZ,a$]=(0,c.useState)(null),[a_,a0]=(0,c.useState)(null),[a1,a2]=(0,c.useState)({}),a3=(0,c.useCallback)(a=>{a2(b=>{let c="function"==typeof a?a(b):a;if(n)for(let[a,d]of Object.entries(c))b[a]!==d&&fetch("/api/task-drafts",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:n,messageId:a,draft:d})}).catch(()=>{});return c})},[n]),[a4,a5]=(0,c.useState)(new Set),[a6,a7]=(0,c.useState)(new Set),a8=(0,c.useRef)(null),a9=(0,c.useRef)(null),ba=(0,c.useRef)(null),bb=(0,c.useRef)(""),bc=(0,c.useCallback)(async(a=!1)=>{try{let a=await fetch("/api/participants");if(!a.ok)return;let b=await a.json();if(!Array.isArray(b))return;ai(b)}finally{a&&ak(!0)}},[]),bi=(0,c.useCallback)(async a=>{try{await (0,bh.updateUserPreferences)({threadSidebarVisible:a})}catch(a){console.error("Unable to persist thread sidebar preference",a)}},[bh.updateUserPreferences]),bv=(0,c.useCallback)(a=>{(0,be.persistWorkspaceSidebarVisible)(a),bi(a)},[bi]),bA=aK.trim(),bB=bA.length>0,bC=(0,c.useMemo)(()=>Object.fromEntries(m.map(a=>[a.id,a.title?.trim()||"Untitled thread"])),[m]),bD=(0,c.useMemo)(()=>{if(!aG)return[];let a=new Set([C.find(a=>a.id===aG),...C.filter(a=>a.rootMessageId===aG)].filter(Boolean).map(a=>a.participantId).filter(Boolean));return Object.keys(P).forEach(b=>{P[b].rootMessageId===aG&&a.add(b)}),ah.filter(b=>a.has(b.id))},[aG,C,P,ah]),bE=(0,c.useMemo)(()=>{let a=new Map(ah.map(a=>[a.id,a]));return al.map(b=>a.get(b)).filter(Boolean)},[ah,al]),bF=(0,c.useMemo)(()=>ac.map(a=>({id:a.id,name:a.name,slug:a.slug})),[ac]),bG=(0,c.useMemo)(()=>{if(!aG)return 0;let a=[C.find(a=>a.id===aG),...C.filter(a=>a.rootMessageId===aG)].filter(Boolean);return 0===a.length?0:Math.max(...a.map(a=>a.timestamp))},[aG,C]),bH=(0,c.useMemo)(()=>{if(!aG)return"";let a=C.find(a=>a.id===aG);if(!a)return"Discussion";let b=a.content.trim();return b.length>60?b.slice(0,60)+"...":b},[aG,C]),bI=(0,c.useMemo)(()=>{if(!aG)return null;let a=C.find(a=>a.id===aG),b=a?.threadStatus??"active";return{value:b,...{active:{label:"Active",color:"#f59e0b"},paused:{label:"Paused",color:"#f97316"},"in-review":{label:"In Review",color:"#6b7280"},done:{label:"Done",color:"#3b82f6"},archived:{label:"Archived",color:"#9ca3af"}}[b]}},[aG,C]),bJ=(0,c.useCallback)(()=>{aM(""),aO([]),aQ(0),aU(null),aS(!1)},[]);(0,c.useCallback)(()=>{let a=by(C,ah);navigator.clipboard.writeText(a).then(()=>{aq(!0),setTimeout(()=>aq(!1),2e3)})},[C,ah]);let[bK,bL]=(0,c.useState)(null),bM=(0,c.useCallback)(a=>{let b=C.find(b=>b.id===a);if(!b)return;let c=[b,...C.filter(b=>b.rootMessageId===a).sort((a,b)=>a.timestamp-b.timestamp)];bL({title:b.content.slice(0,60).replace(/\n/g," ").trim()||"Untitled",threadId:a,messages:c})},[C]),bN=(0,c.useCallback)(a=>{let b=by([C.find(b=>b.id===a),...C.filter(b=>b.rootMessageId===a).sort((a,b)=>a.timestamp-b.timestamp)].filter(Boolean),ah,a1[a]);navigator.clipboard.writeText(b).catch(a=>console.error("Failed to copy thread",a))},[C,ah,a1]),bO=(0,c.useCallback)(async()=>{if(aG){aD(!0);try{let a=["repo"];af&&a.push("project");let b=await fetch("/api/threads/knowledge",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({rootMessageId:aG,scopes:a})}),c=await b.json().catch(()=>null);if(!b.ok)throw Error("string"==typeof c?.error?c.error:"Request failed");aF(c?.run??null)}catch(b){let a=b instanceof Error?b.message:"Request failed";window.alert(`Failed to extract knowledge: ${a}`)}finally{aD(!1)}}},[aG,af]);(0,c.useEffect)(()=>{if(!aG){aF(null),aD(!1);return}let a=!1;return(async()=>{try{let b=await bw(aG);if(a)return;aF(b)}catch{a||aF(null)}})(),()=>{a=!0}},[aG]),(0,c.useEffect)(()=>{if(!aG||aE?.status!=="running")return;let a=!1,b=async()=>{try{let b=await bw(aG);if(a)return;aF(b)}catch{}};b();let c=window.setInterval(()=>{b()},2e3);return()=>{a=!0,window.clearInterval(c)}},[aG,aE?.status]);let bP=aE?.status==="running",bQ=aC||bP,bR=(aE?.repoInsertedCount??0)+(aE?.projectInsertedCount??0),bS=(0,c.useMemo)(()=>{if(!aE)return null;if("running"===aE.status)return"Learning in progress";if("failed"===aE.status)return"Last learning run failed";if(bR>0){let a=1===bR?"insight":"insights";return`Learned ${bR} ${a}`}return"No new learnings"},[bR,aE]);(0,c.useEffect)(()=>{bc(!0)},[bc]);let bT=(0,c.useMemo)(()=>{if(!aj)return[];let a=new Set(ah.map(a=>a.id)),b=new Set;for(let c of C)"assistant"===c.role&&c.participantId&&(a.has(c.participantId)||b.add(c.participantId));for(let c of Object.keys(P))a.has(c)||b.add(c);return Array.from(b).sort()},[C,ah,aj,P]);(0,c.useEffect)(()=>{if(!aj)return;let a=bT.join("|");if(!a){bb.current="";return}bb.current!==a&&(bb.current=a,bc(!1))},[aj,bc,bT]),(0,c.useEffect)(()=>{if(!aj)return;let a=bx(ah,Y,n);if(!n)return void an(a);let b=function(a){let b=a.trim();if(!b)return null;let c={...bf};return b in c.activeParticipantIdsByThread?[...c.activeParticipantIdsByThread[b]]:null}(n);if(null===b)return void an(a);let c=function(a,b){if(null===b)return a;let c=new Set(b);return a.filter(a=>c.has(a))}(a,b),d=c.length>0?c:a;(d.length!==b.length||d.some((a,c)=>b[c]!==a))&&bg(n,d),an(d)},[n,ah,aj,Y]),(0,c.useEffect)(()=>{let a=!1;return(async()=>{try{let b=await (0,bh.fetchUserPreferences)();if(a)return;au(a=>a===b.threadSidebarVisible?a:av.current?(bi(a),a):((0,be.persistWorkspaceSidebarVisible)(b.threadSidebarVisible),b.threadSidebarVisible))}catch(a){console.error("Failed to load user preferences",a)}})(),()=>{a=!0}},[bi]),(0,c.useEffect)(()=>{v||s||0!==m.length||p({id:"global",title:"General"})},[v,s,m.length,p]),(0,c.useEffect)(()=>()=>{ba.current&&window.clearTimeout(ba.current)},[]),(0,c.useEffect)(()=>{let a=a=>{if((a.metaKey||a.ctrlKey)&&"k"===a.key.toLowerCase()){a.preventDefault(),a8.current?.focus(),a8.current?.select();return}"Escape"===a.key&&bA&&bJ()};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[bJ,bA]),(0,c.useEffect)(()=>{if(!bA){aO([]),aQ(0),aU(null),aS(!1);return}let a=!1;aS(!0);let b=window.setTimeout(()=>{(async()=>{try{let b=new URLSearchParams({q:bA,limit:"20",offset:"0"}),c=await fetch(`/api/search?${b.toString()}`),d=await c.json().catch(()=>null);if(a)return;if(!c.ok){let a=d&&"object"==typeof d&&"error"in d?String(d.error):"Search failed";aO([]),aQ(0),aU(a);return}aO(Array.isArray(d.results)?d.results:[]),aQ("number"==typeof d.total?d.total:0),aU(null)}catch(b){if(a)return;console.error("Search request failed",b),aO([]),aQ(0),aU("Search failed")}finally{a||aS(!1)}})()},300);return()=>{a=!0,window.clearTimeout(b)}},[bA]);let bU=(0,c.useRef)(null);(0,c.useEffect)(()=>{null!==bU.current&&bU.current!==n&&(X.current(),a9.current?(aH(a9.current),a9.current=null):aH(null)),bU.current=n,n&&(H(n),fetch(`/api/task-drafts?threadId=${encodeURIComponent(n)}`).then(a=>a.json()).then(a=>{a.drafts&&Object.keys(a.drafts).length>0?a2(a.drafts):a2({})}).catch(()=>a2({})))},[n,H]),(0,c.useEffect)(()=>{n&&r(n,C)},[n,C,r]);let bV=(0,c.useCallback)((a,b,c=10,d,e,f)=>{n&&0!==bE.length&&F(b,c,n,a,void 0,void 0,(0,aL.orderParticipantIds)(bE.map(a=>a.id),d),af,e,f)},[n,F,bE,af]),bW=(0,c.useCallback)(async a=>{if(n){if(0===bE.length)return void window.alert("Enable at least one agent in this project.");aY(b=>new Set(b).add(a));try{let b=await fetch("/api/summarize",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:n,rootMessageId:a,activeParticipantIds:bE.map(a=>a.id)})});b.ok?await H(n):console.error("Summarize failed:",await b.text())}catch(a){console.error("Summarize error:",a)}finally{aY(b=>{let c=new Set(b);return c.delete(a),c})}}},[n,H,bE]),bX=(0,c.useCallback)(async a=>{if(n){if(0===bE.length)return void window.alert("Enable at least one agent in this project.");a5(b=>new Set(b).add(a));try{let b=await fetch("/api/tasks/extract",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:n,rootMessageId:a,activeParticipantIds:bE.map(a=>a.id)})});if(b.ok){let c=await b.json(),d={draftId:crypto.randomUUID(),revision:0,tasks:c.tasks,buildStatus:"idle"};a3(b=>({...b,[a]:d}))}else console.error("Task extraction failed:",await b.text())}catch(a){console.error("Task extraction error:",a)}finally{a5(b=>{let c=new Set(b);return c.delete(a),c})}}},[n,bE]),bY=(0,c.useCallback)((a,b)=>{a3(c=>({...c,[a]:b}))},[]),bZ=(0,c.useCallback)(async(a,b,c,d)=>{if(n){a7(a=>new Set(a).add(b.draftId)),a3(e=>({...e,[a]:{...b,buildStatus:"building",projectId:c,projectName:d}}));try{let d=crypto.randomUUID(),e=await G(b.tasks,c,d,b.builtTaskIds),f={...b.builtTaskIds},g=!1;for(let a of e.results)"created"===a.status&&a.remoteTaskId?f[a.clientTaskId]=a.remoteTaskId:g=!0;a3(b=>({...b,[a]:{...b[a],buildId:d,buildStatus:g?"partial_failure":"done",builtTaskIds:f}}))}catch(b){console.error("Build error:",b),a3(b=>({...b,[a]:{...b[a],buildStatus:"partial_failure"}}))}finally{a7(a=>{let c=new Set(a);return c.delete(b.draftId),c})}}},[n]),b$=(0,c.useCallback)(()=>{if(!n)return;let a=(()=>{if(aG)return aG;let a=new Set(C.map(a=>a.rootMessageId).filter(a=>!!a));for(let b=C.length-1;b>=0;b-=1){let c=C[b];if(!c.rootMessageId&&a.has(c.id))return c.id}return null})();a?bX(a):console.warn("No thread with replies available to extract tasks from")},[n,bX,C,aG]);(0,c.useCallback)(a=>{aH(a)},[]);let b_=(0,c.useCallback)(a=>{aH(a)},[]),b0=(0,c.useCallback)(a=>{let b=a?.trim()??"";b&&aM(b),requestAnimationFrame(()=>{a8.current?.focus(),b||a8.current?.select()})},[]),b1=(0,c.useCallback)(()=>{if(!n)return;let a=(()=>{if(aG)return aG;let a=new Set(C.map(a=>a.rootMessageId).filter(a=>!!a));for(let b=C.length-1;b>=0;b-=1){let c=C[b];if(!c.rootMessageId&&a.has(c.id))return c.id}return null})();a?bW(a):console.warn("No thread with replies available to summarize")},[n,bW,C,aG]),b2=(0,c.useCallback)(async(a,b,c,d,e,f,g)=>{let h=a.match(/^\/search(?:\s+([\s\S]+))?$/i);if(h)return void b0(h[1]);if(/^\/summarize(?:\s+[\s\S]+)?$/i.test(a))return void b1();if(/^\/tasks(?:\s+[\s\S]+)?$/i.test(a)||/^\/create(?:\s+[\s\S]+)?$/i.test(a))return void b$();aJ&&aG&&(az(a=>{let b=new Set(a);return b.delete(aG),b}),fetch("/api/schedules",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"stop",rootMessageId:aG})}).catch(a=>console.error("Failed to deactivate schedule:",a)));let i=n;i||(i=(await p()).id);let j=bE.map(a=>a.id);if(0===j.length)return void window.alert("Enable at least one agent in this project.");let k=(0,aL.orderParticipantIds)(j,e);if(aG)return void await F(a,b,i,aG,c,d,k,af,f,g);let l=await F(a,b,i,null,c,d,k,af,f,g);aA&&l&&(aB(!1),az(a=>{let b=new Set(a);return b.add(l),b}),fetch("/api/schedules",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"activate",rootMessageId:l})}).catch(a=>console.error("Failed to activate schedule for new thread:",a)))},[n,aJ,aA,p,b0,b1,aG,bE,F,af]),b3=(0,c.useCallback)(async a=>{if(!aG)return void aB(a);az(b=>{let c=new Set(b);return a?c.add(aG):c.delete(aG),c});try{await fetch("/api/schedules",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:a?"activate":"stop",rootMessageId:aG})})}catch(a){console.error("Failed to toggle autonomous schedule:",a)}},[aG]),b4=(0,c.useCallback)(a=>{let b=a.rootMessageId||a.messageId;a.threadId!==n?(a9.current=b,o(a.threadId)):aH(b),aW(null),window.requestAnimationFrame(()=>{aW(a.messageId),ba.current&&window.clearTimeout(ba.current),ba.current=window.setTimeout(()=>{aW(b=>b===a.messageId?null:b)},2e3)}),bJ()},[n,bJ,o]),b5=(0,c.useCallback)(async a=>{V(),await q(a)},[q,V]),b6=(0,c.useCallback)(a=>{if(!n||!a)return;let b=C.find(b=>b.id===a);a0({type:"thread",id:a,preview:b?.content?.slice(0,120)||void 0})},[n,C]),b7=(0,c.useCallback)(async a=>{if(n){a$(a),W(a);try{let b=new URLSearchParams({threadId:n,rootMessageId:a}),c=await fetch(`/api/history?${b.toString()}`,{method:"DELETE"});if(!c.ok)return void console.error("Failed to delete message thread",await c.text());aH(b=>b===a?null:b),aW(null);let d=C.filter(b=>b.id!==a&&b.rootMessageId!==a);r(n,d),await H(n)}catch(a){console.error("Failed to delete message thread",a)}finally{a$(b=>b===a?null:b)}}},[n,H,C,W,r]),b8=(0,c.useCallback)(a=>{if(!n||!a)return;let b=C.find(b=>b.id===a);a0({type:"message",id:a,preview:b?.content?.slice(0,120)||void 0})},[n,C]),b9=(0,c.useCallback)(async a=>{if(n)try{let b=new URLSearchParams({threadId:n,messageId:a}),c=await fetch(`/api/history?${b.toString()}`,{method:"DELETE"});if(!c.ok)return void console.error("Failed to delete message",await c.text());let d=C.filter(b=>b.id!==a);r(n,d),await H(n)}catch(a){console.error("Failed to delete message",a)}},[n,H,C,r]),ca=(0,c.useCallback)(()=>{a_&&("thread"===a_.type?b7(a_.id):b9(a_.id),a0(null))},[a_,b7,b9]),cb=(0,c.useCallback)(()=>{a0(null)},[]),cc=(0,c.useMemo)(()=>[{name:"/search",description:"Search messages (usage: /search <query>)",aliases:["find"],execute:()=>b0()},{name:"/summarize",description:"Summarize current thread or latest thread with replies",aliases:["sum"],execute:()=>b1()},{name:"/tasks",description:"Extract tasks from current thread discussion",aliases:["create"],execute:()=>b$()}],[b0,b1,b$]),cd=(0,c.useMemo)(()=>{let a=af?ae.find(a=>a.slug===af):ae[0];return a?.repos??[]},[ae,af]),[ce,cf]=(0,c.useState)(new Set),cg=(0,c.useRef)(null);(0,c.useEffect)(()=>{if(!aG){cf(new Set),cg.current=null;return}cg.current!==aG&&(cf(new Set),cg.current=aG,fetch(`/api/thread-repos?rootMessageId=${encodeURIComponent(aG)}`).then(a=>a.json()).then(a=>{cg.current===aG&&a.repoIds&&a.repoIds.length>0&&cf(new Set(a.repoIds))}).catch(()=>{}))},[aG]);let ch=(0,c.useCallback)(a=>{cf(a),aG&&fetch("/api/thread-repos",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({rootMessageId:aG,repoIds:[...a]})}).catch(()=>{})},[aG]),ci=(0,c.useCallback)(a=>{let c=O.some(b=>["spawning","running"].includes(b.state)&&b.threadId===a)||Object.values(P).some(b=>b.rootMessageId===a)?"working":S.some(b=>b.rootMessageId===a&&"queued"===b.status)?"queued":"ready";return(0,b.jsx)(bd,{onSend:(b,c,d,e,f,g,h)=>bV(a,b,c,f,g,h),onStop:()=>W(a),loading:"ready"!==c,activityStatus:c,participants:bE,projectGroups:ae,projects:bF,projectSlug:af,messages:C,commands:cc,placeholder:"Reply — @name to mention, /search, /summarize",autoMode:aJ,onAutoModeChange:b3,repos:cd,selectedRepoIds:ce,onRepoSelectionChange:ch})},[bV,W,P,bE,ae,bF,af,cc,C,aJ,b3,O,S,cd,ce,ch]),cj=(0,c.useCallback)(()=>{au(a=>{let b=!a;return bv(b),b})},[bv]),ck=async a=>{let b=await fetch("/api/participants",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(b.ok){let a=await b.json();ai(b=>b.map(b=>b.id===a.id?a:b))}},cl=(0,c.useCallback)((a,b)=>{an(c=>{let d=bx(ah,Y,n);if(!new Set(d).has(a))return c;let e=new Set(c);b?e.add(a):e.delete(a);let f=d.filter(a=>e.has(a));return n&&bg(n,f),f})},[n,ah,Y]),cm=(0,c.useCallback)(a=>{let b=Y.find(b=>b.id===a);if(!b||n&&!b.thread_ids?.includes(n))return;let c=b.agents.map(a=>a.agent_id);an(c),n&&bg(n,c)},[Y,n]),cn=(0,c.useCallback)(()=>{as(a=>"dark"===a?"light":"dark")},[]),co=()=>(0,b.jsx)("button",{type:"button",onClick:cn,"aria-label":"dark"===ar?"Switch to light theme":"Switch to dark theme",title:"dark"===ar?"Switch to light theme":"Switch to dark theme",className:"inline-flex h-9 w-9 items-center justify-center rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] text-[var(--app-shell-muted)] transition-all hover:border-[var(--app-shell-border-strong)] hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]",children:"dark"===ar?(0,b.jsx)(bq,{className:"h-4 w-4",strokeWidth:1.75}):(0,b.jsx)(bp,{className:"h-4 w-4",strokeWidth:1.75})}),cp=(0,b.jsx)("div",{className:"desktop-titlebar border-b border-[var(--app-shell-border)] bg-[var(--app-shell-surface)] px-4 py-2.5 backdrop-blur-xl md:px-6",children:(0,b.jsxs)("div",{className:"mx-auto flex max-w-5xl items-center gap-3",children:[(0,b.jsx)("div",{className:"flex min-w-0 items-center flex-shrink-0",children:k&&!at&&(0,b.jsx)("button",{type:"button",onClick:cj,className:"inline-flex h-9 w-9 items-center justify-center rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] text-[var(--app-shell-muted)] transition hover:border-[var(--app-shell-border-strong)] hover:text-[var(--foreground)]",title:"Show sidebar","aria-label":"Show sidebar",children:(0,b.jsx)(bo,{className:"h-4 w-4",strokeWidth:1.75})})}),(0,b.jsx)("div",{className:"flex flex-1 justify-center min-w-0",children:(0,b.jsxs)("div",{className:"flex w-full max-w-2xl items-center gap-2",children:[(0,b.jsxs)("div",{className:"relative group/search min-w-0 flex-1",children:[(0,b.jsx)(bl.Search,{className:"pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-[var(--app-shell-soft-text)] transition-colors group-focus-within/search:text-[var(--primary)]",strokeWidth:2}),(0,b.jsx)("input",{ref:a8,type:"text",value:aK,onChange:a=>aM(a.target.value),onKeyDown:a=>{"Escape"===a.key&&bJ()},placeholder:"Search messages…",className:"h-9 w-full rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] pl-9 pr-16 text-sm font-medium text-[var(--foreground)] outline-none placeholder:text-[var(--app-shell-soft-text)] transition-all hover:border-[var(--app-shell-border-strong)] focus:border-[var(--primary)] focus:ring-2 focus:ring-[var(--ring)]"}),bA?(0,b.jsxs)("div",{className:"absolute right-3 top-1/2 flex -translate-y-1/2 items-center gap-2",children:[(0,b.jsx)("span",{className:"text-[11px] font-bold text-[var(--muted-foreground)]",children:aR?"…":aP}),(0,b.jsx)("button",{type:"button",onClick:bJ,className:"text-[10px] font-bold text-[var(--app-shell-soft-text)] transition-colors hover:text-[var(--app-shell-muted)]",children:"✕"})]}):(0,b.jsx)("kbd",{className:"pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 rounded-md border border-[var(--app-shell-border)] bg-[var(--app-shell-subtle)] px-1.5 py-0.5 font-sans text-[10px] font-bold text-[var(--app-shell-soft-text)]",children:"⌘K"})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2 flex-shrink-0",children:[co(),(0,b.jsx)(bu,{}),aG&&(0,b.jsx)("button",{type:"button",onClick:()=>ax(!aw),"aria-label":aw?"Hide logs":`Show logs${E.length>0?` (${E.length})`:""}`,"aria-pressed":aw,title:aw?"Hide logs":`Show logs${E.length>0?` (${E.length})`:""}`,className:`inline-flex h-9 w-9 items-center justify-center rounded-xl border transition-all focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--ring)] ${aw?"border-[var(--app-shell-border-strong)] bg-[var(--app-shell-subtle)] text-[var(--foreground)]":"border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] text-[var(--app-shell-muted)] hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]"}`,children:(0,b.jsx)(bn,{className:"h-4 w-4",strokeWidth:1.75})})]})]})})]})});return(0,b.jsxs)("div",{className:"flex h-screen bg-[var(--app-shell-bg)] text-[var(--foreground)]",children:[k?(0,b.jsx)(h.WorkspaceSidebar,{threads:m,participants:ah,activeThreadId:n,isLoading:v,isRestoringActiveThread:w,isCreating:s,deletingThreadId:t,renamingThreadId:u,onSelectThread:o,onCreateThread:p,onRenameThread:x,onDeleteThread:b5,activeParticipantIds:al,onToggleParticipantActive:cl,visible:at,onToggle:cj,projects:Y,onCreateProject:Z,onUpdateProject:ad,onDeleteProject:$,onAddAgentToProject:_,onRemoveAgentFromProject:aa,onReorderProjectAgents:ab,onUpdateParticipant:ck,onSelectProject:cm}):null,(0,b.jsx)("div",{className:"flex flex-col flex-1 min-w-0 relative",children:w?(0,b.jsx)("div",{className:"flex-1 flex items-center justify-center px-4 text-sm text-[var(--muted-foreground)]",children:"Loading your last project…"}):(0,b.jsx)("div",{className:"flex flex-1 min-h-0 bg-transparent relative",children:(0,b.jsxs)("div",{className:"flex flex-col flex-1 min-w-0",children:[aG?(0,b.jsx)("div",{className:"desktop-titlebar border-b border-[var(--app-shell-border)] bg-[var(--app-shell-surface)] px-4 py-2.5 backdrop-blur-xl md:px-6 transition-colors duration-200 shrink-0",children:(0,b.jsxs)("div",{className:"mx-auto flex max-w-5xl items-center gap-3 min-w-0",children:[(0,b.jsx)("button",{onClick:()=>aH(null),className:"p-1.5 text-[var(--app-shell-muted)] hover:text-[var(--primary)] hover:bg-[var(--app-shell-subtle)] rounded-xl transition-all active:scale-95 flex-shrink-0",title:"Back to main feed",children:(0,b.jsx)(bm.ChevronLeft,{size:20,strokeWidth:2.25})}),(0,b.jsxs)("div",{className:"flex-1 flex flex-col min-w-0",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,b.jsx)("h2",{className:"text-[15px] font-semibold text-[var(--foreground)] tracking-tight leading-tight truncate min-w-0",children:bH}),bI&&(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 px-1.5 py-0.5 rounded-full text-[10px] font-semibold border shrink-0",style:{borderColor:bI.color+"40",color:bI.color},children:[(0,b.jsx)("span",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:bI.color}}),bI.label]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5 text-[11px] font-medium text-[var(--app-shell-muted)]",children:[(0,b.jsxs)("span",{className:"opacity-80",children:[bD.length," agents"]}),(0,b.jsx)("span",{className:"h-0.5 w-0.5 rounded-full bg-[var(--app-shell-soft-text)]"}),(0,b.jsxs)("span",{className:"opacity-80",children:["Updated ",function(a){if(!a)return"recently";let b=Math.floor((Date.now()-a)/1e3);if(b<60)return"just now";let c=Math.floor(b/60);if(c<60)return`${c}m ago`;let d=Math.floor(c/60);return d<24?`${d}h ago`:new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric"}).format(a)}(bG)]}),bS&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:"h-0.5 w-0.5 rounded-full bg-[var(--app-shell-soft-text)]"}),(0,b.jsx)("span",{className:"opacity-80",children:bS})]})]})]}),(0,b.jsx)("div",{className:"flex -space-x-1.5 flex-shrink-0",children:bD.map(a=>(0,b.jsx)("img",{src:`https://api.dicebear.com/9.x/bottts-neutral/svg?seed=${a.id}&backgroundColor=${a.color?a.color.replace("#",""):"e2e8f0"}`,alt:a.name,className:"h-7 w-7 rounded-full border-2 border-[var(--app-shell-elevated)] object-cover shadow-sm ring-1 ring-[var(--app-shell-border)]",title:a.name},a.id))}),(0,b.jsxs)("div",{className:"ml-auto flex items-center gap-2",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>void bO(),disabled:bQ,title:bP?"Learning is already running for this discussion":"Learn from this discussion",className:`inline-flex h-9 items-center gap-1.5 rounded-xl border px-3 text-xs font-medium transition-all focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--ring)] ${bQ?"cursor-wait border-[var(--app-shell-border)] bg-[var(--app-shell-subtle)] text-[var(--app-shell-muted)]":"border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] text-[var(--app-shell-muted)] hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]"}`,children:[bQ?(0,b.jsx)(bs.default,{className:"h-3.5 w-3.5 animate-spin",strokeWidth:1.75}):(0,b.jsx)(br.BookOpen,{className:"h-3.5 w-3.5",strokeWidth:1.75}),(0,b.jsx)("span",{className:"hidden sm:inline",children:bP?"Learning...":"Learn from discussion"})]}),co(),(0,b.jsx)(bu,{}),(0,b.jsx)("button",{type:"button",onClick:()=>ax(!aw),"aria-label":aw?"Hide logs":`Show logs${E.length>0?` (${E.length})`:""}`,"aria-pressed":aw,title:aw?"Hide logs":`Show logs${E.length>0?` (${E.length})`:""}`,className:`inline-flex h-9 w-9 items-center justify-center rounded-xl border transition-all focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--ring)] ${aw?"border-[var(--app-shell-border-strong)] bg-[var(--app-shell-subtle)] text-[var(--foreground)]":"border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] text-[var(--app-shell-muted)] hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]"}`,children:(0,b.jsx)(bn,{className:"h-4 w-4",strokeWidth:1.75})})]})]})}):cp,bB?(0,b.jsx)(ap,{query:bA,results:aN,total:aP,participants:ah,threadTitleById:bC,isLoading:aR,error:aT,onSelectResult:b4}):aG?(0,b.jsx)(am,{messages:C,streaming:P,participants:ah,rootMessageId:aG,queued:S.some(a=>a.rootMessageId===aG&&"queued"===a.status),onClose:()=>aH(null),onCopyThread:bN,onAddToChat:bM,onDeleteThreadRoot:b6,onDeleteMessage:b8,highlightedMessageId:aV||void 0,renderReplyComposer:ci,activeProcesses:O.filter(a=>["spawning","running"].includes(a.state)&&a.threadId===aG)}):(0,b.jsx)(ag,{messages:C,streaming:P,participants:ah,onOpenThread:b_,onCopyThread:bN,onAddToChat:bM,onDeleteThreadRoot:b6,onSummarize:bW,onCreateTasks:bX,onUpdateTaskDraft:bY,onBuildTasks:bZ,summarizingThreads:aX,extractingTasks:a4,buildingDrafts:a6,taskDrafts:a1,deletingThreadRootId:aZ,highlightedMessageId:aV,shipModeThreads:ay,onUpdateMessageThreadStatus:n?(a,b)=>{D(c=>c.map(c=>c.id===a?{...c,threadStatus:b}:c)),A(n,a,b),fetch("/api/threads",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({rootMessageId:a,status:b})})}:void 0,onUpdateMessageOutcomeNote:n?(a,b)=>{D(c=>c.map(c=>c.id===a?{...c,outcomeNote:b}:c)),B(n,a,b);let c=C.find(b=>b.id===a);fetch("/api/threads",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({rootMessageId:a,status:c?.threadStatus??null,outcomeNote:b})})}:void 0}),!bB&&!aG&&(0,b.jsx)(bd,{onSend:b2,onStop:V,loading:"ready"!==T,activityStatus:T,participants:bE,projects:bF,projectGroups:ae,projectSlug:af,messages:C,commands:cc,pendingThreadInsert:bK,onClearPendingThread:()=>bL(null),autoMode:aJ,onAutoModeChange:b3,repos:cd,selectedRepoIds:ce,onRepoSelectionChange:ch})]})})}),j&&(0,b.jsx)(bt,{logs:E,participants:ah,onClear:()=>void I(n),open:aw,onToggle:()=>ax(!1)}),(0,b.jsx)(bj,{isOpen:null!==a_,title:a_?.type==="thread"?"Delete Discussion":"Delete Message",message:a_?.type==="thread"?"This will permanently delete this discussion and all of its replies. This action cannot be undone.":"This will permanently delete this message. This action cannot be undone.",preview:a_?.preview,confirmLabel:"Delete",cancelLabel:"Cancel",variant:"danger",onConfirm:ca,onCancel:cb})]})}a.s(["ChatContainer",()=>bz],124610)}];
|
|
11
|
+
`}(c);d&&f.push(d.trimEnd())}catch(a){console.error("Failed to load Linear issue mention context:",a)}let h=f.length>0?f.join("\n\n")+"\n\n":void 0,i=(0,aL.extractComposerRouting)(c,E);d&&$.pushEntry(d);let j=Y.attachmentIds.length>0?Y.attachmentIds:void 0,k=j?Y.getAttachmentMetas():void 0;a(e,10,j,k,E??void 0,h,i),_.commands.clearContent(),S([]),Y.clear(),Z.clearFilePaths(),U.close(),V.close(),X.close()},[_,U,V,l,a,Y,Z,R,X,$,I,t,E]),aj=U.isOpen&&U.filteredSuggestions.length>0;V.isOpen&&V.filteredCommands.length,W.isOpen&&W.suggestions.length,X.isOpen&&X.suggestions.length,aj&&U.filteredSuggestions[U.activeIndex];let ak=Y.staged.some(a=>"uploading"===a.status),al=!_||_.isEmpty,am=g.find(a=>a.id===E)??null;return(0,b.jsx)("div",{className:"pb-6",children:(0,b.jsxs)("div",{className:"max-w-3xl mx-auto",children:[(0,b.jsx)(a9,{onDrop:Y.stageFiles,children:(0,b.jsxs)("div",{className:"bg-[var(--app-shell-surface)] border border-[var(--app-shell-border)] shadow-[var(--shadow-sm)] focus-within:border-[var(--app-shell-border-strong)] focus-within:ring-1 focus-within:ring-[var(--ring)] transition-all flex flex-col rounded-2xl",children:[s&&(0,b.jsxs)("div",{className:`relative overflow-hidden border-b transition-all duration-500 ${r?"border-orange-200/50 dark:border-orange-500/30":"border-gray-100 dark:border-gray-800/60"}`,children:[(0,b.jsx)("div",{className:`absolute inset-0 transition-opacity duration-700 ${r?"opacity-100":"opacity-0"}`,style:{background:"linear-gradient(120deg, var(--warning-muted) 0%, transparent 50%, var(--warning-muted) 100%)",backgroundSize:"200% 100%",animation:r?"shipBgSweep 4s ease-in-out infinite":"none"}}),r&&(0,b.jsx)("div",{className:"absolute inset-0 overflow-hidden pointer-events-none",children:[...Array(8)].map((a,c)=>(0,b.jsx)("div",{className:"absolute h-[1.5px] rounded-full",style:{top:`${12+10*c}%`,right:"-10%",width:`${20+c%3*15}%`,background:"linear-gradient(to left, transparent, var(--warning))",opacity:.3+c%3*.1,animation:`shipSpeedLine ${.8+c%4*.3}s ${.1*c}s ease-in-out infinite`}},c))}),(0,b.jsx)("div",{className:"relative px-3 py-2",children:(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("div",{className:`p-1 rounded-md transition-all duration-300 ${r?"bg-[var(--warning)] text-[var(--warning-muted)] shadow-md":"bg-[var(--app-shell-subtle)] text-[var(--app-shell-muted)]"}`,style:r?{animation:"shipPulse 2s ease-in-out infinite"}:{},children:(0,b.jsx)(ac,{size:14})}),(0,b.jsx)("span",{className:`text-sm font-semibold transition-colors duration-300 ${r?"text-[var(--warning)]":"text-[var(--foreground)]"}`,children:"Ship Mode"}),(0,b.jsx)("span",{className:`text-xs transition-colors duration-300 ${r?"text-[var(--warning)] opacity-60":"text-[var(--app-shell-muted)] opacity-60"}`,children:"|"}),(0,b.jsx)("span",{className:`text-xs font-medium transition-colors duration-300 ${r?"text-[var(--warning)] opacity-80":"text-[var(--app-shell-muted)]"}`,children:r?"Continuous execution is active for this thread":"Continuous execution stays off until you enable it"})]}),(0,b.jsx)("button",{type:"button",onClick:()=>s(!r),className:`relative inline-flex h-6 w-11 items-center rounded-full transition-colors duration-200 focus:outline-none focus:ring-2 focus:ring-[var(--warning)] focus:ring-offset-2 focus:ring-offset-[var(--background)] ${r?"bg-[var(--warning)]":"bg-[var(--app-shell-border-strong)]"}`,children:(0,b.jsx)("span",{className:`inline-block h-4 w-4 transform rounded-full bg-[var(--app-shell-elevated)] shadow-sm transition-transform duration-200 ${r?"translate-x-6":"translate-x-1"}`})})]})})]}),(0,b.jsxs)("div",{className:"p-1.5 transition-all",children:[Y.staged.length>0&&(0,b.jsx)("div",{className:"mx-2 mt-2 mb-1",children:(0,b.jsx)(a8,{attachments:Y.staged,onRemove:Y.remove,onRetry:Y.retry})}),(0,b.jsxs)("div",{className:"p-2 relative",children:[(0,b.jsx)("input",{ref:O,type:"file",multiple:!0,className:"hidden",onChange:a=>{a.target.files&&a.target.files.length>0&&(Y.stageFiles(a.target.files),a.target.value="")}}),(0,b.jsxs)("div",{className:"flex-1 relative",onClick:aa,onPasteCapture:ab,children:[(0,b.jsx)(aq.EditorContent,{editor:_,className:"composer-editor"}),(0,b.jsx)(aZ,{isOpen:U.isOpen&&!V.isOpen,suggestions:U.filteredSuggestions,activeIndex:U.activeIndex,listboxId:"composer-mention-listbox",optionIdPrefix:"composer-mention-option",onSelect:ad}),(0,b.jsx)(a$,{isOpen:V.isOpen,commands:V.filteredCommands,activeIndex:V.activeIndex,listboxId:"composer-command-listbox",optionIdPrefix:"composer-command-option",onSelect:ah}),(0,b.jsx)(a4,{isOpen:W.isOpen,suggestions:W.suggestions,activeIndex:W.activeIndex,isLoading:W.isLoading,error:W.error,listboxId:"composer-file-mention-listbox",optionIdPrefix:"composer-file-mention-option",onSelect:a=>{"folder"===a.type?af(a):ae(a)},onAttachContents:W.onAttachContents}),(0,b.jsx)(a5,{isOpen:X.isOpen&&!V.isOpen&&!W.isOpen,suggestions:X.suggestions,activeIndex:X.activeIndex,listboxId:"composer-thread-mention-listbox",optionIdPrefix:"composer-thread-mention-option",onSelect:ag})]})]}),(0,b.jsxs)("div",{className:"flex items-center justify-between px-3 py-2 border-t border-[var(--app-shell-border)] transition-colors",children:[(0,b.jsxs)("div",{className:"flex items-center gap-3",children:[(0,b.jsx)("button",{type:"button",onClick:Q,className:"p-1.5 text-[var(--app-shell-muted)] hover:text-[var(--foreground)] hover:bg-[var(--app-shell-subtle)] rounded-lg transition-colors","aria-label":"Attach file",title:"Attach file",children:(0,b.jsx)(ba,{className:"h-4 w-4",strokeWidth:1.75})}),(0,b.jsx)("div",{className:"w-px h-4 bg-[var(--app-shell-border)]"}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("span",{className:"text-[10px] font-semibold text-[var(--app-shell-muted)] uppercase tracking-wider mr-1",children:"Agents"}),(0,b.jsx)("div",{className:"flex items-center -space-x-1.5",children:0===g.length?(0,b.jsx)("span",{className:"text-[10px] font-medium text-[var(--app-shell-muted)]",children:"No agents"}):g.map(a=>(0,b.jsxs)("div",{role:"button",tabIndex:0,"aria-pressed":E===a.id,onClick:()=>F(b=>b===a.id?null:a.id),onKeyDown:b=>{("Enter"===b.key||" "===b.key)&&(b.preventDefault(),F(b=>b===a.id?null:a.id))},className:`relative w-6 h-6 rounded-full bg-[var(--app-shell-subtle)] border-2 border-[var(--app-shell-elevated)] shadow-sm flex items-center justify-center overflow-visible shrink-0 transition-all cursor-pointer ${E===a.id?"-translate-y-0.5 ring-2 ring-[var(--ring)] ring-offset-1 ring-offset-[var(--background)]":"hover:-translate-y-0.5"}`,title:a.name,children:[(0,b.jsx)("img",{src:`https://api.dicebear.com/9.x/bottts-neutral/svg?seed=${a.id}&backgroundColor=${a.color?a.color.replace("#",""):"e2e8f0"}`,alt:a.name,className:"w-full h-full rounded-full object-cover"}),D&&(0,b.jsx)("span",{className:`absolute -bottom-0.5 -right-0.5 w-2 h-2 border border-[var(--app-shell-elevated)] rounded-full ${"queued"===C?"bg-amber-400":"bg-emerald-400"}`})]},a.id))})]}),am&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"w-px h-4 bg-[var(--app-shell-border)]"}),(0,b.jsxs)("span",{className:"text-[10px] font-medium text-[var(--app-shell-muted)]",children:["Pinned: ",(0,b.jsx)("span",{className:"text-[var(--foreground)]",children:am.name})]})]}),t.length>0&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"w-px h-4 bg-[var(--app-shell-border)]"}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsxs)("div",{className:"relative",ref:N,children:[(0,b.jsxs)("button",{type:"button",onClick:()=>M(a=>!a),className:"composer-repo-select-trigger","aria-haspopup":"listbox","aria-expanded":L,children:[(0,b.jsx)(bb.FolderGit2,{className:"h-3.5 w-3.5",strokeWidth:1.75}),(0,b.jsx)("span",{children:"Repos"}),(0,b.jsx)(u.ChevronDown,{className:`h-3 w-3 transition-transform ${L?"rotate-180":""}`})]}),L&&(0,b.jsx)("div",{className:"composer-repo-dropdown",role:"listbox","aria-multiselectable":"true",children:t.map(a=>{let c=I.has(a.id);return(0,b.jsxs)("button",{type:"button",role:"option","aria-selected":c,className:`composer-repo-dropdown__item ${c?"composer-repo-dropdown__item--selected":""}`,onClick:()=>K(b=>{let c=new Set(b);return c.has(a.id)?c.delete(a.id):c.add(a.id),c}),children:[(0,b.jsx)("span",{className:`w-3.5 h-3.5 rounded border flex items-center justify-center shrink-0 transition-colors ${c?"bg-emerald-500 border-emerald-500 text-white":"border-[var(--app-shell-border-strong)]"}`,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:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),(0,b.jsx)("span",{className:"truncate",children:a.name})]},a.id)})})]}),(A=(z=t.filter(a=>I.has(a.id))).slice(0,1),B=z.length-1,(0,b.jsxs)(b.Fragment,{children:[A.map(a=>(0,b.jsxs)("span",{className:"composer-repo-pill",title:a.path||a.name,children:[(0,b.jsx)(bb.FolderGit2,{className:"h-3 w-3 shrink-0",strokeWidth:1.75}),(0,b.jsx)("span",{className:"composer-repo-pill__name",children:a.name}),(0,b.jsx)("button",{type:"button",className:"composer-repo-pill__remove",onClick:()=>K(b=>{let c=new Set(b);return c.delete(a.id),c}),"aria-label":`Remove ${a.name}`,children:(0,b.jsx)(x.X,{className:"h-3 w-3"})})]},a.id)),B>0&&(0,b.jsxs)("span",{className:"composer-repo-pill composer-repo-pill--overflow",children:["+",B]})]}))]})]})]}),D?(0,b.jsx)("button",{type:"button",onClick:d,className:"flex items-center gap-2 bg-[var(--destructive-muted)] text-[var(--destructive)] border border-[var(--status-failed-border)] px-4 py-1.5 rounded-lg text-sm font-semibold hover:opacity-90 transition-colors",children:"Stop"}):(0,b.jsxs)("button",{type:"button",onClick:ai,disabled:al&&!Y.hasUploaded&&!Z.hasFilePaths||ak,className:"flex items-center gap-2 bg-[var(--primary)] hover:bg-[var(--primary-hover)] text-[var(--primary-foreground)] px-4 py-1.5 rounded-lg text-sm font-semibold transition-colors disabled:opacity-50 disabled:cursor-not-allowed shadow-sm",children:["Send",(0,b.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,b.jsx)("line",{x1:"22",y1:"2",x2:"11",y2:"13"}),(0,b.jsx)("polygon",{points:"22 2 15 22 11 13 2 9 22 2"})]})]})]})]})]})}),(0,b.jsxs)("div",{className:"mt-3 flex items-center justify-between text-xs text-[var(--app-shell-muted)] px-1",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("div",{className:`w-1.5 h-1.5 rounded-full ${"working"===C?"bg-emerald-400 animate-pulse":"queued"===C?"bg-amber-400":"bg-emerald-400"}`}),(0,b.jsx)("span",{children:"working"===C?"Working":"queued"===C?"Queued":"Ready"})]}),(0,b.jsxs)("span",{children:["Press ",(0,b.jsx)("kbd",{className:"px-1 py-0.5 rounded bg-[var(--app-shell-elevated)] border border-[var(--app-shell-border)] text-[var(--app-shell-muted)] shadow-sm text-[10px]",children:"Enter"})," to send, ",(0,b.jsx)("kbd",{className:"px-1 py-0.5 rounded bg-[var(--app-shell-elevated)] border border-[var(--app-shell-border)] text-[var(--app-shell-muted)] shadow-sm text-[10px]",children:"Shift"})," + ",(0,b.jsx)("kbd",{className:"px-1 py-0.5 rounded bg-[var(--app-shell-elevated)] border border-[var(--app-shell-border)] text-[var(--app-shell-muted)] shadow-sm text-[10px]",children:"Enter"})," for new line"]})]})]})})}var be=a.i(655672),bf=a.i(176388);let bg={activeParticipantIdsByThread:{}};function bh(a,b){let c=a.trim();if(c)({...bg}).activeParticipantIdsByThread[c]=function(a){if(!Array.isArray(a))return[];let b=new Set,c=[];for(let d of a){if("string"!=typeof d)continue;let a=d.trim();!a||b.has(a)||(b.add(a),c.push(a))}return c}(b)}var bi=a.i(215040),bj=a.i(81779),bk=a.i(56196),bl=a.i(587532),bm=a.i(613749);let bn=(0,s.default)("square-terminal",[["path",{d:"m7 11 2-2-2-2",key:"1lz0vl"}],["path",{d:"M11 13h4",key:"1p7l4v"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}]]),bo=(0,s.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"}]]),bp=(0,s.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"}]]),bq=(0,s.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"}]]);var br=a.i(953722),bs=a.i(404650),bs=bs;function bt({logs:a,participants:d,onClear:e,open:f,onToggle:g}){let[h,i]=(0,c.useState)(420),[j,k]=(0,c.useState)(null),l=(0,c.useRef)(null),m=(0,c.useRef)(!1),n=(0,c.useRef)(0),o=(0,c.useRef)(0),p=Object.fromEntries(d.map(a=>[a.id,a]));(0,c.useEffect)(()=>{f&&l.current?.scrollIntoView({behavior:"smooth"})},[a.length,f]);let q=(0,c.useCallback)(a=>{a.preventDefault(),m.current=!0,n.current=a.clientX,o.current=h,a.target.setPointerCapture(a.pointerId)},[h]),r=(0,c.useCallback)(a=>{if(!m.current)return;let b=n.current-a.clientX;i(Math.max(280,Math.min(o.current+b,.6*window.innerWidth)))},[]),s=(0,c.useCallback)(()=>{m.current=!1},[]);if(!f)return null;let t=j?a.filter(a=>a.participantId===j):a;return(0,b.jsxs)("div",{className:"flex h-full shrink-0",children:[(0,b.jsx)("div",{onPointerDown:q,onPointerMove:r,onPointerUp:s,className:"w-1.5 cursor-col-resize bg-zinc-800 hover:bg-zinc-600 transition-colors flex items-center justify-center shrink-0",children:(0,b.jsx)("div",{className:"h-8 w-0.5 rounded-full bg-zinc-500"})}),(0,b.jsxs)("div",{className:"flex flex-col bg-zinc-950 h-full",style:{width:h},children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 px-3 py-1.5 border-b border-zinc-800 shrink-0",children:[(0,b.jsx)("span",{className:"text-[11px] text-[var(--muted-foreground)] font-mono",children:"Logs"}),(0,b.jsxs)("select",{value:j||"",onChange:a=>k(a.target.value||null),className:"bg-zinc-800 text-zinc-300 text-[11px] rounded px-1.5 py-0.5 outline-none",children:[(0,b.jsx)("option",{value:"",children:"All"}),d.map(a=>(0,b.jsx)("option",{value:a.id,children:a.name},a.id))]}),(0,b.jsxs)("div",{className:"ml-auto flex items-center gap-2",children:[(0,b.jsx)("button",{onClick:e,className:"text-[11px] text-[var(--muted-foreground)] hover:text-zinc-300",children:"Clear"}),(0,b.jsx)("button",{onClick:g,className:"text-[11px] text-[var(--muted-foreground)] hover:text-zinc-300",children:"✕"})]})]}),(0,b.jsxs)("div",{className:"flex-1 overflow-y-auto font-mono text-[11px] leading-4 px-3 py-2",children:[t.map((a,c)=>{let d=p[a.participantId]?.name||a.participantId,e=p[a.participantId]?.color||"#888",f="stderr"===a.stream;return(0,b.jsxs)("div",{className:"flex gap-2 whitespace-pre-wrap break-all",children:[(0,b.jsx)("span",{className:"text-[var(--muted-foreground)] shrink-0 select-none",children:new Date(a.timestamp).toLocaleTimeString([],{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"})}),(0,b.jsx)("span",{className:"shrink-0",style:{color:e},children:d}),(0,b.jsx)("span",{className:f?"text-red-400":"text-[var(--muted-foreground)]",children:a.line})]},c)}),(0,b.jsx)("div",{ref:l})]})]})]})}function bu(){let[a,d]=(0,c.useState)("unknown"),[e,f]=(0,c.useState)([]),[g,h]=(0,c.useState)(""),[j,k]=(0,c.useState)(!1),l=(0,c.useCallback)(async()=>{try{let a=await fetch("/api/status");if(!a.ok)return void d("unknown");let b=await a.json();d("ok"===b.status?"ok":"degraded");let c=b.services.filter(a=>"agx-chat"===a.name||"agx-cloud"===a.name);f(c),h(new Date().toLocaleTimeString())}catch{d("unknown"),f([])}},[]);return(0,c.useEffect)(()=>{l();let a=setInterval(l,3e4);return()=>clearInterval(a)},[l]),(0,b.jsxs)("div",{className:"relative",onMouseEnter:()=>k(!0),onMouseLeave:()=>k(!1),children:[(0,b.jsx)(i.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":""}`})}),j&&(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:[e.length>0?(0,b.jsx)("ul",{className:"space-y-1.5",children:e.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..."}),g&&(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: ",g]})]})]})}function bv(a,b=!1){return(b?a.replace(/(?:^|\n)Thinking\.\.\.[\s\S]*?\.\.\.done thinking\.?\s*/g,"\n").trim():a).replaceAll("<!-- thread-summary -->","").replaceAll("<!-- task-draft -->","").trim().replace(/\r\n/g,"\n").replace(/\n{3,}/g,"\n\n").trim()}async function bw(a){let b=await fetch(`/api/threads/knowledge?rootMessageId=${encodeURIComponent(a)}`,{cache:"no-store"});if(!b.ok)throw Error("Failed to load thread knowledge run");let c=await b.json().catch(()=>null);return c?.run??null}function bx(a,b,c){let d=new Set(a.map(a=>a.id)),e=c?b.find(a=>a.thread_ids?.includes(c)):b[0],f=e?e.agents.map(a=>a.agent_id).filter(a=>d.has(a)):[];return e?f:0===f.length?a.map(a=>a.id):f}function by(a,b,c){let d=Object.fromEntries(b.map(a=>[a.id,a])),e=[];for(let b of a){let a="user"===b.role?"You":b.participantId?d[b.participantId]?.name||b.participantId:"Assistant",c=bv(b.content,"user"!==b.role);c&&(e.push(`**${a}:**`),e.push(""),e.push(c),e.push(""))}if(c){let a=function(a){if(0===a.tasks.length)return"";let b=new Map(a.tasks.map(a=>[a.id,a.title.trim()])),c=["## Draft Tasks",""];return a.projectName&&c.push(`Project: ${a.projectName}`),a.buildStatus&&c.push(`Build status: ${a.buildStatus.replaceAll("_"," ")}`),(a.projectName||a.buildStatus)&&c.push(""),a.tasks.forEach((d,e)=>{let f=bv(d.title)||`Task ${e+1}`,g=bv(d.description),h=(d.dependsOn||[]).map(a=>b.get(a)?.trim()).filter(a=>!!a),i=a.builtTaskIds?.[d.id];c.push(`${e+1}. [ ] **${f}**`),g&&c.push(g),h.length>0&&c.push(`Depends on: ${h.join(", ")}`),i&&c.push(`agx task id: \`${i}\``),c.push("")}),c.join("\n").trim()}(c);a&&e.push(a)}return e.join("\n").trim()}function bz({projectSlug:a,initialThreadId:i,initialRootMessageId:j,showSidebar:k=!0}={}){let l=(0,d.useSearchParams)(),{threads:m,activeThreadId:n,selectThread:o,createThread:p,deleteThread:q,updateThreadMessages:r,isCreating:s,deletingThreadId:t,renamingThreadId:u,isLoading:v,isRestoringActiveThread:w,renameThread:x,updateThreadStatus:y,updateThreadOutcomeNote:z,updateMessageThreadStatus:A,updateMessageOutcomeNote:B}=(0,g.useThreadState)(i),{messages:C,setMessages:D,logs:E,sendMessage:F,loadHistory:H,clearLogs:I,chatRuns:J,setChatRuns:K,stop:L,stopThread:M}=(0,e.useGroupChat)(n),{activeAgents:N,processes:O,streaming:P,chatRuns:Q,poll:R}=(0,f.useProcessPolling)(n?{workspaceId:n}:null,{messages:C,setMessages:D}),S=(0,c.useMemo)(()=>{let a=Date.now(),b=new Map(Q.map(a=>[a.chatRunId,a]));for(let c of J)!(!c.optimistic||b.has(c.chatRunId))&&(a-(c.enqueuedAt??0)>5e3||b.set(c.chatRunId,c));return Array.from(b.values()).filter(a=>"queued"===a.status||"running"===a.status)},[J,Q]),T=N.size>0||S.some(a=>"running"===a.status)?"working":S.some(a=>"queued"===a.status)?"queued":"ready";(0,c.useEffect)(()=>{K(a=>{let b=Date.now(),c=new Map(a.filter(a=>"string"==typeof a.chatRunId&&a.chatRunId.length>0).map(a=>[a.chatRunId,a]));for(let a of Q)a?.chatRunId&&c.set(a.chatRunId,a);return Array.from(c.values()).filter(a=>!!(!a.optimistic||Q.some(b=>b.chatRunId===a.chatRunId))||b-(a.enqueuedAt??0)<=5e3).sort((a,b)=>String(a.chatRunId||"").localeCompare(String(b.chatRunId||"")))})},[Q,K]);let U=(0,c.useCallback)(async a=>{await fetch(`/api/chat-runs/${encodeURIComponent(a)}/signal`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({signal:"cancel",reason:"Stopped from chat UI"})}).catch(()=>{})},[]),V=(0,c.useCallback)(async()=>{let a=S[0];a?.chatRunId&&await U(a.chatRunId),await L(),await R()},[S,U,L,R]),W=(0,c.useCallback)(async a=>{let b=S.find(b=>b.rootMessageId===a);b?.chatRunId&&await U(b.chatRunId),await M(a),await R()},[S,U,M,R]),X=(0,c.useRef)(V);(0,c.useEffect)(()=>{X.current=V},[V]);let{projects:Y,createProject:Z,deleteProject:$,addAgent:_,removeAgent:aa,reorderAgents:ab}=(0,bk.useProjectsWithAgents)(),{projects:ac,updateProject:ad}=(0,bk.useProjects)(),ae=(0,c.useMemo)(()=>n?Y.filter(a=>a.thread_ids?.includes(n)):Y,[Y,n]),af=(0,c.useMemo)(()=>a||ae[0]?.slug||void 0,[a,ae]),[ah,ai]=(0,c.useState)([]),[aj,ak]=(0,c.useState)(!1),[al,an]=(0,c.useState)([]),[ao,aq]=(0,c.useState)(!1),[ar,as]=(0,c.useState)(()=>"light"),[at,au]=(0,c.useState)(!1),[av,aw]=(0,c.useState)(368),ax=(0,c.useRef)(!1);(0,c.useEffect)(()=>{let a=(0,be.loadWorkspaceSidebarVisible)();ax.current=!0,au(a),aw((0,bf.loadWorkspaceWidth)()||368)},[]),(0,c.useEffect)(()=>{},[ar]);let[ay,az]=(0,c.useState)(!1),[aA,aB]=(0,c.useState)(new Set),[aC,aD]=(0,c.useState)(!1),[aE,aF]=(0,c.useState)(!1),[aG,aH]=(0,c.useState)(null),[aI,aJ]=(0,c.useState)(j??null),aK=l.get("open")?.trim()||null,aM=aI?aA.has(aI):aC;(0,c.useEffect)(()=>{if(!aI)return;let a=!1,b=()=>{fetch(`/api/schedules?rootMessageId=${encodeURIComponent(aI)}`).then(a=>a.json()).then(b=>{a||aB(a=>{let c=a.has(aI);if(b.active&&!c){let b=new Set(a);return b.add(aI),b}if(!b.active&&c){let b=new Set(a);return b.delete(aI),b}return a})}).catch(()=>{})};b();let c=setInterval(b,1e4);return()=>{a=!0,clearInterval(c)}},[aI]),(0,c.useEffect)(()=>{let a=!1,b=()=>{fetch("/api/schedules").then(a=>a.json()).then(b=>{!a&&b.activeRootMessageIds&&aB(a=>{let c=new Set(b.activeRootMessageIds);for(let b of a)c.add(b);return c.size===a.size&&[...c].every(b=>a.has(b))?a:c})}).catch(()=>{})};b();let c=setInterval(b,15e3);return()=>{a=!0,clearInterval(c)}},[]),(0,c.useEffect)(()=>{if(aI){let b=a?`/projects/${a}/thread/${encodeURIComponent(n??i??"")}?open=${encodeURIComponent(aI)}`:`/thread/${aI}`;window.history.replaceState(null,"",b)}else window.history.replaceState(null,"",a?`/projects/${a}/thread/${encodeURIComponent(n??i??"")}`:"/")},[n,i,aI,a]),(0,c.useEffect)(()=>{a&&aJ(a=>a===aK?a:aK)},[a,aK]),(0,c.useEffect)(()=>{j&&(async()=>{try{let a=await fetch(`/api/messages/${j}`);if(!a.ok)return;let{threadId:b}=await a.json();b&&o(b)}catch{}})()},[j,o]);let[aN,aO]=(0,c.useState)(""),[aP,aQ]=(0,c.useState)([]),[aR,aS]=(0,c.useState)(0),[aT,aU]=(0,c.useState)(!1),[aV,aW]=(0,c.useState)(null),[aX,aY]=(0,c.useState)(null),[aZ,a$]=(0,c.useState)(new Set),[a_,a0]=(0,c.useState)(null),[a1,a2]=(0,c.useState)(null),[a3,a4]=(0,c.useState)({}),a5=(0,c.useCallback)(a=>{a4(b=>{let c="function"==typeof a?a(b):a;if(n)for(let[a,d]of Object.entries(c))b[a]!==d&&fetch("/api/task-drafts",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:n,messageId:a,draft:d})}).catch(()=>{});return c})},[n]),[a6,a7]=(0,c.useState)(new Set),[a8,a9]=(0,c.useState)(new Set),ba=(0,c.useRef)(null),bb=(0,c.useRef)(null),bc=(0,c.useRef)(null),bv=(0,c.useRef)(""),bA=(0,c.useCallback)(async(a=!1)=>{try{let a=await fetch("/api/participants");if(!a.ok)return;let b=await a.json();if(!Array.isArray(b))return;ai(b)}finally{a&&ak(!0)}},[]),bB=(0,c.useCallback)(async a=>{try{await (0,bi.updateUserPreferences)({threadSidebarVisible:a})}catch(a){console.error("Unable to persist thread sidebar preference",a)}},[bi.updateUserPreferences]),bC=(0,c.useCallback)(a=>{(0,be.persistWorkspaceSidebarVisible)(a),bB(a)},[bB]),bD=aN.trim(),bE=bD.length>0,bF=(0,c.useMemo)(()=>Object.fromEntries(m.map(a=>[a.id,a.title?.trim()||"Untitled thread"])),[m]),bG=(0,c.useMemo)(()=>{if(!aI)return[];let a=new Set([C.find(a=>a.id===aI),...C.filter(a=>a.rootMessageId===aI)].filter(Boolean).map(a=>a.participantId).filter(Boolean));return Object.keys(P).forEach(b=>{P[b].rootMessageId===aI&&a.add(b)}),ah.filter(b=>a.has(b.id))},[aI,C,P,ah]),bH=(0,c.useMemo)(()=>{let a=new Map(ah.map(a=>[a.id,a]));return al.map(b=>a.get(b)).filter(Boolean)},[ah,al]),bI=(0,c.useMemo)(()=>ac.map(a=>({id:a.id,name:a.name,slug:a.slug})),[ac]),bJ=(0,c.useMemo)(()=>{if(!aI)return 0;let a=[C.find(a=>a.id===aI),...C.filter(a=>a.rootMessageId===aI)].filter(Boolean);return 0===a.length?0:Math.max(...a.map(a=>a.timestamp))},[aI,C]),bK=(0,c.useMemo)(()=>{if(!aI)return"";let a=C.find(a=>a.id===aI);if(!a)return"Discussion";let b=a.content.trim();return b.length>60?b.slice(0,60)+"...":b},[aI,C]),bL=(0,c.useMemo)(()=>{if(!aI)return null;let a=C.find(a=>a.id===aI),b=a?.threadStatus??"active";return{value:b,...{active:{label:"Active",color:"#f59e0b"},paused:{label:"Paused",color:"#f97316"},"in-review":{label:"In Review",color:"#6b7280"},done:{label:"Done",color:"#3b82f6"},archived:{label:"Archived",color:"#9ca3af"}}[b]}},[aI,C]),bM=(0,c.useCallback)(()=>{aO(""),aQ([]),aS(0),aW(null),aU(!1)},[]);(0,c.useCallback)(()=>{let a=by(C,ah);navigator.clipboard.writeText(a).then(()=>{aq(!0),setTimeout(()=>aq(!1),2e3)})},[C,ah]);let[bN,bO]=(0,c.useState)(null),bP=(0,c.useCallback)(a=>{let b=C.find(b=>b.id===a);if(!b)return;let c=[b,...C.filter(b=>b.rootMessageId===a).sort((a,b)=>a.timestamp-b.timestamp)];bO({title:b.content.slice(0,60).replace(/\n/g," ").trim()||"Untitled",threadId:a,messages:c})},[C]),bQ=(0,c.useCallback)(a=>{let b=by([C.find(b=>b.id===a),...C.filter(b=>b.rootMessageId===a).sort((a,b)=>a.timestamp-b.timestamp)].filter(Boolean),ah,a3[a]);navigator.clipboard.writeText(b).catch(a=>console.error("Failed to copy thread",a))},[C,ah,a3]),bR=(0,c.useCallback)(async()=>{if(aI){aF(!0);try{let a=["repo"];af&&a.push("project");let b=await fetch("/api/threads/knowledge",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({rootMessageId:aI,scopes:a})}),c=await b.json().catch(()=>null);if(!b.ok)throw Error("string"==typeof c?.error?c.error:"Request failed");aH(c?.run??null)}catch(b){let a=b instanceof Error?b.message:"Request failed";window.alert(`Failed to extract knowledge: ${a}`)}finally{aF(!1)}}},[aI,af]);(0,c.useEffect)(()=>{if(!aI){aH(null),aF(!1);return}let a=!1;return(async()=>{try{let b=await bw(aI);if(a)return;aH(b)}catch{a||aH(null)}})(),()=>{a=!0}},[aI]),(0,c.useEffect)(()=>{if(!aI||aG?.status!=="running")return;let a=!1,b=async()=>{try{let b=await bw(aI);if(a)return;aH(b)}catch{}};b();let c=window.setInterval(()=>{b()},2e3);return()=>{a=!0,window.clearInterval(c)}},[aI,aG?.status]);let bS=aG?.status==="running",bT=aE||bS,bU=(aG?.repoInsertedCount??0)+(aG?.projectInsertedCount??0),bV=(0,c.useMemo)(()=>{if(!aG)return null;if("running"===aG.status)return"Learning in progress";if("failed"===aG.status)return"Last learning run failed";if(bU>0){let a=1===bU?"insight":"insights";return`Learned ${bU} ${a}`}return"No new learnings"},[bU,aG]);(0,c.useEffect)(()=>{bA(!0)},[bA]);let bW=(0,c.useMemo)(()=>{if(!aj)return[];let a=new Set(ah.map(a=>a.id)),b=new Set;for(let c of C)"assistant"===c.role&&c.participantId&&(a.has(c.participantId)||b.add(c.participantId));for(let c of Object.keys(P))a.has(c)||b.add(c);return Array.from(b).sort()},[C,ah,aj,P]);(0,c.useEffect)(()=>{if(!aj)return;let a=bW.join("|");if(!a){bv.current="";return}bv.current!==a&&(bv.current=a,bA(!1))},[aj,bA,bW]),(0,c.useEffect)(()=>{if(!aj)return;let a=bx(ah,Y,n);if(!n)return void an(a);let b=function(a){let b=a.trim();if(!b)return null;let c={...bg};return b in c.activeParticipantIdsByThread?[...c.activeParticipantIdsByThread[b]]:null}(n);if(null===b)return void an(a);let c=function(a,b){if(null===b)return a;let c=new Set(b);return a.filter(a=>c.has(a))}(a,b),d=c.length>0?c:a;(d.length!==b.length||d.some((a,c)=>b[c]!==a))&&bh(n,d),an(d)},[n,ah,aj,Y]),(0,c.useEffect)(()=>{let a=!1;return(async()=>{try{let b=await (0,bi.fetchUserPreferences)();if(a)return;au(a=>a===b.threadSidebarVisible?a:ax.current?(bB(a),a):((0,be.persistWorkspaceSidebarVisible)(b.threadSidebarVisible),b.threadSidebarVisible))}catch(a){console.error("Failed to load user preferences",a)}})(),()=>{a=!0}},[bB]),(0,c.useEffect)(()=>{v||s||0!==m.length||p({id:"global",title:"General"})},[v,s,m.length,p]),(0,c.useEffect)(()=>()=>{bc.current&&window.clearTimeout(bc.current)},[]),(0,c.useEffect)(()=>{let a=a=>{if((a.metaKey||a.ctrlKey)&&"k"===a.key.toLowerCase()){a.preventDefault(),ba.current?.focus(),ba.current?.select();return}"Escape"===a.key&&bD&&bM()};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[bM,bD]),(0,c.useEffect)(()=>{if(!bD){aQ([]),aS(0),aW(null),aU(!1);return}let a=!1;aU(!0);let b=window.setTimeout(()=>{(async()=>{try{let b=new URLSearchParams({q:bD,limit:"20",offset:"0"}),c=await fetch(`/api/search?${b.toString()}`),d=await c.json().catch(()=>null);if(a)return;if(!c.ok){let a=d&&"object"==typeof d&&"error"in d?String(d.error):"Search failed";aQ([]),aS(0),aW(a);return}aQ(Array.isArray(d.results)?d.results:[]),aS("number"==typeof d.total?d.total:0),aW(null)}catch(b){if(a)return;console.error("Search request failed",b),aQ([]),aS(0),aW("Search failed")}finally{a||aU(!1)}})()},300);return()=>{a=!0,window.clearTimeout(b)}},[bD]);let bX=(0,c.useRef)(null);(0,c.useEffect)(()=>{null!==bX.current&&bX.current!==n&&(X.current(),bb.current?(aJ(bb.current),bb.current=null):aJ(null)),bX.current=n,n&&(H(n),fetch(`/api/task-drafts?threadId=${encodeURIComponent(n)}`).then(a=>a.json()).then(a=>{a.drafts&&Object.keys(a.drafts).length>0?a4(a.drafts):a4({})}).catch(()=>a4({})))},[n,H]),(0,c.useEffect)(()=>{n&&r(n,C)},[n,C,r]);let bY=(0,c.useCallback)((a,b,c=10,d,e,f)=>{n&&0!==bH.length&&F(b,c,n,a,void 0,void 0,(0,aL.orderParticipantIds)(bH.map(a=>a.id),d),af,e,f)},[n,F,bH,af]),bZ=(0,c.useCallback)(async a=>{if(n){if(0===bH.length)return void window.alert("Enable at least one agent in this project.");a$(b=>new Set(b).add(a));try{let b=await fetch("/api/summarize",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:n,rootMessageId:a,activeParticipantIds:bH.map(a=>a.id)})});b.ok?await H(n):console.error("Summarize failed:",await b.text())}catch(a){console.error("Summarize error:",a)}finally{a$(b=>{let c=new Set(b);return c.delete(a),c})}}},[n,H,bH]),b$=(0,c.useCallback)(async a=>{if(n){if(0===bH.length)return void window.alert("Enable at least one agent in this project.");a7(b=>new Set(b).add(a));try{let b=await fetch("/api/tasks/extract",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({threadId:n,rootMessageId:a,activeParticipantIds:bH.map(a=>a.id)})});if(b.ok){let c=await b.json(),d={draftId:crypto.randomUUID(),revision:0,tasks:c.tasks,buildStatus:"idle"};a5(b=>({...b,[a]:d}))}else console.error("Task extraction failed:",await b.text())}catch(a){console.error("Task extraction error:",a)}finally{a7(b=>{let c=new Set(b);return c.delete(a),c})}}},[n,bH]),b_=(0,c.useCallback)((a,b)=>{a5(c=>({...c,[a]:b}))},[]),b0=(0,c.useCallback)(async(a,b,c,d)=>{if(n){a9(a=>new Set(a).add(b.draftId)),a5(e=>({...e,[a]:{...b,buildStatus:"building",projectId:c,projectName:d}}));try{let d=crypto.randomUUID(),e=await G(b.tasks,c,d,b.builtTaskIds),f={...b.builtTaskIds},g=!1;for(let a of e.results)"created"===a.status&&a.remoteTaskId?f[a.clientTaskId]=a.remoteTaskId:g=!0;a5(b=>({...b,[a]:{...b[a],buildId:d,buildStatus:g?"partial_failure":"done",builtTaskIds:f}}))}catch(b){console.error("Build error:",b),a5(b=>({...b,[a]:{...b[a],buildStatus:"partial_failure"}}))}finally{a9(a=>{let c=new Set(a);return c.delete(b.draftId),c})}}},[n]),b1=(0,c.useCallback)(()=>{if(!n)return;let a=(()=>{if(aI)return aI;let a=new Set(C.map(a=>a.rootMessageId).filter(a=>!!a));for(let b=C.length-1;b>=0;b-=1){let c=C[b];if(!c.rootMessageId&&a.has(c.id))return c.id}return null})();a?b$(a):console.warn("No thread with replies available to extract tasks from")},[n,b$,C,aI]);(0,c.useCallback)(a=>{aJ(a)},[]);let b2=(0,c.useCallback)(a=>{aJ(a)},[]),b3=(0,c.useCallback)(a=>{let b=a?.trim()??"";b&&aO(b),requestAnimationFrame(()=>{ba.current?.focus(),b||ba.current?.select()})},[]),b4=(0,c.useCallback)(()=>{if(!n)return;let a=(()=>{if(aI)return aI;let a=new Set(C.map(a=>a.rootMessageId).filter(a=>!!a));for(let b=C.length-1;b>=0;b-=1){let c=C[b];if(!c.rootMessageId&&a.has(c.id))return c.id}return null})();a?bZ(a):console.warn("No thread with replies available to summarize")},[n,bZ,C,aI]),b5=(0,c.useCallback)(async(a,b,c,d,e,f,g)=>{let h=a.match(/^\/search(?:\s+([\s\S]+))?$/i);if(h)return void b3(h[1]);if(/^\/summarize(?:\s+[\s\S]+)?$/i.test(a))return void b4();if(/^\/tasks(?:\s+[\s\S]+)?$/i.test(a)||/^\/create(?:\s+[\s\S]+)?$/i.test(a))return void b1();aM&&aI&&(aB(a=>{let b=new Set(a);return b.delete(aI),b}),fetch("/api/schedules",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"stop",rootMessageId:aI})}).catch(a=>console.error("Failed to deactivate schedule:",a)));let i=n;i||(i=(await p()).id);let j=bH.map(a=>a.id);if(0===j.length)return void window.alert("Enable at least one agent in this project.");let k=(0,aL.orderParticipantIds)(j,e);if(aI)return void await F(a,b,i,aI,c,d,k,af,f,g);let l=await F(a,b,i,null,c,d,k,af,f,g);aC&&l&&(aD(!1),aB(a=>{let b=new Set(a);return b.add(l),b}),fetch("/api/schedules",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"activate",rootMessageId:l})}).catch(a=>console.error("Failed to activate schedule for new thread:",a)))},[n,aM,aC,p,b3,b4,aI,bH,F,af]),b6=(0,c.useCallback)(async a=>{if(!aI)return void aD(a);aB(b=>{let c=new Set(b);return a?c.add(aI):c.delete(aI),c});try{await fetch("/api/schedules",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:a?"activate":"stop",rootMessageId:aI})})}catch(a){console.error("Failed to toggle autonomous schedule:",a)}},[aI]),b7=(0,c.useCallback)(a=>{let b=a.rootMessageId||a.messageId;a.threadId!==n?(bb.current=b,o(a.threadId)):aJ(b),aY(null),window.requestAnimationFrame(()=>{aY(a.messageId),bc.current&&window.clearTimeout(bc.current),bc.current=window.setTimeout(()=>{aY(b=>b===a.messageId?null:b)},2e3)}),bM()},[n,bM,o]),b8=(0,c.useCallback)(async a=>{V(),await q(a)},[q,V]),b9=(0,c.useCallback)(a=>{if(!n||!a)return;let b=C.find(b=>b.id===a);a2({type:"thread",id:a,preview:b?.content?.slice(0,120)||void 0})},[n,C]),ca=(0,c.useCallback)(async a=>{if(n){a0(a),W(a);try{let b=new URLSearchParams({threadId:n,rootMessageId:a}),c=await fetch(`/api/history?${b.toString()}`,{method:"DELETE"});if(!c.ok)return void console.error("Failed to delete message thread",await c.text());aJ(b=>b===a?null:b),aY(null);let d=C.filter(b=>b.id!==a&&b.rootMessageId!==a);r(n,d),await H(n)}catch(a){console.error("Failed to delete message thread",a)}finally{a0(b=>b===a?null:b)}}},[n,H,C,W,r]),cb=(0,c.useCallback)(a=>{if(!n||!a)return;let b=C.find(b=>b.id===a);a2({type:"message",id:a,preview:b?.content?.slice(0,120)||void 0})},[n,C]),cc=(0,c.useCallback)(async a=>{if(n)try{let b=new URLSearchParams({threadId:n,messageId:a}),c=await fetch(`/api/history?${b.toString()}`,{method:"DELETE"});if(!c.ok)return void console.error("Failed to delete message",await c.text());let d=C.filter(b=>b.id!==a);r(n,d),await H(n)}catch(a){console.error("Failed to delete message",a)}},[n,H,C,r]),cd=(0,c.useCallback)(()=>{a1&&("thread"===a1.type?ca(a1.id):cc(a1.id),a2(null))},[a1,ca,cc]),ce=(0,c.useCallback)(()=>{a2(null)},[]),cf=(0,c.useMemo)(()=>[{name:"/search",description:"Search messages (usage: /search <query>)",aliases:["find"],execute:()=>b3()},{name:"/summarize",description:"Summarize current thread or latest thread with replies",aliases:["sum"],execute:()=>b4()},{name:"/tasks",description:"Extract tasks from current thread discussion",aliases:["create"],execute:()=>b1()}],[b3,b4,b1]),cg=(0,c.useMemo)(()=>{let a=af?ae.find(a=>a.slug===af):ae[0];return a?.repos??[]},[ae,af]),[ch,ci]=(0,c.useState)(new Set),cj=(0,c.useRef)(null);(0,c.useEffect)(()=>{if(!aI){ci(new Set),cj.current=null;return}cj.current!==aI&&(ci(new Set),cj.current=aI,fetch(`/api/thread-repos?rootMessageId=${encodeURIComponent(aI)}`).then(a=>a.json()).then(a=>{cj.current===aI&&a.repoIds&&a.repoIds.length>0&&ci(new Set(a.repoIds))}).catch(()=>{}))},[aI]);let ck=(0,c.useCallback)(a=>{ci(a),aI&&fetch("/api/thread-repos",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({rootMessageId:aI,repoIds:[...a]})}).catch(()=>{})},[aI]),cl=(0,c.useCallback)(a=>{let c=O.some(b=>["spawning","running"].includes(b.state)&&b.threadId===a)||Object.values(P).some(b=>b.rootMessageId===a)?"working":S.some(b=>b.rootMessageId===a&&"queued"===b.status)?"queued":"ready";return(0,b.jsx)(bd,{onSend:(b,c,d,e,f,g,h)=>bY(a,b,c,f,g,h),onStop:()=>W(a),loading:"ready"!==c,activityStatus:c,participants:bH,projectGroups:ae,projects:bI,projectSlug:af,messages:C,commands:cf,placeholder:"Reply — @name to mention, /search, /summarize",autoMode:aM,onAutoModeChange:b6,repos:cg,selectedRepoIds:ch,onRepoSelectionChange:ck})},[bY,W,P,bH,ae,bI,af,cf,C,aM,b6,O,S,cg,ch,ck]),cm=(0,c.useCallback)(()=>{au(a=>{let b=!a;return bC(b),b})},[bC]),cn=(0,c.useCallback)(a=>{aw(a),(0,bf.persistWorkspaceWidth)(a)},[]),co=async a=>{let b=await fetch("/api/participants",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(b.ok){let a=await b.json();ai(b=>b.map(b=>b.id===a.id?a:b))}},cp=(0,c.useCallback)((a,b)=>{an(c=>{let d=bx(ah,Y,n);if(!new Set(d).has(a))return c;let e=new Set(c);b?e.add(a):e.delete(a);let f=d.filter(a=>e.has(a));return n&&bh(n,f),f})},[n,ah,Y]),cq=(0,c.useCallback)(a=>{let b=Y.find(b=>b.id===a);if(!b||n&&!b.thread_ids?.includes(n))return;let c=b.agents.map(a=>a.agent_id);an(c),n&&bh(n,c)},[Y,n]),cr=(0,c.useCallback)(()=>{as(a=>"dark"===a?"light":"dark")},[]),cs=()=>(0,b.jsx)("button",{type:"button",onClick:cr,"aria-label":"dark"===ar?"Switch to light theme":"Switch to dark theme",title:"dark"===ar?"Switch to light theme":"Switch to dark theme",className:"inline-flex h-9 w-9 items-center justify-center rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] text-[var(--app-shell-muted)] transition-all hover:border-[var(--app-shell-border-strong)] hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]",children:"dark"===ar?(0,b.jsx)(bq,{className:"h-4 w-4",strokeWidth:1.75}):(0,b.jsx)(bp,{className:"h-4 w-4",strokeWidth:1.75})}),ct=(0,b.jsx)("div",{className:"desktop-titlebar border-b border-[var(--app-shell-border)] bg-[var(--app-shell-surface)] px-4 py-2.5 backdrop-blur-xl md:px-6",children:(0,b.jsxs)("div",{className:"mx-auto flex max-w-5xl items-center gap-3",children:[(0,b.jsx)("div",{className:"flex min-w-0 items-center flex-shrink-0",children:k&&!at&&(0,b.jsx)("button",{type:"button",onClick:cm,className:"inline-flex h-9 w-9 items-center justify-center rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] text-[var(--app-shell-muted)] transition hover:border-[var(--app-shell-border-strong)] hover:text-[var(--foreground)]",title:"Show sidebar","aria-label":"Show sidebar",children:(0,b.jsx)(bo,{className:"h-4 w-4",strokeWidth:1.75})})}),(0,b.jsx)("div",{className:"flex flex-1 justify-center min-w-0",children:(0,b.jsxs)("div",{className:"flex w-full max-w-2xl items-center gap-2",children:[(0,b.jsxs)("div",{className:"relative group/search min-w-0 flex-1",children:[(0,b.jsx)(bl.Search,{className:"pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-[var(--app-shell-soft-text)] transition-colors group-focus-within/search:text-[var(--primary)]",strokeWidth:2}),(0,b.jsx)("input",{ref:ba,type:"text",value:aN,onChange:a=>aO(a.target.value),onKeyDown:a=>{"Escape"===a.key&&bM()},placeholder:"Search messages…",className:"h-9 w-full rounded-xl border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] pl-9 pr-16 text-sm font-medium text-[var(--foreground)] outline-none placeholder:text-[var(--app-shell-soft-text)] transition-all hover:border-[var(--app-shell-border-strong)] focus:border-[var(--primary)] focus:ring-2 focus:ring-[var(--ring)]"}),bD?(0,b.jsxs)("div",{className:"absolute right-3 top-1/2 flex -translate-y-1/2 items-center gap-2",children:[(0,b.jsx)("span",{className:"text-[11px] font-bold text-[var(--muted-foreground)]",children:aT?"…":aR}),(0,b.jsx)("button",{type:"button",onClick:bM,className:"text-[10px] font-bold text-[var(--app-shell-soft-text)] transition-colors hover:text-[var(--app-shell-muted)]",children:"✕"})]}):(0,b.jsx)("kbd",{className:"pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 rounded-md border border-[var(--app-shell-border)] bg-[var(--app-shell-subtle)] px-1.5 py-0.5 font-sans text-[10px] font-bold text-[var(--app-shell-soft-text)]",children:"⌘K"})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2 flex-shrink-0",children:[cs(),(0,b.jsx)(bu,{}),aI&&(0,b.jsx)("button",{type:"button",onClick:()=>az(!ay),"aria-label":ay?"Hide logs":`Show logs${E.length>0?` (${E.length})`:""}`,"aria-pressed":ay,title:ay?"Hide logs":`Show logs${E.length>0?` (${E.length})`:""}`,className:`inline-flex h-9 w-9 items-center justify-center rounded-xl border transition-all focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--ring)] ${ay?"border-[var(--app-shell-border-strong)] bg-[var(--app-shell-subtle)] text-[var(--foreground)]":"border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] text-[var(--app-shell-muted)] hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]"}`,children:(0,b.jsx)(bn,{className:"h-4 w-4",strokeWidth:1.75})})]})]})})]})});return(0,b.jsxs)("div",{className:"flex h-screen bg-[var(--app-shell-bg)] text-[var(--foreground)]",children:[k?(0,b.jsx)(h.WorkspaceSidebar,{threads:m,participants:ah,activeThreadId:n,isLoading:v,isRestoringActiveThread:w,isCreating:s,deletingThreadId:t,renamingThreadId:u,onSelectThread:o,onCreateThread:p,onRenameThread:x,onDeleteThread:b8,activeParticipantIds:al,onToggleParticipantActive:cp,visible:at,onToggle:cm,width:av,onWidthChange:cn,projects:Y,onCreateProject:Z,onUpdateProject:ad,onDeleteProject:$,onAddAgentToProject:_,onRemoveAgentFromProject:aa,onReorderProjectAgents:ab,onUpdateParticipant:co,onSelectProject:cq}):null,(0,b.jsx)("div",{className:"flex flex-col flex-1 min-w-0 relative",children:w?(0,b.jsx)("div",{className:"flex-1 flex items-center justify-center px-4 text-sm text-[var(--muted-foreground)]",children:"Loading your last project…"}):(0,b.jsx)("div",{className:"flex flex-1 min-h-0 bg-transparent relative",children:(0,b.jsxs)("div",{className:"flex flex-col flex-1 min-w-0",children:[aI?(0,b.jsx)("div",{className:"desktop-titlebar border-b border-[var(--app-shell-border)] bg-[var(--app-shell-surface)] px-4 py-2.5 backdrop-blur-xl md:px-6 transition-colors duration-200 shrink-0",children:(0,b.jsxs)("div",{className:"mx-auto flex max-w-5xl items-center gap-3 min-w-0",children:[(0,b.jsx)("button",{onClick:()=>aJ(null),className:"p-1.5 text-[var(--app-shell-muted)] hover:text-[var(--primary)] hover:bg-[var(--app-shell-subtle)] rounded-xl transition-all active:scale-95 flex-shrink-0",title:"Back to main feed",children:(0,b.jsx)(bm.ChevronLeft,{size:20,strokeWidth:2.25})}),(0,b.jsxs)("div",{className:"flex-1 flex flex-col min-w-0",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,b.jsx)("h2",{className:"text-[15px] font-semibold text-[var(--foreground)] tracking-tight leading-tight truncate min-w-0",children:bK}),bL&&(0,b.jsxs)("span",{className:"inline-flex items-center gap-1 px-1.5 py-0.5 rounded-full text-[10px] font-semibold border shrink-0",style:{borderColor:bL.color+"40",color:bL.color},children:[(0,b.jsx)("span",{className:"w-1.5 h-1.5 rounded-full",style:{backgroundColor:bL.color}}),bL.label]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5 text-[11px] font-medium text-[var(--app-shell-muted)]",children:[(0,b.jsxs)("span",{className:"opacity-80",children:[bG.length," agents"]}),(0,b.jsx)("span",{className:"h-0.5 w-0.5 rounded-full bg-[var(--app-shell-soft-text)]"}),(0,b.jsxs)("span",{className:"opacity-80",children:["Updated ",function(a){if(!a)return"recently";let b=Math.floor((Date.now()-a)/1e3);if(b<60)return"just now";let c=Math.floor(b/60);if(c<60)return`${c}m ago`;let d=Math.floor(c/60);return d<24?`${d}h ago`:new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric"}).format(a)}(bJ)]}),bV&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:"h-0.5 w-0.5 rounded-full bg-[var(--app-shell-soft-text)]"}),(0,b.jsx)("span",{className:"opacity-80",children:bV})]})]})]}),(0,b.jsx)("div",{className:"flex -space-x-1.5 flex-shrink-0",children:bG.map(a=>(0,b.jsx)("img",{src:`https://api.dicebear.com/9.x/bottts-neutral/svg?seed=${a.id}&backgroundColor=${a.color?a.color.replace("#",""):"e2e8f0"}`,alt:a.name,className:"h-7 w-7 rounded-full border-2 border-[var(--app-shell-elevated)] object-cover shadow-sm ring-1 ring-[var(--app-shell-border)]",title:a.name},a.id))}),(0,b.jsxs)("div",{className:"ml-auto flex items-center gap-2",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>void bR(),disabled:bT,title:bS?"Learning is already running for this discussion":"Learn from this discussion",className:`inline-flex h-9 items-center gap-1.5 rounded-xl border px-3 text-xs font-medium transition-all focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--ring)] ${bT?"cursor-wait border-[var(--app-shell-border)] bg-[var(--app-shell-subtle)] text-[var(--app-shell-muted)]":"border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] text-[var(--app-shell-muted)] hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]"}`,children:[bT?(0,b.jsx)(bs.default,{className:"h-3.5 w-3.5 animate-spin",strokeWidth:1.75}):(0,b.jsx)(br.BookOpen,{className:"h-3.5 w-3.5",strokeWidth:1.75}),(0,b.jsx)("span",{className:"hidden sm:inline",children:bS?"Learning...":"Learn from discussion"})]}),cs(),(0,b.jsx)(bu,{}),(0,b.jsx)("button",{type:"button",onClick:()=>az(!ay),"aria-label":ay?"Hide logs":`Show logs${E.length>0?` (${E.length})`:""}`,"aria-pressed":ay,title:ay?"Hide logs":`Show logs${E.length>0?` (${E.length})`:""}`,className:`inline-flex h-9 w-9 items-center justify-center rounded-xl border transition-all focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--ring)] ${ay?"border-[var(--app-shell-border-strong)] bg-[var(--app-shell-subtle)] text-[var(--foreground)]":"border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] text-[var(--app-shell-muted)] hover:bg-[var(--app-shell-subtle)] hover:text-[var(--foreground)]"}`,children:(0,b.jsx)(bn,{className:"h-4 w-4",strokeWidth:1.75})})]})]})}):ct,bE?(0,b.jsx)(ap,{query:bD,results:aP,total:aR,participants:ah,threadTitleById:bF,isLoading:aT,error:aV,onSelectResult:b7}):aI?(0,b.jsx)(am,{messages:C,streaming:P,participants:ah,rootMessageId:aI,queued:S.some(a=>a.rootMessageId===aI&&"queued"===a.status),onClose:()=>aJ(null),onCopyThread:bQ,onAddToChat:bP,onDeleteThreadRoot:b9,onDeleteMessage:cb,highlightedMessageId:aX||void 0,renderReplyComposer:cl,activeProcesses:O.filter(a=>["spawning","running"].includes(a.state)&&a.threadId===aI)}):(0,b.jsx)(ag,{messages:C,streaming:P,participants:ah,onOpenThread:b2,onCopyThread:bQ,onAddToChat:bP,onDeleteThreadRoot:b9,onSummarize:bZ,onCreateTasks:b$,onUpdateTaskDraft:b_,onBuildTasks:b0,summarizingThreads:aZ,extractingTasks:a6,buildingDrafts:a8,taskDrafts:a3,deletingThreadRootId:a_,highlightedMessageId:aX,shipModeThreads:aA,onUpdateMessageThreadStatus:n?(a,b)=>{D(c=>c.map(c=>c.id===a?{...c,threadStatus:b}:c)),A(n,a,b),fetch("/api/threads",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({rootMessageId:a,status:b})})}:void 0,onUpdateMessageOutcomeNote:n?(a,b)=>{D(c=>c.map(c=>c.id===a?{...c,outcomeNote:b}:c)),B(n,a,b);let c=C.find(b=>b.id===a);fetch("/api/threads",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({rootMessageId:a,status:c?.threadStatus??null,outcomeNote:b})})}:void 0}),!bE&&!aI&&(0,b.jsx)(bd,{onSend:b5,onStop:V,loading:"ready"!==T,activityStatus:T,participants:bH,projects:bI,projectGroups:ae,projectSlug:af,messages:C,commands:cf,pendingThreadInsert:bN,onClearPendingThread:()=>bO(null),autoMode:aM,onAutoModeChange:b6,repos:cg,selectedRepoIds:ch,onRepoSelectionChange:ck})]})})}),j&&(0,b.jsx)(bt,{logs:E,participants:ah,onClear:()=>void I(n),open:ay,onToggle:()=>az(!1)}),(0,b.jsx)(bj.default,{isOpen:null!==a1,title:a1?.type==="thread"?"Delete Discussion":"Delete Message",message:a1?.type==="thread"?"This will permanently delete this discussion and all of its replies. This action cannot be undone.":"This will permanently delete this message. This action cannot be undone.",preview:a1?.preview,confirmLabel:"Delete",cancelLabel:"Cancel",variant:"danger",onConfirm:cd,onCancel:ce})]})}a.s(["ChatContainer",()=>bz],124610)}];
|
|
12
12
|
|
|
13
13
|
//# sourceMappingURL=components_chat-ui_bfeda794._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[986976,655672,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(935112),e=a.i(405784),f=a.i(50522),g=a.i(2835),h=a.i(501027),i=a.i(492596),j=a.i(734531);let k=(0,a.i(883706).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 l=a.i(699464),m=a.i(915618),n=a.i(587532),o=a.i(781560),p=a.i(633508),q=a.i(860614),r=a.i(321161),s=a.i(238246),t=a.i(520138),u=a.i(18984);function v({threads:a,participants:v=[],activeThreadId:w,isLoading:x,isCreating:y,onSelectThread:z,onCreateThread:A,onRenameThread:B,onDeleteThread:C,deletingThreadId:D=null,renamingThreadId:E=null,activeParticipantIds:F=[],onToggleParticipantActive:G,visible:H=!1,isRestoringActiveThread:I=!1,onToggle:J,onSearch:K,projects:L=[],onCreateProject:M,onUpdateProject:N,onDeleteProject:O,onAddAgentToProject:P,onRemoveAgentFromProject:Q,onAddAgentViaForm:R,onReorderProjectAgents:S,onUpdateParticipant:T,onSelectProject:U,activeProjectId:V=null,activeProjectView:W=null}){let X,Y,Z=(0,c.useRef)(null),[$,_]=(0,c.useState)(!1),[aa,ab]=(0,c.useState)(new Set);(0,c.useEffect)(()=>{if(aa.size>0||!L?.length)return;let a=L.find(a=>!1);ab(new Set([a?.id??L[0].id]))},[L]);let[ac,ad]=(0,c.useState)(null),[ae,af]=(0,c.useState)(new Set),[ag,ah]=(0,c.useState)(!1),[ai,aj]=(0,c.useState)(null),[ak,al]=(0,c.useState)(null),am=(0,u.useProjectFormState)(),[an,ao]=(0,c.useState)(null),ap=(0,c.useCallback)(a=>{a&&(a.focus(),a.select())},[]),[aq,ar]=(0,c.useState)(null),[as,at]=(0,c.useState)(null),au=as?v.find(a=>a.id===as)??null:null,[av,aw]=(0,c.useState)(null),[ax,ay]=(0,c.useState)(null),az=async()=>{if(!ai&&!ak)return;if(!am.form.name.trim())return void am.setFormError("Project name is required");let a=am.repos.find(a=>a.name.trim()&&!a.path.trim());if(a)return void am.setFormError(`Local path is required for folder "${a.name}"`);am.setFormError(null),am.setIsSubmitting(!0);let b=(0,u.createProjectPayload)(am.form,am.repos);ak?await N?.(ak.id,b):await M?.(b,ai?.threadId),am.setIsSubmitting(!1),aj(null),al(null)},aA=async a=>{am.resetForm();try{let b=await fetch(`/api/projects/${a}`);if(!b.ok)throw Error("Failed to load project");let c=(await b.json()).project;al(c),am.hydrateFromProject(c)}catch(a){console.error("Failed to load project settings",a)}};(0,c.useEffect)(()=>{_(!0)},[]),(0,c.useEffect)(()=>{let a=!1;async function b(){if(av?.repoId)try{let b=await fetch(`/api/knowledge-notes?scope=repo&subjectId=${encodeURIComponent(av.repoId)}`),c=(b.ok?await b.json():{note:null}).note;a||aw(a=>a&&a.repoId===av.repoId?{...a,generatedKnowledge:c?.content?[{id:c.id,content:c.content,created_at:c.updatedAt??c.createdAt}]:[],isLoadingKnowledge:!1}:a)}catch{a||aw(a=>a&&a.repoId===av.repoId?{...a,generatedKnowledge:[],isLoadingKnowledge:!1}:a)}}return av?.repoId&&b(),()=>{a=!0}},[av?.repoId]);let aB=a=>{R?R(a):(af(new Set),ad({projectId:a}))},aC=ac?L.find(a=>a.id===ac.projectId):null,aD=new Set(aC?.agents.map(a=>a.agent_id)??[]),aE=ac?v.filter(a=>!aD.has(a.id)):[],aF=a.length>0,aG=!!H,aH=[...a].sort((a,b)=>(a.title??"").localeCompare(b.title??"")),aI=new Map(a.map(a=>[a.id,a])),aJ=L.filter(a=>!a.is_default),aK=aH.filter(a=>!aJ.some(b=>b.thread_ids?.includes(a.id)));!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:Z,shouldFocus:aG&&!(x&&!aF||I&&aF)&&!aF&&!y});let aL=()=>{ao({title:"Create chat",placeholder:"Chat title",defaultValue:"",onSubmit:a=>void A({title:a})})};return aG?(0,b.jsxs)("aside",{id:"workspace-sidebar",className:"workspace-sidebar","aria-label":"Workspace sidebar","aria-busy":x?"true":void 0,children:[(0,b.jsxs)("div",{className:"workspace-sidebar__brand",children:[(0,b.jsxs)("div",{className:"workspace-sidebar__brand-content flex items-center gap-2 px-1",children:[(0,b.jsx)("div",{className:"workspace-sidebar__brand-icon","aria-hidden":"true",children:(0,b.jsx)("span",{className:"text-[10px]",children:"AGX"})}),(0,b.jsx)("span",{className:"workspace-sidebar__brand-title",children:"Workspace"})]}),J&&(0,b.jsx)("button",{type:"button",onClick:J,"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)(k,{className:"h-4 w-4",strokeWidth:1.75})})]}),(0,b.jsxs)("div",{className:"workspace-sidebar__content",children:[K&&(0,b.jsx)("div",{className:"px-3 pt-2 pb-1",children:(0,b.jsxs)("button",{type:"button",onClick:K,className:"flex h-8 w-full items-center gap-2 rounded-lg border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] px-2.5 text-xs text-[var(--app-shell-soft-text)] transition-all hover:border-[var(--app-shell-border-strong)] hover:text-[var(--app-shell-muted)]",children:[(0,b.jsx)(n.Search,{className:"h-3.5 w-3.5 shrink-0",strokeWidth:1.75}),(0,b.jsx)("span",{children:"Search..."}),(0,b.jsx)("kbd",{className:"ml-auto rounded border border-[var(--app-shell-border)] bg-[var(--app-shell-subtle)] px-1 py-0.5 font-sans text-[10px] font-medium text-[var(--app-shell-soft-text)]",children:"⌘K"})]})}),(0,b.jsxs)("nav",{className:"workspace-sidebar__section",children:[(0,b.jsxs)("div",{className:"workspace-sidebar__section-header group/projects-header",children:[(0,b.jsx)("p",{className:"workspace-sidebar__section-label",children:"Projects"}),(0,b.jsx)("div",{className:"workspace-sidebar__header-actions",children:(0,b.jsx)("button",{type:"button",className:"workspace-sidebar__action opacity-0 transition-opacity group-hover/projects-header:opacity-100",onClick:()=>{am.resetForm(),al(null),aj({})},"aria-label":"Create project",title:"Create project",children:(0,b.jsx)(m.Plus,{size:14})})})]}),aJ.map(a=>{let c=aa.has(a.id),d=aH.filter(b=>a.thread_ids?.includes(b.id)),k=a.id===V,n=a.thread_ids?.find(a=>aI.has(a))??a.thread_ids?.[0]??d[0]?.id??null,p=k&&"thread"===W&&n===w,u=k&&"automations"===W,x=k&&"linear"===W;return(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{className:"workspace-sidebar__workspace-item group",children:[(0,b.jsxs)("div",{className:"workspace-sidebar__nav-item workspace-sidebar__workspace-nav-item",children:[(0,b.jsx)("button",{type:"button",className:"inline-flex items-center justify-center rounded-sm text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)]",onClick:()=>{var b;return b=a.id,void ab(a=>{let c=new Set(a);return c.has(b)?c.delete(b):c.add(b),c})},"aria-label":c?`Collapse ${a.name}`:`Expand ${a.name}`,title:c?"Collapse project":"Expand project",children:c?(0,b.jsx)(e.ChevronDown,{size:14,className:"flex-shrink-0"}):(0,b.jsx)(f.ChevronRight,{size:14,className:"flex-shrink-0"})}),(0,b.jsx)(i.Folder,{size:12,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title",children:a.name})]}),(0,b.jsxs)("div",{className:"workspace-sidebar__workspace-actions",children:[(0,b.jsx)("button",{type:"button",className:"workspace-sidebar__workspace-action",onClick:()=>void aA(a.id),"aria-label":`Open project settings for ${a.name}`,title:"Project settings",children:(0,b.jsx)(l.Pencil,{size:12})}),(0,b.jsx)("button",{type:"button",className:"workspace-sidebar__workspace-action workspace-sidebar__workspace-action--delete",onClick:()=>{var b;let c;return b=a.id,c=L.find(a=>a.id===b),void ar({title:"Delete project",message:`Delete "${c?.name??"project"}"? Its agents will move to the Default project.`,onConfirm:()=>void O?.(b)})},"aria-label":`Delete project ${a.name}`,title:`Delete project ${a.name}`,children:(0,b.jsx)(o.Trash2,{size:12})})]})]}),c&&(0,b.jsxs)("div",{className:"ml-4 my-1 flex flex-col gap-0.5 border-l border-[var(--app-shell-border)] pl-3",children:[(0,b.jsxs)("div",{className:"workspace-sidebar__workspace-item group/linear flex items-center",children:[(0,b.jsxs)(s.default,{href:`/projects/${a.slug}/linear`,className:`workspace-sidebar__nav-item flex-1 ${x?"workspace-sidebar__nav-item--active":""}`,"aria-current":x?"page":void 0,children:[(0,b.jsx)(q.ExternalLink,{size:12,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-xs",children:"Linear"})]}),(0,b.jsx)(s.default,{href:`/projects/${a.slug}/linear?settings=true`,className:"flex h-5 w-5 items-center justify-center rounded opacity-0 group-hover/linear:opacity-100 hover:bg-[var(--sidebar-hover)] transition-opacity",title:"Linear settings",children:(0,b.jsx)(r.Settings,{size:11,className:"text-[var(--muted-foreground)]"})})]}),(0,b.jsx)("div",{className:"workspace-sidebar__workspace-item",children:(0,b.jsxs)(s.default,{href:`/projects/${a.slug}/automations`,className:`workspace-sidebar__nav-item ${u?"workspace-sidebar__nav-item--active":""}`,"aria-current":u?"page":void 0,children:[(0,b.jsx)(h.Zap,{size:12,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-xs",children:"Scheduled Tasks"})]})}),(0,b.jsx)("div",{className:"workspace-sidebar__workspace-item",children:n?(0,b.jsxs)("button",{type:"button",className:`workspace-sidebar__nav-item ${p?"workspace-sidebar__nav-item--active":""}`,onClick:()=>z(n),"aria-current":p?"page":void 0,children:[(0,b.jsx)(g.Hash,{size:12,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-xs",children:"Chat"})]}):(0,b.jsxs)("button",{type:"button",className:"workspace-sidebar__nav-item",onClick:aL,children:[(0,b.jsx)(g.Hash,{size:12,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-xs",children:"Chat"})]})}),(0,b.jsxs)("div",{className:"pt-1",children:[(0,b.jsxs)("div",{className:"group/repos-header flex items-center justify-between px-3 py-1",children:[(0,b.jsx)("p",{className:"text-[10px] font-medium text-[var(--muted-foreground)] uppercase tracking-wide",children:"Folders"}),(0,b.jsxs)("div",{className:"flex items-center gap-1",children:[(0,b.jsx)(s.default,{href:"/folders",className:"workspace-sidebar__action opacity-0 transition-opacity group-hover/repos-header:opacity-100 text-[var(--muted-foreground)] hover:text-white","aria-label":"Manage folders",title:"Manage folders",children:(0,b.jsx)(r.Settings,{size:12})}),(0,b.jsx)("button",{type:"button",className:"workspace-sidebar__action opacity-0 transition-opacity group-hover/repos-header:opacity-100 text-[var(--muted-foreground)] hover:text-white",onClick:()=>aw({projectId:a.id,projectName:a.name,repoId:null,name:"",path:"",gitUrl:"",notes:"",generatedKnowledge:[],isLoadingKnowledge:!1,isSaving:!1,error:null}),"aria-label":"Add folder",title:"Add folder",children:(0,b.jsx)(m.Plus,{size:12})})]})]}),a.repos.length>0?a.repos.map(c=>(0,b.jsxs)("div",{className:"workspace-sidebar__workspace-item group/repo flex items-center",children:[(0,b.jsxs)("button",{type:"button",className:"workspace-sidebar__nav-item min-w-0 flex-1 text-left",onClick:()=>aw({projectId:a.id,projectName:a.name,repoId:c.id,name:c.name,path:c.path||"",gitUrl:c.git_url||"",notes:c.notes||"",generatedKnowledge:[],isLoadingKnowledge:!0,isSaving:!1,error:null}),children:[(0,b.jsx)(j.FolderGit2,{size:12,className:"flex-shrink-0 text-[var(--muted-foreground)] ml-2"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-xs truncate",children:c.name})]}),(0,b.jsx)("button",{type:"button",className:"workspace-sidebar__action opacity-0 group-hover/repo:opacity-100 transition-opacity flex-shrink-0 text-[var(--muted-foreground)] hover:text-red-400",onClick:async b=>{b.stopPropagation();let d=a.repos.filter(a=>a.id!==c.id).map(a=>({id:a.id,name:a.name,path:a.path,git_url:a.git_url,notes:a.notes}));await N?.(a.id,{repos:d})},"aria-label":"Delete folder",title:"Delete folder",children:(0,b.jsx)(o.Trash2,{size:12})})]},`${a.id}:${c.name}:${c.path??""}`)):(0,b.jsx)("p",{className:"px-3 py-1 text-[11px] text-[var(--muted-foreground)]",children:"No folders"})]}),(0,b.jsxs)("div",{className:"pt-1",children:[(0,b.jsxs)("div",{className:"group/agents-header flex items-center justify-between px-3 py-1",children:[(0,b.jsx)("p",{className:"text-[10px] font-medium text-[var(--muted-foreground)] uppercase tracking-wide",children:"Agents"}),(0,b.jsxs)("div",{className:"flex items-center gap-1",children:[(0,b.jsx)(s.default,{href:"/agents",className:"workspace-sidebar__action opacity-0 transition-opacity group-hover/agents-header:opacity-100 text-[var(--muted-foreground)] hover:text-white","aria-label":"Manage agents",title:"Manage agents",children:(0,b.jsx)(r.Settings,{size:12})}),a.agents.length>0&&(0,b.jsx)("button",{type:"button",className:"workspace-sidebar__action opacity-0 transition-opacity group-hover/agents-header:opacity-100 text-[var(--muted-foreground)] hover:text-white",onClick:()=>aB(a.id),"aria-label":"Add agents",title:"Add agents",children:(0,b.jsx)(m.Plus,{size:12})})]})]}),a.agents.length>0?(0,b.jsx)(b.Fragment,{children:a.agents.map((c,d)=>{let e=v.find(a=>a.id===c.agent_id),f=ax?.projectId===a.id&&ax?.agentId===c.agent_id,g=ax?.projectId===a.id&&ax?.overIndex===d&&!f;return(0,b.jsx)("div",{draggable:!0,onDragStart:b=>{b.dataTransfer.effectAllowed="move",ay({projectId:a.id,agentId:c.agent_id,overIndex:d})},onDragOver:b=>{b.preventDefault(),ax&&ax.projectId===a.id&&ay(a=>a?{...a,overIndex:d}:null)},onDragEnd:()=>{if(ax&&ax.projectId===a.id&&S){let b=a.agents.map(a=>a.agent_id),c=b.indexOf(ax.agentId),d=ax.overIndex;if(-1!==c&&c!==d){let e=[...b],[f]=e.splice(c,1);e.splice(d,0,f),S(a.id,e)}}ay(null)},className:`group/agent flex items-center ${g?"border-t-2 border-[var(--border)]":"border-t-2 border-transparent"} ${f?"opacity-40":""}`,children:(0,b.jsxs)("button",{type:"button",className:"workspace-sidebar__nav-item flex-1 min-w-0 !py-1",onClick:()=>at(c.agent_id),children:[(0,b.jsx)("span",{className:`cursor-grab text-[var(--muted-foreground)] hover:text-[var(--muted-foreground)] flex-shrink-0 mr-0.5 transition-opacity ${0===d?"opacity-100":"opacity-0 group-hover/agent:opacity-100"}`,title:"Drag to reorder",children:"⠿"}),(0,b.jsx)("img",{src:(0,t.agentAvatarUrl)(c.agent_id,16,e?.color),alt:"",className:"w-4 h-4 rounded-full flex-shrink-0"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-xs truncate",children:e?.name??c.agent_id}),0===d&&(0,b.jsx)("span",{className:"ml-auto text-[9px] text-[var(--muted-foreground)] font-medium flex-shrink-0",title:"Default responder (top agent responds first)",children:"DEFAULT"})]})},c.agent_id)})}):(0,b.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1 px-3 py-1 text-[11px] font-medium text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)]",onClick:()=>aB(a.id),children:[(0,b.jsx)(m.Plus,{size:10}),(0,b.jsx)("span",{children:"Add agents"})]})]})]})]},a.id)}),aK.length>0&&(0,b.jsxs)("div",{className:"pt-3",children:[(0,b.jsx)("p",{className:"px-1 py-1 text-[10px] font-medium text-[var(--muted-foreground)] uppercase tracking-wide",children:"Unassigned Threads"}),aK.map(a=>{let c=a.id===w,d=a.title?.trim()||"Untitled thread";return(0,b.jsx)("div",{className:"workspace-sidebar__workspace-item group",children:(0,b.jsxs)("button",{type:"button",className:`workspace-sidebar__nav-item workspace-sidebar__workspace-nav-item ${c?"workspace-sidebar__nav-item--active workspace-sidebar__workspace-nav-item--active":""}`,onClick:()=>z(a.id),"aria-current":c?"page":void 0,children:[(0,b.jsx)(g.Hash,{size:12,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title",children:d})]})},a.id)})]})]})]}),(0,b.jsx)("div",{className:"mt-auto px-3 pb-3",children:(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"]})}),$&&av&&(0,d.createPortal)((0,b.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/30 p-4",onClick:()=>{av.isSaving||aw(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:av.projectName}),(0,b.jsx)("h3",{className:"truncate text-base font-semibold text-[var(--foreground)]",children:av.repoId?av.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:()=>{av.isSaving||aw(null)},"aria-label":"Close folder details",disabled:av.isSaving,children:(0,b.jsx)(p.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:av.name,onChange:a=>aw(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:av.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:av.path,onChange:a=>aw(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:av.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:av.isSaving,onClick:async()=>{try{let a=await fetch("/api/filesystem/pick-folder",{method:"POST"}),b=await a.json();b.path&&aw(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:av.notes,onChange:a=>aw(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:av.isSaving,placeholder:"Coding conventions, deploy steps, doc standards, ownership rules..."})]}),av.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"}),av.isLoadingKnowledge?(0,b.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"Loading note…"}):av.generatedKnowledge.length>0?(0,b.jsx)("div",{className:"space-y-2",children:av.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,av.error?(0,b.jsx)("p",{className:"text-xs text-red-600",children:av.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:()=>aw(null),disabled:av.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:av.isSaving||!N,onClick:async()=>{let a=L.find(a=>a.id===av.projectId);if(!a)return void aw(a=>a?{...a,error:"Project not found."}:a);let b=av.name.trim(),c=av.path.trim();if(!b)return void aw(a=>a?{...a,error:"Folder name is required."}:a);if(!c)return void aw(a=>a?{...a,error:"Folder path is required."}:a);aw(a=>a?{...a,isSaving:!0,error:null}:a);try{let d=av.repoId?a.repos.map(a=>a.id===av.repoId?{id:a.id,name:b,path:c,git_url:av.gitUrl.trim()||void 0,notes:av.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:av.gitUrl.trim()||void 0,notes:av.notes.trim()||void 0}];await N?.(a.id,{repos:d}),aw(null)}catch(a){aw(b=>b?{...b,isSaving:!1,error:a instanceof Error?a.message:"Failed to save folder details."}:b)}},children:av.isSaving?"Saving...":av.repoId?"Save":"Add Folder"})]})]})]})}),document.body),$&&ac&&!ag&&(0,d.createPortal)((0,b.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/30",onClick:()=>ad(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 ",aC?.name??"project"]}),(0,b.jsx)("button",{type:"button",className:"text-[var(--muted-foreground)] hover:text-[var(--muted-foreground)]",onClick:()=>ad(null),children:(0,b.jsx)(p.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:()=>ah(!0),children:[(0,b.jsx)(m.Plus,{size:14,className:"text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"text-xs font-medium",children:"Create new agent"})]}),0===aE.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"}):aE.map(a=>{let c=ae.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:()=>{af(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,t.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)})]}),aE.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:()=>ad(null),children:"Cancel"}),(0,b.jsxs)("button",{type:"button",disabled:0===ae.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 ae)P?.(ac.projectId,a);ad(null)},children:["Add ",ae.size>0?`(${ae.size})`:""]})]})]})}),document.body),$&&ag&&(0,d.createPortal)((0,b.jsx)(t.AgentForm,{title:"Create new agent",initial:{name:"",provider:"claude",model:"",identity:"",skills:[],skillBindings:[]},submitLabel:"Create & Add",projects:L?.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:ac?[ac.projectId]:[],onSubmit:async(a,b)=>{let c=["#D97706","#2563EB","#059669","#DC2626","#7C3AED","#DB2777","#0891B2"],d=c[v.length%c.length],e=a.name.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,""),f=b?.[0],g=await fetch("/api/participants",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e,name:a.name,provider:a.provider,model:a.model,color:a.color??d,...a.title?{title:a.title}:{},...a.identity?{identity:a.identity}:{},skills:a.skills??[],skillBindings:a.skillBindings??[],...f?{projectId:f}:{}})});if(g.ok){let a=await g.json().catch(()=>({})),c="string"==typeof a?.id&&a.id.trim()?a.id.trim():e;for(let a of(b??[]).slice(1))P?.(a,c);ah(!1),ad(null)}},onCancel:()=>{ah(!1)}}),document.body),$&&an&&(0,d.createPortal)((0,b.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/30",onClick:()=>ao(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:an.title}),(0,b.jsx)("button",{type:"button",className:"text-[var(--muted-foreground)] hover:text-[var(--muted-foreground)]",onClick:()=>ao(null),children:(0,b.jsx)(p.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&&(an.onSubmit(c),ao(null))},children:[(0,b.jsx)("input",{ref:ap,name:"value",type:"text",defaultValue:an.defaultValue,placeholder:an.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:()=>ao(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:an.defaultValue?"Save":"Create"})]})]})]})}),document.body),$&&aq&&(0,d.createPortal)((0,b.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/30",onClick:()=>ar(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:aq.title}),(0,b.jsx)("button",{type:"button",className:"text-[var(--muted-foreground)] hover:text-[var(--muted-foreground)]",onClick:()=>ar(null),children:(0,b.jsx)(p.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:aq.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:()=>ar(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:()=>{aq.onConfirm(),ar(null)},children:"Delete"})]})]})]})}),document.body),$&&(ai||ak)&&(0,d.createPortal)((0,b.jsx)(u.default,{isOpen:!0,onClose:()=>{am.resetForm(),aj(null),al(null)},onSubmit:()=>void az(),editingProject:ak,form:am.form,repos:am.repos,isSubmitting:am.isSubmitting,formError:am.formError,onFieldChange:(a,b)=>am.setForm(c=>({...c,[a]:b})),onRepoChange:am.handleRepoChange,onAddRepo:am.addRepo,onRemoveRepo:am.removeRepo}),document.body),$&&au&&(0,d.createPortal)((X=L.filter(a=>a.agents.some(a=>a.agent_id===au.id)),Y=L.filter(a=>!a.agents.some(a=>a.agent_id===au.id)),(0,b.jsx)(t.AgentForm,{title:"Edit agent",initial:{name:au.name,title:au.title||"",provider:au.provider,model:au.model||"",identity:au.identity||"",color:au.color,skills:au.skills||[],skillBindings:au.skillBindings||[]},agentId:au.id,submitLabel:"Save",projectMemberships:{current:X.map(a=>({id:a.id,name:a.name,is_default:!!a.is_default})),available:Y.map(a=>({id:a.id,name:a.name}))},onAddToProject:P?a=>P(a,au.id):void 0,onRemoveFromProject:Q?a=>Q(a,au.id):void 0,onSubmit:async a=>{T&&await T({...au,name:a.name,title:a.title||void 0,provider:a.provider,model:a.model,color:a.color??au.color,...a.identity?{identity:a.identity}:{},skills:a.skills??[],skillBindings:a.skillBindings??[]}),at(null)},onCancel:()=>at(null)})),document.body)]}):(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:J,className:"workspace-sidebar__brand-icon border-none outline-none cursor-pointer","aria-label":"Show chats",title:"Show chats",children:(0,b.jsx)("span",{className:"text-[10px]",children:"AGX"})})}),(0,b.jsx)("div",{className:"mt-auto p-2",children:(0,b.jsx)("a",{href:"https://discord.gg/G9afUYKKY3",target:"_blank",rel:"noopener noreferrer",className:"flex items-center justify-center w-8 h-8 rounded-lg text-white transition-colors",style:{backgroundColor:"#5865F2"},onMouseEnter:a=>a.currentTarget.style.backgroundColor="#4752C4",onMouseLeave:a=>a.currentTarget.style.backgroundColor="#5865F2",title:"Join Discord",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"})})})})]})}a.s(["WorkspaceSidebar",()=>v],986976);let w={threadSidebarVisible:!1};function x(){return({...w}).threadSidebarVisible}function y(a){}a.s(["loadWorkspaceSidebarVisible",()=>x,"persistWorkspaceSidebarVisible",()=>y],655672)}];
|
|
1
|
+
module.exports=[986976,655672,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(935112),e=a.i(405784),f=a.i(50522),g=a.i(2835),h=a.i(501027),i=a.i(492596),j=a.i(734531);let k=(0,a.i(883706).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 l=a.i(699464),m=a.i(915618),n=a.i(587532),o=a.i(781560),p=a.i(633508),q=a.i(860614),r=a.i(321161),s=a.i(238246),t=a.i(520138),u=a.i(18984);function v({threads:a,participants:v=[],activeThreadId:w,isLoading:x,isCreating:y,onSelectThread:z,onCreateThread:A,onRenameThread:B,onDeleteThread:C,deletingThreadId:D=null,renamingThreadId:E=null,activeParticipantIds:F=[],onToggleParticipantActive:G,visible:H=!1,isRestoringActiveThread:I=!1,onToggle:J,onSearch:K,projects:L=[],onCreateProject:M,onUpdateProject:N,onDeleteProject:O,onAddAgentToProject:P,onRemoveAgentFromProject:Q,onAddAgentViaForm:R,onReorderProjectAgents:S,onUpdateParticipant:T,onSelectProject:U,activeProjectId:V=null,activeProjectView:W=null,width:X,onWidthChange:Y}){let Z,$,_=(0,c.useRef)(!1);(0,c.useRef)(0);let aa=(0,c.useRef)(null),[ab,ac]=(0,c.useState)(!1),[ad,ae]=(0,c.useState)(new Set);(0,c.useEffect)(()=>{if(ad.size>0||!L?.length)return;let a=L.find(a=>!1);ae(new Set([a?.id??L[0].id]))},[L]);let[af,ag]=(0,c.useState)(null),[ah,ai]=(0,c.useState)(new Set),[aj,ak]=(0,c.useState)(!1),[al,am]=(0,c.useState)(null),[an,ao]=(0,c.useState)(null),ap=(0,u.useProjectFormState)(),[aq,ar]=(0,c.useState)(null),as=(0,c.useCallback)(a=>{a&&(a.focus(),a.select())},[]),[at,au]=(0,c.useState)(null),[av,aw]=(0,c.useState)(null),ax=av?v.find(a=>a.id===av)??null:null,[ay,az]=(0,c.useState)(null),[aA,aB]=(0,c.useState)(null),aC=async()=>{if(!al&&!an)return;if(!ap.form.name.trim())return void ap.setFormError("Project name is required");let a=ap.repos.find(a=>a.name.trim()&&!a.path.trim());if(a)return void ap.setFormError(`Local path is required for folder "${a.name}"`);ap.setFormError(null),ap.setIsSubmitting(!0);let b=(0,u.createProjectPayload)(ap.form,ap.repos);an?await N?.(an.id,b):await M?.(b,al?.threadId),ap.setIsSubmitting(!1),am(null),ao(null)},aD=async a=>{ap.resetForm();try{let b=await fetch(`/api/projects/${a}`);if(!b.ok)throw Error("Failed to load project");let c=(await b.json()).project;ao(c),ap.hydrateFromProject(c)}catch(a){console.error("Failed to load project settings",a)}};(0,c.useEffect)(()=>{ac(!0)},[]),(0,c.useEffect)(()=>{let a=!1;async function b(){if(ay?.repoId)try{let b=await fetch(`/api/knowledge-notes?scope=repo&subjectId=${encodeURIComponent(ay.repoId)}`),c=(b.ok?await b.json():{note:null}).note;a||az(a=>a&&a.repoId===ay.repoId?{...a,generatedKnowledge:c?.content?[{id:c.id,content:c.content,created_at:c.updatedAt??c.createdAt}]:[],isLoadingKnowledge:!1}:a)}catch{a||az(a=>a&&a.repoId===ay.repoId?{...a,generatedKnowledge:[],isLoadingKnowledge:!1}:a)}}return ay?.repoId&&b(),()=>{a=!0}},[ay?.repoId]);let aE=a=>{R?R(a):(ai(new Set),ag({projectId:a}))},aF=af?L.find(a=>a.id===af.projectId):null,aG=new Set(aF?.agents.map(a=>a.agent_id)??[]),aH=af?v.filter(a=>!aG.has(a.id)):[],aI=a.length>0,aJ=!!H,aK=[...a].sort((a,b)=>(a.title??"").localeCompare(b.title??"")),aL=new Map(a.map(a=>[a.id,a])),aM=L.filter(a=>!a.is_default),aN=aK.filter(a=>!aM.some(b=>b.thread_ids?.includes(a.id)));!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:aa,shouldFocus:aJ&&!(x&&!aI||I&&aI)&&!aI&&!y});let aO=()=>{ar({title:"Create chat",placeholder:"Chat title",defaultValue:"",onSubmit:a=>void A({title:a})})};return aJ?(0,b.jsxs)("aside",{id:"workspace-sidebar",className:"workspace-sidebar","aria-label":"Workspace sidebar","aria-busy":x?"true":void 0,style:X?{width:`${X}px`,minWidth:`${X}px`}:void 0,children:[(0,b.jsxs)("div",{className:"workspace-sidebar__brand",children:[(0,b.jsxs)("div",{className:"workspace-sidebar__brand-content flex items-center gap-2 px-1",children:[(0,b.jsx)("div",{className:"workspace-sidebar__brand-icon","aria-hidden":"true",children:(0,b.jsx)("span",{className:"text-[10px]",children:"AGX"})}),(0,b.jsx)("span",{className:"workspace-sidebar__brand-title",children:"Workspace"})]}),J&&(0,b.jsx)("button",{type:"button",onClick:J,"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)(k,{className:"h-4 w-4",strokeWidth:1.75})})]}),(0,b.jsxs)("div",{className:"workspace-sidebar__content",children:[K&&(0,b.jsx)("div",{className:"px-3 pt-2 pb-1",children:(0,b.jsxs)("button",{type:"button",onClick:K,className:"flex h-8 w-full items-center gap-2 rounded-lg border border-[var(--app-shell-border)] bg-[var(--app-shell-elevated)] px-2.5 text-xs text-[var(--app-shell-soft-text)] transition-all hover:border-[var(--app-shell-border-strong)] hover:text-[var(--app-shell-muted)]",children:[(0,b.jsx)(n.Search,{className:"h-3.5 w-3.5 shrink-0",strokeWidth:1.75}),(0,b.jsx)("span",{children:"Search..."}),(0,b.jsx)("kbd",{className:"ml-auto rounded border border-[var(--app-shell-border)] bg-[var(--app-shell-subtle)] px-1 py-0.5 font-sans text-[10px] font-medium text-[var(--app-shell-soft-text)]",children:"⌘K"})]})}),(0,b.jsxs)("nav",{className:"workspace-sidebar__section",children:[(0,b.jsxs)("div",{className:"workspace-sidebar__section-header group/projects-header",children:[(0,b.jsx)("p",{className:"workspace-sidebar__section-label",children:"Projects"}),(0,b.jsx)("div",{className:"workspace-sidebar__header-actions",children:(0,b.jsx)("button",{type:"button",className:"workspace-sidebar__action opacity-0 transition-opacity group-hover/projects-header:opacity-100",onClick:()=>{ap.resetForm(),ao(null),am({})},"aria-label":"Create project",title:"Create project",children:(0,b.jsx)(m.Plus,{size:14})})})]}),aM.map(a=>{let c=ad.has(a.id),d=aK.filter(b=>a.thread_ids?.includes(b.id)),k=a.id===V,n=a.thread_ids?.find(a=>aL.has(a))??a.thread_ids?.[0]??d[0]?.id??null,p=k&&"thread"===W&&n===w,u=k&&"automations"===W,x=k&&"linear"===W;return(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{className:"workspace-sidebar__workspace-item group",children:[(0,b.jsxs)("div",{className:"workspace-sidebar__nav-item workspace-sidebar__workspace-nav-item",children:[(0,b.jsx)("button",{type:"button",className:"inline-flex items-center justify-center rounded-sm text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)]",onClick:()=>{var b;return b=a.id,void ae(a=>{let c=new Set(a);return c.has(b)?c.delete(b):c.add(b),c})},"aria-label":c?`Collapse ${a.name}`:`Expand ${a.name}`,title:c?"Collapse project":"Expand project",children:c?(0,b.jsx)(e.ChevronDown,{size:14,className:"flex-shrink-0"}):(0,b.jsx)(f.ChevronRight,{size:14,className:"flex-shrink-0"})}),(0,b.jsx)(i.Folder,{size:12,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title",children:a.name})]}),(0,b.jsxs)("div",{className:"workspace-sidebar__workspace-actions",children:[(0,b.jsx)("button",{type:"button",className:"workspace-sidebar__workspace-action",onClick:()=>void aD(a.id),"aria-label":`Open project settings for ${a.name}`,title:"Project settings",children:(0,b.jsx)(l.Pencil,{size:12})}),(0,b.jsx)("button",{type:"button",className:"workspace-sidebar__workspace-action workspace-sidebar__workspace-action--delete",onClick:()=>{var b;let c;return b=a.id,c=L.find(a=>a.id===b),void au({title:"Delete project",message:`Delete "${c?.name??"project"}"? Its agents will move to the Default project.`,onConfirm:()=>void O?.(b)})},"aria-label":`Delete project ${a.name}`,title:`Delete project ${a.name}`,children:(0,b.jsx)(o.Trash2,{size:12})})]})]}),c&&(0,b.jsxs)("div",{className:"ml-4 my-1 flex flex-col gap-0.5 border-l border-[var(--app-shell-border)] pl-3",children:[(0,b.jsxs)("div",{className:"workspace-sidebar__workspace-item group/linear flex items-center",children:[(0,b.jsxs)(s.default,{href:`/projects/${a.slug}/linear`,className:`workspace-sidebar__nav-item flex-1 ${x?"workspace-sidebar__nav-item--active":""}`,"aria-current":x?"page":void 0,children:[(0,b.jsx)(q.ExternalLink,{size:12,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-xs",children:"Linear"})]}),(0,b.jsx)(s.default,{href:`/projects/${a.slug}/linear?settings=true`,className:"flex h-5 w-5 items-center justify-center rounded opacity-0 group-hover/linear:opacity-100 hover:bg-[var(--sidebar-hover)] transition-opacity",title:"Linear settings",children:(0,b.jsx)(r.Settings,{size:11,className:"text-[var(--muted-foreground)]"})})]}),(0,b.jsx)("div",{className:"workspace-sidebar__workspace-item",children:(0,b.jsxs)(s.default,{href:`/projects/${a.slug}/automations`,className:`workspace-sidebar__nav-item ${u?"workspace-sidebar__nav-item--active":""}`,"aria-current":u?"page":void 0,children:[(0,b.jsx)(h.Zap,{size:12,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-xs",children:"Scheduled Tasks"})]})}),(0,b.jsx)("div",{className:"workspace-sidebar__workspace-item",children:n?(0,b.jsxs)("button",{type:"button",className:`workspace-sidebar__nav-item ${p?"workspace-sidebar__nav-item--active":""}`,onClick:()=>z(n),"aria-current":p?"page":void 0,children:[(0,b.jsx)(g.Hash,{size:12,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-xs",children:"Chat"})]}):(0,b.jsxs)("button",{type:"button",className:"workspace-sidebar__nav-item",onClick:aO,children:[(0,b.jsx)(g.Hash,{size:12,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-xs",children:"Chat"})]})}),(0,b.jsxs)("div",{className:"pt-1",children:[(0,b.jsxs)("div",{className:"group/repos-header flex items-center justify-between px-3 py-1",children:[(0,b.jsx)("p",{className:"text-[10px] font-medium text-[var(--muted-foreground)] uppercase tracking-wide",children:"Folders"}),(0,b.jsxs)("div",{className:"flex items-center gap-1",children:[(0,b.jsx)(s.default,{href:"/folders",className:"workspace-sidebar__action opacity-0 transition-opacity group-hover/repos-header:opacity-100 text-[var(--muted-foreground)] hover:text-white","aria-label":"Manage folders",title:"Manage folders",children:(0,b.jsx)(r.Settings,{size:12})}),(0,b.jsx)("button",{type:"button",className:"workspace-sidebar__action opacity-0 transition-opacity group-hover/repos-header:opacity-100 text-[var(--muted-foreground)] hover:text-white",onClick:()=>az({projectId:a.id,projectName:a.name,repoId:null,name:"",path:"",gitUrl:"",notes:"",generatedKnowledge:[],isLoadingKnowledge:!1,isSaving:!1,error:null}),"aria-label":"Add folder",title:"Add folder",children:(0,b.jsx)(m.Plus,{size:12})})]})]}),a.repos.length>0?a.repos.map(c=>(0,b.jsxs)("div",{className:"workspace-sidebar__workspace-item group/repo flex items-center",children:[(0,b.jsxs)("button",{type:"button",className:"workspace-sidebar__nav-item min-w-0 flex-1 text-left",onClick:()=>az({projectId:a.id,projectName:a.name,repoId:c.id,name:c.name,path:c.path||"",gitUrl:c.git_url||"",notes:c.notes||"",generatedKnowledge:[],isLoadingKnowledge:!0,isSaving:!1,error:null}),children:[(0,b.jsx)(j.FolderGit2,{size:12,className:"flex-shrink-0 text-[var(--muted-foreground)] ml-2"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-xs truncate",children:c.name})]}),(0,b.jsx)("button",{type:"button",className:"workspace-sidebar__action opacity-0 group-hover/repo:opacity-100 transition-opacity flex-shrink-0 text-[var(--muted-foreground)] hover:text-red-400",onClick:async b=>{b.stopPropagation();let d=a.repos.filter(a=>a.id!==c.id).map(a=>({id:a.id,name:a.name,path:a.path,git_url:a.git_url,notes:a.notes}));await N?.(a.id,{repos:d})},"aria-label":"Delete folder",title:"Delete folder",children:(0,b.jsx)(o.Trash2,{size:12})})]},`${a.id}:${c.name}:${c.path??""}`)):(0,b.jsx)("p",{className:"px-3 py-1 text-[11px] text-[var(--muted-foreground)]",children:"No folders"})]}),(0,b.jsxs)("div",{className:"pt-1",children:[(0,b.jsxs)("div",{className:"group/agents-header flex items-center justify-between px-3 py-1",children:[(0,b.jsx)("p",{className:"text-[10px] font-medium text-[var(--muted-foreground)] uppercase tracking-wide",children:"Agents"}),(0,b.jsxs)("div",{className:"flex items-center gap-1",children:[(0,b.jsx)(s.default,{href:"/agents",className:"workspace-sidebar__action opacity-0 transition-opacity group-hover/agents-header:opacity-100 text-[var(--muted-foreground)] hover:text-white","aria-label":"Manage agents",title:"Manage agents",children:(0,b.jsx)(r.Settings,{size:12})}),a.agents.length>0&&(0,b.jsx)("button",{type:"button",className:"workspace-sidebar__action opacity-0 transition-opacity group-hover/agents-header:opacity-100 text-[var(--muted-foreground)] hover:text-white",onClick:()=>aE(a.id),"aria-label":"Add agents",title:"Add agents",children:(0,b.jsx)(m.Plus,{size:12})})]})]}),a.agents.length>0?(0,b.jsx)(b.Fragment,{children:a.agents.map((c,d)=>{let e=v.find(a=>a.id===c.agent_id),f=aA?.projectId===a.id&&aA?.agentId===c.agent_id,g=aA?.projectId===a.id&&aA?.overIndex===d&&!f;return(0,b.jsx)("div",{draggable:!0,onDragStart:b=>{b.dataTransfer.effectAllowed="move",aB({projectId:a.id,agentId:c.agent_id,overIndex:d})},onDragOver:b=>{b.preventDefault(),aA&&aA.projectId===a.id&&aB(a=>a?{...a,overIndex:d}:null)},onDragEnd:()=>{if(aA&&aA.projectId===a.id&&S){let b=a.agents.map(a=>a.agent_id),c=b.indexOf(aA.agentId),d=aA.overIndex;if(-1!==c&&c!==d){let e=[...b],[f]=e.splice(c,1);e.splice(d,0,f),S(a.id,e)}}aB(null)},className:`group/agent flex items-center ${g?"border-t-2 border-[var(--border)]":"border-t-2 border-transparent"} ${f?"opacity-40":""}`,children:(0,b.jsxs)("button",{type:"button",className:"workspace-sidebar__nav-item flex-1 min-w-0 !py-1",onClick:()=>aw(c.agent_id),children:[(0,b.jsx)("span",{className:`cursor-grab text-[var(--muted-foreground)] hover:text-[var(--muted-foreground)] flex-shrink-0 mr-0.5 transition-opacity ${0===d?"opacity-100":"opacity-0 group-hover/agent:opacity-100"}`,title:"Drag to reorder",children:"⠿"}),(0,b.jsx)("img",{src:(0,t.agentAvatarUrl)(c.agent_id,16,e?.color),alt:"",className:"w-4 h-4 rounded-full flex-shrink-0"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title text-xs truncate",children:e?.name??c.agent_id}),0===d&&(0,b.jsx)("span",{className:"ml-auto text-[9px] text-[var(--muted-foreground)] font-medium flex-shrink-0",title:"Default responder (top agent responds first)",children:"DEFAULT"})]})},c.agent_id)})}):(0,b.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1 px-3 py-1 text-[11px] font-medium text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)]",onClick:()=>aE(a.id),children:[(0,b.jsx)(m.Plus,{size:10}),(0,b.jsx)("span",{children:"Add agents"})]})]})]})]},a.id)}),aN.length>0&&(0,b.jsxs)("div",{className:"pt-3",children:[(0,b.jsx)("p",{className:"px-1 py-1 text-[10px] font-medium text-[var(--muted-foreground)] uppercase tracking-wide",children:"Unassigned Threads"}),aN.map(a=>{let c=a.id===w,d=a.title?.trim()||"Untitled thread";return(0,b.jsx)("div",{className:"workspace-sidebar__workspace-item group",children:(0,b.jsxs)("button",{type:"button",className:`workspace-sidebar__nav-item workspace-sidebar__workspace-nav-item ${c?"workspace-sidebar__nav-item--active workspace-sidebar__workspace-nav-item--active":""}`,onClick:()=>z(a.id),"aria-current":c?"page":void 0,children:[(0,b.jsx)(g.Hash,{size:12,className:"flex-shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"workspace-sidebar__workspace-title",children:d})]})},a.id)})]})]})]}),(0,b.jsx)("div",{className:"mt-auto px-3 pb-3",children:(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"]})}),ab&&ay&&(0,d.createPortal)((0,b.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/30 p-4",onClick:()=>{ay.isSaving||az(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:ay.projectName}),(0,b.jsx)("h3",{className:"truncate text-base font-semibold text-[var(--foreground)]",children:ay.repoId?ay.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:()=>{ay.isSaving||az(null)},"aria-label":"Close folder details",disabled:ay.isSaving,children:(0,b.jsx)(p.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:ay.name,onChange:a=>az(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:ay.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:ay.path,onChange:a=>az(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:ay.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:ay.isSaving,onClick:async()=>{try{let a=await fetch("/api/filesystem/pick-folder",{method:"POST"}),b=await a.json();b.path&&az(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:ay.notes,onChange:a=>az(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:ay.isSaving,placeholder:"Coding conventions, deploy steps, doc standards, ownership rules..."})]}),ay.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"}),ay.isLoadingKnowledge?(0,b.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"Loading note…"}):ay.generatedKnowledge.length>0?(0,b.jsx)("div",{className:"space-y-2",children:ay.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,ay.error?(0,b.jsx)("p",{className:"text-xs text-red-600",children:ay.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:()=>az(null),disabled:ay.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:ay.isSaving||!N,onClick:async()=>{let a=L.find(a=>a.id===ay.projectId);if(!a)return void az(a=>a?{...a,error:"Project not found."}:a);let b=ay.name.trim(),c=ay.path.trim();if(!b)return void az(a=>a?{...a,error:"Folder name is required."}:a);if(!c)return void az(a=>a?{...a,error:"Folder path is required."}:a);az(a=>a?{...a,isSaving:!0,error:null}:a);try{let d=ay.repoId?a.repos.map(a=>a.id===ay.repoId?{id:a.id,name:b,path:c,git_url:ay.gitUrl.trim()||void 0,notes:ay.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:ay.gitUrl.trim()||void 0,notes:ay.notes.trim()||void 0}];await N?.(a.id,{repos:d}),az(null)}catch(a){az(b=>b?{...b,isSaving:!1,error:a instanceof Error?a.message:"Failed to save folder details."}:b)}},children:ay.isSaving?"Saving...":ay.repoId?"Save":"Add Folder"})]})]})]})}),document.body),ab&&af&&!aj&&(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 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 ",aF?.name??"project"]}),(0,b.jsx)("button",{type:"button",className:"text-[var(--muted-foreground)] hover:text-[var(--muted-foreground)]",onClick:()=>ag(null),children:(0,b.jsx)(p.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:()=>ak(!0),children:[(0,b.jsx)(m.Plus,{size:14,className:"text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"text-xs font-medium",children:"Create new agent"})]}),0===aH.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"}):aH.map(a=>{let c=ah.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:()=>{ai(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,t.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)})]}),aH.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:()=>ag(null),children:"Cancel"}),(0,b.jsxs)("button",{type:"button",disabled:0===ah.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 ah)P?.(af.projectId,a);ag(null)},children:["Add ",ah.size>0?`(${ah.size})`:""]})]})]})}),document.body),ab&&aj&&(0,d.createPortal)((0,b.jsx)(t.AgentForm,{title:"Create new agent",initial:{name:"",provider:"claude",model:"",identity:"",skills:[],skillBindings:[]},submitLabel:"Create & Add",projects:L?.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:af?[af.projectId]:[],onSubmit:async(a,b)=>{let c=["#D97706","#2563EB","#059669","#DC2626","#7C3AED","#DB2777","#0891B2"],d=c[v.length%c.length],e=a.name.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,""),f=b?.[0],g=await fetch("/api/participants",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e,name:a.name,provider:a.provider,model:a.model,color:a.color??d,...a.title?{title:a.title}:{},...a.identity?{identity:a.identity}:{},skills:a.skills??[],skillBindings:a.skillBindings??[],...f?{projectId:f}:{}})});if(g.ok){let a=await g.json().catch(()=>({})),c="string"==typeof a?.id&&a.id.trim()?a.id.trim():e;for(let a of(b??[]).slice(1))P?.(a,c);ak(!1),ag(null)}},onCancel:()=>{ak(!1)}}),document.body),ab&&aq&&(0,d.createPortal)((0,b.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/30",onClick:()=>ar(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:aq.title}),(0,b.jsx)("button",{type:"button",className:"text-[var(--muted-foreground)] hover:text-[var(--muted-foreground)]",onClick:()=>ar(null),children:(0,b.jsx)(p.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&&(aq.onSubmit(c),ar(null))},children:[(0,b.jsx)("input",{ref:as,name:"value",type:"text",defaultValue:aq.defaultValue,placeholder:aq.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:()=>ar(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:aq.defaultValue?"Save":"Create"})]})]})]})}),document.body),ab&&at&&(0,d.createPortal)((0,b.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/30",onClick:()=>au(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:at.title}),(0,b.jsx)("button",{type:"button",className:"text-[var(--muted-foreground)] hover:text-[var(--muted-foreground)]",onClick:()=>au(null),children:(0,b.jsx)(p.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:at.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:()=>au(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:()=>{at.onConfirm(),au(null)},children:"Delete"})]})]})]})}),document.body),ab&&(al||an)&&(0,d.createPortal)((0,b.jsx)(u.default,{isOpen:!0,onClose:()=>{ap.resetForm(),am(null),ao(null)},onSubmit:()=>void aC(),editingProject:an,form:ap.form,repos:ap.repos,isSubmitting:ap.isSubmitting,formError:ap.formError,onFieldChange:(a,b)=>ap.setForm(c=>({...c,[a]:b})),onRepoChange:ap.handleRepoChange,onAddRepo:ap.addRepo,onRemoveRepo:ap.removeRepo}),document.body),ab&&ax&&(0,d.createPortal)((Z=L.filter(a=>a.agents.some(a=>a.agent_id===ax.id)),$=L.filter(a=>!a.agents.some(a=>a.agent_id===ax.id)),(0,b.jsx)(t.AgentForm,{title:"Edit agent",initial:{name:ax.name,title:ax.title||"",provider:ax.provider,model:ax.model||"",identity:ax.identity||"",color:ax.color,skills:ax.skills||[],skillBindings:ax.skillBindings||[]},agentId:ax.id,submitLabel:"Save",projectMemberships:{current:Z.map(a=>({id:a.id,name:a.name,is_default:!!a.is_default})),available:$.map(a=>({id:a.id,name:a.name}))},onAddToProject:P?a=>P(a,ax.id):void 0,onRemoveFromProject:Q?a=>Q(a,ax.id):void 0,onSubmit:async a=>{T&&await T({...ax,name:a.name,title:a.title||void 0,provider:a.provider,model:a.model,color:a.color??ax.color,...a.identity?{identity:a.identity}:{},skills:a.skills??[],skillBindings:a.skillBindings??[]}),aw(null)},onCancel:()=>aw(null)})),document.body),Y&&(0,b.jsx)("div",{className:"absolute right-0 top-0 bottom-0 z-20 w-1 cursor-col-resize group",onMouseDown:a=>{a.preventDefault(),_.current=!0;let b=a.clientX,c=X??368;document.body.style.cursor="col-resize",document.body.style.userSelect="none";let d=a=>{Y(Math.max(200,Math.min(600,c+a.clientX-b)))},e=()=>{_.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"})})]}):(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:J,className:"workspace-sidebar__brand-icon border-none outline-none cursor-pointer","aria-label":"Show chats",title:"Show chats",children:(0,b.jsx)("span",{className:"text-[10px]",children:"AGX"})})}),(0,b.jsx)("div",{className:"mt-auto p-2",children:(0,b.jsx)("a",{href:"https://discord.gg/G9afUYKKY3",target:"_blank",rel:"noopener noreferrer",className:"flex items-center justify-center w-8 h-8 rounded-lg text-white transition-colors",style:{backgroundColor:"#5865F2"},onMouseEnter:a=>a.currentTarget.style.backgroundColor="#4752C4",onMouseLeave:a=>a.currentTarget.style.backgroundColor="#5865F2",title:"Join Discord",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"})})})})]})}a.s(["WorkspaceSidebar",()=>v],986976);let w={threadSidebarVisible:!1};function x(){return({...w}).threadSidebarVisible}function y(a){}a.s(["loadWorkspaceSidebarVisible",()=>x,"persistWorkspaceSidebarVisible",()=>y],655672)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=components_thread_WorkspaceSidebar_tsx_e660301b._.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[292e3,a=>{"use strict";let b=(0,a.i(883706).default)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);a.s(["AlertCircle",()=>b],292e3)},862722,a=>{"use strict";let b=(0,a.i(883706).default)("circle-x",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);a.s(["XCircle",()=>b],862722)},501027,a=>{"use strict";let b=(0,a.i(883706).default)("zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]);a.s(["Zap",()=>b],501027)},883706,a=>{"use strict";var b=a.i(572131);let c=(...a)=>a.filter((a,b,c)=>!!a&&""!==a.trim()&&c.indexOf(a)===b).join(" ").trim(),d=a=>{let b=a.replace(/^([A-Z])|[\s-_]+(\w)/g,(a,b,c)=>c?c.toUpperCase():b.toLowerCase());return b.charAt(0).toUpperCase()+b.slice(1)};var e={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let f=(0,b.forwardRef)(({color:a="currentColor",size:d=24,strokeWidth:f=2,absoluteStrokeWidth:g,className:h="",children:i,iconNode:j,...k},l)=>(0,b.createElement)("svg",{ref:l,...e,width:d,height:d,stroke:a,strokeWidth:g?24*Number(f)/Number(d):f,className:c("lucide",h),...!i&&!(a=>{for(let b in a)if(b.startsWith("aria-")||"role"===b||"title"===b)return!0;return!1})(k)&&{"aria-hidden":"true"},...k},[...j.map(([a,c])=>(0,b.createElement)(a,c)),...Array.isArray(i)?i:[i]])),g=(a,e)=>{let g=(0,b.forwardRef)(({className:g,...h},i)=>(0,b.createElement)(f,{ref:i,iconNode:e,className:c(`lucide-${d(a).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${a}`,g),...h}));return g.displayName=d(a),g};a.s(["default",()=>g],883706)},915618,a=>{"use strict";let b=(0,a.i(883706).default)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);a.s(["Plus",()=>b],915618)},641710,a=>{"use strict";let b=(0,a.i(883706).default)("clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6l4 2",key:"mmk7yg"}]]);a.s(["Clock",()=>b],641710)},613749,a=>{"use strict";let b=(0,a.i(883706).default)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);a.s(["ChevronLeft",()=>b],613749)},167453,a=>{"use strict";let b=(0,a.i(883706).default)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);a.s(["CheckCircle2",()=>b],167453)},165385,a=>{"use strict";let b=(0,a.i(883706).default)("settings-2",[["path",{d:"M14 17H5",key:"gfn3mx"}],["path",{d:"M19 7h-9",key:"6i9tg"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}],["circle",{cx:"7",cy:"7",r:"3",key:"dfmy0x"}]]);a.s(["Settings2",()=>b],165385)},80386,a=>{"use strict";let b=(0,a.i(883706).default)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]);a.s(["Terminal",()=>b],80386)},325015,a=>{"use strict";let b=(0,a.i(883706).default)("play",[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]]);a.s(["Play",()=>b],325015)},104416,a=>{"use strict";let b=(0,a.i(883706).default)("shield-check",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);a.s(["ShieldCheck",()=>b],104416)}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=node_modules_lucide-react_dist_esm_54bf563f._.js.map
|
|
@@ -20,11 +20,11 @@
|
|
|
20
20
|
"wasm": [],
|
|
21
21
|
"assets": [],
|
|
22
22
|
"env": {
|
|
23
|
-
"__NEXT_BUILD_ID": "
|
|
24
|
-
"NEXT_SERVER_ACTIONS_ENCRYPTION_KEY": "
|
|
25
|
-
"__NEXT_PREVIEW_MODE_ID": "
|
|
26
|
-
"__NEXT_PREVIEW_MODE_ENCRYPTION_KEY": "
|
|
27
|
-
"__NEXT_PREVIEW_MODE_SIGNING_KEY": "
|
|
23
|
+
"__NEXT_BUILD_ID": "gty0FO80D_lbq3o9lSpQQ",
|
|
24
|
+
"NEXT_SERVER_ACTIONS_ENCRYPTION_KEY": "6yf3qnQsKaedcDjADT6P3HGUfL2JL/E5PBFGeyYMBKo=",
|
|
25
|
+
"__NEXT_PREVIEW_MODE_ID": "295483b29840ec7e747afff880c3f468",
|
|
26
|
+
"__NEXT_PREVIEW_MODE_ENCRYPTION_KEY": "893eca69a80e9b39bacecca2bb046aff8dfea60713830756cd8fa644939cfed7",
|
|
27
|
+
"__NEXT_PREVIEW_MODE_SIGNING_KEY": "7f759bb57f00dd0d043fab2fd8cc9211c93bd3111a2035be4597429692aec145"
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
30
|
},
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<!DOCTYPE html><!--
|
|
1
|
+
<!DOCTYPE html><!--gty0FO80D_lbq3o9lSpQQ--><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/2473c16c0c2f6b5f.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/chunks/18866ed04ed3a063.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/1d8496cecfe9a523.js"/><script src="/_next/static/chunks/de271f8f22d293b4.js" async=""></script><script src="/_next/static/chunks/961311cbebbffb6d.js" async=""></script><script src="/_next/static/chunks/2375e3fd2a9b8844.js" async=""></script><script src="/_next/static/chunks/797fcb0710da3be2.js" async=""></script><script src="/_next/static/chunks/turbopack-0ace1f53f3e3cf46.js" async=""></script><script src="/_next/static/chunks/c3784233f00e1ff5.js" async=""></script><script src="/_next/static/chunks/012b9216c9932478.js" async=""></script><script src="/_next/static/chunks/73e3194f06db260e.js" async=""></script><link rel="preload" href="https://www.googletagmanager.com/gtag/js?id=G-DVQQG95LNL" as="script"/><meta name="robots" content="noindex"/><meta name="next-size-adjust" content=""/><title>AGX</title><meta name="description" content="Agent task orchestration and group chat"/><script>
|
|
2
2
|
(() => {
|
|
3
3
|
try {
|
|
4
4
|
const storedTheme = localStorage.getItem("agx-theme");
|
|
@@ -10,4 +10,4 @@
|
|
|
10
10
|
root.style.colorScheme = theme;
|
|
11
11
|
} catch {}
|
|
12
12
|
})();
|
|
13
|
-
</script><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body class="geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable antialiased min-h-screen overflow-x-hidden overflow-y-auto bg-[var(--background)] text-[var(--foreground)] selection:bg-[var(--primary)] selection:text-[var(--primary-foreground)]"><div hidden=""><!--$--><!--/$--></div><div class="min-h-screen flex items-center justify-center bg-[var(--background)]"><span class="spinner w-8 h-8 border-3 border-[var(--primary)] border-t-transparent rounded-full"></span></div><script src="/_next/static/chunks/1d8496cecfe9a523.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[634088,[\"/_next/static/chunks/c3784233f00e1ff5.js\"],\"default\"]\n3:I[339756,[\"/_next/static/chunks/012b9216c9932478.js\",\"/_next/static/chunks/73e3194f06db260e.js\"],\"default\"]\n4:I[837457,[\"/_next/static/chunks/012b9216c9932478.js\",\"/_next/static/chunks/73e3194f06db260e.js\"],\"default\"]\n5:I[205529,[\"/_next/static/chunks/c3784233f00e1ff5.js\"],\"default\"]\n6:I[134377,[\"/_next/static/chunks/c3784233f00e1ff5.js\"],\"GoogleAnalytics\"]\n7:I[715816,[\"/_next/static/chunks/c3784233f00e1ff5.js\"],\"PostHogAnalytics\"]\n8:I[897367,[\"/_next/static/chunks/012b9216c9932478.js\",\"/_next/static/chunks/73e3194f06db260e.js\"],\"OutletBoundary\"]\n9:\"$Sreact.suspense\"\nb:I[897367,[\"/_next/static/chunks/012b9216c9932478.js\",\"/_next/static/chunks/73e3194f06db260e.js\"],\"ViewportBoundary\"]\nd:I[897367,[\"/_next/static/chunks/012b9216c9932478.js\",\"/_next/static/chunks/73e3194f06db260e.js\"],\"MetadataBoundary\"]\nf:I[253348,[\"/_next/static/chunks/012b9216c9932478.js\",\"/_next/static/chunks/73e3194f06db260e.js\"],\"default\"]\n:HL[\"/_next/static/chunks/2473c16c0c2f6b5f.css\",\"style\"]\n:HL[\"/_next/static/chunks/
|
|
13
|
+
</script><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body class="geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable antialiased min-h-screen overflow-x-hidden overflow-y-auto bg-[var(--background)] text-[var(--foreground)] selection:bg-[var(--primary)] selection:text-[var(--primary-foreground)]"><div hidden=""><!--$--><!--/$--></div><div class="min-h-screen flex items-center justify-center bg-[var(--background)]"><span class="spinner w-8 h-8 border-3 border-[var(--primary)] border-t-transparent rounded-full"></span></div><script src="/_next/static/chunks/1d8496cecfe9a523.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[634088,[\"/_next/static/chunks/c3784233f00e1ff5.js\"],\"default\"]\n3:I[339756,[\"/_next/static/chunks/012b9216c9932478.js\",\"/_next/static/chunks/73e3194f06db260e.js\"],\"default\"]\n4:I[837457,[\"/_next/static/chunks/012b9216c9932478.js\",\"/_next/static/chunks/73e3194f06db260e.js\"],\"default\"]\n5:I[205529,[\"/_next/static/chunks/c3784233f00e1ff5.js\"],\"default\"]\n6:I[134377,[\"/_next/static/chunks/c3784233f00e1ff5.js\"],\"GoogleAnalytics\"]\n7:I[715816,[\"/_next/static/chunks/c3784233f00e1ff5.js\"],\"PostHogAnalytics\"]\n8:I[897367,[\"/_next/static/chunks/012b9216c9932478.js\",\"/_next/static/chunks/73e3194f06db260e.js\"],\"OutletBoundary\"]\n9:\"$Sreact.suspense\"\nb:I[897367,[\"/_next/static/chunks/012b9216c9932478.js\",\"/_next/static/chunks/73e3194f06db260e.js\"],\"ViewportBoundary\"]\nd:I[897367,[\"/_next/static/chunks/012b9216c9932478.js\",\"/_next/static/chunks/73e3194f06db260e.js\"],\"MetadataBoundary\"]\nf:I[253348,[\"/_next/static/chunks/012b9216c9932478.js\",\"/_next/static/chunks/73e3194f06db260e.js\"],\"default\"]\n:HL[\"/_next/static/chunks/2473c16c0c2f6b5f.css\",\"style\"]\n:HL[\"/_next/static/chunks/18866ed04ed3a063.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"gty0FO80D_lbq3o9lSpQQ\",\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/2473c16c0c2f6b5f.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/18866ed04ed3a063.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/c3784233f00e1ff5.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"\\n(() =\u003e {\\n try {\\n const storedTheme = localStorage.getItem(\\\"agx-theme\\\");\\n const theme = storedTheme === \\\"dark\\\" || storedTheme === \\\"light\\\"\\n ? storedTheme\\n : (window.matchMedia(\\\"(prefers-color-scheme: dark)\\\").matches ? \\\"dark\\\" : \\\"light\\\");\\n const root = document.documentElement;\\n root.classList.toggle(\\\"dark\\\", theme === \\\"dark\\\");\\n root.style.colorScheme = theme;\\n } catch {}\\n})();\\n\"}}]}],[\"$\",\"body\",null,{\"className\":\"geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable antialiased min-h-screen overflow-x-hidden overflow-y-auto bg-[var(--background)] text-[var(--foreground)] selection:bg-[var(--primary)] selection:text-[var(--primary-foreground)]\",\"children\":[[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}],[\"$\",\"$L5\",null,{}],[\"$\",\"$L6\",null,{}],[\"$\",\"$L7\",null,{}]]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:0:props:children:props:notFound:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:0:props:children:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:0:props:children:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:0:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L8\",null,{\"children\":[\"$\",\"$9\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@a\"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$Lb\",null,{\"children\":\"$Lc\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Ld\",null,{\"children\":[\"$\",\"$9\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Le\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$f\",[]],\"S\":true}\n"])</script><script>self.__next_f.push([1,"c:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"a:null\ne:[[\"$\",\"title\",\"0\",{\"children\":\"AGX\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Agent task orchestration and group chat\"}]]\n"])</script></body></html>
|