@chorus-aidlc/chorus 0.15.1 → 0.16.2
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 +394 -393
- package/.next/standalone/.next/app-path-routes-manifest.json +46 -46
- package/.next/standalone/.next/build-manifest.json +5 -5
- package/.next/standalone/.next/prerender-manifest.json +21 -21
- 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 +2 -2
- 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]/graph/page.js +2 -2
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/graph/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/graph/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 +2 -2
- 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 +1 -1
- 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 +2 -2
- 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 +2 -2
- package/.next/standalone/.next/server/app/_not-found.rsc +2 -2
- 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 +2 -2
- package/.next/standalone/.next/server/app/admin/companies/new.rsc +2 -2
- package/.next/standalone/.next/server/app/admin/companies/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/admin/companies.html +2 -2
- package/.next/standalone/.next/server/app/admin/companies.rsc +2 -2
- package/.next/standalone/.next/server/app/admin/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/admin.html +2 -2
- package/.next/standalone/.next/server/app/admin.rsc +2 -2
- 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_client-reference-manifest.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_client-reference-manifest.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_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_client-reference-manifest.js +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_client-reference-manifest.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_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_client-reference-manifest.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_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/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/connection-heartbeat/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/daemon/connection-heartbeat/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_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon/directory-request/report/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/daemon/directory-request/report/route_client-reference-manifest.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.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-directory-requests/[uuid]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/daemon-directory-requests/[uuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon-directory-requests/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/daemon-directory-requests/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 -1
- package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/repoint/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/repoint/route_client-reference-manifest.js +1 -1
- 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_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/ideas/[uuid]/wake-preview/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/wake-preview/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/conversational/route.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/conversational/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/ideas/conversational/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/mcp/route.js +2 -2
- 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_client-reference-manifest.js +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_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/project-visits/pin/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/project-visits/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/project-visits/visit/route_client-reference-manifest.js +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]/agent-cwds/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/agent-cwds/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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/resource-graph/route.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/resource-graph/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/resource-graph/route_client-reference-manifest.js +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_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/agent-cwd-options/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/projects/agent-cwd-options/route_client-reference-manifest.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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/references/[uuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/references/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/search/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/session/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 +2 -2
- package/.next/standalone/.next/server/app/index.rsc +2 -2
- package/.next/standalone/.next/server/app/login/admin/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/login/admin.html +2 -2
- package/.next/standalone/.next/server/app/login/admin.rsc +2 -2
- package/.next/standalone/.next/server/app/login/callback/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/login/callback.html +2 -2
- package/.next/standalone/.next/server/app/login/callback.rsc +2 -2
- package/.next/standalone/.next/server/app/login/page_client-reference-manifest.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 +2 -2
- package/.next/standalone/.next/server/app/login/pick-workspace.rsc +2 -2
- package/.next/standalone/.next/server/app/login.html +2 -2
- package/.next/standalone/.next/server/app/login.rsc +2 -2
- package/.next/standalone/.next/server/app/onboarding/page.js +2 -2
- 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 +2 -2
- package/.next/standalone/.next/server/app/onboarding.rsc +3 -3
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/projects.html +2 -2
- package/.next/standalone/.next/server/app/projects.rsc +3 -3
- package/.next/standalone/.next/server/app/settings.html +2 -2
- package/.next/standalone/.next/server/app/settings.rsc +4 -4
- package/.next/standalone/.next/server/app-paths-manifest.json +46 -46
- package/.next/standalone/.next/server/chunks/1318.js +1 -1
- package/.next/standalone/.next/server/chunks/1559.js +2 -2
- package/.next/standalone/.next/server/chunks/2570.js +2 -2
- package/.next/standalone/.next/server/chunks/2572.js +1 -1
- package/.next/standalone/.next/server/chunks/2618.js +1 -1
- package/.next/standalone/.next/server/chunks/2961.js +1 -1
- package/.next/standalone/.next/server/chunks/3594.js +1 -0
- package/.next/standalone/.next/server/chunks/{2547.js → 4011.js} +3 -3
- package/.next/standalone/.next/server/chunks/4394.js +1 -0
- package/.next/standalone/.next/server/chunks/4827.js +1 -1
- package/.next/standalone/.next/server/chunks/5205.js +1 -0
- package/.next/standalone/.next/server/chunks/5245.js +1 -1
- package/.next/standalone/.next/server/chunks/{2282.js → 5351.js} +3 -3
- 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/6506.js +3 -3
- package/.next/standalone/.next/server/chunks/6667.js +1 -0
- package/.next/standalone/.next/server/chunks/679.js +1 -1
- package/.next/standalone/.next/server/chunks/6995.js +1 -0
- package/.next/standalone/.next/server/chunks/7364.js +1 -1
- package/.next/standalone/.next/server/chunks/7368.js +1 -1
- package/.next/standalone/.next/server/chunks/7530.js +1 -1
- package/.next/standalone/.next/server/chunks/920.js +1 -1
- package/.next/standalone/.next/server/chunks/9213.js +1 -1
- package/.next/standalone/.next/server/chunks/9378.js +1 -1
- package/.next/standalone/.next/server/chunks/9793.js +1 -0
- package/.next/standalone/.next/server/middleware-build-manifest.js +1 -1
- package/.next/standalone/.next/server/middleware-manifest.json +5 -5
- package/.next/standalone/.next/server/pages/404.html +2 -2
- 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/static/chunks/11595.b6f8ad33572b32fe.js +1 -0
- package/.next/standalone/.next/static/chunks/19887-9f459ee9e8d0855f.js +1 -0
- package/.next/standalone/.next/static/chunks/29108-b9b232255811ffa8.js +1 -0
- package/.next/standalone/.next/static/chunks/{31308-bb4a97b3f39c22dd.js → 31308-fda6febfb2882a28.js} +1 -1
- package/.next/standalone/.next/static/chunks/33456.e8550ad410031e29.js +1 -0
- package/.next/standalone/.next/static/chunks/35432-ee83da56c49ef6f8.js +1 -0
- package/.next/standalone/.next/static/chunks/4860.b405fc235b36271b.js +1 -0
- package/.next/standalone/.next/static/chunks/53073-5fd399cb25a11740.js +1 -0
- package/.next/standalone/.next/static/chunks/6603-07faab08560f7ecd.js +1 -0
- package/.next/standalone/.next/static/chunks/66980-652990fcf3212c94.js +10 -0
- package/.next/standalone/.next/static/chunks/78155-db70d9684a1e77a2.js +1 -0
- package/.next/standalone/.next/static/chunks/78917-7354d3b6908da7d1.js +1 -0
- package/.next/standalone/.next/static/chunks/82751-de255af4418d53e4.js +1 -0
- package/.next/standalone/.next/static/chunks/94643-6d31df78aa3074b5.js +1 -0
- package/.next/standalone/.next/static/chunks/96170-75da13decdb6f73f.js +1 -0
- package/.next/standalone/.next/static/chunks/99366-425e9ef22e60e3e2.js +1 -0
- package/.next/standalone/.next/static/chunks/99373.9dce8f30802824fc.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/layout-cea0bb3e3a295bea.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/page-007278623926490f.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page-b6ecaf52f6b81ec7.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/{page-2c9d3f4c6e0ff807.js → page-82404154708e48a9.js} +1 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/graph/page-f5a351c544ed23d7.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page-3cd46bec9383b191.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/new/page-d5b222f379b2e8ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/{page-ed9415921188b4d3.js → page-6abc7d1785e2b999.js} +1 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/{page-c70af8cac7bdc483.js → page-7f87113e5d8bcf6e.js} +1 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/{page-715b000c156a080c.js → page-30ab1573c4bd466f.js} +1 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/settings/page-b21d4184d9ca0b25.js +1 -0
- package/.next/standalone/.next/static/chunks/app/onboarding/page-3b6c54f887108635.js +1 -0
- package/.next/standalone/.next/static/chunks/{webpack-e181cbbb1e041891.js → webpack-b54e0c78eded76be.js} +1 -1
- package/.next/standalone/.next/static/css/893d99a21153c9b0.css +1 -0
- package/.next/standalone/package.json +1 -1
- package/.next/standalone/public/chorus-plugin/.claude-plugin/plugin.json +1 -1
- package/.next/standalone/public/chorus-plugin/agents/code-reviewer.md +1 -1
- package/.next/standalone/public/chorus-plugin/agents/proposal-reviewer.md +1 -0
- package/.next/standalone/public/chorus-plugin/agents/task-reviewer.md +2 -0
- package/.next/standalone/public/chorus-plugin/skills/brainstorm/SKILL.md +1 -1
- package/.next/standalone/public/chorus-plugin/skills/chorus/SKILL.md +4 -3
- package/.next/standalone/public/chorus-plugin/skills/develop/SKILL.md +1 -1
- package/.next/standalone/public/chorus-plugin/skills/docs/SKILL.md +68 -0
- package/.next/standalone/public/chorus-plugin/skills/idea/SKILL.md +1 -1
- package/.next/standalone/public/chorus-plugin/skills/openspec-aware/SKILL.md +1 -1
- package/.next/standalone/public/chorus-plugin/skills/proposal/SKILL.md +1 -1
- package/.next/standalone/public/chorus-plugin/skills/quick-dev/SKILL.md +1 -1
- package/.next/standalone/public/chorus-plugin/skills/review/SKILL.md +1 -1
- package/.next/standalone/public/chorus-plugin/skills/yolo/SKILL.md +1 -1
- package/.next/standalone/public/install-kiro.sh +10 -7
- package/.next/standalone/public/kiro-plugin/.kiro/agents/chorus-code-reviewer.json +1 -1
- package/.next/standalone/public/kiro-plugin/.kiro/agents/chorus-proposal-reviewer.json +1 -1
- package/.next/standalone/public/kiro-plugin/.kiro/agents/chorus-task-reviewer.json +1 -1
- package/.next/standalone/public/kiro-plugin/.kiro/agents/chorus.json +1 -0
- package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-brainstorm/SKILL.md +1 -1
- package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-develop/SKILL.md +1 -1
- package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-docs/SKILL.md +68 -0
- package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-idea/SKILL.md +1 -1
- package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-openspec-aware/SKILL.md +1 -1
- package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-proposal/SKILL.md +1 -1
- package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-quick-dev/SKILL.md +1 -1
- package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-review/SKILL.md +1 -1
- package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-yolo/SKILL.md +1 -1
- package/.next/standalone/public/kiro-plugin/.kiro/steering/chorus.md +3 -2
- package/.next/standalone/public/kiro-plugin/bin/chorus-api.sh +1 -1
- package/.next/standalone/public/skill/brainstorm-chorus/SKILL.md +1 -1
- package/.next/standalone/public/skill/chorus/SKILL.md +4 -3
- package/.next/standalone/public/skill/code-reviewer-chorus/SKILL.md +2 -2
- package/.next/standalone/public/skill/develop-chorus/SKILL.md +1 -1
- package/.next/standalone/public/skill/docs-chorus/SKILL.md +70 -0
- package/.next/standalone/public/skill/idea-chorus/SKILL.md +1 -1
- package/.next/standalone/public/skill/package.json +9 -5
- package/.next/standalone/public/skill/proposal-chorus/SKILL.md +1 -1
- package/.next/standalone/public/skill/proposal-reviewer-chorus/SKILL.md +2 -1
- package/.next/standalone/public/skill/quick-dev-chorus/SKILL.md +1 -1
- package/.next/standalone/public/skill/review-chorus/SKILL.md +1 -1
- package/.next/standalone/public/skill/task-reviewer-chorus/SKILL.md +2 -1
- package/.next/standalone/public/skill/yolo-chorus/SKILL.md +1 -1
- package/README.ja.md +31 -359
- package/README.ko.md +33 -360
- package/README.md +39 -367
- package/README.zh.md +36 -341
- package/cli/claude-spawner.mjs +15 -6
- package/cli/client-args.mjs +8 -0
- package/cli/codex-spawner.mjs +7 -3
- package/cli/control-handler.mjs +13 -3
- package/cli/credentials.mjs +41 -0
- package/cli/daemon-config.mjs +202 -1
- package/cli/daemon-install-config.mjs +38 -1
- package/cli/daemon-rest-client.mjs +11 -3
- package/cli/daemon.mjs +274 -11
- package/cli/event-router.mjs +17 -5
- package/cli/login.mjs +90 -2
- package/cli/prompts.mjs +116 -1
- package/cli/turn-reporter.mjs +5 -1
- package/cli/wake-queue.mjs +57 -35
- package/cli/waker.mjs +125 -36
- package/package.json +1 -1
- package/prisma/migrations/20260814101500_add_typed_assignment_provenance/migration.sql +2 -0
- package/prisma/schema.prisma +4 -2
- package/.next/standalone/.next/server/chunks/1114.js +0 -1
- package/.next/standalone/.next/server/chunks/1524.js +0 -1
- package/.next/standalone/.next/server/chunks/330.js +0 -1
- package/.next/standalone/.next/server/chunks/3525.js +0 -1
- package/.next/standalone/.next/server/chunks/4070.js +0 -1
- package/.next/standalone/.next/server/chunks/8540.js +0 -1
- package/.next/standalone/.next/static/chunks/11595.69e774e65ffda45f.js +0 -1
- package/.next/standalone/.next/static/chunks/18351-12dc856208d79e10.js +0 -1
- package/.next/standalone/.next/static/chunks/33456.48112aa459fd9c68.js +0 -1
- package/.next/standalone/.next/static/chunks/37938-0b9a2b891c04b166.js +0 -1
- package/.next/standalone/.next/static/chunks/4340-a33120fb742af57e.js +0 -1
- package/.next/standalone/.next/static/chunks/4860.496d21fc6db9e153.js +0 -1
- package/.next/standalone/.next/static/chunks/68326-61feeb2f6cddd338.js +0 -1
- package/.next/standalone/.next/static/chunks/72974-7e63b565a9ef443b.js +0 -1
- package/.next/standalone/.next/static/chunks/78917-f91904c6c2d12dab.js +0 -1
- package/.next/standalone/.next/static/chunks/80748-e971c5a5d6ef967d.js +0 -1
- package/.next/standalone/.next/static/chunks/80904-973284d1fe916c38.js +0 -1
- package/.next/standalone/.next/static/chunks/94426-39b6da238425f9b7.js +0 -10
- package/.next/standalone/.next/static/chunks/94470-cae3b3ad4e51d2ff.js +0 -1
- package/.next/standalone/.next/static/chunks/94643-ba1ebff5769d2b50.js +0 -1
- package/.next/standalone/.next/static/chunks/99373.5ac319a55a8f99a1.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/layout-177a3fa88be94b4a.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/page-ae7c9d32fa1c2532.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page-4a8ac49308a4e23b.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/graph/page-03408be00dc4822b.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page-dd5a0d1e50226c78.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/new/page-596d97796dd55e2f.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/settings/page-e786a59c24eb5bda.js +0 -1
- package/.next/standalone/.next/static/chunks/app/onboarding/page-df7c97cefb508201.js +0 -1
- package/.next/standalone/.next/static/css/ef995b001437e3ef.css +0 -1
- /package/.next/standalone/.next/static/{8kqUZqMF8xgdDXm_I4XdF → YTZwWTfE0BsJnjCDYCEHi}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{8kqUZqMF8xgdDXm_I4XdF → YTZwWTfE0BsJnjCDYCEHi}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";exports.id=4394,exports.ids=[4394],exports.modules={2852:(a,b,c)=>{c.d(b,{J:()=>g});var d=c(10837);c(21968);var e=c(13277),f=c(96307);function g({className:a,...b}){return(0,d.jsx)(e.Root,{"data-slot":"label",className:(0,f.cn)("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",a),...b})}},13277:(a,b,c)=>{c.r(b),c.d(b,{Label:()=>g,Root:()=>h});var d=c(21968),e=c(16551),f=c(10837),g=d.forwardRef((a,b)=>(0,f.jsx)(e.sG.label,{...a,ref:b,onMouseDown:b=>{b.target.closest("button, input, select, textarea")||(a.onMouseDown?.(b),!b.defaultPrevented&&b.detail>1&&b.preventDefault())}}));g.displayName="Label";var h=g},22776:(a,b,c)=>{c.d(b,{O:()=>m});var d=c(10837),e=c(21968),f=c(9222),g=c(86460),h=c(80697);let i=(0,c(56556).A)("folder-cog",[["path",{d:"M10.3 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.98a2 2 0 0 1 1.69.9l.66 1.2A2 2 0 0 0 12 6h8a2 2 0 0 1 2 2v3.3",key:"128dxu"}],["path",{d:"m14.305 19.53.923-.382",key:"3m78fa"}],["path",{d:"m15.228 16.852-.923-.383",key:"npixar"}],["path",{d:"m16.852 15.228-.383-.923",key:"5xggr7"}],["path",{d:"m16.852 20.772-.383.924",key:"dpfhf9"}],["path",{d:"m19.148 15.228.383-.923",key:"1reyyz"}],["path",{d:"m19.53 21.696-.382-.924",key:"1goivc"}],["path",{d:"m20.772 16.852.924-.383",key:"htqkph"}],["path",{d:"m20.772 19.148.924.383",key:"9w9pjp"}],["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}]]);var j=c(79543),k=c(42424),l=c(59469);let m=(0,e.forwardRef)(function({projectUuid:a,agentError:b},c){let m=(0,f.c)(),[n,o]=(0,e.useState)([]),[p,q]=(0,e.useState)({}),[r,s]=(0,e.useState)(new Set),[t,u]=(0,e.useState)(!0),[v,w]=(0,e.useState)(null),[x,y]=(0,e.useState)(!1),[z,A]=(0,e.useState)({}),B=(0,e.useCallback)(async()=>{u(!0),y(!1);try{let b=await fetch(a?`/api/projects/${encodeURIComponent(a)}/agent-cwds`:"/api/projects/agent-cwd-options"),c=await b.json();if(!b.ok||!c.success)throw Error("load failed");o(c.data.agents)}catch{y(!0)}finally{u(!1)}},[a]);(0,e.useEffect)(()=>{B()},[B]);let C=(a,b)=>{q(a),s(b)};return(0,e.useImperativeHandle)(c,()=>({validate:async()=>{let a=[];for(let b of Object.values(p))try{let c=await (0,l.q)(b);a.push(c),q(a=>({...a,[b.agentUuid]:c}))}catch(c){let a=c instanceof Error?c.message:"INTERNAL_ERROR";return A(c=>({...c,[b.agentUuid]:m(`directoryBrowser.errors.${a}`)})),w(b.agentUuid),null}return{upserts:a,clears:[...r]}}}),[r,p,m]),(0,d.jsxs)("div",{className:"flex min-w-0 flex-col gap-4",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("h3",{className:"text-[14px] font-semibold text-foreground",children:m("projectSettings.agentCwds.title")}),(0,d.jsx)("p",{className:"mt-1 text-[12px] text-muted-foreground",children:m("projectSettings.agentCwds.description")})]}),t&&(0,d.jsxs)("div",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[(0,d.jsx)(g.A,{className:"size-4 animate-spin"}),m("projectSettings.agentCwds.loading")]}),x&&(0,d.jsxs)("div",{className:"flex items-center justify-between gap-3",role:"alert",children:[(0,d.jsx)("span",{className:"text-xs text-destructive",children:m("projectSettings.agentCwds.loadFailed")}),(0,d.jsxs)(k.$,{type:"button",size:"sm",variant:"outline",onClick:()=>void B(),children:[(0,d.jsx)(h.A,{className:"mr-2 size-3.5"}),m("common.retry")]})]}),!t&&!x&&0===n.length&&(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:m("projectSettings.agentCwds.emptyOnline")}),n.map(c=>{let e=p[c.agent.uuid],f=r.has(c.agent.uuid)?null:e?{host:e.host,cwd:e.cwd,status:"valid"}:c.preference;return(0,d.jsxs)("div",{className:"min-w-0 rounded-lg border border-border p-4",children:[(0,d.jsxs)("div",{className:"flex min-w-0 items-start justify-between gap-3",children:[(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsx)("p",{className:"truncate text-[13px] font-semibold",children:c.agent.name}),f?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("p",{className:"mt-1 break-all font-mono text-[11px]",children:f.cwd}),(0,d.jsx)("p",{className:"mt-1 truncate text-[11px] text-muted-foreground",children:f.host}),(0,d.jsx)("p",{className:"valid"===f.status?"mt-1 text-[11px] text-emerald-700 dark:text-emerald-400":"mt-1 text-[11px] text-destructive",children:m(`projectSettings.agentCwds.status.${f.status}`)})]}):(0,d.jsx)("p",{className:"mt-1 text-[11px] text-muted-foreground",children:m("projectSettings.agentCwds.notConfigured")})]}),(0,d.jsxs)("div",{className:"flex shrink-0 gap-1",children:[(0,d.jsx)(k.$,{type:"button",size:"icon",variant:"ghost",title:m(f?"projectSettings.agentCwds.replace":"projectSettings.agentCwds.configure"),"aria-label":m(f?"projectSettings.agentCwds.replace":"projectSettings.agentCwds.configure"),onClick:()=>w(v===c.agent.uuid?null:c.agent.uuid),children:(0,d.jsx)(i,{className:"size-4"})}),f&&(0,d.jsx)(k.$,{type:"button",size:"icon",variant:"ghost",className:"text-destructive",title:m("projectSettings.agentCwds.clear"),"aria-label":m("projectSettings.agentCwds.clear"),onClick:()=>(b=>{let c={...p};delete c[b];let d=new Set(r);a&&d.add(b),C(c,d)})(c.agent.uuid),children:(0,d.jsx)(j.A,{className:"size-4"})})]})]}),v===c.agent.uuid&&(0,d.jsxs)("div",{className:"mt-4 border-t border-border pt-4",children:[(0,d.jsx)(l.e,{agentUuid:c.agent.uuid,instances:c.onlineInstances,showConfirm:!1,onValidated:()=>void 0,onSelectionChange:a=>((a,b)=>{if(!a)return;let c=new Set(r);c.delete(b),C({...p,[b]:a},c),A(a=>{let c={...a};return delete c[b],c})})(a,c.agent.uuid)}),(z[c.agent.uuid]||b?.agentUuid===c.agent.uuid)&&(0,d.jsx)("p",{className:"mt-2 text-xs text-destructive",role:"alert",children:z[c.agent.uuid]||b?.message})]}),v!==c.agent.uuid&&b?.agentUuid===c.agent.uuid&&(0,d.jsx)("p",{className:"mt-2 text-xs text-destructive",role:"alert",children:b.message})]},c.agent.uuid)})]})})},24916:(a,b,c)=>{c.d(b,{C:()=>t});var d=c(10837),e=c(21968),f=c(68884),g=c(9222),h=c(78323),i=c(31009),j=c(9810),k=c(86460),l=c(92900),m=c(11568),n=c(42424),o=c(9994),p=c(2852),q=c(20170),r=c(42087),s=c(22776);function t({open:a,onOpenChange:b,groupUuid:c,groupName:t,onCreated:u}){let v=(0,g.c)(),w=(0,f.r)(),[x,y]=(0,e.useTransition)(),[z,A]=(0,e.useState)(""),[B,C]=(0,e.useState)(""),[D,E]=(0,e.useState)(null),[F,G]=(0,e.useState)(null),[H,I]=(0,e.useState)(!1),J=(0,e.useRef)(null),K=t||v("projectGroups.ungrouped"),L=async()=>{if(!z.trim())return;E(null),G(null);let a=await J.current?.validate();a&&y(async()=>{try{let d=await fetch("/api/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:z.trim(),description:B.trim()||void 0,groupUuid:c||void 0,agentCwds:a.upserts.map(({agentUuid:a,validationRequestUuid:b})=>({agentUuid:a,validationRequestUuid:b}))})}),e=await d.json();if(e.success)I(!0),setTimeout(()=>{A(""),C(""),b(!1),u?.(),w.refresh(),I(!1)},600);else{let a="object"==typeof e.error&&e.error?e.error.message:e.error,b="object"==typeof e.error&&e.error&&"string"==typeof e.error.details?.agentUuid?e.error.details.agentUuid:null;b?G({agentUuid:b,message:a||v("projects.createFailed")}):E(a||v("projects.createFailed"))}}catch{E(v("common.genericError"))}})};return(0,d.jsx)(m.lG,{open:a,onOpenChange:b,children:(0,d.jsxs)(m.Cf,{className:"flex max-h-[90svh] flex-col gap-0 overflow-hidden rounded-[16px] p-0 sm:max-w-[620px]",showCloseButton:!1,children:[(0,d.jsx)(m.c7,{className:"flex flex-row items-center justify-between p-[20px_24px] border-b border-[#E5E2DC] dark:border-[#2a2a2e]",children:(0,d.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,d.jsx)(m.L3,{className:"text-lg font-semibold tracking-[-0.3px] text-foreground",children:v("projectGroups.newProjectTitle")}),(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:v("projectGroups.creatingIn",{groupName:K})})]})}),(0,d.jsx)(m.rr,{className:"sr-only",children:v("projectGroups.newProjectTitle")}),(0,d.jsxs)("div",{className:"flex min-h-0 flex-col gap-5 overflow-y-auto p-6",children:[D&&(0,d.jsx)("div",{className:"rounded-lg bg-destructive/10 p-3 text-sm text-destructive",children:D}),(0,d.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,d.jsx)(p.J,{className:"text-[13px] font-medium text-foreground",children:v("projectGroups.projectTitle")}),(0,d.jsx)(o.p,{value:z,onChange:a=>A(a.target.value),placeholder:v("projectGroups.projectTitlePlaceholder"),className:"h-10 rounded-lg border-[#E5E2DC] dark:border-[#2a2a2e]",onKeyDown:a=>{!(0,r.P)(a)&&"Enter"===a.key&&z.trim()&&L()}})]}),(0,d.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,d.jsx)(p.J,{className:"text-[13px] font-medium text-foreground",children:v("common.description")}),(0,d.jsx)(q.T,{value:B,onChange:a=>C(a.target.value),placeholder:v("projectGroups.projectDescriptionPlaceholder"),className:"min-h-[80px] rounded-lg border-[#E5E2DC] dark:border-[#2a2a2e]"})]}),(0,d.jsx)("div",{className:"border-t border-border pt-5",children:(0,d.jsx)(s.O,{ref:J,agentError:F})})]}),(0,d.jsxs)("div",{className:"flex justify-end gap-3 p-[16px_24px] border-t border-[#E5E2DC] dark:border-[#2a2a2e]",children:[(0,d.jsx)(n.$,{variant:"outline",onClick:()=>b(!1),className:"rounded-lg border-[#E5E2DC] dark:border-[#2a2a2e] text-[13px]",children:v("common.cancel")}),(0,d.jsx)(n.$,{onClick:L,disabled:x||H||!z.trim(),className:"rounded-lg bg-primary hover:bg-[#B56A42] text-white text-[13px] gap-1.5",children:(0,d.jsx)(h.N,{mode:"wait",children:H?(0,d.jsx)(i.P.span,{initial:{opacity:0,scale:.5},animate:{opacity:1,scale:1},exit:{opacity:0},transition:{duration:.15},className:"flex items-center gap-2",children:(0,d.jsx)(j.A,{className:"h-3.5 w-3.5"})},"success"):x?(0,d.jsxs)(i.P.span,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},className:"flex items-center gap-2",children:[(0,d.jsx)(k.A,{className:"h-3.5 w-3.5 animate-spin"}),v("common.creating")]},"loading"):(0,d.jsxs)(i.P.span,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},className:"flex items-center gap-2",children:[(0,d.jsx)(l.A,{className:"h-3.5 w-3.5"}),v("projectGroups.createProject")]},"idle")})})]})]})})}},27979:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{"40014aa5b3868791a0b037d081a4465451bf191c48":()=>e.Dv,"40b4848772541b873c1f963f81f04d9990cbd6cca8":()=>e.v5,"602178a2adf65ab0139461c8a32ef931c6b5f0b6d5":()=>e.Tg});var e=c(22299),f=a([e]);e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},79543:(a,b,c)=>{c.d(b,{A:()=>d});let d=(0,c(56556).A)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]])},92900:(a,b,c)=>{c.d(b,{A:()=>d});let d=(0,c(56556).A)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]])}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=4827,exports.ids=[4827],exports.modules={27473:(a,b,c)=>{c.d(b,{hD:()=>h,OG:()=>k,YB:()=>m,mA:()=>l,FB:()=>j});var d=c(70936),e=c(7046),f=c(65582);let g=new(c(16698)).AsyncLocalStorage;class h extends Error{constructor(a,b,c=400,d){super(b),this.code=a,this.status=c,this.details=d,this.name="ApiError"}}let i={P2002:"Unique constraint violation",P2025:"Record not found",P2003:"Foreign key constraint violation"};function j(a){return async(b,c)=>{let j=crypto.randomUUID(),k=(0,f.q)({requestId:j});return g.run({requestId:j,logger:k},async()=>{try{return await a(b,c)}catch(a){if((g.getStore()?.logger??f.default).error({err:a},"API error"),a instanceof h)return d.NextResponse.json({success:!1,error:{code:a.code,message:a.message,details:a.details}},{status:a.status});if(a&&"object"==typeof a&&"code"in a){let b=i[a.code];if(b){if("P2025"===a.code)return e.sO.notFound();if("P2002"===a.code)return e.sO.conflict(b);return e.sO.database(b)}}if(a instanceof Error)return e.sO.internal("Internal server error");return e.sO.internal()}})}}async function k(a){try{return await a.json()}catch{throw new h("BAD_REQUEST","Invalid JSON body",400)}}function l(a){let b=new URL(a.url),c={};return b.searchParams.forEach((a,b)=>{c[b]=a}),c}function m(a){let b=l(a),c=Math.max(1,parseInt(b.page||"1",10)),d=Math.min(100,Math.max(1,parseInt(b.pageSize||"20",10)));return{page:c,pageSize:d,skip:(c-1)*d,take:d}}},97515:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{BP:()=>x,IH:()=>r,Mx:()=>t,_R:()=>v,hx:()=>s,qU:()=>o,vA:()=>h,y8:()=>u});var e=c(52618),f=c(65582),g=a([e]);e=(g.then?(await g)():g)[0];let w=["claude_code","openclaw","codex","kiro"],x=9e4;function h(a){return null!==a&&"conflict"in a}function i(a,b,c=Date.now()){return"online"===a&&c-b.getTime()<=x}function j(a){let b=i(a.status,a.lastSeenAt)?"online":"offline";return{uuid:a.uuid,agentUuid:a.agentUuid,agentName:a.agent?.name??null,ownerUuid:a.agent?.ownerUuid??null,clientType:a.clientType,clientVersion:a.clientVersion,host:a.host,cwd:a.cwd,startedAt:a.startedAt?a.startedAt.toISOString():null,status:a.status,effectiveStatus:b,connectedAt:a.connectedAt.toISOString(),lastSeenAt:a.lastSeenAt.toISOString(),disconnectedAt:a.disconnectedAt?a.disconnectedAt.toISOString():null,agentInstanceUuid:a.agentInstanceUuid??null}}function k(a){let b=a?.trim();return b?b.toLocaleLowerCase("en-US"):""}function l(a){return null===a?"":a}function m(a,b){return a<b?-1:+(a>b)}function n(a){return[...a].sort((a,b)=>a.effectiveStatus!==b.effectiveStatus?"online"===a.effectiveStatus?-1:1:m(k(a.agentName),k(b.agentName))||m(a.agentUuid,b.agentUuid)||m(l(a.cwd),l(b.cwd))||m(a.host,b.host)||m(a.clientType,b.clientType)||m(a.uuid,b.uuid))}function o(a){let b=a.get("clientType")??"",c=a.get("livenessAck"),d=a.get("clientVersion"),e=a.get("host"),f=a.get("cwd"),g=null,h=a.get("startedAt");if(h){let a=new Date(h);Number.isNaN(a.getTime())||(g=a)}return{clientType:b,livenessAck:c??null,clientVersion:d??null,host:e??null,cwd:f??null,startedAt:g}}async function p(a,b,c,d){let g={companyUuid:a,agentUuid:b,host:c,cwd:d};try{if(null===d){let d=await e.z.agentInstance.findFirst({where:{companyUuid:a,agentUuid:b,host:c,cwd:null},select:{uuid:!0}});if(d)return(await e.z.agentInstance.update({where:{uuid:d.uuid},data:{updatedAt:new Date},select:{uuid:!0}})).uuid;return(await e.z.agentInstance.create({data:g,select:{uuid:!0}})).uuid}return(await e.z.agentInstance.upsert({where:{companyUuid_agentUuid_host_cwd:{companyUuid:a,agentUuid:b,host:c,cwd:d}},create:g,update:{updatedAt:new Date},select:{uuid:!0}})).uuid}catch(e){return f.default.error({err:e,companyUuid:a,agentUuid:b,host:c,cwd:d},"Failed to upsert AgentInstance; connection will register with a null instance link"),null}}async function q(a,b,c,d,f){for(let g of(await e.z.daemonConnection.findMany({where:{agentUuid:a,host:b,cwd:c},select:{status:!0,lastSeenAt:!0,startedAt:!0,clientType:!0}}))){if(!i(g.status,g.lastSeenAt,f))continue;let a=null!==d&&null!==g.startedAt&&g.startedAt.getTime()===d.getTime(),b=null===d&&null===g.startedAt;if(!a&&!b)return{incumbentStartedAt:g.startedAt,incumbentClientType:g.clientType}}return null}async function r(a,b,d){var g;if(g=d.clientType,!w.includes(g))return null;let h=d.host??"",i=d.cwd??null,j=new Date;try{if(null!==i){let c=await q(b,h,i,d.startedAt??null,j.getTime());if(c)return f.default.warn({companyUuid:a,agentUuid:b,host:h,cwd:i,incumbentStartedAt:c.incumbentStartedAt,incomingStartedAt:d.startedAt??null,incumbentClientType:c.incumbentClientType,incomingClientType:d.clientType},"Skipping daemon connection registration: a live daemon already holds this (agent, host, cwd)"),{conflict:!0,host:h,cwd:i}}let g=await p(a,b,h,i),k={companyUuid:a,agentUuid:b,clientType:d.clientType,clientVersion:d.clientVersion??null,host:h,cwd:i,startedAt:d.startedAt??null,status:"online",connectedAt:j,lastSeenAt:j,disconnectedAt:null,agentInstanceUuid:g},l={companyUuid:a,clientVersion:d.clientVersion??null,startedAt:d.startedAt??null,status:"online",connectedAt:j,lastSeenAt:j,disconnectedAt:null,agentInstanceUuid:g};if(null===i){let a=await e.z.daemonConnection.findFirst({where:{agentUuid:b,clientType:d.clientType,host:h,cwd:null},select:{uuid:!0}});if(a){let b=await e.z.daemonConnection.update({where:{uuid:a.uuid},data:l,select:{uuid:!0,connectedAt:!0}});return{uuid:b.uuid,connectedAt:b.connectedAt}}let c=await e.z.daemonConnection.create({data:k,select:{uuid:!0,connectedAt:!0}});return{uuid:c.uuid,connectedAt:c.connectedAt}}let m=await e.z.daemonConnection.findFirst({where:{agentUuid:b,clientType:d.clientType,host:h,cwd:i},select:{uuid:!0,startedAt:!0}}),n=await e.z.daemonConnection.upsert({where:{agentUuid_clientType_host_cwd:{agentUuid:b,clientType:d.clientType,host:h,cwd:i}},create:k,update:l,select:{uuid:!0,connectedAt:!0}}),o=d.startedAt??null,r=m?.startedAt instanceof Date?m.startedAt:null;return m&&null!==r&&null!==o&&r.getTime()!==o.getTime()&&Promise.all([c.e(8481),c.e(7578),c.e(1722),c.e(3419),c.e(
|
|
1
|
+
"use strict";exports.id=4827,exports.ids=[4827],exports.modules={27473:(a,b,c)=>{c.d(b,{hD:()=>h,OG:()=>k,YB:()=>m,mA:()=>l,FB:()=>j});var d=c(70936),e=c(7046),f=c(65582);let g=new(c(16698)).AsyncLocalStorage;class h extends Error{constructor(a,b,c=400,d){super(b),this.code=a,this.status=c,this.details=d,this.name="ApiError"}}let i={P2002:"Unique constraint violation",P2025:"Record not found",P2003:"Foreign key constraint violation"};function j(a){return async(b,c)=>{let j=crypto.randomUUID(),k=(0,f.q)({requestId:j});return g.run({requestId:j,logger:k},async()=>{try{return await a(b,c)}catch(a){if((g.getStore()?.logger??f.default).error({err:a},"API error"),a instanceof h)return d.NextResponse.json({success:!1,error:{code:a.code,message:a.message,details:a.details}},{status:a.status});if(a&&"object"==typeof a&&"code"in a){let b=i[a.code];if(b){if("P2025"===a.code)return e.sO.notFound();if("P2002"===a.code)return e.sO.conflict(b);return e.sO.database(b)}}if(a instanceof Error)return e.sO.internal("Internal server error");return e.sO.internal()}})}}async function k(a){try{return await a.json()}catch{throw new h("BAD_REQUEST","Invalid JSON body",400)}}function l(a){let b=new URL(a.url),c={};return b.searchParams.forEach((a,b)=>{c[b]=a}),c}function m(a){let b=l(a),c=Math.max(1,parseInt(b.page||"1",10)),d=Math.min(100,Math.max(1,parseInt(b.pageSize||"20",10)));return{page:c,pageSize:d,skip:(c-1)*d,take:d}}},97515:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{BP:()=>x,IH:()=>r,Mx:()=>t,_R:()=>v,hx:()=>s,qU:()=>o,vA:()=>h,y8:()=>u});var e=c(52618),f=c(65582),g=a([e]);e=(g.then?(await g)():g)[0];let w=["claude_code","openclaw","codex","kiro"],x=9e4;function h(a){return null!==a&&"conflict"in a}function i(a,b,c=Date.now()){return"online"===a&&c-b.getTime()<=x}function j(a){let b=i(a.status,a.lastSeenAt)?"online":"offline";return{uuid:a.uuid,agentUuid:a.agentUuid,agentName:a.agent?.name??null,ownerUuid:a.agent?.ownerUuid??null,clientType:a.clientType,clientVersion:a.clientVersion,host:a.host,cwd:a.cwd,startedAt:a.startedAt?a.startedAt.toISOString():null,status:a.status,effectiveStatus:b,connectedAt:a.connectedAt.toISOString(),lastSeenAt:a.lastSeenAt.toISOString(),disconnectedAt:a.disconnectedAt?a.disconnectedAt.toISOString():null,agentInstanceUuid:a.agentInstanceUuid??null}}function k(a){let b=a?.trim();return b?b.toLocaleLowerCase("en-US"):""}function l(a){return null===a?"":a}function m(a,b){return a<b?-1:+(a>b)}function n(a){return[...a].sort((a,b)=>a.effectiveStatus!==b.effectiveStatus?"online"===a.effectiveStatus?-1:1:m(k(a.agentName),k(b.agentName))||m(a.agentUuid,b.agentUuid)||m(l(a.cwd),l(b.cwd))||m(a.host,b.host)||m(a.clientType,b.clientType)||m(a.uuid,b.uuid))}function o(a){let b=a.get("clientType")??"",c=a.get("livenessAck"),d=a.get("clientVersion"),e=a.get("host"),f=a.get("cwd"),g=null,h=a.get("startedAt");if(h){let a=new Date(h);Number.isNaN(a.getTime())||(g=a)}return{clientType:b,livenessAck:c??null,clientVersion:d??null,host:e??null,cwd:f??null,startedAt:g}}async function p(a,b,c,d){let g={companyUuid:a,agentUuid:b,host:c,cwd:d};try{if(null===d){let d=await e.z.agentInstance.findFirst({where:{companyUuid:a,agentUuid:b,host:c,cwd:null},select:{uuid:!0}});if(d)return(await e.z.agentInstance.update({where:{uuid:d.uuid},data:{updatedAt:new Date},select:{uuid:!0}})).uuid;return(await e.z.agentInstance.create({data:g,select:{uuid:!0}})).uuid}return(await e.z.agentInstance.upsert({where:{companyUuid_agentUuid_host_cwd:{companyUuid:a,agentUuid:b,host:c,cwd:d}},create:g,update:{updatedAt:new Date},select:{uuid:!0}})).uuid}catch(e){return f.default.error({err:e,companyUuid:a,agentUuid:b,host:c,cwd:d},"Failed to upsert AgentInstance; connection will register with a null instance link"),null}}async function q(a,b,c,d,f){for(let g of(await e.z.daemonConnection.findMany({where:{agentUuid:a,host:b,cwd:c},select:{status:!0,lastSeenAt:!0,startedAt:!0,clientType:!0}}))){if(!i(g.status,g.lastSeenAt,f))continue;let a=null!==d&&null!==g.startedAt&&g.startedAt.getTime()===d.getTime(),b=null===d&&null===g.startedAt;if(!a&&!b)return{incumbentStartedAt:g.startedAt,incumbentClientType:g.clientType}}return null}async function r(a,b,d){var g;if(g=d.clientType,!w.includes(g))return null;let h=d.host??"",i=d.cwd??null,j=new Date;try{if(null!==i){let c=await q(b,h,i,d.startedAt??null,j.getTime());if(c)return f.default.warn({companyUuid:a,agentUuid:b,host:h,cwd:i,incumbentStartedAt:c.incumbentStartedAt,incomingStartedAt:d.startedAt??null,incumbentClientType:c.incumbentClientType,incomingClientType:d.clientType},"Skipping daemon connection registration: a live daemon already holds this (agent, host, cwd)"),{conflict:!0,host:h,cwd:i}}let g=await p(a,b,h,i),k={companyUuid:a,agentUuid:b,clientType:d.clientType,clientVersion:d.clientVersion??null,host:h,cwd:i,startedAt:d.startedAt??null,status:"online",connectedAt:j,lastSeenAt:j,disconnectedAt:null,agentInstanceUuid:g},l={companyUuid:a,clientVersion:d.clientVersion??null,startedAt:d.startedAt??null,status:"online",connectedAt:j,lastSeenAt:j,disconnectedAt:null,agentInstanceUuid:g};if(null===i){let a=await e.z.daemonConnection.findFirst({where:{agentUuid:b,clientType:d.clientType,host:h,cwd:null},select:{uuid:!0}});if(a){let b=await e.z.daemonConnection.update({where:{uuid:a.uuid},data:l,select:{uuid:!0,connectedAt:!0}});return{uuid:b.uuid,connectedAt:b.connectedAt}}let c=await e.z.daemonConnection.create({data:k,select:{uuid:!0,connectedAt:!0}});return{uuid:c.uuid,connectedAt:c.connectedAt}}let m=await e.z.daemonConnection.findFirst({where:{agentUuid:b,clientType:d.clientType,host:h,cwd:i},select:{uuid:!0,startedAt:!0}}),n=await e.z.daemonConnection.upsert({where:{agentUuid_clientType_host_cwd:{agentUuid:b,clientType:d.clientType,host:h,cwd:i}},create:k,update:l,select:{uuid:!0,connectedAt:!0}}),o=d.startedAt??null,r=m?.startedAt instanceof Date?m.startedAt:null;return m&&null!==r&&null!==o&&r.getTime()!==o.getTime()&&Promise.all([c.e(8481),c.e(7578),c.e(1722),c.e(3419),c.e(5205)]).then(c.bind(c,34853)).then(({reconcileOrphanTurns:b})=>b(a,n.uuid,{force:!0})).catch(b=>{f.default.error({err:b,companyUuid:a,connectionUuid:n.uuid},"New-generation orphan-turn reconcile failed to dispatch")}),{uuid:n.uuid,connectedAt:n.connectedAt}}catch(c){return f.default.error({err:c,companyUuid:a,agentUuid:b,clientType:d.clientType},"Failed to register daemon connection"),null}}async function s(a,b){try{await e.z.daemonConnection.updateMany({where:{uuid:b.uuid,companyUuid:a,connectedAt:b.connectedAt},data:{status:"offline",disconnectedAt:new Date}})}catch(c){f.default.error({err:c,companyUuid:a,connectionUuid:b.uuid},"Failed to mark daemon connection disconnected")}}async function t(a,b,c){try{return(await e.z.daemonConnection.updateMany({where:{uuid:b.uuid,companyUuid:a,connectedAt:b.connectedAt,...c?{agentUuid:c}:{}},data:{status:"online",lastSeenAt:new Date}})).count>0}catch(c){return f.default.error({err:c,companyUuid:a,connectionUuid:b.uuid},"Failed to touch daemon connection"),!1}}async function u(a,b){let c=await e.z.daemonConnection.findMany({where:{companyUuid:a,agent:{ownerUuid:b}},include:{agent:{select:{name:!0,ownerUuid:!0}}}});return n(c.map(j))}async function v(a,b){let c=await e.z.daemonConnection.findMany({where:{companyUuid:a,agentUuid:b},include:{agent:{select:{name:!0,ownerUuid:!0}}}});return n(c.map(j))}d()}catch(a){d(a)}})}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";exports.id=5205,exports.ids=[5205],exports.modules={8777:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Cs:()=>o,Nn:()=>s,YE:()=>n,lC:()=>l,lU:()=>r,ui:()=>p,yZ:()=>m});var e=c(52618),f=c(76872),g=c(42558),h=c(88437),i=c(65582),j=a([e,f,h]);[e,f,h]=j.then?(await j)():j;let t=i.default.child({module:"document.service"});async function k(a,b=!1){let c=await (0,f.LS)(a.createdByUuid),d={uuid:a.uuid,type:a.type,title:a.title,version:a.version,proposalUuid:a.proposalUuid,createdBy:c,createdAt:a.createdAt.toISOString(),updatedAt:a.updatedAt.toISOString()};return b&&void 0!==a.content&&(d.content=a.content),a.project&&(d.project=a.project),d}async function l({companyUuid:a,projectUuid:b,skip:c,take:d,type:f}){let g={projectUuid:b,companyUuid:a,...f&&{type:f}},[h,i]=await Promise.all([e.z.document.findMany({where:g,skip:c,take:d,orderBy:{updatedAt:"desc"},select:{uuid:!0,type:!0,title:!0,version:!0,proposalUuid:!0,createdByUuid:!0,createdAt:!0,updatedAt:!0}}),e.z.document.count({where:g})]);return{documents:await Promise.all(h.map(a=>k(a))),total:i}}async function m(a,b,c){if(0===b.length)return[];let d={companyUuid:a,proposalUuid:{in:b},...c&&{type:c}},f=await e.z.document.findMany({where:d,orderBy:{createdAt:"desc"},select:{uuid:!0,type:!0,title:!0,content:!0,version:!0,proposalUuid:!0,createdByUuid:!0,createdAt:!0,updatedAt:!0}});return Promise.all(f.map(a=>k(a,!0)))}async function n(a,b){let c=await e.z.document.findFirst({where:{uuid:b,companyUuid:a},include:{project:{select:{uuid:!0,name:!0}}}});return c?k(c,!0):null}async function o(a,b){return e.z.document.findFirst({where:{uuid:b,companyUuid:a}})}async function p(a){let b=await e.z.document.create({data:{companyUuid:a.companyUuid,projectUuid:a.projectUuid,type:a.type,title:a.title,content:a.content,version:1,proposalUuid:a.proposalUuid,createdByUuid:a.createdByUuid},select:{uuid:!0,type:!0,title:!0,content:!0,version:!0,proposalUuid:!0,createdByUuid:!0,createdAt:!0,updatedAt:!0}});return"report"===a.type&&await q(a,b.uuid),k(b,!0)}async function q(a,b){try{g.B.emitChange({companyUuid:a.companyUuid,projectUuid:a.projectUuid,entityType:"document",entityUuid:b,action:"created",actorUuid:a.createdByUuid})}catch(c){t.warn({err:c,reportUuid:b,proposalUuid:a.proposalUuid},"Failed to emit document/created event for report")}if(!a.proposalUuid)return;let c=null;try{let b=await e.z.proposal.findFirst({where:{uuid:a.proposalUuid,companyUuid:a.companyUuid},select:{inputType:!0,inputUuids:!0}});if(b&&"idea"===b.inputType&&Array.isArray(b.inputUuids)){let a=b.inputUuids[0];"string"==typeof a&&a.length>0&&(c=a)}}catch(c){t.warn({err:c,reportUuid:b,proposalUuid:a.proposalUuid},"Failed to resolve parent Idea for report side effects");return}if(c){try{g.B.emitChange({companyUuid:a.companyUuid,projectUuid:a.projectUuid,entityType:"idea",entityUuid:c,action:"updated",actorUuid:a.createdByUuid})}catch(d){t.warn({err:d,reportUuid:b,ideaUuid:c,proposalUuid:a.proposalUuid},"Failed to emit idea/updated event for report")}try{let d=await (0,f.LS)(a.createdByUuid),e=d?.type??"agent";await h.createActivity({companyUuid:a.companyUuid,projectUuid:a.projectUuid,targetType:"idea",targetUuid:c,actorType:e,actorUuid:a.createdByUuid,action:"report_created",value:{reportUuid:b,proposalUuid:a.proposalUuid,reportTitle:a.title}})}catch(d){t.warn({err:d,reportUuid:b,ideaUuid:c,proposalUuid:a.proposalUuid},"Failed to record report_created Activity")}}}async function r(a,{title:b,content:c,incrementVersion:d}){let f={};void 0!==b&&(f.title=b),void 0!==c&&(f.content=c),d&&(f.version={increment:1});let g=await e.z.document.update({where:{uuid:a},data:f,include:{project:{select:{uuid:!0,name:!0}}}});return k(g,!0)}async function s(a){return e.z.document.delete({where:{uuid:a}})}d()}catch(a){d(a)}})},14120:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Wy:()=>t});var e=c(65582),f=c(52618),g=c(34853),h=c(97515),i=c(70369),j=c(35205),k=a([f,g,h,i,j]);[f,g,h,i,j]=k.then?(await k)():k;let u=e.default.child({module:"notification-turn"}),v={mentioned:"mentioned",elaboration_requested:"elaboration",elaboration_answered:"elaboration",elaboration_verified:"elaboration_verified",start_development:"start_development",yolo_requested:"yolo_requested",human_instruction:"human_instruction",task_assigned:"task_assigned",task_reopened:"task_assigned",task_verified:"task_assigned",idea_claimed:"task_assigned",proposal_approved:"task_assigned",proposal_rejected:"task_assigned"},w=new Set(["task","document","proposal","idea"]),x=new Set(["task_assigned","elaboration","elaboration_verified","start_development","yolo_requested"]),y=new Set([...x,"mentioned"]);async function l(a,b){return await f.z.agentInstance.findFirst({where:{uuid:b,companyUuid:a},select:{host:!0,cwd:!0,agentUuid:!0}})??null}function m(a,b,c){return(null==a||""===a)&&(null==b||""===b)?null:{host:a??"",cwd:null!=b&&""!==b?b:null,soft:c}}async function n(a,b){if(a.resolvedCwdSource&&"unconfigured"!==a.resolvedCwdSource)return{host:"invalid"===a.resolvedCwdAvailability?"\0invalid-project-cwd":a.resolvedCwdHost??"",cwd:null,runtimeCwd:a.resolvedRuntimeCwd,soft:!1};if(a.temporaryHost&&a.temporaryRuntimeCwd)return{host:a.temporaryHost,cwd:null,runtimeCwd:a.temporaryRuntimeCwd,soft:!1};if("mentioned"===b)return m(a.pinnedHost,a.pinnedCwd,!1);if(!w.has(a.entityType))return null;if("task"===a.entityType){let b=await f.z.task.findFirst({where:{uuid:a.entityUuid,companyUuid:a.companyUuid},select:{assigneeType:!0,assigneeUuid:!0,cwdHost:!0,runtimeCwd:!0}});if(b?.assigneeType==="agent_instance"&&b.assigneeUuid){let c=await l(a.companyUuid,b.assigneeUuid);if(c){let a=b.runtimeCwd?{host:b.cwdHost?.trim()?b.cwdHost:c.host,cwd:null,runtimeCwd:b.runtimeCwd,soft:!1}:m(c.host,c.cwd,!1);if(a)return a}}}if("idea"===a.entityType){let b=await (0,g.resolveDirectIdeaUuid)(a.companyUuid,a.entityType,a.entityUuid),c=await p(a,b);if(c)return c}let c=await q(a);return p(a,c)}async function o(a,b,c){try{let d=await f.z.agent.findFirst({where:{uuid:b,companyUuid:a},select:{ownerUuid:!0}});if(!d?.ownerUuid)return null;let e=await f.z.projectAgentCwdPreference.findFirst({where:{companyUuid:a,userUuid:d.ownerUuid,projectUuid:c,agentUuid:b},select:{host:!0,cwd:!0}});if(!e)return null;return m(e.host,e.cwd,!1)}catch(d){return u.warn({err:d,companyUuid:a,agentUuid:b,projectUuid:c},"resolveProjectOwnerCwdPin failed; degrading to online-first"),null}}async function p(a,b){if(!b)return null;let c=await f.z.idea.findFirst({where:{uuid:b,companyUuid:a.companyUuid},select:{assigneeType:!0,assigneeUuid:!0,cwdHost:!0,runtimeCwd:!0}});if(c?.assigneeType==="agent_instance"&&c.assigneeUuid){let b=await l(a.companyUuid,c.assigneeUuid);if(b&&b.agentUuid===a.recipientUuid)return c.runtimeCwd?{host:c.cwdHost?.trim()?c.cwdHost:b.host,cwd:null,runtimeCwd:c.runtimeCwd,soft:!1}:m(b.host,b.cwd,!1)}return null}async function q(a){return(await (0,j.resolveRootIdea)(a.companyUuid,a.entityType,a.entityUuid)).rootIdeaUuid}function r(a,b){if(b){let c=a.find(a=>a.host===b.host&&(!!b.runtimeCwd||a.cwd===b.cwd)&&"online"===a.effectiveStatus);if(c)return{kind:"directed",connection:c};if(!b.soft)return{kind:"offline_pin"}}let c=a.find(a=>"online"===a.effectiveStatus);return c?{kind:"online_first",connection:c}:{kind:"none"}}async function s(a,b,c,d){if(!c)return null;let e=await f.z.daemonSession.findFirst({where:{companyUuid:a,agentUuid:b,sessionId:c},select:{originConnectionUuid:!0}});return e?d.find(a=>a.uuid===e.originConnectionUuid&&"online"===a.effectiveStatus)??null:null}async function t(a){let b={turn:null,targetConnectionUuid:null,runtimeCwd:null,suppressWake:!1},c=v[a.action]??null;if(!c||"agent"!==a.recipientType)return b;try{let d=await (0,h._R)(a.companyUuid,a.recipientUuid),e=await n(a,c),j=r(d,e),k=null;if(w.has(a.entityType)&&(k=await (0,g.resolveDirectIdeaUuid)(a.companyUuid,a.entityType,a.entityUuid)),y.has(c)&&"online_first"===j.kind){let b=await s(a.companyUuid,a.recipientUuid,k,d);b&&(j={kind:"directed",connection:b})}if("online_first"===j.kind&&y.has(c)&&a.projectUuid){let b=await o(a.companyUuid,a.recipientUuid,a.projectUuid);b&&(e=b,j=r(d,b))}if("offline_pin"===j.kind)return{turn:null,targetConnectionUuid:null,runtimeCwd:e?.runtimeCwd??null,suppressWake:!0};if("none"===j.kind)return b;let l=j.connection,m="directed"===j.kind,p=e?.runtimeCwd??null,q=m?p??l.cwd??null:p,t=k??a.entityUuid,u=k;if(m&&k){let b=await f.z.daemonSession.findFirst({where:{companyUuid:a.companyUuid,agentUuid:a.recipientUuid,sessionId:k},select:{uuid:!0,originConnectionUuid:!0}});b&&b.originConnectionUuid!==l.uuid&&await f.z.daemonSession.update({where:{uuid:b.uuid,companyUuid:a.companyUuid},data:{originConnectionUuid:l.uuid,...q?{runtimeCwd:q}:{}}})}let v=await (0,g.resolveOrCreateSession)({companyUuid:a.companyUuid,agentUuid:a.recipientUuid,sessionId:t,directIdeaUuid:u,originConnectionUuid:l.uuid,...q?{runtimeCwd:q}:{}}),x=q??v.runtimeCwd??null,z="human_instruction"===c?a.instructionText??null:null,A="human_instruction"===c&&z?await (0,g.findReusablePendingInstructionTurn)(v.uuid,z):null;if(A||(A=await (0,g.createPendingTurn)({sessionUuid:v.uuid,trigger:c,promptText:z})),m)return(0,i.N_)({companyUuid:a.companyUuid,originConnectionUuid:l.uuid,turnUuid:A.uuid,...x?{runtimeCwd:x}:{}}),{turn:A,targetConnectionUuid:l.uuid,runtimeCwd:x,suppressWake:!1};return{turn:A,targetConnectionUuid:null,runtimeCwd:null,suppressWake:!1}}catch(c){return u.error({err:c,companyUuid:a.companyUuid,agentUuid:a.recipientUuid,action:a.action,entityType:a.entityType,entityUuid:a.entityUuid},"Failed to create DaemonSessionTurn for wake notification (notification was still created)"),b}}d()}catch(a){d(a)}})},25736:(a,b,c)=>{c.d(b,{vE:()=>d});function d(a){if(!a)return{pinnedHost:null,pinnedCwd:null};let b=new URLSearchParams(a),c=b.has("cwd"),d=b.has("host");if(!c&&!d)return{pinnedHost:null,pinnedCwd:null};let e=b.get("cwd")??"",f=b.get("host"),g={pinnedCwd:c&&""!==e?e:null,pinnedHost:d?f??"":null};return"1"===b.get("runtime")&&(g.runtimeCwd=!0),g}},28792:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{K1:()=>k,Ll:()=>i,U_:()=>h,s7:()=>j});var e=c(52618),f=c(42558),g=a([e]);e=(g.then?(await g)():g)[0];let k=["task","idea","proposal","document","daemon_session"];async function h(a,b){let c=await e.z.daemonConnection.findFirst({where:{uuid:b,companyUuid:a},select:{agentUuid:!0,agent:{select:{ownerUuid:!0}}}});return c?{agentUuid:c.agentUuid,ownerUuid:c.agent?.ownerUuid??null}:null}async function i(a){let b=await h(a.companyUuid,a.connectionUuid);return b?null!=b.ownerUuid&&a.actorUuid===b.ownerUuid||a.hasTaskAdmin?{ok:!0,target:b}:{ok:!1,reason:"forbidden"}:{ok:!1,reason:"not_found"}}function j(a){let b="deliver_turn"===a.command?{type:"control",command:"deliver_turn",targetConnectionUuid:a.targetConnectionUuid,turnUuid:a.turnUuid,...a.runtimeCwd?{runtimeCwd:a.runtimeCwd}:{}}:{type:"control",command:a.command,targetConnectionUuid:a.targetConnectionUuid,entityType:a.entityType,entityUuid:a.entityUuid,...a.runtimeCwd?{runtimeCwd:a.runtimeCwd}:{},...a.resumeReason?{resumeReason:a.resumeReason}:{},..."resume"===a.command?{orchestrator:a.orchestrator??null}:{}};f.B.emit((0,f.T)(a.targetConnectionUuid),b)}d()}catch(a){d(a)}})},34853:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{CONVERSATION_NAME_MAX:()=>i.VM,DAEMON_REPORTABLE_INTERRUPT_REASONS:()=>K,DEFAULT_TRANSCRIPT_MESSAGE_PAGE:()=>P,MAX_TRANSCRIPT_MESSAGES_PER_SESSION:()=>N,MERGED_TURN_STATUS:()=>I,SESSION_STATUSES:()=>L,STALE_THRESHOLD_MS:()=>h.BP,SessionReadOnlyError:()=>Q,TRANSCRIPT_ROLES:()=>M,TURN_INTERRUPT_REASONS:()=>J,TURN_STATUSES:()=>H,TURN_TRIGGERS:()=>G,advanceTurn:()=>t,advanceTurnForWake:()=>E,appendTranscriptMessages:()=>C,assertContinuable:()=>A,conversationNameFromInstruction:()=>i.Ff,createPendingTurn:()=>r,findReusablePendingInstructionTurn:()=>s,getFirstInstructionBySessionUuid:()=>i.L0,getPendingTurnsForConnection:()=>F,getSessionDetail:()=>z,getSessionTurns:()=>x,getVisibleSessions:()=>w,isSessionVisibleToCaller:()=>y,publishTranscriptEvent:()=>o,reconcileOrphanTurns:()=>u,resolveDirectIdeaUuid:()=>q,resolveOrCreateSession:()=>p,transcriptEventName:()=>n});var e=c(52618),f=c(42558),g=c(35205),h=c(97515),i=c(22137),j=a([e,g,h,i]);[e,g,h,i]=j.then?(await j)():j;let G=["task_assigned","mentioned","elaboration","elaboration_verified","start_development","yolo_requested","resume","human_instruction"],H=["pending","running","ended","interrupted"],I="merged",J=["user","crash","shutdown","offline","invalid_path"],K=["user","crash","shutdown","invalid_path"],L=["active","ended"],M=["user","assistant"],N=200;function k(a){return{uuid:a.uuid,agentUuid:a.agentUuid,sessionId:a.sessionId,backendSessionId:a.backendSessionId,directIdeaUuid:a.directIdeaUuid,originConnectionUuid:a.originConnectionUuid,runtimeCwd:a.runtimeCwd??null,status:a.status,title:a.title,lastTurnAt:a.lastTurnAt.toISOString(),totalInputTokens:a.totalInputTokens,totalOutputTokens:a.totalOutputTokens,totalCacheReadTokens:a.totalCacheReadTokens,totalCacheCreationTokens:a.totalCacheCreationTokens,createdAt:a.createdAt.toISOString(),updatedAt:a.updatedAt.toISOString()}}function l(a){return{uuid:a.uuid,sessionUuid:a.sessionUuid,seq:a.seq,trigger:a.trigger,promptText:a.promptText,status:a.status,interruptedReason:a.interruptedReason,relayError:a.relayError,usage:function(a){if(!a||"object"!=typeof a||Array.isArray(a)||"string"!=typeof a.source||!a.source)return null;let b=a=>"number"==typeof a&&Number.isFinite(a)?a:null;return{inputTokens:b(a.inputTokens),outputTokens:b(a.outputTokens),cacheCreationTokens:b(a.cacheCreationTokens),cacheReadTokens:b(a.cacheReadTokens),model:"string"==typeof a.model?a.model:null,source:a.source}}(a.usage),executionUuid:a.executionUuid,startedAt:a.startedAt?a.startedAt.toISOString():null,endedAt:a.endedAt?a.endedAt.toISOString():null,createdAt:a.createdAt.toISOString()}}function m(a){return"agent"===a.type?{agentUuid:a.actorUuid}:{agent:{ownerUuid:a.actorUuid}}}function n(a){return`transcript:${a}`}function o(a){f.B.emit(n(a.sessionUuid),a)}async function p(a){let b=await e.z.daemonSession.upsert({where:{agentUuid_sessionId:{agentUuid:a.agentUuid,sessionId:a.sessionId}},create:{companyUuid:a.companyUuid,agentUuid:a.agentUuid,sessionId:a.sessionId,directIdeaUuid:a.directIdeaUuid??null,originConnectionUuid:a.originConnectionUuid,runtimeCwd:a.runtimeCwd??null,status:"active"},update:{companyUuid:a.companyUuid,...void 0!==a.runtimeCwd?{runtimeCwd:a.runtimeCwd}:{}}});return k(b)}async function q(a,b,c){return(await (0,g.resolveRootIdea)(a,b,c)).directIdeaUuid}async function r(a){let b=await e.z.daemonSession.findUnique({where:{uuid:a.sessionUuid},select:{uuid:!0,companyUuid:!0}});if(!b)throw Error(`DaemonSession ${a.sessionUuid} not found`);let c=null;for(let b=0;b<5;b++){let d=await e.z.daemonSessionTurn.findFirst({where:{sessionUuid:a.sessionUuid},orderBy:{seq:"desc"},select:{seq:!0}}),f=(d?.seq??0)+1;try{c=await e.z.daemonSessionTurn.create({data:{sessionUuid:a.sessionUuid,seq:f,trigger:a.trigger,promptText:a.promptText??null,status:"pending",executionUuid:a.executionUuid??null}});break}catch(a){if("object"==typeof a&&null!==a&&"code"in a&&"P2002"===a.code&&b<4)continue;throw a}}if(!c)throw Error(`createPendingTurn: could not allocate a unique seq for session ${a.sessionUuid} after 5 attempts`);await e.z.daemonSession.update({where:{uuid:a.sessionUuid},data:{lastTurnAt:new Date}});let d=l(c);return o({companyUuid:b.companyUuid,sessionUuid:a.sessionUuid,trigger:"turn_created",turn:d,messages:[]}),d}async function s(a,b){let c=await e.z.daemonSessionTurn.findFirst({where:{sessionUuid:a,status:"pending",trigger:"human_instruction",promptText:b},orderBy:{seq:"asc"}});return c?l(c):null}let O={pending:["running"],running:["ended","interrupted"],ended:[],interrupted:[]};async function t(a,b,c={}){let d,f=await e.z.daemonSessionTurn.findUnique({where:{uuid:a},select:{uuid:!0,sessionUuid:!0,status:!0}});if(!f)return{ok:!1,reason:"not_found"};if(!(O[f.status]??[]).includes(b))return{ok:!1,reason:"invalid_transition",from:f.status,to:b};let g={status:b};void 0!==c.startedAt&&(g.startedAt=c.startedAt),void 0!==c.endedAt&&(g.endedAt=c.endedAt),void 0!==c.executionUuid&&(g.executionUuid=c.executionUuid),"interrupted"===b&&void 0!==c.interruptedReason&&(g.interruptedReason=c.interruptedReason);let h="ended"===b||"interrupted"===b;h&&void 0!==c.relayError&&(g.relayError=c.relayError);let i=h&&null!=c.usage?c.usage:null;if(i&&(g.usage=i),i){let[b]=await e.z.$transaction([e.z.daemonSessionTurn.update({where:{uuid:a},data:g}),e.z.daemonSession.update({where:{uuid:f.sessionUuid},data:{totalInputTokens:{increment:c.usage?.inputTokens??0},totalOutputTokens:{increment:c.usage?.outputTokens??0},totalCacheReadTokens:{increment:c.usage?.cacheReadTokens??0},totalCacheCreationTokens:{increment:c.usage?.cacheCreationTokens??0}}})]);d=b}else d=await e.z.daemonSessionTurn.update({where:{uuid:a},data:g});let j=await e.z.daemonSession.findUnique({where:{uuid:f.sessionUuid},select:{companyUuid:!0}});if(!j)throw Error(`advanceTurn: session ${f.sessionUuid} missing for just-updated turn ${a}`);let k=l(d);return o({companyUuid:j.companyUuid,sessionUuid:f.sessionUuid,trigger:"turn_status_changed",turn:k,messages:[]}),{ok:!0,turn:k}}async function u(a,b,d={}){try{let f=await e.z.daemonSessionTurn.findMany({where:{status:"running",session:{companyUuid:a,originConnectionUuid:b}},select:{uuid:!0}});if(0===f.length)return 0;if(!d.force){let c=await e.z.daemonConnection.findFirst({where:{companyUuid:a,uuid:b},select:{lastSeenAt:!0}});if(!function(a,b=Date.now()){return!a||b-a.lastSeenAt.getTime()>h.BP}(c))return 0}let g=new Date,i=0;for(let a of f){let b=await t(a.uuid,"interrupted",{interruptedReason:"offline",endedAt:g});if(b.ok)i+=1;else if("invalid_transition"===b.reason){let{default:d}=await Promise.resolve().then(c.bind(c,65582));d.info({turnUuid:a.uuid,from:b.from,to:b.to},"Orphan-turn reconcile lost the race to a concurrent terminal transition")}}return i}catch(e){let{default:d}=await Promise.resolve().then(c.bind(c,65582));return d.error({err:e,companyUuid:a,connectionUuid:b},"Failed to reconcile orphaned running turns"),0}}async function v(a,b){if(0===b.length)return 0;try{let c=await e.z.daemonSessionTurn.findMany({where:{status:"running",sessionUuid:{in:b.map(a=>a.uuid)}},select:{sessionUuid:!0}});if(0===c.length)return 0;let d=new Set(c.map(a=>a.sessionUuid)),f=[...new Set(b.filter(a=>d.has(a.uuid)).map(a=>a.originConnectionUuid))],g=0;for(let b of f)g+=await u(a,b);return g}catch(d){let{default:b}=await Promise.resolve().then(c.bind(c,65582));return b.error({err:d,companyUuid:a},"Read-time orphan-turn fallback failed (read continues unconverged)"),0}}async function w(a){let b=await e.z.daemonSession.findMany({where:{companyUuid:a.companyUuid,...m(a)},orderBy:{lastTurnAt:"desc"}});return await v(a.companyUuid,b),b.map(k)}async function x(a,b){return await e.z.daemonSession.findFirst({where:{uuid:b,companyUuid:a.companyUuid,...m(a)},select:{uuid:!0}})?(await e.z.daemonSessionTurn.findMany({where:{sessionUuid:b},orderBy:{seq:"asc"}})).map(l):null}async function y(a,b){let c=await e.z.daemonSession.findFirst({where:{uuid:b,companyUuid:a.companyUuid,...m(a)},select:{uuid:!0}});return null!=c}let P=20;async function z(a,b,c={}){let d=await e.z.daemonSession.findFirst({where:{uuid:b,companyUuid:a.companyUuid,...m(a)}});if(!d)return null;await v(a.companyUuid,[d]);let f=Math.min(Math.max(1,Math.floor(c.limit??P)),200),g="number"==typeof c.beforeTurnSeq&&Number.isFinite(c.beforeTurnSeq)?c.beforeTurnSeq:null,h="number"==typeof c.beforeMsgSeq&&Number.isFinite(c.beforeMsgSeq)?c.beforeMsgSeq:null,i=await e.z.daemonSessionTurn.findMany({where:{sessionUuid:b,...null!==g?{seq:{lte:g}}:{}},orderBy:{seq:"desc"}}),j=i.map(a=>a.uuid),n=j.length>0?await e.z.daemonTranscriptMessage.findMany({where:{turnUuid:{in:j}},orderBy:[{turnUuid:"asc"},{seq:"asc"}]}):[],o=new Map;for(let a of n){let b=B(a),c=o.get(b.turnUuid);c?c.push(b):o.set(b.turnUuid,[b])}let p=[];for(let a of i){let b=o.get(a.uuid)??[];for(let c=b.length-1;c>=0;c--)p.push({turnSeq:a.seq,msgSeq:b[c].seq,rendered:b[c]});let c=a.promptText,d="string"==typeof c&&c.length>0;p.push({turnSeq:a.seq,msgSeq:0,rendered:d?{uuid:`synthetic:${a.uuid}`,turnUuid:a.uuid,role:"user",text:c,seq:0,createdAt:a.createdAt.toISOString()}:null})}let q=null!==g?p.filter(a=>a.turnSeq<g||a.turnSeq===g&&a.msgSeq<(h??0)):p,r=q.length>f,s=r?q.slice(0,f):q,t=[...s].reverse(),u=s.length>0?s[s.length-1]:null,w=new Map;for(let a of i)w.set(a.uuid,a);let x=new Map;for(let a of i)x.set(a.seq,a.uuid);let y=new Map,A=[];for(let a of t)y.has(a.turnSeq)||(y.set(a.turnSeq,[]),A.push(a.turnSeq)),a.rendered&&y.get(a.turnSeq).push(a.rendered);let C=A.map(a=>{let b=x.get(a);return{...l(w.get(b)),messages:y.get(a)??[]}});return{session:k(d),turns:C,hasMore:r,oldestTurnSeq:u?u.turnSeq:null,oldestMsgSeq:u?u.msgSeq:null}}class Q extends Error{constructor(a){super("This session is read-only: its origin connection is offline. A daemon session can only be continued on the connection that holds its on-disk transcript (claude --resume is cwd/machine-bound), so it is never routed to another connection."),this.code="session_read_only",this.name="SessionReadOnlyError",this.originConnectionUuid=a}}async function A(a,b){let c=await e.z.daemonSession.findFirst({where:{uuid:b,companyUuid:a},select:{originConnectionUuid:!0}});if(!c)throw Error(`DaemonSession ${b} not found`);let d=await e.z.daemonConnection.findFirst({where:{uuid:c.originConnectionUuid,companyUuid:a},select:{status:!0,lastSeenAt:!0,cwd:!0}});if(!(null!=d&&"online"===d.status&&Date.now()-d.lastSeenAt.getTime()<=h.BP))throw new Q(c.originConnectionUuid);return c.originConnectionUuid}function B(a){return{uuid:a.uuid,turnUuid:a.turnUuid,role:a.role,text:a.text,seq:a.seq,createdAt:a.createdAt.toISOString()}}async function C(a){let b=null;if(a.turnUuid)b=await e.z.daemonSessionTurn.findFirst({where:{uuid:a.turnUuid,session:{agentUuid:a.agentUuid,companyUuid:a.companyUuid}},select:{uuid:!0,sessionUuid:!0}});else if(a.sessionId){let c=await e.z.daemonSession.findFirst({where:{agentUuid:a.agentUuid,companyUuid:a.companyUuid,sessionId:a.sessionId},select:{uuid:!0}});c&&(b=await e.z.daemonSessionTurn.findFirst({where:{sessionUuid:c.uuid,status:"running"},orderBy:{seq:"asc"},select:{uuid:!0,sessionUuid:!0}})??await e.z.daemonSessionTurn.findFirst({where:{sessionUuid:c.uuid},orderBy:{seq:"desc"},select:{uuid:!0,sessionUuid:!0}}))}if(!b)return{ok:!1,reason:"not_found"};let c=b.sessionUuid,d=a.messages.filter(a=>M.includes(a.role)&&"string"==typeof a.text&&a.text.trim().length>0),f=[];if(d.length>0){let a=await e.z.daemonTranscriptMessage.findFirst({where:{turnUuid:b.uuid},orderBy:{seq:"desc"},select:{seq:!0}}),g=(a?.seq??0)+1,h=[];for(let a of d){let c=await e.z.daemonTranscriptMessage.create({data:{turnUuid:b.uuid,role:a.role,text:a.text,seq:g}});h.push(c),g+=1}f=h.map(B),await D(c)}let g=await e.z.daemonTranscriptMessage.count({where:{turn:{sessionUuid:c}}});if(f.length>0){let d=await e.z.daemonSessionTurn.findUnique({where:{uuid:b.uuid}}),g=await e.z.daemonSession.findUnique({where:{uuid:c},select:{companyUuid:!0}});d&&o({companyUuid:g?.companyUuid??a.companyUuid,sessionUuid:c,trigger:"transcript_appended",turn:l(d),messages:f})}return{ok:!0,appended:f.length,stored:g,messages:f}}async function D(a){let b=await e.z.daemonTranscriptMessage.count({where:{turn:{sessionUuid:a}}})-N;if(b<=0)return;let c=await e.z.daemonTranscriptMessage.findMany({where:{turn:{sessionUuid:a}},orderBy:[{createdAt:"asc"},{id:"asc"}],take:b,select:{uuid:!0}});0!==c.length&&await e.z.daemonTranscriptMessage.deleteMany({where:{uuid:{in:c.map(a=>a.uuid)}}})}async function E(a){let b,c=await e.z.daemonSession.findFirst({where:{agentUuid:a.agentUuid,companyUuid:a.companyUuid,sessionId:a.sessionId},select:{uuid:!0}});if(!c)return{ok:!1,reason:"not_found"};if(a.backendSessionId){let b=await e.z.daemonSession.updateMany({where:{uuid:c.uuid,OR:[{backendSessionId:null},{backendSessionId:a.backendSessionId}]},data:{backendSessionId:a.backendSessionId}});if(0===b.count)return{ok:!1,reason:"backend_session_conflict"}}let d="running"===a.status?"pending":"ended"===a.status||"interrupted"===a.status?"running":null,f=await e.z.daemonSessionTurn.findFirst({where:{sessionUuid:c.uuid,...d?{status:d}:{}},orderBy:{seq:"asc"},select:{uuid:!0,seq:!0}});if(!f)return{ok:!1,reason:"not_found"};if(a.entityType&&a.entityUuid){let c=await e.z.daemonExecution.findFirst({where:{companyUuid:a.companyUuid,connectionUuid:a.connectionUuid,entityType:a.entityType,entityUuid:a.entityUuid},select:{uuid:!0}});b=c?.uuid??null}let g=new Date,h=void 0!==a.startedAt?a.startedAt:"running"===a.status?g:void 0,i=void 0!==a.endedAt?a.endedAt:"ended"===a.status||"interrupted"===a.status?g:void 0,j=await t(f.uuid,a.status,{...void 0!==h?{startedAt:h}:{},...void 0!==i?{endedAt:i}:{},...void 0!==b?{executionUuid:b}:{},...void 0!==a.interruptedReason?{interruptedReason:a.interruptedReason}:{},...void 0!==a.relayError?{relayError:a.relayError}:{},...void 0!==a.usage?{usage:a.usage}:{}});if(!j.ok)return"not_found"===j.reason?{ok:!1,reason:"not_found"}:{ok:!1,reason:"invalid_transition",from:j.from,to:j.to};let k=a.coalescedCount??1;if("running"===a.status&&k>1){let b=await e.z.daemonSessionTurn.findMany({where:{sessionUuid:c.uuid,status:"pending",seq:{gt:f.seq}},orderBy:{seq:"asc"},take:k-1});if(b.length>0)for(let d of(await e.z.daemonSessionTurn.updateMany({where:{uuid:{in:b.map(a=>a.uuid)}},data:{status:I}}),b))o({companyUuid:a.companyUuid,sessionUuid:c.uuid,trigger:"turn_status_changed",turn:l({...d,status:I}),messages:[]})}return{ok:!0,turn:j.turn}}async function F(a){return(await e.z.daemonSessionTurn.findMany({where:{status:"pending",session:{companyUuid:a.companyUuid,agentUuid:a.agentUuid,originConnectionUuid:a.connectionUuid}},orderBy:[{session:{createdAt:"asc"}},{seq:"asc"}],select:{uuid:!0,sessionUuid:!0,seq:!0,trigger:!0,promptText:!0,session:{select:{sessionId:!0,directIdeaUuid:!0,runtimeCwd:!0}}}})).map(a=>({turnUuid:a.uuid,sessionUuid:a.sessionUuid,sessionId:a.session.sessionId,directIdeaUuid:a.session.directIdeaUuid,runtimeCwd:a.session.runtimeCwd,seq:a.seq,trigger:a.trigger,promptText:a.promptText}))}d()}catch(a){d(a)}})},35205:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{resolveRootIdea:()=>j});var e=c(71165),f=c(57578),g=c(8777),h=c(66643),i=a([e,f,g,h]);async function j(a,b,c){let d=await k(a,b,c),e=d.lineage.find(a=>"idea"===a.type)?.uuid??null;return{...d,directIdeaUuid:e}}async function k(a,b,c){switch(b){case"idea":return l(a,c);case"proposal":return o(a,c,"proposal");case"task":return m(a,c);case"document":return n(a,c);default:return{rootIdeaUuid:null,lineage:[],resolvedVia:"not_found"}}}async function l(a,b){let c=[],d=await p(a,b,c);return null===d?{rootIdeaUuid:null,lineage:[],resolvedVia:"not_found"}:{rootIdeaUuid:d,lineage:c,resolvedVia:"root_idea"}}async function m(a,b){let c=await (0,e.K4)(a,b);if(!c)return{rootIdeaUuid:null,lineage:[],resolvedVia:"not_found"};let d={type:"task",uuid:c.uuid,title:c.title};return c.proposalUuid?o(a,c.proposalUuid,"via_proposal",d):{rootIdeaUuid:null,lineage:[d],resolvedVia:"no_proposal"}}async function n(a,b){let c=await (0,g.Cs)(a,b);if(!c)return{rootIdeaUuid:null,lineage:[],resolvedVia:"not_found"};let d={type:"document",uuid:c.uuid,title:c.title};return c.proposalUuid?o(a,c.proposalUuid,"via_document_proposal",d):{rootIdeaUuid:null,lineage:[d],resolvedVia:"standalone_document"}}async function o(a,b,c,d){var e;let g=d?[d]:[],h=await (0,f.PK)(a,b);if(!h)return{rootIdeaUuid:null,lineage:g,resolvedVia:"not_found"};if(g.push({type:"proposal",uuid:h.uuid,title:h.title}),"idea"!==h.inputType)return{rootIdeaUuid:null,lineage:g,resolvedVia:"proposal_input_not_idea"};let i=(e=h.inputUuids,Array.isArray(e)?e.filter(a=>"string"==typeof a):[]);if(0===i.length)return{rootIdeaUuid:null,lineage:g,resolvedVia:"proposal_input_not_idea"};let j=await p(a,i[0],g);if(null===j)return{rootIdeaUuid:null,lineage:g,resolvedVia:"not_found"};let k="via_document_proposal"===c?"via_document_proposal":"via_proposal"===c?"via_proposal":"root_idea";if(1===i.length)return{rootIdeaUuid:j,lineage:g,resolvedVia:k};let l=[j];for(let b of i.slice(1)){let c=await p(a,b);null!==c&&l.push(c)}return{rootIdeaUuid:j,lineage:g,resolvedVia:k,ambiguous:!0,candidates:l}}async function p(a,b,c){let d=await (0,h.MY)(a,b);if(!d)return null;c?.push({type:"idea",uuid:d.uuid,title:d.title});let e=new Set([d.uuid]);for(let b=0;b<50;b++){let b=d.parentUuid;if(!b||e.has(b))break;e.add(b);let f=await (0,h.MY)(a,b);if(!f)break;c?.push({type:"idea",uuid:f.uuid,title:f.title}),d=f}return d.uuid}[e,f,g,h]=i.then?(await i)():i,d()}catch(a){d(a)}})},37943:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{$M:()=>o,Ip:()=>p,NL:()=>q,Ug:()=>u,Xm:()=>m,aF:()=>l,lX:()=>t,p_:()=>n,rD:()=>r,y1:()=>s});var e=c(52618),f=c(42558),g=c(14120),h=c(77716),i=a([e,g,h]);function j(a){return"idea"!==a.entityType&&"task"!==a.entityType?null:`${a.companyUuid}:${a.entityType}:${a.entityUuid}`}async function k(a){let b=new Map;for(let c of a){let a=j(c);a&&!b.has(a)&&b.set(a,{companyUuid:c.companyUuid,entityType:c.entityType,entityUuid:c.entityUuid})}let c=new Map;return await Promise.all([...b.entries()].map(async([a,b])=>{c.set(a,await (0,h.V)(b.companyUuid,b.entityType,b.entityUuid))})),a.map(a=>{var b,d;let e=j(a);return b=a,d=e?c.get(e)??null:null,{uuid:b.uuid,projectUuid:b.projectUuid,projectName:b.projectName,recipientType:b.recipientType,recipientUuid:b.recipientUuid,entityType:b.entityType,entityUuid:b.entityUuid,entityTitle:b.entityTitle,action:b.action,message:b.message,actorType:b.actorType,actorUuid:b.actorUuid,actorName:b.actorName,readAt:b.readAt?.toISOString()??null,archivedAt:b.archivedAt?.toISOString()??null,createdAt:b.createdAt.toISOString(),instructionText:b.instructionText??null,orchestrator:d}})}async function l(a){let b=await e.z.notification.create({data:{companyUuid:a.companyUuid,projectUuid:a.projectUuid,recipientType:a.recipientType,recipientUuid:a.recipientUuid,entityType:a.entityType,entityUuid:a.entityUuid,entityTitle:a.entityTitle,projectName:a.projectName,action:a.action,message:a.message,actorType:a.actorType,actorUuid:a.actorUuid,actorName:a.actorName,instructionText:a.instructionText??null}}),c=await o(a.companyUuid,a.recipientType,a.recipientUuid),{turn:d,targetConnectionUuid:h,runtimeCwd:i,suppressWake:j}=await (0,g.Wy)(a);f.B.emit(`notification:${a.recipientType}:${a.recipientUuid}`,{type:"new_notification",notificationUuid:b.uuid,unreadCount:c,action:a.action,actorName:a.actorName,entityTitle:a.entityTitle,entityType:a.entityType,entityUuid:a.entityUuid,projectUuid:a.projectUuid,targetConnectionUuid:h,runtimeCwd:i,suppressWake:j});let[l]=await k([b]);return{notification:l,turn:d}}async function m(a){let b=await Promise.all(a.map(a=>e.z.notification.create({data:{companyUuid:a.companyUuid,projectUuid:a.projectUuid,recipientType:a.recipientType,recipientUuid:a.recipientUuid,entityType:a.entityType,entityUuid:a.entityUuid,entityTitle:a.entityTitle,projectName:a.projectName,action:a.action,message:a.message,actorType:a.actorType,actorUuid:a.actorUuid,actorName:a.actorName,instructionText:a.instructionText??null}}))),c=new Map;for(let b of a){let{targetConnectionUuid:a,runtimeCwd:d,suppressWake:e}=await (0,g.Wy)(b);c.set(b,{targetConnectionUuid:a,runtimeCwd:d,suppressWake:e})}let d=new Set;for(let b of a)d.add(`${b.recipientType}:${b.recipientUuid}:${b.companyUuid}`);for(let e of d){let[d,g,h]=e.split(":"),i=await o(h,d,g),j=b.find(a=>a.recipientType===d&&a.recipientUuid===g),k=a.find(a=>a.recipientType===d&&a.recipientUuid===g);f.B.emit(`notification:${d}:${g}`,{type:"new_notification",notificationUuid:j?.uuid,unreadCount:i,action:k?.action,actorName:k?.actorName,entityTitle:k?.entityTitle,entityType:k?.entityType,entityUuid:k?.entityUuid,projectUuid:k?.projectUuid,targetConnectionUuid:k?c.get(k)?.targetConnectionUuid??null:null,runtimeCwd:k?c.get(k)?.runtimeCwd??null:null,suppressWake:!!k&&(c.get(k)?.suppressWake??!1)})}return k(b)}async function n(a){let{companyUuid:b,recipientType:c,recipientUuid:d,projectUuid:f,readFilter:g,archived:h}=a,i=a.skip??0,j=a.take??20,l={companyUuid:b,recipientType:c,recipientUuid:d,...f&&{projectUuid:f},..."unread"===g&&{readAt:null},..."read"===g&&{readAt:{not:null}},...!1===h&&{archivedAt:null},...!0===h&&{archivedAt:{not:null}}},[m,n,p]=await Promise.all([e.z.notification.findMany({where:l,skip:i,take:j,orderBy:{createdAt:"desc"}}),e.z.notification.count({where:l}),o(b,c,d)]);return{notifications:await k(m),total:n,unreadCount:p}}async function o(a,b,c){return e.z.notification.count({where:{companyUuid:a,recipientType:b,recipientUuid:c,readAt:null,archivedAt:null}})}async function p(a,b,c,d){await e.z.notification.updateMany({where:{uuid:a,companyUuid:b,recipientType:c,recipientUuid:d,readAt:null},data:{readAt:new Date}});let g=await e.z.notification.findFirst({where:{uuid:a,companyUuid:b}});if(!g)throw Error("Notification not found");let h=await o(b,c,d);f.B.emit(`notification:${c}:${d}`,{type:"count_update",unreadCount:h});let[i]=await k([g]);return i}async function q(a,b,c,d){let g=await e.z.notification.updateMany({where:{companyUuid:a,recipientType:b,recipientUuid:c,readAt:null,...d&&{projectUuid:d}},data:{readAt:new Date}}),h=await o(a,b,c);return f.B.emit(`notification:${b}:${c}`,{type:"count_update",unreadCount:h}),{count:g.count}}async function r(a,b,c,d){await e.z.notification.updateMany({where:{uuid:a,companyUuid:b,recipientType:c,recipientUuid:d,archivedAt:null},data:{archivedAt:new Date}});let g=await e.z.notification.findFirst({where:{uuid:a,companyUuid:b}});if(!g)throw Error("Notification not found");let h=await o(b,c,d);f.B.emit(`notification:${c}:${d}`,{type:"count_update",unreadCount:h});let[i]=await k([g]);return i}function s(a){f.B.emit(`notification:user:${a.ownerUuid}`,{type:"new_notification",action:"agent_checkin",entityType:"agent",entityUuid:a.agentUuid,entityTitle:a.agentName,actorName:a.agentName})}async function t(a,b,c){let d=await e.z.notificationPreference.findUnique({where:{ownerType_ownerUuid:{ownerType:b,ownerUuid:c}}});return d||(d=await e.z.notificationPreference.create({data:{companyUuid:a,ownerType:b,ownerUuid:c}})),{uuid:d.uuid,ownerType:d.ownerType,ownerUuid:d.ownerUuid,taskAssigned:d.taskAssigned,taskStatusChanged:d.taskStatusChanged,taskVerified:d.taskVerified,taskReopened:d.taskReopened,proposalSubmitted:d.proposalSubmitted,proposalApproved:d.proposalApproved,proposalRejected:d.proposalRejected,ideaClaimed:d.ideaClaimed,commentAdded:d.commentAdded,elaborationRequested:d.elaborationRequested,elaborationAnswered:d.elaborationAnswered,mentioned:d.mentioned}}async function u(a,b,c,d){let f=await e.z.notificationPreference.upsert({where:{ownerType_ownerUuid:{ownerType:b,ownerUuid:c}},create:{companyUuid:a,ownerType:b,ownerUuid:c,...d},update:d});return{uuid:f.uuid,ownerType:f.ownerType,ownerUuid:f.ownerUuid,taskAssigned:f.taskAssigned,taskStatusChanged:f.taskStatusChanged,taskVerified:f.taskVerified,taskReopened:f.taskReopened,proposalSubmitted:f.proposalSubmitted,proposalApproved:f.proposalApproved,proposalRejected:f.proposalRejected,ideaClaimed:f.ideaClaimed,commentAdded:f.commentAdded,elaborationRequested:f.elaborationRequested,elaborationAnswered:f.elaborationAnswered,mentioned:f.mentioned}}[e,g,h]=i.then?(await i)():i,d()}catch(a){d(a)}})},48873:(a,b,c)=>{c.d(b,{Ik:()=>f,Yy:()=>d,nm:()=>e});class d extends Error{constructor(a){super(`${a} is already claimed`),this.name="AlreadyClaimedError"}}class e extends Error{constructor(a){super(`${a} is not currently claimed`),this.name="NotClaimedError"}}function f(a){return"object"==typeof a&&null!==a&&"code"in a&&"P2025"===a.code}},54349:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Hu:()=>p,eT:()=>o,fg:()=>m,uA:()=>s});var e=c(52618),f=c(76872),g=c(90494),h=c(88437),i=c(42558),j=c(65582),k=a([e,f,g,h]);[e,f,g,h]=k.then?(await k)():k;let t={uuid:!0,targetType:!0,targetUuid:!0,content:!0,authorType:!0,authorUuid:!0,createdAt:!0,updatedAt:!0};async function l(a){return Promise.all(a.map(async a=>{let b=await (0,f.lR)(a.authorType,a.authorUuid);return{uuid:a.uuid,targetType:a.targetType,targetUuid:a.targetUuid,content:a.content,author:{type:a.authorType,uuid:a.authorUuid,name:b??"Unknown"},createdAt:a.createdAt.toISOString(),updatedAt:a.updatedAt.toISOString()}}))}async function m(a){let{companyUuid:b,targetType:c,targetUuid:d,limit:g}=a;if(!await (0,f._9)(c,d,b))return void 0!==g?{comments:[],total:0,nextCursor:null,hasMore:!1}:{comments:[],total:0};if(void 0!==g)return n(a,g);let{skip:h,take:i}=a,j={companyUuid:b,targetType:c,targetUuid:d},[k,m]=await Promise.all([e.z.comment.findMany({where:j,skip:h,take:i,orderBy:[{createdAt:"desc"},{id:"desc"}],select:t}),e.z.comment.count({where:j})]);return{comments:await l(k),total:m}}async function n(a,b){let{companyUuid:c,targetType:d,targetUuid:f,cursor:g}=a,h={companyUuid:c,targetType:d,targetUuid:f},i=!1;if(g){let a=await e.z.comment.findFirst({where:{...h,uuid:g},select:{uuid:!0}});i=null!==a}let[j,k]=await Promise.all([e.z.comment.findMany({where:h,orderBy:[{createdAt:"desc"},{id:"desc"}],take:b+1,...i?{cursor:{uuid:g},skip:1}:{},select:t}),e.z.comment.count({where:h})]),m=j.length>b,n=m?j.slice(0,b):j,o=m?n[n.length-1].uuid:null;return{comments:await l(n),total:k,nextCursor:o,hasMore:m}}async function o({companyUuid:a,targetType:b,targetUuid:c,content:d,authorType:g,authorUuid:h}){if(!await (0,f._9)(b,c,a))throw Error(`Target ${b} with UUID ${c} not found`);let k=await e.z.comment.create({data:{companyUuid:a,targetType:b,targetUuid:c,content:d,authorType:g,authorUuid:h},select:{uuid:!0,targetType:!0,targetUuid:!0,content:!0,authorType:!0,authorUuid:!0,createdAt:!0,updatedAt:!0}}),l=await (0,f.lR)(k.authorType,k.authorUuid);return p(b,c).then(d=>{d&&i.B.emitChange({companyUuid:a,projectUuid:d,entityType:b,entityUuid:c,action:"updated",actorUuid:h})}).catch(()=>{}),r(a,b,c,k.uuid,d,g,h).catch(a=>j.default.error({err:a},"Failed to process comment mentions")),{uuid:k.uuid,targetType:k.targetType,targetUuid:k.targetUuid,content:k.content,author:{type:k.authorType,uuid:k.authorUuid,name:l??"Unknown"},createdAt:k.createdAt.toISOString(),updatedAt:k.updatedAt.toISOString()}}async function p(a,b,c){let d=c?{companyUuid:c}:{};switch(a){case"task":{let a=await e.z.task.findFirst({where:{uuid:b,...d},select:{projectUuid:!0}});return a?.projectUuid??null}case"idea":{let a=await e.z.idea.findFirst({where:{uuid:b,...d},select:{projectUuid:!0}});return a?.projectUuid??null}case"proposal":{let a=await e.z.proposal.findFirst({where:{uuid:b,...d},select:{projectUuid:!0}});return a?.projectUuid??null}case"document":{let a=await e.z.document.findFirst({where:{uuid:b,...d},select:{projectUuid:!0}});return a?.projectUuid??null}default:return null}}async function q(a,b){switch(a){case"task":{let a=await e.z.task.findUnique({where:{uuid:b},select:{title:!0}});return a?.title??"Unknown Task"}case"idea":{let a=await e.z.idea.findUnique({where:{uuid:b},select:{title:!0}});return a?.title??"Unknown Idea"}case"proposal":{let a=await e.z.proposal.findUnique({where:{uuid:b},select:{title:!0}});return a?.title??"Unknown Proposal"}case"document":{let a=await e.z.document.findUnique({where:{uuid:b},select:{title:!0}});return a?.title??"Unknown Document"}default:return"Unknown"}}async function r(a,b,c,d,e,f,i){let j=g.Xs(e);if(0===j.length)return;let k=await p(b,c);if(!k)return;let l=await q(b,c);for(let m of(await g.AM({companyUuid:a,sourceType:"comment",sourceUuid:d,content:e,actorType:f,actorUuid:i,projectUuid:k,entityTitle:l}),j))(m.type!==f||m.uuid!==i)&&await h.createActivity({companyUuid:a,projectUuid:k,targetType:b,targetUuid:c,actorType:f,actorUuid:i,action:"mentioned",value:{mentionedType:m.type,mentionedUuid:m.uuid,mentionedName:m.displayName,sourceType:"comment",sourceUuid:d}})}async function s(a,b,c){if(0===c.length)return{};let d=await e.z.comment.groupBy({by:["targetUuid"],where:{companyUuid:a,targetType:b,targetUuid:{in:c}},_count:{targetUuid:!0}}),f={};for(let a of c)f[a]=0;for(let a of d)f[a.targetUuid]=a._count.targetUuid;return f}d()}catch(a){d(a)}})},66643:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{BB:()=>t,EZ:()=>A,JF:()=>y,MY:()=>w,Nm:()=>E,Q7:()=>v,XB:()=>J,bO:()=>q,bY:()=>F,h_:()=>C,i1:()=>x,jJ:()=>G,w9:()=>B,xo:()=>H,yM:()=>I});var e=c(52618),f=c(76872),g=c(42558),h=c(48873),i=c(27473),j=c(90494),k=c(88437),l=c(8777),m=c(57578),n=c(65582),o=a([e,f,j,k,l,m]);[e,f,j,k,l,m]=o.then?(await o)():o;let K={open:["elaborating"],elaborating:["elaborated"],elaborated:[]};function p(a){switch(a){case"assigned":case"in_progress":return"elaborating";case"proposal_created":case"completed":case"closed":case"pending_review":return"elaborated";default:return a}}function q(a,b){return(K[p(a)]||[]).includes(b)}async function r(a,b,c,d){if(!d)return{assigneeType:b,assigneeUuid:c};let f=await e.z.agentInstance.findFirst({where:{uuid:d,companyUuid:a},select:{uuid:!0}});if(!f)throw Error("Agent instance not found");return{assigneeType:"agent_instance",assigneeUuid:f.uuid}}async function s(a){let[b,c]=await Promise.all([(0,f.ir)(a.assigneeType,a.assigneeUuid,a.assignedAt,a.assignedByUuid,a.assignedByType,a.companyUuid),(0,f.LS)(a.createdByUuid)]);return{uuid:a.uuid,title:a.title,content:a.content,attachments:a.attachments,status:p(a.status),isContainer:a.isContainer,assignee:b,...a.project&&{project:a.project},...null!=a.elaborationStatus&&{elaborationStatus:a.elaborationStatus},...null!=a.elaborationDepth&&{elaborationDepth:a.elaborationDepth},createdBy:c,createdAt:a.createdAt.toISOString(),updatedAt:a.updatedAt.toISOString()}}async function t({companyUuid:a,projectUuid:b,skip:c,take:d,status:g,assignedToMe:h,actorUuid:i,actorType:j,ownerUuid:k}){let l={projectUuid:b,companyUuid:a,...g&&{status:g}};h&&i&&j&&(l.OR=await (0,f.zl)({type:"agent"===j?"agent":"user",companyUuid:a,actorUuid:i,ownerUuid:k}));let[m,n]=await Promise.all([e.z.idea.findMany({where:l,skip:c,take:d,orderBy:{createdAt:"desc"},select:{uuid:!0,title:!0,content:!0,attachments:!0,status:!0,elaborationStatus:!0,elaborationDepth:!0,companyUuid:!0,assigneeType:!0,assigneeUuid:!0,assignedAt:!0,assignedByType:!0,assignedByUuid:!0,parentUuid:!0,isContainer:!0,createdByUuid:!0,createdAt:!0,updatedAt:!0}}),e.z.idea.count({where:l})]),o=await Promise.all(m.map(s));if(m.forEach((a,b)=>{o[b].parentUuid=a.parentUuid??null}),o.length>0){let c=await u(a,b,o.map(a=>a.uuid));for(let a of o)a.reportCount=c.get(a.uuid)??0;let d=await e.z.idea.groupBy({by:["parentUuid"],where:{companyUuid:a,projectUuid:b,parentUuid:{not:null}},_count:{_all:!0}})??[],f=new Map;for(let a of d)a.parentUuid&&f.set(a.parentUuid,a._count._all);for(let a of o)a.childCount=f.get(a.uuid)??0}return{ideas:o,total:n}}let L=["approved","closed"];async function u(a,b,c){let d=new Map;if(0===c.length)return d;let f=await e.z.proposal.findMany({where:{projectUuid:b,companyUuid:a,status:{in:[...L]},inputType:"idea"},select:{uuid:!0,inputUuids:!0}});if(0===f.length)return d;let g=new Set(c),h=new Map;for(let a of f){if(!Array.isArray(a.inputUuids))continue;let b=a.inputUuids.filter(a=>g.has(a));b.length>0&&h.set(a.uuid,b)}if(0===h.size)return d;for(let b of(await e.z.document.groupBy({by:["proposalUuid"],where:{companyUuid:a,type:"report",proposalUuid:{in:Array.from(h.keys())}},_count:{_all:!0}}))){if(!b.proposalUuid)continue;let a=h.get(b.proposalUuid);if(a)for(let c of a)d.set(c,(d.get(c)??0)+b._count._all)}return d}async function v(a,b){let c=await e.z.idea.findFirst({where:{uuid:b,companyUuid:a},include:{project:{select:{uuid:!0,name:!0}},parent:{select:{uuid:!0,title:!0,status:!0}},children:{select:{uuid:!0,title:!0,status:!0,elaborationStatus:!0},orderBy:{createdAt:"asc"}}}});if(!c)return null;let d=await s(c);d.parentUuid=c.parentUuid??null,d.parent=c.parent?{uuid:c.parent.uuid,title:c.parent.title,status:p(c.parent.status)}:null;let f=c.children??[];if(f.length>0){let b=await I(a,c.projectUuid),e=new Map(b.map(a=>[a.uuid,a.derivedStatus]));d.children=f.map(a=>({uuid:a.uuid,title:a.title,status:p(a.status),derivedStatus:e.get(a.uuid)??"todo"}))}else d.children=[];d.descendantUuids=await z(b,a);let g=(await m.fS(a,c.projectUuid,b)).filter(a=>L.includes(a.status));return 0===g.length?d.reports=[]:d.reports=await l.yZ(a,g.map(a=>a.uuid),"report"),d}async function w(a,b){return e.z.idea.findFirst({where:{uuid:b,companyUuid:a}})}async function x(a){if(a.parentUuid){let b=await e.z.idea.findFirst({where:{uuid:a.parentUuid,companyUuid:a.companyUuid},select:{projectUuid:!0}});if(!b)throw Error("Parent idea not found");if(b.projectUuid!==a.projectUuid)throw Error("Parent idea must be in the same project")}let b=await e.z.idea.create({data:{companyUuid:a.companyUuid,projectUuid:a.projectUuid,title:a.title,content:a.content,attachments:a.attachments||void 0,status:"open",createdByUuid:a.createdByUuid,parentUuid:a.parentUuid??void 0,isContainer:a.isContainer??void 0},select:{uuid:!0,title:!0,content:!0,attachments:!0,status:!0,elaborationStatus:!0,elaborationDepth:!0,companyUuid:!0,assigneeType:!0,assigneeUuid:!0,assignedAt:!0,assignedByType:!0,assignedByUuid:!0,parentUuid:!0,isContainer:!0,createdByUuid:!0,createdAt:!0,updatedAt:!0}});g.B.emitChange({companyUuid:a.companyUuid,projectUuid:a.projectUuid,entityType:"idea",entityUuid:b.uuid,action:"created"});let c=await s(b);return c.parentUuid=b.parentUuid,c}async function y(a,b,c,d){let f=null;if(void 0!==c.content&&d){let b=await e.z.idea.findUnique({where:{uuid:a},select:{content:!0}});f=b?.content??null}let h=await e.z.idea.update({where:{uuid:a},data:c,include:{project:{select:{uuid:!0,name:!0}}}});if(g.B.emitChange({companyUuid:h.companyUuid,projectUuid:h.project.uuid,entityType:"idea",entityUuid:h.uuid,action:"updated"}),d){let a=["title","content"].filter(a=>void 0!==c[a]);a.length>0&&await k.createActivity({companyUuid:h.companyUuid,projectUuid:h.project.uuid,targetType:"idea",targetUuid:h.uuid,actorType:d.actorType,actorUuid:d.actorUuid,action:"edited",value:{changedFields:a}})}return void 0!==c.content&&d&&c.content&&D(h.companyUuid,h.project.uuid,h.uuid,h.title,f,c.content,d.actorType,d.actorUuid).catch(a=>n.default.error({err:a},"Failed to process idea mentions")),s(h)}async function z(a,b){let c=new Set,d=[a];for(;d.length>0;){let f=await e.z.idea.findMany({where:{companyUuid:b,parentUuid:{in:d}},select:{uuid:!0}})??[],g=[];for(let b of f)b.uuid!==a&&(c.has(b.uuid)||(c.add(b.uuid),g.push(b.uuid)));d=g}return[...c]}async function A(a,b,c,d){let f=await e.z.idea.findFirst({where:{uuid:a,companyUuid:c},select:{uuid:!0,projectUuid:!0,parentUuid:!0}});if(!f)throw Error("Idea not found");let h=f.parentUuid??null;if(b){if(b===a)throw Error("An idea cannot be its own parent");let d=await e.z.idea.findFirst({where:{uuid:b,companyUuid:c},select:{uuid:!0,projectUuid:!0,parentUuid:!0}});if(!d)throw Error("Parent idea not found");if(d.projectUuid!==f.projectUuid)throw Error("Parent idea must be in the same project");let g=new Set,h=d.parentUuid;for(;h;){if(h===a)throw Error("Cannot set parent: would create a cycle");if(g.has(h))break;g.add(h);let b=await e.z.idea.findFirst({where:{uuid:h,companyUuid:c},select:{parentUuid:!0}});h=b?.parentUuid??null}}let i=await e.z.idea.update({where:{uuid:a},data:{parentUuid:b??null},include:{project:{select:{uuid:!0,name:!0}}}});g.B.emitChange({companyUuid:i.companyUuid,projectUuid:i.projectUuid,entityType:"idea",entityUuid:i.uuid,action:"updated"});let j=i.parentUuid??null;d&&j!==h&&await k.createActivity({companyUuid:i.companyUuid,projectUuid:i.projectUuid,targetType:"idea",targetUuid:i.uuid,actorType:d.actorType,actorUuid:d.actorUuid,action:"reparented",value:{fromParentUuid:h,toParentUuid:j}});let l=await s(i);return l.parentUuid=i.parentUuid,l}async function B({ideaUuid:a,companyUuid:b,assigneeType:c,assigneeUuid:d,assignedByUuid:f,assignedByType:i,instanceUuid:j,cwdSource:k,cwdHost:l,runtimeCwd:m}){let n=await e.z.idea.findFirst({where:{uuid:a,companyUuid:b}});if(!n||n.assigneeUuid)throw new h.Yy("Idea");let o=p(n.status);if("elaborated"===o)throw Error("Cannot claim an elaborated Idea");let q=await r(b,c,d,j),t=function(a,b){if(!a&&!b)return{};if(!a||!b)throw Error("Assignment provenance type and UUID must be provided together");return{assignedByType:a,assignedByUuid:b}}(i,f),u=await e.z.idea.update({where:{uuid:a},data:{status:"elaborating",assigneeType:q.assigneeType,assigneeUuid:q.assigneeUuid,cwdSource:m&&k?.trim()?k:null,cwdHost:m?l:null,runtimeCwd:m??null,assignedAt:new Date,...t},include:{project:{select:{uuid:!0,name:!0}}}});return g.B.emitChange({companyUuid:u.companyUuid,projectUuid:u.project.uuid,entityType:"idea",entityUuid:u.uuid,action:"updated"}),s(u)}async function C(a){let b=await e.z.idea.findUnique({where:{uuid:a}});if(!b)throw Error("Idea not found");let c=p(b.status),d=await e.z.idea.update({where:{uuid:a},data:{..."elaborated"!==c&&{status:"open",elaborationDepth:null,elaborationStatus:null},assigneeType:null,assigneeUuid:null,cwdSource:null,cwdHost:null,runtimeCwd:null,assignedAt:null,assignedByType:null,assignedByUuid:null},include:{project:{select:{uuid:!0,name:!0}}}});return g.B.emitChange({companyUuid:d.companyUuid,projectUuid:d.project.uuid,entityType:"idea",entityUuid:d.uuid,action:"updated"}),s(d)}async function D(a,b,c,d,e,f,g,h){let i=e?j.Xs(e):[],l=j.Xs(f),m=new Set(i.map(a=>`${a.type}:${a.uuid}`)),n=l.filter(a=>!m.has(`${a.type}:${a.uuid}`));if(0!==n.length)for(let e of(await j.AM({companyUuid:a,sourceType:"idea",sourceUuid:c,content:f,actorType:g,actorUuid:h,projectUuid:b,entityTitle:d}),n))(e.type!==g||e.uuid!==h)&&await k.createActivity({companyUuid:a,projectUuid:b,targetType:"idea",targetUuid:c,actorType:g,actorUuid:h,action:"mentioned",value:{mentionedType:e.type,mentionedUuid:e.uuid,mentionedName:e.displayName,sourceType:"idea",sourceUuid:c}})}async function E(a){let b=await e.z.idea.findUnique({where:{uuid:a},select:{companyUuid:!0}});b&&await e.z.idea.updateMany({where:{companyUuid:b.companyUuid,parentUuid:a},data:{parentUuid:null}});let c=await e.z.idea.delete({where:{uuid:a}});return g.B.emitChange({companyUuid:c.companyUuid,projectUuid:c.projectUuid,entityType:"idea",entityUuid:c.uuid,action:"deleted"}),c}async function F(a,b,c,d,f="user"){let h=await e.z.idea.findFirst({where:{uuid:b,companyUuid:a},include:{project:{select:{uuid:!0,name:!0}}}});if(!h)throw new i.hD("NOT_FOUND","Idea not found",404);let j=await e.z.project.findFirst({where:{uuid:c,companyUuid:a},select:{uuid:!0,name:!0}});if(!j)throw new i.hD("NOT_FOUND","Target project not found",404);if(h.projectUuid===c)throw new i.hD("BAD_REQUEST","Idea is already in the target project",400);let l=h.projectUuid,m=await z(b,a),n=[b,...m],o=await e.z.$transaction(async d=>{let e=(await d.proposal.findMany({where:{companyUuid:a,inputType:"idea",OR:n.map(a=>({inputUuids:{array_contains:[a]}}))},select:{uuid:!0}})).map(a=>a.uuid),f=(await d.idea.updateMany({where:{companyUuid:a,uuid:{in:n}},data:{projectUuid:c}})).count;h.parentUuid&&await d.idea.update({where:{uuid:b},data:{parentUuid:null}});let g=0,i=0,j=0,k=[],l=[];if(e.length>0){let[b,f]=await Promise.all([d.document.findMany({where:{companyUuid:a,proposalUuid:{in:e}},select:{uuid:!0}}),d.task.findMany({where:{companyUuid:a,proposalUuid:{in:e}},select:{uuid:!0}})]);k=b.map(a=>a.uuid),l=f.map(a=>a.uuid),g=(await d.proposal.updateMany({where:{companyUuid:a,uuid:{in:e}},data:{projectUuid:c}})).count,i=(await d.document.updateMany({where:{companyUuid:a,proposalUuid:{in:e}},data:{projectUuid:c}})).count,j=(await d.task.updateMany({where:{companyUuid:a,proposalUuid:{in:e}},data:{projectUuid:c}})).count}let m=await d.activity.updateMany({where:{companyUuid:a,OR:[{targetType:"idea",targetUuid:{in:n}},{targetType:"proposal",targetUuid:{in:e}},{targetType:"task",targetUuid:{in:l}},{targetType:"document",targetUuid:{in:k}}]},data:{projectUuid:c}});return{ideas:f,proposals:g,documents:i,tasks:j,activities:m.count}});await k.createActivity({companyUuid:a,projectUuid:c,targetType:"idea",targetUuid:b,actorType:f,actorUuid:d,action:"moved",value:{fromProjectUuid:l,fromProjectName:h.project.name,toProjectUuid:c,toProjectName:j.name,moved:o}}),g.B.emitChange({companyUuid:a,projectUuid:l,entityType:"idea",entityUuid:b,action:"updated"}),g.B.emitChange({companyUuid:a,projectUuid:c,entityType:"idea",entityUuid:b,action:"updated"});let p=await e.z.idea.findFirst({where:{uuid:b,companyUuid:a},include:{project:{select:{uuid:!0,name:!0}}}});return{...await s(p),moved:o}}async function G(a,b,c){let d=await e.z.idea.findFirst({where:{uuid:b,companyUuid:a},select:{uuid:!0,projectUuid:!0}});if(!d)throw new i.hD("NOT_FOUND","Idea not found",404);if(!await e.z.project.findFirst({where:{uuid:c,companyUuid:a},select:{uuid:!0}}))throw new i.hD("NOT_FOUND","Target project not found",404);if(d.projectUuid===c)throw new i.hD("BAD_REQUEST","Idea is already in the target project",400);let f=await z(b,a),g=[b,...f],h=(await e.z.proposal.findMany({where:{companyUuid:a,inputType:"idea",OR:g.map(a=>({inputUuids:{array_contains:[a]}}))},select:{uuid:!0}})).map(a=>a.uuid),j=0,k=0,l=[],m=[];if(h.length>0){let[b,c]=await Promise.all([e.z.document.findMany({where:{companyUuid:a,proposalUuid:{in:h}},select:{uuid:!0}}),e.z.task.findMany({where:{companyUuid:a,proposalUuid:{in:h}},select:{uuid:!0}})]);l=b.map(a=>a.uuid),m=c.map(a=>a.uuid),j=l.length,k=m.length}let n=await e.z.activity.count({where:{companyUuid:a,OR:[{targetType:"idea",targetUuid:{in:g}},{targetType:"proposal",targetUuid:{in:h}},{targetType:"task",targetUuid:{in:m}},{targetType:"document",targetUuid:{in:l}}]}});return{moved:{ideas:g.length,proposals:h.length,documents:j,tasks:k,activities:n}}}function H(a){switch(p(a.ideaStatus)){case"open":default:return{derivedStatus:"todo",badgeHint:"open"};case"elaborating":if("pending_answers"===a.elaborationStatus)return{derivedStatus:"human_conduct_required",badgeHint:"answer_questions"};return{derivedStatus:"in_progress",badgeHint:"researching"};case"elaborated":if(a.hasPendingProposal)return{derivedStatus:"human_conduct_required",badgeHint:"review_proposal"};if(a.hasApprovedProposal){if(a.taskStatuses.some(a=>"to_verify"===a))return{derivedStatus:"human_conduct_required",badgeHint:"verify_work"};if(a.taskStatuses.length>0&&a.taskStatuses.every(a=>"done"===a||"closed"===a))return{derivedStatus:"done",badgeHint:"done"};return{derivedStatus:"in_progress",badgeHint:"building"}}return{derivedStatus:"in_progress",badgeHint:"planning"}}}async function I(a,b){let c=await e.z.idea.findMany({where:{companyUuid:a,projectUuid:b},select:{uuid:!0,title:!0,status:!0,elaborationStatus:!0,parentUuid:!0,isContainer:!0,createdAt:!0,updatedAt:!0},orderBy:{createdAt:"desc"}}),d=await e.z.idea.groupBy({by:["parentUuid"],where:{companyUuid:a,projectUuid:b,parentUuid:{not:null}},_count:{_all:!0}})??[],f=new Map;for(let a of d)a.parentUuid&&f.set(a.parentUuid,a._count._all);let g=new Map;if(c.length>0)for(let b of await e.z.referenceArtifact.groupBy({by:["targetUuid"],where:{companyUuid:a,targetType:"idea",targetUuid:{in:c.map(a=>a.uuid)}},_count:{_all:!0}})??[])g.set(b.targetUuid,b._count._all);let h=await e.z.proposal.findMany({where:{companyUuid:a,projectUuid:b,status:{in:["approved","pending"]}},select:{uuid:!0,status:!0,inputUuids:!0,createdAt:!0},orderBy:{createdAt:"desc"}}),i=new Map,j=new Set,k=new Map;for(let a of h){let b=a.inputUuids;if(Array.isArray(b)){for(let c of b)if(k.set(c,(k.get(c)??0)+1),"pending"===a.status)j.add(c);else if("approved"===a.status){let b=i.get(c);(!b||a.createdAt>b.createdAt)&&i.set(c,{uuid:a.uuid,createdAt:a.createdAt})}}}let l=[...new Set([...i.values()].map(a=>a.uuid))],m=new Map;if(l.length>0)for(let b of(await e.z.task.findMany({where:{companyUuid:a,proposalUuid:{in:l}},select:{proposalUuid:!0,status:!0}}))){if(!b.proposalUuid)continue;let a=m.get(b.proposalUuid)||[];a.push(b.status),m.set(b.proposalUuid,a)}let n=c.map(a=>{let c=i.get(a.uuid),d=c&&m.get(c.uuid)||[],{derivedStatus:e,badgeHint:h}=H({ideaStatus:a.status,elaborationStatus:a.elaborationStatus,hasPendingProposal:j.has(a.uuid),hasApprovedProposal:!!c,taskStatuses:d});return{uuid:a.uuid,title:a.title,status:a.status,derivedStatus:e,badgeHint:h,createdAt:a.createdAt,updatedAt:a.updatedAt,projectUuid:b,proposalCount:k.get(a.uuid)??0,taskCount:d.length,parentUuid:a.parentUuid??null,childCount:f.get(a.uuid)??0,isContainer:a.isContainer,childProgress:null,referenceCount:g.get(a.uuid)??0}}),o=new Map;for(let a of n){if(!a.parentUuid)continue;let b=o.get(a.parentUuid)??[];b.push(a.derivedStatus),o.set(a.parentUuid,b)}for(let a of n){if(!a.isContainer)continue;let b=o.get(a.uuid)??[];if(0===b.length)continue;let c=function(a){let b=a.length,c=a.filter(a=>"done"===a).length,d={done:c,total:b};return 0===b?{derivedStatus:"todo",badgeHint:"open",childProgress:d}:c===b?{derivedStatus:"done",badgeHint:"done",childProgress:d}:a.some(a=>"todo"!==a)?{derivedStatus:"in_progress",badgeHint:"building",childProgress:d}:{derivedStatus:"todo",badgeHint:"open",childProgress:d}}(b);a.derivedStatus=c.derivedStatus,a.badgeHint=c.badgeHint,a.childProgress=c.childProgress}return n}let M=["todo","in_progress","human_conduct_required","done"];async function J(a,b){let c=await I(a,b),d={},e={};for(let a of M)d[a]=[],e[a]=0;for(let a of c){let b=a.derivedStatus,c={uuid:a.uuid,title:a.title,status:a.status,derivedStatus:b,badgeHint:a.badgeHint,createdAt:a.createdAt.toISOString(),parentUuid:a.parentUuid,childCount:a.childCount,isContainer:a.isContainer,childProgress:a.childProgress??null,referenceCount:a.referenceCount??0};d[b]&&(d[b].push(c),e[b]++)}return{groups:d,counts:e}}d()}catch(a){d(a)}})},70369:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{Bp:()=>v,Ld:()=>G,N_:()=>r,OQ:()=>z,Oi:()=>x,Rk:()=>s,Uc:()=>D,Vn:()=>E,i2:()=>C,k3:()=>F,mX:()=>A,sB:()=>u,ub:()=>t,y9:()=>B});var e=c(55511),f=c(52618),g=c(65582),h=c(42558),i=c(37943),j=c(28792),k=c(34853),l=c(93419),m=c(81722),n=a([f,i,j,k,l,m]);[f,i,j,k,l,m]=n.then?(await n)():n;let y=g.default.child({module:"daemon-instruction.service"});class z extends Error{constructor(){super("Daemon session not found"),this.code="session_not_visible",this.name="SessionNotVisibleError"}}class A extends Error{constructor(){super("Connection not found"),this.code="connection_not_visible",this.name="ConnectionNotVisibleError"}}class B extends Error{constructor(a){super("The chosen connection is offline. An instruction can only run on an online daemon connection (claude --resume is cwd/machine-bound)."),this.code="connection_offline",this.name="ConnectionOfflineError",this.connectionUuid=a}}class C extends Error{constructor(a){super("This conversation's origin is still online, so it cannot be re-pointed. Re-pointing only rescues a read-only conversation whose origin went offline; send to the live origin instead."),this.code="repoint_origin_live",this.name="RepointOriginLiveError",this.originConnectionUuid=a}}class D extends Error{constructor(a){super("empty"===a?"Instruction text must not be empty.":"Instruction text exceeds the maximum of 4000 characters."),this.code="invalid_instruction_text",this.name="InstructionTextError",this.reason=a}}function o(a){let b=(a??"").trim();if(0===b.length)throw new D("empty");if(b.length>4e3)throw new D("too_long");return b}async function p(a,b){let c="agent"===a.type?{agentUuid:a.actorUuid}:{agent:{ownerUuid:a.actorUuid}};return await f.z.daemonSession.findFirst({where:{uuid:b,companyUuid:a.companyUuid,...c},select:{agentUuid:!0,sessionId:!0,directIdeaUuid:!0,originConnectionUuid:!0}})}async function q(a){let{auth:b,agentUuid:c,sessionUuid:d,sessionId:e,directIdeaUuid:f,instructionText:g}=a,{turn:h}=await i.aF({companyUuid:b.companyUuid,projectUuid:"",projectName:"",recipientType:"agent",recipientUuid:c,entityType:null!=f?"idea":"daemon_session",entityUuid:null!=f?f:e,entityTitle:"",action:"human_instruction",message:"Human instruction",actorType:"agent"===b.type?"agent":"user",actorUuid:b.actorUuid,actorName:"",instructionText:g});if(!h)throw Error(`Instruction turn was not created on session ${d} (no online origin at chokepoint).`);return h}function r(a){try{(0,j.s7)({companyUuid:a.companyUuid,targetConnectionUuid:a.originConnectionUuid,command:"deliver_turn",turnUuid:a.turnUuid,...a.runtimeCwd?{runtimeCwd:a.runtimeCwd}:{}})}catch(b){y.warn({err:b,originConnectionUuid:a.originConnectionUuid,turnUuid:a.turnUuid},"deliver_turn live ping failed; the turn is persisted and will be recovered by the daemon's reconnect-backfill")}}async function s(a,b){let c=o(b.instructionText),d=await p(a,b.sessionUuid);if(!d)throw new z;await (0,k.assertContinuable)(a.companyUuid,b.sessionUuid);let e=await q({auth:a,agentUuid:d.agentUuid,sessionUuid:b.sessionUuid,sessionId:d.sessionId,directIdeaUuid:d.directIdeaUuid,instructionText:c});return r({companyUuid:a.companyUuid,originConnectionUuid:d.originConnectionUuid,turnUuid:e.uuid}),{turn:e}}async function t(a,b){let c=o(b.instructionText),d=await w(a,b.agentUuid),f=await (0,l.HC)(a.companyUuid,b.agentUuid,b.connectionUuid);if(!d||!f)throw new A;if(!await (0,l.j8)(a.companyUuid,b.connectionUuid))throw new B(b.connectionUuid);let g=(0,e.randomUUID)(),h=await (0,k.resolveOrCreateSession)({companyUuid:a.companyUuid,agentUuid:b.agentUuid,sessionId:g,directIdeaUuid:null,originConnectionUuid:b.connectionUuid}),i=await q({auth:a,agentUuid:b.agentUuid,sessionUuid:h.uuid,sessionId:g,directIdeaUuid:null,instructionText:c});return r({companyUuid:a.companyUuid,originConnectionUuid:b.connectionUuid,turnUuid:i.uuid}),{session:h,turn:i}}class E extends Error{constructor(){super("Project not found"),this.code="project_not_visible",this.name="ProjectNotVisibleError"}}class F extends Error{constructor(a){super("The chosen connection has no registered agent instance yet. Wait for the daemon to finish its handshake and retry."),this.code="connection_instance_missing",this.name="ConnectionInstanceMissingError",this.connectionUuid=a}}class G extends Error{constructor(a){super(`Project fixed working directory is ${a}`),this.availability=a,this.code="project_cwd_target_unavailable"}}async function u(a,b){let c=b.mode??"elaborate";if(!await w(a,b.agentUuid))throw new A;let d=await f.z.project.findFirst({where:{uuid:b.projectUuid,companyUuid:a.companyUuid},select:{uuid:!0,name:!0}});if(!d)throw new E;let g="user"===a.type?a.actorUuid:(await f.z.agent.findFirst({where:{uuid:a.actorUuid,companyUuid:a.companyUuid},select:{ownerUuid:!0}}))?.ownerUuid;if(!g)throw new A;let i=await (0,m.gt)({companyUuid:a.companyUuid,actorUserUuid:g,projectUuid:d.uuid,agentUuid:b.agentUuid}),j=b.connectionUuid,n=null,p=null,q=null,s=null;if("project_fixed"===i.source){if("ready"!==i.availability||!i.connectionUuid||!i.agentInstanceUuid)throw new G("offline"===i.availability?"offline":"invalid");j=i.connectionUuid,n=i.agentInstanceUuid,p="project_fixed",q=i.host,s=i.cwd}else{if(!await (0,l.HC)(a.companyUuid,b.agentUuid,b.connectionUuid))throw new A;if(!await (0,l.j8)(a.companyUuid,b.connectionUuid))throw new B(b.connectionUuid);let c=await f.z.daemonConnection.findFirst({where:{uuid:b.connectionUuid,companyUuid:a.companyUuid},select:{agentInstanceUuid:!0}});if(!c?.agentInstanceUuid)throw new F(b.connectionUuid);n=c.agentInstanceUuid}let t=b.descriptionText?.trim()??"";if(0===t.length)throw new D("empty");let u=(0,e.randomUUID)(),v=o(function(a){let b=a.projectName?.trim()?`"${a.projectName.trim()}" (projectUuid: ${a.projectUuid})`:`projectUuid: ${a.projectUuid}`;return"decompose"===a.mode?[`[Chorus container-decompose entry] A new CONTAINER idea has been PRE-CREATED for project ${b} from the user's description below, and it is already assigned to you (status: elaborating, isContainer: true).`,` ideaUuid: ${a.ideaUuid}`,"\nThis conversation IS that container idea's root session. The user wants help DECOMPOSING it into child ideas. Do the following, in order:\n1. Edit the container via chorus_edit_idea: derive a concise title from the description and polish the content (keep the user's meaning). The current title is a placeholder.",`2. Ensure it stays a container: it was pre-created with isContainer=true — do NOT clear that flag (a container groups its child ideas and MUST NOT get a proposal of its own).`,`3. Run ONE lightweight elaboration round (chorus_pm_start_elaboration) to clarify the decomposition scope/dimension — how to slice the work into children. Keep it short; you may self-answer in headless or ask the user, then continue.`,`4. Propose the candidate child ideas AS A STRUCTURED ELABORATION ROUND (chorus_pm_start_elaboration) for the user to review/edit/confirm — use ONE elaboration question PER proposed child (the child's title as the question text, a short rationale as its description), single-select. Elaboration questions are single-select and a round is capped at 15 questions, so propose at most 15 candidates per round and NEVER a single multi-select question; if you need more children, propose them across additional rounds. Do NOT create any child ideas yet — this round is the preview the user accepts/edits/declines per child.`,"5. End the turn. The user's answers in the idea's elaboration panel will wake this same conversation (the existing elaboration-answered wake).",`6. On that re-wake, create each ACCEPTED child via chorus_pm_create_idea with parentUuid=${a.ideaUuid}. Each child starts in the "open" state — do NOT auto-elaborate them. The container's OWN status stays "elaborated"; creating children does not advance or alter it.`,"",`Reference reflex: whenever an external link is evidence for this work (a precedent issue/PR, a reference implementation, official docs, a paper/blog), attach it via references — prefer the inline references[] param at creation time over a post-hoc chorus_add_reference.`,"\n--- User's idea description ---",a.descriptionText].join("\n"):[`[Chorus conversational idea entry] A new idea has been PRE-CREATED for project ${b} from the user's description below, and it is already assigned to you (status: elaborating).`,` ideaUuid: ${a.ideaUuid}`,"",`This conversation IS that idea's root session — its elaboration and lifecycle wakes will continue here. Do the following, in order:`,"1. Edit the idea via chorus_edit_idea: derive a concise title from the description and polish the content (keep the user's meaning; you may restructure). The current title is a placeholder.",`2. Immediately start elaboration on the idea (chorus_pm_start_elaboration), following the idea skill — do NOT wait for another wake. Post a short summary of your questions in this conversation and direct the user to answer in the idea's elaboration panel.`,"3. End the turn. The user's panel answers will wake this same conversation.\n",`Reference reflex: whenever an external link is evidence for this idea (a precedent issue/PR, a reference implementation, official docs, a paper/blog), attach it via references — prefer the inline references[] param at creation time over a post-hoc chorus_add_reference.`,"\n--- User's idea description ---",a.descriptionText].join("\n")}({ideaUuid:u,projectUuid:d.uuid,projectName:d.name,descriptionText:t,mode:c})),{ideaRow:x,sessionRow:y,turnRow:z}=await f.z.$transaction(async e=>{let f=await e.idea.create({data:{uuid:u,companyUuid:a.companyUuid,projectUuid:d.uuid,title:function(a){let b=(a??"").split("\n").map(a=>a.trim()).find(a=>a.length>0)??"";return 0===b.length?"-":b.length<=60?b:`${b.slice(0,59)}…`}(t),content:t,isContainer:"decompose"===c,status:"elaborating",assigneeType:"agent_instance",assigneeUuid:n,cwdSource:p,cwdHost:q,runtimeCwd:s,assignedAt:new Date,assignedByType:"agent"===a.type?"agent":"user",assignedByUuid:a.actorUuid,createdByUuid:a.actorUuid},select:{uuid:!0,title:!0,content:!0,status:!0,projectUuid:!0,createdAt:!0}}),g=await e.daemonSession.create({data:{companyUuid:a.companyUuid,agentUuid:b.agentUuid,sessionId:u,directIdeaUuid:u,originConnectionUuid:j,runtimeCwd:s,status:"active"}}),h=await e.daemonSessionTurn.create({data:{sessionUuid:g.uuid,seq:1,trigger:"human_instruction",promptText:v,status:"pending"}});return{ideaRow:f,sessionRow:g,turnRow:h}}),C={uuid:y.uuid,agentUuid:y.agentUuid,sessionId:y.sessionId,backendSessionId:y.backendSessionId,directIdeaUuid:y.directIdeaUuid,originConnectionUuid:y.originConnectionUuid,runtimeCwd:y.runtimeCwd,status:y.status,title:y.title,lastTurnAt:y.lastTurnAt.toISOString(),totalInputTokens:y.totalInputTokens,totalOutputTokens:y.totalOutputTokens,totalCacheReadTokens:y.totalCacheReadTokens,totalCacheCreationTokens:y.totalCacheCreationTokens,createdAt:y.createdAt.toISOString(),updatedAt:y.updatedAt.toISOString()},H={uuid:z.uuid,sessionUuid:z.sessionUuid,seq:z.seq,trigger:z.trigger,promptText:z.promptText,status:z.status,interruptedReason:z.interruptedReason,relayError:z.relayError,usage:null,executionUuid:z.executionUuid,startedAt:z.startedAt?z.startedAt.toISOString():null,endedAt:z.endedAt?z.endedAt.toISOString():null,createdAt:z.createdAt.toISOString()},I={uuid:x.uuid,title:x.title,content:x.content,status:x.status,projectUuid:x.projectUuid,createdAt:x.createdAt.toISOString()};return(0,k.publishTranscriptEvent)({companyUuid:a.companyUuid,sessionUuid:C.uuid,trigger:"turn_created",turn:H,messages:[]}),h.B.emitChange({companyUuid:a.companyUuid,projectUuid:d.uuid,entityType:"idea",entityUuid:I.uuid,action:"created"}),r({companyUuid:a.companyUuid,originConnectionUuid:j,turnUuid:H.uuid}),{idea:I,session:C,turn:H}}async function v(a,b){let c=o(b.instructionText),d=await p(a,b.sessionUuid);if(!d)throw new z;if(await (0,l.j8)(a.companyUuid,d.originConnectionUuid))throw new C(d.originConnectionUuid);if(!await (0,l.HC)(a.companyUuid,d.agentUuid,b.connectionUuid))throw new A;if(!await (0,l.j8)(a.companyUuid,b.connectionUuid))throw new B(b.connectionUuid);await f.z.daemonSession.update({where:{uuid:b.sessionUuid,companyUuid:a.companyUuid},data:{originConnectionUuid:b.connectionUuid}});let e=await q({auth:a,agentUuid:d.agentUuid,sessionUuid:b.sessionUuid,sessionId:d.sessionId,directIdeaUuid:d.directIdeaUuid,instructionText:c});r({companyUuid:a.companyUuid,originConnectionUuid:b.connectionUuid,turnUuid:e.uuid});let g=await f.z.daemonSession.findUnique({where:{uuid:b.sessionUuid}});if(!g)throw Error(`repointSessionOriginAndSend: session ${b.sessionUuid} missing after re-point`);return{session:{uuid:g.uuid,agentUuid:g.agentUuid,sessionId:g.sessionId,backendSessionId:g.backendSessionId,directIdeaUuid:g.directIdeaUuid,originConnectionUuid:g.originConnectionUuid,runtimeCwd:g.runtimeCwd,status:g.status,title:g.title,lastTurnAt:g.lastTurnAt.toISOString(),totalInputTokens:g.totalInputTokens,totalOutputTokens:g.totalOutputTokens,totalCacheReadTokens:g.totalCacheReadTokens,totalCacheCreationTokens:g.totalCacheCreationTokens,createdAt:g.createdAt.toISOString(),updatedAt:g.updatedAt.toISOString()},turn:e}}async function w(a,b){return"agent"===a.type?b===a.actorUuid:await f.z.agent.count({where:{uuid:b,companyUuid:a.companyUuid,ownerUuid:a.actorUuid}})>0}async function x(a){let b=await (0,k.getVisibleSessions)(a);if(0===b.length)return[];let c=[...new Set(b.map(a=>a.originConnectionUuid))],d=await f.z.daemonConnection.findMany({where:{companyUuid:a.companyUuid,uuid:{in:c}},select:{uuid:!0,status:!0,lastSeenAt:!0}}),e=Date.now(),g=new Set(d.filter(a=>"online"===a.status&&e-a.lastSeenAt.getTime()<=k.STALE_THRESHOLD_MS).map(a=>a.uuid)),h=[...new Set(b.map(a=>a.directIdeaUuid).filter(a=>!!a))],i=(0,k.getFirstInstructionBySessionUuid)(b.map(a=>a.uuid)),j=h.length>0?f.z.idea.findMany({where:{companyUuid:a.companyUuid,uuid:{in:h}},select:{uuid:!0,title:!0}}):Promise.resolve([]),l=await i,m=await j,n=new Map(m.map(a=>[a.uuid,a.title]));return b.map(a=>({...a,originOnline:g.has(a.originConnectionUuid),firstInstruction:l.get(a.uuid)??null,ideaTitle:a.directIdeaUuid?n.get(a.directIdeaUuid)??null:null}))}d()}catch(a){d(a)}})},71165:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{AY:()=>N,Cm:()=>P,Ew:()=>H,Fp:()=>A,IM:()=>O,K4:()=>w,LQ:()=>C,Pf:()=>D,QK:()=>z,QL:()=>K,UT:()=>x,Vk:()=>u,_T:()=>E,cn:()=>F,gg:()=>v,j9:()=>L,lC:()=>y,vQ:()=>M,vq:()=>B,xI:()=>o});var e=c(52618),f=c(76872),g=c(42558),h=c(48873),i=c(54349),j=c(90494),k=c(88437),l=c(65582),m=c(68775),n=a([e,f,i,j,k]);[e,f,i,j,k]=n.then?(await n)():n;let Q={open:["assigned","closed"],assigned:["open","in_progress","closed"],in_progress:["to_verify","closed"],to_verify:["done","in_progress","closed"],done:["closed"],closed:[]};function o(a,b){return(Q[a]||[]).includes(b)}let R={total:0,required:0,passed:0,failed:0,pending:0,requiredPassed:0,requiredFailed:0,requiredPending:0};function p(a){if(0===a.length)return{status:"not_started",summary:{...R}};let b={...R,total:a.length};for(let c of a)c.required&&b.required++,"passed"===c.status?(b.passed++,c.required&&b.requiredPassed++):"failed"===c.status?(b.failed++,c.required&&b.requiredFailed++):(b.pending++,c.required&&b.requiredPending++);return b.requiredFailed>0?{status:"failed",summary:b}:b.requiredPassed===b.required&&b.required>0?{status:"passed",summary:b}:b.passed>0||b.failed>0?{status:"in_progress",summary:b}:{status:"not_started",summary:b}}function q(a){return{uuid:a.uuid,description:a.description,required:a.required,devStatus:a.devStatus,devEvidence:a.devEvidence,devMarkedByType:a.devMarkedByType,devMarkedBy:a.devMarkedBy,devMarkedAt:a.devMarkedAt?.toISOString()??null,status:a.status,evidence:a.evidence,markedByType:a.markedByType,markedBy:a.markedBy,markedAt:a.markedAt?.toISOString()??null,sortOrder:a.sortOrder}}async function r(a,b,c,d){if(!d)return{assigneeType:b,assigneeUuid:c};let f=await e.z.agentInstance.findFirst({where:{uuid:d,companyUuid:a},select:{uuid:!0}});if(!f)throw Error("Agent instance not found");return{assigneeType:"agent_instance",assigneeUuid:f.uuid}}async function s(a,b=0){let[c,d]=await Promise.all([(0,f.ir)(a.assigneeType,a.assigneeUuid,a.assignedAt,a.assignedByUuid,a.assignedByType,a.companyUuid),(0,f.LS)(a.createdByUuid)]),e=(a.dependsOn||[]).map(a=>({uuid:a.dependsOn.uuid,title:a.dependsOn.title,status:a.dependsOn.status})),g=(a.dependedBy||[]).map(a=>({uuid:a.task.uuid,title:a.task.title,status:a.task.status})),h=(a.acceptanceCriteriaItems||[]).map(q),{status:i,summary:j}=p(a.acceptanceCriteriaItems||[]);return{uuid:a.uuid,title:a.title,description:a.description,status:a.status,priority:a.priority,storyPoints:a.storyPoints,acceptanceCriteria:a.acceptanceCriteria,acceptanceCriteriaItems:h,acceptanceStatus:i,acceptanceSummary:j,assignee:c,proposalUuid:a.proposalUuid,...a.project&&{project:a.project},createdBy:d,dependsOn:e,dependedBy:g,commentCount:b,createdAt:a.createdAt.toISOString(),updatedAt:a.updatedAt.toISOString()}}async function t(a,b){if(0===a.length)return[];let c=[],d=[],e=[];for(let b of a)b.assigneeType&&b.assigneeUuid&&(c.push({type:b.assigneeType,uuid:b.assigneeUuid}),"agent_instance"===b.assigneeType&&e.push(b.assigneeUuid)),d.push(b.createdByUuid);let[g,h,i,j]=await Promise.all([(0,f.Uo)(c),(0,f.Xx)(d),(0,f.dI)(e),(0,f.O3)(a[0].companyUuid,a.map(a=>({assignedByType:a.assignedByType,assignedByUuid:a.assignedByUuid})))]);return a.map((a,c)=>{let d=null;if(a.assigneeType&&a.assigneeUuid){let b=g.get(a.assigneeUuid);if(b){let e=j[c],f="agent_instance"===a.assigneeType?i.get(a.assigneeUuid):void 0;d={type:a.assigneeType,uuid:a.assigneeUuid,name:b,assignedAt:a.assignedAt?.toISOString()??null,assignedBy:e,...f?{instance:f}:{}}}}let e=h.get(a.createdByUuid)??null,f=(a.dependsOn||[]).map(a=>({uuid:a.dependsOn.uuid,title:a.dependsOn.title,status:a.dependsOn.status})),k=(a.dependedBy||[]).map(a=>({uuid:a.task.uuid,title:a.task.title,status:a.task.status})),l=(a.acceptanceCriteriaItems||[]).map(q),{status:m,summary:n}=p(a.acceptanceCriteriaItems||[]);return{uuid:a.uuid,title:a.title,description:a.description,status:a.status,priority:a.priority,storyPoints:a.storyPoints,acceptanceCriteria:a.acceptanceCriteria,acceptanceCriteriaItems:l,acceptanceStatus:m,acceptanceSummary:n,assignee:d,proposalUuid:a.proposalUuid,...a.project&&{project:a.project},createdBy:e,dependsOn:f,dependedBy:k,commentCount:b[a.uuid]??0,createdAt:a.createdAt.toISOString(),updatedAt:a.updatedAt.toISOString()}})}let S={dependsOn:{select:{dependsOn:{select:{uuid:!0,title:!0,status:!0}}}},dependedBy:{select:{task:{select:{uuid:!0,title:!0,status:!0}}}},acceptanceCriteriaItems:{orderBy:{sortOrder:"asc"}}};async function u({companyUuid:a,projectUuid:b,skip:c,take:d,status:f,priority:g,proposalUuids:h}){let j={projectUuid:b,companyUuid:a,...f&&{status:f},...g&&{priority:g},...h&&h.length>0&&{proposalUuid:{in:h}}},[k,l]=await Promise.all([e.z.task.findMany({where:j,skip:c,take:d,orderBy:[{priority:"desc"},{createdAt:"desc"}],select:{uuid:!0,title:!0,description:!0,status:!0,priority:!0,storyPoints:!0,acceptanceCriteria:!0,companyUuid:!0,assigneeType:!0,assigneeUuid:!0,assignedAt:!0,assignedByType:!0,assignedByUuid:!0,proposalUuid:!0,createdByUuid:!0,createdAt:!0,updatedAt:!0,...S}}),e.z.task.count({where:j})]),m=await (0,i.uA)(a,"task",k.map(a=>a.uuid));return{tasks:await t(k,m),total:l}}async function v(a,b){let c=await e.z.task.findFirst({where:{uuid:b,companyUuid:a},include:{project:{select:{uuid:!0,name:!0}},...S}});if(!c)return null;let d=await e.z.comment.count({where:{companyUuid:a,targetType:"task",targetUuid:b}});return s(c,d)}async function w(a,b){return e.z.task.findFirst({where:{uuid:b,companyUuid:a}})}async function x(a){let b=await e.z.task.create({data:{companyUuid:a.companyUuid,projectUuid:a.projectUuid,title:a.title,description:a.description,status:"open",priority:a.priority||"medium",storyPoints:a.storyPoints,acceptanceCriteria:a.acceptanceCriteria,proposalUuid:a.proposalUuid,createdByUuid:a.createdByUuid},select:{uuid:!0,title:!0,description:!0,status:!0,priority:!0,storyPoints:!0,acceptanceCriteria:!0,companyUuid:!0,assigneeType:!0,assigneeUuid:!0,assignedAt:!0,assignedByType:!0,assignedByUuid:!0,proposalUuid:!0,createdByUuid:!0,createdAt:!0,updatedAt:!0}});return g.B.emitChange({companyUuid:a.companyUuid,projectUuid:a.projectUuid,entityType:"task",entityUuid:b.uuid,action:"created"}),s(b)}async function y(a,b,c){let d=null;if(void 0!==b.description&&c){let b=await e.z.task.findUnique({where:{uuid:a},select:{description:!0}});d=b?.description??null}let f=await e.z.$transaction(async c=>{if(b.status&&"done"!==b.status){let b=await c.task.findUnique({where:{uuid:a},select:{status:!0}});b?.status==="to_verify"&&await c.acceptanceCriterion.updateMany({where:{taskUuid:a},data:{status:"pending",evidence:null,markedByType:null,markedBy:null,markedAt:null,devStatus:"pending",devEvidence:null,devMarkedByType:null,devMarkedBy:null,devMarkedAt:null}})}return c.task.update({where:{uuid:a},data:b,include:{project:{select:{uuid:!0,name:!0}}}})});return g.B.emitChange({companyUuid:f.companyUuid,projectUuid:f.project.uuid,entityType:"task",entityUuid:f.uuid,action:"updated"}),void 0!==b.description&&c&&b.description&&I(f.companyUuid,f.project.uuid,"task",f.uuid,f.title,d,b.description,c.actorType,c.actorUuid).catch(a=>l.default.error({err:a},"Failed to process task mentions")),s(f)}async function z({taskUuid:a,companyUuid:b,assigneeType:c,assigneeUuid:d,assignedByUuid:f,assignedByType:i,instanceUuid:j,cwdSource:k,cwdHost:l,runtimeCwd:m}){try{let h=await r(b,c,d,j),n=function(a,b){if(!a&&!b)return{};if(!a||!b)throw Error("Assignment provenance type and UUID must be provided together");return{assignedByType:a,assignedByUuid:b}}(i,f),o=await e.z.task.update({where:{uuid:a,status:{in:["open","assigned"]}},data:{status:"assigned",assigneeType:h.assigneeType,assigneeUuid:h.assigneeUuid,cwdSource:m&&k?.trim()?k:null,cwdHost:m?l:null,runtimeCwd:m??null,assignedAt:new Date,...n},include:{project:{select:{uuid:!0,name:!0}}}});return g.B.emitChange({companyUuid:o.companyUuid,projectUuid:o.project.uuid,entityType:"task",entityUuid:o.uuid,action:"updated"}),s(o)}catch(a){if((0,h.Ik)(a))throw new h.Yy("Task");throw a}}async function A(a){try{let b=await e.z.task.update({where:{uuid:a,status:"assigned"},data:{status:"open",assigneeType:null,assigneeUuid:null,cwdSource:null,cwdHost:null,runtimeCwd:null,assignedAt:null,assignedByType:null,assignedByUuid:null},include:{project:{select:{uuid:!0,name:!0}}}});return g.B.emitChange({companyUuid:b.companyUuid,projectUuid:b.project.uuid,entityType:"task",entityUuid:b.uuid,action:"updated"}),s(b)}catch(a){if((0,h.Ik)(a))throw new h.nm("Task");throw a}}async function B(a){let b=await e.z.task.delete({where:{uuid:a}});return g.B.emitChange({companyUuid:b.companyUuid,projectUuid:b.projectUuid,entityType:"task",entityUuid:b.uuid,action:"deleted"}),b}async function C(a,b){if(0===b.length)return[];let c=b.map((b,c)=>e.z.acceptanceCriterion.create({data:{taskUuid:a,description:b.description,required:b.required??!0,sortOrder:b.sortOrder??c}}));return(await Promise.all(c)).map(q)}async function D(a,b,c){let d=await e.z.task.findFirst({where:{uuid:b,companyUuid:a}});if(!d)throw Error("Task not found");if(!(0,m.hY)(c))throw Error(m.se);let f=(0,m.Ch)(c),h=await e.z.$transaction(async a=>(await a.acceptanceCriterion.deleteMany({where:{taskUuid:b}}),f.length>0&&await a.acceptanceCriterion.createMany({data:f.map((a,c)=>({taskUuid:b,description:a.description,required:a.required,sortOrder:c}))}),a.acceptanceCriterion.findMany({where:{taskUuid:b},orderBy:{sortOrder:"asc"}})));return g.B.emitChange({companyUuid:a,projectUuid:d.projectUuid,entityType:"task",entityUuid:b,action:"updated"}),h.map(q)}async function E(a,b,c,d){let f=await e.z.task.findFirst({where:{uuid:b,companyUuid:a}});if(!f)throw Error("Task not found");let h=new Set((await e.z.acceptanceCriterion.findMany({where:{taskUuid:b},select:{uuid:!0}})).map(a=>a.uuid));for(let a of c)if(!h.has(a.uuid))throw Error(`Criterion ${a.uuid} does not belong to task ${b}`);for(let a of c)await e.z.acceptanceCriterion.update({where:{uuid:a.uuid},data:{status:a.status,evidence:a.evidence??null,markedByType:d.type,markedBy:d.actorUuid,markedAt:new Date}});return g.B.emitChange({companyUuid:a,projectUuid:f.projectUuid,entityType:"task",entityUuid:b,action:"updated"}),G(a,b)}async function F(a,b,c,d){let f=await e.z.task.findFirst({where:{uuid:b,companyUuid:a}});if(!f)throw Error("Task not found");let h=new Set((await e.z.acceptanceCriterion.findMany({where:{taskUuid:b},select:{uuid:!0}})).map(a=>a.uuid));for(let a of c)if(!h.has(a.uuid))throw Error(`Criterion ${a.uuid} does not belong to task ${b}`);for(let a of c)await e.z.acceptanceCriterion.update({where:{uuid:a.uuid},data:{devStatus:a.devStatus,devEvidence:a.devEvidence??null,devMarkedByType:d.type,devMarkedBy:d.actorUuid,devMarkedAt:new Date}});return g.B.emitChange({companyUuid:a,projectUuid:f.projectUuid,entityType:"task",entityUuid:b,action:"updated"}),G(a,b)}async function G(a,b){if(!await e.z.task.findFirst({where:{uuid:b,companyUuid:a}}))throw Error("Task not found");let c=await e.z.acceptanceCriterion.findMany({where:{taskUuid:b},orderBy:{sortOrder:"asc"}}),d=c.map(q),{status:f,summary:g}=p(c);return{items:d,status:f,summary:g}}async function H(a){let b=await e.z.acceptanceCriterion.findMany({where:{taskUuid:a},orderBy:{sortOrder:"asc"}});if(0===b.length||b.filter(a=>a.required).every(a=>"passed"===a.status))return{allowed:!0};let{summary:c}=p(b),d=b.filter(a=>a.required&&"passed"!==a.status).map(q);return{allowed:!1,reason:`Not all required acceptance criteria are passed. Required: ${c.required}, Passed: ${c.requiredPassed}, Failed: ${c.requiredFailed}, Pending: ${c.requiredPending}`,summary:c,unresolvedCriteria:d}}async function I(a,b,c,d,e,f,g,h,i){let l=f?j.Xs(f):[],m=j.Xs(g),n=new Set(l.map(a=>`${a.type}:${a.uuid}`)),o=m.filter(a=>!n.has(`${a.type}:${a.uuid}`));if(0!==o.length)for(let f of(await j.AM({companyUuid:a,sourceType:c,sourceUuid:d,content:g,actorType:h,actorUuid:i,projectUuid:b,entityTitle:e}),o))(f.type!==h||f.uuid!==i)&&await k.createActivity({companyUuid:a,projectUuid:b,targetType:c,targetUuid:d,actorType:h,actorUuid:i,action:"mentioned",value:{mentionedType:f.type,mentionedUuid:f.uuid,mentionedName:f.displayName,sourceType:c,sourceUuid:d}})}async function J(a,b){let c=await e.z.taskDependency.findMany({select:{taskUuid:!0,dependsOnUuid:!0}}),d=new Map;for(let a of c)d.has(a.taskUuid)||d.set(a.taskUuid,[]),d.get(a.taskUuid).push(a.dependsOnUuid);let f=new Set,g=[a];for(;g.length>0;){let a=g.pop();if(a===b)return!0;if(!f.has(a))for(let b of(f.add(a),d.get(a)||[]))f.has(b)||g.push(b)}return!1}async function K(a,b,c){if(b===c)throw Error("A task cannot depend on itself");let[d,f]=await Promise.all([e.z.task.findFirst({where:{uuid:b,companyUuid:a}}),e.z.task.findFirst({where:{uuid:c,companyUuid:a}})]);if(!d)throw Error("Task not found");if(!f)throw Error("Dependency task not found");if(d.projectUuid!==f.projectUuid)throw Error("Tasks must belong to the same project");if(await J(c,b))throw Error("Adding this dependency would create a cycle");let h=await e.z.taskDependency.create({data:{taskUuid:b,dependsOnUuid:c}});return g.B.emitChange({companyUuid:d.companyUuid,projectUuid:d.projectUuid,entityType:"task",entityUuid:b,action:"updated"}),g.B.emitChange({companyUuid:f.companyUuid,projectUuid:f.projectUuid,entityType:"task",entityUuid:c,action:"updated"}),{taskUuid:h.taskUuid,dependsOnUuid:h.dependsOnUuid,createdAt:h.createdAt}}async function L(a,b,c){let d=await e.z.task.findFirst({where:{uuid:b,companyUuid:a}});if(!d)throw Error("Task not found");let f=await e.z.task.findFirst({where:{uuid:c,companyUuid:a}});await e.z.taskDependency.deleteMany({where:{taskUuid:b,dependsOnUuid:c}}),g.B.emitChange({companyUuid:d.companyUuid,projectUuid:d.projectUuid,entityType:"task",entityUuid:b,action:"updated"}),f&&g.B.emitChange({companyUuid:f.companyUuid,projectUuid:f.projectUuid,entityType:"task",entityUuid:c,action:"updated"})}async function M(a,b){let c=await e.z.task.findFirst({where:{uuid:b,companyUuid:a},include:S});if(!c)throw Error("Task not found");return{dependsOn:c.dependsOn.map(a=>({uuid:a.dependsOn.uuid,title:a.dependsOn.title,status:a.dependsOn.status})),dependedBy:c.dependedBy.map(a=>({uuid:a.task.uuid,title:a.task.title,status:a.task.status}))}}async function N({companyUuid:a,projectUuid:b,proposalUuids:c,skip:d,take:f}){let g={projectUuid:b,companyUuid:a,status:{in:["open","assigned"]},...c&&c.length>0&&{proposalUuid:{in:c}},NOT:{dependsOn:{some:{dependsOn:{status:{notIn:["done","closed"]}}}}}},[h,j]=await Promise.all([e.z.task.findMany({where:g,skip:d,take:f,orderBy:[{priority:"desc"},{createdAt:"desc"}],select:{uuid:!0,title:!0,description:!0,status:!0,priority:!0,storyPoints:!0,acceptanceCriteria:!0,companyUuid:!0,assigneeType:!0,assigneeUuid:!0,assignedAt:!0,assignedByType:!0,assignedByUuid:!0,proposalUuid:!0,createdByUuid:!0,createdAt:!0,updatedAt:!0,...S}}),e.z.task.count({where:g})]),k=await (0,i.uA)(a,"task",h.map(a=>a.uuid));return{tasks:await t(h,k),total:j}}async function O(a){let b=await e.z.taskDependency.findMany({where:{taskUuid:a},select:{dependsOn:{select:{uuid:!0,title:!0,status:!0,assigneeType:!0,assigneeUuid:!0}}}});if(0===b.length)return{resolved:!0,blockers:[]};let c=b.filter(a=>"done"!==a.dependsOn.status&&"closed"!==a.dependsOn.status);if(0===c.length)return{resolved:!0,blockers:[]};let d=c.map(a=>a.dependsOn.uuid),[g,h]=await Promise.all([e.z.sessionTaskCheckin.findMany({where:{taskUuid:{in:d},checkoutAt:null},select:{taskUuid:!0,sessionUuid:!0,session:{select:{name:!0}}}}),(0,f.Uo)(c.filter(a=>a.dependsOn.assigneeType&&a.dependsOn.assigneeUuid).map(a=>({type:a.dependsOn.assigneeType,uuid:a.dependsOn.assigneeUuid})))]),i=new Map;for(let a of g)i.set(a.taskUuid,{sessionUuid:a.sessionUuid,sessionName:a.session.name});let j=c.map(a=>{let b=a.dependsOn,c=null;if(b.assigneeType&&b.assigneeUuid){let a=h.get(b.assigneeUuid);a&&(c={type:b.assigneeType,uuid:b.assigneeUuid,name:a})}return{uuid:b.uuid,title:b.title,status:b.status,assignee:c,sessionCheckin:i.get(b.uuid)??null}});return{resolved:!1,blockers:j}}async function P(a,b){let[c,d]=await Promise.all([e.z.task.findMany({where:{companyUuid:a,projectUuid:b},select:{uuid:!0,title:!0,status:!0,priority:!0,proposalUuid:!0}}),e.z.taskDependency.findMany({where:{task:{companyUuid:a,projectUuid:b}},select:{taskUuid:!0,dependsOnUuid:!0}})]);return{nodes:c.map(a=>({uuid:a.uuid,title:a.title,status:a.status,priority:a.priority,proposalUuid:a.proposalUuid??null})),edges:d.map(a=>({from:a.taskUuid,to:a.dependsOnUuid}))}}d()}catch(a){d(a)}})},77716:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{V:()=>h});var e=c(52618),f=c(76872),g=a([e,f]);async function h(a,b,c){let d=null;if("idea"===b)d=await e.z.idea.findFirst({where:{uuid:c,companyUuid:a},select:{assignedByType:!0,assignedByUuid:!0}});else{if("task"!==b)return null;d=await e.z.task.findFirst({where:{uuid:c,companyUuid:a},select:{assignedByType:!0,assignedByUuid:!0}})}if(!d?.assignedByUuid||"user"===d.assignedByType)return null;let g=await (0,f.b)(a,d.assignedByType,d.assignedByUuid);return g?.type==="agent"?{type:"agent",uuid:g.uuid,name:g.name}:null}[e,f]=g.then?(await g)():g,d()}catch(a){d(a)}})},88437:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{createActivity:()=>k,listActivities:()=>i,listActivitiesWithActorNames:()=>j});var e=c(52618),f=c(42558),g=c(76872),h=a([e,g]);async function i({companyUuid:a,projectUuid:b,skip:c,take:d,targetType:f,targetUuid:g}){let h={projectUuid:b,companyUuid:a,...f&&{targetType:f},...g&&{targetUuid:g}},[i,j]=await Promise.all([e.z.activity.findMany({where:h,skip:c,take:d,orderBy:{createdAt:"desc"},select:{uuid:!0,targetType:!0,targetUuid:!0,actorType:!0,actorUuid:!0,action:!0,value:!0,sessionUuid:!0,sessionName:!0,createdAt:!0}}),e.z.activity.count({where:h})]);return{activities:i,total:j}}async function j(a){let{activities:b,total:c}=await i(a);return{activities:await Promise.all(b.map(async a=>{let b=await (0,g.lR)(a.actorType,a.actorUuid);return{uuid:a.uuid,targetType:a.targetType,targetUuid:a.targetUuid,action:a.action,actorType:a.actorType,actorName:b||"Unknown",value:a.value,sessionUuid:a.sessionUuid,sessionName:a.sessionName,createdAt:a.createdAt.toISOString()}})),total:c}}async function k({companyUuid:a,projectUuid:b,targetType:c,targetUuid:d,actorType:g,actorUuid:h,action:i,value:j,sessionUuid:k,sessionName:l}){let m=await e.z.activity.create({data:{companyUuid:a,projectUuid:b,targetType:c,targetUuid:d,actorType:g,actorUuid:h,action:i,value:j||void 0,sessionUuid:k||void 0,sessionName:l||void 0}});return f.B.emit("activity",{companyUuid:a,projectUuid:b,targetType:c,targetUuid:d,actorType:g,actorUuid:h,action:i,value:j,sessionUuid:k,sessionName:l,uuid:m.uuid}),m}[e,g]=h.then?(await h)():h,d()}catch(a){d(a)}})},90494:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{AM:()=>q,Xs:()=>p,_L:()=>x});var e=c(52618),f=c(76872),g=c(37943),h=c(25736),i=c(97515),j=c(93419),k=c(81722),l=a([e,f,g,i,j,k]);[e,f,g,i,j,k]=l.then?(await l)():l;let z=/@\[([^\]]+)\]\((user|agent):([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})(?:\?([^)]*))?\)/gi;async function m(a,b,c){if("user"===b)return c;let d=await e.z.agent.findFirst({where:{uuid:c,companyUuid:a},select:{ownerUuid:!0}});return d?.ownerUuid??null}async function n(a,b,c){return"idea"===b?(await e.z.idea.findFirst({where:{uuid:c,companyUuid:a},select:{projectUuid:!0}}))?.projectUuid??null:"task"===b?(await e.z.task.findFirst({where:{uuid:c,companyUuid:a},select:{projectUuid:!0}}))?.projectUuid??null:"proposal"===b?(await e.z.proposal.findFirst({where:{uuid:c,companyUuid:a},select:{projectUuid:!0}}))?.projectUuid??null:(await e.z.document.findFirst({where:{uuid:c,companyUuid:a},select:{projectUuid:!0}}))?.projectUuid??null}async function o(a){let b=await m(a.companyUuid,a.actorType,a.actorUuid);if(!b)return null;let d=null,g=null,h=null,i=null;if(a.entityType&&a.entityUuid){let{resolveRootIdea:b}=await Promise.resolve().then(c.bind(c,35205)),{directIdeaUuid:j}=await b(a.companyUuid,a.entityType,a.entityUuid);if(j){let b=await e.z.idea.findFirst({where:{uuid:j,companyUuid:a.companyUuid},select:{assigneeType:!0,assigneeUuid:!0,cwdSource:!0,cwdHost:!0,runtimeCwd:!0}}),c=b?await (0,f.wo)(a.companyUuid,b.assigneeType,b.assigneeUuid):null;b?.assigneeType==="agent_instance"&&b.assigneeUuid&&c===a.agentUuid&&(d=b.assigneeUuid,g="project_fixed"===b.cwdSource?"project_fixed":"registered_instance",h=b.cwdHost,i=b.runtimeCwd)}}return(0,k.gt)({companyUuid:a.companyUuid,actorUserUuid:b,projectUuid:a.projectUuid,agentUuid:a.agentUuid,registeredInstanceUuid:d,registeredSource:g,registeredHost:h,registeredRuntimeCwd:i})}function p(a){let b,c=[],d=new Set;for(z.lastIndex=0;null!==(b=z.exec(a))&&!(c.length>=10);){let a=b[1],e=b[2].toLowerCase(),f=b[3].toLowerCase(),{pinnedHost:g,pinnedCwd:i,runtimeCwd:j}=(0,h.vE)(b[4]),k=`${e}:${f}`;if(!d.has(k)){d.add(k);let b={type:e,uuid:f,displayName:a};(null!==g||null!==i)&&(b.pinnedHost=g,b.pinnedCwd=i,j&&(b.runtimeCwd=!0)),c.push(b)}}return c}async function q(a){let{companyUuid:b,sourceType:c,sourceUuid:d,content:h,actorType:i,actorUuid:j,projectUuid:k,entityTitle:l}=a,m=p(h);if(0===m.length)return;let n=m.filter(a=>a.type!==i||a.uuid!==j);if(0===n.length)return;let q=[];for(let a of n)await y(b,a.type,a.uuid)&&q.push(a);if(0===q.length)return;await e.z.mention.createMany({data:q.map(a=>({companyUuid:b,sourceType:c,sourceUuid:d,mentionedType:a.type,mentionedUuid:a.uuid,actorType:i,actorUuid:j}))});let r=await (0,f.lR)(i,j)??"Someone",s=await e.z.project.findUnique({where:{uuid:k},select:{name:!0}}),t=s?.name??"Unknown Project",u=function(a){let b=a.replace(z,"@$1");return b.length<=120?b:b.substring(0,117)+"..."}(h),v=c,w=d;if("comment"===c){let a=await e.z.comment.findUnique({where:{uuid:d},select:{targetType:!0,targetUuid:!0}});a&&(v=a.targetType,w=a.targetUuid)}let x=[];for(let a of q){if(!(await g.lX(b,a.type,a.uuid)).mentioned)continue;let c=`${r} mentioned you: "${u}"`,d=void 0!==a.pinnedHost||void 0!==a.pinnedCwd,e="agent"!==a.type||d&&!0!==a.runtimeCwd?null:await o({companyUuid:b,actorType:i,actorUuid:j,projectUuid:k,agentUuid:a.uuid,entityType:!0===a.runtimeCwd?void 0:["idea","task","proposal","document"].includes(v)?v:void 0,entityUuid:!0===a.runtimeCwd?void 0:w});x.push({companyUuid:b,projectUuid:k,recipientType:a.type,recipientUuid:a.uuid,entityType:v,entityUuid:w,entityTitle:l,projectName:t,action:"mentioned",message:c,actorType:i,actorUuid:j,actorName:r,pinnedHost:a.pinnedHost,pinnedCwd:a.pinnedCwd,...e?.source==="project_fixed"?{resolvedCwdSource:e.source,resolvedCwdHost:e.host,resolvedRuntimeCwd:e.cwd,resolvedCwdAvailability:e.availability}:e?.source==="registered_instance"?{pinnedHost:e.host,pinnedCwd:e.cwd}:{}})}x.length>0&&await g.Xm(x)}function r(a){return"agent"===a.type?+!a.online:2}function s(a,b){let c=r(a),d=r(b);if(c!==d)return c-d;if(0===c){let c=a.activeCount??0,d=b.activeCount??0;return c!==d?c-d:a.name.localeCompare(b.name)}return 0}async function t(a,b){let c=b.filter(a=>"agent"===a.type).map(a=>a.uuid);if(0===c.length)return;let d=Date.now(),f=await e.z.daemonConnection.findMany({where:{companyUuid:a,agentUuid:{in:c}},select:{agentUuid:!0,status:!0,lastSeenAt:!0}}),g=new Set;for(let a of f){let b=d-a.lastSeenAt.getTime()<=i.BP;"online"===a.status&&b&&g.add(a.agentUuid)}let h=await e.z.daemonExecution.groupBy({by:["agentUuid"],where:{companyUuid:a,agentUuid:{in:c},status:{in:[...j.PF]}},_count:{_all:!0}}),k=new Map;for(let a of h)k.set(a.agentUuid,a._count._all);for(let a of b){if("agent"!==a.type)continue;let b=g.has(a.uuid);a.online=b,a.activeCount=b?k.get(a.uuid)??0:0}}async function u(a,b){let c=b.filter(a=>"agent"===a.type);if(0===c.length)return;let d=await Promise.all(c.map(async b=>{let c=(await (0,i._R)(a,b.uuid)).map(a=>({connectionUuid:a.uuid,host:a.host,cwd:a.cwd,effectiveStatus:a.effectiveStatus}));return{uuid:b.uuid,instances:c}})),e=new Map;for(let{uuid:a,instances:b}of d)e.set(a,b);for(let a of b)"agent"===a.type&&(a.instances=e.get(a.uuid)??[])}async function v(a,b,d,g){if(!b.some(a=>"agent"===a.type))return;let{resolveRootIdea:h}=await Promise.resolve().then(c.bind(c,35205)),{directIdeaUuid:i}=await h(a,d,g);if(!i)return;let j=await e.z.idea.findFirst({where:{uuid:i,companyUuid:a},select:{assigneeType:!0,assigneeUuid:!0}});if(!j)return;let k=await (0,f.wo)(a,j.assigneeType,j.assigneeUuid),l="agent_instance"===j.assigneeType?await (0,f.Vj)(j.assigneeType,j.assigneeUuid):null;for(let a of b){if("agent"!==a.type)continue;let b=null!==k&&a.uuid===k;a.isIdeaAssignee=b,b&&l&&j.assigneeUuid&&(a.ideaPin={host:l.host,cwd:l.cwd,agentInstanceUuid:j.assigneeUuid})}}async function w(a){let b=a.results.filter(a=>"agent"===a.type);if(0===b.length)return;let c="user"===a.actorType?a.actorUuid:a.ownerUuid;if(!c)return;let d=await n(a.companyUuid,a.entityType,a.entityUuid);if(!d)return;let f=await e.z.projectAgentCwdPreference.findMany({where:{companyUuid:a.companyUuid,userUuid:c,projectUuid:d,agentUuid:{in:b.map(a=>a.uuid)}},select:{agentUuid:!0,host:!0,cwd:!0}}),g=new Map(f.map(a=>[a.agentUuid,a]));for(let a of b){let b=g.get(a.uuid);if(!b)continue;let c=(a.instances??[]).some(a=>a.host===b.host&&"online"===a.effectiveStatus);a.projectFixedCwd={host:b.host,cwd:b.cwd,availability:b.host&&b.cwd?c?"ready":"offline":"invalid"}}}async function x(a){let b,{companyUuid:c,query:d,actorType:f,actorUuid:g,ownerUuid:h,limit:i=10,withInstances:j=!1,entityType:k,entityUuid:l}=a,m=!!k&&!!l,n=Math.min(i,50),o=[];if("user"===f?b=g:"agent"===f&&h&&(b=h),!d){if(b)for(let a of(await e.z.agent.findMany({where:{companyUuid:c,ownerUuid:b},select:{uuid:!0,name:!0,roles:!0},orderBy:{createdAt:"desc"},take:n})))o.push({type:"agent",uuid:a.uuid,name:a.name,roles:a.roles});await t(c,o),o.sort(s);let a=o.slice(0,Math.min(5,n));return j&&await u(c,a),m&&(await v(c,a,k,l),await w({companyUuid:c,actorType:f,actorUuid:g,ownerUuid:h,results:a,entityType:k,entityUuid:l})),a}for(let a of(await e.z.user.findMany({where:{companyUuid:c,OR:[{name:{contains:d,mode:"insensitive"}},{email:{contains:d,mode:"insensitive"}}]},select:{uuid:!0,name:!0,email:!0,avatarUrl:!0},take:n})))o.push({type:"user",uuid:a.uuid,name:a.name??a.email??"Unknown",email:a.email,avatarUrl:a.avatarUrl});let p={companyUuid:c,name:{contains:d,mode:"insensitive"}};for(let a of(b&&(p.ownerUuid=b),await e.z.agent.findMany({where:p,select:{uuid:!0,name:!0,roles:!0},take:n})))o.push({type:"agent",uuid:a.uuid,name:a.name,roles:a.roles});await t(c,o),o.sort(s);let q=o.slice(0,n);return j&&await u(c,q),m&&(await v(c,q,k,l),await w({companyUuid:c,actorType:f,actorUuid:g,ownerUuid:h,results:q,entityType:k,entityUuid:l})),q}async function y(a,b,c){return"user"===b?!!await e.z.user.findFirst({where:{uuid:c,companyUuid:a},select:{uuid:!0}}):!!await e.z.agent.findFirst({where:{uuid:c,companyUuid:a},select:{uuid:!0}})}d()}catch(a){d(a)}})}};
|