@chorus-aidlc/chorus 0.11.1 → 0.12.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/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/app-build-manifest.json +431 -418
- package/.next/standalone/.next/app-path-routes-manifest.json +41 -39
- package/.next/standalone/.next/build-manifest.json +5 -5
- package/.next/standalone/.next/prerender-manifest.json +33 -33
- package/.next/standalone/.next/routes-manifest.json +8 -0
- package/.next/standalone/.next/server/app/(dashboard)/project-groups/[uuid]/page.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/project-groups/[uuid]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/project-groups/[uuid]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/activity/page.js +2 -2
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/activity/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/activity/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page.js +2 -2
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page.js +2 -2
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page.js +2 -2
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page.js +2 -2
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page.js +2 -2
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/page.js +2 -2
- package/.next/standalone/.next/server/app/(dashboard)/projects/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/settings/page.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/settings/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/settings/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_not-found.html +1 -1
- package/.next/standalone/.next/server/app/_not-found.rsc +3 -3
- package/.next/standalone/.next/server/app/admin/companies/[uuid]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/admin/companies/new/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/admin/companies/new.html +1 -1
- package/.next/standalone/.next/server/app/admin/companies/new.rsc +3 -3
- package/.next/standalone/.next/server/app/admin/companies/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/admin/companies.html +1 -1
- package/.next/standalone/.next/server/app/admin/companies.rsc +3 -3
- package/.next/standalone/.next/server/app/admin/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/admin.html +1 -1
- package/.next/standalone/.next/server/app/admin.rsc +3 -3
- package/.next/standalone/.next/server/app/api/admin/companies/[uuid]/route.js +1 -1
- package/.next/standalone/.next/server/app/api/admin/companies/[uuid]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/admin/companies/[uuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/admin/companies/route.js +1 -1
- package/.next/standalone/.next/server/app/api/admin/companies/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/admin/companies/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/admin/login/route.js +1 -1
- package/.next/standalone/.next/server/app/api/admin/login/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/admin/session/route.js +1 -1
- package/.next/standalone/.next/server/app/api/admin/session/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agent-connections/route.js +1 -1
- package/.next/standalone/.next/server/app/api/agent-connections/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/agent-connections/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agents/[uuid]/route.js +1 -1
- package/.next/standalone/.next/server/app/api/agents/[uuid]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/agents/[uuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agents/[uuid]/sessions/route.js +1 -1
- package/.next/standalone/.next/server/app/api/agents/[uuid]/sessions/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/agents/[uuid]/sessions/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agents/route.js +1 -1
- package/.next/standalone/.next/server/app/api/agents/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/agents/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/api-keys/[uuid]/route.js +1 -1
- package/.next/standalone/.next/server/app/api/api-keys/[uuid]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/api-keys/[uuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/api-keys/route.js +1 -1
- package/.next/standalone/.next/server/app/api/api-keys/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/api-keys/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/callback/route.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/callback/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/check-default/route.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/check-default/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/company-oidc/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/default-login/route.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/default-login/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/identify/route.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/identify/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/logout/route.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/me/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/refresh/route.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/refresh/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/session/route.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/session/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/auth/session/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/sync-token/route.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/sync-token/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/comments/route.js +1 -1
- package/.next/standalone/.next/server/app/api/comments/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/comments/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon/control/route.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon/control/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/daemon/control/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon/execution-state/route.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon/execution-state/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/daemon/execution-state/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon/executions/route.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon/executions/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/daemon/executions/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon/pending-turns/route.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon/pending-turns/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/daemon/pending-turns/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon/report-interrupt/route.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon/report-interrupt/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/daemon/report-interrupt/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon/resume/route.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon/resume/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/daemon/resume/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon/transcript/route.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon/transcript/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/daemon/transcript/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon/turn-advance/route.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon/turn-advance/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/daemon/turn-advance/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/instruction/route.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/instruction/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/instruction/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/repoint/route.js +1 -0
- package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/repoint/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/repoint/route_client-reference-manifest.js +1 -0
- package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/route.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon-sessions/ad-hoc/route.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon-sessions/ad-hoc/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/daemon-sessions/ad-hoc/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon-sessions/route.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon-sessions/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/daemon-sessions/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/documents/[uuid]/route.js +1 -1
- package/.next/standalone/.next/server/app/api/documents/[uuid]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/documents/[uuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/entities/[type]/[uuid]/root-idea/route.js +1 -1
- package/.next/standalone/.next/server/app/api/entities/[type]/[uuid]/root-idea/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/entities/[type]/[uuid]/root-idea/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/events/notifications/route.js +1 -1
- package/.next/standalone/.next/server/app/api/events/notifications/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/events/notifications/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/events/route.js +1 -1
- package/.next/standalone/.next/server/app/api/events/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/events/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/health/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/claim/route.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/claim/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/claim/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/preview/route.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/preview/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/preview/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/route.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/parent/route.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/parent/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/parent/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/release/route.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/release/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/release/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/route.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/keepalive/route.js +1 -0
- package/.next/standalone/.next/server/app/api/keepalive/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/keepalive/route_client-reference-manifest.js +1 -0
- package/.next/standalone/.next/server/app/api/mcp/route.js +5 -5
- package/.next/standalone/.next/server/app/api/mcp/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/mcp/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/me/assignments/route.js +1 -1
- package/.next/standalone/.next/server/app/api/me/assignments/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/me/assignments/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/mentionables/route.js +1 -1
- package/.next/standalone/.next/server/app/api/mentionables/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/mentionables/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/notifications/[uuid]/archive/route.js +1 -1
- package/.next/standalone/.next/server/app/api/notifications/[uuid]/archive/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/notifications/[uuid]/archive/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/notifications/[uuid]/read/route.js +1 -1
- package/.next/standalone/.next/server/app/api/notifications/[uuid]/read/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/notifications/[uuid]/read/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/notifications/preferences/route.js +1 -1
- package/.next/standalone/.next/server/app/api/notifications/preferences/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/notifications/preferences/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/notifications/read-all/route.js +1 -1
- package/.next/standalone/.next/server/app/api/notifications/read-all/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/notifications/read-all/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/notifications/route.js +1 -1
- package/.next/standalone/.next/server/app/api/notifications/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/notifications/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/notifications/unread-count/route.js +1 -1
- package/.next/standalone/.next/server/app/api/notifications/unread-count/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/notifications/unread-count/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/project-groups/[uuid]/dashboard/route.js +1 -1
- package/.next/standalone/.next/server/app/api/project-groups/[uuid]/dashboard/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/project-groups/[uuid]/dashboard/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/project-groups/[uuid]/route.js +1 -1
- package/.next/standalone/.next/server/app/api/project-groups/[uuid]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/project-groups/[uuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/project-groups/route.js +1 -1
- package/.next/standalone/.next/server/app/api/project-groups/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/project-groups/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/activity/route.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/activity/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/activity/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/available/route.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/available/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/available/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/documents/route.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/documents/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/documents/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/group/route.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/group/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/group/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/route.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/tracker/route.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/tracker/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/tracker/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/route.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/summary/route.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/summary/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/summary/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/route.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/stats/route.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/stats/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/stats/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/dependencies/route.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/dependencies/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/dependencies/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/route.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/route.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/proposals/[uuid]/approve/route.js +1 -1
- package/.next/standalone/.next/server/app/api/proposals/[uuid]/approve/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/proposals/[uuid]/approve/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/proposals/[uuid]/close/route.js +1 -1
- package/.next/standalone/.next/server/app/api/proposals/[uuid]/close/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/proposals/[uuid]/close/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/proposals/[uuid]/reject/route.js +1 -1
- package/.next/standalone/.next/server/app/api/proposals/[uuid]/reject/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/proposals/[uuid]/reject/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/proposals/[uuid]/revoke/route.js +1 -1
- package/.next/standalone/.next/server/app/api/proposals/[uuid]/revoke/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/proposals/[uuid]/revoke/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/proposals/[uuid]/route.js +1 -1
- package/.next/standalone/.next/server/app/api/proposals/[uuid]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/proposals/[uuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/search/route.js +1 -1
- package/.next/standalone/.next/server/app/api/search/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/search/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/sessions/[uuid]/route.js +1 -1
- package/.next/standalone/.next/server/app/api/sessions/[uuid]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/sessions/[uuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/claim/route.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/claim/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/claim/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/route.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/release/route.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/release/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/release/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/route.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/sessions/route.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/sessions/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/sessions/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/index.html +1 -1
- package/.next/standalone/.next/server/app/index.rsc +3 -3
- package/.next/standalone/.next/server/app/login/admin/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/login/admin.html +1 -1
- package/.next/standalone/.next/server/app/login/admin.rsc +3 -3
- package/.next/standalone/.next/server/app/login/callback/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/login/callback.html +1 -1
- package/.next/standalone/.next/server/app/login/callback.rsc +4 -4
- package/.next/standalone/.next/server/app/login/page.js +1 -1
- package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/login/pick-workspace/page.js +1 -1
- package/.next/standalone/.next/server/app/login/pick-workspace/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/login/pick-workspace.html +1 -1
- package/.next/standalone/.next/server/app/login/pick-workspace.rsc +4 -4
- package/.next/standalone/.next/server/app/login/silent-refresh/page.js +1 -1
- package/.next/standalone/.next/server/app/login/silent-refresh/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/login/silent-refresh.html +1 -1
- package/.next/standalone/.next/server/app/login/silent-refresh.rsc +4 -4
- package/.next/standalone/.next/server/app/login.html +1 -1
- package/.next/standalone/.next/server/app/login.rsc +4 -4
- package/.next/standalone/.next/server/app/onboarding/page.js +1 -1
- package/.next/standalone/.next/server/app/onboarding/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/onboarding.html +1 -1
- package/.next/standalone/.next/server/app/onboarding.rsc +4 -4
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/projects.html +1 -1
- package/.next/standalone/.next/server/app/projects.rsc +5 -5
- package/.next/standalone/.next/server/app/settings.html +1 -1
- package/.next/standalone/.next/server/app/settings.rsc +5 -5
- package/.next/standalone/.next/server/app-paths-manifest.json +41 -39
- package/.next/standalone/.next/server/chunks/{5201.js → 1343.js} +2 -2
- package/.next/standalone/.next/server/chunks/1463.js +1 -0
- package/.next/standalone/.next/server/chunks/1596.js +2 -2
- package/.next/standalone/.next/server/chunks/2618.js +1 -1
- package/.next/standalone/.next/server/chunks/2622.js +1 -0
- package/.next/standalone/.next/server/chunks/2961.js +1 -1
- package/.next/standalone/.next/server/chunks/3219.js +1 -1
- package/.next/standalone/.next/server/chunks/3371.js +1 -1
- package/.next/standalone/.next/server/chunks/3419.js +1 -1
- package/.next/standalone/.next/server/chunks/345.js +1 -0
- package/.next/standalone/.next/server/chunks/4872.js +1 -0
- package/.next/standalone/.next/server/chunks/5300.js +1 -1
- package/.next/standalone/.next/server/chunks/5581.js +1 -0
- package/.next/standalone/.next/server/chunks/6113.js +1 -1
- package/.next/standalone/.next/server/chunks/6207.js +1 -1
- package/.next/standalone/.next/server/chunks/7064.js +1 -0
- package/.next/standalone/.next/server/chunks/{5631.js → 7160.js} +1 -1
- package/.next/standalone/.next/server/chunks/7364.js +1 -0
- package/.next/standalone/.next/server/chunks/7368.js +1 -1
- package/.next/standalone/.next/server/chunks/7427.js +1 -0
- package/.next/standalone/.next/server/chunks/7515.js +1 -0
- package/.next/standalone/.next/server/chunks/7578.js +2 -2
- package/.next/standalone/.next/server/chunks/7897.js +1 -1
- package/.next/standalone/.next/server/chunks/{4711.js → 796.js} +6 -6
- package/.next/standalone/.next/server/chunks/9161.js +1 -0
- package/.next/standalone/.next/server/chunks/920.js +1 -1
- package/.next/standalone/.next/server/chunks/937.js +3 -3
- package/.next/standalone/.next/server/middleware-build-manifest.js +1 -1
- package/.next/standalone/.next/server/middleware-manifest.json +1 -1
- package/.next/standalone/.next/server/pages/404.html +1 -1
- package/.next/standalone/.next/server/pages/500.html +1 -1
- package/.next/standalone/.next/server/pages-manifest.json +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/server/src/middleware.js +1 -1
- package/.next/standalone/.next/static/chunks/16467-dd4f928e725306c1.js +1 -0
- package/.next/standalone/.next/static/chunks/20081-a2bf5c9f24d5d589.js +1 -0
- package/.next/standalone/.next/static/chunks/2280-f48bf99ea9d88ece.js +1 -0
- package/.next/standalone/.next/static/chunks/26394-4af487a51dd62832.js +1 -0
- package/.next/standalone/.next/static/chunks/27378-9328bcc96ae9872e.js +1 -0
- package/.next/standalone/.next/static/chunks/32497-886aa4d3d7bf4967.js +1 -0
- package/.next/standalone/.next/static/chunks/37784-95dee37276b1067b.js +1 -0
- package/.next/standalone/.next/static/chunks/40867-04cc0d00205eaf9b.js +1 -0
- package/.next/standalone/.next/static/chunks/42111-1935df3b0dab2095.js +1 -0
- package/.next/standalone/.next/static/chunks/4860.f4242c493fcf182d.js +1 -0
- package/.next/standalone/.next/static/chunks/54637-71d281d649ea3a17.js +1 -0
- package/.next/standalone/.next/static/chunks/6239-d78e6f830ce0a7f8.js +1 -0
- package/.next/standalone/.next/static/chunks/64187-cff8a4b5e96fa8f9.js +10 -0
- package/.next/standalone/.next/static/chunks/78917-2b959ab0a7f610b4.js +1 -0
- package/.next/standalone/.next/static/chunks/80904-973284d1fe916c38.js +1 -0
- package/.next/standalone/.next/static/chunks/88561-0b14e1564419f215.js +1 -0
- package/.next/standalone/.next/static/chunks/89035-faf398b7bbc7d2ed.js +1 -0
- package/.next/standalone/.next/static/chunks/89644-2fee0373b890e8e3.js +1 -0
- package/.next/standalone/.next/static/chunks/{93346-5489d90bc2d57190.js → 93346-b3e1ebe948fc623f.js} +1 -1
- package/.next/standalone/.next/static/chunks/97868-9406a4014b667c2d.js +1 -0
- package/.next/standalone/.next/static/chunks/99373.880b43de1fa6411f.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/layout-f04d5fa070f15acd.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/project-groups/[uuid]/page-2944c6c9bc48a7d6.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/page-c4271886ef004611.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page-7a8b60de97bfbd29.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/page-6620b9d7a2cc766f.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page-0a55289b2bc510c2.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/page-5d09141beb5d6aee.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page-d5c3dde34d6291a8.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/page-0da08d8b425acb6a.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/{page-583e58d4d689d38b.js → page-fec019d974ef8d4e.js} +1 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/settings/page-44014947a679f91c.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/admin/companies/[uuid]/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/admin/companies/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/admin/login/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/admin/session/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/agent-connections/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/agents/[uuid]/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/agents/[uuid]/sessions/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/agents/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/api-keys/[uuid]/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/api-keys/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/auth/callback/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/auth/check-default/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/auth/company-oidc/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/auth/default-login/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/auth/identify/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/auth/logout/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/auth/me/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/auth/refresh/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/auth/session/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/auth/sync-token/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/comments/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/daemon/control/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/daemon/execution-state/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/daemon/executions/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/daemon/pending-turns/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/daemon/report-interrupt/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/daemon/resume/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/daemon/transcript/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/daemon/turn-advance/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/[sessionUuid]/instruction/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/[sessionUuid]/repoint/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/[sessionUuid]/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/ad-hoc/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/documents/[uuid]/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/entities/[type]/[uuid]/root-idea/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/events/notifications/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/events/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/health/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/claim/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/move/preview/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/move/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/parent/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/release/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/keepalive/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/mcp/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/me/assignments/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/mentionables/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/notifications/[uuid]/archive/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/notifications/[uuid]/read/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/notifications/preferences/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/notifications/read-all/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/notifications/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/notifications/unread-count/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/project-groups/[uuid]/dashboard/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/project-groups/[uuid]/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/project-groups/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/activity/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/available/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/documents/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/group/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/ideas/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/ideas/tracker/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/proposals/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/proposals/summary/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/stats/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/tasks/dependencies/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/tasks/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/projects/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/approve/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/close/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/reject/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/revoke/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/search/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/sessions/[uuid]/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/claim/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/dependencies/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/release/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/sessions/route-f1b0daea9f947caf.js +1 -0
- package/.next/standalone/.next/static/chunks/app/layout-e3a49e06950a057f.js +1 -0
- package/.next/standalone/.next/static/chunks/app/login/callback/{page-0edd93f50cb4f6ea.js → page-6cad93f5c610b047.js} +1 -1
- package/.next/standalone/.next/static/chunks/app/login/{page-c64b8d40a0781b4c.js → page-e7493d55573a52f1.js} +1 -1
- package/.next/standalone/.next/static/chunks/app/login/pick-workspace/{page-e0444ad8b50121f5.js → page-597e0f3377f18d29.js} +1 -1
- package/.next/standalone/.next/static/chunks/app/login/silent-refresh/{page-a9960ea858db6752.js → page-a26d1af61578c96e.js} +1 -1
- package/.next/standalone/.next/static/chunks/app/onboarding/page-9a41067d4c5d29d7.js +1 -0
- package/.next/standalone/.next/static/chunks/{webpack-039590181c63871d.js → webpack-1556cfd11f7e90d1.js} +1 -1
- package/.next/standalone/.next/static/css/6e8fd46b062fd4fc.css +1 -0
- package/.next/standalone/.next/static/v1yRpXkt1wNBkZMTE3tiz/_buildManifest.js +1 -0
- package/.next/standalone/package.json +1 -1
- package/.next/standalone/public/chorus-plugin/skills/proposal/SKILL.md +4 -0
- package/.next/standalone/public/skill/proposal-chorus/SKILL.md +4 -0
- package/README.md +47 -13
- package/README.zh.md +47 -13
- package/chorus.mjs +30 -14
- package/cli/client-args.mjs +17 -1
- package/cli/daemon-banner.mjs +11 -1
- package/cli/daemon-config.mjs +118 -0
- package/cli/daemon.mjs +216 -154
- package/cli/event-router.mjs +273 -12
- package/cli/server-signal-handlers.mjs +41 -0
- package/cli/sse-listener.mjs +27 -5
- package/cli/waker.mjs +36 -8
- package/package.json +1 -1
- package/prisma/migrations/20260622115159_add_daemon_connection_cwd/migration.sql +9 -0
- package/prisma/migrations/20260623020208_task_pinned_target_instance/migration.sql +3 -0
- package/prisma/migrations/20260624142248_add_agent_instance/migration.sql +31 -0
- package/prisma/migrations/20260624165025_drop_task_target_host_cwd/migration.sql +10 -0
- package/prisma/schema.prisma +69 -3
- package/.next/standalone/.next/server/chunks/1064.js +0 -1
- package/.next/standalone/.next/server/chunks/2213.js +0 -1
- package/.next/standalone/.next/server/chunks/369.js +0 -1
- package/.next/standalone/.next/server/chunks/5039.js +0 -1
- package/.next/standalone/.next/server/chunks/6461.js +0 -1
- package/.next/standalone/.next/server/chunks/6712.js +0 -1
- package/.next/standalone/.next/server/chunks/7867.js +0 -1
- package/.next/standalone/.next/server/chunks/8012.js +0 -1
- package/.next/standalone/.next/server/chunks/9629.js +0 -1
- package/.next/standalone/.next/server/chunks/9725.js +0 -1
- package/.next/standalone/.next/static/GQvpOux3M9CaxkMjL9GAI/_buildManifest.js +0 -1
- package/.next/standalone/.next/static/chunks/1217-323cc20b73ebfde9.js +0 -1
- package/.next/standalone/.next/static/chunks/16984-8ab5580b8e63a200.js +0 -1
- package/.next/standalone/.next/static/chunks/1879-7a8b283283218df2.js +0 -1
- package/.next/standalone/.next/static/chunks/19276-50b367d7b93d5f34.js +0 -1
- package/.next/standalone/.next/static/chunks/23466-e1176a6d814f4897.js +0 -1
- package/.next/standalone/.next/static/chunks/38040-a8687f86dd8e9d67.js +0 -1
- package/.next/standalone/.next/static/chunks/4860.8bdb37c964f92e48.js +0 -1
- package/.next/standalone/.next/static/chunks/59296-783831c43aa0162e.js +0 -1
- package/.next/standalone/.next/static/chunks/60648-36ccbee4ce232d52.js +0 -1
- package/.next/standalone/.next/static/chunks/60694-68232120903209df.js +0 -1
- package/.next/standalone/.next/static/chunks/64648-ece4e2a59672cf63.js +0 -1
- package/.next/standalone/.next/static/chunks/66205-8d7eae6a0f0a032d.js +0 -1
- package/.next/standalone/.next/static/chunks/66969-12f0b22c51f5a410.js +0 -1
- package/.next/standalone/.next/static/chunks/70536-b8bf71098ae11f07.js +0 -1
- package/.next/standalone/.next/static/chunks/76803-7ac4024b2ae89843.js +0 -1
- package/.next/standalone/.next/static/chunks/78389-b32edc6bd5c570a9.js +0 -1
- package/.next/standalone/.next/static/chunks/78584-eb2fa8cf2f266329.js +0 -1
- package/.next/standalone/.next/static/chunks/78917-150ed14a99844aab.js +0 -1
- package/.next/standalone/.next/static/chunks/84541-1f4c2a40f7722667.js +0 -10
- package/.next/standalone/.next/static/chunks/8574-b9739eb8d054c793.js +0 -1
- package/.next/standalone/.next/static/chunks/99373.12370329b9ab6beb.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/layout-0a28456fea4ce95a.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/project-groups/[uuid]/page-a79969c5c9aadacd.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/page-a28f0eaa6f4ac94a.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page-ef82b871895245ea.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/page-2c9bcbd11ddb8661.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page-630b168598513ce8.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/page-335f2450e44a0fba.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page-4a191d69b2b6e880.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/page-0faebb478be4c85d.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/settings/page-2e8fcb72687100df.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/admin/companies/[uuid]/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/admin/companies/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/admin/login/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/admin/session/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/agent-connections/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/agents/[uuid]/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/agents/[uuid]/sessions/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/agents/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/api-keys/[uuid]/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/api-keys/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/auth/callback/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/auth/check-default/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/auth/company-oidc/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/auth/default-login/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/auth/identify/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/auth/logout/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/auth/me/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/auth/refresh/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/auth/session/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/auth/sync-token/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/comments/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/daemon/control/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/daemon/execution-state/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/daemon/executions/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/daemon/pending-turns/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/daemon/report-interrupt/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/daemon/resume/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/daemon/transcript/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/daemon/turn-advance/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/[sessionUuid]/instruction/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/[sessionUuid]/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/ad-hoc/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/documents/[uuid]/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/entities/[type]/[uuid]/root-idea/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/events/notifications/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/events/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/health/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/claim/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/move/preview/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/move/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/parent/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/release/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/mcp/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/me/assignments/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/mentionables/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/notifications/[uuid]/archive/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/notifications/[uuid]/read/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/notifications/preferences/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/notifications/read-all/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/notifications/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/notifications/unread-count/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/project-groups/[uuid]/dashboard/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/project-groups/[uuid]/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/project-groups/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/activity/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/available/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/documents/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/group/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/ideas/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/ideas/tracker/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/proposals/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/proposals/summary/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/stats/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/tasks/dependencies/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/tasks/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/projects/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/approve/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/close/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/reject/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/revoke/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/search/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/sessions/[uuid]/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/claim/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/dependencies/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/release/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/sessions/route-4bc556c2fc8f3d24.js +0 -1
- package/.next/standalone/.next/static/chunks/app/layout-9963339572e2e64e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/onboarding/page-e9a69a0c537c704f.js +0 -1
- package/.next/standalone/.next/static/css/1d9aaac01758b297.css +0 -1
- /package/.next/standalone/.next/static/{GQvpOux3M9CaxkMjL9GAI → v1yRpXkt1wNBkZMTE3tiz}/_ssgManifest.js +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4860],{4860:e=>{e.exports=JSON.parse('{"common":{"appName":"Chorus","loading":"加载中...","save":"保存","cancel":"取消","delete":"删除","edit":"编辑","create":"创建","search":"搜索","done":"完成","copy":"复制","copied":"已复制!","back":"返回","viewAll":"查看全部","showMore":"展开","showLess":"收起","signOut":"退出登录","optional":"可选","unassigned":"未分配","agent":"智能体","user":"用户","status":"状态","priority":"优先级","type":"类型","created":"创建时间","updated":"更新时间","version":"版本","description":"描述","details":"详情","content":"内容","assignment":"分配","noDescription":"暂无描述","noContent":"暂无内容","creating":"创建中...","processing":"处理中...","saving":"保存中...","claim":"认领","release":"释放","assign":"分配","reassign":"重新分配","verify":"验证","reject":"拒绝","approve":"批准","selectProject":"请先选择一个项目","assignee":"负责人","activity":"动态","noActivity":"暂无动态","source":"来源","currentAssignee":"当前负责人","failedToAssign":"分配失败","actions":"操作","genericError":"发生错误,请重试。","unknown":"未知","system":"系统","confirmDelete":"确定要删除吗?"},"activity":{"taskCreated":"{actor} 创建了此任务","taskAssigned":"{actor} 被分配到此任务","taskClaimed":"{actor} 认领了此任务","taskStarted":"{actor} 开始处理此任务","taskSubmitted":"{actor} 提交了此任务待审核","taskCompleted":"{actor} 完成了此任务","taskReleased":"{actor} 释放了此任务","taskStatusChanged":"{actor} 更改了任务状态","ideaCreated":"{actor} 创建了此想法","ideaAssigned":"{actor} 被分配到此想法","ideaClaimed":"{actor} 认领了此想法","ideaReleased":"{actor} 释放了此想法","ideaStatusChanged":"{actor} 更改了想法状态","ideaEdited":"{actor} 编辑了想法","ideaReparented":"{actor} 更改了想法的父级","elaborationStarted":"{actor} 发起了需求澄清","elaborationAnswered":"{actor} 回答了需求澄清","elaborationSkipped":"{actor} 跳过了需求澄清","elaborationResolved":"{actor} 完成了需求澄清","elaborationFollowup":"{actor} 发起了追加需求澄清","genericAction":"{actor} 执行了 {action}","entityIdea":"想法","entityProposal":"提案","entityTask":"任务","entityDocument":"文档","entityProject":"项目","actionCreated":"创建了","actionUpdated":"更新了","actionApproved":"批准了","actionRejected":"拒绝了","actionClaimed":"认领了","actionCompleted":"完成了","actionRevoked":"已撤回","title":"动态","subtitle":"项目最近活动","noActivity":"暂无动态","noActivityDesc":"当您和智能体在此项目上工作时,动态将在此显示。","loadingActivity":"加载动态中..."},"comments":{"title":"评论","noComments":"暂无评论","addComment":"添加评论...(输入 @ 提及他人)","roleAgent":"Agent","roleHuman":"用户","onBehalfOf":"代表 {name}","showMore":"展开更多","showLess":"收起","loadError":"加载评论失败","retry":"重试"},"mentions":{"noResults":"无结果","searchPlaceholder":"输入名称以提及..."},"assign":{"selectAssignee":"选择如何分配此任务","assignToMyself":"分配给我自己","assignToMyselfDesc":"您的所有开发智能体都可以查看并处理此任务","orAssignToUser":"分配给其他用户","orAssignToAgent":"分配给特定智能体","releaseAssignee":"释放(清除负责人)","releaseAssigneeDesc":"移除当前负责人,使此任务重新可用"},"time":{"justNow":"刚刚","minutesAgo":"{minutes}分钟前","hoursAgo":"{hours}小时前","daysAgo":"{days}天前","today":"今天","yesterday":"昨天"},"nav":{"projects":"项目","settings":"设置","overview":"概览","documents":"文档","proposals":"提案","tasks":"任务","activity":"动态","logout":"退出登录","newProject":"新建项目","backToProjects":"项目","openMenu":"打开菜单"},"priority":{"low":"低","medium":"中","high":"高","lowPriority":"低优先级","mediumPriority":"中优先级","highPriority":"高优先级","critical":"紧急","criticalPriority":"紧急优先级"},"status":{"open":"开放","active":"进行中","draft":"草稿","pending":"待审核","pendingReview":"待审核","approved":"已批准","rejected":"已拒绝","done":"已完成","inProgress":"进行中","todo":"待办","toVerify":"待验证","claimed":"已认领","current":"当前","assigned":"已分配","completed":"已完成","closed":"已关闭","elaborating":"需求澄清中","elaborated":"已细化","proposalCreated":"方案已创建","proposal_created":"方案已创建","needHumanInput":"需要人工介入","humanConductRequired":"需要指挥"},"admin":{"title":"超级管理员","dashboard":"仪表盘","welcome":"欢迎使用 Chorus 超级管理后台","email":"邮箱","emailPlaceholder":"you@company.com","password":"密码","passwordPlaceholder":"输入密码","signingIn":"登录中...","signInAsAdmin":"以超级管理员身份登录","backToEmail":"返回邮箱输入","totalCompanies":"公司总数","registeredOrgs":"已注册的组织","registeredOrgsCount":"{count} 个已注册组织","totalUsers":"用户总数","humanUsers":"所有公司的人类用户","totalAgents":"智能体总数","aiAgents":"所有公司的 AI 智能体","quickActions":"快捷操作","commonTasks":"常用管理任务","addCompany":"添加公司","addCompanyDesc":"注册新的组织","manageCompanies":"管理公司","manageCompaniesDesc":"查看和配置组织","companies":"公司","oidcRedirectUri":"OIDC 重定向 URI(回调地址)","oidcRedirectUriDesc":"在您的 OIDC 提供商中配置此 URL 作为允许的重定向 URI","tableName":"名称","tableEmailDomains":"邮箱域名","tableOidcStatus":"OIDC 状态","tableUsers":"用户","tableAgents":"智能体","tableActions":"操作","noCompanies":"暂无公司。","addFirstCompany":"添加您的第一个公司","oidcConfigured":"已配置","oidcNotConfigured":"未配置","deleteCompanyConfirm":"确定要删除「{name}」吗?此操作无法撤销。","deleteCompanyConfirmFull":"确定要删除「{name}」吗?此操作无法撤销,并将删除所有关联数据。","failedToDelete":"删除公司失败","networkError":"网络错误,请重试。","backToCompanies":"返回公司列表","deleteCompany":"删除公司","createdOn":"创建于 {date}","companyNotFound":"公司未找到","failedToLoad":"加载公司失败","failedToUpdate":"更新公司失败","companyUpdated":"公司更新成功","projects":"项目","basicInfo":"基本信息","companyName":"公司名称","emailDomains":"邮箱域名","emailDomainsPlaceholder":"acme.com, acme.org","emailDomainsHelp":"以逗号分隔的邮箱域名列表","oidcConfig":"OIDC 配置","oidcEnabled":"已启用","oidcConfigDesc":"配置 OpenID Connect (PKCE) 以实现单点登录认证。当 Issuer URL 和 Client ID 都填写后,OIDC 将自动启用。","oidcIssuerUrl":"OIDC Issuer URL","oidcIssuerUrlPlaceholder":"https://login.microsoftonline.com/tenant-id/v2.0","oidcIssuerUrlHelp":"OpenID Connect 发现端点 URL","clientId":"Client ID","clientIdPlaceholder":"例如:12345678-abcd-efgh-ijkl-123456789012","clientIdHelp":"OAuth 2.0 Client ID(PKCE 模式,无需密钥)","saveChanges":"保存更改","createCompany":"创建公司","createCompanyDesc":"设置新公司并配置 OIDC 认证","emailDomain":"邮箱域名","emailDomainHelp":"使用此邮箱域名的用户将被路由到此公司","required":"必填","companyNamePlaceholder":"例如:Acme 公司","emailDomainPlaceholder":"例如:acme.com","invalidCredentials":"凭证无效","createCompanyFailed":"创建公司失败"},"dashboard":{"title":"仪表盘","subtitle":"项目活动概览","welcome":"欢迎使用 Chorus","welcomeDesc":"创建您的第一个项目或选择现有项目开始。","viewProjects":"查看项目","createProject":"创建项目","quickActions":"快捷操作","addNewIdea":"新想法","reviewProposals":"审核提案","viewTaskBoard":"任务看板","recentActivity":"最近动态","activityPlaceholder":"动态信息将在此显示","taskPipeline":"任务流水线","totalTasks":"共 {count} 个","todoCount":"待办 ({count})","inProgressCount":"进行中 ({count})","toVerifyCount":"待验证 ({count})","doneCount":"已完成 ({count})","noRecentTasks":"暂无任务","noRecentActivity":"暂无动态","viewAll":"查看全部","settings":"设置"},"projectSettings":{"title":"项目设置","basicInfo":"基本信息","projectName":"项目名称","description":"描述","saveChanges":"保存更改","saving":"保存中...","saveSuccess":"项目已更新","saveFailed":"更新项目失败","dangerZone":"危险区域","deleteTitle":"删除此项目","deleteDescription":"永久删除此项目及其所有数据,此操作无法撤销。"},"projects":{"title":"项目","subtitle":"管理您的项目并跟踪进度","newProject":"新建项目","noProjects":"暂无项目","noProjectsDesc":"创建您的第一个项目,开始与 AI 智能体协作。","createFirst":"创建第一个项目","onboarding":{"welcomeTitle":"欢迎使用 Chorus","welcomeDesc":"Chorus 通过项目组和项目来组织工作。让我们来设置您的工作空间。","whatIsGroupTitle":"项目组","whatIsGroupDesc":"用于归类相关项目的容器。可以理解为一个团队、产品线或计划 —— 例如「移动应用」或「Q3 发布」。","whatIsProjectTitle":"项目","whatIsProjectDesc":"实际工作发生的地方。每个项目有自己的想法、提案、文档和任务。AI 智能体在项目内协作。","step1Title":"第一步:创建项目组","step1Desc":"先组织您的工作空间。创建一个分组来归类相关项目。","step2Title":"第二步:创建项目","step2Desc":"在分组中添加一个项目。这是您收集想法和分配 AI 智能体工作的地方。","createGroupBtn":"创建项目组","agentTipTitle":"有管理员智能体?让 AI 帮你完成设置","agentTipDesc":"复制以下提示词发送给管理员智能体,自动创建项目组和项目:","agentPrompt":"请帮我设置工作空间。创建一个名为「{groupName}」的项目组,描述为「{groupDesc}」,然后在其中创建一个名为「{projectName}」的项目。","agentPromptDefault":"请帮我设置工作空间。创建一个名为「我的团队」的项目组并添加简要描述,然后在其中创建一个初始项目。","copiedPrompt":"提示词已复制!"},"ideas":"个想法","tasks":"个任务","docs":"个文档","loadingProjects":"加载项目中...","createFailed":"创建项目失败","activeProjects":"活跃项目","totalTasks":"总任务数","openProposals":"待审提案","ideasCaptured":"已收集想法","taskProgress":"任务进度","createNewProject":"创建新项目","createNewProjectDesc":"开始一个新项目并邀请团队","updated":"更新于","listView":"列表","gridView":"网格","empty":"空","complete":"完成","createNew":{"title":"创建新项目","subtitle":"设置项目详情,之后再将想法分配给 产品经理智能体","gettingStartedTitle":"开始使用","gettingStartedDesc":"填写以下基本信息。创建后,您可以添加想法并分配给 产品经理智能体生成提案。","basicInfo":"基本信息","projectName":"项目名称","projectNamePlaceholder":"例如:项目 Alpha","descriptionLabel":"描述","descriptionPlaceholder":"简要描述这个项目是关于什么的...","initialIdeas":"初始想法","initialIdeasDesc":"分享任何初始想法或需求,供 产品经理智能体在生成提案时参考","ideaPlaceholder":"例如:我们需要支持 OAuth 的用户认证...","addAnother":"添加另一个想法","documents":"文档","documentsDesc":"上传 PRD、技术设计或任何参考文档供 产品经理智能体分析","dragDrop":"拖放文件到此处,或点击浏览","fileTypes":"Markdown(.md)文档","createProject":"创建项目"}},"ideas":{"title":"想法","subtitle":"捕捉并跟踪项目想法","newIdea":"新想法","all":"全部","whatIsYourIdea":"您的想法是什么?","addMoreDetails":"添加更多详情...","noIdeas":"暂无想法","noIdeasFiltered":"暂无{status}的想法","startByAdding":"从添加您的第一个想法开始。想法可以被 AI 智能体拾取进行分析。","ideasWithStatus":"此状态的想法将在此显示。","addFirstIdea":"添加第一个想法","loadingIdeas":"加载想法中...","ideaNotFound":"想法未找到","backToIdeas":"返回想法列表","claimIdea":"认领想法","assignIdea":"分配想法","source":"来源:","assignedToMe":"分配给我","usedInProposal":"已用于提案","noIdeasWithStatus":"暂无{status}的想法","selectIdeaAssignee":"选择如何分配此想法","assignToMyselfIdeaDesc":"您的所有 产品经理智能体都可以查看并处理此想法","orAssignToPmAgent":"分配给特定 产品经理智能体","onlySelectedPmAgentCanWork":"只有选中的 产品经理智能体可以处理此想法","selectPmAgent":"选择一个 产品经理智能体","noPmAgentsAvailable":"没有可用的 产品经理智能体","releaseIdeaAssigneeDesc":"移除当前负责人,使此想法重新可用","proposalGenerated":"已生成提案","viewProposal":"查看提案","assignedTo":"分配给","titleLabel":"标题","submit":"提交","editIdea":"编辑想法","saveChanges":"保存更改","completed":"已完成","titleRequired":"标题不能为空","updateFailed":"更新想法失败","deleteIdea":"删除想法","deleteIdeaConfirm":"确定要删除「{title}」吗?此操作无法撤销。","createFailed":"创建想法失败","noProjectsFound":"未找到项目","moveFailed":"移动想法失败","moving":"移动中...","ungrouped":"未分组","actions":{"move":"移动到项目..."},"moveDialog":{"title":"将 Idea 移动到其他项目","description":"选择目标项目。关联的提案、文档、任务以及活动记录都会随这个 Idea 一起迁移。","targetProjectLabel":"目标项目","targetProjectPlaceholder":"选择一个项目...","searchProjects":"搜索项目...","previewLoading":"正在计算影响范围...","previewSummary":"将一并移动:{ideas} 个 idea(含派生)、{proposals} 个提案、{documents} 个文档、{tasks} 个任务、{activities} 条活动。","previewWarning":"此操作不可撤销。","confirm":"确认移动","cancel":"取消","error":"移动失败:{message}","successToast":"已移动 {ideas} 个 idea — 更新 {proposals} 个提案、{documents} 个文档、{tasks} 个任务、{activities} 条活动。","viewMovedIdea":"查看"}},"tasks":{"title":"任务","subtitle":"任务管理看板","newTask":"新任务","agentHours":"智能体工时总计","noTasks":"暂无任务","loadingTasks":"加载任务中...","taskNotFound":"任务未找到","backToTasks":"返回任务列表","claimTask":"认领任务","assignTask":"分配任务","statusProgress":"状态进度","subtasks":"子任务","parentTask":"父任务","storyPoints":"故事点","acceptanceCriteria":"验收标准","startWork":"开始工作","submitForReview":"提交验证","markAsVerified":"标记为已验证","taskCompleted":"任务已完成","noActionsAvailable":"无可用操作","onlySelectedAgentCanWork":"仅选定的智能体可以处理此任务","selectAgent":"选择智能体","selectUser":"选择用户","noAgentsAvailable":"暂无可用的智能体","noUsersAvailable":"暂无其他用户","editTask":"编辑任务","createTaskTitle":"创建任务","deleteTask":"删除任务","deleteTaskConfirm":"确定要删除「{title}」吗?此操作无法撤销。","titleLabel":"标题","titleRequired":"标题不能为空","descriptionLabel":"描述","priorityLabel":"优先级","storyPointsLabel":"故事点(小时)","acceptanceCriteriaLabel":"验收标准","saveChanges":"保存更改","createFailed":"创建任务失败","updateFailed":"更新任务失败","dependencies":"依赖关系","dependsOn":"依赖于","blockedByThis":"被此任务阻塞","noDependencies":"无依赖","addDependency":"添加依赖","failedToAddDep":"添加依赖失败","failedToRemoveDep":"移除依赖失败","noTasksToDisplay":"暂无任务","kanbanView":"看板","dagView":"DAG","listView":"列表","allStatuses":"全部","dependencyBlocked":"依赖未完成","dependencyBlockedDescription":"此任务有未完成的前置依赖。在依赖未完成时开始工作可能会导致问题。","forceMove":"强制移动","forceMoveConfirm":"确定要将此任务移动到进行中吗?其前置依赖尚未完成。","blockerList":"阻塞任务","blockedTooltip":"被 {count} 个未完成的依赖阻塞","blockedBy":"阻塞于:{tasks}","noActiveSession":"无活跃会话","forceStatusChange":"强制状态变更","proposalFilter":{"label":"提案","allProposals":"所有提案","clear":"清除","search":"搜索提案...","taskCount":"{count} 个任务","filtered":"{filtered} / {total} 个提案","noResults":"未找到提案","filteredSubtitle":"显示 {filtered} / {total} 个任务(已筛选)"}},"proposals":{"pageTitle":"提案","subtitle":"审核和批准 AI 生成的提案","all":"全部","pendingReview":"待审核","noProposals":"暂无提案","noProposalsDesc":"当 产品经理智能体分析想法时会创建提案。它们将在此显示供您审核。","loadingProposals":"加载提案中...","proposalNotFound":"提案未找到","backToProposals":"返回提案列表","sourceIdea":"来源想法","sourceIdeas":"来源想法","noSourceIdeas":"无来源想法","awaitingReview":"等待您的审核","reviewInstructions":"审核内容并批准或拒绝此提案。","basedOn":"基于","documentDrafts":"文档草稿","documents":"文档","taskDrafts":"任务草稿","tasks":"任务","emptyContainer":"此提案容器为空。请添加文档或任务。","inputType":"输入类型","creatorType":"创建者类型","containerSummary":"容器摘要","inputs":"输入","discussion":"讨论","reviewInfo":"审核信息","reviewedBy":"审核人","reviewedAt":"审核时间","reviewNote":"审核备注","requestChanges":"请求修改","approveProposal":"批准提案","approveProposalDesc":"可选填备注给提案创建者(例如给 Agent 的指示)。","approveNotePlaceholder":"添加备注(可选)...","rejectProposal":"拒绝提案","rejectProposalDesc":"请填写拒绝此提案的原因。","rejectReasonPlaceholder":"请输入拒绝原因...","rejectionReason":"拒绝原因","createProposal":"创建提案","basicInfo":"基本信息","title":"标题","titlePlaceholder":"输入提案标题...","descriptionPlaceholder":"描述这个提案是关于什么的...","selectSourceIdeas":"选择来源想法","noAvailableIdeas":"没有可用的想法。您需要先认领一个想法。","titleRequired":"标题是必填的","selectAtLeastOneIdea":"请至少选择一个想法","createFailed":"创建提案失败","createAndEdit":"创建并编辑","addDocumentDraft":"添加文档","addTaskDraft":"添加任务","editDraft":"编辑","deleteDraft":"删除","documentType":"文档类型","documentTitle":"文档标题","documentContent":"内容(Markdown)","taskTitle":"任务标题","taskDescription":"描述","taskPriority":"优先级","taskStoryPoints":"故事点(小时)","taskAcceptanceCriteria":"验收标准","submitForReview":"提交审核","draftNotice":"此提案为草稿状态。添加内容后可提交审核。","draftStatus":"草稿","confirmSubmit":"提交此提案进行审核?","confirmSubmitDesc":"一旦提交,在审核完成前将无法编辑提案内容。","completed":"已完成","typeNewDocument":"新文档","typeDocumentUpdate":"文档更新","typeTaskBreakdown":"任务拆分","typeDocumentAndTasks":"文档 + 任务","tasksCount":"{count} 个任务","closeProposal":"关闭提案","closeProposalDesc":"关闭提案后将无法再编辑。请填写关闭原因。","closeReasonPlaceholder":"请输入关闭原因...","closedNotice":"此提案已被永久关闭。","revokeProposal":"撤回批准","revokeProposalDesc":"此操作将关闭所有由此提案生成的任务,并删除所有生成的文档。提案将回退为草稿状态。","revokeReasonPlaceholder":"请输入撤回原因...","revokeTasksToClose":"将关闭 {count} 个任务","revokeDocsToDelete":"将删除 {count} 个文档","failedToSaveDocDraft":"保存文档草稿失败","failedToSaveTaskDraft":"保存任务草稿失败","docTypePrd":"PRD","docTypeTechDesign":"技术设计","docTypeAdr":"ADR","docTypeSpec":"规格说明","docTypeGuide":"指南","docSubtitlePrd":"产品需求文档","docSubtitleTechDesign":"技术设计文档","docSubtitleAdr":"架构决策记录","docSubtitleSpec":"规格说明书","docSubtitleGuide":"指南","acCount":"{count} AC","depCount":"{count} 依赖","storyPointsPlaceholder":"例如 4","cardsView":"卡片","dependencyExists":"此依赖关系已存在","cyclicDependency":"无法添加依赖:会产生循环","failedToAddDependency":"添加依赖失败","taskDraftDetails":"任务草稿详情","newTaskDraft":"新建任务草稿","editTaskDraft":"编辑","deleteTaskDraft":"删除任务草稿","deleteTaskDraftConfirm":"确定要删除此任务草稿吗?","dependsOn":"依赖任务","noDependencies":"无依赖关系","addDependency":"添加依赖","selectDependency":"选择任务...","removeDependency":"移除","viewMode":"查看","taskDraftSaved":"任务草稿已保存","deleteProposal":"删除提案","deleteProposalDesc":"确定要删除此提案吗?此操作无法撤销。"},"proposalValidation":{"title":"提交检查清单","passed":"所有检查已通过","hasErrors":"请先修复错误再提交","loading":"正在检查...","error":"错误","warning":"警告","info":"提示","errorCount":"{count} 个错误","warningCount":"{count} 个警告","E1":"必须包含至少一个 PRD 文档","E2":"文档「{title}」内容不足(最少 100 个字符)","E3":"必须包含至少一个任务","E4":"必须关联至少一个 Idea","E5":"Idea「{title}」尚未完成需求澄清","W1":"建议添加技术设计文档","W2":"任务「{title}」缺少描述","E-AC":"任务「{title}」缺少验收标准","W4":"存在多个任务但未定义依赖关系","W5":"Proposal 缺少描述","I1":"任务「{title}」未设置优先级","I2":"任务「{title}」未设置故事点"},"documents":{"title":"文档","subtitle":"PRD、规格说明和项目文档","newDocument":"新文档","all":"全部","noDocuments":"暂无文档","noDocumentsDesc":"当提案被批准时会创建文档。您也可以手动创建文档。","createDocument":"创建文档","loadingDocuments":"加载文档中...","documentNotFound":"文档未找到","backToDocuments":"返回文档列表","updated":"更新于 {date}","sourceProposal":"来源提案","viewProposal":"查看提案","versionHistory":"版本历史","previousVersions":"个历史版本","documentContent":"文档内容...","saveChanges":"保存更改","titleLabel":"标题","titleRequired":"标题不能为空","titlePlaceholder":"输入文档标题","typeLabel":"类型","uploadMarkdown":"Markdown 文件(可选)","clickToUpload":"点击上传 Markdown 文件","characters":"个字符","createFailed":"创建文档失败","typePrd":"PRD","typeSpec":"技术规格","typeDesign":"设计文档","typeTechDesign":"技术设计","typeAdr":"ADR","typeGuide":"指南","typeNote":"笔记","typeReport":"总结报告","typeOther":"其他","deleteDocument":"删除文档","deleteDocumentDescription":"此操作将永久删除文档「{title}」,无法恢复。","deleteSuccess":"文档已删除。","deleteFailed":"删除文档失败。","deleteFailedNotFound":"该文档已不存在。"},"export":{"exportDocument":"导出","exportAs":"导出为 {format}","formatMd":"Markdown (.md)","formatPdf":"PDF (.pdf)","formatDocx":"Word (.docx)","exporting":"导出中...","exportSuccess":"文档导出成功","exportError":"文档导出失败","fetchingContent":"加载文档中..."},"settings":{"title":"设置","subtitle":"管理您的账户和智能体配置","breadcrumb":"Chorus / 设置","language":"语言","languageDesc":"选择您的首选语言","agents":"智能体","agentsDesc":"创建 API 密钥,让您的个人智能体访问 Chorus。每个密钥可以分配不同的角色。","createApiKey":"创建 API 密钥","noApiKeys":"暂无 API 密钥。创建一个开始使用。","roles":"角色:","developerAgent":"开发智能体","developerAgentDesc":"执行任务、编写代码、报告问题、提交代码","pmAgent":"产品经理智能体","pmAgentDesc":"分析需求、撰写提案、管理任务","adminAgent":"管理员智能体","adminAgentDesc":"人类级别权限:审批提案、验证任务、创建项目","created":"创建于","apiKeyCreated":"API 密钥已创建","apiKeyCreatedDesc":"请立即复制此密钥。您将无法再次查看它!","installGuideIntro":"现在就连接你的智能体——在下方选择你的客户端。上方密钥已嵌入到代码片段中,且不会再次显示。","name":"名称","namePlaceholder":"我的智能体密钥","agentRoles":"智能体角色","agentRolesDesc":"选择此 API 密钥可以访问的角色。","agentPersona":"智能体人设","agentPersonaDesc":"选择预设或编写您自己的人设。这定义了智能体在所有交互中的行为方式。","agentPersonaDescNoRoles":"定义此智能体在所有交互中的行为方式。","personaPlaceholder":"描述此智能体应如何行为。例如:\'您是一个专注于清晰和简洁的助手...\'","personaHint":"人设会在每次 check-in 时自动注入到智能体的上下文。","personaHintNoRoles":"为您的智能体编写自定义人设。","creating":"创建中...","confirmDelete":"确定要删除此 API 密钥吗?","confirmDeleteTitle":"删除 API 密钥","confirmDeleteDesc":"确定要删除此 API 密钥吗?此操作无法撤销。","editAgent":"编辑智能体","saveChanges":"保存更改","saving":"保存中...","editAgentDesc":"更新此智能体的名称、角色和人设。","updateSuccess":"智能体更新成功","updateFailed":"更新智能体失败","setupGuide":"设置向导","setupGuideDesc":"逐步设置您的 AI 智能体连接","openSetupGuide":"打开设置向导","effectivePermissions":"生效的权限","noEffectivePermissions":"尚未授予任何权限","customRole":"自定义"},"login":{"title":"Chorus","subtitle":"AI 与人类协作平台","email":"邮箱","emailPlaceholder":"you@company.com","continue":"继续","checking":"检查中...","helpText":"输入您的邮箱以登录或创建账户","networkError":"网络错误,请重试。","processingLogin":"正在处理登录...","sessionExpired":"会话已过期,请重新登录。","completingAuth":"正在完成认证...","registeringUser":"正在注册用户...","loginSuccess":"登录成功!正在跳转...","authFailed":"认证失败","backToLogin":"返回登录","noOrganizationFound":"未找到该邮箱对应的组织","defaultAuth":{"title":"登录","email":"邮箱","password":"密码","submit":"登录","error":"邮箱或密码错误","ssoLink":"使用 SSO 登录","orDivider":"或"},"pickWorkspace":{"title":"选择一个 workspace","subtitle":"该邮箱关联 {count} 个 workspace,请选择一个登录。","differentEmail":"换个邮箱","loading":"加载 workspace...","noCandidates":"未找到该邮箱对应的 workspace。","errorLoading":"加载 workspace 失败,请重试。"},"rolePicker":{"title":"该邮箱有多种登录方式,请选择如何继续。","superAdmin":"以超级管理员身份登录","regularUser":"使用密码登录","oidcCompany":"使用 {company} 登录","oidcCompanyFallback":"使用 SSO 登录","back":"换个邮箱"}},"projectOverview":{"loadingProject":"加载项目中...","notFoundTitle":"项目未找到","backToProjects":"返回项目列表","settings":"设置","quickActions":"快捷操作","addIdea":"添加想法","viewKanban":"查看看板","browseDocuments":"浏览文档","ideasSubtext":"{open} 待处理, {inProgress} 进行中","tasksSubtext":"{open} 待处理, {toVerify} 待验证","documentsSubtext":"PRD、规格说明、笔记","proposalsSubtext":"{pending} 待审核","deleteProject":"删除项目","deleteProjectConfirm":"确定要删除「{name}」吗?此操作无法撤销,将永久删除所有关联的想法、提案、任务、文档和动态。"},"personas":{"devPm":"开发导向产品经理","devPmDesc":"您是一位优先考虑开发者体验并构建开发者优先产品的产品经理。您理解技术约束,并能与工程团队有效沟通。","fullPm":"全能产品经理","fullPmDesc":"您是一位全面的产品经理,以构建能为目标受众解决实际问题的产品为己任。您平衡业务目标、用户需求和技术可行性。","simplePm":"简约产品经理","simplePmDesc":"您是一位专注的产品经理,优先考虑核心功能,避免过度设计。您相信快速交付、收集反馈、快速迭代。","seniorDev":"高级开发者","seniorDevDesc":"您是一位经验丰富的高级软件开发者,擅长构建可扩展的系统。您编写简洁、可维护的代码并遵循最佳实践。您指导初级开发者并做出架构决策。","fullstackDev":"全栈开发者","fullstackDevDesc":"您是一位多才多艺的全栈开发者,能够在整个技术栈中自如工作。您可以构建 API、设计数据库和创建响应式 UI。您优先考虑用户体验和性能。","pragmaticDev":"务实开发者","pragmaticDevDesc":"您是一位务实的开发者,专注于快速交付可工作的解决方案。您避免过早优化,为关键路径编写测试,并偏好简单解决方案而非复杂抽象。","carefulAdmin":"谨慎管理员","carefulAdminDesc":"您是一位谨慎的管理员,在批准前会仔细审查所有提案和任务。您会验证验收标准是否满足,检查潜在问题,并记录您的推理过程。如有疑问,您更倾向于询问澄清而非盲目批准。","efficientAdmin":"高效管理员","efficientAdminDesc":"您是一位高效的管理员,在保持质量标准的同时简化审批流程。您信任团队的工作,但仍会进行必要的检查。您专注于快速解除阻塞,同时确保满足基本质量要求。"},"sessions":{"title":"会话","activeSessions":"活跃会话","noSessions":"近 1 小时内无活跃会话","close":"关闭","reopen":"重新打开","closeConfirm":"确定要关闭此会话吗?","statusActive":"活跃","statusInactive":"不活跃","statusClosed":"已关闭","activeWorkers":"活跃工作者","workerCount":"{count} 个工作者","checkedInSince":"签入于 {time}","lastActive":"最后活跃 {time}","checkins":"{count} 个任务"},"pixelCanvas":{"title":"工作区"},"notifications":{"title":"通知","markAllRead":"全部标记已读","noNotifications":"暂无通知","noUnread":"没有未读通知","viewAll":"查看全部","tabAll":"全部","tabUnread":"未读","justNow":"刚刚","minutesAgo":"{count} 分钟前","hoursAgo":"{count} 小时前","daysAgo":"{count} 天前","projectBadge":"项目","notificationPreferences":"通知偏好","loadMore":"加载更多","viewDetail":"查看","types":{"proposal_approved":"提案已通过","proposal_rejected":"提案已拒绝","proposal_submitted":"提案已提交","task_assigned":"任务已分配给你","task_status_changed":"任务状态已变更","task_submitted_for_verify":"任务已提交验证","task_verified":"任务已验证","task_reopened":"任务已重新打开","comment_added":"新评论","idea_claimed":"想法已认领","elaboration_requested":"需求澄清已请求","elaboration_answered":"需求澄清已回答","mentioned":"你被提及了","agent_checkin":"Agent 已成功连接","report_created":"新报告"},"preferences":{"title":"通知偏好","description":"配置哪些事件触发通知","taskEvents":"任务事件","proposalEvents":"提案事件","ideaEvents":"想法事件","commentEvents":"评论事件","taskAssigned":"任务分配","taskStatusChanged":"任务状态变更","taskVerified":"任务验证","taskReopened":"任务重新打开","proposalSubmitted":"提案提交","proposalApproved":"提案通过","proposalRejected":"提案拒绝","ideaClaimed":"想法认领","commentAdded":"新增评论","elaborationEvents":"需求澄清事件","elaborationRequested":"需求澄清请求","elaborationAnswered":"需求澄清回答","mentionEvents":"提及事件","mentioned":"在评论或内容中被提及"}},"elaboration":{"title":"需求澄清","answeredCounter":"已回答 {answered} / {total}","roundLabel":"第 {number} 轮","validated":"已验证","pendingAnswers":"待回答","statusAnswered":"已回答","appendedBadge":"后续补充","noAnswer":"未回答","otherOption":"其他","otherPlaceholder":"请说明...","submitAnswers":"提交回答","confirmAnswerAria":"确认回答","submitting":"提交中...","submitFailed":"提交回答失败","navCounter":"{current} / {total}","questionCount":"{count} 个问题","somethingElse":"其他答案","skipButton":"跳过需求澄清","skipConfirmTitle":"跳过需求澄清?","skipConfirmDescription":"这将跳过结构化问答,直接将需求标记为已澄清。仅建议在需求非常明确时跳过。","skipReasonLabel":"跳过原因","skipReasonPlaceholder":"例如:有明确复现步骤的bug修复","skipReasonRequired":"请提供跳过原因","elaborationRequiredHint":"完成或跳过需求澄清后才能创建方案","verifyButton":"完成细化","verifying":"确认中...","verifyFailed":"确认细化失败","verifiedQueuedHint":"已确认 — 智能体上线后将撰写方案。","category":{"functional":"功能性","nonFunctional":"非功能性","businessContext":"业务背景","technicalContext":"技术背景","userScenario":"用户场景","scope":"范围"}},"projectGroups":{"newProjectGroup":"新建项目组","projectCount":"个项目","complete":"完成","openIdeas":"个待处理想法","viewDashboard":"查看仪表盘","ungrouped":"未分组","noProjectsInGroup":"此组中暂无项目。","newGroupTitle":"新建项目组","groupName":"组名称","groupNamePlaceholder":"例如:移动应用","descriptionOptional":"描述(可选)","descriptionPlaceholder":"简要描述此分组...","createGroup":"创建分组","createFailed":"创建项目组失败","newProjectTitle":"新建项目","creatingIn":"创建到:{groupName}","projectTitle":"项目标题","projectTitlePlaceholder":"例如:项目 Alpha","projectDescriptionPlaceholder":"简要描述此项目...","createProject":"创建项目","moveTitle":"将项目移动到其他分组?","moveDescription":"将「{projectName}」从 {sourceGroupName} 移动到 {targetGroupName} 分组。","confirmMove":"确认移动","moveFailed":"移动项目失败","manageGroup":"管理分组","saveChanges":"保存更改","saving":"保存中...","cancel":"取消","deleteGroup":"删除此分组","deleteConfirmTitle":"确定要删除吗?","deleteConfirmDesc":"此操作不可撤销。请选择如何处理分组内的项目。","deleteKeepProjects":"将 {count, plural, one {# 个项目} other {# 个项目}} 移至未分组","deleteWithProjects":"永久删除 {count, plural, one {# 个项目} other {# 个项目}}","confirmDelete":"删除分组","deleting":"删除中..."},"groupDashboard":{"subtitle":"{count, plural, one {# 个项目} other {# 个项目}} \xb7 聚合仪表盘","editGroup":"编辑分组","manageProjects":"管理项目","statProjects":"项目","statTotalTasks":"总任务数","statCompletionRate":"完成率","statOpenIdeas":"待处理想法","statActiveProposals":"活跃提案","projectsInGroup":"此分组中的项目","newProject":"新建项目","projectStats":"{tasks} 个任务 \xb7 {completion}% 完成","noProjects":"此分组中暂无项目","noProjectsHint":"点击上方「新建项目」添加"},"acceptanceCriteria":{"title":"验收标准","noItems":"暂无结构化验收标准","status":{"pending":"待处理","passed":"通过","failed":"未通过","notStarted":"未开始","inProgress":"进行中"},"acceptanceStatus":{"not_started":"未开始","in_progress":"进行中","passed":"全部通过","failed":"未通过"},"required":"必需","optional":"可选","devSelfCheck":"开发自检","verification":"验证","evidence":"依据","pass":"通过","fail":"不通过","undoVerification":"撤销","devEvidence":"开发依据","verifyEvidence":"验证依据","noEvidence":"暂无依据","dismiss":"知道了","progress":"已验证 {passed}/{total}","requiredProgress":"必需项 {passed}/{required} 已通过","gateBlocked":"无法验证:{count} 项必需标准尚未通过","gateReady":"所有必需标准已通过","addCriterion":"添加标准","removeCriterion":"移除","criterionPlaceholder":"描述验收标准...","atLeastOneRequired":"至少需要一条非空的验收标准。"},"onboarding":{"skip":"暂时跳过","next":"下一步","back":"返回","steps":{"welcome":"欢迎","createAgent":"创建智能体","copyKey":"复制密钥","installGuide":"安装","testConnection":"测试","completion":"完成"},"welcome":{"title":"欢迎使用 Chorus","description":"Chorus 是一个 AI 与人类协作平台。AI 智能体提出方案,人类验证 — 通过结构化的开发生命周期。","getStarted":"开始使用","pipelineTitle":"AI 驱动开发生命周期","pipeline":{"idea":"想法","proposal":"方案","task":"任务","execute":"执行","verify":"验证","done":"完成"}},"completion":{"title":"一切就绪!","description":"您的智能体已配置完成,可以开始协作了。创建一个项目或探索设置来开始使用。","summary":"配置摘要","agentName":"智能体名称","agentRoles":"角色","agentPreset":"预设","agentPermissions":"权限","permissionsCount":"{count} 项权限","goToProjects":"前往项目","goToSettings":"前往设置"},"createAgent":{"title":"创建您的 AI 智能体","description":"设置一个具有匹配您工作流程的权限和人设的 AI 智能体。这将为智能体生成一个 API 密钥。","nameLabel":"智能体名称","namePlaceholder":"例如:my-dev-agent","personaLabel":"人设(可选)","personaPlaceholder":"描述该智能体的行为方式——语气、优先级、约束。","personaHint":"人设会追加到智能体的系统提示词中,用于塑造其行为。","submit":"创建智能体","creating":"正在创建..."},"copyKey":{"title":"复制您的 API 密钥","description":"请将此 API 密钥保存到安全的地方。您需要它来配置 AI 智能体客户端。","warning":"请立即复制此密钥。此后将无法再次查看!","copy":"复制密钥","copied":"已复制!"},"install":{"description":"选择您的 AI 智能体客户端,然后按照以下说明进行设置。","tabs":{"claudeCode":"Claude Code","codex":"Codex","opencode":"OpenCode","openClaw":"OpenClaw","other":"其他智能体"},"claudeCode":{"step1Title":"第 1 步:设置环境变量","step1Tip":"提示:将这些添加到 ~/.bashrc 或 ~/.zshrc 以实现持久化。","step2Title":"第 2 步:打开 Claude Code 并运行"},"codex":{"step1Title":"第 1 步:设置环境变量","step1Tip":"提示:将这些添加到 ~/.bashrc 或 ~/.zshrc 以实现持久化。","step2Title":"第 2 步:运行 Codex 安装脚本","step2Tip":"脚本会自动注册 plugin marketplace 并写入 ~/.codex/config.toml 的 MCP 服务器配置。","step3Title":"第 3 步:验证连接","step3Desc":"打开 Codex,让它 check in 到 Chorus,例如输入 \\"check in to chorus\\"。"},"opencode":{"step1Title":"第 1 步:设置环境变量","step1Tip":"提示:将这些添加到 ~/.bashrc 或 ~/.zshrc,插件会在 OpenCode 启动时读取这两个变量。","step2Title":"第 2 步:启用 Chorus 插件","step2Tip":"安装脚本会幂等地把 \\"opencode-chorus\\" 加入 ~/.config/opencode/opencode.json 的 \\"plugin\\" 数组,不会修改你的 shell rc。OpenCode 首次启动时 Bun 会自动安装该插件。","step3Title":"第 3 步:验证连接","step3Desc":"打开 OpenCode,告诉 agent \\"check in to chorus\\"。连接成功后本步骤会自动跳转。","troubleshootingTitle":"故障排除","issueCache":{"title":"插件未加载","fix":"清空插件缓存:`rm -rf ~/.cache/opencode/packages/opencode-chorus@latest`,然后重启 OpenCode。"},"issueEnv":{"title":"环境变量未生效","fix":"确认启动 OpenCode 的 shell 已 export CHORUS_URL 和 CHORUS_API_KEY。如有需要,先 re-source 一下 shell rc。"},"issueCheckin":{"title":"check-in 无响应","fix":"核对 CHORUS_API_KEY 是否有错字或多余空格。如果插件仍然加载失败,尝试升级 OpenCode。"}},"openClaw":{"step1Title":"第 1 步:安装插件","step2Title":"第 2 步:编辑 ~/.openclaw/openclaw.json","step3Title":"第 3 步:重启 OpenClaw 网关","step3Desc":"重启 OpenClaw 网关进程以加载新的配置。","step4Title":"第 4 步:验证连接","step4Desc":"在 OpenClaw 聊天窗口中,输入以下命令:","troubleshootingTitle":"故障排除","troubleshootingError":"\\"Wake agent failed: HTTP 405\\"","troubleshootingFix":"此错误表示 hooks 未启用。请在 openclaw.json 配置中将 \\"hooks.enabled\\" 设置为 true,然后重启网关。"},"other":{"description":"复制以下提示词并发送给您的 AI 智能体以配置 Chorus 连接。"}},"testConnection":{"title":"测试连接","waiting":"等待智能体连接...","waitingFor":"正在监听 {name} 的签到","connected":"智能体连接成功!","checkinHint":"复制以下提示词并发送给你的智能体,以验证连接:","checkinPrompt":"请连接到 Chorus 并执行 chorus_checkin() 验证连接。"},"placeholder":{"createAgent":"此步骤将用于创建 AI 智能体。即将推出。","copyKey":"此步骤将用于复制 API 密钥。即将推出。","installGuide":"此步骤将引导您完成安装。即将推出。","testConnection":"此步骤将测试智能体连接。即将推出。"}},"ideaTracker":{"overview":"总览","overviewSubtitle":"追踪想法、提案和任务进展","tabs":{"ideas":"想法","lineage":"血缘","stats":"统计"},"badge":{"open":"待开始","researching":"调研中","answerQuestions":"回答问题","planning":"规划中","reviewProposal":"审批提案","building":"开发中","verifyWork":"验收成果","done":"已完成","closed":"已关闭"},"status":{"todo":"待处理","inProgress":"进行中","humanConductRequired":"需要指挥","done":"已完成"},"lineage":{"derivedCount":"{count} 派生","title":"派生关系","derivedFrom":"派生自","setParent":"挂父","changeParent":"更改父级","derivedIdeas":"派生想法","derive":"派生","deriveIdea":"派生新想法","noParent":"无父级","setParentTitle":"设置父想法","setParentDescription":"为「{title}」选择一个父想法。只能选择同一项目内的想法;想法不能挂在自己或自己的后代之下(会形成环)。","searchPlaceholder":"搜索想法...","detach":"脱钩(变为顶层)","cycleBlocked":"后代 \xb7 会成环","cycleWarning":"灰显的想法是当前想法的后代,选择它们会形成环,因此已被禁用。","noCandidates":"该项目内没有可选的想法","pickerTruncated":"仅显示前 200 个想法。如果没看到想要的父级,请用标题搜索缩小范围。","save":"设为父想法","saveFailed":"设置父级失败","deriveFailed":"派生想法失败"},"actions":{"newIdea":"新建想法","untitledIdea":"未命名想法","search":"搜索想法...","retry":"重试","assign":"分配","reassign":"重新分配"},"empty":{"noIdeas":"暂无想法","getStarted":"想法会经过需求细化、提案和任务执行——从创建第一个想法开始","noResults":"没有匹配的想法","groupEmpty":"此状态下暂无想法"},"newIdea":{"title":"新建想法","ideaTitle":"标题","titlePlaceholder":"你的想法是什么?","description":"描述","descriptionPlaceholder":"添加背景、目标或其他有助于说明想法的细节..."},"error":{"loadFailed":"加载想法失败","createFailed":"创建想法失败"},"loading":"加载中...","justNow":"刚刚","minutesAgo":"{minutes}分钟前","hoursAgo":"{hours}小时前","daysAgo":"{days}天前","stats":{"totalIdeas":"想法总数","totalTasks":"任务总数","totalProposals":"提案总数","totalDocuments":"文档总数","openCount":"{count} 个待处理","activeCount":"{count} 个进行中","pendingCount":"{count} 个待审核","taskPipeline":"任务流水线","totalCount":"共 {count} 个","todoCount":"待处理:{count}","inProgressCount":"进行中:{count}","toVerifyCount":"待验证:{count}","doneCount":"已完成:{count}","noTasks":"暂无任务","recentActivity":"最近活动","viewAll":"查看全部","noActivity":"暂无活动"},"panel":{"notFound":"未找到想法","loadFailed":"加载想法失败","verifyingPlaceholder":"验证进行中...","donePlaceholder":"此想法已完成。","elaborationStatus":"细化状态","elaborationRounds":"细化问答","elaborationNotStarted":"尚未开始","elaborationNotStartedDesc":"分配给智能体以开始需求细化。","elaborationWaiting":"等待智能体","elaborationWaitingDesc":"产品经理智能体将很快开始细化。","elaboration":{"pendingAnswers":"待回答","validating":"验证中","resolved":"已完成"},"noProposals":"暂无与此想法关联的提案","viewProposal":"查看完整提案","tabs":{"overview":"概览","elaboration":"需求细化","proposal":"提案","tasks":"任务","activity":"动态"},"timeline":{"ideaCreated":"创建 Idea","elaboration":"需求细化","proposal":"提案","tasksProgress":"任务进度","noElaboration":"未开始","elaborationComplete":"已完成({count} 个问题)","elaborationInProgress":"进行中","elaborationSkipped":"已跳过","noProposal":"尚未创建","proposalApproved":"已批准","proposalsApproved":"{count}/{total} 已批准","proposalPending":"待审核","proposalDraft":"草稿","proposalRejected":"已拒绝","tasksComplete":"{done}/{total} 已完成","noTasks":"暂无任务","createdBy":"由 {name} 创建","documents":"{count} 个文档","tasks":"{count} 个任务","rounds":"{count} 轮问答","moreItems":"+{count} 更多"},"taskList":{"inProgress":"进行中","toVerify":"待验证","open":"待处理","done":"已完成","noTasks":"暂无可用任务","assigned":"已分配","closed":"已关闭","summary":"{done}/{total} 任务完成","acSummary":"{passed}/{total} 验收通过","agentWorking":"{count} 个 Agent 正在工作","workersActive":"{count} 个工作者","viewKanban":"看板"},"activityTab":{"activity":"动态","comments":"评论"}}},"search":{"placeholder":"搜索任务、想法、提案、文档...","scopeGlobal":"全局","scopeGroup":"分组","scopeProject":"当前项目","filterAll":"全部","filterTasks":"任务","filterIdeas":"想法","filterProposals":"提案","filterDocuments":"文档","filterProjects":"项目","noResults":"未找到结果","resultCount":"{count} 个结果","entityType":{"task":"任务","idea":"想法","proposal":"提案","document":"文档","project":"项目","project_group":"分组"}},"agent":{"permissions":{"title":"权限","description":"从预设开始,或直接自定义权限矩阵。","presetLabel":"预设","presetAdmin":"管理员","presetPm":"产品经理","presetDev":"开发者","presetCustom":"自定义","resourceHeader":"资源","resources":{"idea":"想法","proposal":"提案","document":"文档","task":"任务","project":"项目"},"actions":{"read":"读取","write":"写入","admin":"管理"},"help":{"admin":"对所有资源拥有完整权限,包含审批 / 验收 / 重开。推荐用于管理员 Agent。","pm":"推进工作:管理想法、提案、文档、任务、项目。没有审批或验收权限。","dev":"执行工作:可读取想法、提案、文档与项目;可创建与更新任务。无审批或验收权限。","custom":"自由勾选权限位。只有在自定义模式下,才能开启「管理」列的审批 / 验收 / 关闭动作。"}}},"idea":{"reportsList":"总结报告","reportsAcrossProposals":"覆盖所有已审批提案"},"agentConnections":{"title":"智能体连接","subtitle":"在你名下、实时连接到 Chorus 的本地智能体。仅展示你自己的连接。","summary":"{online} / {total} 在线","loading":"正在加载连接...","railHeader":"连接","statusOnline":"在线","statusOffline":"离线","fieldHost":"主机","fieldUptime":"在线时长","fieldLastActive":"最近活跃","fieldStarted":"启动于","hostUnknown":"未知主机","startedUnknown":"未知","versionUnknown":"?","unknownAgent":"未命名智能体","clientClaudeCode":"Claude Code","clientOpenclaw":"OpenClaw","clientUnknown":"未知客户端","uptimeMonoDays":"{days}天 {time}","mobileBack":"返回连接列表","selectPrompt":"选择一个连接以查看详情。","execTitle":"执行状态","execRunning":"正在运行","execQueued":"排队中","execInterrupted":"已打断","execInterruptedUser":"已打断","execInterruptedCrash":"已崩溃","execCrashAutoRecovers":"自动恢复","execWaiting":"等待中","execLoading":"正在加载执行状态...","execElapsedLabel":"已运行时长","execSession":"Idea:{idea}","execEmptyTitle":"暂无运行中的任务","execEmptyBody":"该连接当前没有正在处理或排队的工作。派发的工作会在 daemon 接手时显示在这里。","empty":{"title":"暂无智能体连接"},"loadErrorTitle":"无法加载连接","loadErrorBody":"无法连接到连接服务。这是加载失败,并非列表为空——你的智能体可能仍在线。正在自动重试。","execEntityUnknown":"未知资源","execConversation":"对话","entityTask":"任务","entityIdea":"想法","entityProposal":"提案","entityDocument":"文档","entityUnknown":"资源","interrupt":"打断","interrupting":"正在打断…","interruptAria":"打断此正在运行的执行","interruptConfirmTitle":"确定打断此执行?","interruptConfirmBody":"这会停止 daemon 中针对「{title}」正在运行的会话。系统会先请求智能体优雅停止,若未停止则强制结束。之后你可以在本页恢复它。","interruptConfirmAction":"打断","interruptSuccess":"已请求打断「{title}」。","interruptError":"请求打断失败,请重试。","resume":"恢复","resuming":"正在恢复…","resumeAria":"恢复这个已打断的执行","resumeSuccess":"已请求恢复「{title}」。","resumeError":"请求恢复失败,请重试。","sendInstruction":"发送指令","sendInstructionPlaceholder":"为这个会话输入一条指令…","send":"发送","instructionHint":"按 Cmd/Ctrl + Enter 发送。","instructionCounter":"{count} / {max}","instructionSent":"指令已发送。","instructionError":"指令发送失败,请重试。","instructionEmpty":"请先输入指令再发送。","instructionTooLong":"指令过长。请精简到 {max} 个字符以内。","originOnlineTag":"源端在线","originOfflineTag":"源端离线","originOffline":"该会话的源端守护进程已离线,因此为只读状态。请改为开启一个新会话。","noOnlineConnection":"该智能体没有可发送的在线连接。请先启动它的守护进程,再发送指令。","targetConversation":"会话","newConversation":"新会话","sessionIdeaLabel":"想法 {id}","sessionAdHocLabel":"会话 {id}","adHocTitle":"开启新会话","adHocBody":"选择一个在线连接并发送第一条指令。新会话会在该连接的启动目录中运行。","pickConnection":"连接","pickConnectionPlaceholder":"选择一个在线连接","startSession":"开启会话","adHocSessionStarted":"会话已开启,智能体稍后会接手。","entityConversation":"对话"},"daemonChat":{"title":"对话","subtitle":"逐回合查看智能体做了什么。可在对话内继续发送或中断。","agentSelectLabel":"智能体","agentSelectPlaceholder":"选择一个智能体","agentSessionCount":"{count, plural, other {# 个对话}}","listHeader":"对话","loadMore":"加载更多","loadEarlier":"加载更早的消息","loadingEarlier":"正在加载更早…","loading":"正在加载对话…","transcriptLoading":"正在加载记录…","mobileBack":"对话","conversationAdHoc":"对话 {id}","conversationIdea":"想法 {id}","badgeIdea":"想法","running":"运行中","runningElapsedLabel":"本次运行已用时","statusActive":"进行中","statusEnded":"已结束","statusInterrupted":"已打断","statusError":"错误","turnStatusPending":"排队中","turnStatusRunning":"运行中","turnStatusEnded":"已结束","triggerTask":"任务","triggerMention":"提及","triggerElaboration":"澄清","triggerInstruction":"指令","triggerResume":"恢复","triggerUnknown":"回合","turnLabel":"第 {seq} 回合","openTask":"打开任务","openIdea":"打开想法","roleYou":"你","roleAgent":"智能体","turnNoMessages":"该回合没有保留对话记录。","privacyNote":"对话记录由智能体的守护进程上报,可能包含本地文件路径。仅保留最近的消息。","noAgents":{"title":"暂无对话","body":"当智能体被唤醒时(因任务、提及、澄清或你发送的指令),它的对话会显示在这里。"},"noSessions":{"title":"该智能体暂无对话","body":"在下方输入框发送一条指令以开启对话。"},"newConversationButton":"新建对话","newConversationTitle":"新建对话","newConversationBody":"向 {agent} 发送第一条指令。它会在你选择的连接上开启一个新会话。","newConversationNoAgent":"先在左侧选择一个智能体,然后发送第一条指令以开启对话。","newConversationNoOnlineTitle":"没有在线连接","newConversationNoOnlineBody":"该智能体当前没有在线的守护进程可对话。请先启动它的守护进程,再在此发送指令。","replyPlaceholder":"在此对话中回复…","selectPrompt":"选择一个对话以查看其记录。","loadErrorTitle":"无法加载该对话","loadErrorBody":"无法连接到记录服务。这是加载问题,而非空对话。重新打开时会自动重试。","originOfflineNote":"该对话的来源守护进程已离线,因此为只读。历史记录仍会显示;如需发送请开启新对话。","detailsLabel":"连接详情","detailsHostUnknown":"未知主机","detailUptime":"运行时长","detailHost":"主机","detailStarted":"启动于","copySessionId":"复制 session ID","sessionIdCopied":"已复制!"},"agentPresence":{"online":"在线","onlineUnit":"{count, plural, other {智能体在线}}","loading":"正在检查智能体…","unavailable":"智能体不可用","pillAria":"在线智能体 — 打开详情","popoverTitle":"在线智能体","connectionIdle":"空闲 — 没有正在运行或排队的工作。","viewAll":"查看全部"},"daemonConnectCta":{"headline":"下一步:让你的智能体保持在线","body":"运行一个常驻守护进程,让你的智能体保持在线并自动接收派发的工作。","bodyLong":"安装插件只是建立一次性连接,并不能让智能体常驻在线。在终端运行一个常驻守护进程,智能体才会保持连接并自动接收派发的工作。","loginNote":"首次使用?先用 {command} 登录一次。","copy":"复制","copied":"已复制!","learnMore":"了解如何连接智能体"},"mention":{"online":"在线","offline":"离线","activeCount":"进行中 {count}","idle":"空闲"}}')}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[59296],{24377:(e,t,n)=>{n.d(t,{cn:()=>u});var r=n(49251),a=n(58849);function u(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return(0,a.QP)((0,r.$)(t))}},30423:(e,t,n)=>{n.d(t,{j:()=>a});let r=["#E06C75","#E5C07B","#98C379","#56B6C2","#61AFEF","#C678DD","#D19A66","#BE5046","#7EC8E3","#C3E88D","#F78C6C","#A9DC76"];function a(e){let t=function(e){let t=0;for(let n=0;n<e.length;n++)t=(t<<5)-t+e.charCodeAt(n)|0;return Math.abs(t)}(e)%r.length;return r[t]}},47754:(e,t,n)=>{n.d(t,{fv:()=>g,xQ:()=>x});var r=n(1856),a=n(63964);let u=new Map,c=new Map,i=new Map,o=new Set,s=0;function l(e,t,n,r){return n?r?"".concat(e,":").concat(t,":").concat(n,":").concat(r):"".concat(e,":").concat(t,":").concat(n):"".concat(e,":").concat(t)}function d(){s++,o.forEach(e=>e())}function f(e){var t;let n=e.subEntityType,r=e.subEntityUuid,a=l(e.entityType,e.entityUuid,n,r),o=function(e,t,n,r,a){let u=l(e,t,r,a);return"".concat(u,":").concat(n)}(e.entityType,e.entityUuid,e.agentUuid,n,r),s=c.get(o);if(s&&Date.now()-s<3e3)return;c.set(o,Date.now());let f={agentUuid:e.agentUuid,agentName:e.agentName,action:e.action,timestamp:Date.now()},p=(null!=(t=u.get(a))?t:[]).filter(t=>t.agentUuid!==e.agentUuid);p.push(f),u.set(a,p);let m=i.get(o);m&&clearTimeout(m);let g=setTimeout(()=>{let t=u.get(a);if(t){let n=t.filter(t=>t.agentUuid!==e.agentUuid);0===n.length?u.delete(a):u.set(a,n)}c.delete(o),i.delete(o),d()},3e3);i.set(o,g),d()}function p(){return s}function m(e){return o.add(e),()=>{o.delete(e)}}function g(e){f({type:"presence",companyUuid:"",projectUuid:"",...e,timestamp:Date.now()})}function x(){return(0,r.useSyncExternalStore)(m,p,p),(0,a.S2)(f),{getPresence:(e,t,n,r)=>{if(n){var a;return null!=(a=u.get(l(e,t,n,r)))?a:[]}let c="".concat(e,":").concat(t),i=new Map;for(let[e,t]of u)if(e===c||e.startsWith(c+":"))for(let e of t){let t=i.get(e.agentUuid);(!t||e.timestamp>t.timestamp)&&i.set(e.agentUuid,e)}return[...i.values()]}}}},48416:(e,t,n)=>{n.d(t,{BT:()=>o,Wu:()=>s,ZB:()=>i,Zp:()=>u,aR:()=>c});var r=n(90508);n(1856);var a=n(24377);function u(e){let{className:t,...n}=e;return(0,r.jsx)("div",{"data-slot":"card",className:(0,a.cn)("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",t),...n})}function c(e){let{className:t,...n}=e;return(0,r.jsx)("div",{"data-slot":"card-header",className:(0,a.cn)("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",t),...n})}function i(e){let{className:t,...n}=e;return(0,r.jsx)("div",{"data-slot":"card-title",className:(0,a.cn)("leading-none font-semibold",t),...n})}function o(e){let{className:t,...n}=e;return(0,r.jsx)("div",{"data-slot":"card-description",className:(0,a.cn)("text-muted-foreground text-sm",t),...n})}function s(e){let{className:t,...n}=e;return(0,r.jsx)("div",{"data-slot":"card-content",className:(0,a.cn)("px-6",t),...n})}},63964:(e,t,n)=>{n.d(t,{S2:()=>s,eV:()=>o,l9:()=>i,tS:()=>c,w0:()=>l});var r=n(90508),a=n(1856);n(23675);let u=(0,a.createContext)(null);function c(e){let{projectUuid:t,children:n}=e,c=(0,a.useRef)(new Set),i=(0,a.useRef)(new Set),o=(0,a.useRef)(new Set),s=(0,a.useRef)(new Set),l=(0,a.useCallback)(()=>{c.current.forEach(e=>e())},[]),d=(0,a.useCallback)(e=>{i.current.forEach(t=>t(e))},[]);(0,a.useEffect)(()=>{let e,n=null,r=0,a={};function u(){c(),(n=new EventSource(t?"/api/events?projectUuid=".concat(t):"/api/events")).onmessage=t=>{let n=null;try{n=JSON.parse(t.data)}catch(e){return}if(!n)return;if("presence"===n.type)return void o.current.forEach(e=>e(n));if("execution"===n.type)return void s.current.forEach(e=>e(n));let u=n;clearTimeout(e);let c=Date.now(),i=c-r;i>=3e3?(r=c,l()):e=setTimeout(()=>{r=Date.now(),l()},Math.max(1e3,3e3-i));let f=u.entityType;clearTimeout(a[f]),a[f]=setTimeout(()=>{d(u)},300)},n.onerror=()=>{}}function c(){n&&(n.close(),n=null)}function i(){if("visible"===document.visibilityState&&(!n||n.readyState===EventSource.CLOSED))for(let e of(u(),l(),["task","idea","proposal","document","project","project_group"]))d({companyUuid:"",projectUuid:"",entityType:e,entityUuid:"",action:"updated"})}return u(),document.addEventListener("visibilitychange",i),()=>{for(let t in c(),clearTimeout(e),a)clearTimeout(a[t]);document.removeEventListener("visibilitychange",i)}},[t,l,d]);let f=(0,a.useCallback)(e=>(c.current.add(e),()=>{c.current.delete(e)}),[]),p=(0,a.useCallback)(e=>(i.current.add(e),()=>{i.current.delete(e)}),[]),m=(0,a.useCallback)(e=>(o.current.add(e),()=>{o.current.delete(e)}),[]),g=(0,a.useCallback)(e=>(s.current.add(e),()=>{s.current.delete(e)}),[]),x=(0,a.useMemo)(()=>({subscribe:f,subscribeEntity:p,subscribePresence:m,subscribeExecution:g}),[f,p,m,g]);return(0,r.jsx)(u.Provider,{value:x,children:n})}function i(e){let t=(0,a.useContext)(u),n=(0,a.useRef)(e);n.current=e,(0,a.useEffect)(()=>{if(!t)return;let e=()=>n.current();return e(),t.subscribe(e)},[t])}function o(e,t){let n=(0,a.useContext)(u),r=(0,a.useRef)(t);r.current=t;let c=(0,a.useRef)(e);c.current=e,(0,a.useEffect)(()=>{if(n)return n.subscribeEntity(e=>{let t=c.current;(Array.isArray(t)?t.includes(e.entityType):e.entityType===t)&&r.current(e)})},[n])}function s(e){let t=(0,a.useContext)(u),n=(0,a.useRef)(e);n.current=e,(0,a.useEffect)(()=>{if(t)return t.subscribePresence(e=>n.current(e))},[t])}function l(e,t,n){let r=(0,a.useContext)(u),c=(0,a.useRef)(n);c.current=n,(0,a.useEffect)(()=>{if(r)return r.subscribeEntity(n=>{n.entityType===e&&n.entityUuid===t&&c.current(n)})},[r,e,t])}},96213:(e,t,n)=>{n.d(t,{D:()=>i});var r=n(90508),a=n(47754),u=n(30423),c=n(5425);function i(e){let{entityType:t,entityUuid:n,subEntityType:c,subEntityUuid:i,children:s,badgeInside:l}=e,{getPresence:d}=(0,a.xQ)(),f=d(t,n,c,i),p=f.length>0,m=p&&f.some(e=>"mutate"===e.action),g=p?m?f.find(e=>"mutate"===e.action):f[f.length-1]:null,x=g?(0,u.j)(g.agentName):"transparent";return(0,r.jsxs)("div",{className:"relative",style:p?{outline:"2px ".concat(m?"solid":"dashed"," ").concat(x),outlineOffset:"-2px",borderRadius:"var(--radius)"}:void 0,children:[p&&(0,r.jsxs)("div",{className:"absolute flex gap-1 z-10 justify-end ".concat(l?"top-0.5 right-1.5 max-w-[70%]":"-top-2.5 right-2 max-w-[80%]"),children:[f.slice(0,3).map(e=>(0,r.jsx)(o,{entry:e},e.agentUuid)),f.length>3&&(0,r.jsxs)("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded-full text-[10px] font-medium text-white bg-gray-500 whitespace-nowrap",children:["+",f.length-3]})]}),s]})}function o(e){let{entry:t}=e,n=(0,u.j)(t.agentName);return(0,r.jsxs)("span",{className:"inline-flex items-center gap-1 px-1.5 py-0.5 rounded-full text-[10px] font-medium text-white whitespace-nowrap animate-in fade-in duration-300 ease-out sm:text-[11px] sm:px-2",style:{backgroundColor:n},children:[(0,r.jsx)(c.A,{className:"h-2.5 w-2.5"}),t.agentName]})}}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[60648],{5425:(e,r,t)=>{t.d(r,{A:()=>o});let o=(0,t(66206).A)("bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]])},23675:(e,r,t)=>{var o=t(84675);t.o(o,"useParams")&&t.d(r,{useParams:function(){return o.useParams}}),t.o(o,"usePathname")&&t.d(r,{usePathname:function(){return o.usePathname}}),t.o(o,"useRouter")&&t.d(r,{useRouter:function(){return o.useRouter}}),t.o(o,"useSearchParams")&&t.d(r,{useSearchParams:function(){return o.useSearchParams}})},65326:(e,r,t)=>{t.r(r),t.d(r,{Corner:()=>Q,Root:()=>B,ScrollArea:()=>g,ScrollAreaCorner:()=>W,ScrollAreaScrollbar:()=>E,ScrollAreaThumb:()=>H,ScrollAreaViewport:()=>y,Scrollbar:()=>q,Thumb:()=>J,Viewport:()=>G,createScrollAreaScope:()=>w});var o=t(1856),n=t(93367),l=t(19900),i=t(21032),a=t(34124),s=t(32313),c=t(72599),u=t(99457),d=t(91722),p=t(33328),h=t(90508),f="ScrollArea",[v,w]=(0,i.A)(f),[b,m]=v(f),g=o.forwardRef((e,r)=>{let{__scopeScrollArea:t,type:l="hover",dir:i,scrollHideDelay:s=600,...u}=e,[d,p]=o.useState(null),[f,v]=o.useState(null),[w,m]=o.useState(null),[g,S]=o.useState(null),[y,x]=o.useState(null),[E,C]=o.useState(0),[R,T]=o.useState(0),[P,L]=o.useState(!1),[A,_]=o.useState(!1),j=(0,a.s)(r,e=>p(e)),D=(0,c.jH)(i);return(0,h.jsx)(b,{scope:t,type:l,dir:D,scrollHideDelay:s,scrollArea:d,viewport:f,onViewportChange:v,content:w,onContentChange:m,scrollbarX:g,onScrollbarXChange:S,scrollbarXEnabled:P,onScrollbarXEnabledChange:L,scrollbarY:y,onScrollbarYChange:x,scrollbarYEnabled:A,onScrollbarYEnabledChange:_,onCornerWidthChange:C,onCornerHeightChange:T,children:(0,h.jsx)(n.sG.div,{dir:D,...u,ref:j,style:{position:"relative","--radix-scroll-area-corner-width":E+"px","--radix-scroll-area-corner-height":R+"px",...e.style}})})});g.displayName=f;var S="ScrollAreaViewport",y=o.forwardRef((e,r)=>{let{__scopeScrollArea:t,children:l,nonce:i,...s}=e,c=m(S,t),u=o.useRef(null),d=(0,a.s)(r,u,c.onViewportChange);return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"},nonce:i}),(0,h.jsx)(n.sG.div,{"data-radix-scroll-area-viewport":"",...s,ref:d,style:{overflowX:c.scrollbarXEnabled?"scroll":"hidden",overflowY:c.scrollbarYEnabled?"scroll":"hidden",...e.style},children:(0,h.jsx)("div",{ref:c.onContentChange,style:{minWidth:"100%",display:"table"},children:l})})]})});y.displayName=S;var x="ScrollAreaScrollbar",E=o.forwardRef((e,r)=>{let{forceMount:t,...n}=e,l=m(x,e.__scopeScrollArea),{onScrollbarXEnabledChange:i,onScrollbarYEnabledChange:a}=l,s="horizontal"===e.orientation;return o.useEffect(()=>(s?i(!0):a(!0),()=>{s?i(!1):a(!1)}),[s,i,a]),"hover"===l.type?(0,h.jsx)(C,{...n,ref:r,forceMount:t}):"scroll"===l.type?(0,h.jsx)(R,{...n,ref:r,forceMount:t}):"auto"===l.type?(0,h.jsx)(T,{...n,ref:r,forceMount:t}):"always"===l.type?(0,h.jsx)(P,{...n,ref:r}):null});E.displayName=x;var C=o.forwardRef((e,r)=>{let{forceMount:t,...n}=e,i=m(x,e.__scopeScrollArea),[a,s]=o.useState(!1);return o.useEffect(()=>{let e=i.scrollArea,r=0;if(e){let t=()=>{window.clearTimeout(r),s(!0)},o=()=>{r=window.setTimeout(()=>s(!1),i.scrollHideDelay)};return e.addEventListener("pointerenter",t),e.addEventListener("pointerleave",o),()=>{window.clearTimeout(r),e.removeEventListener("pointerenter",t),e.removeEventListener("pointerleave",o)}}},[i.scrollArea,i.scrollHideDelay]),(0,h.jsx)(l.C,{present:t||a,children:(0,h.jsx)(T,{"data-state":a?"visible":"hidden",...n,ref:r})})}),R=o.forwardRef((e,r)=>{var t;let{forceMount:n,...i}=e,a=m(x,e.__scopeScrollArea),s="horizontal"===e.orientation,c=K(()=>d("SCROLL_END"),100),[u,d]=(t={hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}},o.useReducer((e,r)=>{let o=t[e][r];return null!=o?o:e},"hidden"));return o.useEffect(()=>{if("idle"===u){let e=window.setTimeout(()=>d("HIDE"),a.scrollHideDelay);return()=>window.clearTimeout(e)}},[u,a.scrollHideDelay,d]),o.useEffect(()=>{let e=a.viewport,r=s?"scrollLeft":"scrollTop";if(e){let t=e[r],o=()=>{let o=e[r];t!==o&&(d("SCROLL"),c()),t=o};return e.addEventListener("scroll",o),()=>e.removeEventListener("scroll",o)}},[a.viewport,s,d,c]),(0,h.jsx)(l.C,{present:n||"hidden"!==u,children:(0,h.jsx)(P,{"data-state":"hidden"===u?"hidden":"visible",...i,ref:r,onPointerEnter:(0,p.mK)(e.onPointerEnter,()=>d("POINTER_ENTER")),onPointerLeave:(0,p.mK)(e.onPointerLeave,()=>d("POINTER_LEAVE"))})})}),T=o.forwardRef((e,r)=>{let t=m(x,e.__scopeScrollArea),{forceMount:n,...i}=e,[a,s]=o.useState(!1),c="horizontal"===e.orientation,u=K(()=>{if(t.viewport){let e=t.viewport.offsetWidth<t.viewport.scrollWidth,r=t.viewport.offsetHeight<t.viewport.scrollHeight;s(c?e:r)}},10);return F(t.viewport,u),F(t.content,u),(0,h.jsx)(l.C,{present:n||a,children:(0,h.jsx)(P,{"data-state":a?"visible":"hidden",...i,ref:r})})}),P=o.forwardRef((e,r)=>{let{orientation:t="vertical",...n}=e,l=m(x,e.__scopeScrollArea),i=o.useRef(null),a=o.useRef(0),[s,c]=o.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),u=X(s.viewport,s.content),d={...n,sizes:s,onSizesChange:c,hasThumb:!!(u>0&&u<1),onThumbChange:e=>i.current=e,onThumbPointerUp:()=>a.current=0,onThumbPointerDown:e=>a.current=e};function p(e,r){return function(e,r,t){let o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"ltr",n=Y(t),l=r||n/2,i=t.scrollbar.paddingStart+l,a=t.scrollbar.size-t.scrollbar.paddingEnd-(n-l),s=t.content-t.viewport;return M([i,a],"ltr"===o?[0,s]:[-1*s,0])(e)}(e,a.current,s,r)}return"horizontal"===t?(0,h.jsx)(L,{...d,ref:r,onThumbPositionChange:()=>{if(l.viewport&&i.current){let e=U(l.viewport.scrollLeft,s,l.dir);i.current.style.transform="translate3d(".concat(e,"px, 0, 0)")}},onWheelScroll:e=>{l.viewport&&(l.viewport.scrollLeft=e)},onDragScroll:e=>{l.viewport&&(l.viewport.scrollLeft=p(e,l.dir))}}):"vertical"===t?(0,h.jsx)(A,{...d,ref:r,onThumbPositionChange:()=>{if(l.viewport&&i.current){let e=U(l.viewport.scrollTop,s);i.current.style.transform="translate3d(0, ".concat(e,"px, 0)")}},onWheelScroll:e=>{l.viewport&&(l.viewport.scrollTop=e)},onDragScroll:e=>{l.viewport&&(l.viewport.scrollTop=p(e))}}):null}),L=o.forwardRef((e,r)=>{let{sizes:t,onSizesChange:n,...l}=e,i=m(x,e.__scopeScrollArea),[s,c]=o.useState(),u=o.useRef(null),d=(0,a.s)(r,u,i.onScrollbarXChange);return o.useEffect(()=>{u.current&&c(getComputedStyle(u.current))},[u]),(0,h.jsx)(D,{"data-orientation":"horizontal",...l,ref:d,sizes:t,style:{bottom:0,left:"rtl"===i.dir?"var(--radix-scroll-area-corner-width)":0,right:"ltr"===i.dir?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":Y(t)+"px",...e.style},onThumbPointerDown:r=>e.onThumbPointerDown(r.x),onDragScroll:r=>e.onDragScroll(r.x),onWheelScroll:(r,t)=>{if(i.viewport){let o=i.viewport.scrollLeft+r.deltaX;e.onWheelScroll(o),function(e,r){return e>0&&e<r}(o,t)&&r.preventDefault()}},onResize:()=>{u.current&&i.viewport&&s&&n({content:i.viewport.scrollWidth,viewport:i.viewport.offsetWidth,scrollbar:{size:u.current.clientWidth,paddingStart:O(s.paddingLeft),paddingEnd:O(s.paddingRight)}})}})}),A=o.forwardRef((e,r)=>{let{sizes:t,onSizesChange:n,...l}=e,i=m(x,e.__scopeScrollArea),[s,c]=o.useState(),u=o.useRef(null),d=(0,a.s)(r,u,i.onScrollbarYChange);return o.useEffect(()=>{u.current&&c(getComputedStyle(u.current))},[u]),(0,h.jsx)(D,{"data-orientation":"vertical",...l,ref:d,sizes:t,style:{top:0,right:"ltr"===i.dir?0:void 0,left:"rtl"===i.dir?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":Y(t)+"px",...e.style},onThumbPointerDown:r=>e.onThumbPointerDown(r.y),onDragScroll:r=>e.onDragScroll(r.y),onWheelScroll:(r,t)=>{if(i.viewport){let o=i.viewport.scrollTop+r.deltaY;e.onWheelScroll(o),function(e,r){return e>0&&e<r}(o,t)&&r.preventDefault()}},onResize:()=>{u.current&&i.viewport&&s&&n({content:i.viewport.scrollHeight,viewport:i.viewport.offsetHeight,scrollbar:{size:u.current.clientHeight,paddingStart:O(s.paddingTop),paddingEnd:O(s.paddingBottom)}})}})}),[_,j]=v(x),D=o.forwardRef((e,r)=>{let{__scopeScrollArea:t,sizes:l,hasThumb:i,onThumbChange:c,onThumbPointerUp:u,onThumbPointerDown:d,onThumbPositionChange:f,onDragScroll:v,onWheelScroll:w,onResize:b,...g}=e,S=m(x,t),[y,E]=o.useState(null),C=(0,a.s)(r,e=>E(e)),R=o.useRef(null),T=o.useRef(""),P=S.viewport,L=l.content-l.viewport,A=(0,s.c)(w),j=(0,s.c)(f),D=K(b,10);function N(e){R.current&&v({x:e.clientX-R.current.left,y:e.clientY-R.current.top})}return o.useEffect(()=>{let e=e=>{let r=e.target;(null==y?void 0:y.contains(r))&&A(e,L)};return document.addEventListener("wheel",e,{passive:!1}),()=>document.removeEventListener("wheel",e,{passive:!1})},[P,y,L,A]),o.useEffect(j,[l,j]),F(y,D),F(S.content,D),(0,h.jsx)(_,{scope:t,scrollbar:y,hasThumb:i,onThumbChange:(0,s.c)(c),onThumbPointerUp:(0,s.c)(u),onThumbPositionChange:j,onThumbPointerDown:(0,s.c)(d),children:(0,h.jsx)(n.sG.div,{...g,ref:C,style:{position:"absolute",...g.style},onPointerDown:(0,p.mK)(e.onPointerDown,e=>{0===e.button&&(e.target.setPointerCapture(e.pointerId),R.current=y.getBoundingClientRect(),T.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",S.viewport&&(S.viewport.style.scrollBehavior="auto"),N(e))}),onPointerMove:(0,p.mK)(e.onPointerMove,N),onPointerUp:(0,p.mK)(e.onPointerUp,e=>{let r=e.target;r.hasPointerCapture(e.pointerId)&&r.releasePointerCapture(e.pointerId),document.body.style.webkitUserSelect=T.current,S.viewport&&(S.viewport.style.scrollBehavior=""),R.current=null})})})}),N="ScrollAreaThumb",H=o.forwardRef((e,r)=>{let{forceMount:t,...o}=e,n=j(N,e.__scopeScrollArea);return(0,h.jsx)(l.C,{present:t||n.hasThumb,children:(0,h.jsx)(k,{ref:r,...o})})}),k=o.forwardRef((e,r)=>{let{__scopeScrollArea:t,style:l,...i}=e,s=m(N,t),c=j(N,t),{onThumbPositionChange:u}=c,d=(0,a.s)(r,e=>c.onThumbChange(e)),f=o.useRef(void 0),v=K(()=>{f.current&&(f.current(),f.current=void 0)},100);return o.useEffect(()=>{let e=s.viewport;if(e){let r=()=>{v(),f.current||(f.current=V(e,u),u())};return u(),e.addEventListener("scroll",r),()=>e.removeEventListener("scroll",r)}},[s.viewport,v,u]),(0,h.jsx)(n.sG.div,{"data-state":c.hasThumb?"visible":"hidden",...i,ref:d,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...l},onPointerDownCapture:(0,p.mK)(e.onPointerDownCapture,e=>{let r=e.target.getBoundingClientRect(),t=e.clientX-r.left,o=e.clientY-r.top;c.onThumbPointerDown({x:t,y:o})}),onPointerUp:(0,p.mK)(e.onPointerUp,c.onThumbPointerUp)})});H.displayName=N;var z="ScrollAreaCorner",W=o.forwardRef((e,r)=>{let t=m(z,e.__scopeScrollArea),o=!!(t.scrollbarX&&t.scrollbarY);return"scroll"!==t.type&&o?(0,h.jsx)(I,{...e,ref:r}):null});W.displayName=z;var I=o.forwardRef((e,r)=>{let{__scopeScrollArea:t,...l}=e,i=m(z,t),[a,s]=o.useState(0),[c,u]=o.useState(0),d=!!(a&&c);return F(i.scrollbarX,()=>{var e;let r=(null==(e=i.scrollbarX)?void 0:e.offsetHeight)||0;i.onCornerHeightChange(r),u(r)}),F(i.scrollbarY,()=>{var e;let r=(null==(e=i.scrollbarY)?void 0:e.offsetWidth)||0;i.onCornerWidthChange(r),s(r)}),d?(0,h.jsx)(n.sG.div,{...l,ref:r,style:{width:a,height:c,position:"absolute",right:"ltr"===i.dir?0:void 0,left:"rtl"===i.dir?0:void 0,bottom:0,...e.style}}):null});function O(e){return e?parseInt(e,10):0}function X(e,r){let t=e/r;return isNaN(t)?0:t}function Y(e){let r=X(e.viewport,e.content),t=e.scrollbar.paddingStart+e.scrollbar.paddingEnd;return Math.max((e.scrollbar.size-t)*r,18)}function U(e,r){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"ltr",o=Y(r),n=r.scrollbar.paddingStart+r.scrollbar.paddingEnd,l=r.scrollbar.size-n,i=r.content-r.viewport,a=(0,d.q)(e,"ltr"===t?[0,i]:[-1*i,0]);return M([0,i],[0,l-o])(a)}function M(e,r){return t=>{if(e[0]===e[1]||r[0]===r[1])return r[0];let o=(r[1]-r[0])/(e[1]-e[0]);return r[0]+o*(t-e[0])}}var V=function(e){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:()=>{},t={left:e.scrollLeft,top:e.scrollTop},o=0;return!function n(){let l={left:e.scrollLeft,top:e.scrollTop},i=t.left!==l.left,a=t.top!==l.top;(i||a)&&r(),t=l,o=window.requestAnimationFrame(n)}(),()=>window.cancelAnimationFrame(o)};function K(e,r){let t=(0,s.c)(e),n=o.useRef(0);return o.useEffect(()=>()=>window.clearTimeout(n.current),[]),o.useCallback(()=>{window.clearTimeout(n.current),n.current=window.setTimeout(t,r)},[t,r])}function F(e,r){let t=(0,s.c)(r);(0,u.N)(()=>{let r=0;if(e){let o=new ResizeObserver(()=>{cancelAnimationFrame(r),r=window.requestAnimationFrame(t)});return o.observe(e),()=>{window.cancelAnimationFrame(r),o.unobserve(e)}}},[e,t])}var B=g,G=y,q=E,J=H,Q=W}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[60694],{2986:(e,t,s)=>{s.d(t,{R:()=>N});var a=s(90508),r=s(1856),n=s(23675),l=s(39268),i=s(17730),c=s(78948),d=s(37915),o=s(62898),u=s(57893),x=s(60532),m=s(85226),p=s(22922),h=s(14554),f=s(81750),v=s(52217);let g=(0,v.createServerReference)("70f53da122c27dd0a56d3ad8b1b2e4a6e9c956822c",v.callServer,void 0,v.findSourceMapURL,"submitElaborationAnswersAction");var b=s(42305);let j="__other__",A={functional:"functional",non_functional:"nonFunctional",business_context:"businessContext",technical_context:"technicalContext",user_scenario:"userScenario",scope:"scope"};function N(e){let{ideaUuid:t,elaboration:s,onRefresh:r}=e,i=(0,l.c)("elaboration"),c=(0,n.useRouter)();if(!s||0===s.rounds.length)return null;let{summary:d,rounds:o}=s;return(0,a.jsxs)("div",{className:"space-y-3",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsx)("label",{className:"text-[11px] font-medium uppercase tracking-wide text-[#9A9A9A]",children:i("title")}),(0,a.jsx)("span",{className:"text-xs font-medium text-[#C67A52]",children:i("answeredCounter",{answered:d.answeredQuestions,total:d.totalQuestions})})]}),(0,a.jsx)("div",{className:"space-y-2.5",children:o.map(e=>(0,a.jsx)(w,{round:e,ideaUuid:t,onAnswered:async()=>{await (null==r?void 0:r()),c.refresh()}},e.uuid))})]})}function w(e){let{round:t,ideaUuid:s,onAnswered:n}=e,d=(0,l.c)("elaboration"),o="pending_answers"===t.status,u="answered"===t.status||"validated"===t.status||"needs_followup"===t.status,[x,m]=(0,r.useState)(o);return(0,a.jsx)(f.Nt,{open:x,onOpenChange:m,children:(0,a.jsxs)("div",{className:"overflow-hidden rounded-xl border border-[#E5E0D8] bg-white",children:[(0,a.jsx)(f.R6,{asChild:!0,children:(0,a.jsxs)("button",{type:"button",className:"flex w-full items-center justify-between px-4 py-3 text-left transition-colors cursor-pointer hover:bg-[#FAF8F4] ".concat(x?"bg-[#F7F6F3] border-b border-[#E5E0D8]":""),children:[(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[x?(0,a.jsx)(i.A,{className:"h-4 w-4 text-[#6B6B6B]"}):(0,a.jsx)(c.A,{className:"h-4 w-4 text-[#6B6B6B]"}),(0,a.jsx)("span",{className:"flex h-[22px] w-[22px] shrink-0 items-center justify-center rounded-full text-[11px] font-semibold text-white ".concat(o?"bg-[#C67A52]":"bg-[#888780]"),children:t.roundNumber}),(0,a.jsx)("span",{className:"text-[13px] font-semibold text-[#2C2C2C]",children:d("roundLabel",{number:t.roundNumber})}),t.isAppended&&(0,a.jsx)("span",{className:"rounded bg-[#EDE7F6] px-2 py-0.5 text-[10px] font-medium text-[#6A4FB6]",children:d("appendedBadge")}),!x&&(0,a.jsxs)("span",{className:"text-xs text-[#9A9A9A]",children:["\xb7 ",d("questionCount",{count:t.questions.length})]})]}),u?(0,a.jsx)("span",{className:"rounded bg-[#E8F5E9] px-2 py-0.5 text-[10px] font-medium text-[#2E7D32]",children:d("statusAnswered")}):(0,a.jsx)("span",{className:"rounded bg-[#FFF3E0] px-2 py-0.5 text-[10px] font-medium text-[#E65100]",children:d("pendingAnswers")})]})}),(0,a.jsx)(f.Ke,{children:o?(0,a.jsx)(y,{round:t,ideaUuid:s,onAnswered:n}):(0,a.jsx)(C,{round:t})})]})})}function C(e){let{round:t}=e,s=(0,l.c)("elaboration");return(0,a.jsx)("div",{className:"space-y-4 px-4 py-4",children:t.questions.map((e,r)=>{var n,l;let i=(null==(n=e.answer)?void 0:n.selectedOptionId)?e.options.find(t=>{var s;return t.id===(null==(s=e.answer)?void 0:s.selectedOptionId)}):null,c=(null==(l=e.answer)?void 0:l.customText)||(null==i?void 0:i.label)||s("noAnswer"),d=A[e.category]||e.category;return(0,a.jsxs)("div",{children:[(0,a.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,a.jsxs)("span",{className:"text-xs leading-relaxed text-[#6B6B6B]",children:["Q: ",e.text]}),(0,a.jsx)("span",{className:"shrink-0 text-[11px] italic text-[#B0B0B0]",children:s("category.".concat(d))})]}),(0,a.jsxs)("p",{className:"mt-1 text-xs font-medium leading-relaxed text-[#2C2C2C]",children:["A: ",c]}),r<t.questions.length-1&&(0,a.jsx)("div",{className:"mt-4 h-px bg-[#F0EEEA]"})]},e.uuid)})})}function y(e){var t,s,n;let{round:i,ideaUuid:f,onAnswered:v}=e,N=(0,l.c)("elaboration"),[w,C]=(0,r.useState)(0),y=(0,r.useRef)(w),[S,E]=(0,r.useState)("right"),[F,k]=(0,r.useState)({}),[B,D]=(0,r.useState)(!1),[R,I]=(0,r.useState)(null);(0,r.useEffect)(()=>{y.current=w},[w]);let M=(0,r.useCallback)((e,t)=>{E("left"===t?"right":"left"),C(e)},[]),U=i.questions,T=U[w],q=A[T.category]||T.category,_=(0,r.useCallback)((e,t)=>{if(k(s=>{var a;return{...s,[e]:{questionId:e,selectedOptionId:t===j?null:t,customText:t===j?(null==(a=s[e])?void 0:a.customText)||"":null}}}),t!==j){let e=Math.min(U.length-1,y.current+1);e!==y.current&&setTimeout(()=>M(e,"left"),200)}},[U.length,M]),L=(0,r.useCallback)((e,t)=>{k(s=>({...s,[e]:{...s[e],questionId:e,selectedOptionId:null,customText:t}}))},[]),P=U.filter(e=>e.required).every(e=>{let t=F[e.questionId];return!!t&&!!(t.selectedOptionId||t.customText&&t.customText.trim())}),z=async()=>{D(!0),I(null);let e=Object.values(F),t=await g(f,i.uuid,e);t.success?(await v(),D(!1)):(D(!1),I(t.error||N("submitFailed")))},O=(e=>{let t=F[e];return t?null===t.selectedOptionId&&null!==t.customText&&void 0!==t.customText?j:t.selectedOptionId||null:null})(T.questionId),$=O===j,K=w===U.length-1,G=!!(null!=(n=null==(t=F[T.questionId])?void 0:t.customText)?n:"").trim();return(0,a.jsxs)("div",{className:"overflow-hidden p-3.5",children:[(0,a.jsxs)("div",{className:"right"===S?"animate-in slide-in-from-right-4 duration-200":"animate-in slide-in-from-left-4 duration-200",children:[(0,a.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,a.jsx)("div",{className:"flex-1 text-sm text-[#6B6B6B]",children:T.text}),(0,a.jsxs)("div",{className:"flex shrink-0 items-center gap-1",children:[(0,a.jsx)(p.$,{variant:"ghost",size:"icon",onClick:()=>M(w-1,"right"),disabled:0===w,className:"h-7 w-7 text-[#6B6B6B] disabled:opacity-30",children:(0,a.jsx)(d.A,{className:"h-4 w-4"})}),(0,a.jsx)("span",{className:"text-xs text-[#9A9A9A]",children:N("navCounter",{current:w+1,total:U.length})}),(0,a.jsx)(p.$,{variant:"ghost",size:"icon",onClick:()=>M(w+1,"left"),disabled:w===U.length-1,className:"h-7 w-7 text-[#6B6B6B] disabled:opacity-30",children:(0,a.jsx)(c.A,{className:"h-4 w-4"})})]})]}),(0,a.jsxs)("div",{className:"mt-3",children:[T.options.map((e,t)=>{let s=O===e.id;return(0,a.jsxs)("div",{children:[(0,a.jsxs)(p.$,{variant:"ghost",onClick:()=>_(T.questionId,e.id),className:"flex w-full items-start justify-between gap-2.5 px-3.5 py-3 h-auto text-left transition-colors rounded-none ".concat(s?"bg-[#F7F6F3]":"hover:bg-[#FAF8F4]"),children:[(0,a.jsxs)("span",{className:"flex flex-1 min-w-0 items-start gap-2.5",children:[(0,a.jsx)("span",{className:"flex h-7 w-7 shrink-0 items-center justify-center rounded-md bg-[#E5E0D8] text-xs font-medium text-[#5F5E5A]",children:t+1}),(0,a.jsxs)("span",{className:"flex min-w-0 flex-1 flex-col items-start",children:[(0,a.jsx)("span",{className:"whitespace-normal [overflow-wrap:anywhere] text-[13px] text-[#2C2C2A]",children:e.label}),e.description&&(0,a.jsx)("span",{className:"whitespace-normal [overflow-wrap:anywhere] text-[11px] text-[#9A9A9A]",children:e.description})]})]}),s&&(0,a.jsx)(o.A,{className:"mt-1 h-4 w-4 shrink-0 text-[#888780]"})]}),t<T.options.length-1&&(0,a.jsx)("div",{className:"h-px bg-[#F0EEEA]"})]},e.id)}),(0,a.jsx)("div",{className:"h-px bg-[#F0EEEA]"}),(0,a.jsxs)("div",{className:"flex w-full items-center gap-2.5 px-3.5 py-3 transition-colors ".concat($?"bg-[#F7F6F3]":"hover:bg-[#FAF8F4]"),children:[(0,a.jsx)("span",{className:"flex h-7 w-7 shrink-0 cursor-pointer items-center justify-center rounded-md bg-[#E5E0D8]",onClick:()=>_(T.questionId,j),children:(0,a.jsx)(u.A,{className:"h-3.5 w-3.5 text-[#B4B2A9]"})}),$?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(h.p,{type:"text",value:(null==(s=F[T.questionId])?void 0:s.customText)||"",onChange:e=>L(T.questionId,e.target.value),onKeyDown:e=>{if((0,b.P)(e)||"Enter"!==e.key||e.shiftKey||e.ctrlKey||e.metaKey||(e.preventDefault(),K||!G))return;let t=y.current+1;setTimeout(()=>M(t,"left"),200)},placeholder:N("somethingElse"),className:"flex-1 border-none bg-transparent text-[13px] text-[#2C2C2A] placeholder:italic placeholder:text-[#B4B2A9] shadow-none focus-visible:ring-0",autoFocus:!0}),!K&&(0,a.jsx)(p.$,{type:"button",variant:"ghost",size:"icon",onClick:()=>{if(K||!G)return;let e=y.current+1;setTimeout(()=>M(e,"left"),200)},disabled:!G,"aria-label":N("confirmAnswerAria"),className:"h-7 w-7 text-[#6B6B6B] disabled:opacity-30",children:(0,a.jsx)(x.A,{className:"h-4 w-4"})})]}):(0,a.jsx)(p.$,{variant:"ghost",onClick:()=>_(T.questionId,j),className:"flex-1 justify-start text-left text-[13px] italic text-[#B4B2A9] h-auto p-0 hover:bg-transparent",children:N("somethingElse")})]})]})]},w),R&&(0,a.jsx)("div",{className:"mt-3 rounded-lg bg-destructive/10 p-2.5 text-[12px] text-destructive",children:R}),(0,a.jsxs)("div",{className:"mt-3 flex items-center justify-between",children:[(0,a.jsxs)("span",{className:"flex items-center gap-1.5 text-[11px] text-[#B0B0B0]",children:[(0,a.jsx)("span",{className:"inline-block h-1.5 w-1.5 rounded-full bg-[#C67A52]"}),N("category.".concat(q))]}),(0,a.jsx)(p.$,{onClick:z,disabled:!P||B,className:"bg-[#C67A52] hover:bg-[#B56A42] text-white text-[13px]",children:B?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(m.A,{className:"mr-2 h-3.5 w-3.5 animate-spin"}),N("submitting")]}):N("submitAnswers")})]})]})}},4674:(e,t,s)=>{s.d(t,{i:()=>A});var a=s(90508),r=s(1856),n=s(23675),l=s(39268),i=s(9160),c=s(85226),d=s(5425),o=s(94903),u=s(22922),x=s(88064),m=s(41033),p=s(91846),h=s(52217);let f=(0,h.createServerReference)("00e25dcfd0973eb848c09d7467227c3a499831fc31",h.callServer,void 0,h.findSourceMapURL,"getPmAgentsAction"),v=(0,h.createServerReference)("403c9443216a4f1eef9d6101ed01aff7b9140167fd",h.callServer,void 0,h.findSourceMapURL,"claimIdeaAction"),g=(0,h.createServerReference)("6026a06f628dca22015d61b394daf2d85b8b5b923c",h.callServer,void 0,h.findSourceMapURL,"claimIdeaToAgentAction"),b=(0,h.createServerReference)("60dab0269ee9248c8f083ea74c0edeb86627c626e5",h.callServer,void 0,h.findSourceMapURL,"claimIdeaToUserAction"),j=(0,h.createServerReference)("408a78aa45415e5b54f4a7437be793a4a713a88c33",h.callServer,void 0,h.findSourceMapURL,"releaseIdeaAction");function A(e){var t;let{idea:s,projectUuid:h,currentUserUuid:A,onClose:N}=e,w=(0,l.c)(),C=(0,n.useRouter)(),[y,S]=(0,r.useState)(!1),[E,F]=(0,r.useState)("self"),[k,B]=(0,r.useState)(""),[D,R]=(0,r.useState)(""),[I,M]=(0,r.useState)([]),[U,T]=(0,r.useState)([]),[q,_]=(0,r.useState)(!0),L=!!s.assignee;(0,r.useEffect)(()=>{!async function(){_(!0);let e=await f();M(e.agents||[]),T((e.users||[]).filter(e=>e.uuid!==A)),_(!1)}()},[A]);let P=async()=>{let e;if(S(!0),"self"===E)e=await v(s.uuid);else if("agent"===E&&k)e=await g(s.uuid,k);else if("user"===E&&D)e=await b(s.uuid,D);else{if("release"!==E)return void S(!1);e=await j(s.uuid)}S(!1),(null==e?void 0:e.success)&&(C.refresh(),N())},z="self"===E||"agent"===E&&k||"user"===E&&D||"release"===E&&L;return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{className:"fixed inset-0 z-50 bg-black/40",onClick:N}),(0,a.jsxs)("div",{className:"fixed left-1/2 top-1/2 z-50 w-[400px] -translate-x-1/2 -translate-y-1/2 rounded-2xl bg-white shadow-xl border border-[#E5E0D8]",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between border-b border-[#E5E0D8] px-6 py-5",children:[(0,a.jsx)("h2",{className:"text-base font-semibold text-[#2C2C2C]",children:w("ideas.assignIdea")}),(0,a.jsx)("button",{onClick:N,className:"text-[#9A9A9A] hover:text-[#6B6B6B] transition-colors",children:(0,a.jsx)(i.A,{className:"h-5 w-5"})})]}),(0,a.jsxs)("div",{className:"p-6 space-y-4",children:[(0,a.jsxs)("div",{className:"rounded-lg bg-[#FAF8F4] p-3",children:[(0,a.jsx)("p",{className:"text-[13px] font-medium text-[#2C2C2C]",children:s.title}),s.content&&(0,a.jsx)("p",{className:"mt-1 text-[11px] text-[#6B6B6B] line-clamp-2",children:s.content})]}),L&&(0,a.jsx)("div",{className:"rounded-lg bg-[#E3F2FD] p-3",children:(0,a.jsxs)("p",{className:"text-xs text-[#1976D2]",children:[w("common.currentAssignee"),": ",(0,a.jsx)("span",{className:"font-medium",children:null==(t=s.assignee)?void 0:t.name})]})}),(0,a.jsx)("p",{className:"text-[13px] text-[#6B6B6B]",children:w("ideas.selectIdeaAssignee")}),q?(0,a.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,a.jsx)(c.A,{className:"h-6 w-6 animate-spin text-[#9A9A9A]"})}):(0,a.jsxs)(m.z,{value:E,onValueChange:e=>F(e),className:"space-y-3",children:[(0,a.jsxs)("div",{className:"rounded-[10px] p-4 transition-colors cursor-pointer ".concat("self"===E?"bg-[#FDF8F6] border-2 border-[#C67A52]":"bg-white border border-[#E5E0D8] hover:border-[#C67A52]/50"),onClick:()=>F("self"),children:[(0,a.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,a.jsx)(m.C,{value:"self",id:"idea-self",className:"border-[#C67A52] text-[#C67A52]"}),(0,a.jsx)(x.J,{htmlFor:"idea-self",className:"text-sm font-medium text-[#2C2C2C] cursor-pointer",children:w("assign.assignToMyself")})]}),(0,a.jsx)("p",{className:"mt-2 ml-6 text-xs text-[#6B6B6B] leading-relaxed",children:w("ideas.assignToMyselfIdeaDesc")})]}),(0,a.jsxs)("div",{className:"rounded-[10px] p-4 transition-colors ".concat("agent"===E?"bg-[#FDF8F6] border-2 border-[#C67A52]":"bg-white border border-[#E5E0D8]"),children:[(0,a.jsxs)("div",{className:"flex items-center gap-2.5 cursor-pointer",onClick:()=>F("agent"),children:[(0,a.jsx)(m.C,{value:"agent",id:"idea-agent",className:"border-[#C67A52] text-[#C67A52]"}),(0,a.jsx)(x.J,{htmlFor:"idea-agent",className:"text-sm font-medium text-[#2C2C2C] cursor-pointer",children:w("ideas.orAssignToPmAgent")})]}),(0,a.jsx)("p",{className:"mt-2 ml-6 text-xs text-[#6B6B6B] leading-relaxed",children:w("ideas.onlySelectedPmAgentCanWork")}),"agent"===E&&(0,a.jsx)("div",{className:"mt-3 ml-6",children:(0,a.jsxs)(p.l6,{value:k,onValueChange:B,children:[(0,a.jsx)(p.bq,{className:"w-full border-[#E5E0D8]",children:(0,a.jsx)(p.yv,{placeholder:w("ideas.selectPmAgent")})}),(0,a.jsx)(p.gC,{children:I.length>0?I.map(e=>(0,a.jsx)(p.eb,{value:e.uuid,children:(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)(d.A,{className:"h-4 w-4 text-[#C67A52]"}),(0,a.jsx)("span",{children:e.name})]})},e.uuid)):(0,a.jsx)("div",{className:"px-3 py-2 text-xs text-[#9A9A9A]",children:w("ideas.noPmAgentsAvailable")})})]})})]}),(0,a.jsxs)("div",{className:"rounded-[10px] p-4 transition-colors ".concat("user"===E?"bg-[#FDF8F6] border-2 border-[#C67A52]":"bg-white border border-[#E5E0D8]"),children:[(0,a.jsxs)("div",{className:"flex items-center gap-2.5 cursor-pointer",onClick:()=>F("user"),children:[(0,a.jsx)(m.C,{value:"user",id:"idea-user",className:"border-[#C67A52] text-[#C67A52]"}),(0,a.jsx)(x.J,{htmlFor:"idea-user",className:"text-sm font-medium text-[#2C2C2C] cursor-pointer",children:w("assign.orAssignToUser")})]}),"user"===E&&(0,a.jsx)("div",{className:"mt-3 ml-6",children:(0,a.jsxs)(p.l6,{value:D,onValueChange:R,children:[(0,a.jsx)(p.bq,{className:"w-full border-[#E5E0D8]",children:(0,a.jsx)(p.yv,{placeholder:w("tasks.selectUser")})}),(0,a.jsx)(p.gC,{children:U.length>0?U.map(e=>(0,a.jsx)(p.eb,{value:e.uuid,children:(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)(o.A,{className:"h-4 w-4 text-[#6B6B6B]"}),(0,a.jsx)("span",{children:e.name||e.email})]})},e.uuid)):(0,a.jsx)("div",{className:"px-3 py-2 text-xs text-[#9A9A9A]",children:w("tasks.noUsersAvailable")})})]})})]}),L&&(0,a.jsxs)("div",{className:"rounded-[10px] p-4 transition-colors cursor-pointer ".concat("release"===E?"bg-[#FDF8F6] border-2 border-[#C67A52]":"bg-white border border-[#E5E0D8] hover:border-[#C67A52]/50"),onClick:()=>F("release"),children:[(0,a.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,a.jsx)(m.C,{value:"release",id:"idea-release",className:"border-[#C67A52] text-[#C67A52]"}),(0,a.jsx)(x.J,{htmlFor:"idea-release",className:"text-sm font-medium text-[#2C2C2C] cursor-pointer",children:w("assign.releaseAssignee")})]}),(0,a.jsx)("p",{className:"mt-2 ml-6 text-xs text-[#6B6B6B] leading-relaxed",children:w("ideas.releaseIdeaAssigneeDesc")})]})]})]}),(0,a.jsxs)("div",{className:"flex items-center justify-end gap-4 rounded-b-2xl bg-white px-6 py-6 border-t border-[#E5E0D8]",children:[(0,a.jsx)(u.$,{variant:"outline",onClick:N,disabled:y,className:"border-[#E5E0D8]",children:w("common.cancel")}),(0,a.jsx)(u.$,{onClick:P,disabled:y||!z,className:"bg-[#C67A52] hover:bg-[#B56A42] text-white",children:y?(0,a.jsx)(c.A,{className:"h-4 w-4 animate-spin"}):w("release"===E?"common.release":"common.assign")})]})]})]})}},11166:(e,t,s)=>{s.d(t,{o:()=>a});function a(e){let{ideaStatus:t,elaborationStatus:s,elaboration:a}=e;return!("elaborating"!==t||"resolved"===s||!a||0===a.rounds.length||a.rounds.some(e=>"pending_answers"===e.status))}},21985:(e,t,s)=>{s.d(t,{h:()=>w});var a=s(90508),r=s(1856),n=s(39268),l=s(23675),i=s(67587),c=s(85226),d=s(30825),o=s(60532),u=s(17475),x=s(22922),m=s(88064),p=s(97438),h=s(4365),f=s(17001),v=s(24377),g=s(52217);let b=(0,g.createServerReference)("00423656837d53af20d1cd96b1368bad35b5a06679",g.callServer,void 0,g.findSourceMapURL,"getProjectsAndGroupsAction"),j=(0,g.createServerReference)("60f31de57b050278cc31df8aaff8a7e74ec2299c3f",g.callServer,void 0,g.findSourceMapURL,"moveIdeaPreviewAction"),A=(0,g.createServerReference)("605aee24f55397387550bcc6d5f577568c83fff746",g.callServer,void 0,g.findSourceMapURL,"moveIdeaAction");var N=s(67712);function w(e){let{open:t,onOpenChange:s,ideaUuid:g,projectUuid:w,onMoved:C}=e,y=(0,n.c)("ideas"),S=(0,n.c)("common"),E=(0,l.useRouter)(),[F,k]=(0,r.useState)([]),[B,D]=(0,r.useState)(!1),[R,I]=(0,r.useState)(null),[M,U]=(0,r.useState)(!1),T=(()=>{if(!R)return null;for(let e of F){let t=e.projects.find(e=>e.uuid===R);if(t)return t.name}return null})(),[q,_]=(0,r.useState)(null),[L,P]=(0,r.useState)(!1),[z,O]=(0,r.useState)(null),[$,K]=(0,r.useState)(!1),[G,J]=(0,r.useState)(null),Q=(0,r.useRef)(0),V=(0,r.useCallback)(e=>{e&&e.addEventListener("wheel",e=>e.stopPropagation(),{passive:!0})},[]),W=(0,r.useCallback)(async()=>{I(null),_(null),O(null),J(null),D(!0);try{let e=await b();if(e.success){let{projects:t,groups:s}=e.data,a=t.filter(e=>e.uuid!==w).map(e=>({uuid:e.uuid,name:e.name,groupUuid:e.groupUuid})),r=new Map;for(let e of s)r.set(e.uuid,e.name);let n=new Map,l=[];for(let e of a)e.groupUuid&&r.has(e.groupUuid)?(n.has(e.groupUuid)||n.set(e.groupUuid,{uuid:e.groupUuid,name:r.get(e.groupUuid),projects:[]}),n.get(e.groupUuid).projects.push({uuid:e.uuid,name:e.name})):l.push({uuid:e.uuid,name:e.name});let i=[...n.values()];l.length>0&&i.push({uuid:"ungrouped",name:y("ungrouped"),projects:l}),k(i)}}catch(e){N.q.error("Failed to load projects for move dialog:",e),k([])}D(!1)},[w,y]);(0,r.useEffect)(()=>{t&&W()},[t,W]),(0,r.useEffect)(()=>{if(!R){_(null),O(null);return}let e=++Q.current;P(!0),O(null),_(null),j(g,R).then(t=>{e===Q.current&&(t.success?_(t.moved):O(t.error||y("moveDialog.error",{message:""})))}).catch(t=>{e===Q.current&&(N.q.error("Failed to fetch move preview:",t),O(y("moveDialog.error",{message:t instanceof Error?t.message:String(t)})))}).finally(()=>{e===Q.current&&P(!1)})},[R,g,y]);let H=async()=>{if(R&&q&&!$){K(!0),J(null);try{let e=await A(g,R);if(e.success){let t=e.moved;i.oR.success(y("moveDialog.successToast",{...t}),{action:{label:y("moveDialog.viewMovedIdea"),onClick:()=>{E.push("/projects/".concat(R,"/dashboard?panel=").concat(g,"&tab=overview"))}}}),s(!1),E.refresh(),C(t)}else J(y("moveDialog.error",{message:e.error||y("moveFailed")}))}catch(e){J(y("moveDialog.error",{message:e instanceof Error?e.message:y("moveFailed")}))}K(!1)}};return(0,a.jsx)(p.lG,{open:t,onOpenChange:s,children:(0,a.jsxs)(p.Cf,{children:[(0,a.jsxs)(p.c7,{children:[(0,a.jsx)(p.L3,{children:y("moveDialog.title")}),(0,a.jsx)(p.rr,{children:y("moveDialog.description")})]}),(0,a.jsxs)("div",{className:"space-y-3 pt-1",children:[(0,a.jsx)(m.J,{htmlFor:"move-target-project",className:"text-[13px] font-medium text-[#2C2C2C]",children:y("moveDialog.targetProjectLabel")}),B?(0,a.jsx)("div",{className:"flex items-center justify-center h-10 border border-[#E5E0D8] rounded-md",children:(0,a.jsx)(c.A,{className:"h-4 w-4 animate-spin text-[#9A9A9A]"})}):(0,a.jsxs)(f.AM,{open:M,onOpenChange:U,children:[(0,a.jsx)(f.Wv,{asChild:!0,children:(0,a.jsxs)(x.$,{id:"move-target-project",variant:"outline",role:"combobox","aria-expanded":M,className:(0,v.cn)("w-full justify-between border-[#E5E0D8] font-normal",!T&&"text-[#9A9A9A]"),children:[null!=T?T:y("moveDialog.targetProjectPlaceholder"),(0,a.jsx)(d.A,{className:"ml-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,a.jsx)(f.hl,{ref:V,className:"w-[--radix-popover-trigger-width] p-0 pointer-events-auto",align:"start",children:(0,a.jsxs)(h.uB,{children:[(0,a.jsx)(h.G7,{placeholder:y("moveDialog.searchProjects")}),(0,a.jsxs)(h.oI,{children:[(0,a.jsx)(h.xL,{children:y("noProjectsFound")}),F.map(e=>(0,a.jsx)(h.L$,{heading:e.name,children:e.projects.map(t=>(0,a.jsxs)(h.h_,{value:"".concat(t.name," ").concat(e.name),onSelect:()=>{I(t.uuid),U(!1)},children:[(0,a.jsx)(o.A,{className:(0,v.cn)("mr-2 h-4 w-4",R===t.uuid?"opacity-100":"opacity-0")}),t.name]},t.uuid))},e.uuid))]})]})})]}),R&&(0,a.jsx)("div",{role:"status","aria-live":"polite",className:"rounded-lg border border-[#E5E0D8] bg-[#FAF8F4] p-3 text-[13px] text-[#2C2C2C]",children:L?(0,a.jsxs)("div",{className:"flex items-center gap-2 text-[#6B6B6B]",children:[(0,a.jsx)(c.A,{className:"h-3.5 w-3.5 animate-spin"}),(0,a.jsx)("span",{children:y("moveDialog.previewLoading")})]}):z?(0,a.jsxs)("div",{className:"flex items-start gap-2 text-destructive",children:[(0,a.jsx)(u.A,{className:"mt-0.5 h-3.5 w-3.5 shrink-0"}),(0,a.jsx)("span",{children:z})]}):q?(0,a.jsxs)("div",{className:"space-y-1",children:[(0,a.jsx)("p",{children:y("moveDialog.previewSummary",{...q})}),(0,a.jsx)("p",{className:"text-[12px] text-[#9A9A9A]",children:y("moveDialog.previewWarning")})]}):null}),G&&(0,a.jsx)("p",{className:"text-xs text-destructive",role:"alert",children:G})]}),(0,a.jsxs)("div",{className:"flex justify-end gap-3 pt-2",children:[(0,a.jsx)(x.$,{variant:"outline",className:"border-[#E5E0D8]",onClick:()=>s(!1),disabled:$,children:S("cancel")}),(0,a.jsx)(x.$,{className:"bg-[#C67A52] hover:bg-[#B56A42] text-white",onClick:H,disabled:!R||!q||$||L,children:$?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(c.A,{className:"mr-2 h-4 w-4 animate-spin"}),y("moving")]}):y("moveDialog.confirm")})]})]})})}},29767:(e,t,s)=>{s.d(t,{A:()=>a});let a=(0,s(66206).A)("lightbulb",[["path",{d:"M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5",key:"1gvzjb"}],["path",{d:"M9 18h6",key:"x1upvd"}],["path",{d:"M10 22h4",key:"ceow96"}]])},30028:(e,t,s)=>{s.d(t,{A:()=>a});let a=(0,s(66206).A)("info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]])},32470:(e,t,s)=>{s.d(t,{A:()=>a});let a=(0,s(66206).A)("list-checks",[["path",{d:"M13 5h8",key:"a7qcls"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 19h8",key:"c3s6r1"}],["path",{d:"m3 17 2 2 4-4",key:"1jhpwq"}],["path",{d:"m3 7 2 2 4-4",key:"1obspn"}]])},37915:(e,t,s)=>{s.d(t,{A:()=>a});let a=(0,s(66206).A)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]])},38476:(e,t,s)=>{s.r(t),s.d(t,{Collapsible:()=>g,CollapsibleContent:()=>N,CollapsibleTrigger:()=>j,Content:()=>E,Root:()=>y,Trigger:()=>S,createCollapsibleScope:()=>h});var a=s(1856),r=s(33328),n=s(21032),l=s(66249),i=s(99457),c=s(34124),d=s(93367),o=s(19900),u=s(40577),x=s(90508),m="Collapsible",[p,h]=(0,n.A)(m),[f,v]=p(m),g=a.forwardRef((e,t)=>{let{__scopeCollapsible:s,open:r,defaultOpen:n,disabled:i,onOpenChange:c,...o}=e,[p,h]=(0,l.i)({prop:r,defaultProp:null!=n&&n,onChange:c,caller:m});return(0,x.jsx)(f,{scope:s,disabled:i,contentId:(0,u.B)(),open:p,onOpenToggle:a.useCallback(()=>h(e=>!e),[h]),children:(0,x.jsx)(d.sG.div,{"data-state":C(p),"data-disabled":i?"":void 0,...o,ref:t})})});g.displayName=m;var b="CollapsibleTrigger",j=a.forwardRef((e,t)=>{let{__scopeCollapsible:s,...a}=e,n=v(b,s);return(0,x.jsx)(d.sG.button,{type:"button","aria-controls":n.contentId,"aria-expanded":n.open||!1,"data-state":C(n.open),"data-disabled":n.disabled?"":void 0,disabled:n.disabled,...a,ref:t,onClick:(0,r.mK)(e.onClick,n.onOpenToggle)})});j.displayName=b;var A="CollapsibleContent",N=a.forwardRef((e,t)=>{let{forceMount:s,...a}=e,r=v(A,e.__scopeCollapsible);return(0,x.jsx)(o.C,{present:s||r.open,children:e=>{let{present:s}=e;return(0,x.jsx)(w,{...a,ref:t,present:s})}})});N.displayName=A;var w=a.forwardRef((e,t)=>{let{__scopeCollapsible:s,present:r,children:n,...l}=e,o=v(A,s),[u,m]=a.useState(r),p=a.useRef(null),h=(0,c.s)(t,p),f=a.useRef(0),g=f.current,b=a.useRef(0),j=b.current,N=o.open||u,w=a.useRef(N),y=a.useRef(void 0);return a.useEffect(()=>{let e=requestAnimationFrame(()=>w.current=!1);return()=>cancelAnimationFrame(e)},[]),(0,i.N)(()=>{let e=p.current;if(e){y.current=y.current||{transitionDuration:e.style.transitionDuration,animationName:e.style.animationName},e.style.transitionDuration="0s",e.style.animationName="none";let t=e.getBoundingClientRect();f.current=t.height,b.current=t.width,w.current||(e.style.transitionDuration=y.current.transitionDuration,e.style.animationName=y.current.animationName),m(r)}},[o.open,r]),(0,x.jsx)(d.sG.div,{"data-state":C(o.open),"data-disabled":o.disabled?"":void 0,id:o.contentId,hidden:!N,...l,ref:h,style:{"--radix-collapsible-content-height":g?"".concat(g,"px"):void 0,"--radix-collapsible-content-width":j?"".concat(j,"px"):void 0,...e.style},children:N&&n})});function C(e){return e?"open":"closed"}var y=g,S=j,E=N},53240:(e,t,s)=>{s.d(t,{J:()=>r});var a=s(52217);let r=(0,a.createServerReference)("40790b72c792d2c2fa46044fe0c82e0a49ee9ea155",a.callServer,void 0,a.findSourceMapURL,"updateIdeaAction")},57223:(e,t,s)=>{s.d(t,{E:()=>n});var a=s(90508),r=s(24377);function n(e){let{className:t,...s}=e;return(0,a.jsx)("div",{"data-slot":"skeleton",className:(0,r.cn)("bg-accent animate-pulse rounded-md",t),...s})}},60992:(e,t,s)=>{s.d(t,{z:()=>r});var a=s(52217);let r=(0,a.createServerReference)("40ce810a8ca47feb397612ce1c7ecbe14d1af7c174",a.callServer,void 0,a.findSourceMapURL,"getElaborationAction")},72216:(e,t,s)=>{s.d(t,{x:()=>r});var a=s(52217);let r=(0,a.createServerReference)("400cda1396142e823c70236309129832b2bb93f1dd",a.callServer,void 0,a.findSourceMapURL,"getIdeaActivitiesAction")},76973:(e,t,s)=>{s.d(t,{Z:()=>r});var a=s(52217);let r=(0,a.createServerReference)("6047e5f9e0b0b8ab34e4ec087a5b7c646953446365",a.callServer,void 0,a.findSourceMapURL,"deleteIdeaAction")},78948:(e,t,s)=>{s.d(t,{A:()=>a});let a=(0,s(66206).A)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]])},81750:(e,t,s)=>{s.d(t,{Ke:()=>c,Nt:()=>l,R6:()=>i});var a=s(90508),r=s(38476),n=s(24377);function l(e){let{...t}=e;return(0,a.jsx)(r.Root,{"data-slot":"collapsible",...t})}function i(e){let{...t}=e;return(0,a.jsx)(r.Trigger,{"data-slot":"collapsible-trigger",...t})}function c(e){let{className:t,...s}=e;return(0,a.jsx)(r.Content,{"data-slot":"collapsible-content",className:(0,n.cn)("overflow-hidden data-[state=open]:animate-[collapsible-down_250ms_ease-in-out] data-[state=closed]:animate-[collapsible-up_200ms_ease-in-out]",t),...s})}},84247:(e,t,s)=>{s.d(t,{Separator:()=>l});var a=s(90508);s(1856);var r=s(5725),n=s(24377);function l(e){let{className:t,orientation:s="horizontal",decorative:l=!0,...i}=e;return(0,a.jsx)(r.b,{"data-slot":"separator",decorative:l,orientation:s,className:(0,n.cn)("bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",t),...i})}},95745:(e,t,s)=>{s.d(t,{e:()=>r});var a=s(52217);let r=(0,a.createServerReference)("4068d7c2e443443c634efddd8eba7ba864eb9a1436",a.callServer,void 0,a.findSourceMapURL,"verifyElaborationAction")},95900:(e,t,s)=>{s.d(t,{A:()=>a});let a=(0,s(66206).A)("arrow-right-left",[["path",{d:"m16 3 4 4-4 4",key:"1x1c3m"}],["path",{d:"M20 7H4",key:"zbl0bi"}],["path",{d:"m8 21-4-4 4-4",key:"h9nckh"}],["path",{d:"M4 17h16",key:"g4d7ey"}]])}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[64648],{29551:(e,t,n)=>{n.d(t,{MH:()=>eI,Bs:()=>eF,lb:()=>I,wL:()=>D,kJ:()=>f,md:()=>m,le:()=>r});var s=n(1856),a=n(39268);function r(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1e3,[t,n]=(0,s.useState)(()=>Date.now());return(0,s.useEffect)(()=>{let t=setInterval(()=>n(Date.now()),e);return()=>clearInterval(t)},[e]),t}function i(){let e=(0,a.c)("time");return(0,s.useCallback)((t,n)=>{let s=n-new Date(t).getTime(),a=Math.floor(s/6e4),r=Math.floor(s/36e5),i=Math.floor(s/864e5);return a<1?e("justNow"):a<60?e("minutesAgo",{minutes:a}):r<24?e("hoursAgo",{hours:r}):e("daysAgo",{days:i})},[e])}function l(e){return e<10?"0".concat(e):String(e)}function o(){let e=(0,a.c)("agentConnections");return(0,s.useCallback)((t,n)=>{let s=Math.floor(Math.max(0,n-new Date(t).getTime())/1e3),a=Math.floor(s/86400),r=Math.floor(s%86400/3600),i=Math.floor(s%3600/60),o="".concat(l(r),":").concat(l(i),":").concat(l(s%60));return a>0?e("uptimeMonoDays",{days:a,time:o}):o},[e])}function c(){let e=(0,a.c)("agentConnections");return(0,s.useCallback)(t=>{switch(t){case"claude_code":return e("clientClaudeCode");case"openclaw":return e("clientOpenclaw");default:return e("clientUnknown")}},[e])}function d(e){if(!e.projectUuid)return null;switch(e.entityType){case"task":return"/projects/".concat(e.projectUuid,"/tasks/").concat(e.entityUuid);case"idea":return"/projects/".concat(e.projectUuid,"/dashboard?panel=").concat(e.entityUuid);case"proposal":return"/projects/".concat(e.projectUuid,"/proposals/").concat(e.entityUuid);case"document":return"/projects/".concat(e.projectUuid,"/documents/").concat(e.entityUuid);default:return null}}var u=n(90508),x=n(57731);function m(e){let{online:t,size:n="sm"}=e,s="md"===n?"h-2.5 w-2.5":"h-2 w-2";return t?(0,u.jsxs)("span",{"aria-hidden":!0,className:"relative inline-flex ".concat(s," items-center justify-center"),children:[(0,u.jsx)("span",{className:"absolute inline-flex h-full w-full rounded-full bg-[#22C55E] opacity-30 motion-safe:animate-ping"}),(0,u.jsx)("span",{className:"relative inline-flex ".concat("md"===n?"h-1.5 w-1.5":"h-1 w-1"," rounded-full bg-[#22C55E]")})]}):(0,u.jsx)("span",{"aria-hidden":!0,className:"".concat(s," rounded-full bg-[#9A9A9A] opacity-60")})}var h=n(5425),p=n(93134);function f(e){var t,n;let{connection:s,size:r}=e,i=(0,a.c)("agentConnections"),l=c(),o="online"===s.effectiveStatus,d=o?h.A:p.A,m=(null==(t=s.agentName)?void 0:t.trim())||i("unknownAgent"),f=null!=(n=s.clientVersion)?n:i("versionUnknown"),g=""===s.host?i("hostUnknown"):s.host;return(0,u.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[(0,u.jsx)("div",{className:"".concat("lg"===r?"h-12 w-12":"md"===r?"h-10 w-10":"h-9 w-9"," ").concat("lg"===r?"rounded-xl":"rounded-lg"," flex shrink-0 items-center justify-center"),style:{backgroundColor:o?"#C67A5214":"#9A9A9A14"},children:(0,u.jsx)(d,{className:"lg"===r?"h-6 w-6":"md"===r?"h-5 w-5":"h-4 w-4",style:{color:o?"#C67A52":"#9A9A9A"}})}),(0,u.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,u.jsx)("div",{className:"truncate font-semibold text-[#2C2C2C] ".concat("lg"===r?"text-[20px]":"md"===r?"text-[16px]":"text-[14px]"),children:m}),(0,u.jsxs)("div",{className:"mt-1 flex flex-wrap items-center gap-x-2 gap-y-1",children:[(0,u.jsx)(x.E,{variant:"secondary",className:"shrink-0 border-0 bg-[#F0EDE8] px-2 py-0.5 text-[10px] font-medium text-[#6B6B6B]",children:l(s.clientType)}),(0,u.jsxs)("span",{className:"truncate font-mono text-[11px] text-[#9A9A9A]",children:["v",f," \xb7 ",g]})]})]})]})}var g=n(67587),j=n(12790),v=n.n(j),N=n(13142),b=n(85226),w=n(59133),y=n(88591),C=n(43057),A=n(20578),E=n(10263),k=n(22922),S=n(51817),F=n(62990),B=n(67712);function U(e){var t;let{exec:n}=e,r=(0,a.c)("agentConnections"),i=(0,a.c)("common"),[l,o]=(0,s.useState)(!1),[c,d]=(0,s.useState)(!1),x=(null==(t=n.entityTitle)?void 0:t.trim())||r("execEntityUnknown"),m=async()=>{d(!0);try{let e=await (0,F.tm)("/api/daemon/control",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({command:"interrupt",targetConnectionUuid:n.connectionUuid,entityType:n.entityType,entityUuid:n.entityUuid})});if(!e.ok){let t=r("interruptError");try{let n=await e.json();n&&"string"==typeof n.error&&n.error&&(t=n.error)}catch(e){}g.oR.error(t);return}g.oR.success(r("interruptSuccess",{title:x})),o(!1)}catch(e){B.q.error("Failed to request daemon interrupt:",e),g.oR.error(r("interruptError"))}finally{d(!1)}};return(0,u.jsxs)(S.Lt,{open:l,onOpenChange:e=>!c&&o(e),children:[(0,u.jsx)(S.tv,{asChild:!0,children:(0,u.jsxs)(k.$,{variant:"ghost",size:"sm","aria-label":r("interruptAria"),className:"h-7 shrink-0 gap-1.5 rounded-lg px-2.5 text-[12px] font-medium text-[#B45309] hover:bg-[#FEF3C7] hover:text-[#92400E]",children:[(0,u.jsx)(N.A,{className:"h-3.5 w-3.5","aria-hidden":!0}),r("interrupt")]})}),(0,u.jsxs)(S.EO,{children:[(0,u.jsxs)(S.wd,{children:[(0,u.jsx)(S.r7,{children:r("interruptConfirmTitle")}),(0,u.jsx)(S.$v,{children:r("interruptConfirmBody",{title:x})})]}),(0,u.jsxs)(S.ck,{children:[(0,u.jsx)(S.Zr,{disabled:c,children:i("cancel")}),(0,u.jsx)(S.Rx,{variant:"destructive",disabled:c,onClick:e=>{e.preventDefault(),m()},children:c?(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(b.A,{className:"mr-2 h-4 w-4 motion-safe:animate-spin","aria-hidden":!0}),r("interrupting")]}):r("interruptConfirmAction")})]})]})]})}function T(e){var t;let{exec:n}=e,r=(0,a.c)("agentConnections"),[i,l]=(0,s.useState)(!1),o=(null==(t=n.entityTitle)?void 0:t.trim())||r("execEntityUnknown"),c=async()=>{l(!0);try{let e=await (0,F.tm)("/api/daemon/resume",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({connectionUuid:n.connectionUuid,entityType:n.entityType,entityUuid:n.entityUuid})});if(!e.ok){let t=r("resumeError");try{let n=await e.json();n&&"string"==typeof n.error&&n.error&&(t=n.error)}catch(e){}g.oR.error(t);return}g.oR.success(r("resumeSuccess",{title:o}))}catch(e){B.q.error("Failed to request daemon resume:",e),g.oR.error(r("resumeError"))}finally{l(!1)}};return(0,u.jsxs)(k.$,{variant:"ghost",size:"sm",disabled:i,"aria-label":r("resumeAria"),onClick:()=>void c(),className:"h-7 shrink-0 gap-1.5 rounded-lg px-2.5 text-[12px] font-medium text-[#15803D] hover:bg-[#DCFCE7] hover:text-[#166534]",children:[i?(0,u.jsx)(b.A,{className:"h-3.5 w-3.5 motion-safe:animate-spin","aria-hidden":!0}):(0,u.jsx)(w.A,{className:"h-3.5 w-3.5","aria-hidden":!0}),i?r("resuming"):r("resume")]})}function I(e){var t,n;let{exec:r,nowMs:i,layout:l="inline"}=e,c=(0,a.c)("agentConnections"),m=o(),h=function(){let e=(0,a.c)("agentConnections");return(0,s.useCallback)(t=>{switch(t){case"task":return e("entityTask");case"idea":return e("entityIdea");case"proposal":return e("entityProposal");case"document":return e("entityDocument");case"daemon_session":return e("entityConversation");default:return e("entityUnknown")}},[e])}(),f="running"===r.status,g="interrupted"===r.status,j=g&&"user"===r.interruptedReason,N="stacked"===l,w="daemon_session"===r.entityType,k=w?(null==(t=r.entityTitle)?void 0:t.trim())||c("execConversation"):(null==(n=r.entityTitle)?void 0:n.trim())||c("execEntityUnknown"),S=d(r),F=N?"line-clamp-2":"truncate",B=(0,u.jsx)("span",{className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-lg ".concat(f?"bg-[#C67A5214]":g?"bg-[#FEF3C7]":"bg-[#F0EDE8]"),"aria-hidden":!0,children:f?(0,u.jsx)(b.A,{className:"h-4 w-4 text-[#C67A52] motion-safe:animate-spin"}):g?(0,u.jsx)(y.A,{className:"h-4 w-4 text-[#B45309]"}):(0,u.jsx)(p.A,{className:"h-4 w-4 text-[#9A9A9A]"})}),I=(0,u.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,u.jsxs)("div",{className:"flex items-center gap-1.5",children:[w?(0,u.jsx)(C.A,{className:"h-3.5 w-3.5 shrink-0 text-[#C67A52]","aria-hidden":!0}):(0,u.jsx)(x.E,{variant:"secondary",className:"shrink-0 border-0 bg-[#F0EDE8] px-1.5 py-0 text-[10px] font-medium text-[#6B6B6B]",children:h(r.entityType)}),S?(0,u.jsxs)(v(),{href:S,className:"group inline-flex min-w-0 items-center gap-1.5 ".concat(F," text-[14px] font-medium text-[#2C2C2C] hover:text-[#C67A52]"),children:[(0,u.jsx)("span",{className:F,children:k}),(0,u.jsx)(A.A,{className:"h-3.5 w-3.5 shrink-0 text-[#C8C3BA] group-hover:text-[#C67A52]"})]}):(0,u.jsx)("span",{className:"block ".concat(F," text-[14px] font-medium ").concat(w?"text-[#2C2C2C]":"text-[#9A9A9A]"),children:k})]}),r.rootIdeaTitle&&(0,u.jsxs)("div",{className:"mt-1 flex items-center gap-1.5",children:[(0,u.jsx)(E.A,{className:"h-3 w-3 shrink-0 text-[#9A8C7E]","aria-hidden":!0}),(0,u.jsx)("span",{className:"".concat(N?"":"truncate"," text-[11px] text-[#9A8C7E]"),children:c("execSession",{idea:r.rootIdeaTitle})})]})]}),D=f?(0,u.jsxs)(u.Fragment,{children:[r.startedAt&&(0,u.jsx)("span",{className:"font-mono text-[12px] font-medium tabular-nums text-[#15803D]",title:c("execElapsedLabel"),children:m(r.startedAt,i)}),(0,u.jsx)(U,{exec:r})]}):g?(0,u.jsxs)(u.Fragment,{children:[(0,u.jsxs)(x.E,{variant:"secondary",className:"shrink-0 gap-1 border-0 bg-[#FEF3C7] px-2 py-0.5 text-[10px] font-medium text-[#B45309]",children:[(0,u.jsx)(y.A,{className:"h-3 w-3","aria-hidden":!0}),c(j?"execInterruptedUser":"execInterruptedCrash")]}),j?(0,u.jsx)(T,{exec:r}):(0,u.jsx)("span",{className:"text-[11px] font-medium text-[#9A8C7E]",children:c("execCrashAutoRecovers")})]}):(0,u.jsx)("span",{className:"text-[11px] font-medium text-[#9A9A9A]",children:c("execWaiting")});return N?(0,u.jsxs)("li",{className:"flex flex-col gap-2 rounded-xl border border-[#E5E0D8] bg-white px-3.5 py-3",children:[(0,u.jsxs)("div",{className:"flex items-start gap-3",children:[B,I]}),(0,u.jsx)("div",{className:"flex flex-wrap items-center gap-2 pl-11",children:D})]}):(0,u.jsxs)("li",{className:"flex items-center gap-3 rounded-xl border border-[#E5E0D8] bg-white px-3.5 py-3",children:[B,I,f||g?(0,u.jsx)("div",{className:"flex shrink-0 items-center gap-2",children:D}):(0,u.jsx)("span",{className:"shrink-0 text-[11px] font-medium text-[#9A9A9A]",children:c("execWaiting")})]})}function D(e){let{icon:t,label:n,count:s,children:a}=e;return(0,u.jsxs)("div",{className:"flex flex-col gap-2.5",children:[(0,u.jsxs)("div",{className:"flex items-center gap-2",children:[(0,u.jsx)(t,{className:"h-4 w-4 text-[#C67A52]","aria-hidden":!0}),(0,u.jsx)("span",{className:"text-[12px] font-semibold uppercase tracking-wide text-[#6B6B6B]",children:n}),(0,u.jsx)(x.E,{variant:"secondary",className:"border-0 bg-[#F0EDE8] px-1.5 py-0 font-mono text-[10px] font-medium text-[#9A8C7E]",children:s})]}),(0,u.jsx)("ul",{className:"flex flex-col gap-2",children:a})]})}var _=n(88853),M=n(50153),O=n(15972),q=n(91846),R=n(42305);function z(e){let{value:t,onChange:n,onSend:s,pending:r,disabled:i,disabledReason:l,placeholder:o,sendLabel:c,layout:d,controllableExecution:x}=e,m=(0,a.c)("agentConnections"),h=0===t.trim().length,p=i||r||h,f=(0,u.jsxs)(k.$,{type:"button",size:"sm",onClick:s,disabled:p,"aria-label":c,className:"h-8 shrink-0 gap-1.5 rounded-lg bg-[#C67A52] px-3.5 text-[13px] font-medium text-white hover:bg-[#B56A44] disabled:bg-[#E5E0D8] disabled:text-[#9A9A9A]",children:[r?(0,u.jsx)(b.A,{className:"h-3.5 w-3.5 motion-safe:animate-spin","aria-hidden":!0}):(0,u.jsx)(_.A,{className:"h-3.5 w-3.5","aria-hidden":!0}),c]}),g=null!=x?x:null,j=g?"running"===g.status?(0,u.jsx)(U,{exec:g}):"interrupted"===g.status&&"user"===g.interruptedReason?(0,u.jsx)(T,{exec:g}):"interrupted"===g.status&&"crash"===g.interruptedReason?(0,u.jsx)("span",{className:"text-[11px] font-medium text-[#9A8C7E]",children:m("execCrashAutoRecovers")}):null:null,v=(0,u.jsxs)("div",{className:"absolute bottom-2 right-2 z-10 flex shrink-0 items-center gap-2",children:[j,f]}),N=i?(0,u.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-[12px] font-medium text-[#B45309]",children:[(0,u.jsx)(M.A,{className:"h-3.5 w-3.5 shrink-0","aria-hidden":!0}),(0,u.jsx)("span",{className:"min-w-0",children:l})]}):null;return(0,u.jsxs)("div",{className:"flex flex-col gap-2.5",children:[N,(0,u.jsxs)("div",{className:"relative",children:[(0,u.jsx)(O.T,{value:t,onChange:e=>n(e.target.value),onKeyDown:e=>{(0,R.P)(e)||"Enter"===e.key&&!e.shiftKey&&(e.preventDefault(),p||s())},disabled:i||r,placeholder:o,rows:3,className:"min-h-[76px] resize-none rounded-xl border-[#E5E0D8] bg-white pb-12 text-[14px] text-[#2C2C2C] placeholder:text-[#9A9A9A] focus-visible:border-[#C67A52] focus-visible:ring-[#C67A52]/30"}),v]})]})}function L(e){let{sessionUuid:t,originOnline:n,layout:r="inline",controllableExecution:i}=e,l=(0,a.c)("agentConnections"),o=(0,a.c)("daemonChat"),[c,d]=(0,s.useState)(""),[x,m]=(0,s.useState)(!1),h=async()=>{let e=c.trim();if(0!==e.length){m(!0);try{let n=await (0,F.tm)("/api/daemon-sessions/".concat(t,"/instruction"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({instructionText:e})});if(!n.ok)return void g.oR.error(await $(n,l("instructionError")));d("")}catch(e){B.q.error("Failed to send daemon instruction:",e),g.oR.error(l("instructionError"))}finally{m(!1)}}};return(0,u.jsx)(z,{value:c,onChange:d,onSend:h,pending:x,disabled:!n,disabledReason:n?null:o("originOfflineNote"),placeholder:o("replyPlaceholder"),sendLabel:l("send"),layout:r,controllableExecution:i})}function P(e){var t,n;let{agentUuid:r,onlineConnections:i,layout:l,hideHeader:o=!1,onStarted:d}=e,x=(0,a.c)("agentConnections"),m=c(),[h,p]=(0,s.useState)(null!=(n=null==(t=i[0])?void 0:t.uuid)?n:""),[f,j]=(0,s.useState)(""),[v,N]=(0,s.useState)(!1),b=async()=>{let e=f.trim();if(h&&0!==e.length){N(!0);try{let n=await (0,F.tm)("/api/daemon-sessions/ad-hoc",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({agentUuid:r,connectionUuid:h,instructionText:e})});if(!n.ok)return void g.oR.error(await $(n,x("instructionError")));let s=null;try{var t;let e=await n.json();(null==e?void 0:e.success)&&(null==(t=e.data)?void 0:t.session)&&(s=e.data.session)}catch(e){}g.oR.success(x("adHocSessionStarted")),j(""),s&&(null==d||d(s))}catch(e){B.q.error("Failed to start ad-hoc daemon session:",e),g.oR.error(x("instructionError"))}finally{N(!1)}}};return(0,u.jsxs)("div",{className:"flex flex-col gap-3 rounded-xl border border-dashed border-[#E5E0D8] bg-white p-4",children:[!o&&(0,u.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,u.jsx)("span",{className:"text-[13px] font-semibold text-[#2C2C2C]",children:x("adHocTitle")}),(0,u.jsx)("span",{className:"text-[12px] leading-relaxed text-[#9A9A9A]",children:x("adHocBody")})]}),(0,u.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,u.jsx)("span",{className:"text-[11px] font-medium uppercase tracking-wide text-[#9A9A9A]",children:x("pickConnection")}),(0,u.jsxs)(q.l6,{value:h,onValueChange:p,children:[(0,u.jsx)(q.bq,{"aria-label":x("pickConnection"),className:"w-full rounded-lg border-[#E5E0D8] bg-white text-[13px] text-[#2C2C2C]",children:(0,u.jsx)(q.yv,{placeholder:x("pickConnectionPlaceholder")})}),(0,u.jsx)(q.gC,{children:i.map(e=>{var t;return(0,u.jsx)(q.eb,{value:e.uuid,children:((null==(t=e.agentName)?void 0:t.trim())||x("unknownAgent"))+" \xb7 "+m(e.clientType)+(e.host?" \xb7 "+e.host:"")},e.uuid)})})]})]}),(0,u.jsx)(z,{value:f,onChange:j,onSend:b,pending:v,disabled:!1,disabledReason:null,placeholder:x("sendInstructionPlaceholder"),sendLabel:x("startSession"),layout:l})]})}async function $(e,t){try{let t=await e.json();if(t&&"string"==typeof t.error&&t.error)return t.error}catch(e){}return t}var H=n(48416),K=n(59208),J=n(78134),Z=n(97438),V=n(37915),G=n(6748),Q=n(17475),W=n(5329);function X(e){let{status:t}=e;return"running"===t?(0,u.jsxs)("span",{"aria-hidden":!0,className:"relative inline-flex h-2.5 w-2.5 items-center justify-center",children:[(0,u.jsx)("span",{className:"absolute inline-flex h-full w-full rounded-full bg-[#C67A52] opacity-30 motion-safe:animate-ping"}),(0,u.jsx)("span",{className:"relative inline-flex h-1.5 w-1.5 rounded-full bg-[#C67A52]"})]}):"interrupted"===t?(0,u.jsx)(y.A,{"aria-hidden":!0,className:"h-3.5 w-3.5 text-[#B45309]"}):"error"===t?(0,u.jsx)(Q.A,{"aria-hidden":!0,className:"h-3.5 w-3.5 text-[#DC2626]"}):(0,u.jsx)("span",{"aria-hidden":!0,className:"h-2 w-2 rounded-full bg-[#D7D2C9]"})}function Y(e){let{row:t,selected:n,onSelect:s,nowMs:r}=e,l=(0,a.c)("daemonChat"),o=i(),c="running"===t.status?l("running"):"interrupted"===t.status?l("statusInterrupted"):"error"===t.status?l("statusError"):null;return(0,u.jsxs)(k.$,{variant:"ghost",onClick:s,"aria-current":n?"true":void 0,className:"relative h-auto w-full justify-start gap-0 rounded-none px-0 py-0 text-left transition-colors ".concat(n?"bg-[#FBF4EF] hover:bg-[#FBF4EF]":"bg-white hover:bg-[#FAF8F4]"),children:[n&&(0,u.jsx)("span",{"aria-hidden":!0,className:"absolute inset-y-0 left-0 w-[3px] bg-[#C67A52]"}),(0,u.jsxs)("span",{className:"flex w-full items-center gap-3 px-4 py-3.5",children:[(0,u.jsx)("span",{className:"flex w-2.5 shrink-0 justify-center",children:(0,u.jsx)(X,{status:t.status})}),(0,u.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,u.jsxs)("span",{className:"flex items-center gap-1.5",children:[t.ideaAnchored&&(0,u.jsxs)(x.E,{variant:"secondary",className:"shrink-0 gap-1 border-0 bg-[#F3ECFB] px-1.5 py-0 text-[10px] font-medium text-[#7C5BC0]",children:[(0,u.jsx)(E.A,{className:"h-2.5 w-2.5","aria-hidden":!0}),l("badgeIdea")]}),(0,u.jsx)("span",{className:"truncate text-[14px] font-semibold text-[#2C2C2C]",children:t.title})]}),(0,u.jsxs)("span",{className:"mt-0.5 flex items-center gap-1.5",children:[c&&(0,u.jsx)("span",{className:"text-[10px] font-semibold uppercase tracking-wide ".concat("running"===t.status?"text-[#C67A52]":"error"===t.status?"text-[#DC2626]":"text-[#B45309]"),children:c}),(0,u.jsx)("span",{className:"truncate font-mono text-[10px] text-[#9A9A9A]",children:o(t.session.lastTurnAt,r)})]})]})]})]})}function ee(e){let{agents:t,selectedAgentUuid:n,onSelectAgent:s,rows:i,selectedSessionUuid:l,onSelectSession:o,onNewConversation:c,visibleCount:d,onLoadMore:x}=e,m=(0,a.c)("daemonChat"),h=r(),p=i.slice(0,d),f=i.length>d,g=null===l;return(0,u.jsxs)("div",{className:"flex h-full flex-col gap-3",children:[(0,u.jsxs)("div",{className:"flex flex-col gap-1.5 px-1",children:[(0,u.jsx)("span",{className:"text-[11px] font-medium uppercase tracking-wide text-[#9A9A9A]",children:m("agentSelectLabel")}),(0,u.jsxs)(q.l6,{value:null!=n?n:void 0,onValueChange:s,children:[(0,u.jsx)(q.bq,{"aria-label":m("agentSelectLabel"),className:"w-full rounded-lg border-[#E5E0D8] bg-white text-[13px] text-[#2C2C2C]",children:(0,u.jsx)(q.yv,{placeholder:m("agentSelectPlaceholder")})}),(0,u.jsx)(q.gC,{children:t.map(e=>(0,u.jsx)(q.eb,{value:e.agentUuid,children:e.agentName},e.agentUuid))})]})]}),(0,u.jsx)("div",{className:"px-1",children:(0,u.jsxs)(k.$,{type:"button",onClick:c,"aria-current":g?"true":void 0,className:"h-9 w-full justify-center gap-1.5 rounded-lg text-[13px] font-medium ".concat(g?"bg-[#C67A52] text-white hover:bg-[#B56A44]":"border border-[#E5D2C2] bg-[#FBF4EF] text-[#C67A52] hover:bg-[#F6E9DF]"),children:[(0,u.jsx)(W.A,{className:"h-4 w-4","aria-hidden":!0}),m("newConversationButton")]})}),(0,u.jsxs)(H.Zp,{className:"flex min-h-0 flex-1 flex-col gap-0 overflow-hidden rounded-2xl border-[#E5E0D8] bg-white p-0 shadow-none",children:[(0,u.jsxs)("div",{className:"flex items-center justify-between px-4 py-3.5",children:[(0,u.jsx)("span",{className:"font-mono text-[11px] font-medium uppercase tracking-[1px] text-[#9A9A9A]",children:m("listHeader")}),(0,u.jsx)("span",{className:"font-mono text-[11px] font-medium text-[#9A9A9A]",children:i.length})]}),(0,u.jsx)("div",{className:"h-px w-full bg-[#EFEBE4]"}),0===i.length?(0,u.jsxs)("div",{className:"flex flex-1 flex-col items-center justify-center gap-1.5 p-8 text-center",children:[(0,u.jsx)("p",{className:"text-[13px] font-medium text-[#6B6B6B]",children:m("noSessions.title")}),(0,u.jsx)("p",{className:"max-w-[220px] text-[12px] leading-relaxed text-[#9A9A9A]",children:m("noSessions.body")})]}):(0,u.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col overflow-y-auto",children:[p.map((e,t)=>(0,u.jsxs)("div",{children:[(0,u.jsx)(Y,{row:e,selected:l===e.session.uuid,onSelect:()=>o(e.session.uuid),nowMs:h}),t<p.length-1&&(0,u.jsx)("div",{className:"h-px w-full bg-[#F2EEE7]"})]},e.session.uuid)),f&&(0,u.jsx)("div",{className:"px-4 py-3",children:(0,u.jsx)(k.$,{variant:"ghost",size:"sm",onClick:x,className:"h-8 w-full rounded-lg text-[12px] font-medium text-[#C67A52] hover:bg-[#FBF4EF] hover:text-[#C67A52]",children:m("loadMore")})})]})]})]})}var et=n(60532),en=n(25373),es=n(30028),ea=n(17730),er=n(44575),ei=n(89967),el=n(64993),eo=n(81750),ec=n(32470),ed=n(83553),eu=n(69011),ex=n(23380),em=n(72256),eh=n(97261);function ep(e){let{message:t,agentName:n}=e,s=(0,a.c)("daemonChat"),r="user"===t.role,i=r?s("roleYou"):n||s("roleAgent"),l=function(e){let t=new Date(e);return Number.isNaN(t.getTime())?"":t.toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})}(t.createdAt);return(0,u.jsxs)("div",{className:"flex min-w-0 flex-col gap-1",children:[(0,u.jsxs)("div",{className:"flex items-baseline gap-2",children:[(0,u.jsx)("span",{className:"text-[11px] font-semibold uppercase tracking-wide ".concat(r?"text-[#C67A52]":"text-[#6B6B6B]"),children:i}),l&&(0,u.jsx)("span",{className:"font-mono text-[10px] tabular-nums text-[#9A9A9A]",children:l})]}),r?(0,u.jsx)("p",{className:"whitespace-pre-wrap break-words text-[13px] leading-relaxed text-[#2C2C2C]",children:t.text}):(0,u.jsx)("div",{className:"prose prose-sm w-full min-w-0 max-w-full break-words text-[13px] leading-relaxed text-[#2C2C2C] [&_a]:break-all [&_code]:[overflow-wrap:anywhere] [&_img]:h-auto [&_img]:max-w-full [&_pre]:max-w-full [&_pre]:overflow-x-auto [&_table]:block [&_table]:max-w-full [&_table]:overflow-x-auto",children:(0,u.jsx)(eh.MarkdownContent,{children:t.text})})]})}let ef={task_assigned:{icon:ec.A,labelKey:"triggerTask"},mentioned:{icon:ed.A,labelKey:"triggerMention"},elaboration:{icon:eu.A,labelKey:"triggerElaboration"},human_instruction:{icon:ex.A,labelKey:"triggerInstruction"},resume:{icon:em.A,labelKey:"triggerResume"}};function eg(e){var t;let{turn:n,agentName:s,linkedExecution:r}=e,i=(0,a.c)("daemonChat"),l=ef[n.trigger],o=null!=(t=null==l?void 0:l.icon)?t:ec.A,c=i(l?l.labelKey:"triggerUnknown"),m="running"===n.status,h="pending"===n.status,p=i("running"===n.status?"turnStatusRunning":"pending"===n.status?"turnStatusPending":"turnStatusEnded"),f=n.messages.filter(e=>!e.uuid.startsWith("synthetic:")),g=r?d(r):null,j=i((null==r?void 0:r.entityType)==="idea"?"openIdea":"openTask");return(0,u.jsxs)("div",{className:"flex gap-3",children:[(0,u.jsx)("div",{"aria-hidden":!0,className:"relative w-[3px] shrink-0 rounded-full ".concat(m||h?"bg-[#C67A52]":"bg-[#EFEBE4]"),children:m&&(0,u.jsx)("span",{className:"absolute inset-0 rounded-full bg-[#C67A52] opacity-40 motion-safe:animate-pulse"})}),(0,u.jsxs)("div",{className:"min-w-0 flex-1 pb-2",children:[(0,u.jsxs)("div",{className:"flex flex-wrap items-center gap-x-2.5 gap-y-1",children:[(0,u.jsxs)("span",{className:"inline-flex items-center gap-1.5",children:[(0,u.jsx)(o,{className:"h-3.5 w-3.5 text-[#C67A52]","aria-hidden":!0}),(0,u.jsx)("span",{className:"text-[12px] font-semibold uppercase tracking-wide text-[#2C2C2C]",children:c})]}),(0,u.jsx)("span",{className:"font-mono text-[10px] uppercase tracking-wide text-[#9A9A9A]",children:i("turnLabel",{seq:n.seq})}),(0,u.jsxs)(x.E,{variant:"secondary",className:"gap-1 border-0 px-1.5 py-0 text-[10px] font-medium ".concat(m?"bg-[#FBF0E8] text-[#C67A52]":h?"bg-[#F0EDE8] text-[#9A8C7E]":"bg-[#F0EDE8] text-[#6B6B6B]"),children:[m&&(0,u.jsx)(b.A,{className:"h-2.5 w-2.5 motion-safe:animate-spin","aria-hidden":!0}),p]}),g&&(0,u.jsxs)(v(),{href:g,className:"group inline-flex items-center gap-1 text-[11px] font-medium text-[#C67A52] hover:text-[#B56A44]",children:[j,(0,u.jsx)(A.A,{className:"h-3 w-3","aria-hidden":!0})]})]}),n.promptText&&n.promptText.trim().length>0&&(0,u.jsx)("p",{className:"mt-2 whitespace-pre-wrap break-words rounded-lg bg-[#FCFBF8] px-3 py-2 text-[13px] leading-relaxed text-[#6B6B6B]",children:n.promptText}),(0,u.jsx)("div",{className:"mt-3 flex min-w-0 flex-col gap-3",children:f.length>0?f.map(e=>(0,u.jsx)(ep,{message:e,agentName:s},e.uuid)):(0,u.jsx)("p",{className:"text-[12px] italic text-[#9A9A9A]",children:i("turnNoMessages")})})]})]})}function ej(e){let{label:t,value:n,mono:s}=e;return(0,u.jsxs)("div",{children:[(0,u.jsx)("div",{className:"text-[10px] font-medium uppercase tracking-wide text-[#9A9A9A]",children:t}),(0,u.jsx)("div",{className:"mt-0.5 truncate text-[13px] font-medium text-[#2C2C2C] ".concat(s?"font-mono":""),children:n})]})}function ev(e){let{sessionId:t}=e,n=(0,a.c)("daemonChat"),[r,i]=(0,s.useState)(!1),l=n(r?"sessionIdCopied":"copySessionId"),o=async()=>{try{var e;await (null==(e=navigator.clipboard)?void 0:e.writeText(t)),i(!0),setTimeout(()=>i(!1),2e3)}catch(e){B.q.error("Failed to copy session id:",e)}};return(0,u.jsxs)(k.$,{variant:"ghost",size:"sm",onClick:o,title:l,"aria-label":l,"aria-live":"polite",className:"inline-flex h-auto items-center gap-1.5 px-1.5 py-0.5 text-[12px] font-medium text-[#6B6B6B] hover:bg-transparent hover:text-[#2C2C2C]",children:[r?(0,u.jsx)(et.A,{className:"h-3.5 w-3.5 text-green-600","aria-hidden":!0}):(0,u.jsx)(en.A,{className:"h-3.5 w-3.5","aria-hidden":!0}),(0,u.jsx)("span",{className:r?"inline":"hidden lg:inline",children:l})]})}function eN(e){var t,n,l,c;let{session:d,turns:m,title:h,loading:p,error:g,originConnection:j,originOnline:v,sessionExecutions:N,executionsByUuid:w,footerLayout:y="inline",hasMoreEarlier:C,loadingEarlier:A,onLoadEarlier:E}=e,S=(0,a.c)("daemonChat"),F=r(),B=i(),U=o(),T=o(),I=(null==j||null==(t=j.agentName)?void 0:t.trim())||S("roleAgent"),D=(0,s.useMemo)(()=>{var e;let t=m.find(e=>"running"===e.status);return null!=(e=null!=t?t:m[m.length-1])?e:null},[m]),_=(0,s.useMemo)(()=>{let e=N.find(e=>"running"===e.status);if(e)return e;let t=N.find(e=>"interrupted"===e.status&&"user"===e.interruptedReason);if(t)return t;let n=N.find(e=>"interrupted"===e.status&&"crash"===e.interruptedReason);return null!=n?n:null},[N]),O=(0,s.useMemo)(()=>_&&"running"===_.status?_:null,[_]),q=(0,s.useRef)(null),R=null==(n=m[m.length-1])?void 0:n.uuid,z=null!=(c=null==(l=m[m.length-1])?void 0:l.messages.length)?c:0;(0,s.useEffect)(()=>{var e;null==(e=q.current)||e.scrollIntoView({block:"end"})},[R,z]);let P=(null==d?void 0:d.status)==="ended";return(0,u.jsxs)("div",{className:"flex h-full min-h-0 flex-col",children:[(0,u.jsxs)("div",{className:"flex flex-col gap-2 px-6 py-2.5 lg:gap-3 lg:py-4",children:[(0,u.jsx)("h3",{className:"truncate text-[17px] font-semibold text-[#2C2C2C]",children:h}),(0,u.jsxs)(eo.Nt,{children:[(0,u.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,u.jsx)(x.E,{variant:"secondary",className:"border-0 px-2 py-0.5 text-[10px] font-medium ".concat(P?"bg-[#F0EDE8] text-[#6B6B6B]":"bg-[#DCFCE7] text-[#15803D]"),children:S(P?"statusEnded":"statusActive")}),D&&"running"===D.status&&(0,u.jsxs)("span",{className:"inline-flex items-center gap-1.5 text-[11px] font-medium text-[#C67A52]",children:[(0,u.jsxs)("span",{className:"relative inline-flex h-2 w-2 items-center justify-center",children:[(0,u.jsx)("span",{className:"absolute inline-flex h-full w-full rounded-full bg-[#C67A52] opacity-40 motion-safe:animate-ping"}),(0,u.jsx)("span",{className:"relative inline-flex h-1 w-1 rounded-full bg-[#C67A52]"})]}),S("running"),(null==O?void 0:O.startedAt)&&(0,u.jsx)("span",{className:"font-mono tabular-nums text-[#C67A52]",title:S("runningElapsedLabel"),children:T(O.startedAt,F)})]}),(d||j)&&(0,u.jsxs)("div",{className:"ml-auto flex items-center gap-1",children:[d&&(0,u.jsx)(ev,{sessionId:d.sessionId}),j&&(0,u.jsxs)(eo.R6,{className:"group inline-flex items-center gap-1.5 text-[12px] font-medium text-[#6B6B6B] hover:text-[#2C2C2C]",children:[(0,u.jsx)(es.A,{className:"h-3.5 w-3.5","aria-hidden":!0}),S("detailsLabel"),(0,u.jsx)(ea.A,{className:"h-3.5 w-3.5 transition-transform group-data-[state=open]:rotate-180","aria-hidden":!0})]})]})]}),j&&(0,u.jsx)(eo.Ke,{children:(0,u.jsxs)("div",{className:"mt-3 flex flex-col gap-3 rounded-xl border border-[#EFEBE4] bg-[#FCFBF8] p-4",children:[(0,u.jsx)(f,{connection:j,size:"sm"}),(0,u.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[v&&(0,u.jsx)(ej,{label:S("detailUptime"),value:U(j.connectedAt,F),mono:!0}),(0,u.jsx)(ej,{label:S("detailHost"),value:""===j.host?S("detailsHostUnknown"):j.host,mono:!0}),j.startedAt&&(0,u.jsx)(ej,{label:S("detailStarted"),value:B(j.startedAt,F)})]})]})})]})]}),(0,u.jsx)("div",{className:"h-px w-full bg-[#EFEBE4]"}),g?(0,u.jsx)("div",{className:"flex flex-1 items-center justify-center p-8",children:(0,u.jsxs)(H.Zp,{className:"items-center gap-3 rounded-2xl border-[#E7D9C9] bg-[#FFF9F3] p-8 text-center shadow-none",children:[(0,u.jsx)("div",{className:"flex h-12 w-12 items-center justify-center rounded-xl bg-[#D9770615]",children:(0,u.jsx)(M.A,{className:"h-6 w-6 text-[#B45309]"})}),(0,u.jsx)("h4",{className:"text-base font-semibold text-[#92400E]",children:S("loadErrorTitle")}),(0,u.jsx)("p",{className:"max-w-md text-[13px] leading-relaxed text-[#6B6B6B]",children:S("loadErrorBody")})]})}):p?(0,u.jsx)("div",{className:"flex flex-1 items-center justify-center p-8 text-[13px] text-[#9A9A9A]",children:S("transcriptLoading")}):(0,u.jsx)(el.F,{className:"daemon-transcript-scroll min-h-0 w-full flex-1",children:(0,u.jsxs)("div",{className:"flex w-full min-w-0 flex-col gap-3 px-6 py-3 lg:gap-5 lg:py-5",children:[(0,u.jsxs)("p",{className:"flex items-start gap-1.5 text-[11px] leading-relaxed text-[#9A9A9A]",children:[(0,u.jsx)(er.A,{className:"mt-0.5 h-3 w-3 shrink-0","aria-hidden":!0}),(0,u.jsx)("span",{children:S("privacyNote")})]}),C&&(0,u.jsx)("div",{className:"flex justify-center",children:(0,u.jsxs)(k.$,{variant:"ghost",size:"sm",onClick:E,disabled:A,className:"h-8 gap-1.5 rounded-lg text-[12px] font-medium text-[#C67A52] hover:bg-[#FBF4EF] hover:text-[#C67A52]",children:[A?(0,u.jsx)(b.A,{className:"h-3.5 w-3.5 motion-safe:animate-spin","aria-hidden":!0}):(0,u.jsx)(ei.A,{className:"h-3.5 w-3.5","aria-hidden":!0}),S(A?"loadingEarlier":"loadEarlier")]})}),m.map(e=>{var t;return(0,u.jsx)(eg,{turn:e,agentName:I,linkedExecution:e.executionUuid&&null!=(t=w.get(e.executionUuid))?t:null},e.uuid)}),(0,u.jsx)("div",{ref:q})]})}),!g&&d&&(0,u.jsx)("div",{className:"flex flex-col gap-3 border-t border-[#EFEBE4] bg-[#FAF8F4] px-6 py-2.5 lg:py-4",children:(0,u.jsx)(L,{sessionUuid:d.uuid,originOnline:v,layout:y,controllableExecution:_})})]})}function eb(e){let{agentUuid:t,agentName:n,onlineConnections:s,onStarted:r}=e,i=(0,a.c)("daemonChat"),l=null!==t&&s.length>0;return(0,u.jsxs)("div",{className:"flex h-full min-h-0 flex-col",children:[(0,u.jsxs)("div",{className:"flex flex-col gap-1.5 px-6 py-4",children:[(0,u.jsxs)("h3",{className:"flex items-center gap-2 text-[17px] font-semibold text-[#2C2C2C]",children:[(0,u.jsx)(W.A,{className:"h-[18px] w-[18px] text-[#C67A52]","aria-hidden":!0}),i("newConversationTitle")]}),(0,u.jsx)("p",{className:"text-[13px] leading-relaxed text-[#6B6B6B]",children:t?i("newConversationBody",{agent:n}):i("newConversationNoAgent")})]}),(0,u.jsx)("div",{className:"h-px w-full bg-[#EFEBE4]"}),(0,u.jsx)("div",{className:"flex min-h-0 flex-1 flex-col overflow-y-auto px-6 py-5",children:l?(0,u.jsx)(P,{agentUuid:t,onlineConnections:s,layout:"inline",hideHeader:!0,onStarted:r}):(0,u.jsxs)("div",{className:"flex flex-1 flex-col items-center justify-center gap-2.5 rounded-xl border border-dashed border-[#E7D9C9] bg-[#FFF9F3] p-8 text-center",children:[(0,u.jsx)("div",{className:"flex h-11 w-11 items-center justify-center rounded-xl bg-[#D9770615]",children:(0,u.jsx)(M.A,{className:"h-5 w-5 text-[#B45309]","aria-hidden":!0})}),(0,u.jsx)("p",{className:"text-[13px] font-medium text-[#92400E]",children:i("newConversationNoOnlineTitle")}),(0,u.jsx)("p",{className:"max-w-[300px] text-[12px] leading-relaxed text-[#6B6B6B]",children:i("newConversationNoOnlineBody")})]})})]})}function ew(e,t){return e.filter(e=>t.directIdeaUuid?"idea"===e.entityType&&e.entityUuid===t.directIdeaUuid||e.rootIdeaUuid===t.directIdeaUuid:"daemon_session"===e.entityType&&e.entityUuid===t.sessionId)}var ey=n(39180);let eC="@chorus-aidlc/chorus",eA="npx ".concat(eC," daemon"),eE="npx ".concat(eC," login"),ek="/onboarding";function eS(e){let{command:t}=e,n=(0,a.c)("daemonConnectCta"),[r,i]=(0,s.useState)(!1),l=async()=>{try{var e;await (null==(e=navigator.clipboard)?void 0:e.writeText(t)),i(!0),setTimeout(()=>i(!1),2e3)}catch(e){B.q.error("Failed to copy daemon command:",e)}};return(0,u.jsxs)("div",{className:"flex items-center gap-2",children:[(0,u.jsx)("code",{className:"flex-1 overflow-x-auto rounded-md bg-foreground px-3 py-2 font-mono text-[12.5px] leading-relaxed text-background",children:t}),(0,u.jsx)(k.$,{variant:"outline",size:"sm",onClick:l,"aria-label":n(r?"copied":"copy"),"aria-live":"polite",className:"shrink-0",children:r?(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(et.A,{className:"mr-1 h-4 w-4 text-green-500"}),n("copied")]}):(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(en.A,{className:"mr-1 h-4 w-4"}),n("copy")]})})]})}function eF(e){let{variant:t}=e,n=(0,a.c)("daemonConnectCta");return"compact"===t?(0,u.jsxs)("div",{className:"flex flex-col gap-2.5 px-1 py-1.5",children:[(0,u.jsxs)("div",{className:"flex items-start gap-2",children:[(0,u.jsx)(ey.A,{className:"mt-0.5 h-4 w-4 shrink-0 text-[#C67A52]","aria-hidden":!0}),(0,u.jsx)("p",{className:"text-[12.5px] leading-relaxed text-[#6B6B6B]",children:n("body")})]}),(0,u.jsx)(eS,{command:eA}),(0,u.jsx)("p",{className:"text-[11.5px] leading-relaxed text-[#9A9A9A]",children:n("loginNote",{command:eE})}),(0,u.jsx)(v(),{href:ek,className:"text-[12px] font-medium text-[#C67A52] hover:text-[#A65F3C] hover:underline",children:n("learnMore")})]}):(0,u.jsxs)("div",{className:"flex w-full flex-col gap-3 rounded-xl border border-[#EFEBE4] bg-[#FCFBF8] p-5 text-left",children:[(0,u.jsxs)("div",{className:"flex items-center gap-2",children:[(0,u.jsx)(ey.A,{className:"h-4 w-4 text-[#C67A52]","aria-hidden":!0}),(0,u.jsx)("h3",{className:"text-[14px] font-semibold text-[#2C2C2C]",children:n("headline")})]}),(0,u.jsx)("p",{className:"text-[13px] leading-relaxed text-[#6B6B6B]",children:n("bodyLong")}),(0,u.jsx)(eS,{command:eA}),(0,u.jsx)("p",{className:"text-[12px] leading-relaxed text-[#9A9A9A]",children:n("loginNote",{command:eE})}),(0,u.jsx)(v(),{href:ek,className:"text-[12.5px] font-medium text-[#C67A52] hover:text-[#A65F3C] hover:underline",children:n("learnMore")})]})}function eB(e,t){if(0===e.length||t.seq>e[e.length-1].seq)return[...e,t];let n=e.findIndex(e=>e.seq>t.seq),s=-1===n?e.length:n;return[...e.slice(0,s),t,...e.slice(s)]}function eU(e,t){let n=new Map;for(let t of e)n.set(t.uuid,t);for(let e of t){let t=n.get(e.uuid);if(!t){n.set(e.uuid,e);continue}let s=new Set(t.messages.map(e=>e.uuid)),a=e.messages.filter(e=>!s.has(e.uuid));n.set(e.uuid,{...e,messages:[...t.messages,...a]})}return[...n.values()].sort((e,t)=>e.seq-t.seq)}function eT(){var e,t,n;let r=(0,a.c)("daemonChat"),{status:i,connections:l,executionsByConnection:o,setOpenSession:c,subscribeTranscript:d}=(0,K.$d)(),[x,m]=(0,s.useState)([]),[h,p]=(0,s.useState)("loading"),f=(0,s.useCallback)(async()=>{try{let t=await (0,F.tm)("/api/daemon-sessions");if(!t.ok)return void p("error");let n=await t.json();if(n.success){var e;m(null!=(e=n.data.sessions)?e:[]),p("ok")}else p("error")}catch(e){B.q.error("Failed to fetch daemon sessions:",e),p("error")}},[]);(0,s.useEffect)(()=>{f();let e=setInterval(f,15e3);return()=>clearInterval(e)},[f]);let g=(0,s.useMemo)(()=>{let e=new Map;for(let n of l){var t;!e.has(n.agentUuid)&&(null==(t=n.agentName)?void 0:t.trim())&&e.set(n.agentUuid,n.agentName.trim())}return[...new Set([...l.map(e=>e.agentUuid),...x.map(e=>e.agentUuid)])].map(t=>{var n;return{agentUuid:t,agentName:null!=(n=e.get(t))?n:r("roleAgent")}})},[l,x,r]),j=(0,s.useMemo)(()=>{var e,t,n;let s=null;for(let e of x)(!s||e.lastTurnAt>s.lastTurnAt)&&(s={agentUuid:e.agentUuid,lastTurnAt:e.lastTurnAt});return null!=(n=null!=(t=null==s?void 0:s.agentUuid)?t:null==(e=g[0])?void 0:e.agentUuid)?n:null},[x,g]),[v,N]=(0,s.useState)(null),b=v&&g.some(e=>e.agentUuid===v)?v:j;(0,s.useEffect)(()=>{!v&&"ok"===i&&"ok"===h&&j&&N(j)},[v,i,h,j]);let w=(0,s.useCallback)(e=>{var t,n,s;if(null==(t=e.title)?void 0:t.trim())return e.title.trim();if(e.directIdeaUuid)return(null==(s=e.ideaTitle)?void 0:s.trim())?e.ideaTitle.trim():r("conversationIdea",{id:e.directIdeaUuid.slice(0,8)});let a=null==(n=e.firstInstruction)?void 0:n.trim();if(a){let e=a.replace(/\s+/g," ").trim();return e.length>60?"".concat(e.slice(0,60).trimEnd(),"…"):e}return r("conversationAdHoc",{id:e.sessionId.slice(0,8)})},[r]),y=(0,s.useMemo)(()=>b?x.filter(e=>e.agentUuid===b).sort((e,t)=>e.lastTurnAt<t.lastTurnAt?1:-1).map(e=>{var t;return{session:e,title:w(e),ideaAnchored:null!=e.directIdeaUuid,status:function(e,t){let n=ew(e,t);if(n.some(e=>"running"===e.status))return"running";let s=n.find(e=>"interrupted"===e.status);return s?"user"===s.interruptedReason?"interrupted":"error":null}(null!=(t=o[e.originConnectionUuid])?t:[],e)}}):[],[x,b,o,w]),[C,A]=(0,s.useState)(12);(0,s.useEffect)(()=>{A(12)},[b]);let[E,S]=(0,s.useState)(null),U=(0,s.useMemo)(()=>{var e;return null!=(e=y.find(e=>e.session.uuid===E))?e:null},[y,E]),[T,I]=(0,s.useState)(null),[D,_]=(0,s.useState)([]),[O,q]=(0,s.useState)(!1),[R,z]=(0,s.useState)(!1),[L,P]=(0,s.useState)(!1),[$,J]=(0,s.useState)(!1),[Z,Q]=(0,s.useState)(null),W=(0,s.useRef)(0),X=null!=(t=null==U?void 0:U.session.uuid)?t:null;(0,s.useEffect)(()=>(c(X),()=>c(null)),[X,c]),(0,s.useEffect)(()=>{if(!X){I(null),_([]),z(!1),P(!1),Q(null);return}let e=++W.current;q(!0),z(!1),P(!1),Q(null),_([]),(async()=>{try{let t=await (0,F.tm)("/api/daemon-sessions/".concat(X));if(e!==W.current)return;if(!t.ok)return void z(!0);let n=await t.json();if(e!==W.current)return;if(n.success){let e=n.data;I(e),_(t=>{var n;return eU(t,null!=(n=e.turns)?n:[])}),P(!!e.hasMore),Q(null!==e.oldestTurnSeq&&null!==e.oldestMsgSeq?{turnSeq:e.oldestTurnSeq,msgSeq:e.oldestMsgSeq}:null)}else z(!0)}catch(t){if(e!==W.current)return;B.q.error("Failed to fetch daemon session detail:",t),z(!0)}finally{e===W.current&&q(!1)}})()},[X]);let Y=(0,s.useCallback)(async()=>{if(!X||$||!Z)return;let{turnSeq:e,msgSeq:t}=Z,n=W.current;J(!0);try{let s=await (0,F.tm)("/api/daemon-sessions/".concat(X,"?beforeTurnSeq=").concat(e,"&beforeMsgSeq=").concat(t));if(n!==W.current||!s.ok)return;let a=await s.json();if(n!==W.current)return;if(a.success){let e=a.data;_(t=>{var n;return eU(null!=(n=e.turns)?n:[],t)}),P(!!e.hasMore),null!==e.oldestTurnSeq&&null!==e.oldestMsgSeq&&Q({turnSeq:e.oldestTurnSeq,msgSeq:e.oldestMsgSeq})}}catch(e){B.q.error("Failed to load earlier transcript turns:",e)}finally{J(!1)}},[X,$,Z]);(0,s.useEffect)(()=>{if(X)return d(e=>{_(t=>(function(e,t){var n,s;let a=e.findIndex(e=>e.uuid===t.turn.uuid);if("turn_created"===t.trigger){let n={...t.turn,messages:[]};if(-1===a)return eB(e,n);let s=[...e];return s[a]={...n,messages:e[a].messages},s}if(-1===a)return eB(e,{...t.turn,messages:null!=(n=t.messages)?n:[]});let r=[...e];if("turn_status_changed"===t.trigger)return r[a]={...r[a],...t.turn},r;let i=new Set(r[a].messages.map(e=>e.uuid)),l=(null!=(s=t.messages)?s:[]).filter(e=>!i.has(e.uuid));return r[a]={...r[a],...t.turn,messages:[...r[a].messages,...l]},r})(t,e))})},[X,d]);let et=(0,s.useMemo)(()=>{var e;let t=null==T?void 0:T.session.originConnectionUuid;return t&&null!=(e=l.find(e=>e.uuid===t))?e:null},[T,l]),en=(null==et?void 0:et.effectiveStatus)==="online",es=(0,s.useMemo)(()=>b?l.filter(e=>e.agentUuid===b&&"online"===e.effectiveStatus):[],[l,b]),ea=null!=(n=null==(e=g.find(e=>e.agentUuid===b))?void 0:e.agentName)?n:r("roleAgent"),er=(0,s.useMemo)(()=>{var e;let t=null==T?void 0:T.session;return t?ew(null!=(e=o[t.originConnectionUuid])?e:[],t):[]},[T,o]),ei=(0,s.useMemo)(()=>{let e=new Map;for(let t of er)e.set(t.uuid,t);return e},[er]),el=U?U.title:T?w(T.session):"",[eo,ec]=(0,s.useState)(!1);(0,s.useEffect)(()=>{eo&&E&&!y.some(e=>e.session.uuid===E)&&ec(!1)},[y,eo,E]);let ed=(0,s.useCallback)(e=>{S(e)},[]),eu=(0,s.useCallback)(()=>{S(null),ec(!0)},[]),ex=(0,s.useCallback)(e=>{let t={uuid:e.uuid,agentUuid:e.agentUuid,sessionId:e.sessionId,directIdeaUuid:e.directIdeaUuid,originConnectionUuid:e.originConnectionUuid,status:e.status,title:e.title,lastTurnAt:e.lastTurnAt,originOnline:!0,firstInstruction:null,ideaTitle:null};m(e=>e.some(e=>e.uuid===t.uuid)?e:[t,...e]),S(e.uuid),f()},[f]),em="loading"===i&&"loading"===h,eh="error"===h&&0===x.length,ep="ok"===h&&0===x.length&&0===g.length,ef=e=>{var t;return(0,u.jsx)(eN,{session:null!=(t=null==T?void 0:T.session)?t:null,turns:D,title:el,loading:O,error:R,originConnection:et,originOnline:en,sessionExecutions:er,executionsByUuid:ei,footerLayout:e,hasMoreEarlier:L,loadingEarlier:$,onLoadEarlier:Y})},eg=ef("inline"),ej=(0,u.jsx)(eb,{agentUuid:b,agentName:ea,onlineConnections:es,onStarted:ex}),ev=U?ef("stacked"):ej;return(0,u.jsxs)("div",{className:"flex h-full min-h-0 flex-col bg-[#FAF8F4]",children:[eo&&(0,u.jsxs)("div",{className:"flex h-full min-h-0 flex-col lg:hidden",children:[(0,u.jsx)("div",{className:"flex shrink-0 items-center gap-1 border-b border-[#EFEBE4] bg-[#FAF8F4] px-3 py-2.5",children:(0,u.jsxs)(k.$,{variant:"ghost",size:"sm",onClick:()=>ec(!1),className:"h-9 gap-1 px-2 text-[15px] font-normal text-[#C67A52] hover:bg-[#FBF4EF] hover:text-[#C67A52]",children:[(0,u.jsx)(V.A,{className:"h-5 w-5"}),r("mobileBack")]})}),(0,u.jsx)("div",{className:"min-h-0 flex-1",children:ev})]}),(0,u.jsxs)("div",{className:"".concat(eo?"hidden lg:flex":"flex"," h-full min-h-0 flex-col gap-3 overflow-y-auto px-4 py-3 lg:overflow-hidden md:px-8 md:py-4 lg:gap-3 lg:px-8 lg:py-4"),children:[(0,u.jsx)("header",{className:"flex flex-col",children:(0,u.jsx)("h2",{className:"text-[22px] font-semibold text-[#2C2C2C] lg:text-[24px]",children:r("title")})}),em?(0,u.jsx)("p",{className:"text-sm text-[#6B6B6B]",children:r("loading")}):eh?(0,u.jsxs)(H.Zp,{className:"items-center gap-3 rounded-2xl border-[#E7D9C9] bg-[#FFF9F3] p-8 text-center shadow-none md:p-12",children:[(0,u.jsx)("div",{className:"flex h-12 w-12 items-center justify-center rounded-xl bg-[#D9770615]",children:(0,u.jsx)(M.A,{className:"h-6 w-6 text-[#B45309]"})}),(0,u.jsx)("h3",{className:"text-base font-semibold text-[#92400E]",children:r("loadErrorTitle")}),(0,u.jsx)("p",{className:"max-w-md text-[13px] leading-relaxed text-[#6B6B6B]",children:r("loadErrorBody")})]}):ep?(0,u.jsxs)(H.Zp,{className:"items-center gap-4 rounded-2xl border-[#E5E0D8] bg-white p-8 text-center shadow-none md:p-12",children:[(0,u.jsx)("div",{className:"flex h-12 w-12 items-center justify-center rounded-xl bg-[#C67A5215]",children:(0,u.jsx)(G.A,{className:"h-6 w-6 text-[#C67A52]"})}),(0,u.jsx)("h3",{className:"text-base font-semibold text-[#2C2C2C]",children:r("noAgents.title")}),(0,u.jsx)("p",{className:"max-w-md text-[13px] leading-relaxed text-[#6B6B6B]",children:r("noAgents.body")}),(0,u.jsx)("div",{className:"w-full max-w-md text-left",children:(0,u.jsx)(eF,{variant:"prominent"})})]}):(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)("div",{className:"flex flex-col gap-3 lg:hidden",children:(0,u.jsx)(ee,{agents:g,selectedAgentUuid:b,onSelectAgent:e=>{N(e),S(null)},rows:y,selectedSessionUuid:E,onSelectSession:e=>{ed(e),ec(!0)},onNewConversation:eu,visibleCount:C,onLoadMore:()=>A(e=>e+12)})}),(0,u.jsxs)("div",{className:"hidden min-h-0 flex-1 gap-5 lg:flex",children:[(0,u.jsx)("div",{className:"flex w-[320px] shrink-0 flex-col",children:(0,u.jsx)(ee,{agents:g,selectedAgentUuid:b,onSelectAgent:e=>{N(e),S(null)},rows:y,selectedSessionUuid:E,onSelectSession:ed,onNewConversation:eu,visibleCount:C,onLoadMore:()=>A(e=>e+12)})}),(0,u.jsx)(H.Zp,{className:"flex min-h-0 flex-1 flex-col overflow-hidden rounded-2xl border-[#E5E0D8] bg-white p-0 shadow-none",children:U?eg:ej})]})]})]})]})}function eI(){let e=(0,a.c)("daemonChat"),{modalOpen:t,setModalOpen:n}=(0,K.$d)();return(0,u.jsx)(Z.lG,{open:t,onOpenChange:n,children:(0,u.jsxs)(Z.Cf,{className:"flex h-dvh max-h-dvh w-screen max-w-none flex-col gap-0 overflow-hidden rounded-none border-0 p-0 sm:h-[92vh] sm:max-h-[92vh] sm:w-[min(96vw,1100px)] sm:max-w-[min(96vw,1100px)] sm:rounded-lg sm:border",children:[(0,u.jsxs)(J.bL,{children:[(0,u.jsx)(Z.L3,{children:e("title")}),(0,u.jsx)(Z.rr,{children:e("subtitle")})]}),(0,u.jsx)("div",{className:"flex min-h-0 flex-1 flex-col overflow-hidden",children:(0,u.jsx)(eT,{})})]})})}},30509:(e,t,n)=>{n.d(t,{HB:()=>a,JK:()=>l,XQ:()=>i,bN:()=>o,vh:()=>r});var s=n(14655);function a(e){let t=function(e){let t=window.location.origin,n=new s.O({store:window.localStorage});return{authority:e.issuer,client_id:e.clientId,redirect_uri:"".concat(t,"/login/callback"),post_logout_redirect_uri:"".concat(t,"/login"),response_type:"code",scope:"openid profile email",automaticSilentRenew:!0,silent_redirect_uri:"".concat(t,"/login/silent-refresh"),accessTokenExpiringNotificationTimeInSeconds:60,userStore:n,extraQueryParams:{company:e.companyUuid}}}(e);return new s.$5(t)}function r(e){localStorage.setItem("oidc_config",JSON.stringify(e))}function i(){let e=localStorage.getItem("oidc_config");if(!e)return null;try{return JSON.parse(e)}catch(e){return null}}function l(){localStorage.removeItem("oidc_config")}function o(e){return{sub:e.profile.sub,email:e.profile.email,name:e.profile.name,picture:e.profile.picture,accessToken:e.access_token,refreshToken:e.refresh_token,expiresAt:e.expires_at,idToken:e.id_token}}},42305:(e,t,n)=>{n.d(t,{P:()=>s});function s(e){return("nativeEvent"in e?e.nativeEvent:e).isComposing||229===e.keyCode}},59208:(e,t,n)=>{n.d(t,{$d:()=>c,Oj:()=>o});var s=n(90508),a=n(1856),r=n(62990),i=n(67712);let l=(0,a.createContext)(null);function o(e){let{children:t}=e,[n,o]=(0,a.useState)("loading"),[c,d]=(0,a.useState)([]),[u,x]=(0,a.useState)({}),[m,h]=(0,a.useState)(!1),[p,f]=(0,a.useState)(!1),[g,j]=(0,a.useState)(null),v=(0,a.useRef)(new Set),N=(0,a.useRef)({}),b=(0,a.useCallback)(async()=>{try{let t=await (0,r.tm)("/api/agent-connections");if(!t.ok)return void o("error");let n=await t.json();if(n.success){var e;d(null!=(e=n.data.connections)?e:[]),o("ok")}else o("error")}catch(e){i.q.error("Failed to fetch agent connections:",e),o("error")}},[]),w=(0,a.useCallback)(async()=>{let e={...N.current};try{let n=await (0,r.tm)("/api/daemon/executions");if(!n.ok)return;let s=await n.json();if(s.success){var t;let n=function(e){let t={};for(let a of e){var n,s;(null!=(s=t[n=a.connectionUuid])?s:t[n]=[]).push(a)}return t}(null!=(t=s.data.executions)?t:[]);x(t=>{let s={...n};for(let n of Object.keys(N.current))N.current[n]!==e[n]&&(void 0===t[n]?delete s[n]:s[n]=t[n]);return s})}}catch(e){i.q.error("Failed to fetch daemon executions:",e)}finally{h(!0)}},[]);(0,a.useEffect)(()=>{b(),w();let e=setInterval(()=>{b(),w()},15e3);return()=>clearInterval(e)},[b,w]),(0,a.useEffect)(()=>{let e=null;function t(){n(),(e=new EventSource(!g?"/api/events":"/api/events?sessionUuid=".concat(encodeURIComponent(g)))).onmessage=e=>{let t=null;try{t=JSON.parse(e.data)}catch(e){return}if(t&&!function(e,t){if("transcript"!==e.type)return!1;for(let n of t)n(e);return!0}(t,v.current)&&"execution"===t.type){var n;let e=t;N.current[e.connectionUuid]=(null!=(n=N.current[e.connectionUuid])?n:0)+1,x(t=>(function(e,t){let n={...e};return 0===t.executions.length?delete n[t.connectionUuid]:n[t.connectionUuid]=t.executions,n})(t,e))}},e.onerror=()=>{}}function n(){e&&(e.close(),e=null)}function s(){"visible"===document.visibilityState&&(e&&e.readyState===EventSource.OPEN||(t(),w()))}return t(),document.addEventListener("visibilitychange",s),()=>{n(),document.removeEventListener("visibilitychange",s)}},[w,g]);let y=(0,a.useMemo)(()=>c.filter(e=>"online"===e.effectiveStatus).length,[c]),C=(0,a.useCallback)(e=>(v.current.add(e),()=>{v.current.delete(e)}),[]),A=(0,a.useMemo)(()=>({status:n,connections:c,onlineCount:y,executionsByConnection:u,executionsLoaded:m,modalOpen:p,setModalOpen:f,openSession:g,setOpenSession:j,subscribeTranscript:C}),[n,c,y,u,m,p,g,C]);return(0,s.jsx)(l.Provider,{value:A,children:t})}function c(){let e=(0,a.useContext)(l);if(!e)throw Error("useAgentPresence must be used within an AgentPresenceProvider");return e}},62990:(e,t,n)=>{n.d(t,{hj:()=>l,ri:()=>m,tm:()=>x,w9:()=>o});var s=n(30509),a=n(67712);let r=null;function i(){if(!r){let e=(0,s.XQ)();e&&(r=(0,s.HB)(e))}return r}function l(e){return(0,s.vh)(e),r=(0,s.HB)(e)}function o(){r=null}async function c(){let e=i();if(!e)return null;try{return await e.getUser()}catch(e){return null}}async function d(){let e=await c();if(!e)return null;if(e.expired){let e=i();if(e)try{let t=await e.signinSilent();return(null==t?void 0:t.access_token)||null}catch(e){}return null}return e.access_token}async function u(e,t){try{return(await fetch("/api/auth/sync-token",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({accessToken:e,refreshToken:t})})).ok}catch(e){return a.q.error("Failed to sync token to cookie"),!1}}async function x(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=await d(),s=new Headers(t.headers);n&&s.set("Authorization","Bearer ".concat(n));let a=await fetch(e,{...t,headers:s});if(401===a.status){let n=i();if(n)try{let a=await n.signinSilent();if(null==a?void 0:a.access_token)return await u(a.access_token),s.set("Authorization","Bearer ".concat(a.access_token)),fetch(e,{...t,headers:s})}catch(e){}else try{if((await fetch("/api/auth/refresh",{method:"POST"})).ok)return s.delete("Authorization"),fetch(e,{...t,headers:s})}catch(e){}}return a}async function m(){try{await fetch("/api/auth/logout",{method:"POST"})}catch(e){}let e=i();if(e)try{await e.removeUser()}catch(e){}o(),(0,s.JK)()}},64993:(e,t,n)=>{n.d(t,{F:()=>i});var s=n(90508);n(1856);var a=n(65326),r=n(24377);function i(e){let{className:t,children:n,...i}=e;return(0,s.jsxs)(a.Root,{"data-slot":"scroll-area",className:(0,r.cn)("relative",t),...i,children:[(0,s.jsx)(a.Viewport,{"data-slot":"scroll-area-viewport",className:"focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1",children:n}),(0,s.jsx)(l,{}),(0,s.jsx)(a.Corner,{})]})}function l(e){let{className:t,orientation:n="vertical",...i}=e;return(0,s.jsx)(a.ScrollAreaScrollbar,{"data-slot":"scroll-area-scrollbar",orientation:n,className:(0,r.cn)("flex touch-none p-px transition-colors select-none","vertical"===n&&"h-full w-2.5 border-l border-l-transparent","horizontal"===n&&"h-2.5 flex-col border-t border-t-transparent",t),...i,children:(0,s.jsx)(a.ScrollAreaThumb,{"data-slot":"scroll-area-thumb",className:"bg-border relative flex-1 rounded-full"})})}},65626:(e,t,n)=>{n.d(t,{K5:()=>o,Rf:()=>l,Yv:()=>s,bK:()=>i,qG:()=>r,tE:()=>a});let s={fast:.15,normal:.2,slow:.3,easeOut:[0,0,.2,1],easeInOut:[.4,0,.2,1],stagger:.04,staggerFast:.03,spring:{type:"spring",stiffness:500,damping:30},tween:{type:"tween",duration:.2,ease:[0,0,.2,1]}},a={initial:{opacity:0,y:8},animate:{opacity:1,y:0,transition:{duration:s.normal,ease:s.easeOut}},exit:{opacity:0,y:-4,transition:{duration:s.fast,ease:s.easeOut}}},r={initial:{opacity:0},animate:{opacity:1,transition:{duration:s.normal,ease:s.easeOut}},exit:{opacity:0,transition:{duration:s.fast,ease:s.easeOut}}};s.normal,s.easeOut,s.fast,s.easeOut;let i={initial:{},animate:{transition:{staggerChildren:s.stagger}}},l={initial:{opacity:0,y:8},animate:{opacity:1,y:0,transition:{duration:s.normal,ease:s.easeOut}}},o={initial:{opacity:0,scale:.95,y:-4},animate:{opacity:1,scale:1,y:0,transition:{duration:s.fast,ease:s.easeOut}},exit:{opacity:0,scale:.95,y:-4,transition:{duration:s.fast,ease:s.easeOut}}}},97438:(e,t,n)=>{n.d(t,{Cf:()=>x,Es:()=>h,L3:()=>p,c7:()=>m,lG:()=>o,rr:()=>f,zM:()=>c});var s=n(90508);n(1856);var a=n(9160),r=n(71350),i=n(24377),l=n(22922);function o(e){let{...t}=e;return(0,s.jsx)(r.Root,{"data-slot":"dialog",...t})}function c(e){let{...t}=e;return(0,s.jsx)(r.Trigger,{"data-slot":"dialog-trigger",...t})}function d(e){let{...t}=e;return(0,s.jsx)(r.Portal,{"data-slot":"dialog-portal",...t})}function u(e){let{className:t,...n}=e;return(0,s.jsx)(r.Overlay,{"data-slot":"dialog-overlay",className:(0,i.cn)("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",t),...n})}function x(e){let{className:t,children:n,showCloseButton:l=!0,...o}=e;return(0,s.jsxs)(d,{"data-slot":"dialog-portal",children:[(0,s.jsx)(u,{}),(0,s.jsxs)(r.Content,{"data-slot":"dialog-content",className:(0,i.cn)("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 outline-none sm:max-w-lg",t),...o,children:[n,l&&(0,s.jsxs)(r.Close,{"data-slot":"dialog-close",className:"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",children:[(0,s.jsx)(a.A,{}),(0,s.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})}function m(e){let{className:t,...n}=e;return(0,s.jsx)("div",{"data-slot":"dialog-header",className:(0,i.cn)("flex flex-col gap-2 text-center sm:text-left",t),...n})}function h(e){let{className:t,showCloseButton:n=!1,children:a,...o}=e;return(0,s.jsxs)("div",{"data-slot":"dialog-footer",className:(0,i.cn)("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",t),...o,children:[a,n&&(0,s.jsx)(r.Close,{asChild:!0,children:(0,s.jsx)(l.$,{variant:"outline",children:"Close"})})]})}function p(e){let{className:t,...n}=e;return(0,s.jsx)(r.Title,{"data-slot":"dialog-title",className:(0,i.cn)("text-lg leading-none font-semibold",t),...n})}function f(e){let{className:t,...n}=e;return(0,s.jsx)(r.Description,{"data-slot":"dialog-description",className:(0,i.cn)("text-muted-foreground text-sm",t),...n})}}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[66205],{38476:(e,t,n)=>{n.r(t),n.d(t,{Collapsible:()=>C,CollapsibleContent:()=>k,CollapsibleTrigger:()=>g,Content:()=>N,Root:()=>w,Trigger:()=>T,createCollapsibleScope:()=>h});var a=n(1856),r=n(33328),o=n(21032),i=n(66249),l=n(99457),s=n(34124),d=n(93367),c=n(19900),u=n(40577),p=n(90508),b="Collapsible",[f,h]=(0,o.A)(b),[v,m]=f(b),C=a.forwardRef((e,t)=>{let{__scopeCollapsible:n,open:r,defaultOpen:o,disabled:l,onOpenChange:s,...c}=e,[f,h]=(0,i.i)({prop:r,defaultProp:null!=o&&o,onChange:s,caller:b});return(0,p.jsx)(v,{scope:n,disabled:l,contentId:(0,u.B)(),open:f,onOpenToggle:a.useCallback(()=>h(e=>!e),[h]),children:(0,p.jsx)(d.sG.div,{"data-state":j(f),"data-disabled":l?"":void 0,...c,ref:t})})});C.displayName=b;var x="CollapsibleTrigger",g=a.forwardRef((e,t)=>{let{__scopeCollapsible:n,...a}=e,o=m(x,n);return(0,p.jsx)(d.sG.button,{type:"button","aria-controls":o.contentId,"aria-expanded":o.open||!1,"data-state":j(o.open),"data-disabled":o.disabled?"":void 0,disabled:o.disabled,...a,ref:t,onClick:(0,r.mK)(e.onClick,o.onOpenToggle)})});g.displayName=x;var y="CollapsibleContent",k=a.forwardRef((e,t)=>{let{forceMount:n,...a}=e,r=m(y,e.__scopeCollapsible);return(0,p.jsx)(c.C,{present:n||r.open,children:e=>{let{present:n}=e;return(0,p.jsx)(R,{...a,ref:t,present:n})}})});k.displayName=y;var R=a.forwardRef((e,t)=>{let{__scopeCollapsible:n,present:r,children:o,...i}=e,c=m(y,n),[u,b]=a.useState(r),f=a.useRef(null),h=(0,s.s)(t,f),v=a.useRef(0),C=v.current,x=a.useRef(0),g=x.current,k=c.open||u,R=a.useRef(k),w=a.useRef(void 0);return a.useEffect(()=>{let e=requestAnimationFrame(()=>R.current=!1);return()=>cancelAnimationFrame(e)},[]),(0,l.N)(()=>{let e=f.current;if(e){w.current=w.current||{transitionDuration:e.style.transitionDuration,animationName:e.style.animationName},e.style.transitionDuration="0s",e.style.animationName="none";let t=e.getBoundingClientRect();v.current=t.height,x.current=t.width,R.current||(e.style.transitionDuration=w.current.transitionDuration,e.style.animationName=w.current.animationName),b(r)}},[c.open,r]),(0,p.jsx)(d.sG.div,{"data-state":j(c.open),"data-disabled":c.disabled?"":void 0,id:c.contentId,hidden:!k,...i,ref:h,style:{"--radix-collapsible-content-height":C?"".concat(C,"px"):void 0,"--radix-collapsible-content-width":g?"".concat(g,"px"):void 0,...e.style},children:k&&o})});function j(e){return e?"open":"closed"}var w=C,T=g,N=k},79834:(e,t,n)=>{n.r(t),n.d(t,{Content:()=>D,List:()=>_,Root:()=>I,Tabs:()=>x,TabsContent:()=>w,TabsList:()=>y,TabsTrigger:()=>R,Trigger:()=>E,createTabsScope:()=>h});var a=n(1856),r=n(33328),o=n(21032),i=n(94782),l=n(19900),s=n(93367),d=n(72599),c=n(66249),u=n(40577),p=n(90508),b="Tabs",[f,h]=(0,o.A)(b,[i.RG]),v=(0,i.RG)(),[m,C]=f(b),x=a.forwardRef((e,t)=>{let{__scopeTabs:n,value:a,onValueChange:r,defaultValue:o,orientation:i="horizontal",dir:l,activationMode:f="automatic",...h}=e,v=(0,d.jH)(l),[C,x]=(0,c.i)({prop:a,onChange:r,defaultProp:null!=o?o:"",caller:b});return(0,p.jsx)(m,{scope:n,baseId:(0,u.B)(),value:C,onValueChange:x,orientation:i,dir:v,activationMode:f,children:(0,p.jsx)(s.sG.div,{dir:v,"data-orientation":i,...h,ref:t})})});x.displayName=b;var g="TabsList",y=a.forwardRef((e,t)=>{let{__scopeTabs:n,loop:a=!0,...r}=e,o=C(g,n),l=v(n);return(0,p.jsx)(i.bL,{asChild:!0,...l,orientation:o.orientation,dir:o.dir,loop:a,children:(0,p.jsx)(s.sG.div,{role:"tablist","aria-orientation":o.orientation,...r,ref:t})})});y.displayName=g;var k="TabsTrigger",R=a.forwardRef((e,t)=>{let{__scopeTabs:n,value:a,disabled:o=!1,...l}=e,d=C(k,n),c=v(n),u=T(d.baseId,a),b=N(d.baseId,a),f=a===d.value;return(0,p.jsx)(i.q7,{asChild:!0,...c,focusable:!o,active:f,children:(0,p.jsx)(s.sG.button,{type:"button",role:"tab","aria-selected":f,"aria-controls":b,"data-state":f?"active":"inactive","data-disabled":o?"":void 0,disabled:o,id:u,...l,ref:t,onMouseDown:(0,r.mK)(e.onMouseDown,e=>{o||0!==e.button||!1!==e.ctrlKey?e.preventDefault():d.onValueChange(a)}),onKeyDown:(0,r.mK)(e.onKeyDown,e=>{[" ","Enter"].includes(e.key)&&d.onValueChange(a)}),onFocus:(0,r.mK)(e.onFocus,()=>{let e="manual"!==d.activationMode;f||o||!e||d.onValueChange(a)})})})});R.displayName=k;var j="TabsContent",w=a.forwardRef((e,t)=>{let{__scopeTabs:n,value:r,forceMount:o,children:i,...d}=e,c=C(j,n),u=T(c.baseId,r),b=N(c.baseId,r),f=r===c.value,h=a.useRef(f);return a.useEffect(()=>{let e=requestAnimationFrame(()=>h.current=!1);return()=>cancelAnimationFrame(e)},[]),(0,p.jsx)(l.C,{present:o||f,children:n=>{let{present:a}=n;return(0,p.jsx)(s.sG.div,{"data-state":f?"active":"inactive","data-orientation":c.orientation,role:"tabpanel","aria-labelledby":u,hidden:!a,id:b,tabIndex:0,...d,ref:t,style:{...e.style,animationDuration:h.current?"0s":void 0},children:a&&i})}})});function T(e,t){return"".concat(e,"-trigger-").concat(t)}function N(e,t){return"".concat(e,"-content-").concat(t)}w.displayName=j;var I=x,_=y,E=R,D=w},98861:(e,t,n)=>{n.r(t),n.d(t,{Checkbox:()=>y,CheckboxIndicator:()=>R,Indicator:()=>R,Root:()=>y,createCheckboxScope:()=>h,unstable_BubbleInput:()=>w,unstable_CheckboxBubbleInput:()=>w,unstable_CheckboxProvider:()=>C,unstable_CheckboxTrigger:()=>g,unstable_Provider:()=>C,unstable_Trigger:()=>g});var a=n(1856),r=n(34124),o=n(21032),i=n(33328),l=n(66249),s=n(72009),d=n(3705),c=n(19900),u=n(93367),p=n(90508),b="Checkbox",[f,h]=(0,o.A)(b),[v,m]=f(b);function C(e){let{__scopeCheckbox:t,checked:n,children:r,defaultChecked:o,disabled:i,form:s,name:d,onCheckedChange:c,required:u,value:f="on",internal_do_not_use_render:h}=e,[m,C]=(0,l.i)({prop:n,defaultProp:null!=o&&o,onChange:c,caller:b}),[x,g]=a.useState(null),[y,k]=a.useState(null),R=a.useRef(!1),j=!x||!!s||!!x.closest("form"),w={checked:m,disabled:i,setChecked:C,control:x,setControl:g,name:d,form:s,value:f,hasConsumerStoppedPropagationRef:R,required:u,defaultChecked:!T(o)&&o,isFormControl:j,bubbleInput:y,setBubbleInput:k};return(0,p.jsx)(v,{scope:t,...w,children:"function"==typeof h?h(w):r})}var x="CheckboxTrigger",g=a.forwardRef((e,t)=>{let{__scopeCheckbox:n,onKeyDown:o,onClick:l,...s}=e,{control:d,value:c,disabled:b,checked:f,required:h,setControl:v,setChecked:C,hasConsumerStoppedPropagationRef:g,isFormControl:y,bubbleInput:k}=m(x,n),R=(0,r.s)(t,v),j=a.useRef(f);return a.useEffect(()=>{let e=null==d?void 0:d.form;if(e){let t=()=>C(j.current);return e.addEventListener("reset",t),()=>e.removeEventListener("reset",t)}},[d,C]),(0,p.jsx)(u.sG.button,{type:"button",role:"checkbox","aria-checked":T(f)?"mixed":f,"aria-required":h,"data-state":N(f),"data-disabled":b?"":void 0,disabled:b,value:c,...s,ref:R,onKeyDown:(0,i.mK)(o,e=>{"Enter"===e.key&&e.preventDefault()}),onClick:(0,i.mK)(l,e=>{C(e=>!!T(e)||!e),k&&y&&(g.current=e.isPropagationStopped(),g.current||e.stopPropagation())})})});g.displayName=x;var y=a.forwardRef((e,t)=>{let{__scopeCheckbox:n,name:a,checked:r,defaultChecked:o,required:i,disabled:l,value:s,onCheckedChange:d,form:c,...u}=e;return(0,p.jsx)(C,{__scopeCheckbox:n,checked:r,defaultChecked:o,disabled:l,required:i,onCheckedChange:d,name:a,form:c,value:s,internal_do_not_use_render:e=>{let{isFormControl:a}=e;return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(g,{...u,ref:t,__scopeCheckbox:n}),a&&(0,p.jsx)(w,{__scopeCheckbox:n})]})}})});y.displayName=b;var k="CheckboxIndicator",R=a.forwardRef((e,t)=>{let{__scopeCheckbox:n,forceMount:a,...r}=e,o=m(k,n);return(0,p.jsx)(c.C,{present:a||T(o.checked)||!0===o.checked,children:(0,p.jsx)(u.sG.span,{"data-state":N(o.checked),"data-disabled":o.disabled?"":void 0,...r,ref:t,style:{pointerEvents:"none",...e.style}})})});R.displayName=k;var j="CheckboxBubbleInput",w=a.forwardRef((e,t)=>{let{__scopeCheckbox:n,...o}=e,{control:i,hasConsumerStoppedPropagationRef:l,checked:c,defaultChecked:b,required:f,disabled:h,name:v,value:C,form:x,bubbleInput:g,setBubbleInput:y}=m(j,n),k=(0,r.s)(t,y),R=(0,s.Z)(c),w=(0,d.X)(i);a.useEffect(()=>{if(!g)return;let e=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set,t=!l.current;if(R!==c&&e){let n=new Event("click",{bubbles:t});g.indeterminate=T(c),e.call(g,!T(c)&&c),g.dispatchEvent(n)}},[g,R,c,l]);let N=a.useRef(!T(c)&&c);return(0,p.jsx)(u.sG.input,{type:"checkbox","aria-hidden":!0,defaultChecked:null!=b?b:N.current,required:f,disabled:h,name:v,value:C,form:x,...o,tabIndex:-1,ref:k,style:{...o.style,...w,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});function T(e){return"indeterminate"===e}function N(e){return T(e)?"indeterminate":e?"checked":"unchecked"}w.displayName=j}}]);
|