@mndrk/agx 2.2.0 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +70 -105
- package/cloud-runtime/standalone/apps/local/.next/BUILD_ID +1 -1
- package/cloud-runtime/standalone/apps/local/.next/build-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/prerender-manifest.json +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.html +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents/[id]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/agents/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/agents.segments/agents.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/agent-specs/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/[id]/profile/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/agents/export/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/chat/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/file-search/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/issues/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/issues/context/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/issues/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/options/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/runs/scripted/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/linear/status/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/participants/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/linear-issues/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/scheduled-tasks/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/objectives/[objectiveId]/worker/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/search/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/projects/[id]/teams/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/prompt-jobs/poll/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/providers/check/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/providers/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/queue/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/debug/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/schedules/poll/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/assign/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/available/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/detail/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/history/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/learn/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/skills/unlearn/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/status/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/summarize/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/comments/[commentId]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/comments/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/nodes/[nodeId]/verify/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/[id]/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/extract/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/tasks/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/threads/knowledge/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/api/threads/route.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/automations/page/react-loadable-manifest.json +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/automations/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/automations.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/automations.rsc +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/_full.segment.rsc +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/automations/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/automations.segments/automations.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/board/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/board.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/board.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/_full.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/board/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/board.segments/board.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/execution-graph/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/execution-graph.segments/execution-graph.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/folders/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/folders.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/folders.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/folders/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/folders.segments/folders.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/index.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/index.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page/react-loadable-manifest.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/automations/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/env-vars/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/folders/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/graph/[taskId]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/knowledge/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/knowledge/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/linear/page/react-loadable-manifest.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/linear/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/linear/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/[objectiveId]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/objectives/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/settings/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/settings/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/[teamId]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/adopt/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/new/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/teams/replace/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/terminal/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/[slug]/thread/[threadId]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/_full.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/projects/orphans/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/projects/orphans.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/orphans.segments/projects.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/projects.segments/projects.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/settings.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/settings.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/_full.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/settings.segments/settings.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page.js.nft.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup.rsc +4 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_full.segment.rsc +4 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/_tree.segment.rsc +3 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/setup/__PAGE__.segment.rsc +3 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/setup.segments/setup.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/skills.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/skills.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/_full.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/skills/__PAGE__.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/skills.segments/skills.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/status/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/status.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/status.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_full.segment.rsc +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_head.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_index.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/_tree.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/status/__PAGE__.segment.rsc +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/app/status.segments/status.segment.rsc +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/app/thread/[id]/page_client-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0-zk9w8._.js +7 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0.01bfe._.js +13 -8
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__00c~p6z._.js +7 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__019dflu._.js +7 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__02t.3rm._.js +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__06zr0ph._.js +6 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__07d._0s._.js +15 -10
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__08xj~a3._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0a0cq38._.js +34 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0asvfdo._.js +35 -4
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0bt7ejs._.js +7 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0f.~98d._.js +7 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0g-~-.q._.js +6 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0g7p6pw._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0gj~dap._.js +40 -9
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0hkcw03._.js +8 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0hyu3en._.js +7 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0i5aw03._.js +7 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0ke4z91._.js +7 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0l53ok5._.js +41 -10
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0ll-~cx._.js +7 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0mh6p.0._.js +7 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0nc-lbr._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0p9rl6.._.js +8 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0q~pnp0._.js +6 -6
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0ue0bu5._.js +6 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0unwwyx._.js +12 -7
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0vtkl3q._.js +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0x6w64i._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0z82z0-._.js +6 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0zrv3p3._.js +16 -11
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__0~iknwz._.js +12 -7
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__10d.dhd._.js +46 -15
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__10sw5ia._.js +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__11yx.ud._.js +33 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__13-nlgu._.js +5 -5
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/[root-of-the-server]__13960a8._.js +14 -9
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_06qet8g._.js +14 -9
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0_0m2ly._.js +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0a15wtk._.js +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0fr1qq6._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0g.q2r6._.js +6 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_0i7fs.i._.js +4 -4
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_01pvj2g._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_agent-participants_ts_0cq15u5._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_db_ts_0twf-w5._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_orchestrator_chat-processor_ts_0c2l_oh._.js +43 -12
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_sqlite-query-adapter_ts_0l95hik._.js +15 -15
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_lib_sqlite-query-adapter_ts_0s5xprd._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_graph_082u-ls._.js +19 -14
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/apps_local_src_graph_schedule-runner_ts_07-ozf_._.js +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0_l0fpi.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0gips_c.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0rszt9p.js +10 -6
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_0u_5kfo.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/0rhn_lucide-react_dist_esm_06fnblz._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0140-84._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_03fckp4._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/{_0tcjapj._.js → _0ip6k6n._.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0jensz1._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0t0p8q5._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0yeuuy1._.js +1 -23
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_03z24q2._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0_ac-.f._.js +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0a-8i4p._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0k4~c1x._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0ld1uug._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0ms1d6i._.js +4 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0p_v0ri._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0x.xj52._.js +3 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0~g2ijr._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_11k_-8~._.js +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_agents_[id]_page_tsx_06n47n~._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_agents_page_tsx_078reb_._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_linear_page_tsx_0a~n5y8._.js +25 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_page_tsx_0kcaeqi._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_teams_[teamId]_agents_[agentId]_page_tsx_0wm~_~t._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_teams_[teamId]_page_tsx_0iyozfl._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_teams_new_page_tsx_0yqd0a5._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_projects_[slug]_terminal_page_tsx_01n9qk.._.js +1 -20
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_app_setup_page_tsx_0ql2qmr._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_PromptJobBoard_tsx_06zob36._.js +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_projects_ProjectObjectivesWorkspace_tsx_0k4tfip._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_terminal_TerminalPane_tsx_0l17vs_._.js +22 -0
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_components_thread_WorkspaceSidebar_tsx_0unv2xp._.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/middleware-build-manifest.js +3 -3
- package/cloud-runtime/standalone/apps/local/.next/server/middleware-manifest.json +5 -5
- package/cloud-runtime/standalone/apps/local/.next/server/pages/404.html +2 -2
- package/cloud-runtime/standalone/apps/local/.next/server/pages/500.html +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/server-reference-manifest.js +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/server-reference-manifest.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{1011~1x9nj4ny.js → 0-k2m1ncx7hwx.js} +1 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0dnw31436wd~..js → 0-pkmgle2s8u8.js} +1 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/064jfmraty.9h.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/06kru5m9q~r.j.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/06kyg1q0bcz6p.js +5 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0_cjth28_11b2.js → 08bdyjcnamzep.js} +1 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0-olq~7zw3wjy.js → 08xq~uyr6.eqw.js} +1 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0gj98094p~zn4.js → 0cku81z~3oe6..js} +1 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0e7jhy0-52_4k.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0wh6p5~ft5rma.js → 0htc.sqrk_0.c.js} +1 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0ju4xmxwqddw6.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0mm978wb-ueg-.js +6 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0musu8f.4wvxz.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0bchtyu6m.2yv.js → 0muti0yiyhu0t.js} +1 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0rhps884e-bzu.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0rr3fvwc5ind~.js +5 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0sbkkjowkksa6.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0sjz0.o9_33qy.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0srzmg8ivve1g.css +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0fonouj2i9qnb.js → 0swo3_e8.4s7j.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0sysrf3~l~r35.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0t69h-kc701fn.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0v67lnh..wj4z.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{013gtut17~fne.js → 0wb45ol1xrqe~.js} +1 -23
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{00po4v2x~0x_z.js → 0wiw2v8gm-k_-.js} +1 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0jq0t4zip38wt.js → 0wopevh0s7.8c.js} +1 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0xm2~gxlt1npd.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{1503vb7lb6.g1.js → 0ya124ushze_f.js} +4 -4
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{00e1ihnb6ap3t.js → 0zt2o58c5gytn.js} +2 -2
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0~idsggr8vqf5.js +59 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0xu_doej_wc-3.js → 0~mcfx41q4znh.js} +3 -3
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/116j4mjz~y42t.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/{0-vo_x2cxmjm3.js → 12b62py0mq1gm.js} +4 -4
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/12y5i0lh6s73o.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/148.mt80civoz.js +20 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/14m5d270euu_s.js +1 -0
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/16h9208kl5~xa.js +16 -0
- package/cloud-runtime/standalone/apps/local/app/agents/[id]/page.tsx +6 -3
- package/cloud-runtime/standalone/apps/local/app/agents/page.tsx +3 -3
- package/cloud-runtime/standalone/apps/local/app/api/chat/route.ts +7 -1
- package/cloud-runtime/standalone/apps/local/app/api/participants/route.ts +9 -9
- package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/search/route.ts +6 -6
- package/cloud-runtime/standalone/apps/local/app/api/projects/[id]/teams/route.ts +3 -3
- package/cloud-runtime/standalone/apps/local/app/api/prompt-jobs/agents/route.ts +1 -1
- package/cloud-runtime/standalone/apps/local/app/api/schedules/poll/route.ts +11 -2
- package/cloud-runtime/standalone/apps/local/app/page.tsx +72 -14
- package/cloud-runtime/standalone/apps/local/app/projects/[slug]/page.tsx +34 -1
- package/cloud-runtime/standalone/apps/local/app/projects/[slug]/teams/[teamId]/agents/[agentId]/page.tsx +6 -3
- package/cloud-runtime/standalone/apps/local/app/projects/[slug]/teams/[teamId]/page.tsx +6 -3
- package/cloud-runtime/standalone/apps/local/app/projects/[slug]/teams/new/page.tsx +8 -17
- package/cloud-runtime/standalone/apps/local/app/projects/[slug]/teams/replace/page.tsx +1 -1
- package/cloud-runtime/standalone/apps/local/app/projects/page.tsx +7 -0
- package/cloud-runtime/standalone/apps/local/app/setup/page.tsx +1 -38
- package/cloud-runtime/standalone/apps/local/components/AutomationsBoard.tsx +8 -4
- package/cloud-runtime/standalone/apps/local/components/EmptyStateCard.tsx +37 -0
- package/cloud-runtime/standalone/apps/local/components/LinearBoard.tsx +103 -770
- package/cloud-runtime/standalone/apps/local/components/PromptJobBoard.tsx +5 -37
- package/cloud-runtime/standalone/apps/local/components/TeamPickerModal.tsx +3 -3
- package/cloud-runtime/standalone/apps/local/components/chat-ui/Composer.tsx +28 -32
- package/cloud-runtime/standalone/apps/local/components/chat-ui/ParticipantBar.tsx +24 -39
- package/cloud-runtime/standalone/apps/local/components/linear/LinearBoardFilters.tsx +343 -0
- package/cloud-runtime/standalone/apps/local/components/linear/TicketRow.tsx +158 -0
- package/cloud-runtime/standalone/apps/local/components/projects/ObjectiveHealthTrend.tsx +45 -61
- package/cloud-runtime/standalone/apps/local/components/projects/RecentlyCompletedCard.tsx +0 -16
- package/cloud-runtime/standalone/apps/local/components/projects/ReplaceAgentsModal.tsx +2 -2
- package/cloud-runtime/standalone/apps/local/components/setup/McpSetupStep.tsx +155 -120
- package/cloud-runtime/standalone/apps/local/components/setup/ProviderStep.tsx +85 -88
- package/cloud-runtime/standalone/apps/local/components/setup/SetupLayout.tsx +6 -4
- package/cloud-runtime/standalone/apps/local/components/terminal/ProjectTerminal.tsx +18 -193
- package/cloud-runtime/standalone/apps/local/components/terminal/TerminalPane.tsx +40 -4
- package/cloud-runtime/standalone/apps/local/components/thread/WorkspaceSidebar.tsx +4 -4
- package/cloud-runtime/standalone/apps/local/components/ui/ResizeHandle.tsx +52 -0
- package/cloud-runtime/standalone/apps/local/hooks/useAutomations.ts +8 -3
- package/cloud-runtime/standalone/apps/local/hooks/useLinearActiveAgents.ts +38 -0
- package/cloud-runtime/standalone/apps/local/hooks/useLinearParticipants.ts +118 -0
- package/cloud-runtime/standalone/apps/local/hooks/usePromptJobs.ts +5 -3
- package/cloud-runtime/standalone/apps/local/hooks/useSetupFlow.ts +6 -81
- package/cloud-runtime/standalone/apps/local/lib/agent-participants.ts +1 -1
- package/cloud-runtime/standalone/apps/local/lib/agent-process-registry.ts +34 -0
- package/cloud-runtime/standalone/apps/local/lib/db.ts +5 -5
- package/cloud-runtime/standalone/apps/local/lib/linear-board-utils.ts +9 -0
- package/cloud-runtime/standalone/apps/local/lib/linear-run-status.ts +88 -0
- package/cloud-runtime/standalone/apps/local/lib/linear-run-store.ts +4 -4
- package/cloud-runtime/standalone/apps/local/lib/sqlite-query-adapter.ts +5 -1
- package/cloud-runtime/standalone/apps/local/lib/team-catalog.ts +60 -60
- package/cloud-runtime/standalone/apps/local/lib/types.ts +1 -1
- package/cloud-runtime/standalone/apps/local/migrations/sqlite_schema.sql +1 -1
- package/cloud-runtime/standalone/apps/local/skills-lock.json +5 -0
- package/cloud-runtime/standalone/apps/local/src/graph/schedule-runner.ts +26 -1
- package/cloud-runtime/standalone/apps/local/src/graph/store.ts +13 -0
- package/cloud-runtime/standalone/apps/local/state/linearBoardPins.ts +45 -0
- package/cloud-runtime/standalone/apps/local/worker/index.js +56 -4
- package/lib/cli/onboarding.js +8 -5
- package/package.json +1 -1
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/0rhn_lucide-react_dist_esm_067eb..._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_00trrg8._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0ejzn1e._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0sjchy6._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0w4gpvr._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/_0x6hh0t._.js +0 -4
- package/cloud-runtime/standalone/apps/local/.next/server/chunks/ssr/apps_local_0t6p.qm._.js +0 -3
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0-wlbe.ripd2w.css +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/014z_yruiincl.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/041-dhls9zkl1.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/069yt_7prdxsp.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0e6rxcxy.l5c8.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0ime4btrg-g4l.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0j-nhn61e~nnj.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0jglardpw~5uc.js +0 -37
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0l3v45kd.9is_.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0ng6wy4ak35jg.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0n~jhoq~op4e5.js +0 -16
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0p-rdas54yo~w.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0pdrpsy-zdxp0.js +0 -5
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0p~l5ap6qqx2o.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0tm20~ec~occu.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0w94x-v00osq0.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/0xwny92a.ad_i.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/11l2tww5f0hsk.js +0 -20
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/12qohmk-~yrtg.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/14v~9vx3tdv85.js +0 -1
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/16fyhcmwlw3th.js +0 -6
- package/cloud-runtime/standalone/apps/local/.next/static/chunks/18e8w~~mvoh5o.js +0 -1
- package/cloud-runtime/standalone/apps/local/components/setup/ProjectStep.tsx +0 -189
- package/cloud-runtime/standalone/apps/local/components/setup/TeamsStep.tsx +0 -500
- /package/cloud-runtime/standalone/apps/local/.next/static/{qPuactsz6OYimwT6dSdHn → ROMPfjQqFXqGHmbybq1eC}/_buildManifest.js +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/static/{qPuactsz6OYimwT6dSdHn → ROMPfjQqFXqGHmbybq1eC}/_clientMiddlewareManifest.js +0 -0
- /package/cloud-runtime/standalone/apps/local/.next/static/{qPuactsz6OYimwT6dSdHn → ROMPfjQqFXqGHmbybq1eC}/_ssgManifest.js +0 -0
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[143159,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(50944),e=a.i(654340);function f({projectSlug:a,projectThreadIds:g=[]}){let h=(0,d.useRouter)(),[i,j]=(0,c.useState)([]),[k,l]=(0,c.useState)([]),m=(0,c.useCallback)(async()=>{try{let a=await fetch("/api/participants");if(!a.ok)return;let b=await a.json();l(Array.isArray(b)?b:b.participants??[])}catch{}},[]);(0,c.useEffect)(()=>{m()},[m]),(0,c.useEffect)(()=>{let b=!1,c=a.trim().toLowerCase(),d=new Set(g.map(a=>a.trim()).filter(Boolean)),e=async()=>{try{let a=await fetch("/api/processes?enrich=1");if(!a.ok||b)return;let e=await a.json();if(b)return;let f=e.filter(a=>"spawning"===a.state||"running"===a.state).filter(a=>{let b=a.projectSlug.trim().toLowerCase();return!!b&&b===c||d.has(a.workspaceId)||d.has(a.threadId)}).sort((a,b)=>b.lastActivity-a.lastActivity);j(f)}catch{}};e();let f=setInterval(e,3e3);return()=>{b=!0,clearInterval(f)}},[a,g]);let n=new Map(k.map(a=>[a.id,a.name])),o=a=>n.get(a)||a.slice(0,8),p=[],q=new Map;for(let a of i){let b=q.get(a.agentId);b||(b={agentId:a.agentId,agentName:o(a.agentId),activities:[]},q.set(a.agentId,b),p.push(b)),b.activities.push({key:`${a.workspaceId}-${a.threadId}-${a.agentId}`,workspaceId:a.workspaceId,threadId:a.threadId,state:a.state,threadLabel:a.threadTitle?.trim()?a.threadTitle.trim():a.threadId?.trim()?`Thread ${a.threadId.slice(0,12)}...`:"Main thread",lastActiveLabel:function(a){let b=Math.max(0,Math.floor((Date.now()-a)/1e3));if(b<5)return"Just now";if(b<60)return`${b}s ago`;let c=Math.floor(b/60);if(c<60)return`${c}m ago`;let d=Math.floor(c/60);if(d<24)return`${d}h ago`;let e=Math.floor(d/24);return`${e}d ago`}(a.lastActivity),lastActivity:a.lastActivity,linearIssueId:a.linearIssueId,linearRunId:a.linearRunId})}if(0===p.length)return null;let r=i.length;return(0,b.jsxs)("section",{className:"col-span-full overflow-hidden rounded-2xl border border-[var(--card-border)] bg-[var(--card-bg)]",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3 border-b border-[var(--border)] px-4 py-3",children:[(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 text-xs uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:[(0,b.jsx)(e.Activity,{className:"h-3.5 w-3.5"}),"Working Now"]}),(0,b.jsxs)("p",{className:"mt-1 text-xs text-[var(--muted-foreground)]",children:[p.length," ",1===p.length?"agent":"agents"," active across"," ",r," ",1===r?"thread":"threads","."]})]}),(0,b.jsxs)("span",{className:"rounded-full border border-[var(--status-completed-border)] bg-[var(--status-completed-bg)] px-2.5 py-1 text-[10px] font-medium uppercase tracking-wider text-[var(--status-completed-text)]",children:[r," live ",1===r?"entry":"entries"]})]}),(0,b.jsx)("div",{className:"divide-y divide-[var(--border)]",children:p.map(c=>(0,b.jsxs)("div",{className:"px-4 py-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-sm font-medium text-[var(--foreground)]",children:[(0,b.jsx)("span",{className:"h-2 w-2 rounded-full bg-emerald-400 animate-pulse"}),c.agentName]}),c.activities.length>1&&(0,b.jsxs)("span",{className:"rounded-full bg-[var(--secondary)] px-2 py-0.5 text-[10px] text-[var(--muted-foreground)]",children:[c.activities.length," threads"]})]}),(0,b.jsx)("div",{className:"space-y-1 ml-4",children:c.activities.map(c=>(0,b.jsxs)("div",{className:"mx-[-0.5rem] flex cursor-pointer items-center gap-3 rounded-lg px-2 py-1.5 text-sm transition-colors hover:bg-[var(--secondary)]",onClick:()=>h.push(c.linearIssueId&&c.linearRunId?`/projects/${a}/linear?issue=${encodeURIComponent(c.linearIssueId)}&run=${encodeURIComponent(c.linearRunId)}`:`/projects/${a}/thread/${encodeURIComponent(c.workspaceId)}${c.threadId?`?open=${encodeURIComponent(c.threadId)}`:""}`),children:[(0,b.jsxs)("span",{className:"inline-flex shrink-0 items-center gap-1.5 rounded-full border border-[var(--status-completed-border)] bg-[var(--status-completed-bg)] px-2 py-0.5 text-[11px] font-medium text-[var(--status-completed-text)]",children:[(0,b.jsx)("span",{className:"h-1.5 w-1.5 rounded-full bg-emerald-400"}),"spawning"===c.state?"Starting":"Working"]}),(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate text-[var(--foreground)]",children:c.threadLabel}),(0,b.jsx)("span",{className:"shrink-0 text-xs text-[var(--muted-foreground)]",children:c.lastActiveLabel})]},c.key))})]},c.agentId))})]})}var g=a.i(44668);function h({projectId:a,projectSlug:e,projectThreadIds:f=[]}){let i=(0,d.useRouter)(),[j,k]=(0,c.useState)([]),[l,m]=(0,c.useState)([]),[n,o]=(0,c.useState)([]),p=(0,c.useCallback)(async()=>{try{let a=await fetch("/api/participants");if(!a.ok)return;let b=await a.json();m(Array.isArray(b)?b:b.participants??[])}catch{}},[]),q=(0,c.useCallback)(async()=>{try{let b=await fetch(`/api/projects/${a}/teams`);if(!b.ok)return;let c=await b.json();o(Array.isArray(c)?c:[])}catch{}},[a]);(0,c.useEffect)(()=>{p(),q()},[p,q]),(0,c.useEffect)(()=>{let a=!1,b=e.trim().toLowerCase(),c=new Set(f.map(a=>a.trim()).filter(Boolean)),d=async()=>{try{let d=await fetch("/api/processes?enrich=1");if(!d.ok||a)return;let e=await d.json();if(a)return;let f=e.filter(a=>"done"===a.state).filter(a=>{let d=a.projectSlug.trim().toLowerCase();return!!d&&d===b||c.has(a.workspaceId)||c.has(a.threadId)}).sort((a,b)=>b.lastActivity-a.lastActivity).slice(0,10);k(f)}catch{}};d();let g=setInterval(d,1e4);return()=>{a=!0,clearInterval(g)}},[e,f]);let r=new Map(l.map(a=>[a.id,a.name])),s=new Map;for(let a of n)for(let b of a.agents)s.set(b.agent_id,{id:a.id,name:a.name});return 0===j.length?null:(0,b.jsxs)("section",{className:"col-span-full overflow-hidden rounded-2xl border border-[var(--card-border)] bg-[var(--card-bg)]",children:[(0,b.jsx)("div",{className:"flex items-center justify-between gap-3 border-b border-[var(--border)] px-4 py-3",children:(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 text-xs uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:[(0,b.jsx)(g.CheckCircle2,{className:"h-3.5 w-3.5"}),"Recently Completed"]}),(0,b.jsxs)("p",{className:"mt-1 text-xs text-[var(--muted-foreground)]",children:["Last ",j.length," completed"," ",1===j.length?"task":"tasks","."]})]})}),(0,b.jsx)("div",{className:"overflow-x-auto",children:(0,b.jsxs)("table",{className:"min-w-full text-sm",children:[(0,b.jsx)("thead",{className:"bg-[var(--secondary)]",children:(0,b.jsxs)("tr",{className:"text-left text-[11px] uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:[(0,b.jsx)("th",{className:"px-4 py-3 font-medium",children:"Team"}),(0,b.jsx)("th",{className:"px-4 py-3 font-medium",children:"Agent"}),(0,b.jsx)("th",{className:"px-4 py-3 font-medium",children:"Status"}),(0,b.jsx)("th",{className:"px-4 py-3 font-medium",children:"Thread"}),(0,b.jsx)("th",{className:"px-4 py-3 font-medium",children:"Last active"})]})}),(0,b.jsx)("tbody",{children:j.map(a=>{let c;return(0,b.jsxs)("tr",{className:"cursor-pointer border-t border-[var(--border)] text-[var(--foreground)] transition-colors hover:bg-[var(--secondary)]",onClick:()=>i.push(a.linearIssueId&&a.linearRunId?`/projects/${e}/linear?issue=${encodeURIComponent(a.linearIssueId)}&run=${encodeURIComponent(a.linearRunId)}`:`/projects/${e}/thread/${encodeURIComponent(a.workspaceId)}${a.threadId?`?open=${encodeURIComponent(a.threadId)}`:""}`),children:[(0,b.jsx)("td",{className:"px-4 py-3",children:s.has(a.agentId)?(0,b.jsx)("button",{onClick:b=>{b.stopPropagation(),i.push(`/projects/${e}/teams/${s.get(a.agentId).id}`)},className:"text-left font-medium text-[var(--foreground)] transition-colors hover:text-[var(--primary)]",children:s.get(a.agentId).name}):(0,b.jsx)("span",{className:"text-[var(--muted-foreground)]",children:"Unassigned"})}),(0,b.jsx)("td",{className:"px-4 py-3 text-[var(--foreground)]",children:(c=a.agentId,r.get(c)||c.slice(0,8))}),(0,b.jsx)("td",{className:"px-4 py-3",children:(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 rounded-full border border-[var(--border)] bg-[var(--secondary)] px-2 py-0.5 text-[11px] font-medium text-[var(--muted-foreground)]",children:[(0,b.jsx)(g.CheckCircle2,{className:"h-3 w-3"}),"Done"]})}),(0,b.jsx)("td",{className:"max-w-[24rem] px-4 py-3 text-[var(--muted-foreground)]",children:(0,b.jsx)("span",{className:"block truncate",children:a.threadTitle?.trim()?a.threadTitle.trim():a.threadId?.trim()?`Thread ${a.threadId.slice(0,12)}...`:"Main thread"})}),(0,b.jsx)("td",{className:"px-4 py-3 text-[var(--muted-foreground)]",children:function(a){let b=Math.max(0,Math.floor((Date.now()-a)/1e3));if(b<5)return"Just now";if(b<60)return`${b}s ago`;let c=Math.floor(b/60);if(c<60)return`${c}m ago`;let d=Math.floor(c/60);if(d<24)return`${d}h ago`;let e=Math.floor(d/24);return`${e}d ago`}(a.lastActivity)})]},`${a.workspaceId}-${a.threadId}-${a.agentId}`)})})]})})]})}var i=a.i(985339),j=a.i(549429);function k({projectId:a,onViewAll:d}){let[e,f]=(0,c.useState)([]),[g,h]=(0,c.useState)(!0);return(0,c.useEffect)(()=>{fetch(`/api/projects/${a}/teams`).then(a=>a.ok?a.json():{teams:[]}).then(a=>f(a.teams??[])).catch(()=>f([])).finally(()=>h(!1))},[a]),(0,b.jsxs)("div",{className:"rounded-2xl border border-[var(--card-border)] bg-[var(--card-bg)] p-4",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(i.Users,{className:"h-4 w-4 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"text-sm font-medium text-[var(--foreground)]",children:"Teams"}),!g&&e.length>0&&(0,b.jsx)("span",{className:"rounded-full bg-[var(--secondary)] px-2 py-0.5 text-xs text-[var(--muted-foreground)]",children:e.length})]}),d&&(0,b.jsxs)("button",{onClick:d,className:"flex items-center gap-1 text-xs text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)]",children:["View all ",(0,b.jsx)(j.ArrowRight,{className:"w-3 h-3"})]})]}),g?(0,b.jsx)("div",{className:"space-y-2",children:[1,2,3].map(a=>(0,b.jsx)("div",{className:"h-5 animate-pulse rounded bg-[var(--muted)]"},a))}):0===e.length?(0,b.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"No teams yet"}):(0,b.jsx)("div",{className:"space-y-2",children:e.slice(0,5).map(a=>(0,b.jsxs)("div",{className:"flex items-center gap-2 text-sm",children:[(0,b.jsx)(i.Users,{className:"h-4 w-4 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"text-[var(--foreground)]",children:a.name}),(0,b.jsxs)("span",{className:"text-[var(--muted-foreground)]",children:[a.agents.length," agents"]})]},a.id))})]})}var l=a.i(820859);function m({projectId:a,projectSlug:e,onViewAll:f}){let g=(0,d.useRouter)(),[h,i]=(0,c.useState)([]),[k,n]=(0,c.useState)([]),[o,p]=(0,c.useState)({}),[q,r]=(0,c.useState)(!0),[s,t]=(0,c.useState)(()=>Date.now());(0,c.useEffect)(()=>{let a=window.setInterval(()=>{t(Date.now())},3e4);return()=>{window.clearInterval(a)}},[]),(0,c.useEffect)(()=>{let b=!1,c=async()=>{try{let[c,d]=await Promise.all([fetch("/api/automations"),fetch(`/api/prompt-jobs?projectId=${encodeURIComponent(a)}`)]),e=c.ok?await c.json():{automations:[]},f=d.ok?await d.json():{jobs:[]};if(b)return;let g=(e.automations??[]).filter(b=>b.projectId===a).slice(0,20),h=(f.jobs??[]).filter(b=>b.projectId===a).slice(0,20);i(g),n(h);let j=Object.fromEntries(await Promise.all(h.map(async a=>{try{let b=await fetch(`/api/prompt-jobs/${encodeURIComponent(a.id)}/runs`);if(!b.ok)return[a.id,null];let c=((await b.json()).runs??[])[0]??null;return[a.id,c]}catch{return[a.id,null]}})));if(b)return;p(j)}catch{if(b)return;i([]),n([]),p({})}finally{b||r(!1)}};return r(!0),c(),()=>{b=!0}},[a]);let u=a=>{if(!e||"prompt"!==a.kind)return;let b=new URLSearchParams({job:a.jobId});a.runId&&b.set("run",a.runId),g.push(`/projects/${e}/automations?${b.toString()}`)},v=[...k.filter(a=>{let b=o[a.id];return b?.status==="queued"||b?.status==="running"}).map(a=>({id:`prompt:${a.id}`,title:a.name,kind:"prompt",jobId:a.id,runId:o[a.id]?.id??null,updatedAt:o[a.id]?.createdAt??a.updatedAt})),...h.filter(a=>"running"===a.executionState||a.schedule?.tickInProgress).map(a=>({id:`automation:${a.graphId}`,title:a.title,kind:"automation",updatedAt:a.updatedAt}))].sort((a,b)=>Date.parse(b.updatedAt)-Date.parse(a.updatedAt)),w=new Set(v.map(a=>a.id)),x=[...k.filter(a=>"active"===a.state&&"number"==typeof a.nextRunAt).map(a=>({id:`prompt:${a.id}`,title:a.name,kind:"prompt",jobId:a.id,runId:null,nextRunAt:a.nextRunAt})),...h.filter(a=>a.schedule?.state==="active"&&"number"==typeof a.schedule?.nextTickAt).map(a=>({id:`automation:${a.graphId}`,title:a.title,kind:"automation",nextRunAt:a.schedule.nextTickAt}))].filter(a=>!w.has(a.id)).sort((a,b)=>a.nextRunAt-b.nextRunAt),y=k.length+h.length;return(0,b.jsxs)("div",{className:"rounded-2xl border border-[var(--card-border)] bg-[var(--card-bg)] p-4",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(l.Clock,{className:"h-4 w-4 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"text-sm font-medium text-[var(--foreground)]",children:"Scheduled Tasks"}),!q&&y>0&&(0,b.jsx)("span",{className:"rounded-full bg-[var(--secondary)] px-2 py-0.5 text-xs text-[var(--muted-foreground)]",children:y})]}),f&&(0,b.jsxs)("button",{onClick:f,className:"flex items-center gap-1 text-xs text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)]",children:["View all ",(0,b.jsx)(j.ArrowRight,{className:"w-3 h-3"})]})]}),q?(0,b.jsx)("div",{className:"space-y-2",children:[1,2,3].map(a=>(0,b.jsx)("div",{className:"h-5 animate-pulse rounded bg-[var(--muted)]"},a))}):0===y?(0,b.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"No scheduled tasks"}):(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between text-xs uppercase tracking-wide text-[var(--muted-foreground)]",children:[(0,b.jsx)("span",{children:"Currently running"}),(0,b.jsx)("span",{children:v.length})]}),0===v.length?(0,b.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"Nothing running right now"}):(0,b.jsx)("div",{className:"space-y-2",children:v.slice(0,3).map(a=>(0,b.jsxs)("button",{type:"button",onClick:()=>u(a),disabled:"prompt"!==a.kind||!e,className:`flex w-full items-center gap-2 rounded-md px-1 py-1 text-left text-sm transition-colors ${"prompt"===a.kind&&e?"cursor-pointer hover:bg-[var(--secondary)]":"cursor-default"}`,children:[(0,b.jsx)("span",{className:"h-2 w-2 shrink-0 rounded-full bg-emerald-400"}),(0,b.jsx)("span",{className:"truncate text-[var(--foreground)]",children:a.title}),(0,b.jsx)("span",{className:"ml-auto shrink-0 text-xs text-[var(--status-completed-text)]",children:"running"})]},a.id))})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between text-xs uppercase tracking-wide text-[var(--muted-foreground)]",children:[(0,b.jsx)("span",{children:"Upcoming runs"}),(0,b.jsx)("span",{children:x.length})]}),0===x.length?(0,b.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"No upcoming runs"}):(0,b.jsx)("div",{className:"space-y-2",children:x.slice(0,3).map(a=>{var c;return(0,b.jsxs)("button",{type:"button",onClick:()=>u(a),disabled:"prompt"!==a.kind||!e,className:`flex w-full items-center gap-2 rounded-md px-1 py-1 text-left text-sm transition-colors ${"prompt"===a.kind&&e?"cursor-pointer hover:bg-[var(--secondary)]":"cursor-default"}`,children:[(0,b.jsx)(l.Clock,{className:"h-3.5 w-3.5 shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("div",{className:"truncate text-[var(--foreground)]",children:a.title}),(0,b.jsxs)("div",{className:"text-xs text-[var(--muted-foreground)]",children:["number"!=typeof(c=a.nextRunAt)?"No next run":new Intl.DateTimeFormat(void 0,{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"}).format(new Date(c))," ",(0,b.jsxs)("span",{className:"text-[var(--app-shell-soft-text)]",children:["• ",(a=>{if("number"!=typeof a)return"";let b=a-s;if(b<=0)return"now";let c=Math.ceil(b/6e4);if(c<60)return`in ${c}m`;let d=Math.floor(c/60),e=c%60;if(d<24)return 0===e?`in ${d}h`:`in ${d}h ${e}m`;let f=Math.floor(d/24),g=d%24;return 0===g?`in ${f}d`:`in ${f}d ${g}h`})(a.nextRunAt)]})]})]})]},a.id)})})]})]})]})}var n=a.i(736868),o=a.i(667597),p=a.i(353532),q=a.i(697183),r=a.i(824179),s=a.i(830284);function t({projectId:a,repos:d,onViewAll:e}){let{updateProject:f}=(0,s.useProjects)(),[g,h]=(0,c.useState)(d),[i,k]=(0,c.useState)(!1),[l,m]=(0,c.useState)(null),[u,v]=(0,c.useState)(""),[w,x]=(0,c.useState)(""),[y,z]=(0,c.useState)(null);(0,c.useEffect)(()=>{h(d)},[d]);let A=a=>{z(a),window.setTimeout(()=>z(null),2500)},B=a=>a.map(a=>({id:a.id,name:a.name,path:a.path,git_url:a.git_url})),C=()=>{v(""),x(""),m(null),k(!1)},D=async()=>{let b=u.trim(),c=w.trim();if(b&&c){h([...g,{id:`tmp-${Date.now()}`,name:b,path:c}]),C();try{await f(a,{repos:[...B(g),{name:b,path:c}]}),A("Folder added")}catch{h(g),A("Failed to add folder")}}},E=async b=>{let c=u.trim(),d=w.trim();if(!c||!d)return;let e=g.map(a=>a.id===b?{...a,name:c,path:d}:a);h(e),C();try{await f(a,{repos:B(e)}),A("Folder updated")}catch{h(g),A("Failed to update folder")}},F=async b=>{let c=g.filter(a=>a.id!==b);h(c),l===b&&C();try{await f(a,{repos:B(c)}),A("Folder deleted")}catch{h(g),A("Failed to delete folder")}};return(0,b.jsxs)("div",{className:"rounded-2xl border border-[var(--card-border)] bg-[var(--card-bg)] p-4",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(n.FolderGit2,{className:"h-4 w-4 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"text-sm font-medium text-[var(--foreground)]",children:"Folders"}),g.length>0&&(0,b.jsx)("span",{className:"rounded-full bg-[var(--secondary)] px-2 py-0.5 text-xs text-[var(--muted-foreground)]",children:g.length})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>{m(null),v(""),x(""),k(!0)},className:"flex items-center gap-1 text-xs text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)]",children:[(0,b.jsx)(p.Plus,{className:"w-3 h-3"}),"Add"]}),e&&(0,b.jsxs)("button",{onClick:e,className:"flex items-center gap-1 text-xs text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)]",children:["View all ",(0,b.jsx)(j.ArrowRight,{className:"w-3 h-3"})]})]})]}),y&&(0,b.jsx)("p",{className:"mb-3 text-xs text-[var(--muted-foreground)]",children:y}),(i||l)&&(0,b.jsxs)("div",{className:"mb-3 space-y-2 rounded-xl border border-[var(--border)] bg-[var(--secondary)] p-3",children:[(0,b.jsx)("input",{value:u,onChange:a=>v(a.target.value),className:"input w-full text-sm",placeholder:"Folder name",autoFocus:!0}),(0,b.jsx)("input",{value:w,onChange:a=>x(a.target.value),className:"input w-full text-sm",placeholder:"Local path"}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("button",{type:"button",onClick:()=>{l?E(l):D()},disabled:!u.trim()||!w.trim(),className:"rounded-lg bg-[var(--foreground)] px-3 py-1.5 text-xs font-medium text-[var(--background)] disabled:opacity-40",children:"Save"}),(0,b.jsxs)("button",{type:"button",onClick:C,className:"flex items-center gap-1 rounded-lg px-2 py-1.5 text-xs text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)]",children:[(0,b.jsx)(r.X,{className:"w-3 h-3"}),"Cancel"]})]})]}),0===g.length?(0,b.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"No folders linked"}):(0,b.jsx)("div",{className:"space-y-2",children:g.slice(0,5).map(a=>(0,b.jsxs)("div",{className:"flex items-center gap-2 text-sm",children:[(0,b.jsx)(n.FolderGit2,{className:"h-4 w-4 shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("div",{className:"truncate text-[var(--foreground)]",children:a.name}),a.path&&(0,b.jsx)("div",{className:"truncate text-xs text-[var(--muted-foreground)]",children:a.path})]}),(0,b.jsx)("button",{type:"button",onClick:()=>{k(!1),m(a.id),v(a.name),x(a.path??"")},className:"p-1 text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)]","aria-label":`Edit ${a.name}`,children:(0,b.jsx)(o.Pencil,{className:"w-3 h-3"})}),(0,b.jsx)("button",{type:"button",onClick:()=>void F(a.id),className:"p-1 text-[var(--muted-foreground)] transition-colors hover:text-[var(--destructive)]","aria-label":`Delete ${a.name}`,children:(0,b.jsx)(q.Trash2,{className:"w-3 h-3"})})]},a.id))})]})}var u=a.i(489461),v=a.i(769677),w=a.i(599086);let x={on_track:{label:"On Track",dot:"bg-[var(--status-completed)]",badge:"border-[var(--status-completed-border)] bg-[var(--status-completed-bg)] text-[var(--status-completed-text)]"},at_risk:{label:"At Risk",dot:"bg-[var(--status-blocked)]",badge:"border-[var(--status-blocked-border)] bg-[var(--status-blocked-bg)] text-[var(--status-blocked-text)]"},off_track:{label:"Off Track",dot:"bg-[var(--status-failed)]",badge:"border-[var(--status-failed-border)] bg-[var(--status-failed-bg)] text-[var(--status-failed-text)]"},done:{label:"Done",dot:"bg-[var(--muted-foreground)]",badge:"border-[var(--border)] bg-[var(--secondary)] text-[var(--muted-foreground)]"}};function y({objective:a,teamName:c,onClick:d}){let e=x[a.status]??x.on_track,f="done"===a.status;return(0,b.jsxs)("button",{type:"button",onClick:d,className:`w-full rounded-2xl border border-[var(--card-border)] bg-[var(--card-bg)] p-4 text-left transition-colors hover:bg-[var(--secondary)] ${f?"opacity-60":""}`,children:[(0,b.jsxs)("div",{className:"flex items-start justify-between gap-2 mb-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,b.jsx)("span",{className:`h-2 w-2 shrink-0 rounded-full ${e.dot}`}),(0,b.jsx)("span",{className:"truncate text-sm font-medium text-[var(--foreground)]",children:a.title})]}),(0,b.jsx)("span",{className:`shrink-0 rounded-full border px-2 py-0.5 text-[11px] font-medium ${e.badge}`,children:e.label})]}),(0,b.jsx)("div",{className:"mb-2",children:(0,b.jsx)("div",{className:"h-1.5 overflow-hidden rounded-full bg-[var(--muted)]",children:(0,b.jsx)("div",{className:"h-full rounded-full bg-emerald-500/70 transition-all",style:{width:`${Math.min(a.progress,100)}%`}})})}),(0,b.jsxs)("div",{className:"flex items-center justify-between text-xs text-[var(--muted-foreground)]",children:[(0,b.jsxs)("span",{className:c?"":"flex items-center gap-1 text-[var(--status-blocked-text)]",children:[!c&&(0,b.jsx)(w.AlertTriangle,{className:"h-3 w-3"}),c??"No team"]}),(0,b.jsxs)("span",{children:[a.progress,"%"]})]})]})}function z({projectId:a,projectSlug:e}){let f=(0,d.useRouter)(),{projects:g,isLoading:h}=(0,s.useProjects)(),i=(0,c.useMemo)(()=>g.find(a=>a.slug===e),[g,e]),k=(0,c.useMemo)(()=>(0,v.readProjectObjectivesWorkspace)(i?.metadata).objectives,[i?.metadata]),[l,m]=(0,c.useState)([]);(0,c.useEffect)(()=>{fetch(`/api/projects/${a}/teams`).then(a=>a.ok?a.json():{teams:[]}).then(a=>m(a.teams??[])).catch(()=>m([]))},[a]);let n=(0,c.useMemo)(()=>new Map(l.map(a=>[a.id,a.name])),[l]),o=k.filter(a=>a.progress>=100).length;return h?(0,b.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[1,2].map(a=>(0,b.jsx)("div",{className:"h-28 animate-pulse rounded-2xl bg-[var(--muted)]"},a))}):0===k.length?(0,b.jsxs)("button",{type:"button",onClick:()=>f.push(`/projects/${e}/objectives`),className:"w-full rounded-2xl border border-dashed border-[var(--border)] bg-[var(--card-bg)] p-6 text-center transition-colors hover:border-[var(--card-hover-border)] hover:bg-[var(--secondary)]",children:[(0,b.jsx)(u.Target,{className:"mx-auto mb-2 h-5 w-5 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"text-sm text-[var(--muted-foreground)]",children:"Add your first objective"})]}):(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-3 text-xs text-[var(--muted-foreground)]",children:[(0,b.jsxs)("span",{children:[k.length," ",1===k.length?"objective":"objectives"]}),(0,b.jsx)("span",{className:"text-[var(--border)]",children:"|"}),(0,b.jsxs)("span",{children:[o,"/",k.length," complete"]})]}),(0,b.jsxs)("button",{onClick:()=>f.push(`/projects/${e}/objectives`),className:"flex items-center gap-1 text-xs text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)]",children:["View all ",(0,b.jsx)(j.ArrowRight,{className:"w-3 h-3"})]})]}),(0,b.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:k.map(a=>(0,b.jsx)(y,{objective:a,teamName:n.get(a.teamId)??null,onClick:()=>f.push(`/projects/${e}/objectives/${encodeURIComponent(a.id)}`)},a.id))})]})}var A=a.i(737313),B=a.i(144462),C=a.i(675665),D=a.i(719550);function E({icon:a,title:c,accentClass:d,onClick:e,badge:f,children:g}){return(0,b.jsxs)("button",{type:"button",onClick:e,className:"w-full rounded-2xl border border-[var(--card-border)] bg-[var(--card-bg)] p-4 text-left transition-colors hover:bg-[var(--secondary)]",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:d,children:a}),(0,b.jsx)("span",{className:"text-sm font-medium text-[var(--foreground)]",children:c})]}),f]}),g&&(0,b.jsx)("div",{className:"text-sm",children:g})]})}function F({projectId:a,projectSlug:e,primaryThreadId:f}){let g=(0,d.useRouter)(),{connected:h,loading:i}=(0,C.useLinearConnection)(),[j,k]=(0,c.useState)(null),[l,m]=(0,c.useState)(0);return(0,c.useEffect)(()=>{let b=!1;return fetch(`/api/threads?projectId=${encodeURIComponent(a)}&limit=3&format=json`).then(a=>a.ok?a.json():{threads:{},total:0}).then(a=>{if(b)return;let c=Object.values(a.threads??{}).flatMap(a=>a.threads??[]).slice(0,3);k(c),m("number"==typeof a.total?a.total:c.length)}).catch(()=>{b||(k([]),m(0))}),()=>{b=!0}},[a]),(0,b.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4",children:[(0,b.jsx)(E,{icon:(0,b.jsx)(A.MessageSquare,{className:"w-4 h-4"}),title:"Chat",accentClass:"text-indigo-400",onClick:()=>{f&&g.push(`/projects/${e}/thread/${encodeURIComponent(f)}`)},badge:l>0?(0,b.jsx)("span",{className:"rounded-full bg-[var(--secondary)] px-2 py-0.5 text-xs text-[var(--muted-foreground)]",children:l}):void 0,children:null===j?(0,b.jsx)("div",{className:"space-y-1.5",children:[1,2].map(a=>(0,b.jsx)("div",{className:"h-5 animate-pulse rounded bg-[var(--muted)]"},a))}):0===j.length?(0,b.jsx)("p",{className:"text-[var(--muted-foreground)]",children:"No threads yet"}):(0,b.jsx)("div",{className:"space-y-1",children:j.map(a=>(0,b.jsxs)("div",{className:"flex items-center gap-2 truncate text-[var(--foreground)]",children:[(0,b.jsx)(A.MessageSquare,{className:"h-3 w-3 shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"truncate",children:a.title})]},a.id))})}),(0,b.jsx)(E,{icon:(0,b.jsx)(B.TerminalSquare,{className:"w-4 h-4"}),title:"Terminal",accentClass:"text-emerald-400",onClick:()=>g.push(`/projects/${e}/terminal`),children:(0,b.jsx)("p",{className:"text-[var(--muted-foreground)]",children:"No sessions yet"})}),(0,b.jsx)(E,{icon:(0,b.jsx)(D.LinearIcon,{className:"w-4 h-4"}),title:"Linear",accentClass:"text-blue-400",onClick:()=>g.push(`/projects/${e}/linear`),badge:i?void 0:h?(0,b.jsx)("span",{className:"rounded-full border border-[var(--status-completed-border)] bg-[var(--status-completed-bg)] px-2 py-0.5 text-[11px] text-[var(--status-completed-text)]",children:"Connected"}):(0,b.jsx)("span",{className:"rounded-full border border-[var(--border)] bg-[var(--secondary)] px-2 py-0.5 text-[11px] text-[var(--muted-foreground)]",children:"Connect"}),children:!i&&!h&&(0,b.jsx)("p",{className:"text-[var(--muted-foreground)]",children:"Connect to see issues"})})]})}function G({projectId:a,projectSlug:c,projectName:e,projectDescription:g,projectMetadata:i,repos:j,threadIds:l}){let n=(0,d.useRouter)(),o=l[0]??null;return(0,b.jsx)("div",{className:"h-full overflow-y-auto",children:(0,b.jsxs)("div",{className:"max-w-5xl mx-auto px-6 py-8 space-y-8",children:[g&&(0,b.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:g}),(0,b.jsxs)("section",{children:[(0,b.jsx)("h2",{className:"mb-3 text-sm text-[var(--muted-foreground)]",children:"What you're working toward"}),(0,b.jsx)(z,{projectId:a,projectSlug:c})]}),(0,b.jsxs)("section",{children:[(0,b.jsx)("h2",{className:"mb-3 text-sm text-[var(--muted-foreground)]",children:"Start working"}),(0,b.jsx)(F,{projectId:a,projectSlug:c,primaryThreadId:o})]}),(0,b.jsxs)("section",{children:[(0,b.jsx)("h2",{className:"mb-3 text-sm text-[var(--muted-foreground)]",children:"What's happening now"}),(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsx)(m,{projectId:a,projectSlug:c,onViewAll:()=>n.push(`/projects/${c}/automations`)}),(0,b.jsx)(f,{projectSlug:c,projectThreadIds:l}),(0,b.jsx)(h,{projectId:a,projectSlug:c,projectThreadIds:l})]})]}),(0,b.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[(0,b.jsx)(t,{projectId:a,repos:j}),(0,b.jsx)(k,{projectId:a,onViewAll:()=>n.push(`/projects/${c}/teams`)})]})]})})}a.s(["default",0,function({params:a}){let{slug:d}=(0,c.use)(a),{projects:e}=(0,s.useProjectsWithAgents)(),f=e.find(a=>a.slug===d);return f?(0,b.jsx)(G,{projectId:f.id,projectSlug:f.slug,projectName:f.name,projectDescription:f.description,projectMetadata:f.metadata,repos:f.repos,threadIds:f.thread_ids}):(0,b.jsx)("div",{className:"flex items-center justify-center h-full text-sm text-zinc-500",children:"Loading project..."})}],143159)}];
|
|
1
|
+
module.exports=[143159,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(985339),e=a.i(50944),f=a.i(654340);function g({projectSlug:a,projectThreadIds:d=[]}){let h=(0,e.useRouter)(),[i,j]=(0,c.useState)([]),[k,l]=(0,c.useState)([]),m=(0,c.useCallback)(async()=>{try{let a=await fetch("/api/participants");if(!a.ok)return;let b=await a.json();l(Array.isArray(b)?b:b.participants??[])}catch{}},[]);(0,c.useEffect)(()=>{m()},[m]),(0,c.useEffect)(()=>{let b=!1,c=a.trim().toLowerCase(),e=new Set(d.map(a=>a.trim()).filter(Boolean)),f=async()=>{try{let a=await fetch("/api/processes?enrich=1");if(!a.ok||b)return;let d=await a.json();if(b)return;let f=d.filter(a=>"spawning"===a.state||"running"===a.state).filter(a=>{let b=a.projectSlug.trim().toLowerCase();return!!b&&b===c||e.has(a.workspaceId)||e.has(a.threadId)}).sort((a,b)=>b.lastActivity-a.lastActivity);j(f)}catch{}};f();let g=setInterval(f,3e3);return()=>{b=!0,clearInterval(g)}},[a,d]);let n=new Map(k.map(a=>[a.id,a.name])),o=a=>n.get(a)||a.slice(0,8),p=[],q=new Map;for(let a of i){let b=q.get(a.agentId);b||(b={agentId:a.agentId,agentName:o(a.agentId),activities:[]},q.set(a.agentId,b),p.push(b)),b.activities.push({key:`${a.workspaceId}-${a.threadId}-${a.agentId}`,workspaceId:a.workspaceId,threadId:a.threadId,state:a.state,threadLabel:a.threadTitle?.trim()?a.threadTitle.trim():a.threadId?.trim()?`Thread ${a.threadId.slice(0,12)}...`:"Main thread",lastActiveLabel:function(a){let b=Math.max(0,Math.floor((Date.now()-a)/1e3));if(b<5)return"Just now";if(b<60)return`${b}s ago`;let c=Math.floor(b/60);if(c<60)return`${c}m ago`;let d=Math.floor(c/60);if(d<24)return`${d}h ago`;let e=Math.floor(d/24);return`${e}d ago`}(a.lastActivity),lastActivity:a.lastActivity,linearIssueId:a.linearIssueId,linearRunId:a.linearRunId})}if(0===p.length)return null;let r=i.length;return(0,b.jsxs)("section",{className:"col-span-full overflow-hidden rounded-2xl border border-[var(--card-border)] bg-[var(--card-bg)]",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3 border-b border-[var(--border)] px-4 py-3",children:[(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 text-xs uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:[(0,b.jsx)(f.Activity,{className:"h-3.5 w-3.5"}),"Working Now"]}),(0,b.jsxs)("p",{className:"mt-1 text-xs text-[var(--muted-foreground)]",children:[p.length," ",1===p.length?"agent":"agents"," active across"," ",r," ",1===r?"thread":"threads","."]})]}),(0,b.jsxs)("span",{className:"rounded-full border border-[var(--status-completed-border)] bg-[var(--status-completed-bg)] px-2.5 py-1 text-[10px] font-medium uppercase tracking-wider text-[var(--status-completed-text)]",children:[r," live ",1===r?"entry":"entries"]})]}),(0,b.jsx)("div",{className:"divide-y divide-[var(--border)]",children:p.map(c=>(0,b.jsxs)("div",{className:"px-4 py-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-sm font-medium text-[var(--foreground)]",children:[(0,b.jsx)("span",{className:"h-2 w-2 rounded-full bg-emerald-400 animate-pulse"}),c.agentName]}),c.activities.length>1&&(0,b.jsxs)("span",{className:"rounded-full bg-[var(--secondary)] px-2 py-0.5 text-[10px] text-[var(--muted-foreground)]",children:[c.activities.length," threads"]})]}),(0,b.jsx)("div",{className:"space-y-1 ml-4",children:c.activities.map(c=>(0,b.jsxs)("div",{className:"mx-[-0.5rem] flex cursor-pointer items-center gap-3 rounded-lg px-2 py-1.5 text-sm transition-colors hover:bg-[var(--secondary)]",onClick:()=>h.push(c.linearIssueId&&c.linearRunId?`/projects/${a}/linear?issue=${encodeURIComponent(c.linearIssueId)}&run=${encodeURIComponent(c.linearRunId)}`:`/projects/${a}/thread/${encodeURIComponent(c.workspaceId)}${c.threadId?`?open=${encodeURIComponent(c.threadId)}`:""}`),children:[(0,b.jsxs)("span",{className:"inline-flex shrink-0 items-center gap-1.5 rounded-full border border-[var(--status-completed-border)] bg-[var(--status-completed-bg)] px-2 py-0.5 text-[11px] font-medium text-[var(--status-completed-text)]",children:[(0,b.jsx)("span",{className:"h-1.5 w-1.5 rounded-full bg-emerald-400"}),"spawning"===c.state?"Starting":"Working"]}),(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate text-[var(--foreground)]",children:c.threadLabel}),(0,b.jsx)("span",{className:"shrink-0 text-xs text-[var(--muted-foreground)]",children:c.lastActiveLabel})]},c.key))})]},c.agentId))})]})}var h=a.i(44668);function i({projectId:a,projectSlug:d,projectThreadIds:f=[]}){let g=(0,e.useRouter)(),[j,k]=(0,c.useState)([]),[l,m]=(0,c.useState)([]),[n,o]=(0,c.useState)([]),p=(0,c.useCallback)(async()=>{try{let a=await fetch("/api/participants");if(!a.ok)return;let b=await a.json();m(Array.isArray(b)?b:b.participants??[])}catch{}},[]),q=(0,c.useCallback)(async()=>{try{let b=await fetch(`/api/projects/${a}/teams`);if(!b.ok)return;let c=await b.json();o(Array.isArray(c)?c:[])}catch{}},[a]);(0,c.useEffect)(()=>{p(),q()},[p,q]),(0,c.useEffect)(()=>{let a=!1,b=d.trim().toLowerCase(),c=new Set(f.map(a=>a.trim()).filter(Boolean)),e=async()=>{try{let d=await fetch("/api/processes?enrich=1");if(!d.ok||a)return;let e=await d.json();if(a)return;let f=e.filter(a=>"done"===a.state).filter(a=>{let d=a.projectSlug.trim().toLowerCase();return!!d&&d===b||c.has(a.workspaceId)||c.has(a.threadId)}).sort((a,b)=>b.lastActivity-a.lastActivity).slice(0,10);k(f)}catch{}};e();let g=setInterval(e,1e4);return()=>{a=!0,clearInterval(g)}},[d,f]);let r=new Map(l.map(a=>[a.id,a.name])),s=new Map;for(let a of n)for(let b of a.agents)s.set(b.agent_id,{id:a.id,name:a.name});return 0===j.length?null:(0,b.jsxs)("section",{className:"col-span-full overflow-hidden rounded-2xl border border-[var(--card-border)] bg-[var(--card-bg)]",children:[(0,b.jsx)("div",{className:"flex items-center justify-between gap-3 border-b border-[var(--border)] px-4 py-3",children:(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 text-xs uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:[(0,b.jsx)(h.CheckCircle2,{className:"h-3.5 w-3.5"}),"Recently Completed"]}),(0,b.jsxs)("p",{className:"mt-1 text-xs text-[var(--muted-foreground)]",children:["Last ",j.length," completed"," ",1===j.length?"task":"tasks","."]})]})}),(0,b.jsx)("div",{className:"overflow-x-auto",children:(0,b.jsxs)("table",{className:"min-w-full text-sm",children:[(0,b.jsx)("thead",{className:"bg-[var(--secondary)]",children:(0,b.jsxs)("tr",{className:"text-left text-[11px] uppercase tracking-[0.18em] text-[var(--muted-foreground)]",children:[(0,b.jsx)("th",{className:"px-4 py-3 font-medium",children:"Agent"}),(0,b.jsx)("th",{className:"px-4 py-3 font-medium",children:"Status"}),(0,b.jsx)("th",{className:"px-4 py-3 font-medium",children:"Thread"}),(0,b.jsx)("th",{className:"px-4 py-3 font-medium",children:"Last active"})]})}),(0,b.jsx)("tbody",{children:j.map(a=>{let c;return(0,b.jsxs)("tr",{className:"cursor-pointer border-t border-[var(--border)] text-[var(--foreground)] transition-colors hover:bg-[var(--secondary)]",onClick:()=>g.push(a.linearIssueId&&a.linearRunId?`/projects/${d}/linear?issue=${encodeURIComponent(a.linearIssueId)}&run=${encodeURIComponent(a.linearRunId)}`:`/projects/${d}/thread/${encodeURIComponent(a.workspaceId)}${a.threadId?`?open=${encodeURIComponent(a.threadId)}`:""}`),children:[(0,b.jsx)("td",{className:"px-4 py-3 text-[var(--foreground)]",children:(c=a.agentId,r.get(c)||c.slice(0,8))}),(0,b.jsx)("td",{className:"px-4 py-3",children:(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 rounded-full border border-[var(--border)] bg-[var(--secondary)] px-2 py-0.5 text-[11px] font-medium text-[var(--muted-foreground)]",children:[(0,b.jsx)(h.CheckCircle2,{className:"h-3 w-3"}),"Done"]})}),(0,b.jsx)("td",{className:"max-w-[24rem] px-4 py-3 text-[var(--muted-foreground)]",children:(0,b.jsx)("span",{className:"block truncate",children:a.threadTitle?.trim()?a.threadTitle.trim():a.threadId?.trim()?`Thread ${a.threadId.slice(0,12)}...`:"Main thread"})}),(0,b.jsx)("td",{className:"px-4 py-3 text-[var(--muted-foreground)]",children:function(a){let b=Math.max(0,Math.floor((Date.now()-a)/1e3));if(b<5)return"Just now";if(b<60)return`${b}s ago`;let c=Math.floor(b/60);if(c<60)return`${c}m ago`;let d=Math.floor(c/60);if(d<24)return`${d}h ago`;let e=Math.floor(d/24);return`${e}d ago`}(a.lastActivity)})]},`${a.workspaceId}-${a.threadId}-${a.agentId}`)})})]})})]})}var j=a.i(549429);function k({projectId:a,onViewAll:e}){let[f,g]=(0,c.useState)([]),[h,i]=(0,c.useState)(!0);return(0,c.useEffect)(()=>{fetch(`/api/projects/${a}/teams`).then(a=>a.ok?a.json():{teams:[]}).then(a=>g(a.teams??[])).catch(()=>g([])).finally(()=>i(!1))},[a]),(0,b.jsxs)("div",{className:"rounded-2xl border border-[var(--card-border)] bg-[var(--card-bg)] p-4",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(d.Users,{className:"h-4 w-4 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"text-sm font-medium text-[var(--foreground)]",children:"Teams"}),!h&&f.length>0&&(0,b.jsx)("span",{className:"rounded-full bg-[var(--secondary)] px-2 py-0.5 text-xs text-[var(--muted-foreground)]",children:f.length})]}),e&&(0,b.jsxs)("button",{onClick:e,className:"flex items-center gap-1 text-xs text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)]",children:["View all ",(0,b.jsx)(j.ArrowRight,{className:"w-3 h-3"})]})]}),h?(0,b.jsx)("div",{className:"space-y-2",children:[1,2,3].map(a=>(0,b.jsx)("div",{className:"h-5 animate-pulse rounded bg-[var(--muted)]"},a))}):0===f.length?(0,b.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"No teams yet"}):(0,b.jsx)("div",{className:"space-y-2",children:f.slice(0,5).map(a=>(0,b.jsxs)("div",{className:"flex items-center gap-2 text-sm",children:[(0,b.jsx)(d.Users,{className:"h-4 w-4 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"text-[var(--foreground)]",children:a.name}),(0,b.jsxs)("span",{className:"text-[var(--muted-foreground)]",children:[a.agents.length," agents"]})]},a.id))})]})}var l=a.i(820859);function m({projectId:a,projectSlug:d,onViewAll:f}){let g=(0,e.useRouter)(),[h,i]=(0,c.useState)([]),[k,n]=(0,c.useState)([]),[o,p]=(0,c.useState)({}),[q,r]=(0,c.useState)(!0),[s,t]=(0,c.useState)(()=>Date.now());(0,c.useEffect)(()=>{let a=window.setInterval(()=>{t(Date.now())},3e4);return()=>{window.clearInterval(a)}},[]),(0,c.useEffect)(()=>{let b=!1,c=async()=>{try{let[c,d]=await Promise.all([fetch("/api/automations"),fetch(`/api/prompt-jobs?projectId=${encodeURIComponent(a)}`)]),e=c.ok?await c.json():{automations:[]},f=d.ok?await d.json():{jobs:[]};if(b)return;let g=(e.automations??[]).filter(b=>b.projectId===a).slice(0,20),h=(f.jobs??[]).filter(b=>b.projectId===a).slice(0,20);i(g),n(h);let j=Object.fromEntries(await Promise.all(h.map(async a=>{try{let b=await fetch(`/api/prompt-jobs/${encodeURIComponent(a.id)}/runs`);if(!b.ok)return[a.id,null];let c=((await b.json()).runs??[])[0]??null;return[a.id,c]}catch{return[a.id,null]}})));if(b)return;p(j)}catch{if(b)return;i([]),n([]),p({})}finally{b||r(!1)}};return r(!0),c(),()=>{b=!0}},[a]);let u=a=>{if(!d||"prompt"!==a.kind)return;let b=new URLSearchParams({job:a.jobId});a.runId&&b.set("run",a.runId),g.push(`/projects/${d}/automations?${b.toString()}`)},v=[...k.filter(a=>{let b=o[a.id];return b?.status==="queued"||b?.status==="running"}).map(a=>({id:`prompt:${a.id}`,title:a.name,kind:"prompt",jobId:a.id,runId:o[a.id]?.id??null,updatedAt:o[a.id]?.createdAt??a.updatedAt})),...h.filter(a=>"running"===a.executionState||a.schedule?.tickInProgress).map(a=>({id:`automation:${a.graphId}`,title:a.title,kind:"automation",updatedAt:a.updatedAt}))].sort((a,b)=>Date.parse(b.updatedAt)-Date.parse(a.updatedAt)),w=new Set(v.map(a=>a.id)),x=[...k.filter(a=>"active"===a.state&&"number"==typeof a.nextRunAt).map(a=>({id:`prompt:${a.id}`,title:a.name,kind:"prompt",jobId:a.id,runId:null,nextRunAt:a.nextRunAt})),...h.filter(a=>a.schedule?.state==="active"&&"number"==typeof a.schedule?.nextTickAt).map(a=>({id:`automation:${a.graphId}`,title:a.title,kind:"automation",nextRunAt:a.schedule.nextTickAt}))].filter(a=>!w.has(a.id)).sort((a,b)=>a.nextRunAt-b.nextRunAt),y=k.length+h.length;return(0,b.jsxs)("div",{className:"rounded-2xl border border-[var(--card-border)] bg-[var(--card-bg)] p-4",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(l.Clock,{className:"h-4 w-4 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"text-sm font-medium text-[var(--foreground)]",children:"Scheduled Tasks"}),!q&&y>0&&(0,b.jsx)("span",{className:"rounded-full bg-[var(--secondary)] px-2 py-0.5 text-xs text-[var(--muted-foreground)]",children:y})]}),f&&(0,b.jsxs)("button",{onClick:f,className:"flex items-center gap-1 text-xs text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)]",children:["View all ",(0,b.jsx)(j.ArrowRight,{className:"w-3 h-3"})]})]}),q?(0,b.jsx)("div",{className:"space-y-2",children:[1,2,3].map(a=>(0,b.jsx)("div",{className:"h-5 animate-pulse rounded bg-[var(--muted)]"},a))}):0===y?(0,b.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"No scheduled tasks"}):(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between text-xs uppercase tracking-wide text-[var(--muted-foreground)]",children:[(0,b.jsx)("span",{children:"Currently running"}),(0,b.jsx)("span",{children:v.length})]}),0===v.length?(0,b.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"Nothing running right now"}):(0,b.jsx)("div",{className:"space-y-2",children:v.slice(0,3).map(a=>(0,b.jsxs)("button",{type:"button",onClick:()=>u(a),disabled:"prompt"!==a.kind||!d,className:`flex w-full items-center gap-2 rounded-md px-1 py-1 text-left text-sm transition-colors ${"prompt"===a.kind&&d?"cursor-pointer hover:bg-[var(--secondary)]":"cursor-default"}`,children:[(0,b.jsx)("span",{className:"h-2 w-2 shrink-0 rounded-full bg-emerald-400"}),(0,b.jsx)("span",{className:"truncate text-[var(--foreground)]",children:a.title}),(0,b.jsx)("span",{className:"ml-auto shrink-0 text-xs text-[var(--status-completed-text)]",children:"running"})]},a.id))})]}),(0,b.jsxs)("div",{className:"space-y-2",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between text-xs uppercase tracking-wide text-[var(--muted-foreground)]",children:[(0,b.jsx)("span",{children:"Upcoming runs"}),(0,b.jsx)("span",{children:x.length})]}),0===x.length?(0,b.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"No upcoming runs"}):(0,b.jsx)("div",{className:"space-y-2",children:x.slice(0,3).map(a=>{var c;return(0,b.jsxs)("button",{type:"button",onClick:()=>u(a),disabled:"prompt"!==a.kind||!d,className:`flex w-full items-center gap-2 rounded-md px-1 py-1 text-left text-sm transition-colors ${"prompt"===a.kind&&d?"cursor-pointer hover:bg-[var(--secondary)]":"cursor-default"}`,children:[(0,b.jsx)(l.Clock,{className:"h-3.5 w-3.5 shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("div",{className:"truncate text-[var(--foreground)]",children:a.title}),(0,b.jsxs)("div",{className:"text-xs text-[var(--muted-foreground)]",children:["number"!=typeof(c=a.nextRunAt)?"No next run":new Intl.DateTimeFormat(void 0,{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"}).format(new Date(c))," ",(0,b.jsxs)("span",{className:"text-[var(--app-shell-soft-text)]",children:["• ",(a=>{if("number"!=typeof a)return"";let b=a-s;if(b<=0)return"now";let c=Math.ceil(b/6e4);if(c<60)return`in ${c}m`;let d=Math.floor(c/60),e=c%60;if(d<24)return 0===e?`in ${d}h`:`in ${d}h ${e}m`;let f=Math.floor(d/24),g=d%24;return 0===g?`in ${f}d`:`in ${f}d ${g}h`})(a.nextRunAt)]})]})]})]},a.id)})})]})]})]})}var n=a.i(736868),o=a.i(667597),p=a.i(353532),q=a.i(697183),r=a.i(824179),s=a.i(830284);function t({projectId:a,repos:d,onViewAll:e}){let{updateProject:f}=(0,s.useProjects)(),[g,h]=(0,c.useState)(d),[i,k]=(0,c.useState)(!1),[l,m]=(0,c.useState)(null),[u,v]=(0,c.useState)(""),[w,x]=(0,c.useState)(""),[y,z]=(0,c.useState)(null);(0,c.useEffect)(()=>{h(d)},[d]);let A=a=>{z(a),window.setTimeout(()=>z(null),2500)},B=a=>a.map(a=>({id:a.id,name:a.name,path:a.path,git_url:a.git_url})),C=()=>{v(""),x(""),m(null),k(!1)},D=async()=>{let b=u.trim(),c=w.trim();if(b&&c){h([...g,{id:`tmp-${Date.now()}`,name:b,path:c}]),C();try{await f(a,{repos:[...B(g),{name:b,path:c}]}),A("Folder added")}catch{h(g),A("Failed to add folder")}}},E=async b=>{let c=u.trim(),d=w.trim();if(!c||!d)return;let e=g.map(a=>a.id===b?{...a,name:c,path:d}:a);h(e),C();try{await f(a,{repos:B(e)}),A("Folder updated")}catch{h(g),A("Failed to update folder")}},F=async b=>{let c=g.filter(a=>a.id!==b);h(c),l===b&&C();try{await f(a,{repos:B(c)}),A("Folder deleted")}catch{h(g),A("Failed to delete folder")}};return(0,b.jsxs)("div",{className:"rounded-2xl border border-[var(--card-border)] bg-[var(--card-bg)] p-4",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(n.FolderGit2,{className:"h-4 w-4 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"text-sm font-medium text-[var(--foreground)]",children:"Folders"}),g.length>0&&(0,b.jsx)("span",{className:"rounded-full bg-[var(--secondary)] px-2 py-0.5 text-xs text-[var(--muted-foreground)]",children:g.length})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>{m(null),v(""),x(""),k(!0)},className:"flex items-center gap-1 text-xs text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)]",children:[(0,b.jsx)(p.Plus,{className:"w-3 h-3"}),"Add"]}),e&&(0,b.jsxs)("button",{onClick:e,className:"flex items-center gap-1 text-xs text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)]",children:["View all ",(0,b.jsx)(j.ArrowRight,{className:"w-3 h-3"})]})]})]}),y&&(0,b.jsx)("p",{className:"mb-3 text-xs text-[var(--muted-foreground)]",children:y}),(i||l)&&(0,b.jsxs)("div",{className:"mb-3 space-y-2 rounded-xl border border-[var(--border)] bg-[var(--secondary)] p-3",children:[(0,b.jsx)("input",{value:u,onChange:a=>v(a.target.value),className:"input w-full text-sm",placeholder:"Folder name",autoFocus:!0}),(0,b.jsx)("input",{value:w,onChange:a=>x(a.target.value),className:"input w-full text-sm",placeholder:"Local path"}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("button",{type:"button",onClick:()=>{l?E(l):D()},disabled:!u.trim()||!w.trim(),className:"rounded-lg bg-[var(--foreground)] px-3 py-1.5 text-xs font-medium text-[var(--background)] disabled:opacity-40",children:"Save"}),(0,b.jsxs)("button",{type:"button",onClick:C,className:"flex items-center gap-1 rounded-lg px-2 py-1.5 text-xs text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)]",children:[(0,b.jsx)(r.X,{className:"w-3 h-3"}),"Cancel"]})]})]}),0===g.length?(0,b.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"No folders linked"}):(0,b.jsx)("div",{className:"space-y-2",children:g.slice(0,5).map(a=>(0,b.jsxs)("div",{className:"flex items-center gap-2 text-sm",children:[(0,b.jsx)(n.FolderGit2,{className:"h-4 w-4 shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,b.jsx)("div",{className:"truncate text-[var(--foreground)]",children:a.name}),a.path&&(0,b.jsx)("div",{className:"truncate text-xs text-[var(--muted-foreground)]",children:a.path})]}),(0,b.jsx)("button",{type:"button",onClick:()=>{k(!1),m(a.id),v(a.name),x(a.path??"")},className:"p-1 text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)]","aria-label":`Edit ${a.name}`,children:(0,b.jsx)(o.Pencil,{className:"w-3 h-3"})}),(0,b.jsx)("button",{type:"button",onClick:()=>void F(a.id),className:"p-1 text-[var(--muted-foreground)] transition-colors hover:text-[var(--destructive)]","aria-label":`Delete ${a.name}`,children:(0,b.jsx)(q.Trash2,{className:"w-3 h-3"})})]},a.id))})]})}var u=a.i(489461),v=a.i(769677),w=a.i(599086);let x={on_track:{label:"On Track",dot:"bg-[var(--status-completed)]",badge:"border-[var(--status-completed-border)] bg-[var(--status-completed-bg)] text-[var(--status-completed-text)]"},at_risk:{label:"At Risk",dot:"bg-[var(--status-blocked)]",badge:"border-[var(--status-blocked-border)] bg-[var(--status-blocked-bg)] text-[var(--status-blocked-text)]"},off_track:{label:"Off Track",dot:"bg-[var(--status-failed)]",badge:"border-[var(--status-failed-border)] bg-[var(--status-failed-bg)] text-[var(--status-failed-text)]"},done:{label:"Done",dot:"bg-[var(--muted-foreground)]",badge:"border-[var(--border)] bg-[var(--secondary)] text-[var(--muted-foreground)]"}};function y({objective:a,teamName:c,onClick:d}){let e=x[a.status]??x.on_track,f="done"===a.status;return(0,b.jsxs)("button",{type:"button",onClick:d,className:`w-full rounded-2xl border border-[var(--card-border)] bg-[var(--card-bg)] p-4 text-left transition-colors hover:bg-[var(--secondary)] ${f?"opacity-60":""}`,children:[(0,b.jsxs)("div",{className:"flex items-start justify-between gap-2 mb-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,b.jsx)("span",{className:`h-2 w-2 shrink-0 rounded-full ${e.dot}`}),(0,b.jsx)("span",{className:"truncate text-sm font-medium text-[var(--foreground)]",children:a.title})]}),(0,b.jsx)("span",{className:`shrink-0 rounded-full border px-2 py-0.5 text-[11px] font-medium ${e.badge}`,children:e.label})]}),(0,b.jsx)("div",{className:"mb-2",children:(0,b.jsx)("div",{className:"h-1.5 overflow-hidden rounded-full bg-[var(--muted)]",children:(0,b.jsx)("div",{className:"h-full rounded-full bg-emerald-500/70 transition-all",style:{width:`${Math.min(a.progress,100)}%`}})})}),(0,b.jsxs)("div",{className:"flex items-center justify-between text-xs text-[var(--muted-foreground)]",children:[(0,b.jsxs)("span",{className:c?"":"flex items-center gap-1 text-[var(--status-blocked-text)]",children:[!c&&(0,b.jsx)(w.AlertTriangle,{className:"h-3 w-3"}),c??"No team"]}),(0,b.jsxs)("span",{children:[a.progress,"%"]})]})]})}function z({projectId:a,projectSlug:d}){let f=(0,e.useRouter)(),{projects:g,isLoading:h}=(0,s.useProjects)(),i=(0,c.useMemo)(()=>g.find(a=>a.slug===d),[g,d]),k=(0,c.useMemo)(()=>(0,v.readProjectObjectivesWorkspace)(i?.metadata).objectives,[i?.metadata]),[l,m]=(0,c.useState)([]);(0,c.useEffect)(()=>{fetch(`/api/projects/${a}/teams`).then(a=>a.ok?a.json():{teams:[]}).then(a=>m(a.teams??[])).catch(()=>m([]))},[a]);let n=(0,c.useMemo)(()=>new Map(l.map(a=>[a.id,a.name])),[l]),o=k.filter(a=>a.progress>=100).length;return h?(0,b.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[1,2].map(a=>(0,b.jsx)("div",{className:"h-28 animate-pulse rounded-2xl bg-[var(--muted)]"},a))}):0===k.length?(0,b.jsxs)("button",{type:"button",onClick:()=>f.push(`/projects/${d}/objectives`),className:"w-full rounded-2xl border border-dashed border-[var(--border)] bg-[var(--card-bg)] p-6 text-center transition-colors hover:border-[var(--card-hover-border)] hover:bg-[var(--secondary)]",children:[(0,b.jsx)(u.Target,{className:"mx-auto mb-2 h-5 w-5 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"text-sm text-[var(--muted-foreground)]",children:"Add your first objective"})]}):(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-3 text-xs text-[var(--muted-foreground)]",children:[(0,b.jsxs)("span",{children:[k.length," ",1===k.length?"objective":"objectives"]}),(0,b.jsx)("span",{className:"text-[var(--border)]",children:"|"}),(0,b.jsxs)("span",{children:[o,"/",k.length," complete"]})]}),(0,b.jsxs)("button",{onClick:()=>f.push(`/projects/${d}/objectives`),className:"flex items-center gap-1 text-xs text-[var(--muted-foreground)] transition-colors hover:text-[var(--foreground)]",children:["View all ",(0,b.jsx)(j.ArrowRight,{className:"w-3 h-3"})]})]}),(0,b.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:k.map(a=>(0,b.jsx)(y,{objective:a,teamName:n.get(a.teamId)??null,onClick:()=>f.push(`/projects/${d}/objectives/${encodeURIComponent(a.id)}`)},a.id))})]})}var A=a.i(737313),B=a.i(144462),C=a.i(675665),D=a.i(719550);function E({icon:a,title:c,accentClass:d,onClick:e,badge:f,children:g}){return(0,b.jsxs)("button",{type:"button",onClick:e,className:"w-full rounded-2xl border border-[var(--card-border)] bg-[var(--card-bg)] p-4 text-left transition-colors hover:bg-[var(--secondary)]",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:d,children:a}),(0,b.jsx)("span",{className:"text-sm font-medium text-[var(--foreground)]",children:c})]}),f]}),g&&(0,b.jsx)("div",{className:"text-sm",children:g})]})}function F({projectId:a,projectSlug:d,primaryThreadId:f}){let g=(0,e.useRouter)(),{connected:h,loading:i}=(0,C.useLinearConnection)(),[j,k]=(0,c.useState)(null),[l,m]=(0,c.useState)(0);return(0,c.useEffect)(()=>{let b=!1;return fetch(`/api/threads?projectId=${encodeURIComponent(a)}&limit=3&format=json`).then(a=>a.ok?a.json():{threads:{},total:0}).then(a=>{if(b)return;let c=Object.values(a.threads??{}).flatMap(a=>a.threads??[]).slice(0,3);k(c),m("number"==typeof a.total?a.total:c.length)}).catch(()=>{b||(k([]),m(0))}),()=>{b=!0}},[a]),(0,b.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4",children:[(0,b.jsx)(E,{icon:(0,b.jsx)(A.MessageSquare,{className:"w-4 h-4"}),title:"Chat",accentClass:"text-indigo-400",onClick:()=>{f&&g.push(`/projects/${d}/thread/${encodeURIComponent(f)}`)},badge:l>0?(0,b.jsx)("span",{className:"rounded-full bg-[var(--secondary)] px-2 py-0.5 text-xs text-[var(--muted-foreground)]",children:l}):void 0,children:null===j?(0,b.jsx)("div",{className:"space-y-1.5",children:[1,2].map(a=>(0,b.jsx)("div",{className:"h-5 animate-pulse rounded bg-[var(--muted)]"},a))}):0===j.length?(0,b.jsx)("p",{className:"text-[var(--muted-foreground)]",children:"No threads yet"}):(0,b.jsx)("div",{className:"space-y-1",children:j.map(a=>(0,b.jsxs)("div",{className:"flex items-center gap-2 truncate text-[var(--foreground)]",children:[(0,b.jsx)(A.MessageSquare,{className:"h-3 w-3 shrink-0 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"truncate",children:a.title})]},a.id))})}),(0,b.jsx)(E,{icon:(0,b.jsx)(B.TerminalSquare,{className:"w-4 h-4"}),title:"Terminal",accentClass:"text-emerald-400",onClick:()=>g.push(`/projects/${d}/terminal`),children:(0,b.jsx)("p",{className:"text-[var(--muted-foreground)]",children:"No sessions yet"})}),(0,b.jsx)(E,{icon:(0,b.jsx)(D.LinearIcon,{className:"w-4 h-4"}),title:"Linear",accentClass:"text-blue-400",onClick:()=>g.push(`/projects/${d}/linear`),badge:i?void 0:h?(0,b.jsx)("span",{className:"rounded-full border border-[var(--status-completed-border)] bg-[var(--status-completed-bg)] px-2 py-0.5 text-[11px] text-[var(--status-completed-text)]",children:"Connected"}):(0,b.jsx)("span",{className:"rounded-full border border-[var(--border)] bg-[var(--secondary)] px-2 py-0.5 text-[11px] text-[var(--muted-foreground)]",children:"Connect"}),children:!i&&!h&&(0,b.jsx)("p",{className:"text-[var(--muted-foreground)]",children:"Connect to see issues"})})]})}function G({projectId:a,projectSlug:c,projectName:d,projectDescription:f,projectMetadata:h,repos:j,threadIds:l}){let n=(0,e.useRouter)(),o=l[0]??null;return(0,b.jsx)("div",{className:"h-full overflow-y-auto",children:(0,b.jsxs)("div",{className:"max-w-5xl mx-auto px-6 py-8 space-y-8",children:[f&&(0,b.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:f}),(0,b.jsxs)("section",{children:[(0,b.jsx)("h2",{className:"mb-3 text-sm text-[var(--muted-foreground)]",children:"What you're working toward"}),(0,b.jsx)(z,{projectId:a,projectSlug:c})]}),(0,b.jsxs)("section",{children:[(0,b.jsx)("h2",{className:"mb-3 text-sm text-[var(--muted-foreground)]",children:"Start working"}),(0,b.jsx)(F,{projectId:a,projectSlug:c,primaryThreadId:o})]}),(0,b.jsxs)("section",{children:[(0,b.jsx)("h2",{className:"mb-3 text-sm text-[var(--muted-foreground)]",children:"What's happening now"}),(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsx)(m,{projectId:a,projectSlug:c,onViewAll:()=>n.push(`/projects/${c}/automations`)}),(0,b.jsx)(g,{projectSlug:c,projectThreadIds:l}),(0,b.jsx)(i,{projectId:a,projectSlug:c,projectThreadIds:l})]})]}),(0,b.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[(0,b.jsx)(t,{projectId:a,repos:j}),(0,b.jsx)(k,{projectId:a,onViewAll:()=>n.push(`/projects/${c}/teams`)})]})]})})}var H=a.i(53954);a.s(["default",0,function({params:a}){let{slug:e}=(0,c.use)(a),{projects:f}=(0,s.useProjectsWithAgents)(),g=f.find(a=>a.slug===e),[h,i]=(0,c.useState)("loading");return((0,c.useEffect)(()=>{if(!g)return;let a=!1;return(async()=>{try{let b=await fetch(`/api/projects/${g.id}/teams`,{cache:"no-store"});if(a)return;let c=b.ok?await b.json():{teams:[]},d=Array.isArray(c?.teams)?c.teams:[];i(0===d.length?"empty":"has-teams")}catch{a||i("has-teams")}})(),()=>{a=!0}},[g]),g)?"empty"===h?(0,b.jsx)(H.EmptyStateCard,{icon:(0,b.jsx)(d.Users,{className:"w-6 h-6 text-[var(--foreground)]"}),title:`Add a team to ${g.name}`,description:"Teams give your project the agents that will actually do the work. Add one to get started.",ctaLabel:"Add a team",ctaHref:`/projects/${g.slug}/teams/new`}):(0,b.jsx)(G,{projectId:g.id,projectSlug:g.slug,projectName:g.name,projectDescription:g.description,projectMetadata:g.metadata,repos:g.repos,threadIds:g.thread_ids}):(0,b.jsx)("div",{className:"flex items-center justify-center h-full text-sm text-zinc-500",children:"Loading project..."})}],143159)}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=apps_local_app_projects_%5Bslug%5D_page_tsx_0kcaeqi._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[165116,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(935112),e=a.i(50944),f=a.i(238246),g=a.i(654340),h=a.i(328400),i=a.i(701065),j=a.i(756490),k=a.i(820859),l=a.i(517259),m=a.i(438311),n=a.i(340492),o=a.i(316099),p=a.i(737313),q=a.i(667597),r=a.i(864061),s=a.i(675222),t=a.i(724938),u=a.i(489461),v=a.i(985339),w=a.i(66456),x=a.i(8e4),y=a.i(830284),z=a.i(475632),A=a.i(86007);a.s(["default",0,function({params:a}){let{slug:B,teamId:C,agentId:D}=(0,c.use)(a),E=(0,e.useRouter)(),{projects:F}=(0,y.useProjectsWithAgents)(),G=F.find(a=>a.slug===B),[H,I]=(0,c.useState)(null),[J,K]=(0,c.useState)([]),[L,M]=(0,c.useState)(null),[N,O]=(0,c.useState)(null),[P,Q]=(0,c.useState)(null),[R,S]=(0,c.useState)([]),[T,U]=(0,c.useState)({total_messages:0,threads_participated:0}),[V,W]=(0,c.useState)(!0),[X,Y]=(0,c.useState)("feed"),[Z,$]=(0,c.useState)(!1),[_,aa]=(0,c.useState)([]),ab=(0,c.useCallback)(async()=>{if(G)try{let[a,b,c,d]=await Promise.all([fetch("/api/participants").then(a=>a.json()),fetch(`/api/agents/${D}/profile`).then(a=>a.ok?a.json():null),fetch(`/api/agents/${D}/messages`).then(a=>a.ok?a.json():null),fetch(`/api/projects/${G.id}/teams/${C}`).then(a=>a.ok?a.json():null)]),e=Array.isArray(a)?a:a.participants??[];K(e),I(e.find(a=>a.id===D)??null),Q(b),S(c?.messages??[]),U(c?.stats??{total_messages:0,threads_participated:0}),d?.team&&(M(d.team),O(d.team.agents?.find(a=>a.agent_id===D)??null))}catch{}finally{W(!1)}},[G,D,C]);(0,c.useEffect)(()=>{ab()},[ab]),(0,c.useEffect)(()=>{let a=async()=>{try{let a=await fetch("/api/processes?enrich=1");if(!a.ok)return;let b=await a.json();aa(b.filter(a=>a.agentId===D&&("spawning"===a.state||"running"===a.state)))}catch{}};a();let b=setInterval(a,3e3);return()=>clearInterval(b)},[D]);let[ac,ad]=(0,c.useState)(null);if((0,c.useEffect)(()=>{ad(document.getElementById("topbar-breadcrumb"))},[]),V||!G)return(0,b.jsx)("div",{className:"flex items-center justify-center h-full text-[var(--muted-foreground)] text-sm",children:(0,b.jsx)("div",{className:"animate-pulse",children:"Loading agent..."})});if(!H)return(0,b.jsxs)("div",{className:"flex flex-col items-center justify-center h-full gap-4",children:[(0,b.jsx)("p",{className:"text-[var(--muted-foreground)]",children:"Agent not found"}),(0,b.jsx)("button",{onClick:()=>E.push(`/projects/${B}/teams/${C}`),className:"text-sm text-blue-600 hover:underline",children:"Back to team"})]});let ae=H.color||"#D97706",af=P?.self||"",ag=(0,z.stripMarkers)(af),ah=H.identity||"",ai=(0,z.stripMarkers)(ah),aj=P?.journal??[],ak=aj.filter(a=>"reflection"===a.type),al=P?.inspectability,am=al?.knowledge.agent.portableSkills??[],an=al?.knowledge.agent.learnedMemories??[],ao=al?.evidence,ap=R.map(a=>({...a,content:(0,z.stripMarkers)(a.content)})).filter(a=>a.content.length>0),aq=new Map;for(let a of J)aq.set(a.id,a);let ar=a=>{let b=new Date(a),c=Math.floor((Date.now()-b.getTime())/6e4);if(c<1)return"just now";if(c<60)return`${c}m ago`;let d=Math.floor(c/60);if(d<24)return`${d}h ago`;let e=Math.floor(d/24);return e<7?`${e}d ago`:new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric"}).format(b)},as=a=>{let b=new Date(a);return new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"}).format(b)},at=[{label:"Messages",value:T.total_messages.toLocaleString(),icon:p.MessageSquare},{label:"Threads",value:String(T.threads_participated),icon:o.Hash},{label:"Journal Entries",value:String(aj.length),icon:h.BookOpen}];return(0,b.jsxs)("div",{className:"h-full overflow-y-auto",children:[ac&&(0,d.createPortal)((0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:"\\"}),(0,b.jsx)("button",{onClick:()=>E.push(`/projects/${B}/teams/${C}`),className:"text-xs text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",children:L?.name??"Team"}),(0,b.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:"\\"}),(0,b.jsx)("span",{className:"text-xs text-[var(--foreground)]",children:H.name})]}),ac),(0,b.jsxs)("main",{className:"max-w-7xl mx-auto p-4 md:p-8 grid grid-cols-1 lg:grid-cols-12 gap-8",children:[(0,b.jsxs)("div",{className:"lg:col-span-4 space-y-6",children:[(0,b.jsxs)("div",{className:"bg-[var(--card-bg)] rounded-3xl border border-[var(--border)] shadow-xl shadow-black/5 overflow-hidden",children:[(0,b.jsx)("div",{className:"h-32 w-full relative",style:{background:`linear-gradient(135deg, ${ae} 0%, ${ae}99 100%)`},children:(0,b.jsx)("div",{className:"absolute inset-0 opacity-20 bg-[radial-gradient(#fff_1px,transparent_1px)] [background-size:16px_16px]"})}),(0,b.jsxs)("div",{className:"px-6 pb-6 text-center -mt-16 relative",children:[(0,b.jsxs)("div",{className:"inline-block relative",children:[(0,b.jsx)("img",{alt:H.name,className:"w-32 h-32 rounded-3xl bg-[var(--card-bg)] p-2 border-4 border-[var(--card-bg)] shadow-xl",src:(0,x.agentAvatarUrl)(H.id,128,H.color)}),(0,b.jsx)("div",{className:"absolute bottom-2 right-2 w-6 h-6 bg-green-500 border-4 border-[var(--card-bg)] rounded-full"})]}),(0,b.jsxs)("div",{className:"mt-4 space-y-1",children:[(0,b.jsxs)("div",{className:"flex items-center justify-center gap-2",children:[(0,b.jsx)("h1",{className:"text-2xl font-black tracking-tight",children:H.name}),(0,b.jsx)("span",{className:"px-2 py-0.5 rounded-full text-[10px] font-bold uppercase tracking-wider",style:{backgroundColor:`${ae}20`,color:ae},children:H.provider})]}),(0,b.jsx)("p",{className:"text-[var(--muted-foreground)] font-mono text-xs",children:H.model})]}),N&&(0,b.jsx)("div",{className:"mt-4",children:(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 px-3 py-1.5 rounded-full bg-[var(--primary)]/10 border border-[var(--primary)]/20 text-xs font-medium text-[var(--primary)]",children:[(0,b.jsx)(v.Users,{className:"w-3.5 h-3.5"}),N.role_key," in ",L?.name]})}),(0,b.jsxs)("div",{className:"flex flex-wrap justify-center gap-2 mt-4",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5 px-3 py-1.5 rounded-full bg-[var(--app-shell-subtle)] border border-[var(--border)] text-xs font-medium text-[var(--muted-foreground)]",children:[(0,b.jsx)(l.Cpu,{className:"w-3.5 h-3.5"}),H.model]}),(0,b.jsxs)("div",{className:`flex items-center gap-1.5 px-3 py-1.5 rounded-full border text-xs font-medium ${_.length>0?"bg-green-50 border-green-200 text-green-700":"bg-[var(--app-shell-subtle)] border-[var(--border)] text-[var(--muted-foreground)]"}`,children:[(0,b.jsx)(g.Activity,{className:`w-3.5 h-3.5 ${_.length>0?"animate-pulse":""}`}),_.length>0?"Working":"Idle"]})]}),(0,b.jsx)("div",{className:"grid grid-cols-3 gap-3 mt-8",children:at.map((a,c)=>(0,b.jsxs)("div",{className:"bg-[var(--app-shell-subtle)] p-3 rounded-2xl border border-[var(--border)] text-left",children:[(0,b.jsx)(a.icon,{className:"w-4 h-4 text-[var(--muted-foreground)] mb-1"}),(0,b.jsx)("div",{className:"text-lg font-bold text-[var(--foreground)]",children:a.value}),(0,b.jsx)("div",{className:"text-[10px] uppercase font-bold text-[var(--muted-foreground)] tracking-wider",children:a.label})]},c))})]})]}),(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)("div",{className:"bg-[var(--card-bg)] rounded-2xl border border-[var(--border)] p-5",children:[(0,b.jsxs)("h3",{className:"text-[11px] font-black text-[var(--muted-foreground)] uppercase tracking-[0.2em] mb-4 flex items-center gap-2",children:[(0,b.jsx)(w.Zap,{className:"w-3.5 h-3.5"})," Actions"]}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>$(!0),className:"flex-1 flex items-center justify-center gap-2 px-3 py-2.5 text-sm font-medium text-[var(--foreground)] bg-[var(--app-shell-subtle)] border border-[var(--border)] rounded-xl hover:bg-[var(--muted)] transition-all",children:[(0,b.jsx)(q.Pencil,{className:"w-3.5 h-3.5"}),"Edit"]}),(0,b.jsxs)("button",{type:"button",onClick:async()=>{let a=await fetch("/api/agents/export",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentIds:[H.id]})});if(!a.ok)return;let b=await a.json(),c=new Blob([JSON.stringify({version:1,exportedAt:new Date().toISOString(),agents:b.agents,projects:[]},null,2)],{type:"application/json"}),d=URL.createObjectURL(c),e=document.createElement("a");e.href=d,e.download=`${H.name.toLowerCase().replace(/\s+/g,"-")}.agent.json`,e.click(),URL.revokeObjectURL(d)},className:"flex-1 flex items-center justify-center gap-2 px-3 py-2.5 text-sm font-medium text-[var(--foreground)] bg-[var(--app-shell-subtle)] border border-[var(--border)] rounded-xl hover:bg-[var(--muted)] transition-all",children:[(0,b.jsx)(n.Download,{className:"w-3.5 h-3.5"}),"Export"]})]})]}),_.length>0&&(0,b.jsxs)("div",{className:"bg-[var(--card-bg)] rounded-2xl border border-green-200 ring-1 ring-green-100 p-5",children:[(0,b.jsxs)("h3",{className:"text-[11px] font-black text-green-600 uppercase tracking-[0.2em] mb-4 flex items-center gap-2",children:[(0,b.jsx)(g.Activity,{className:"w-3.5 h-3.5 animate-pulse"})," Working Now"]}),(0,b.jsx)("div",{className:"flex flex-col gap-2",children:_.map(a=>(0,b.jsxs)("div",{className:"flex items-center gap-3 p-2.5 rounded-xl bg-green-50 border border-green-100",children:[(0,b.jsx)("div",{className:"w-2 h-2 rounded-full bg-green-500 animate-pulse shrink-0"}),(0,b.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,b.jsx)("div",{className:"text-xs font-medium text-[var(--foreground)] truncate",children:a.threadId?(0,b.jsxs)("span",{className:"flex items-center gap-1",children:[(0,b.jsx)(o.Hash,{className:"w-3 h-3 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"truncate",children:a.threadTitle||a.threadId.substring(0,12)+"..."})]}):(0,b.jsx)("span",{children:"Main thread"})}),(0,b.jsx)("div",{className:"text-[10px] text-[var(--muted-foreground)] capitalize",children:a.state})]})]},`${a.workspaceId}-${a.threadId}`))})]}),H.skills&&H.skills.length>0&&(0,b.jsxs)("div",{className:"bg-[var(--card-bg)] rounded-2xl border border-[var(--border)] p-5",children:[(0,b.jsxs)("h3",{className:"text-[11px] font-black text-[var(--muted-foreground)] uppercase tracking-[0.2em] mb-4 flex items-center gap-2",children:[(0,b.jsx)(i.BrainCircuit,{className:"w-3.5 h-3.5"})," Portable Knowledge"]}),(0,b.jsx)("div",{className:"flex flex-col gap-2",children:H.skills.map((a,c)=>(0,b.jsxs)("div",{className:"flex items-center gap-2 text-xs p-2 hover:bg-[var(--app-shell-subtle)] rounded-lg transition-colors",children:[(0,b.jsx)(w.Zap,{size:10,className:"text-blue-500 shrink-0"}),(0,b.jsx)("span",{className:"text-blue-600 font-mono truncate",title:a.file,children:a.file.split("/").pop()}),a.condition&&(0,b.jsx)("span",{className:"text-[var(--muted-foreground)] text-[10px] ml-auto shrink-0",children:a.condition})]},c))})]}),(0,b.jsxs)("div",{className:"bg-[var(--card-bg)] rounded-2xl border border-[var(--border)] p-5",children:[(0,b.jsxs)("h3",{className:"text-[11px] font-black text-[var(--muted-foreground)] uppercase tracking-[0.2em] mb-4 flex items-center gap-2",children:[(0,b.jsx)(s.ShieldCheck,{className:"w-3.5 h-3.5"})," Details"]}),(0,b.jsxs)("div",{className:"space-y-3 text-xs",children:[(0,b.jsxs)("div",{className:"flex justify-between",children:[(0,b.jsx)("span",{className:"text-[var(--muted-foreground)]",children:"ID"}),(0,b.jsx)("span",{className:"font-mono bg-[var(--app-shell-subtle)] px-1.5 py-0.5 rounded",children:H.id})]}),(0,b.jsxs)("div",{className:"flex justify-between",children:[(0,b.jsx)("span",{className:"text-[var(--muted-foreground)]",children:"Provider"}),(0,b.jsx)("span",{className:"font-medium capitalize",children:H.provider})]}),(0,b.jsxs)("div",{className:"flex justify-between",children:[(0,b.jsx)("span",{className:"text-[var(--muted-foreground)]",children:"Model"}),(0,b.jsx)("span",{className:"font-mono",children:H.model})]}),P?.identity?.voice?(0,b.jsxs)("div",{className:"flex justify-between",children:[(0,b.jsx)("span",{className:"text-[var(--muted-foreground)]",children:"Voice"}),(0,b.jsx)("span",{className:"font-medium",children:String(P.identity.voice)})]}):null,(0,b.jsxs)("div",{className:"flex justify-between items-center",children:[(0,b.jsx)("span",{className:"text-[var(--muted-foreground)]",children:"Color"}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("div",{className:"w-3 h-3 rounded-full border border-[var(--border)]",style:{backgroundColor:H.color}}),(0,b.jsx)("span",{className:"font-mono",children:H.color})]})]}),N&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"flex justify-between",children:[(0,b.jsx)("span",{className:"text-[var(--muted-foreground)]",children:"Role"}),(0,b.jsx)("span",{className:"font-medium",children:N.role_key})]}),(0,b.jsxs)("div",{className:"flex justify-between",children:[(0,b.jsx)("span",{className:"text-[var(--muted-foreground)]",children:"Routing Order"}),(0,b.jsxs)("span",{className:"font-mono",children:["#",N.routing_order]})]})]}),P?.selfDerivedAt&&(0,b.jsxs)("div",{className:"flex justify-between",children:[(0,b.jsx)("span",{className:"text-[var(--muted-foreground)]",children:"Last Evolved"}),(0,b.jsx)("span",{className:"text-[var(--muted-foreground)]",children:ar(P.selfDerivedAt)})]})]})]})]})]}),(0,b.jsxs)("div",{className:"lg:col-span-8 space-y-6",children:[(0,b.jsx)("div",{className:"bg-[var(--card-bg)] p-1 rounded-2xl border border-[var(--border)] flex shadow-sm",children:[{key:"inspect",label:"Inspect",icon:s.ShieldCheck},{key:"feed",label:"Feed",icon:p.MessageSquare},{key:"reflections",label:"Reflections",icon:t.Sparkles}].map(a=>(0,b.jsxs)("button",{onClick:()=>Y(a.key),className:`flex-1 flex items-center justify-center gap-2 py-3 rounded-xl text-sm font-bold transition-all ${X===a.key?"bg-[var(--foreground)] text-[var(--background)] shadow-lg shadow-black/5":"text-[var(--muted-foreground)] hover:text-[var(--foreground)]"}`,children:[(0,b.jsx)(a.icon,{className:"w-4 h-4"}),a.label]},a.key))}),(0,b.jsxs)("div",{className:"min-h-[600px]",children:["inspect"===X&&(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)("div",{className:"grid grid-cols-1 xl:grid-cols-2 gap-4",children:[(0,b.jsxs)("section",{className:"bg-[var(--card-bg)] rounded-3xl border border-[var(--border)] p-6 shadow-sm",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,b.jsxs)("h2",{className:"text-xs font-black text-[var(--muted-foreground)] uppercase tracking-[0.2em] flex items-center gap-2",children:[(0,b.jsx)(h.BookOpen,{className:"w-4 h-4"})," Identity"]}),(0,b.jsx)("span",{className:"text-[10px] font-black uppercase px-2 py-0.5 rounded bg-emerald-50 text-emerald-700",children:"Human-authored"})]}),(0,b.jsx)("p",{className:"text-sm text-[var(--muted-foreground)] leading-relaxed",children:"Canonical self-definition. The system can read this, but should not edit it."}),(0,b.jsxs)("div",{className:"mt-4 grid grid-cols-1 md:grid-cols-2 gap-3 text-xs",children:[(0,b.jsxs)("div",{className:"rounded-2xl bg-[var(--app-shell-subtle)] border border-[var(--border)] p-3",children:[(0,b.jsx)("div",{className:"text-[10px] font-black uppercase tracking-wider text-[var(--muted-foreground)]",children:"Voice"}),(0,b.jsx)("p",{className:"mt-1 text-[var(--foreground)]",children:String(P?.identity?.voice??"Not set")})]}),(0,b.jsxs)("div",{className:"rounded-2xl bg-[var(--app-shell-subtle)] border border-[var(--border)] p-3",children:[(0,b.jsx)("div",{className:"text-[10px] font-black uppercase tracking-wider text-[var(--muted-foreground)]",children:"Seed"}),(0,b.jsx)("p",{className:"mt-1 text-[var(--foreground)]",children:String(P?.identity?.seed??"Not set")})]})]}),al?.identity.sources?.length?(0,b.jsxs)("div",{className:"mt-4",children:[(0,b.jsx)("div",{className:"text-[10px] font-black uppercase tracking-wider text-[var(--muted-foreground)] mb-2",children:"Sources"}),(0,b.jsx)("div",{className:"flex flex-wrap gap-2",children:al.identity.sources.map(a=>(0,b.jsx)("span",{className:"px-2 py-1 rounded-full bg-[var(--muted)] text-[11px] font-medium text-[var(--muted-foreground)]",children:a},a))})]}):null]}),(0,b.jsxs)("section",{className:"bg-[var(--card-bg)] rounded-3xl border border-amber-100 ring-1 ring-amber-200 p-6 shadow-sm",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,b.jsxs)("h2",{className:"text-xs font-black text-[var(--muted-foreground)] uppercase tracking-[0.2em] flex items-center gap-2",children:[(0,b.jsx)(t.Sparkles,{className:"w-4 h-4"})," Self-Model"]}),(0,b.jsx)("span",{className:"text-[10px] font-black uppercase px-2 py-0.5 rounded bg-amber-100 text-amber-700",children:"System-derived"})]}),(0,b.jsx)("p",{className:"text-sm text-[var(--muted-foreground)] leading-relaxed",children:"Reflective specialization model."}),ag?(0,b.jsx)("div",{className:"mt-4 text-sm text-[var(--foreground)] leading-relaxed prose prose-sm prose-slate max-w-none",children:(0,b.jsx)(A.Markdown,{content:ag})}):(0,b.jsx)("p",{className:"mt-4 text-sm text-[var(--muted-foreground)]",children:"No self-model yet."}),(0,b.jsxs)("div",{className:"mt-4 flex flex-wrap gap-2",children:[P?.selfVersion?(0,b.jsxs)("span",{className:"px-2 py-1 rounded-full bg-amber-50 text-[11px] font-medium text-amber-700",children:["v",P.selfVersion]}):null,P?.selfDerivedAt?(0,b.jsx)("span",{className:"px-2 py-1 rounded-full bg-[var(--muted)] text-[11px] font-medium text-[var(--muted-foreground)]",children:ar(P.selfDerivedAt)}):null,al?.selfModel.sources?.map(a=>(0,b.jsx)("span",{className:"px-2 py-1 rounded-full bg-[var(--muted)] text-[11px] font-medium text-[var(--muted-foreground)]",children:a},a))]})]})]}),(0,b.jsxs)("section",{className:"bg-[var(--card-bg)] rounded-3xl border border-[var(--border)] p-6 shadow-sm",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,b.jsxs)("h2",{className:"text-xs font-black text-[var(--muted-foreground)] uppercase tracking-[0.2em] flex items-center gap-2",children:[(0,b.jsx)(i.BrainCircuit,{className:"w-4 h-4"})," Agent Knowledge"]}),(0,b.jsxs)("span",{className:"text-xs text-[var(--muted-foreground)]",children:[am.length+an.length," items"]})]}),(0,b.jsxs)("div",{className:"grid grid-cols-1 xl:grid-cols-2 gap-6",children:[(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,b.jsx)("div",{className:"text-[10px] font-black uppercase tracking-wider text-[var(--muted-foreground)]",children:"Portable Knowledge"}),(0,b.jsx)("span",{className:"text-[10px] text-[var(--muted-foreground)]",children:"Human-authored"})]}),0===am.length?(0,b.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"No portable knowledge attached."}):(0,b.jsx)("div",{className:"space-y-2",children:am.map(a=>(0,b.jsxs)("div",{className:"rounded-2xl border border-[var(--border)] bg-[var(--app-shell-subtle)] p-3",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,b.jsx)("span",{className:"font-mono text-xs text-[var(--foreground)] truncate",title:a.file,children:a.file}),(0,b.jsx)("span",{className:"text-[10px] font-medium text-[var(--muted-foreground)] shrink-0",children:a.form})]}),a.condition?(0,b.jsxs)("p",{className:"mt-2 text-xs text-[var(--muted-foreground)]",children:["Use when: ",a.condition]}):null]},`${a.file}:${a.condition}`))})]}),(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,b.jsx)("div",{className:"text-[10px] font-black uppercase tracking-wider text-[var(--muted-foreground)]",children:"Derived Knowledge Candidates"}),(0,b.jsx)("span",{className:"text-[10px] text-[var(--muted-foreground)]",children:"System-derived"})]}),0===an.length?(0,b.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"No extracted learnings yet."}):(0,b.jsx)("div",{className:"space-y-2",children:an.map(a=>(0,b.jsxs)("div",{className:"rounded-2xl border border-[var(--border)] bg-[var(--app-shell-subtle)] p-3",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,b.jsx)("span",{className:"text-[10px] font-black uppercase tracking-wider text-[var(--muted-foreground)]",children:a.type}),(0,b.jsx)("span",{className:"text-[10px] text-[var(--muted-foreground)]",children:ar(a.createdAt)})]}),(0,b.jsx)("p",{className:"mt-2 text-sm text-[var(--foreground)] leading-relaxed",children:a.content}),(0,b.jsxs)("div",{className:"mt-2 text-[10px] text-[var(--muted-foreground)] font-mono",children:["task ",a.taskId]})]},a.id))})]})]})]}),(0,b.jsxs)("section",{className:"bg-[var(--card-bg)] rounded-3xl border border-[var(--border)] p-6 shadow-sm",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,b.jsxs)("h2",{className:"text-xs font-black text-[var(--muted-foreground)] uppercase tracking-[0.2em] flex items-center gap-2",children:[(0,b.jsx)(g.Activity,{className:"w-4 h-4"})," Evidence"]}),(0,b.jsx)("span",{className:"text-[10px] font-black uppercase px-2 py-0.5 rounded bg-[var(--muted)] text-[var(--muted-foreground)]",children:"Non-canonical"})]}),(0,b.jsx)("p",{className:"text-sm text-[var(--muted-foreground)] leading-relaxed mb-4",children:"Raw and semi-structured traces that support reflection and learning."}),(0,b.jsx)("div",{className:"grid grid-cols-2 xl:grid-cols-4 gap-3",children:[{label:"Journal",value:ao?.journalEntries??aj.length},{label:"Activity",value:ao?.activityEvents??P?.activity?.length??0},{label:"Reactions",value:ao?.reactions??0},{label:"Comments",value:ao?.comments??0}].map(a=>(0,b.jsxs)("div",{className:"rounded-2xl bg-[var(--app-shell-subtle)] border border-[var(--border)] p-4",children:[(0,b.jsx)("div",{className:"text-lg font-bold text-[var(--foreground)]",children:a.value}),(0,b.jsx)("div",{className:"text-[10px] font-black uppercase tracking-wider text-[var(--muted-foreground)]",children:a.label})]},a.label))})]})]}),"feed"===X&&(0,b.jsxs)("div",{className:"space-y-4",children:[ag||ai||P?.identity?.seed?(0,b.jsx)("div",{className:"bg-[var(--card-bg)] rounded-3xl border border-[var(--border)] p-6 shadow-sm",children:ag?(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,b.jsxs)("h2",{className:"text-xs font-black text-[var(--muted-foreground)] uppercase tracking-[0.2em] flex items-center gap-2",children:[(0,b.jsx)(u.Target,{className:"w-4 h-4"})," Self-Model"]}),P?.selfDerivedAt&&(0,b.jsxs)("span",{className:"text-[10px] text-[var(--muted-foreground)] flex items-center gap-1",children:[(0,b.jsx)(r.RefreshCw,{className:"w-3 h-3"}),"v",P.selfVersion," — ",ar(P.selfDerivedAt)]})]}),(0,b.jsx)("div",{className:"text-sm text-[var(--foreground)] leading-relaxed prose prose-sm prose-slate max-w-none",children:(0,b.jsx)(A.Markdown,{content:ag})})]}):ai?(0,b.jsxs)("div",{children:[(0,b.jsxs)("h2",{className:"text-xs font-black text-[var(--muted-foreground)] uppercase tracking-[0.2em] flex items-center gap-2 mb-4",children:[(0,b.jsx)(u.Target,{className:"w-4 h-4"})," Identity"]}),(0,b.jsx)("div",{className:"text-sm text-[var(--foreground)] leading-relaxed prose prose-sm prose-slate max-w-none",children:(0,b.jsx)(A.Markdown,{content:ai})})]}):P?.identity?.seed?(0,b.jsxs)("div",{children:[(0,b.jsxs)("h2",{className:"text-xs font-black text-[var(--muted-foreground)] uppercase tracking-[0.2em] flex items-center gap-2 mb-4",children:[(0,b.jsx)(u.Target,{className:"w-4 h-4"})," Identity Seed"]}),(0,b.jsxs)("p",{className:"text-sm text-[var(--muted-foreground)] italic border-l-4 pl-4",style:{borderColor:ae},children:["“",String(P.identity.seed),"”"]})]}):null}):null,(0,b.jsxs)("div",{className:"flex items-center justify-between px-2",children:[(0,b.jsxs)("h2",{className:"text-xs font-black text-[var(--muted-foreground)] uppercase tracking-[0.2em] flex items-center gap-2",children:[(0,b.jsx)(p.MessageSquare,{className:"w-4 h-4"})," Messages"]}),(0,b.jsxs)("span",{className:"text-xs text-[var(--muted-foreground)]",children:[ap.length," messages"]})]}),0===ap.length?(0,b.jsxs)("div",{className:"bg-[var(--card-bg)] rounded-3xl border border-[var(--border)] p-12 text-center",children:[(0,b.jsx)(p.MessageSquare,{size:32,className:"mx-auto mb-3 text-[var(--muted-foreground)]"}),(0,b.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"No messages yet"}),(0,b.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] mt-1",children:"Messages will appear here as this agent participates in threads"})]}):ap.map(a=>{var c,d;let e=a.prevContent?(0,z.stripMarkers)(a.prevContent):null,g=(c=a.prevParticipantId)?aq.get(c)?.name??c:"You",h=(d=a.prevParticipantId)?aq.get(d)?.color??"#94a3b8":"#6366f1",i=a.threadTitle?(0,z.stripMarkers)(a.threadTitle):null;return(0,b.jsx)("article",{className:"bg-[var(--card-bg)] rounded-3xl border border-[var(--border)] p-6 hover:shadow-xl hover:shadow-black/5 transition-all group",children:(0,b.jsxs)("div",{className:"flex items-start gap-4",children:[(0,b.jsx)("img",{src:(0,x.agentAvatarUrl)(H.id,40,H.color),alt:"",className:"w-10 h-10 rounded-2xl shrink-0 mt-0.5 shadow-sm"}),(0,b.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,b.jsx)("div",{className:"flex items-center justify-between mb-1",children:(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"font-bold text-[var(--foreground)]",children:H.name}),(0,b.jsxs)("span",{className:"text-xs text-[var(--muted-foreground)]",children:["• ",ar(a.timestamp)]})]})}),a.rootMessageId&&i&&(0,b.jsxs)(f.default,{href:`/projects/${B}/thread/${a.threadId}`,className:"inline-flex items-center gap-1.5 mb-3 px-2.5 py-1 rounded-lg bg-[var(--app-shell-subtle)] border border-[var(--border)] hover:bg-[var(--muted)] transition-colors text-[11px] font-medium text-[var(--muted-foreground)] hover:text-[var(--foreground)]",children:[(0,b.jsx)(o.Hash,{className:"w-3 h-3"}),(0,b.jsx)("span",{className:"truncate max-w-[300px]",children:i}),(0,b.jsx)(j.ChevronRight,{className:"w-3 h-3"})]}),e&&(0,b.jsxs)("div",{className:"mb-3 flex items-start gap-2 pl-1",children:[(0,b.jsx)(m.CornerDownRight,{className:"w-3.5 h-3.5 text-[var(--muted-foreground)] shrink-0 mt-1"}),(0,b.jsxs)("div",{className:"flex-1 min-w-0 p-2.5 rounded-xl bg-[var(--app-shell-subtle)] border border-[var(--border)]",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5 mb-1",children:[a.prevParticipantId&&(0,b.jsx)("img",{src:(0,x.agentAvatarUrl)(a.prevParticipantId,16,h),alt:"",className:"w-4 h-4 rounded"}),(0,b.jsx)("span",{className:"text-[10px] font-bold",style:{color:h},children:g})]}),(0,b.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] leading-relaxed line-clamp-2",children:e})]})]}),(0,b.jsx)("div",{className:"text-sm text-[var(--foreground)]",children:(0,b.jsx)(A.Markdown,{content:a.content})}),(0,b.jsxs)("div",{className:"mt-3 flex items-center gap-1.5 text-[10px] text-[var(--muted-foreground)] font-medium",children:[(0,b.jsx)(k.Clock,{className:"w-3 h-3"}),as(a.timestamp)]})]})]})},a.id)})]}),"reflections"===X&&(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between px-2",children:[(0,b.jsxs)("h2",{className:"text-xs font-black text-[var(--muted-foreground)] uppercase tracking-[0.2em] flex items-center gap-2",children:[(0,b.jsx)(h.BookOpen,{className:"w-4 h-4"})," Journal Reflections"]}),(0,b.jsxs)("span",{className:"text-xs text-[var(--muted-foreground)]",children:[ak.length," reflections"]})]}),0===ak.length?(0,b.jsxs)("div",{className:"bg-[var(--card-bg)] rounded-3xl border border-[var(--border)] p-12 text-center",children:[(0,b.jsx)(t.Sparkles,{size:32,className:"mx-auto mb-3 text-[var(--muted-foreground)]"}),(0,b.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"No reflections yet"}),(0,b.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] mt-1",children:"Reflections will appear as this agent evolves its self-model"})]}):ak.map((a,c)=>{let d=a.body?(0,z.stripMarkers)(a.body):"";return(0,b.jsx)("article",{className:"bg-[var(--card-bg)] rounded-3xl border border-amber-100 ring-1 ring-amber-200 p-6 hover:shadow-xl hover:shadow-black/5 transition-all group",children:(0,b.jsxs)("div",{className:"flex items-start gap-4",children:[(0,b.jsxs)("div",{className:"relative shrink-0",children:[(0,b.jsx)("img",{alt:"",className:"w-10 h-10 rounded-2xl shadow-sm",src:(0,x.agentAvatarUrl)(H.id,40,H.color)}),(0,b.jsx)("div",{className:"absolute -top-1 -right-1 w-4 h-4 rounded-full flex items-center justify-center border-2 border-[var(--card-bg)]",style:{backgroundColor:ae},children:(0,b.jsx)(t.Sparkles,{className:"w-2 h-2 text-white"})})]}),(0,b.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between mb-1",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"font-bold text-[var(--foreground)]",children:H.name}),(0,b.jsx)("span",{className:"text-[10px] font-black uppercase px-2 py-0.5 rounded bg-amber-100 text-amber-700",children:"reflection"}),(0,b.jsxs)("span",{className:"text-xs text-[var(--muted-foreground)]",children:["• ",ar(a.t)]})]}),a.selfVersion&&(0,b.jsxs)("span",{className:"text-[10px] text-[var(--muted-foreground)] font-mono",children:["v",a.selfVersion]})]}),a.observation&&(0,b.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] mb-3",children:a.observation}),d&&(0,b.jsx)("div",{className:"text-sm text-[var(--foreground)] leading-relaxed prose prose-sm prose-slate max-w-none",children:(0,b.jsx)(A.Markdown,{content:d})}),(a.judgement||a.delta||a.intent)&&(0,b.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3 mt-4 pt-4 border-t border-[var(--border)]",children:[a.judgement&&(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)("div",{className:"text-[10px] font-black text-[var(--muted-foreground)] uppercase tracking-wider",children:"Judgment"}),(0,b.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] leading-relaxed",children:a.judgement})]}),a.delta&&(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)("div",{className:"text-[10px] font-black text-[var(--muted-foreground)] uppercase tracking-wider",children:"Delta"}),(0,b.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] leading-relaxed",children:a.delta})]}),a.intent&&(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)("div",{className:"text-[10px] font-black text-[var(--muted-foreground)] uppercase tracking-wider",children:"Intent"}),(0,b.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] leading-relaxed",children:a.intent})]})]}),(0,b.jsxs)("div",{className:"mt-4 flex items-center justify-between",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5 text-[10px] text-[var(--muted-foreground)] font-medium",children:[(0,b.jsx)(k.Clock,{className:"w-3 h-3"}),as(a.t)]}),a.thread&&(0,b.jsxs)("span",{className:"text-[10px] text-[var(--muted-foreground)] font-mono flex items-center gap-1",children:[(0,b.jsx)(o.Hash,{className:"w-3 h-3"}),a.thread.substring(0,12),"..."]})]})]})]})},a.id??c)})]})]})]})]}),Z&&(0,b.jsx)(x.AgentForm,{title:"Edit agent",initial:{name:H.name,title:H.title||"",provider:H.provider,model:H.model||"",identity:H.identity||"",color:H.color,skills:H.skills||[]},agentId:H.id,submitLabel:"Save",onSubmit:async a=>{await fetch("/api/participants",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:H.id,name:a.name,title:a.title||null,provider:a.provider,model:a.model,color:a.color,...a.identity?{identity:a.identity}:{},skills:a.skills??[]})}),I({...H,name:a.name,title:a.title||void 0,provider:a.provider,model:a.model,identity:a.identity,color:a.color??H.color,skills:a.skills??[]}),$(!1)},onCancel:()=>$(!1)})]})}])}];
|
|
1
|
+
module.exports=[165116,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(935112),e=a.i(50944),f=a.i(238246),g=a.i(654340),h=a.i(328400),i=a.i(701065),j=a.i(756490),k=a.i(820859),l=a.i(517259),m=a.i(438311),n=a.i(340492),o=a.i(316099),p=a.i(737313),q=a.i(667597),r=a.i(864061),s=a.i(675222),t=a.i(724938),u=a.i(489461),v=a.i(985339),w=a.i(66456),x=a.i(8e4),y=a.i(830284),z=a.i(475632),A=a.i(86007);a.s(["default",0,function({params:a}){let{slug:B,teamId:C,agentId:D}=(0,c.use)(a),E=(0,e.useRouter)(),{projects:F}=(0,y.useProjectsWithAgents)(),G=F.find(a=>a.slug===B),[H,I]=(0,c.useState)(null),[J,K]=(0,c.useState)([]),[L,M]=(0,c.useState)(null),[N,O]=(0,c.useState)(null),[P,Q]=(0,c.useState)(null),[R,S]=(0,c.useState)([]),[T,U]=(0,c.useState)({total_messages:0,threads_participated:0}),[V,W]=(0,c.useState)(!0),[X,Y]=(0,c.useState)("feed"),[Z,$]=(0,c.useState)(!1),[_,aa]=(0,c.useState)([]),ab=(0,c.useCallback)(async()=>{if(G)try{let[a,b,c,d]=await Promise.all([fetch("/api/participants").then(a=>a.json()),fetch(`/api/agents/${D}/profile`).then(a=>a.ok?a.json():null),fetch(`/api/agents/${D}/messages`).then(a=>a.ok?a.json():null),fetch(`/api/projects/${G.id}/teams/${C}`).then(a=>a.ok?a.json():null)]),e=Array.isArray(a)?a:a.participants??[];K(e),I(e.find(a=>a.id===D)??null),Q(b),S(c?.messages??[]),U(c?.stats??{total_messages:0,threads_participated:0}),d?.team&&(M(d.team),O(d.team.agents?.find(a=>a.agent_id===D)??null))}catch{}finally{W(!1)}},[G,D,C]);(0,c.useEffect)(()=>{ab()},[ab]),(0,c.useEffect)(()=>{let a=async()=>{try{let a=await fetch("/api/processes?enrich=1");if(!a.ok)return;let b=await a.json();aa(b.filter(a=>a.agentId===D&&("spawning"===a.state||"running"===a.state)))}catch{}};a();let b=setInterval(a,3e3);return()=>clearInterval(b)},[D]);let[ac,ad]=(0,c.useState)(null);if((0,c.useEffect)(()=>{ad(document.getElementById("topbar-breadcrumb"))},[]),V||!G)return(0,b.jsx)("div",{className:"flex items-center justify-center h-full text-[var(--muted-foreground)] text-sm",children:(0,b.jsx)("div",{className:"animate-pulse",children:"Loading agent..."})});if(!H)return(0,b.jsxs)("div",{className:"flex flex-col items-center justify-center h-full gap-4",children:[(0,b.jsx)("p",{className:"text-[var(--muted-foreground)]",children:"Agent not found"}),(0,b.jsx)("button",{onClick:()=>E.push(`/projects/${B}/teams/${C}`),className:"text-sm text-blue-600 hover:underline",children:"Back to team"})]});let ae=H.color||"#D97706",af=P?.self||"",ag=(0,z.stripMarkers)(af),ah=H.identity||"",ai=(0,z.stripMarkers)(ah),aj=P?.journal??[],ak=aj.filter(a=>"reflection"===a.type),al=P?.inspectability,am=al?.knowledge.agent.portableSkills??[],an=al?.knowledge.agent.learnedMemories??[],ao=al?.evidence,ap=R.map(a=>({...a,content:(0,z.stripMarkers)(a.content)})).filter(a=>a.content.length>0),aq=new Map;for(let a of J)aq.set(a.id,a);let ar=a=>{let b=new Date(a),c=Math.floor((Date.now()-b.getTime())/6e4);if(c<1)return"just now";if(c<60)return`${c}m ago`;let d=Math.floor(c/60);if(d<24)return`${d}h ago`;let e=Math.floor(d/24);return e<7?`${e}d ago`:new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric"}).format(b)},as=a=>{let b=new Date(a);return new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"}).format(b)},at=[{label:"Messages",value:T.total_messages.toLocaleString(),icon:p.MessageSquare},{label:"Threads",value:String(T.threads_participated),icon:o.Hash},{label:"Journal Entries",value:String(aj.length),icon:h.BookOpen}];return(0,b.jsxs)("div",{className:"h-full overflow-y-auto",children:[ac&&(0,d.createPortal)((0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:"\\"}),(0,b.jsx)("button",{onClick:()=>E.push(`/projects/${B}/teams/${C}`),className:"text-xs text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",children:L?.name??"Team"}),(0,b.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:"\\"}),(0,b.jsx)("span",{className:"text-xs text-[var(--foreground)]",children:H.name})]}),ac),(0,b.jsxs)("main",{className:"max-w-7xl mx-auto p-4 md:p-8 grid grid-cols-1 lg:grid-cols-12 gap-8",children:[(0,b.jsxs)("div",{className:"lg:col-span-4 space-y-6",children:[(0,b.jsxs)("div",{className:"bg-[var(--card-bg)] rounded-3xl border border-[var(--border)] shadow-xl shadow-black/5 overflow-hidden",children:[(0,b.jsx)("div",{className:"h-32 w-full relative",style:{background:`linear-gradient(135deg, ${ae} 0%, ${ae}99 100%)`},children:(0,b.jsx)("div",{className:"absolute inset-0 opacity-20 bg-[radial-gradient(#fff_1px,transparent_1px)] [background-size:16px_16px]"})}),(0,b.jsxs)("div",{className:"px-6 pb-6 text-center -mt-16 relative",children:[(0,b.jsxs)("div",{className:"inline-block relative",children:[(0,b.jsx)("img",{alt:H.name,className:"w-32 h-32 rounded-3xl bg-[var(--card-bg)] p-2 border-4 border-[var(--card-bg)] shadow-xl",src:(0,x.agentAvatarUrl)(H.id,128,H.color)}),(0,b.jsx)("div",{className:"absolute bottom-2 right-2 w-6 h-6 bg-green-500 border-4 border-[var(--card-bg)] rounded-full"})]}),(0,b.jsxs)("div",{className:"mt-4 space-y-1",children:[(0,b.jsxs)("div",{className:"flex items-center justify-center gap-2",children:[(0,b.jsx)("h1",{className:"text-2xl font-black tracking-tight",children:H.name}),(0,b.jsx)("span",{className:"px-2 py-0.5 rounded-full text-[10px] font-bold uppercase tracking-wider",style:{backgroundColor:`${ae}20`,color:ae},children:H.provider})]}),(0,b.jsx)("p",{className:"text-[var(--muted-foreground)] font-mono text-xs",children:H.model})]}),N&&(0,b.jsx)("div",{className:"mt-4",children:(0,b.jsxs)("span",{className:"inline-flex items-center gap-1.5 px-3 py-1.5 rounded-full bg-[var(--primary)]/10 border border-[var(--primary)]/20 text-xs font-medium text-[var(--primary)]",children:[(0,b.jsx)(v.Users,{className:"w-3.5 h-3.5"}),N.role_key," in ",L?.name]})}),(0,b.jsxs)("div",{className:"flex flex-wrap justify-center gap-2 mt-4",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5 px-3 py-1.5 rounded-full bg-[var(--app-shell-subtle)] border border-[var(--border)] text-xs font-medium text-[var(--muted-foreground)]",children:[(0,b.jsx)(l.Cpu,{className:"w-3.5 h-3.5"}),H.model]}),(0,b.jsxs)("div",{className:`flex items-center gap-1.5 px-3 py-1.5 rounded-full border text-xs font-medium ${_.length>0?"bg-green-50 border-green-200 text-green-700":"bg-[var(--app-shell-subtle)] border-[var(--border)] text-[var(--muted-foreground)]"}`,children:[(0,b.jsx)(g.Activity,{className:`w-3.5 h-3.5 ${_.length>0?"animate-pulse":""}`}),_.length>0?"Working":"Idle"]})]}),(0,b.jsx)("div",{className:"grid grid-cols-3 gap-3 mt-8",children:at.map((a,c)=>(0,b.jsxs)("div",{className:"bg-[var(--app-shell-subtle)] p-3 rounded-2xl border border-[var(--border)] text-left",children:[(0,b.jsx)(a.icon,{className:"w-4 h-4 text-[var(--muted-foreground)] mb-1"}),(0,b.jsx)("div",{className:"text-lg font-bold text-[var(--foreground)]",children:a.value}),(0,b.jsx)("div",{className:"text-[10px] uppercase font-bold text-[var(--muted-foreground)] tracking-wider",children:a.label})]},c))})]})]}),(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)("div",{className:"bg-[var(--card-bg)] rounded-2xl border border-[var(--border)] p-5",children:[(0,b.jsxs)("h3",{className:"text-[11px] font-black text-[var(--muted-foreground)] uppercase tracking-[0.2em] mb-4 flex items-center gap-2",children:[(0,b.jsx)(w.Zap,{className:"w-3.5 h-3.5"})," Actions"]}),(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>$(!0),className:"flex-1 flex items-center justify-center gap-2 px-3 py-2.5 text-sm font-medium text-[var(--foreground)] bg-[var(--app-shell-subtle)] border border-[var(--border)] rounded-xl hover:bg-[var(--muted)] transition-all",children:[(0,b.jsx)(q.Pencil,{className:"w-3.5 h-3.5"}),"Edit"]}),(0,b.jsxs)("button",{type:"button",onClick:async()=>{let a=await fetch("/api/agents/export",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentIds:[H.id]})});if(!a.ok)return;let b=await a.json(),c=new Blob([JSON.stringify({version:1,exportedAt:new Date().toISOString(),agents:b.agents,projects:[]},null,2)],{type:"application/json"}),d=URL.createObjectURL(c),e=document.createElement("a");e.href=d,e.download=`${H.name.toLowerCase().replace(/\s+/g,"-")}.agent.json`,e.click(),URL.revokeObjectURL(d)},className:"flex-1 flex items-center justify-center gap-2 px-3 py-2.5 text-sm font-medium text-[var(--foreground)] bg-[var(--app-shell-subtle)] border border-[var(--border)] rounded-xl hover:bg-[var(--muted)] transition-all",children:[(0,b.jsx)(n.Download,{className:"w-3.5 h-3.5"}),"Export"]})]})]}),_.length>0&&(0,b.jsxs)("div",{className:"bg-[var(--card-bg)] rounded-2xl border border-green-200 ring-1 ring-green-100 p-5",children:[(0,b.jsxs)("h3",{className:"text-[11px] font-black text-green-600 uppercase tracking-[0.2em] mb-4 flex items-center gap-2",children:[(0,b.jsx)(g.Activity,{className:"w-3.5 h-3.5 animate-pulse"})," Working Now"]}),(0,b.jsx)("div",{className:"flex flex-col gap-2",children:_.map(a=>(0,b.jsxs)("div",{className:"flex items-center gap-3 p-2.5 rounded-xl bg-green-50 border border-green-100",children:[(0,b.jsx)("div",{className:"w-2 h-2 rounded-full bg-green-500 animate-pulse shrink-0"}),(0,b.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,b.jsx)("div",{className:"text-xs font-medium text-[var(--foreground)] truncate",children:a.threadId?(0,b.jsxs)("span",{className:"flex items-center gap-1",children:[(0,b.jsx)(o.Hash,{className:"w-3 h-3 text-[var(--muted-foreground)]"}),(0,b.jsx)("span",{className:"truncate",children:a.threadTitle||a.threadId.substring(0,12)+"..."})]}):(0,b.jsx)("span",{children:"Main thread"})}),(0,b.jsx)("div",{className:"text-[10px] text-[var(--muted-foreground)] capitalize",children:a.state})]})]},`${a.workspaceId}-${a.threadId}`))})]}),H.skills&&H.skills.length>0&&(0,b.jsxs)("div",{className:"bg-[var(--card-bg)] rounded-2xl border border-[var(--border)] p-5",children:[(0,b.jsxs)("h3",{className:"text-[11px] font-black text-[var(--muted-foreground)] uppercase tracking-[0.2em] mb-4 flex items-center gap-2",children:[(0,b.jsx)(i.BrainCircuit,{className:"w-3.5 h-3.5"})," Portable Knowledge"]}),(0,b.jsx)("div",{className:"flex flex-col gap-2",children:H.skills.map((a,c)=>(0,b.jsxs)("div",{className:"flex items-center gap-2 text-xs p-2 hover:bg-[var(--app-shell-subtle)] rounded-lg transition-colors",children:[(0,b.jsx)(w.Zap,{size:10,className:"text-blue-500 shrink-0"}),(0,b.jsx)("span",{className:"text-blue-600 font-mono truncate",title:a.file,children:a.file.split("/").pop()}),a.condition&&(0,b.jsx)("span",{className:"text-[var(--muted-foreground)] text-[10px] ml-auto shrink-0",children:a.condition})]},c))})]}),(0,b.jsxs)("div",{className:"bg-[var(--card-bg)] rounded-2xl border border-[var(--border)] p-5",children:[(0,b.jsxs)("h3",{className:"text-[11px] font-black text-[var(--muted-foreground)] uppercase tracking-[0.2em] mb-4 flex items-center gap-2",children:[(0,b.jsx)(s.ShieldCheck,{className:"w-3.5 h-3.5"})," Details"]}),(0,b.jsxs)("div",{className:"space-y-3 text-xs",children:[(0,b.jsxs)("div",{className:"flex justify-between",children:[(0,b.jsx)("span",{className:"text-[var(--muted-foreground)]",children:"ID"}),(0,b.jsx)("span",{className:"font-mono bg-[var(--app-shell-subtle)] px-1.5 py-0.5 rounded",children:H.id})]}),(0,b.jsxs)("div",{className:"flex justify-between",children:[(0,b.jsx)("span",{className:"text-[var(--muted-foreground)]",children:"Provider"}),(0,b.jsx)("span",{className:"font-medium capitalize",children:H.provider})]}),(0,b.jsxs)("div",{className:"flex justify-between",children:[(0,b.jsx)("span",{className:"text-[var(--muted-foreground)]",children:"Model"}),(0,b.jsx)("span",{className:"font-mono",children:H.model})]}),P?.identity?.voice?(0,b.jsxs)("div",{className:"flex justify-between",children:[(0,b.jsx)("span",{className:"text-[var(--muted-foreground)]",children:"Voice"}),(0,b.jsx)("span",{className:"font-medium",children:String(P.identity.voice)})]}):null,(0,b.jsxs)("div",{className:"flex justify-between items-center",children:[(0,b.jsx)("span",{className:"text-[var(--muted-foreground)]",children:"Color"}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)("div",{className:"w-3 h-3 rounded-full border border-[var(--border)]",style:{backgroundColor:H.color}}),(0,b.jsx)("span",{className:"font-mono",children:H.color})]})]}),N&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"flex justify-between",children:[(0,b.jsx)("span",{className:"text-[var(--muted-foreground)]",children:"Role"}),(0,b.jsx)("span",{className:"font-medium",children:N.role_key})]}),(0,b.jsxs)("div",{className:"flex justify-between",children:[(0,b.jsx)("span",{className:"text-[var(--muted-foreground)]",children:"Routing Order"}),(0,b.jsxs)("span",{className:"font-mono",children:["#",N.routing_order]})]})]}),P?.selfDerivedAt&&(0,b.jsxs)("div",{className:"flex justify-between",children:[(0,b.jsx)("span",{className:"text-[var(--muted-foreground)]",children:"Last Evolved"}),(0,b.jsx)("span",{className:"text-[var(--muted-foreground)]",children:ar(P.selfDerivedAt)})]})]})]})]})]}),(0,b.jsxs)("div",{className:"lg:col-span-8 space-y-6",children:[(0,b.jsx)("div",{className:"bg-[var(--card-bg)] p-1 rounded-2xl border border-[var(--border)] flex shadow-sm",children:[{key:"inspect",label:"Inspect",icon:s.ShieldCheck},{key:"feed",label:"Feed",icon:p.MessageSquare},{key:"reflections",label:"Reflections",icon:t.Sparkles}].map(a=>(0,b.jsxs)("button",{onClick:()=>Y(a.key),className:`flex-1 flex items-center justify-center gap-2 py-3 rounded-xl text-sm font-bold transition-all ${X===a.key?"bg-[var(--foreground)] text-[var(--background)] shadow-lg shadow-black/5":"text-[var(--muted-foreground)] hover:text-[var(--foreground)]"}`,children:[(0,b.jsx)(a.icon,{className:"w-4 h-4"}),a.label]},a.key))}),(0,b.jsxs)("div",{className:"min-h-[600px]",children:["inspect"===X&&(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)("div",{className:"grid grid-cols-1 xl:grid-cols-2 gap-4",children:[(0,b.jsxs)("section",{className:"bg-[var(--card-bg)] rounded-3xl border border-[var(--border)] p-6 shadow-sm",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,b.jsxs)("h2",{className:"text-xs font-black text-[var(--muted-foreground)] uppercase tracking-[0.2em] flex items-center gap-2",children:[(0,b.jsx)(h.BookOpen,{className:"w-4 h-4"})," Identity"]}),(0,b.jsx)("span",{className:"text-[10px] font-black uppercase px-2 py-0.5 rounded bg-emerald-50 text-emerald-700",children:"Human-authored"})]}),(0,b.jsx)("p",{className:"text-sm text-[var(--muted-foreground)] leading-relaxed",children:"Canonical self-definition. The system can read this, but should not edit it."}),(0,b.jsxs)("div",{className:"mt-4 grid grid-cols-1 md:grid-cols-2 gap-3 text-xs",children:[(0,b.jsxs)("div",{className:"rounded-2xl bg-[var(--app-shell-subtle)] border border-[var(--border)] p-3",children:[(0,b.jsx)("div",{className:"text-[10px] font-black uppercase tracking-wider text-[var(--muted-foreground)]",children:"Voice"}),(0,b.jsx)("p",{className:"mt-1 text-[var(--foreground)]",children:String(P?.identity?.voice??"Not set")})]}),(0,b.jsxs)("div",{className:"rounded-2xl bg-[var(--app-shell-subtle)] border border-[var(--border)] p-3",children:[(0,b.jsx)("div",{className:"text-[10px] font-black uppercase tracking-wider text-[var(--muted-foreground)]",children:"Seed"}),(0,b.jsx)("p",{className:"mt-1 text-[var(--foreground)]",children:String(P?.identity?.seed??"Not set")})]})]}),al?.identity.sources?.length?(0,b.jsxs)("div",{className:"mt-4",children:[(0,b.jsx)("div",{className:"text-[10px] font-black uppercase tracking-wider text-[var(--muted-foreground)] mb-2",children:"Sources"}),(0,b.jsx)("div",{className:"flex flex-wrap gap-2",children:al.identity.sources.map(a=>(0,b.jsx)("span",{className:"px-2 py-1 rounded-full bg-[var(--muted)] text-[11px] font-medium text-[var(--muted-foreground)]",children:a},a))})]}):null]}),(0,b.jsxs)("section",{className:"bg-[var(--card-bg)] rounded-3xl border border-amber-100 ring-1 ring-amber-200 p-6 shadow-sm",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,b.jsxs)("h2",{className:"text-xs font-black text-[var(--muted-foreground)] uppercase tracking-[0.2em] flex items-center gap-2",children:[(0,b.jsx)(t.Sparkles,{className:"w-4 h-4"})," Self-Model"]}),(0,b.jsx)("span",{className:"text-[10px] font-black uppercase px-2 py-0.5 rounded bg-amber-100 text-amber-700",children:"System-derived"})]}),(0,b.jsx)("p",{className:"text-sm text-[var(--muted-foreground)] leading-relaxed",children:"Reflective specialization model."}),ag?(0,b.jsx)("div",{className:"mt-4 text-sm text-[var(--foreground)] leading-relaxed prose prose-sm prose-slate max-w-none",children:(0,b.jsx)(A.Markdown,{content:ag})}):(0,b.jsx)("p",{className:"mt-4 text-sm text-[var(--muted-foreground)]",children:"No self-model yet."}),(0,b.jsxs)("div",{className:"mt-4 flex flex-wrap gap-2",children:[P?.selfVersion?(0,b.jsxs)("span",{className:"px-2 py-1 rounded-full bg-amber-50 text-[11px] font-medium text-amber-700",children:["v",P.selfVersion]}):null,P?.selfDerivedAt?(0,b.jsx)("span",{className:"px-2 py-1 rounded-full bg-[var(--muted)] text-[11px] font-medium text-[var(--muted-foreground)]",children:ar(P.selfDerivedAt)}):null,al?.selfModel.sources?.map(a=>(0,b.jsx)("span",{className:"px-2 py-1 rounded-full bg-[var(--muted)] text-[11px] font-medium text-[var(--muted-foreground)]",children:a},a))]})]})]}),(0,b.jsxs)("section",{className:"bg-[var(--card-bg)] rounded-3xl border border-[var(--border)] p-6 shadow-sm",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,b.jsxs)("h2",{className:"text-xs font-black text-[var(--muted-foreground)] uppercase tracking-[0.2em] flex items-center gap-2",children:[(0,b.jsx)(i.BrainCircuit,{className:"w-4 h-4"})," Agent Knowledge"]}),(0,b.jsxs)("span",{className:"text-xs text-[var(--muted-foreground)]",children:[am.length+an.length," items"]})]}),(0,b.jsxs)("div",{className:"grid grid-cols-1 xl:grid-cols-2 gap-6",children:[(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,b.jsx)("div",{className:"text-[10px] font-black uppercase tracking-wider text-[var(--muted-foreground)]",children:"Portable Knowledge"}),(0,b.jsx)("span",{className:"text-[10px] text-[var(--muted-foreground)]",children:"Human-authored"})]}),0===am.length?(0,b.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"No portable knowledge attached."}):(0,b.jsx)("div",{className:"space-y-2",children:am.map(a=>(0,b.jsxs)("div",{className:"rounded-2xl border border-[var(--border)] bg-[var(--app-shell-subtle)] p-3",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,b.jsx)("span",{className:"font-mono text-xs text-[var(--foreground)] truncate",title:a.file,children:a.file}),(0,b.jsx)("span",{className:"text-[10px] font-medium text-[var(--muted-foreground)] shrink-0",children:a.form})]}),a.condition?(0,b.jsxs)("p",{className:"mt-2 text-xs text-[var(--muted-foreground)]",children:["Use when: ",a.condition]}):null]},`${a.file}:${a.condition}`))})]}),(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,b.jsx)("div",{className:"text-[10px] font-black uppercase tracking-wider text-[var(--muted-foreground)]",children:"Derived Knowledge Candidates"}),(0,b.jsx)("span",{className:"text-[10px] text-[var(--muted-foreground)]",children:"System-derived"})]}),0===an.length?(0,b.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"No extracted learnings yet."}):(0,b.jsx)("div",{className:"space-y-2",children:an.map(a=>(0,b.jsxs)("div",{className:"rounded-2xl border border-[var(--border)] bg-[var(--app-shell-subtle)] p-3",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,b.jsx)("span",{className:"text-[10px] font-black uppercase tracking-wider text-[var(--muted-foreground)]",children:a.type}),(0,b.jsx)("span",{className:"text-[10px] text-[var(--muted-foreground)]",children:ar(a.createdAt)})]}),(0,b.jsx)("p",{className:"mt-2 text-sm text-[var(--foreground)] leading-relaxed",children:a.content}),(0,b.jsxs)("div",{className:"mt-2 text-[10px] text-[var(--muted-foreground)] font-mono",children:["task ",a.taskId]})]},a.id))})]})]})]}),(0,b.jsxs)("section",{className:"bg-[var(--card-bg)] rounded-3xl border border-[var(--border)] p-6 shadow-sm",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,b.jsxs)("h2",{className:"text-xs font-black text-[var(--muted-foreground)] uppercase tracking-[0.2em] flex items-center gap-2",children:[(0,b.jsx)(g.Activity,{className:"w-4 h-4"})," Evidence"]}),(0,b.jsx)("span",{className:"text-[10px] font-black uppercase px-2 py-0.5 rounded bg-[var(--muted)] text-[var(--muted-foreground)]",children:"Non-canonical"})]}),(0,b.jsx)("p",{className:"text-sm text-[var(--muted-foreground)] leading-relaxed mb-4",children:"Raw and semi-structured traces that support reflection and learning."}),(0,b.jsx)("div",{className:"grid grid-cols-2 xl:grid-cols-4 gap-3",children:[{label:"Journal",value:ao?.journalEntries??aj.length},{label:"Activity",value:ao?.activityEvents??P?.activity?.length??0},{label:"Reactions",value:ao?.reactions??0},{label:"Comments",value:ao?.comments??0}].map(a=>(0,b.jsxs)("div",{className:"rounded-2xl bg-[var(--app-shell-subtle)] border border-[var(--border)] p-4",children:[(0,b.jsx)("div",{className:"text-lg font-bold text-[var(--foreground)]",children:a.value}),(0,b.jsx)("div",{className:"text-[10px] font-black uppercase tracking-wider text-[var(--muted-foreground)]",children:a.label})]},a.label))})]})]}),"feed"===X&&(0,b.jsxs)("div",{className:"space-y-4",children:[ag||ai||P?.identity?.seed?(0,b.jsx)("div",{className:"bg-[var(--card-bg)] rounded-3xl border border-[var(--border)] p-6 shadow-sm",children:ag?(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,b.jsxs)("h2",{className:"text-xs font-black text-[var(--muted-foreground)] uppercase tracking-[0.2em] flex items-center gap-2",children:[(0,b.jsx)(u.Target,{className:"w-4 h-4"})," Self-Model"]}),P?.selfDerivedAt&&(0,b.jsxs)("span",{className:"text-[10px] text-[var(--muted-foreground)] flex items-center gap-1",children:[(0,b.jsx)(r.RefreshCw,{className:"w-3 h-3"}),"v",P.selfVersion," — ",ar(P.selfDerivedAt)]})]}),(0,b.jsx)("div",{className:"text-sm text-[var(--foreground)] leading-relaxed prose prose-sm prose-slate max-w-none",children:(0,b.jsx)(A.Markdown,{content:ag})})]}):ai?(0,b.jsxs)("div",{children:[(0,b.jsxs)("h2",{className:"text-xs font-black text-[var(--muted-foreground)] uppercase tracking-[0.2em] flex items-center gap-2 mb-4",children:[(0,b.jsx)(u.Target,{className:"w-4 h-4"})," Identity"]}),(0,b.jsx)("div",{className:"text-sm text-[var(--foreground)] leading-relaxed prose prose-sm prose-slate max-w-none",children:(0,b.jsx)(A.Markdown,{content:ai})})]}):P?.identity?.seed?(0,b.jsxs)("div",{children:[(0,b.jsxs)("h2",{className:"text-xs font-black text-[var(--muted-foreground)] uppercase tracking-[0.2em] flex items-center gap-2 mb-4",children:[(0,b.jsx)(u.Target,{className:"w-4 h-4"})," Identity Seed"]}),(0,b.jsxs)("p",{className:"text-sm text-[var(--muted-foreground)] italic border-l-4 pl-4",style:{borderColor:ae},children:["“",String(P.identity.seed),"”"]})]}):null}):null,(0,b.jsxs)("div",{className:"flex items-center justify-between px-2",children:[(0,b.jsxs)("h2",{className:"text-xs font-black text-[var(--muted-foreground)] uppercase tracking-[0.2em] flex items-center gap-2",children:[(0,b.jsx)(p.MessageSquare,{className:"w-4 h-4"})," Messages"]}),(0,b.jsxs)("span",{className:"text-xs text-[var(--muted-foreground)]",children:[ap.length," messages"]})]}),0===ap.length?(0,b.jsxs)("div",{className:"bg-[var(--card-bg)] rounded-3xl border border-[var(--border)] p-12 text-center",children:[(0,b.jsx)(p.MessageSquare,{size:32,className:"mx-auto mb-3 text-[var(--muted-foreground)]"}),(0,b.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"No messages yet"}),(0,b.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] mt-1",children:"Messages will appear here as this agent participates in threads"})]}):ap.map(a=>{var c,d;let e=a.prevContent?(0,z.stripMarkers)(a.prevContent):null,g=(c=a.prevParticipantId)?aq.get(c)?.name??c:"You",h=(d=a.prevParticipantId)?aq.get(d)?.color??"#94a3b8":"#6366f1",i=a.threadTitle?(0,z.stripMarkers)(a.threadTitle):null;return(0,b.jsx)("article",{className:"bg-[var(--card-bg)] rounded-3xl border border-[var(--border)] p-6 hover:shadow-xl hover:shadow-black/5 transition-all group",children:(0,b.jsxs)("div",{className:"flex items-start gap-4",children:[(0,b.jsx)("img",{src:(0,x.agentAvatarUrl)(H.id,40,H.color),alt:"",className:"w-10 h-10 rounded-2xl shrink-0 mt-0.5 shadow-sm"}),(0,b.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,b.jsx)("div",{className:"flex items-center justify-between mb-1",children:(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"font-bold text-[var(--foreground)]",children:H.name}),(0,b.jsxs)("span",{className:"text-xs text-[var(--muted-foreground)]",children:["• ",ar(a.timestamp)]})]})}),a.rootMessageId&&i&&(0,b.jsxs)(f.default,{href:`/projects/${B}/thread/${a.threadId}`,className:"inline-flex items-center gap-1.5 mb-3 px-2.5 py-1 rounded-lg bg-[var(--app-shell-subtle)] border border-[var(--border)] hover:bg-[var(--muted)] transition-colors text-[11px] font-medium text-[var(--muted-foreground)] hover:text-[var(--foreground)]",children:[(0,b.jsx)(o.Hash,{className:"w-3 h-3"}),(0,b.jsx)("span",{className:"truncate max-w-[300px]",children:i}),(0,b.jsx)(j.ChevronRight,{className:"w-3 h-3"})]}),e&&(0,b.jsxs)("div",{className:"mb-3 flex items-start gap-2 pl-1",children:[(0,b.jsx)(m.CornerDownRight,{className:"w-3.5 h-3.5 text-[var(--muted-foreground)] shrink-0 mt-1"}),(0,b.jsxs)("div",{className:"flex-1 min-w-0 p-2.5 rounded-xl bg-[var(--app-shell-subtle)] border border-[var(--border)]",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5 mb-1",children:[a.prevParticipantId&&(0,b.jsx)("img",{src:(0,x.agentAvatarUrl)(a.prevParticipantId,16,h),alt:"",className:"w-4 h-4 rounded"}),(0,b.jsx)("span",{className:"text-[10px] font-bold",style:{color:h},children:g})]}),(0,b.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] leading-relaxed line-clamp-2",children:e})]})]}),(0,b.jsx)("div",{className:"text-sm text-[var(--foreground)]",children:(0,b.jsx)(A.Markdown,{content:a.content})}),(0,b.jsxs)("div",{className:"mt-3 flex items-center gap-1.5 text-[10px] text-[var(--muted-foreground)] font-medium",children:[(0,b.jsx)(k.Clock,{className:"w-3 h-3"}),as(a.timestamp)]})]})]})},a.id)})]}),"reflections"===X&&(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between px-2",children:[(0,b.jsxs)("h2",{className:"text-xs font-black text-[var(--muted-foreground)] uppercase tracking-[0.2em] flex items-center gap-2",children:[(0,b.jsx)(h.BookOpen,{className:"w-4 h-4"})," Journal Reflections"]}),(0,b.jsxs)("span",{className:"text-xs text-[var(--muted-foreground)]",children:[ak.length," reflections"]})]}),0===ak.length?(0,b.jsxs)("div",{className:"bg-[var(--card-bg)] rounded-3xl border border-[var(--border)] p-12 text-center",children:[(0,b.jsx)(t.Sparkles,{size:32,className:"mx-auto mb-3 text-[var(--muted-foreground)]"}),(0,b.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"No reflections yet"}),(0,b.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] mt-1",children:"Reflections will appear as this agent evolves its self-model"})]}):ak.map((a,c)=>{let d=a.body?(0,z.stripMarkers)(a.body):"";return(0,b.jsx)("article",{className:"bg-[var(--card-bg)] rounded-3xl border border-amber-100 ring-1 ring-amber-200 p-6 hover:shadow-xl hover:shadow-black/5 transition-all group",children:(0,b.jsxs)("div",{className:"flex items-start gap-4",children:[(0,b.jsxs)("div",{className:"relative shrink-0",children:[(0,b.jsx)("img",{alt:"",className:"w-10 h-10 rounded-2xl shadow-sm",src:(0,x.agentAvatarUrl)(H.id,40,H.color)}),(0,b.jsx)("div",{className:"absolute -top-1 -right-1 w-4 h-4 rounded-full flex items-center justify-center border-2 border-[var(--card-bg)]",style:{backgroundColor:ae},children:(0,b.jsx)(t.Sparkles,{className:"w-2 h-2 text-white"})})]}),(0,b.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between mb-1",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"font-bold text-[var(--foreground)]",children:H.name}),(0,b.jsx)("span",{className:"text-[10px] font-black uppercase px-2 py-0.5 rounded bg-amber-100 text-amber-700",children:"reflection"}),(0,b.jsxs)("span",{className:"text-xs text-[var(--muted-foreground)]",children:["• ",ar(a.t)]})]}),a.selfVersion&&(0,b.jsxs)("span",{className:"text-[10px] text-[var(--muted-foreground)] font-mono",children:["v",a.selfVersion]})]}),a.observation&&(0,b.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] mb-3",children:a.observation}),d&&(0,b.jsx)("div",{className:"text-sm text-[var(--foreground)] leading-relaxed prose prose-sm prose-slate max-w-none",children:(0,b.jsx)(A.Markdown,{content:d})}),(a.judgement||a.delta||a.intent)&&(0,b.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3 mt-4 pt-4 border-t border-[var(--border)]",children:[a.judgement&&(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)("div",{className:"text-[10px] font-black text-[var(--muted-foreground)] uppercase tracking-wider",children:"Judgment"}),(0,b.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] leading-relaxed",children:a.judgement})]}),a.delta&&(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)("div",{className:"text-[10px] font-black text-[var(--muted-foreground)] uppercase tracking-wider",children:"Delta"}),(0,b.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] leading-relaxed",children:a.delta})]}),a.intent&&(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)("div",{className:"text-[10px] font-black text-[var(--muted-foreground)] uppercase tracking-wider",children:"Intent"}),(0,b.jsx)("p",{className:"text-xs text-[var(--muted-foreground)] leading-relaxed",children:a.intent})]})]}),(0,b.jsxs)("div",{className:"mt-4 flex items-center justify-between",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5 text-[10px] text-[var(--muted-foreground)] font-medium",children:[(0,b.jsx)(k.Clock,{className:"w-3 h-3"}),as(a.t)]}),a.thread&&(0,b.jsxs)("span",{className:"text-[10px] text-[var(--muted-foreground)] font-mono flex items-center gap-1",children:[(0,b.jsx)(o.Hash,{className:"w-3 h-3"}),a.thread.substring(0,12),"..."]})]})]})]})},a.id??c)})]})]})]})]}),Z&&(0,b.jsx)(x.AgentForm,{title:"Edit agent",initial:{name:H.name,role:H.role||"",provider:H.provider,model:H.model||"",identity:H.identity||"",color:H.color,skills:H.skills||[],skillBindings:H.skillBindings||[]},agentId:H.id,submitLabel:"Save",onSubmit:async a=>{await fetch("/api/participants",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:H.id,name:a.name,role:a.role||null,provider:a.provider,model:a.model,color:a.color,...a.identity?{identity:a.identity}:{},skills:a.skills??[],skillBindings:a.skillBindings??[]})}),I({...H,name:a.name,role:a.role||void 0,provider:a.provider,model:a.model,identity:a.identity,color:a.color??H.color,skills:a.skills??[],skillBindings:a.skillBindings??[]}),$(!1)},onCancel:()=>$(!1)})]})}])}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=apps_local_app_projects_%5Bslug%5D_teams_%5BteamId%5D_agents_%5BagentId%5D_page_tsx_0wm~_~t._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[940795,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(935112),e=a.i(50944),f=a.i(756490),g=a.i(517259),h=a.i(349692),i=a.i(667597),j=a.i(353532),k=a.i(697183),l=a.i(985339),m=a.i(824179),n=a.i(66456),o=a.i(599086),p=a.i(830284),q=a.i(319405),r=a.i(766412),s=a.i(8e4);a.s(["default",0,function({params:a}){let{slug:t,teamId:u}=(0,c.use)(a),v=(0,e.useRouter)(),{projects:w}=(0,p.useProjectsWithAgents)(),x=w.find(a=>a.slug===t),[y,z]=(0,c.useState)(null),[A,B]=(0,c.useState)([]),[C,D]=(0,c.useState)(!0),[E,F]=(0,c.useState)(null),[G,H]=(0,c.useState)(!1),[I,J]=(0,c.useState)(""),[K,L]=(0,c.useState)(!1),M=(0,c.useRef)(null),[N,O]=(0,c.useState)(!1),[P,Q]=(0,c.useState)(!1),[R,S]=(0,c.useState)(null),[T,U]=(0,c.useState)(!1),[V,W]=(0,c.useState)("existing"),[X,Y]=(0,c.useState)(null),[Z,$]=(0,c.useState)(null),[_,aa]=(0,c.useState)(!1),[ab,ac]=(0,c.useState)(null),[ad,ae]=(0,c.useState)(null),af=(0,c.useCallback)(async()=>{if(x){D(!0),F(null);try{let a=await fetch(`/api/projects/${x.id}/teams/${u}`);if(!a.ok)throw Error(`Failed to load team (${a.status})`);let b=await a.json();z(b.team),J(b.team.name)}catch(a){F(a instanceof Error?a.message:"Unknown error")}finally{D(!1)}}},[x,u]),ag=(0,c.useCallback)(async()=>{try{let a=await fetch("/api/participants");if(!a.ok)return;let b=await a.json();B(Array.isArray(b)?b:b.participants??[])}catch{}},[]);(0,c.useEffect)(()=>{af(),ag()},[af,ag]);let[ah,ai]=(0,c.useState)(null);(0,c.useEffect)(()=>{ai(document.getElementById("topbar-breadcrumb"))},[]),(0,c.useEffect)(()=>{G&&M.current&&(M.current.focus(),M.current.select())},[G]);let aj=(0,c.useMemo)(()=>new Map(A.map(a=>[a.id,a])),[A]),ak=(0,c.useMemo)(()=>(0,q.listAgentPresets)(),[]),al=(0,c.useMemo)(()=>ak.map(a=>({id:a.id,label:a.name,meta:a.skillProfileId})),[ak]),am=(0,c.useMemo)(()=>ak.map(a=>({id:a.id,label:a.name,meta:a.skillProfileId})),[ak]),an=(0,c.useMemo)(()=>new Set(y?.agents.map(a=>a.agent_id)??[]),[y]),ao=(0,c.useMemo)(()=>x?x.agents.filter(a=>!an.has(a.agent_id)).map(a=>{let b=aj.get(a.agent_id);return{id:a.agent_id,name:b?.name??a.agent_id.slice(0,8),provider:b?.provider??"claude",model:b?.model??null,color:b?.color??"#6B7280"}}):[],[x,an,aj]),ap=(0,c.useMemo)(()=>ao.map(a=>({id:a.id,label:a.name,meta:a.provider})),[ao]);async function aq(){if(!y||!x||I.trim()===y.name)return void H(!1);if(!I.trim()){J(y.name),H(!1);return}L(!0);try{if(!(await fetch(`/api/projects/${x.id}/teams/${u}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:I.trim()})})).ok)throw Error("Failed to update team name");z(a=>a?{...a,name:I.trim()}:a)}catch{y&&J(y.name)}finally{L(!1),H(!1)}}async function ar(a){if(x){S(a);try{if(!(await fetch(`/api/projects/${x.id}/teams/${u}/agents?agentId=${encodeURIComponent(a)}`,{method:"DELETE"})).ok)throw Error("Failed to remove agent");z(b=>b?{...b,agents:b.agents.filter(b=>b.agent_id!==a)}:b)}catch{}finally{S(null)}}}async function as(){if(x){Q(!0);try{if(!(await fetch(`/api/projects/${x.id}/teams/${u}`,{method:"DELETE"})).ok)throw Error("Failed to delete team");v.push(`/projects/${t}/teams`)}catch{Q(!1),O(!1)}}}async function at(){if(x&&Z){aa(!0);try{if(!(await fetch(`/api/projects/${x.id}/teams/${u}/agents`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentId:Z,roleKey:"member"})})).ok)throw Error("Failed to add agent");$(null),U(!1),await af()}catch{}finally{aa(!1)}}}async function au(){if(x&&X){aa(!0);try{let a=ak.find(a=>a.id===X);if(!a)return;let b=(0,q.getAgentPresetBindings)(a),c=await fetch("/api/participants",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:a.name,provider:"claude",model:null,identity:"",skills:b.map(a=>({file:`${a.repo}/${a.skillId}`,...a.condition?{condition:a.condition}:{}}))})});if(!c.ok)throw Error("Failed to create agent");let d=await c.json(),e=d.id??d.participant?.id;await fetch(`/api/projects/${x.id}/agents`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentId:e})}),await fetch(`/api/projects/${x.id}/teams/${u}/agents`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentId:e,roleKey:a.id})}),Y(null),U(!1),await Promise.all([af(),ag()])}catch{}finally{aa(!1)}}}if(!x||C)return(0,b.jsxs)("div",{className:"flex items-center justify-center h-full text-sm text-[var(--muted-foreground)]",children:[(0,b.jsx)(h.Loader2,{className:"w-5 h-5 animate-spin mr-2"}),"Loading team..."]});if(E||!y)return(0,b.jsxs)("div",{className:"flex flex-col items-center justify-center h-full gap-3 text-[var(--muted-foreground)]",children:[(0,b.jsx)(o.AlertTriangle,{className:"w-5 h-5 text-[var(--destructive)]"}),(0,b.jsx)("p",{className:"text-sm text-[var(--destructive)]",children:E??"Team not found"}),(0,b.jsx)("button",{onClick:af,className:"text-xs underline hover:text-[var(--foreground)]",children:"Retry"})]});let av=y.metadata?.variantId;return(0,b.jsxs)("div",{className:"h-full overflow-y-auto",children:[ah&&(0,d.createPortal)((0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:"\\"}),(0,b.jsx)("span",{className:"text-xs text-[var(--foreground)]",children:y.name})]}),ah),(0,b.jsxs)("div",{className:"max-w-3xl mx-auto px-6 py-8 space-y-8",children:[(0,b.jsx)("div",{className:"flex items-start justify-between gap-4",children:(0,b.jsxs)("div",{className:"min-w-0",children:[G?(0,b.jsx)("input",{ref:M,value:I,onChange:a=>J(a.target.value),onBlur:aq,onKeyDown:a=>{"Enter"===a.key&&aq(),"Escape"===a.key&&(J(y.name),H(!1))},disabled:K,className:"input text-lg font-bold w-full"}):(0,b.jsxs)("button",{onClick:()=>H(!0),className:"flex items-center gap-2 group text-left",children:[(0,b.jsx)("h1",{className:"text-lg font-bold truncate",children:y.name}),(0,b.jsx)(i.Pencil,{className:"w-3.5 h-3.5 text-[var(--muted-foreground)] opacity-0 group-hover:opacity-100 transition-opacity flex-shrink-0"})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2 mt-1",children:[y.template_id&&(0,b.jsx)("span",{className:"text-[10px] font-medium uppercase tracking-wider px-2 py-0.5 rounded-full bg-[var(--muted)] text-[var(--muted-foreground)] border border-[var(--border)]",children:y.template_id}),av&&(0,b.jsx)("span",{className:"text-[10px] font-medium uppercase tracking-wider px-2 py-0.5 rounded-full bg-[var(--muted)] text-[var(--muted-foreground)] border border-[var(--border)]",children:av}),(0,b.jsxs)("span",{className:"text-xs text-[var(--muted-foreground)]",children:[y.agents.length," agent",1!==y.agents.length?"s":""]})]})]})}),(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,b.jsxs)("h2",{className:"text-xs font-medium text-[var(--muted-foreground)] uppercase tracking-wider",children:["Agents (",y.agents.length,")"]}),(0,b.jsxs)("button",{onClick:()=>{U(!T),W("existing"),$(null),Y(null)},className:"flex items-center gap-1.5 text-xs font-medium px-3 py-1.5 rounded-xl border border-[var(--border)] hover:bg-[var(--muted)]/50 transition-colors",children:[(0,b.jsx)(j.Plus,{className:"w-3.5 h-3.5"}),"Add Agent"]})]}),T&&(0,b.jsxs)("div",{className:"mb-4 p-4 rounded-2xl space-y-4",style:{background:"var(--muted)",border:"1px solid var(--border)"},children:[(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)("button",{onClick:()=>W("existing"),className:`text-xs font-medium px-3 py-1.5 rounded-lg transition-colors ${"existing"===V?"bg-[var(--primary)] text-white":"bg-[var(--card-bg)] border border-[var(--border)] text-[var(--muted-foreground)]"}`,children:"Existing Agent"}),(0,b.jsx)("button",{onClick:()=>W("preset"),className:`text-xs font-medium px-3 py-1.5 rounded-lg transition-colors ${"preset"===V?"bg-[var(--primary)] text-white":"bg-[var(--card-bg)] border border-[var(--border)] text-[var(--muted-foreground)]"}`,children:"From Preset"})]}),"existing"===V?(0,b.jsxs)("div",{className:"space-y-3",children:[0===ap.length?(0,b.jsx)("p",{className:"text-xs text-[var(--muted-foreground)]",children:"No unassigned agents in this project."}):(0,b.jsx)(r.default,{options:ap,value:Z,onChange:$,placeholder:"Select an agent..."}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsxs)("button",{onClick:at,disabled:!Z||_,className:"btn-primary px-4 py-1.5 text-xs flex items-center gap-1.5",children:[_?(0,b.jsx)(h.Loader2,{className:"w-3.5 h-3.5 animate-spin"}):(0,b.jsx)(j.Plus,{className:"w-3.5 h-3.5"}),"Add"]}),(0,b.jsx)("button",{onClick:()=>U(!1),className:"text-xs text-[var(--muted-foreground)] hover:text-[var(--foreground)]",children:"Cancel"})]})]}):(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsx)(r.default,{options:al,value:X,onChange:Y,placeholder:"Select a role preset..."}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsxs)("button",{onClick:au,disabled:!X||_,className:"btn-primary px-4 py-1.5 text-xs flex items-center gap-1.5",children:[_?(0,b.jsx)(h.Loader2,{className:"w-3.5 h-3.5 animate-spin"}):(0,b.jsx)(j.Plus,{className:"w-3.5 h-3.5"}),"Create & Add"]}),(0,b.jsx)("button",{onClick:()=>U(!1),className:"text-xs text-[var(--muted-foreground)] hover:text-[var(--foreground)]",children:"Cancel"})]})]})]}),0===y.agents.length?(0,b.jsxs)("div",{className:"rounded-2xl p-8 text-center",style:{background:"var(--muted)",border:"1px solid var(--border)"},children:[(0,b.jsx)(l.Users,{className:"w-8 h-8 mx-auto mb-3 text-[var(--muted-foreground)]"}),(0,b.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"No agents in this team yet"})]}):(0,b.jsx)("div",{className:"space-y-2",children:y.agents.sort((a,b)=>a.routing_order-b.routing_order).map(a=>{let c=aj.get(a.agent_id),d=c?.name??a.agent_id.slice(0,8),e=c?.color??"#6B7280",j=c?.provider??"claude",k=c?.model??null,l=c?.skills?.length??0;return(0,b.jsx)("div",{className:"group rounded-2xl p-4 transition-colors hover:bg-[var(--muted)]/60 cursor-pointer",style:{background:"var(--card-bg)",border:"1px solid var(--border)"},onClick:()=>v.push(`/projects/${t}/teams/${u}/agents/${a.agent_id}`),children:(0,b.jsxs)("div",{className:"flex items-center gap-4",children:[(0,b.jsx)("img",{src:(0,s.agentAvatarUrl)(a.agent_id,40,e),alt:d,className:"w-10 h-10 rounded-xl flex-shrink-0"}),(0,b.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"text-sm font-medium truncate",children:d}),(0,b.jsxs)("span",{className:"text-[10px] font-mono text-[var(--muted-foreground)]",children:["#",a.routing_order]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2 mt-0.5",children:[ab===a.agent_id?(0,b.jsx)("div",{className:"w-36",onClick:a=>a.stopPropagation(),children:(0,b.jsx)(r.default,{options:am,value:a.role_key,onChange:async b=>{x&&(await fetch(`/api/projects/${x.id}/teams/${u}/agents?agentId=${encodeURIComponent(a.agent_id)}`,{method:"DELETE"}),await fetch(`/api/projects/${x.id}/teams/${u}/agents`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentId:a.agent_id,roleKey:b,routingOrder:a.routing_order})}),ac(null),await af())},placeholder:"Role..."})}):(0,b.jsx)("button",{onClick:b=>{b.stopPropagation(),ac(a.agent_id)},className:"text-[10px] px-1.5 py-0.5 rounded-md bg-[var(--muted)] text-[var(--muted-foreground)] border border-[var(--border)] hover:border-[var(--primary)] transition-colors",title:"Click to change role",children:a.role_key}),(0,b.jsxs)("span",{className:"flex items-center gap-1 text-[10px] text-[var(--muted-foreground)]",children:[(0,b.jsx)(g.Cpu,{className:"w-3 h-3"}),j,k&&(0,b.jsxs)("span",{className:"font-mono",children:["/ ",k]})]}),l>0&&(0,b.jsxs)("span",{className:"flex items-center gap-1 text-[10px] text-[var(--muted-foreground)]",children:[(0,b.jsx)(n.Zap,{className:"w-3 h-3"}),l]})]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity flex-shrink-0",onClick:a=>a.stopPropagation(),children:[(0,b.jsx)("button",{onClick:()=>ae(a.agent_id),className:"p-1.5 rounded-lg hover:bg-[var(--muted)] text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",title:"Edit agent",children:(0,b.jsx)(i.Pencil,{className:"w-3.5 h-3.5"})}),(0,b.jsx)("button",{onClick:()=>ar(a.agent_id),disabled:R===a.agent_id,className:"p-1.5 rounded-lg hover:bg-red-500/15 text-[var(--muted-foreground)] hover:text-red-400 transition-colors",title:"Remove from team",children:R===a.agent_id?(0,b.jsx)(h.Loader2,{className:"w-3.5 h-3.5 animate-spin"}):(0,b.jsx)(m.X,{className:"w-3.5 h-3.5"})})]}),(0,b.jsx)(f.ChevronRight,{className:"w-4 h-4 text-[var(--muted-foreground)] opacity-0 group-hover:opacity-100 transition-opacity flex-shrink-0"})]})},a.agent_id)})})]}),(0,b.jsxs)("div",{className:"pt-6 border-t",style:{borderColor:"var(--border)"},children:[(0,b.jsx)("h2",{className:"text-xs font-medium text-[var(--muted-foreground)] uppercase tracking-wider mb-3",children:"Danger Zone"}),N?(0,b.jsxs)("div",{className:"flex items-center gap-3 p-4 rounded-2xl bg-red-500/5 border border-red-500/20",children:[(0,b.jsx)(o.AlertTriangle,{className:"w-4 h-4 text-red-400 flex-shrink-0"}),(0,b.jsx)("span",{className:"text-sm text-red-400 flex-1",children:"Delete this team? This cannot be undone."}),(0,b.jsx)("button",{onClick:as,disabled:P,className:"px-3 py-1.5 text-xs font-medium rounded-lg bg-red-600 hover:bg-red-700 text-white transition-colors disabled:opacity-50",children:P?"Deleting...":"Confirm Delete"}),(0,b.jsx)("button",{onClick:()=>O(!1),disabled:P,className:"px-3 py-1.5 text-xs rounded-lg border border-[var(--border)] hover:bg-[var(--muted)]/50 transition-colors",children:"Cancel"})]}):(0,b.jsxs)("button",{onClick:()=>O(!0),className:"flex items-center gap-2 text-xs text-[var(--muted-foreground)] hover:text-red-400 transition-colors",children:[(0,b.jsx)(k.Trash2,{className:"w-3.5 h-3.5"}),"Delete Team"]})]})]}),ad&&aj.get(ad)&&(0,b.jsx)(s.AgentForm,{title:"Edit agent",initial:{name:aj.get(ad).name,title:aj.get(ad).title||"",provider:aj.get(ad).provider,model:aj.get(ad).model||"",identity:aj.get(ad).identity||"",color:aj.get(ad).color,skills:aj.get(ad).skills||[]},agentId:ad,submitLabel:"Save",onSubmit:async a=>{await fetch("/api/participants",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:ad,name:a.name,title:a.title||null,provider:a.provider,model:a.model,color:a.color,...a.identity?{identity:a.identity}:{},skills:a.skills??[]})}),ae(null),await ag()},onCancel:()=>ae(null)})]})}])}];
|
|
1
|
+
module.exports=[940795,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(935112),e=a.i(50944),f=a.i(756490),g=a.i(517259),h=a.i(349692),i=a.i(667597),j=a.i(353532),k=a.i(697183),l=a.i(985339),m=a.i(824179),n=a.i(66456),o=a.i(599086),p=a.i(830284),q=a.i(319405),r=a.i(766412),s=a.i(8e4);a.s(["default",0,function({params:a}){let{slug:t,teamId:u}=(0,c.use)(a),v=(0,e.useRouter)(),{projects:w}=(0,p.useProjectsWithAgents)(),x=w.find(a=>a.slug===t),[y,z]=(0,c.useState)(null),[A,B]=(0,c.useState)([]),[C,D]=(0,c.useState)(!0),[E,F]=(0,c.useState)(null),[G,H]=(0,c.useState)(!1),[I,J]=(0,c.useState)(""),[K,L]=(0,c.useState)(!1),M=(0,c.useRef)(null),[N,O]=(0,c.useState)(!1),[P,Q]=(0,c.useState)(!1),[R,S]=(0,c.useState)(null),[T,U]=(0,c.useState)(!1),[V,W]=(0,c.useState)("existing"),[X,Y]=(0,c.useState)(null),[Z,$]=(0,c.useState)(null),[_,aa]=(0,c.useState)(!1),[ab,ac]=(0,c.useState)(null),[ad,ae]=(0,c.useState)(null),af=(0,c.useCallback)(async()=>{if(x){D(!0),F(null);try{let a=await fetch(`/api/projects/${x.id}/teams/${u}`);if(!a.ok)throw Error(`Failed to load team (${a.status})`);let b=await a.json();z(b.team),J(b.team.name)}catch(a){F(a instanceof Error?a.message:"Unknown error")}finally{D(!1)}}},[x,u]),ag=(0,c.useCallback)(async()=>{try{let a=await fetch("/api/participants");if(!a.ok)return;let b=await a.json();B(Array.isArray(b)?b:b.participants??[])}catch{}},[]);(0,c.useEffect)(()=>{af(),ag()},[af,ag]);let[ah,ai]=(0,c.useState)(null);(0,c.useEffect)(()=>{ai(document.getElementById("topbar-breadcrumb"))},[]),(0,c.useEffect)(()=>{G&&M.current&&(M.current.focus(),M.current.select())},[G]);let aj=(0,c.useMemo)(()=>new Map(A.map(a=>[a.id,a])),[A]),ak=(0,c.useMemo)(()=>(0,q.listAgentPresets)(),[]),al=(0,c.useMemo)(()=>ak.map(a=>({id:a.id,label:a.name,meta:a.skillProfileId})),[ak]),am=(0,c.useMemo)(()=>ak.map(a=>({id:a.id,label:a.name,meta:a.skillProfileId})),[ak]),an=(0,c.useMemo)(()=>new Set(y?.agents.map(a=>a.agent_id)??[]),[y]),ao=(0,c.useMemo)(()=>x?x.agents.filter(a=>!an.has(a.agent_id)).map(a=>{let b=aj.get(a.agent_id);return{id:a.agent_id,name:b?.name??a.agent_id.slice(0,8),provider:b?.provider??"claude",model:b?.model??null,color:b?.color??"#6B7280"}}):[],[x,an,aj]),ap=(0,c.useMemo)(()=>ao.map(a=>({id:a.id,label:a.name,meta:a.provider})),[ao]);async function aq(){if(!y||!x||I.trim()===y.name)return void H(!1);if(!I.trim()){J(y.name),H(!1);return}L(!0);try{if(!(await fetch(`/api/projects/${x.id}/teams/${u}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:I.trim()})})).ok)throw Error("Failed to update team name");z(a=>a?{...a,name:I.trim()}:a)}catch{y&&J(y.name)}finally{L(!1),H(!1)}}async function ar(a){if(x){S(a);try{if(!(await fetch(`/api/projects/${x.id}/teams/${u}/agents?agentId=${encodeURIComponent(a)}`,{method:"DELETE"})).ok)throw Error("Failed to remove agent");z(b=>b?{...b,agents:b.agents.filter(b=>b.agent_id!==a)}:b)}catch{}finally{S(null)}}}async function as(){if(x){Q(!0);try{if(!(await fetch(`/api/projects/${x.id}/teams/${u}`,{method:"DELETE"})).ok)throw Error("Failed to delete team");v.push(`/projects/${t}/teams`)}catch{Q(!1),O(!1)}}}async function at(){if(x&&Z){aa(!0);try{if(!(await fetch(`/api/projects/${x.id}/teams/${u}/agents`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentId:Z,roleKey:"member"})})).ok)throw Error("Failed to add agent");$(null),U(!1),await af()}catch{}finally{aa(!1)}}}async function au(){if(x&&X){aa(!0);try{let a=ak.find(a=>a.id===X);if(!a)return;let b=(0,q.getAgentPresetBindings)(a),c=await fetch("/api/participants",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:a.name,role:a.role,provider:"claude",model:null,identity:a.identity,skills:b.map(a=>({file:`${a.repo}/${a.skillId}`,...a.condition?{condition:a.condition}:{}}))})});if(!c.ok)throw Error("Failed to create agent");let d=await c.json(),e=d.id??d.participant?.id;await fetch(`/api/projects/${x.id}/agents`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentId:e})}),await fetch(`/api/projects/${x.id}/teams/${u}/agents`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentId:e,roleKey:a.id})}),Y(null),U(!1),await Promise.all([af(),ag()])}catch{}finally{aa(!1)}}}if(!x||C)return(0,b.jsxs)("div",{className:"flex items-center justify-center h-full text-sm text-[var(--muted-foreground)]",children:[(0,b.jsx)(h.Loader2,{className:"w-5 h-5 animate-spin mr-2"}),"Loading team..."]});if(E||!y)return(0,b.jsxs)("div",{className:"flex flex-col items-center justify-center h-full gap-3 text-[var(--muted-foreground)]",children:[(0,b.jsx)(o.AlertTriangle,{className:"w-5 h-5 text-[var(--destructive)]"}),(0,b.jsx)("p",{className:"text-sm text-[var(--destructive)]",children:E??"Team not found"}),(0,b.jsx)("button",{onClick:af,className:"text-xs underline hover:text-[var(--foreground)]",children:"Retry"})]});let av=y.metadata?.variantId;return(0,b.jsxs)("div",{className:"h-full overflow-y-auto",children:[ah&&(0,d.createPortal)((0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:"text-xs text-[var(--muted-foreground)]",children:"\\"}),(0,b.jsx)("span",{className:"text-xs text-[var(--foreground)]",children:y.name})]}),ah),(0,b.jsxs)("div",{className:"max-w-3xl mx-auto px-6 py-8 space-y-8",children:[(0,b.jsx)("div",{className:"flex items-start justify-between gap-4",children:(0,b.jsxs)("div",{className:"min-w-0",children:[G?(0,b.jsx)("input",{ref:M,value:I,onChange:a=>J(a.target.value),onBlur:aq,onKeyDown:a=>{"Enter"===a.key&&aq(),"Escape"===a.key&&(J(y.name),H(!1))},disabled:K,className:"input text-lg font-bold w-full"}):(0,b.jsxs)("button",{onClick:()=>H(!0),className:"flex items-center gap-2 group text-left",children:[(0,b.jsx)("h1",{className:"text-lg font-bold truncate",children:y.name}),(0,b.jsx)(i.Pencil,{className:"w-3.5 h-3.5 text-[var(--muted-foreground)] opacity-0 group-hover:opacity-100 transition-opacity flex-shrink-0"})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2 mt-1",children:[y.template_id&&(0,b.jsx)("span",{className:"text-[10px] font-medium uppercase tracking-wider px-2 py-0.5 rounded-full bg-[var(--muted)] text-[var(--muted-foreground)] border border-[var(--border)]",children:y.template_id}),av&&(0,b.jsx)("span",{className:"text-[10px] font-medium uppercase tracking-wider px-2 py-0.5 rounded-full bg-[var(--muted)] text-[var(--muted-foreground)] border border-[var(--border)]",children:av}),(0,b.jsxs)("span",{className:"text-xs text-[var(--muted-foreground)]",children:[y.agents.length," agent",1!==y.agents.length?"s":""]})]})]})}),(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,b.jsxs)("h2",{className:"text-xs font-medium text-[var(--muted-foreground)] uppercase tracking-wider",children:["Agents (",y.agents.length,")"]}),(0,b.jsxs)("button",{onClick:()=>{U(!T),W("existing"),$(null),Y(null)},className:"flex items-center gap-1.5 text-xs font-medium px-3 py-1.5 rounded-xl border border-[var(--border)] hover:bg-[var(--muted)]/50 transition-colors",children:[(0,b.jsx)(j.Plus,{className:"w-3.5 h-3.5"}),"Add Agent"]})]}),T&&(0,b.jsxs)("div",{className:"mb-4 p-4 rounded-2xl space-y-4",style:{background:"var(--muted)",border:"1px solid var(--border)"},children:[(0,b.jsxs)("div",{className:"flex gap-2",children:[(0,b.jsx)("button",{onClick:()=>W("existing"),className:`text-xs font-medium px-3 py-1.5 rounded-lg transition-colors ${"existing"===V?"bg-[var(--primary)] text-white":"bg-[var(--card-bg)] border border-[var(--border)] text-[var(--muted-foreground)]"}`,children:"Existing Agent"}),(0,b.jsx)("button",{onClick:()=>W("preset"),className:`text-xs font-medium px-3 py-1.5 rounded-lg transition-colors ${"preset"===V?"bg-[var(--primary)] text-white":"bg-[var(--card-bg)] border border-[var(--border)] text-[var(--muted-foreground)]"}`,children:"From Preset"})]}),"existing"===V?(0,b.jsxs)("div",{className:"space-y-3",children:[0===ap.length?(0,b.jsx)("p",{className:"text-xs text-[var(--muted-foreground)]",children:"No unassigned agents in this project."}):(0,b.jsx)(r.default,{options:ap,value:Z,onChange:$,placeholder:"Select an agent..."}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsxs)("button",{onClick:at,disabled:!Z||_,className:"btn-primary px-4 py-1.5 text-xs flex items-center gap-1.5",children:[_?(0,b.jsx)(h.Loader2,{className:"w-3.5 h-3.5 animate-spin"}):(0,b.jsx)(j.Plus,{className:"w-3.5 h-3.5"}),"Add"]}),(0,b.jsx)("button",{onClick:()=>U(!1),className:"text-xs text-[var(--muted-foreground)] hover:text-[var(--foreground)]",children:"Cancel"})]})]}):(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsx)(r.default,{options:al,value:X,onChange:Y,placeholder:"Select a role preset..."}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsxs)("button",{onClick:au,disabled:!X||_,className:"btn-primary px-4 py-1.5 text-xs flex items-center gap-1.5",children:[_?(0,b.jsx)(h.Loader2,{className:"w-3.5 h-3.5 animate-spin"}):(0,b.jsx)(j.Plus,{className:"w-3.5 h-3.5"}),"Create & Add"]}),(0,b.jsx)("button",{onClick:()=>U(!1),className:"text-xs text-[var(--muted-foreground)] hover:text-[var(--foreground)]",children:"Cancel"})]})]})]}),0===y.agents.length?(0,b.jsxs)("div",{className:"rounded-2xl p-8 text-center",style:{background:"var(--muted)",border:"1px solid var(--border)"},children:[(0,b.jsx)(l.Users,{className:"w-8 h-8 mx-auto mb-3 text-[var(--muted-foreground)]"}),(0,b.jsx)("p",{className:"text-sm text-[var(--muted-foreground)]",children:"No agents in this team yet"})]}):(0,b.jsx)("div",{className:"space-y-2",children:y.agents.sort((a,b)=>a.routing_order-b.routing_order).map(a=>{let c=aj.get(a.agent_id),d=c?.name??a.agent_id.slice(0,8),e=c?.color??"#6B7280",j=c?.provider??"claude",k=c?.model??null,l=c?.skills?.length??0;return(0,b.jsx)("div",{className:"group rounded-2xl p-4 transition-colors hover:bg-[var(--muted)]/60 cursor-pointer",style:{background:"var(--card-bg)",border:"1px solid var(--border)"},onClick:()=>v.push(`/projects/${t}/teams/${u}/agents/${a.agent_id}`),children:(0,b.jsxs)("div",{className:"flex items-center gap-4",children:[(0,b.jsx)("img",{src:(0,s.agentAvatarUrl)(a.agent_id,40,e),alt:d,className:"w-10 h-10 rounded-xl flex-shrink-0"}),(0,b.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)("span",{className:"text-sm font-medium truncate",children:d}),(0,b.jsxs)("span",{className:"text-[10px] font-mono text-[var(--muted-foreground)]",children:["#",a.routing_order]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2 mt-0.5",children:[ab===a.agent_id?(0,b.jsx)("div",{className:"w-36",onClick:a=>a.stopPropagation(),children:(0,b.jsx)(r.default,{options:am,value:a.role_key,onChange:async b=>{x&&(await fetch(`/api/projects/${x.id}/teams/${u}/agents?agentId=${encodeURIComponent(a.agent_id)}`,{method:"DELETE"}),await fetch(`/api/projects/${x.id}/teams/${u}/agents`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentId:a.agent_id,roleKey:b,routingOrder:a.routing_order})}),ac(null),await af())},placeholder:"Role..."})}):(0,b.jsx)("button",{onClick:b=>{b.stopPropagation(),ac(a.agent_id)},className:"text-[10px] px-1.5 py-0.5 rounded-md bg-[var(--muted)] text-[var(--muted-foreground)] border border-[var(--border)] hover:border-[var(--primary)] transition-colors",title:"Click to change role",children:a.role_key}),(0,b.jsxs)("span",{className:"flex items-center gap-1 text-[10px] text-[var(--muted-foreground)]",children:[(0,b.jsx)(g.Cpu,{className:"w-3 h-3"}),j,k&&(0,b.jsxs)("span",{className:"font-mono",children:["/ ",k]})]}),l>0&&(0,b.jsxs)("span",{className:"flex items-center gap-1 text-[10px] text-[var(--muted-foreground)]",children:[(0,b.jsx)(n.Zap,{className:"w-3 h-3"}),l]})]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity flex-shrink-0",onClick:a=>a.stopPropagation(),children:[(0,b.jsx)("button",{onClick:()=>ae(a.agent_id),className:"p-1.5 rounded-lg hover:bg-[var(--muted)] text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-colors",title:"Edit agent",children:(0,b.jsx)(i.Pencil,{className:"w-3.5 h-3.5"})}),(0,b.jsx)("button",{onClick:()=>ar(a.agent_id),disabled:R===a.agent_id,className:"p-1.5 rounded-lg hover:bg-red-500/15 text-[var(--muted-foreground)] hover:text-red-400 transition-colors",title:"Remove from team",children:R===a.agent_id?(0,b.jsx)(h.Loader2,{className:"w-3.5 h-3.5 animate-spin"}):(0,b.jsx)(m.X,{className:"w-3.5 h-3.5"})})]}),(0,b.jsx)(f.ChevronRight,{className:"w-4 h-4 text-[var(--muted-foreground)] opacity-0 group-hover:opacity-100 transition-opacity flex-shrink-0"})]})},a.agent_id)})})]}),(0,b.jsxs)("div",{className:"pt-6 border-t",style:{borderColor:"var(--border)"},children:[(0,b.jsx)("h2",{className:"text-xs font-medium text-[var(--muted-foreground)] uppercase tracking-wider mb-3",children:"Danger Zone"}),N?(0,b.jsxs)("div",{className:"flex items-center gap-3 p-4 rounded-2xl bg-red-500/5 border border-red-500/20",children:[(0,b.jsx)(o.AlertTriangle,{className:"w-4 h-4 text-red-400 flex-shrink-0"}),(0,b.jsx)("span",{className:"text-sm text-red-400 flex-1",children:"Delete this team? This cannot be undone."}),(0,b.jsx)("button",{onClick:as,disabled:P,className:"px-3 py-1.5 text-xs font-medium rounded-lg bg-red-600 hover:bg-red-700 text-white transition-colors disabled:opacity-50",children:P?"Deleting...":"Confirm Delete"}),(0,b.jsx)("button",{onClick:()=>O(!1),disabled:P,className:"px-3 py-1.5 text-xs rounded-lg border border-[var(--border)] hover:bg-[var(--muted)]/50 transition-colors",children:"Cancel"})]}):(0,b.jsxs)("button",{onClick:()=>O(!0),className:"flex items-center gap-2 text-xs text-[var(--muted-foreground)] hover:text-red-400 transition-colors",children:[(0,b.jsx)(k.Trash2,{className:"w-3.5 h-3.5"}),"Delete Team"]})]})]}),ad&&aj.get(ad)&&(0,b.jsx)(s.AgentForm,{title:"Edit agent",initial:{name:aj.get(ad).name,role:aj.get(ad).role||"",provider:aj.get(ad).provider,model:aj.get(ad).model||"",identity:aj.get(ad).identity||"",color:aj.get(ad).color,skills:aj.get(ad).skills||[],skillBindings:aj.get(ad).skillBindings||[]},agentId:ad,submitLabel:"Save",onSubmit:async a=>{await fetch("/api/participants",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:ad,name:a.name,role:a.role||null,provider:a.provider,model:a.model,color:a.color,...a.identity?{identity:a.identity}:{},skills:a.skills??[],skillBindings:a.skillBindings??[]})}),ae(null),await ag()},onCancel:()=>ae(null)})]})}])}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=apps_local_app_projects_%5Bslug%5D_teams_%5BteamId%5D_page_tsx_0iyozfl._.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
module.exports=[375939,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(50944),e=a.i(319405),f=a.i(766412),g=a.i(830284),h=a.i(8e4),i=a.i(627421),j=a.i(811760),k=a.i(349692),l=a.i(667597),m=a.i(353532),n=a.i(985339),o=a.i(824179);let p=[{id:"claude",label:"Claude Code"},{id:"gemini",label:"Gemini CLI"},{id:"ollama",label:"Ollama"},{id:"codex",label:"Codex CLI"}],q={claude:["claude-opus-4-6","claude-sonnet-4-6","claude-haiku-4-5"],gemini:["gemini-3-pro-preview","gemini-3-flash-preview"],ollama:["glm-5:cloud","qwen3.5:397b-cloud","qwen3.5:cloud","minimax-m2.5:cloud","kimi-k2.5:cloud"],codex:["gpt-5.3-codex","gpt-5.1-code-mini"]};function r({value:a,onChange:d,suggestions:e,placeholder:f="Model name...",disabled:g}){let[h,i]=(0,c.useState)(!1),[j,k]=(0,c.useState)(""),l=(0,c.useRef)(null);(0,c.useEffect)(()=>{function a(a){l.current&&!l.current.contains(a.target)&&i(!1)}return document.addEventListener("mousedown",a),()=>document.removeEventListener("mousedown",a)},[]);let m=e.filter(b=>b.toLowerCase().includes((j||a).toLowerCase()));return(0,b.jsxs)("div",{ref:l,className:"relative flex-1",children:[(0,b.jsx)("input",{type:"text",value:a,placeholder:f,disabled:g,onChange:a=>{d(a.target.value),k(a.target.value),i(!0)},onFocus:()=>i(!0),className:"w-full h-8 px-2.5 text-xs rounded-lg border bg-[var(--background)] text-[var(--foreground)] placeholder:text-[var(--muted-foreground)] focus:outline-none focus:border-[var(--foreground)]/40 transition-colors disabled:opacity-50",style:{borderColor:"var(--border)"}}),h&&m.length>0&&(0,b.jsx)("div",{className:"absolute z-50 top-full left-0 right-0 mt-1 max-h-[160px] overflow-y-auto rounded-lg border bg-[var(--background)] shadow-lg",style:{borderColor:"var(--border)"},children:m.map(c=>(0,b.jsx)("button",{type:"button",onClick:()=>{d(c),k(""),i(!1)},className:`w-full text-left px-2.5 py-1.5 text-xs transition-colors hover:bg-[var(--muted)] ${c===a?"text-[var(--foreground)] font-medium":"text-[var(--muted-foreground)]"}`,children:c},c))})]})}function s({value:a,onChange:d,providers:e,disabled:f}){let[g,h]=(0,c.useState)(!1),k=(0,c.useRef)(null),l=e.find(b=>b.id===a);return(0,c.useEffect)(()=>{function a(a){k.current&&!k.current.contains(a.target)&&h(!1)}return document.addEventListener("mousedown",a),()=>document.removeEventListener("mousedown",a)},[]),(0,b.jsxs)("div",{ref:k,className:"relative shrink-0",children:[(0,b.jsxs)("button",{type:"button",disabled:f,onClick:()=>h(!g),className:"h-8 px-2.5 pr-7 text-xs rounded-lg border bg-[var(--background)] text-left transition-colors hover:border-[var(--foreground)]/40 disabled:opacity-50 disabled:cursor-not-allowed min-w-[120px]",style:{borderColor:"var(--border)"},children:[(0,b.jsx)("span",{className:l?"text-[var(--foreground)]":"text-[var(--muted-foreground)]",children:l?.label??"Provider..."}),(0,b.jsx)(j.ChevronDown,{className:"absolute right-2 top-1/2 -translate-y-1/2 w-3 h-3 text-[var(--muted-foreground)]"})]}),g&&(0,b.jsx)("div",{className:"absolute z-50 top-full left-0 mt-1 min-w-[160px] rounded-lg border bg-[var(--background)] shadow-lg overflow-hidden",style:{borderColor:"var(--border)"},children:e.map(c=>(0,b.jsxs)("button",{type:"button",onClick:()=>{d(c.id),h(!1)},className:`w-full text-left px-3 py-2 text-xs transition-colors hover:bg-[var(--muted)] flex items-center justify-between gap-3 ${c.id===a?"text-[var(--foreground)] font-medium":"text-[var(--muted-foreground)]"}`,children:[c.label,c.id===a&&(0,b.jsx)(i.Check,{className:"w-3 h-3 text-[var(--foreground)]"})]},c.id))})]})}function t({provider:a,model:c,onProviderChange:d,onModelChange:e,label:f,disabled:g}){let h=q[a]??[];return(0,b.jsxs)("div",{className:"space-y-1.5",children:[f&&(0,b.jsx)("span",{className:"text-[10px] font-medium text-[var(--muted-foreground)] uppercase tracking-wide",children:f}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(s,{value:a,onChange:a=>{d(a),e("")},providers:p,disabled:g}),(0,b.jsx)(r,{value:c,onChange:e,suggestions:h,placeholder:a?"Select or type model...":"Select a provider first",disabled:g})]})]})}let u=["#D97706","#2563EB","#059669","#DC2626","#7C3AED","#DB2777","#0891B2"];function v(a){return(0,e.getAgentPresetBindings)(a).map(a=>({repo:a.repo,skillId:a.skillId,...a.condition?{condition:a.condition}:{}}))}function w(a,b,c,d,e){return{id:a,roleId:b.id,name:b.name,title:b.title,provider:d||"claude",model:e||"",identity:b.identity,color:c,skills:[],skillBindings:v(b)}}a.s(["default",0,function({params:a}){let{slug:j}=(0,c.use)(a),p=(0,d.useRouter)(),{projects:q}=(0,g.useProjectsWithAgents)(),r=q.find(a=>a.slug===j),[s,x]=(0,c.useState)(null),[y,z]=(0,c.useState)(null),[A,B]=(0,c.useState)([]),[C,D]=(0,c.useState)(""),[E,F]=(0,c.useState)(""),[G,H]=(0,c.useState)(""),[I,J]=(0,c.useState)(!1),[K,L]=(0,c.useState)(null),[M,N]=(0,c.useState)(null),O=(0,c.useMemo)(()=>(0,e.listTeamTemplates)(),[]),P=(0,c.useMemo)(()=>(0,e.listAgentPresets)(),[]),Q=(0,c.useRef)(0),R=(0,c.useRef)(0),S=(0,c.useMemo)(()=>new Map(P.map(a=>[a.id,a])),[P]),T=(0,c.useMemo)(()=>O.find(a=>a.id===s)??null,[O,s]),U=(0,c.useMemo)(()=>O.map(a=>({id:a.id,label:a.name,description:a.description,meta:a.variants?`${a.variants.length} specializations`:`${a.agents.length} agents`})),[O]),V=(0,c.useMemo)(()=>T?.variants?T.variants.map(a=>({id:a.id,label:a.name,description:a.description,meta:`${a.agents.length} agents`})):[],[T]),W=(0,c.useMemo)(()=>P.map(a=>({id:a.id,label:a.name,description:a.identity,meta:a.skillProfileId})),[P]);function X(){let a=`draft-agent-${Q.current}`;return Q.current+=1,a}function Y(){let a=`agent-editor-${R.current}`;return R.current+=1,a}function Z(a){return u[a%u.length]}function $(a){B(a.map((a,b)=>w(X(),a,Z(b),E||void 0,G)))}function _(a,b){if("edit"===a&&b)return void N({key:Y(),mode:a,draftId:b.id,initial:b});let c=(T?.variants&&y?T.variants.find(a=>a.id===y)?.agents[0]:void 0)??T?.agents[0]??P[0];c&&N({key:Y(),mode:a,draftId:null,initial:w(X(),c,Z(A.length),E||void 0,G)})}async function aa(){if(C.trim()&&0!==A.length&&r){J(!0),L(null);try{let a={name:C.trim(),provider:E||void 0,model:G||void 0,agents:A.map(a=>({roleId:a.roleId,name:a.name,title:a.title||void 0,provider:a.provider||E||"claude",model:a.model||G||"",identity:a.identity||void 0,color:a.color,skills:a.skills??[],skillBindings:a.skillBindings??[]}))};s&&(a.templateId=s),y&&(a.variantId=y);let b=await fetch(`/api/projects/${r.id}/teams`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!b.ok){let a=await b.json().catch(()=>({}));throw Error(a.error||`Failed to create team (${b.status})`)}p.push(`/projects/${j}/teams`)}catch(a){L(a instanceof Error?a.message:"Failed to create team"),J(!1)}}}if(!r)return(0,b.jsx)("div",{className:"flex items-center justify-center h-full text-sm text-zinc-500",children:"Loading..."});let ab=!!T?.variants,ac=A.length>0;return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"h-full overflow-y-auto",children:(0,b.jsxs)("div",{className:"max-w-2xl mx-auto px-6 py-8 space-y-6",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h1",{className:"text-lg font-bold",children:"Add Team"}),(0,b.jsx)("p",{className:"text-xs text-[var(--muted-foreground)]",children:"Pick a template, customize agents, and create."})]}),K&&(0,b.jsx)("div",{className:"p-3 rounded-xl bg-[var(--destructive-muted)] border border-[var(--destructive)]/20 text-sm text-[var(--destructive)]",children:K}),(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"block text-xs font-medium text-[var(--muted-foreground)] mb-1.5",children:"Team name"}),(0,b.jsx)("input",{value:C,onChange:a=>D(a.target.value),placeholder:"e.g. Core Engineering",className:"input w-full text-sm",disabled:I,autoFocus:!0})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"block text-xs font-medium text-[var(--muted-foreground)] mb-1.5",children:"Template"}),(0,b.jsx)(f.default,{options:U,value:s,onChange:function(a){x(a),z(null),L(null);let b=O.find(b=>b.id===a);if(b){if(D(b.name),b.variants?.length)return void B([]);$(b.agents)}},placeholder:"Select a team template...",disabled:I})]}),ab&&(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"block text-xs font-medium text-[var(--muted-foreground)] mb-1.5",children:"Specialization"}),(0,b.jsx)(f.default,{options:V,value:y,onChange:function(a){z(a),L(null);let b=T?.variants?.find(b=>b.id===a);b&&(D(b.name),$(b.agents))},placeholder:"Select a specialization...",disabled:I})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"block text-xs font-medium text-[var(--muted-foreground)] mb-1.5",children:"Default provider & model"}),(0,b.jsx)(t,{provider:E,model:G,onProviderChange:a=>F(a||""),onModelChange:H,disabled:I}),(0,b.jsx)("p",{className:"mt-1 text-[10px] text-[var(--muted-foreground)]",children:"Applies to all agents unless individually overridden."})]}),(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3 mb-2",children:[(0,b.jsxs)("label",{className:"block text-xs font-medium text-[var(--muted-foreground)]",children:["Agents (",A.length,")"]}),(0,b.jsxs)("button",{type:"button",onClick:()=>_("create"),disabled:I,className:"inline-flex items-center gap-1.5 rounded-xl border px-3 py-1.5 text-xs font-medium transition-colors hover:bg-[var(--muted)]/50 disabled:opacity-50 disabled:cursor-not-allowed",style:{borderColor:"var(--border)"},children:[(0,b.jsx)(m.Plus,{className:"w-3.5 h-3.5"}),"Add Agent"]})]}),ac?(0,b.jsx)("div",{className:"space-y-2",children:A.map(a=>{let c=S.get(a.roleId);return(0,b.jsxs)("div",{className:"flex items-start justify-between gap-3 rounded-xl px-3 py-3",style:{background:"var(--muted)",border:"1px solid var(--border)"},children:[(0,b.jsxs)("div",{className:"flex items-start gap-2.5 min-w-0",children:[(0,b.jsx)("div",{className:"mt-0.5 w-5 h-5 rounded-md flex items-center justify-center flex-shrink-0 bg-emerald-500/15",children:(0,b.jsx)(i.Check,{className:"w-3 h-3 text-emerald-400"})}),(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("div",{className:"text-sm font-medium truncate",children:a.name}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5 mt-1",children:[c&&(0,b.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 rounded-full",style:{background:"var(--card-bg)",color:"var(--muted-foreground)"},children:c.name}),a.title&&(0,b.jsx)("span",{className:"text-xs text-[var(--muted-foreground)] truncate",children:a.title}),a.model&&a.model!==G&&(0,b.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 rounded-full font-medium bg-violet-500/15 text-violet-400",children:"custom"}),(a.model||G)&&(0,b.jsx)("span",{className:"text-[10px] text-[var(--muted-foreground)]",children:a.model||G}),(a.skillBindings?.length??0)>0&&(0,b.jsxs)("span",{className:"text-[10px] text-[var(--muted-foreground)]",children:[a.skillBindings?.length," skills"]})]})]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-1",children:[(0,b.jsx)("button",{type:"button",onClick:()=>_("edit",a),disabled:I,className:"p-1.5 rounded-lg text-[var(--muted-foreground)] hover:text-[var(--foreground)] hover:bg-[var(--card-bg)] transition-colors",title:`Edit ${a.name}`,children:(0,b.jsx)(l.Pencil,{className:"w-3.5 h-3.5"})}),(0,b.jsx)("button",{type:"button",onClick:()=>{var b;return b=a.id,void B(a=>a.filter(a=>a.id!==b))},disabled:I,className:"p-1.5 rounded-lg text-[var(--muted-foreground)] hover:text-red-400 hover:bg-red-500/15 transition-colors",title:`Remove ${a.name}`,children:(0,b.jsx)(o.X,{className:"w-3.5 h-3.5"})})]})]},a.id)})}):(0,b.jsx)("div",{className:"rounded-xl px-4 py-5 text-sm text-[var(--muted-foreground)]",style:{background:"var(--muted)",border:"1px dashed var(--border)"},children:"Add your first agent using the full agent form, then assign its role from a preset."})]}),(0,b.jsxs)("div",{className:"flex items-center gap-3 pt-4 border-t",style:{borderColor:"var(--border)"},children:[(0,b.jsx)("button",{onClick:()=>p.push(`/projects/${j}/teams`),disabled:I,className:"px-4 py-2 rounded-xl border hover:bg-[var(--muted)]/50 transition-colors text-sm",style:{borderColor:"var(--border)"},children:"Cancel"}),(0,b.jsx)("button",{onClick:aa,disabled:!C.trim()||!ac||I,className:"btn-primary px-5 py-2 text-sm min-w-[120px] flex items-center justify-center gap-2",children:I?(0,b.jsx)(k.Loader2,{className:"w-4 h-4 animate-spin"}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(n.Users,{className:"w-4 h-4"}),"Create Team (",A.length,")"]})})]})]})}),M&&(0,b.jsx)(h.AgentForm,{title:"edit"===M.mode?"Edit agent":"Add agent",initial:M.initial,submitLabel:"edit"===M.mode?"Save":"Add",onSubmit:a=>(function(a){let b=a.roleId;if(!b||!S.has(b)||!M)return;let c={id:M.draftId??X(),roleId:b,name:a.name.trim(),title:a.title?.trim(),provider:a.provider,model:a.model.trim(),identity:a.identity.trim(),color:a.color,skills:a.skills??[],skillBindings:a.skillBindings??[]};B(a=>"edit"===M.mode&&M.draftId?a.map(a=>a.id===M.draftId?c:a):[...a,c]),N(null)})(a),onCancel:()=>N(null),roleOptions:W,onRolePresetChange:(a,b)=>{let c=S.get(a);return c?{...b,roleId:c.id,name:c.name,title:c.title,identity:c.identity,skills:[],skillBindings:v(c)}:b}},M.key)]})}])}];
|
|
1
|
+
module.exports=[375939,a=>{"use strict";var b=a.i(187924),c=a.i(572131),d=a.i(50944),e=a.i(319405),f=a.i(766412),g=a.i(830284),h=a.i(8e4),i=a.i(627421),j=a.i(811760),k=a.i(349692),l=a.i(667597),m=a.i(353532),n=a.i(985339),o=a.i(824179);let p=[{id:"claude",label:"Claude Code"},{id:"gemini",label:"Gemini CLI"},{id:"ollama",label:"Ollama"},{id:"codex",label:"Codex CLI"}],q={claude:["claude-opus-4-6","claude-sonnet-4-6","claude-haiku-4-5"],gemini:["gemini-3-pro-preview","gemini-3-flash-preview"],ollama:["glm-5:cloud","qwen3.5:397b-cloud","qwen3.5:cloud","minimax-m2.5:cloud","kimi-k2.5:cloud"],codex:["gpt-5.4","gpt-5.3-codex","gpt-5.1-code-mini"]};function r({value:a,onChange:d,suggestions:e,placeholder:f="Model name...",disabled:g}){let[h,i]=(0,c.useState)(!1),[j,k]=(0,c.useState)(""),l=(0,c.useRef)(null);(0,c.useEffect)(()=>{function a(a){l.current&&!l.current.contains(a.target)&&i(!1)}return document.addEventListener("mousedown",a),()=>document.removeEventListener("mousedown",a)},[]);let m=e.filter(b=>b.toLowerCase().includes((j||a).toLowerCase()));return(0,b.jsxs)("div",{ref:l,className:"relative flex-1",children:[(0,b.jsx)("input",{type:"text",value:a,placeholder:f,disabled:g,onChange:a=>{d(a.target.value),k(a.target.value),i(!0)},onFocus:()=>i(!0),className:"w-full h-8 px-2.5 text-xs rounded-lg border bg-[var(--background)] text-[var(--foreground)] placeholder:text-[var(--muted-foreground)] focus:outline-none focus:border-[var(--foreground)]/40 transition-colors disabled:opacity-50",style:{borderColor:"var(--border)"}}),h&&m.length>0&&(0,b.jsx)("div",{className:"absolute z-50 top-full left-0 right-0 mt-1 max-h-[160px] overflow-y-auto rounded-lg border bg-[var(--background)] shadow-lg",style:{borderColor:"var(--border)"},children:m.map(c=>(0,b.jsx)("button",{type:"button",onClick:()=>{d(c),k(""),i(!1)},className:`w-full text-left px-2.5 py-1.5 text-xs transition-colors hover:bg-[var(--muted)] ${c===a?"text-[var(--foreground)] font-medium":"text-[var(--muted-foreground)]"}`,children:c},c))})]})}function s({value:a,onChange:d,providers:e,disabled:f}){let[g,h]=(0,c.useState)(!1),k=(0,c.useRef)(null),l=e.find(b=>b.id===a);return(0,c.useEffect)(()=>{function a(a){k.current&&!k.current.contains(a.target)&&h(!1)}return document.addEventListener("mousedown",a),()=>document.removeEventListener("mousedown",a)},[]),(0,b.jsxs)("div",{ref:k,className:"relative shrink-0",children:[(0,b.jsxs)("button",{type:"button",disabled:f,onClick:()=>h(!g),className:"h-8 px-2.5 pr-7 text-xs rounded-lg border bg-[var(--background)] text-left transition-colors hover:border-[var(--foreground)]/40 disabled:opacity-50 disabled:cursor-not-allowed min-w-[120px]",style:{borderColor:"var(--border)"},children:[(0,b.jsx)("span",{className:l?"text-[var(--foreground)]":"text-[var(--muted-foreground)]",children:l?.label??"Provider..."}),(0,b.jsx)(j.ChevronDown,{className:"absolute right-2 top-1/2 -translate-y-1/2 w-3 h-3 text-[var(--muted-foreground)]"})]}),g&&(0,b.jsx)("div",{className:"absolute z-50 top-full left-0 mt-1 min-w-[160px] rounded-lg border bg-[var(--background)] shadow-lg overflow-hidden",style:{borderColor:"var(--border)"},children:e.map(c=>(0,b.jsxs)("button",{type:"button",onClick:()=>{d(c.id),h(!1)},className:`w-full text-left px-3 py-2 text-xs transition-colors hover:bg-[var(--muted)] flex items-center justify-between gap-3 ${c.id===a?"text-[var(--foreground)] font-medium":"text-[var(--muted-foreground)]"}`,children:[c.label,c.id===a&&(0,b.jsx)(i.Check,{className:"w-3 h-3 text-[var(--foreground)]"})]},c.id))})]})}function t({provider:a,model:c,onProviderChange:d,onModelChange:e,label:f,disabled:g}){let h=q[a]??[];return(0,b.jsxs)("div",{className:"space-y-1.5",children:[f&&(0,b.jsx)("span",{className:"text-[10px] font-medium text-[var(--muted-foreground)] uppercase tracking-wide",children:f}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsx)(s,{value:a,onChange:a=>{d(a),e("")},providers:p,disabled:g}),(0,b.jsx)(r,{value:c,onChange:e,suggestions:h,placeholder:a?"Select or type model...":"Select a provider first",disabled:g})]})]})}let u=["#D97706","#2563EB","#059669","#DC2626","#7C3AED","#DB2777","#0891B2"];function v(a){return(0,e.getAgentPresetBindings)(a).map(a=>({repo:a.repo,skillId:a.skillId,...a.condition?{condition:a.condition}:{}}))}function w(a,b,c,d,e){return{id:a,roleId:b.id,name:b.name,role:b.role,provider:d||"claude",model:e||"",identity:b.identity,color:c,skills:[],skillBindings:v(b)}}a.s(["default",0,function({params:a}){let{slug:j}=(0,c.use)(a),p=(0,d.useRouter)(),{projects:q}=(0,g.useProjectsWithAgents)(),r=q.find(a=>a.slug===j),[s,x]=(0,c.useState)(null),[y,z]=(0,c.useState)(null),[A,B]=(0,c.useState)([]),[C,D]=(0,c.useState)(""),[E,F]=(0,c.useState)(""),[G,H]=(0,c.useState)(""),[I,J]=(0,c.useState)(!1),[K,L]=(0,c.useState)(null),[M,N]=(0,c.useState)(null),O=(0,c.useMemo)(()=>(0,e.listTeamTemplates)(),[]),P=(0,c.useMemo)(()=>(0,e.listAgentPresets)(),[]),Q=(0,c.useRef)(0),R=(0,c.useRef)(0),S=(0,c.useMemo)(()=>new Map(P.map(a=>[a.id,a])),[P]),T=(0,c.useMemo)(()=>O.find(a=>a.id===s)??null,[O,s]),U=(0,c.useMemo)(()=>O.map(a=>({id:a.id,label:a.name,description:a.description,meta:a.variants?`${a.variants.length} specializations`:`${a.agents.length} agents`})),[O]),V=(0,c.useMemo)(()=>T?.variants?T.variants.map(a=>({id:a.id,label:a.name,description:a.description,meta:`${a.agents.length} agents`})):[],[T]),W=(0,c.useMemo)(()=>P.map(a=>({id:a.id,label:a.role,description:a.identity,meta:a.skillProfileId})),[P]);function X(){let a=`draft-agent-${Q.current}`;return Q.current+=1,a}function Y(){let a=`agent-editor-${R.current}`;return R.current+=1,a}function Z(a){return u[a%u.length]}function $(a){B(a.map((a,b)=>w(X(),a,Z(b),E||void 0,G)))}function _(a,b){if("edit"===a&&b)return void N({key:Y(),mode:a,draftId:b.id,initial:b});let c=(T?.variants&&y?T.variants.find(a=>a.id===y)?.agents[0]:void 0)??T?.agents[0]??P[0];c&&N({key:Y(),mode:a,draftId:null,initial:w(X(),c,Z(A.length),E||void 0,G)})}async function aa(){if(C.trim()&&0!==A.length&&r){J(!0),L(null);try{let a={name:C.trim(),provider:E||void 0,model:G||void 0,agents:A.map(a=>({roleId:a.roleId,name:a.name,role:a.role||void 0,provider:a.provider||E||"claude",model:a.model||G||"",identity:a.identity||void 0,color:a.color,skills:a.skills??[],skillBindings:a.skillBindings??[]}))};s&&(a.templateId=s),y&&(a.variantId=y);let b=await fetch(`/api/projects/${r.id}/teams`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(!b.ok){let a=await b.json().catch(()=>({}));throw Error(a.error||`Failed to create team (${b.status})`)}p.push(`/projects/${j}/teams`)}catch(a){L(a instanceof Error?a.message:"Failed to create team"),J(!1)}}}if(!r)return(0,b.jsx)("div",{className:"flex items-center justify-center h-full text-sm text-zinc-500",children:"Loading..."});let ab=!!T?.variants,ac=A.length>0;return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("div",{className:"h-full overflow-y-auto",children:(0,b.jsxs)("div",{className:"max-w-2xl mx-auto px-6 py-8 space-y-6",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h1",{className:"text-lg font-bold",children:"Add Team"}),(0,b.jsx)("p",{className:"text-xs text-[var(--muted-foreground)]",children:"Pick a template, customize agents, and create."})]}),K&&(0,b.jsx)("div",{className:"p-3 rounded-xl bg-[var(--destructive-muted)] border border-[var(--destructive)]/20 text-sm text-[var(--destructive)]",children:K}),(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"block text-xs font-medium text-[var(--muted-foreground)] mb-1.5",children:"Team name"}),(0,b.jsx)("input",{value:C,onChange:a=>D(a.target.value),placeholder:"e.g. Core Engineering",className:"input w-full text-sm",disabled:I,autoFocus:!0})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"block text-xs font-medium text-[var(--muted-foreground)] mb-1.5",children:"Template"}),(0,b.jsx)(f.default,{options:U,value:s,onChange:function(a){x(a),z(null),L(null);let b=O.find(b=>b.id===a);if(b){if(D(b.name),b.variants?.length)return void B([]);$(b.agents)}},placeholder:"Select a team template...",disabled:I})]}),ab&&(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"block text-xs font-medium text-[var(--muted-foreground)] mb-1.5",children:"Specialization"}),(0,b.jsx)(f.default,{options:V,value:y,onChange:function(a){z(a),L(null);let b=T?.variants?.find(b=>b.id===a);b&&(D(b.name),$(b.agents))},placeholder:"Select a specialization...",disabled:I})]}),(0,b.jsxs)("div",{children:[(0,b.jsx)("label",{className:"block text-xs font-medium text-[var(--muted-foreground)] mb-1.5",children:"Default provider & model"}),(0,b.jsx)(t,{provider:E,model:G,onProviderChange:a=>F(a||""),onModelChange:H,disabled:I}),(0,b.jsx)("p",{className:"mt-1 text-[10px] text-[var(--muted-foreground)]",children:"Applies to all agents unless individually overridden."})]}),(0,b.jsxs)("div",{children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-3 mb-2",children:[(0,b.jsxs)("label",{className:"block text-xs font-medium text-[var(--muted-foreground)]",children:["Agents (",A.length,")"]}),(0,b.jsxs)("button",{type:"button",onClick:()=>_("create"),disabled:I,className:"inline-flex items-center gap-1.5 rounded-xl border px-3 py-1.5 text-xs font-medium transition-colors hover:bg-[var(--muted)]/50 disabled:opacity-50 disabled:cursor-not-allowed",style:{borderColor:"var(--border)"},children:[(0,b.jsx)(m.Plus,{className:"w-3.5 h-3.5"}),"Add Agent"]})]}),ac?(0,b.jsx)("div",{className:"space-y-2",children:A.map(a=>(0,b.jsxs)("div",{className:"flex items-start justify-between gap-3 rounded-xl px-3 py-3",style:{background:"var(--muted)",border:"1px solid var(--border)"},children:[(0,b.jsxs)("div",{className:"flex items-start gap-2.5 min-w-0",children:[(0,b.jsx)("div",{className:"mt-0.5 w-5 h-5 rounded-md flex items-center justify-center flex-shrink-0 bg-emerald-500/15",children:(0,b.jsx)(i.Check,{className:"w-3 h-3 text-emerald-400"})}),(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("div",{className:"text-sm font-medium truncate",children:a.name}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5 mt-1",children:[a.role&&(0,b.jsx)("span",{className:"text-xs text-[var(--muted-foreground)] truncate",children:a.role}),a.model&&a.model!==G&&(0,b.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 rounded-full font-medium bg-violet-500/15 text-violet-400",children:"custom"}),(a.model||G)&&(0,b.jsx)("span",{className:"text-[10px] text-[var(--muted-foreground)]",children:a.model||G}),(a.skillBindings?.length??0)>0&&(0,b.jsxs)("span",{className:"text-[10px] text-[var(--muted-foreground)]",children:[a.skillBindings?.length," skills"]})]})]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-1",children:[(0,b.jsx)("button",{type:"button",onClick:()=>_("edit",a),disabled:I,className:"p-1.5 rounded-lg text-[var(--muted-foreground)] hover:text-[var(--foreground)] hover:bg-[var(--card-bg)] transition-colors",title:`Edit ${a.name}`,children:(0,b.jsx)(l.Pencil,{className:"w-3.5 h-3.5"})}),(0,b.jsx)("button",{type:"button",onClick:()=>{var b;return b=a.id,void B(a=>a.filter(a=>a.id!==b))},disabled:I,className:"p-1.5 rounded-lg text-[var(--muted-foreground)] hover:text-red-400 hover:bg-red-500/15 transition-colors",title:`Remove ${a.name}`,children:(0,b.jsx)(o.X,{className:"w-3.5 h-3.5"})})]})]},a.id))}):(0,b.jsx)("div",{className:"rounded-xl px-4 py-5 text-sm text-[var(--muted-foreground)]",style:{background:"var(--muted)",border:"1px dashed var(--border)"},children:"Add your first agent using the full agent form, then assign its role from a preset."})]}),(0,b.jsxs)("div",{className:"flex items-center gap-3 pt-4 border-t",style:{borderColor:"var(--border)"},children:[(0,b.jsx)("button",{onClick:()=>p.push(`/projects/${j}/teams`),disabled:I,className:"px-4 py-2 rounded-xl border hover:bg-[var(--muted)]/50 transition-colors text-sm",style:{borderColor:"var(--border)"},children:"Cancel"}),(0,b.jsx)("button",{onClick:aa,disabled:!C.trim()||!ac||I,className:"btn-primary px-5 py-2 text-sm min-w-[120px] flex items-center justify-center gap-2",children:I?(0,b.jsx)(k.Loader2,{className:"w-4 h-4 animate-spin"}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(n.Users,{className:"w-4 h-4"}),"Create Team (",A.length,")"]})})]})]})}),M&&(0,b.jsx)(h.AgentForm,{title:"edit"===M.mode?"Edit agent":"Add agent",initial:M.initial,submitLabel:"edit"===M.mode?"Save":"Add",onSubmit:a=>(function(a){let b=a.roleId;if(!b||!S.has(b)||!M)return;let c={id:M.draftId??X(),roleId:b,name:a.name.trim(),role:a.role?.trim(),provider:a.provider,model:a.model.trim(),identity:a.identity.trim(),color:a.color,skills:a.skills??[],skillBindings:a.skillBindings??[]};B(a=>"edit"===M.mode&&M.draftId?a.map(a=>a.id===M.draftId?c:a):[...a,c]),N(null)})(a),onCancel:()=>N(null),roleOptions:W,onRolePresetChange:(a,b)=>{let c=S.get(a);return c?{...b,roleId:c.id,name:c.name,role:c.role,identity:c.identity,skills:[],skillBindings:v(c)}:b}},M.key)]})}])}];
|
|
2
2
|
|
|
3
3
|
//# sourceMappingURL=apps_local_app_projects_%5Bslug%5D_teams_new_page_tsx_0yqd0a5._.js.map
|