@chorus-aidlc/chorus 0.12.1 → 0.13.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/app-build-manifest.json +431 -399
- package/.next/standalone/.next/app-path-routes-manifest.json +43 -43
- package/.next/standalone/.next/build-manifest.json +5 -5
- package/.next/standalone/.next/prerender-manifest.json +21 -45
- package/.next/standalone/.next/react-loadable-manifest.json +36 -30
- package/.next/standalone/.next/routes-manifest.json +16 -6
- 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 -0
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/graph/page.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/graph/page_client-reference-manifest.js +1 -0
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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 +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.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.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.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/sync-token/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/comments/route.js +1 -1
- package/.next/standalone/.next/server/app/api/comments/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/comments/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon/control/route.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon/control/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/daemon/control/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon/execution-state/route.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon/execution-state/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/daemon/execution-state/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon/executions/route.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon/executions/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/daemon/executions/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon/pending-turns/route.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon/pending-turns/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/daemon/pending-turns/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon/report-interrupt/route.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon/report-interrupt/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/daemon/report-interrupt/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon/resume/route.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon/resume/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/daemon/resume/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon/transcript/route.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon/transcript/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/daemon/transcript/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon/turn-advance/route.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon/turn-advance/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/daemon/turn-advance/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/instruction/route.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/instruction/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/instruction/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/repoint/route.js +1 -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.js +1 -1
- package/.next/standalone/.next/server/app/api/documents/[uuid]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/documents/[uuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/entities/[type]/[uuid]/root-idea/route.js +1 -1
- package/.next/standalone/.next/server/app/api/entities/[type]/[uuid]/root-idea/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/entities/[type]/[uuid]/root-idea/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/events/notifications/route.js +4 -4
- 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 +6 -6
- 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/conversational/route.js +1 -0
- package/.next/standalone/.next/server/app/api/{auth/refresh → ideas/conversational}/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/ideas/conversational/route_client-reference-manifest.js +1 -0
- 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.js +1 -1
- package/.next/standalone/.next/server/app/api/project-groups/[uuid]/dashboard/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/project-groups/[uuid]/dashboard/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/project-groups/[uuid]/route.js +1 -1
- package/.next/standalone/.next/server/app/api/project-groups/[uuid]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/project-groups/[uuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/project-groups/route.js +1 -1
- package/.next/standalone/.next/server/app/api/project-groups/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/project-groups/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/activity/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/available/route.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/available/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/available/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/documents/route.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/documents/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/documents/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/group/route.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/group/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/group/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/route.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/tracker/route.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/tracker/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/tracker/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/route.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/summary/route.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/summary/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/summary/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/resource-graph/route.js +1 -0
- package/.next/standalone/.next/server/app/api/projects/[uuid]/resource-graph/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/projects/[uuid]/resource-graph/route_client-reference-manifest.js +1 -0
- package/.next/standalone/.next/server/app/api/projects/[uuid]/route.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/stats/route.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/stats/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/stats/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/dependencies/route.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/dependencies/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/dependencies/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/route.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/proposals/[uuid]/approve/route.js +1 -1
- package/.next/standalone/.next/server/app/api/proposals/[uuid]/approve/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/proposals/[uuid]/approve/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/proposals/[uuid]/close/route.js +1 -1
- package/.next/standalone/.next/server/app/api/proposals/[uuid]/close/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/proposals/[uuid]/close/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/proposals/[uuid]/reject/route.js +1 -1
- package/.next/standalone/.next/server/app/api/proposals/[uuid]/reject/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/proposals/[uuid]/reject/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/proposals/[uuid]/revoke/route.js +1 -1
- package/.next/standalone/.next/server/app/api/proposals/[uuid]/revoke/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/proposals/[uuid]/revoke/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/proposals/[uuid]/route.js +1 -1
- package/.next/standalone/.next/server/app/api/proposals/[uuid]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/proposals/[uuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/search/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/session/route.js +1 -0
- package/.next/standalone/.next/server/app/api/session/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/session/route_client-reference-manifest.js +1 -0
- package/.next/standalone/.next/server/app/api/sessions/[uuid]/route.js +1 -1
- package/.next/standalone/.next/server/app/api/sessions/[uuid]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/sessions/[uuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/claim/route.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/claim/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/claim/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/route.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/release/route.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/release/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/release/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/route.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/sessions/route.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/sessions/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/sessions/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/index.html +1 -1
- package/.next/standalone/.next/server/app/index.rsc +3 -3
- package/.next/standalone/.next/server/app/login/admin/page.js +2 -2
- package/.next/standalone/.next/server/app/login/admin/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/login/admin/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/login/admin.html +1 -1
- package/.next/standalone/.next/server/app/login/admin.rsc +2 -2
- package/.next/standalone/.next/server/app/login/callback/page.js +2 -2
- package/.next/standalone/.next/server/app/login/callback/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/login/callback/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/login/callback.html +1 -1
- package/.next/standalone/.next/server/app/login/callback.rsc +3 -3
- package/.next/standalone/.next/server/app/login/page.js +2 -2
- package/.next/standalone/.next/server/app/login/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/login/pick-workspace/page.js +1 -1
- package/.next/standalone/.next/server/app/login/pick-workspace/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/login/pick-workspace.html +1 -1
- package/.next/standalone/.next/server/app/login/pick-workspace.rsc +3 -3
- package/.next/standalone/.next/server/app/login.html +1 -1
- package/.next/standalone/.next/server/app/login.rsc +3 -3
- 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 +1 -1
- package/.next/standalone/.next/server/app/onboarding.rsc +3 -3
- package/.next/standalone/.next/server/app/page.js +2 -2
- package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/projects.html +1 -1
- package/.next/standalone/.next/server/app/projects.rsc +4 -4
- package/.next/standalone/.next/server/app/settings.html +1 -1
- package/.next/standalone/.next/server/app/settings.rsc +4 -4
- package/.next/standalone/.next/server/app-paths-manifest.json +43 -43
- package/.next/standalone/.next/server/chunks/1113.js +2 -2
- package/.next/standalone/.next/server/chunks/1114.js +1 -0
- package/.next/standalone/.next/server/chunks/1337.js +1 -1
- package/.next/standalone/.next/server/chunks/1559.js +13 -0
- package/.next/standalone/.next/server/chunks/2315.js +1 -1
- package/.next/standalone/.next/server/chunks/2364.js +2 -2
- package/.next/standalone/.next/server/chunks/{7258.js → 2516.js} +1 -1
- package/.next/standalone/.next/server/chunks/2618.js +1 -1
- package/.next/standalone/.next/server/chunks/2631.js +2 -2
- package/.next/standalone/.next/server/chunks/282.js +1 -1
- package/.next/standalone/.next/server/chunks/2961.js +1 -1
- package/.next/standalone/.next/server/chunks/3197.js +3 -0
- package/.next/standalone/.next/server/chunks/3217.js +1 -1
- package/.next/standalone/.next/server/chunks/3219.js +1 -1
- package/.next/standalone/.next/server/chunks/3371.js +1 -0
- package/.next/standalone/.next/server/chunks/3373.js +1 -0
- package/.next/standalone/.next/server/chunks/3419.js +1 -1
- package/.next/standalone/.next/server/chunks/3680.js +1 -1
- package/.next/standalone/.next/server/chunks/4157.js +1 -1
- package/.next/standalone/.next/server/chunks/4193.js +1 -1
- package/.next/standalone/.next/server/chunks/4375.js +2 -2
- package/.next/standalone/.next/server/chunks/4615.js +1 -1
- package/.next/standalone/.next/server/chunks/4827.js +1 -0
- package/.next/standalone/.next/server/chunks/4958.js +1 -0
- package/.next/standalone/.next/server/chunks/5090.js +1 -1
- package/.next/standalone/.next/server/chunks/5095.js +6 -0
- package/.next/standalone/.next/server/chunks/5217.js +1 -1
- package/.next/standalone/.next/server/chunks/5300.js +1 -1
- package/.next/standalone/.next/server/chunks/5319.js +1 -1
- package/.next/standalone/.next/server/chunks/5453.js +1 -1
- package/.next/standalone/.next/server/chunks/5511.js +1 -1
- package/.next/standalone/.next/server/chunks/5957.js +1 -0
- package/.next/standalone/.next/server/chunks/6113.js +1 -1
- package/.next/standalone/.next/server/chunks/6207.js +1 -1
- package/.next/standalone/.next/server/chunks/6496.js +1 -0
- package/.next/standalone/.next/server/chunks/679.js +1 -0
- package/.next/standalone/.next/server/chunks/6817.js +1 -0
- package/.next/standalone/.next/server/chunks/704.js +31 -0
- package/.next/standalone/.next/server/chunks/7160.js +1 -1
- package/.next/standalone/.next/server/chunks/7217.js +1 -1
- 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/796.js +6 -6
- package/.next/standalone/.next/server/chunks/8431.js +1 -1
- package/.next/standalone/.next/server/chunks/8448.js +1 -0
- package/.next/standalone/.next/server/chunks/{8267.js → 8481.js} +1 -1
- package/.next/standalone/.next/server/chunks/8497.js +1 -0
- package/.next/standalone/.next/server/chunks/8577.js +153 -0
- package/.next/standalone/.next/server/chunks/8812.js +1 -1
- package/.next/standalone/.next/server/chunks/8895.js +1 -0
- package/.next/standalone/.next/server/chunks/903.js +1 -1
- package/.next/standalone/.next/server/chunks/920.js +1 -1
- package/.next/standalone/.next/server/chunks/9726.js +1 -0
- package/.next/standalone/.next/server/chunks/9849.js +2 -2
- package/.next/standalone/.next/server/instrumentation.js +1 -1
- 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/middleware-react-loadable-manifest.js +1 -1
- package/.next/standalone/.next/server/pages/404.html +1 -1
- package/.next/standalone/.next/server/pages/500.html +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/server/src/middleware.js +5 -5
- package/.next/standalone/.next/static/chunks/15653-31c406c41bf58048.js +1 -0
- package/.next/standalone/.next/static/chunks/{16551-68896c0ca7966ebf.js → 16551-d129ae0de4a04d69.js} +5 -5
- package/.next/standalone/.next/static/chunks/1892-9c03d4d3560ff572.js +1 -0
- package/.next/standalone/.next/static/chunks/22190.149dd0799cbcba06.js +1 -0
- package/.next/standalone/.next/static/chunks/225-8a41a800021f3d11.js +1 -0
- package/.next/standalone/.next/static/chunks/{2351.35085ef2663aaa44.js → 2351.a2908f154b03857c.js} +1 -1
- package/.next/standalone/.next/static/chunks/24459-3bc9657d71c77b47.js +1 -0
- package/.next/standalone/.next/static/chunks/{29047.664290ff8a84b205.js → 29047.65b677c7f3e6459f.js} +1 -1
- package/.next/standalone/.next/static/chunks/{30682.c8fc49d63bf75772.js → 30682.b12a9bef588e7b03.js} +1 -1
- package/.next/standalone/.next/static/chunks/31467.9f8adfa602f97fcf.js +115 -0
- package/.next/standalone/.next/static/chunks/{33187.1328c15b9dab78a8.js → 33187.13c12f5c0821ac57.js} +1 -1
- package/.next/standalone/.next/static/chunks/{33665.20ed9144405f8b21.js → 33665.804ece4d6c6e4eca.js} +3 -3
- package/.next/standalone/.next/static/chunks/34520.1a6c6a7c421b0ff3.js +1 -0
- package/.next/standalone/.next/static/chunks/38296-316ba18af72385fb.js +1 -0
- package/.next/standalone/.next/static/chunks/46055-f786ace4b994dc40.js +1 -0
- package/.next/standalone/.next/static/chunks/{47066.7848777fc81f5714.js → 47066.214cf62dd898ea16.js} +1 -1
- package/.next/standalone/.next/static/chunks/4860.7844c573cb3914f3.js +1 -0
- package/.next/standalone/.next/static/chunks/48782.4ca261e8e23a8983.js +24 -0
- package/.next/standalone/.next/static/chunks/52064-74d81c8d682deb6b.js +1 -0
- package/.next/standalone/.next/static/chunks/57362-9ece5cc290dab705.js +1 -0
- package/.next/standalone/.next/static/chunks/{14655-4f3bc7f3044c42c1.js → 58037-55d7422c6b808356.js} +1 -1
- package/.next/standalone/.next/static/chunks/58262-395c00e04f610a32.js +1 -0
- package/.next/standalone/.next/static/chunks/58699.364d357d33fcb52f.js +80 -0
- package/.next/standalone/.next/static/chunks/61963.fd130ba09dd25e2e.js +23 -0
- package/.next/standalone/.next/static/chunks/65317.ab0c5ecb4164b291.js +148 -0
- package/.next/standalone/.next/static/chunks/68255-05c42a26602c6b37.js +1 -0
- package/.next/standalone/.next/static/chunks/{69477.4b854e377a3860cc.js → 69477.5b79cd575f93298f.js} +1 -1
- package/.next/standalone/.next/static/chunks/{69763.37d07a3035805bc7.js → 69763.003df47b4ee38644.js} +1 -1
- package/.next/standalone/.next/static/chunks/7317.8e3ce1ce083425d8.js +5 -0
- package/.next/standalone/.next/static/chunks/73506.b9c053e2335b6084.js +1 -0
- package/.next/standalone/.next/static/chunks/75752-cc8fafe132943baa.js +1 -0
- package/.next/standalone/.next/static/chunks/78966.075119c3a72135ed.js +1 -0
- package/.next/standalone/.next/static/chunks/79806.21f1d23ca273000d.js +4 -0
- package/.next/standalone/.next/static/chunks/80350-8ac8d602965bb4df.js +1 -0
- package/.next/standalone/.next/static/chunks/84169-71a87d06871ec9df.js +1 -0
- package/.next/standalone/.next/static/chunks/85947.c813bf8bc6e1d675.js +90 -0
- package/.next/standalone/.next/static/chunks/91709.ed3bfd285c518df1.js +287 -0
- package/.next/standalone/.next/static/chunks/94400.0d371a4d306a614b.js +1 -0
- package/.next/standalone/.next/static/chunks/94528-ed3f03485480f5e5.js +1 -0
- package/.next/standalone/.next/static/chunks/94743-aff8a51a7f7970a9.js +1 -0
- package/.next/standalone/.next/static/chunks/96028.cdbf36dca753e70f.js +215 -0
- package/.next/standalone/.next/static/chunks/{96132.3bac072bb2743fb5.js → 96132.ab9b9433c7b2fa1c.js} +1 -1
- package/.next/standalone/.next/static/chunks/97306-8834e12cdbeed920.js +1 -0
- package/.next/standalone/.next/static/chunks/{97784-42081b75f8cc6da8.js → 97784-7b90a17294840e32.js} +1 -1
- package/.next/standalone/.next/static/chunks/99373.6f0ec031fb759d88.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/layout-a3747bde1ddaba52.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/project-groups/[uuid]/page-87b79c98e46fbd04.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/page-f72f17eb58614d2b.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page-0467d744b84aa2c2.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/{page-e0935445535c28cb.js → page-7abff55f9bfebab3.js} +1 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/graph/page-3238e0b5474c60f6.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page-9f0ebba7e855b2f9.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/new/page-6dbfbe5d97855e42.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/page-b8fbcac7224342db.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page-0a04a31e1b383094.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/page-e2a69b645ec9ae13.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/{page-fec019d974ef8d4e.js → page-b760877bfcd12dff.js} +1 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/settings/page-111aed4d3319d64b.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/admin/companies/[uuid]/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/admin/companies/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/admin/login/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/admin/session/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/agent-connections/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/agents/[uuid]/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/agents/[uuid]/sessions/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/agents/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/api-keys/[uuid]/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/api-keys/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/auth/callback/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/auth/check-default/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/auth/company-oidc/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/auth/default-login/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/auth/identify/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/auth/logout/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/auth/me/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/auth/sync-token/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/comments/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/daemon/control/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/daemon/execution-state/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/daemon/executions/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/daemon/pending-turns/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/daemon/report-interrupt/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/daemon/resume/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/daemon/transcript/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/daemon/turn-advance/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/[sessionUuid]/instruction/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/[sessionUuid]/repoint/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/[sessionUuid]/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/ad-hoc/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/documents/[uuid]/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/entities/[type]/[uuid]/root-idea/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/events/notifications/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/events/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/health/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/claim/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/move/preview/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/move/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/parent/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/release/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/ideas/conversational/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/mcp/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/me/assignments/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/mentionables/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/notifications/[uuid]/archive/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/notifications/[uuid]/read/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/notifications/preferences/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/notifications/read-all/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/notifications/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/notifications/unread-count/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/project-groups/[uuid]/dashboard/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/project-groups/[uuid]/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/project-groups/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/activity/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/available/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/documents/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/group/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/ideas/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/ideas/tracker/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/proposals/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/proposals/summary/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/resource-graph/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/stats/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/tasks/dependencies/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/tasks/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/projects/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/approve/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/close/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/reject/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/revoke/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/search/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/session/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/sessions/[uuid]/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/claim/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/dependencies/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/release/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/sessions/route-47e1d397c5fcef9e.js +1 -0
- package/.next/standalone/.next/static/chunks/app/login/callback/page-39a43f6d0245f8ca.js +1 -0
- package/.next/standalone/.next/static/chunks/app/login/page-acda3a31dc6a8280.js +1 -0
- package/.next/standalone/.next/static/chunks/app/login/pick-workspace/page-10683852baf17426.js +1 -0
- package/.next/standalone/.next/static/chunks/app/onboarding/{page-2936274fb252329e.js → page-8e20c8aa8ff90326.js} +1 -1
- package/.next/standalone/.next/static/chunks/app/page-000b1349c8d5b652.js +1 -0
- package/.next/standalone/.next/static/chunks/{f57f1d5e.71d2022a2e2d95ba.js → f57f1d5e.c345ce68aa5052a7.js} +1 -1
- package/.next/standalone/.next/static/chunks/{fcc64ffe-de8d357e657bd162.js → fcc64ffe-2c36a6b45f81782c.js} +3 -3
- package/.next/standalone/.next/static/chunks/webpack-fe12dfe2e0d0e4f3.js +1 -0
- package/.next/standalone/.next/static/css/3f3ae2bdc9e55259.css +1 -0
- package/.next/standalone/.next/static/eORNzMShbzkJbNfQT8MbW/_buildManifest.js +1 -0
- package/.next/standalone/package.json +3 -1
- package/.next/standalone/public/chorus-plugin/skills/develop/SKILL.md +2 -0
- package/.next/standalone/public/chorus-plugin/skills/idea/SKILL.md +2 -0
- package/.next/standalone/public/skill/develop-chorus/SKILL.md +2 -0
- package/.next/standalone/public/skill/idea-chorus/SKILL.md +2 -0
- package/README.md +23 -2
- package/README.zh.md +23 -2
- package/chorus.mjs +118 -34
- package/cli/client-args.mjs +31 -9
- package/cli/control-handler.mjs +22 -5
- package/cli/daemon-lifecycle.mjs +192 -25
- package/cli/daemon-rest-client.mjs +6 -2
- package/cli/daemon-service.mjs +422 -0
- package/cli/daemon.mjs +181 -13
- package/cli/embedded-db.mjs +234 -0
- package/cli/event-router.mjs +29 -10
- package/cli/prompts.mjs +61 -0
- package/cli/turn-reporter.mjs +26 -5
- package/cli/wake-queue.mjs +30 -0
- package/cli/waker.mjs +91 -22
- package/package.json +3 -1
- package/prisma/migrations/20260704023331_add_turn_interrupted_state/migration.sql +2 -0
- package/prisma/schema.prisma +9 -2
- package/.next/standalone/.next/server/app/api/auth/refresh/route.js +0 -1
- package/.next/standalone/.next/server/app/api/auth/refresh/route_client-reference-manifest.js +0 -1
- package/.next/standalone/.next/server/app/api/auth/session/route.js +0 -1
- package/.next/standalone/.next/server/app/api/auth/session/route.js.nft.json +0 -1
- package/.next/standalone/.next/server/app/api/auth/session/route_client-reference-manifest.js +0 -1
- package/.next/standalone/.next/server/app/api/keepalive/route.js +0 -1
- package/.next/standalone/.next/server/app/api/keepalive/route.js.nft.json +0 -1
- package/.next/standalone/.next/server/app/api/keepalive/route_client-reference-manifest.js +0 -1
- package/.next/standalone/.next/server/app/login/silent-refresh/page.js +0 -2
- package/.next/standalone/.next/server/app/login/silent-refresh/page.js.nft.json +0 -1
- package/.next/standalone/.next/server/app/login/silent-refresh/page_client-reference-manifest.js +0 -1
- package/.next/standalone/.next/server/app/login/silent-refresh.html +0 -1
- package/.next/standalone/.next/server/app/login/silent-refresh.meta +0 -7
- package/.next/standalone/.next/server/app/login/silent-refresh.rsc +0 -24
- package/.next/standalone/.next/server/chunks/1463.js +0 -1
- package/.next/standalone/.next/server/chunks/1596.js +0 -13
- package/.next/standalone/.next/server/chunks/2622.js +0 -1
- package/.next/standalone/.next/server/chunks/2779.js +0 -31
- package/.next/standalone/.next/server/chunks/4292.js +0 -1
- package/.next/standalone/.next/server/chunks/4872.js +0 -1
- package/.next/standalone/.next/server/chunks/5538.js +0 -1
- package/.next/standalone/.next/server/chunks/6096.js +0 -3
- package/.next/standalone/.next/server/chunks/7063.js +0 -6
- package/.next/standalone/.next/server/chunks/7427.js +0 -1
- package/.next/standalone/.next/server/chunks/7515.js +0 -1
- package/.next/standalone/.next/server/chunks/8732.js +0 -1
- package/.next/standalone/.next/server/chunks/9161.js +0 -1
- package/.next/standalone/.next/server/chunks/9273.js +0 -1
- package/.next/standalone/.next/server/chunks/937.js +0 -153
- package/.next/standalone/.next/static/GmBblfxcDziUENBiEap4B/_buildManifest.js +0 -1
- package/.next/standalone/.next/static/chunks/10344-2e9a9d767e2e8ed1.js +0 -1
- package/.next/standalone/.next/static/chunks/20081-a2bf5c9f24d5d589.js +0 -1
- package/.next/standalone/.next/static/chunks/22190.ee4e8f3ac0189d87.js +0 -1
- package/.next/standalone/.next/static/chunks/2280-f48bf99ea9d88ece.js +0 -1
- package/.next/standalone/.next/static/chunks/26394-4af487a51dd62832.js +0 -1
- package/.next/standalone/.next/static/chunks/31467.2013df596c751e6e.js +0 -115
- package/.next/standalone/.next/static/chunks/34520.34ba1239c9b5a275.js +0 -1
- package/.next/standalone/.next/static/chunks/37784-95dee37276b1067b.js +0 -1
- package/.next/standalone/.next/static/chunks/46983-8bf90f1ffeb55957.js +0 -1
- package/.next/standalone/.next/static/chunks/46999-f53da8f53fe1b8a9.js +0 -1
- package/.next/standalone/.next/static/chunks/4860.e3d0dd79a4d37626.js +0 -1
- package/.next/standalone/.next/static/chunks/48782.5b60e8a0f22f6da1.js +0 -24
- package/.next/standalone/.next/static/chunks/54637-71d281d649ea3a17.js +0 -1
- package/.next/standalone/.next/static/chunks/58245-b2ea112ace9624d2.js +0 -1
- package/.next/standalone/.next/static/chunks/58699.fa3b8ce67889f23b.js +0 -80
- package/.next/standalone/.next/static/chunks/61963.18e80afc0dac41e3.js +0 -23
- package/.next/standalone/.next/static/chunks/65317.7179d4bc41c8075a.js +0 -148
- package/.next/standalone/.next/static/chunks/7317.1a06bc56028637f6.js +0 -5
- package/.next/standalone/.next/static/chunks/73506.7423a313220e1769.js +0 -1
- package/.next/standalone/.next/static/chunks/78917-aa5bbff9248799a4.js +0 -1
- package/.next/standalone/.next/static/chunks/79806.d210b93e41d4d7ff.js +0 -4
- package/.next/standalone/.next/static/chunks/85573-fb4d2cbd67612d47.js +0 -1
- package/.next/standalone/.next/static/chunks/85947.cf4ac5dd618283ee.js +0 -90
- package/.next/standalone/.next/static/chunks/88561-0b14e1564419f215.js +0 -1
- package/.next/standalone/.next/static/chunks/89035-faf398b7bbc7d2ed.js +0 -1
- package/.next/standalone/.next/static/chunks/91709.f7c8eff0c3692bd6.js +0 -287
- package/.next/standalone/.next/static/chunks/94400.30696ed643217da2.js +0 -1
- package/.next/standalone/.next/static/chunks/96028.427c0bd44fa35314.js +0 -215
- package/.next/standalone/.next/static/chunks/97868-55f18a05fe483d85.js +0 -1
- package/.next/standalone/.next/static/chunks/99373.cc6319fa4cf36081.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/layout-b3a497ba5eb08036.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/project-groups/[uuid]/page-2944c6c9bc48a7d6.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/page-d786f0c18a9c4f06.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page-c68f1eda3779b448.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page-f824632ff61a9fa7.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/new/page-dbcb6e50fc4816c6.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/page-1295bc505e727383.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page-ceeec49af0396432.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/page-1286afe43c086d6a.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/settings/page-0fb1d51016f6bd56.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/admin/companies/[uuid]/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/admin/companies/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/admin/login/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/admin/session/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/agent-connections/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/agents/[uuid]/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/agents/[uuid]/sessions/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/agents/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/api-keys/[uuid]/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/api-keys/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/auth/callback/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/auth/check-default/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/auth/company-oidc/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/auth/default-login/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/auth/identify/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/auth/logout/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/auth/me/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/auth/refresh/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/auth/session/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/auth/sync-token/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/comments/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/daemon/control/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/daemon/execution-state/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/daemon/executions/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/daemon/pending-turns/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/daemon/report-interrupt/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/daemon/resume/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/daemon/transcript/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/daemon/turn-advance/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/[sessionUuid]/instruction/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/[sessionUuid]/repoint/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/[sessionUuid]/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/ad-hoc/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/documents/[uuid]/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/entities/[type]/[uuid]/root-idea/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/events/notifications/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/events/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/health/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/claim/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/move/preview/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/move/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/parent/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/release/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/keepalive/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/mcp/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/me/assignments/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/mentionables/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/notifications/[uuid]/archive/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/notifications/[uuid]/read/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/notifications/preferences/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/notifications/read-all/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/notifications/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/notifications/unread-count/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/project-groups/[uuid]/dashboard/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/project-groups/[uuid]/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/project-groups/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/activity/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/available/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/documents/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/group/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/ideas/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/ideas/tracker/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/proposals/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/proposals/summary/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/stats/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/tasks/dependencies/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/tasks/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/projects/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/approve/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/close/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/reject/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/revoke/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/search/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/sessions/[uuid]/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/claim/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/dependencies/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/release/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/sessions/route-f1b0daea9f947caf.js +0 -1
- package/.next/standalone/.next/static/chunks/app/login/callback/page-6cad93f5c610b047.js +0 -1
- package/.next/standalone/.next/static/chunks/app/login/page-d2513f477211dd6f.js +0 -1
- package/.next/standalone/.next/static/chunks/app/login/pick-workspace/page-597e0f3377f18d29.js +0 -1
- package/.next/standalone/.next/static/chunks/app/login/silent-refresh/page-a26d1af61578c96e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/page-075afd218994d377.js +0 -1
- package/.next/standalone/.next/static/chunks/webpack-ed3555ea61243391.js +0 -1
- package/.next/standalone/.next/static/css/6e8fd46b062fd4fc.css +0 -1
- /package/.next/standalone/.next/static/{GmBblfxcDziUENBiEap4B → eORNzMShbzkJbNfQT8MbW}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
// cli/embedded-db.mjs
|
|
2
|
+
// Embedded PGlite launch logic, extracted out of chorus.mjs (GitHub #379).
|
|
3
|
+
//
|
|
4
|
+
// Why this module exists — the bug:
|
|
5
|
+
// chorus.mjs used to fork the PGlite child with { stdio: "ignore" }, attach only
|
|
6
|
+
// .on("error") (which fires ONLY on spawn failure), then trust waitForTcp — which
|
|
7
|
+
// answers "is *someone* listening on this port?", NOT "is it *our* PGlite?". When a
|
|
8
|
+
// real Postgres already occupied the port (default 5433), the forked PGlite child
|
|
9
|
+
// died of EADDRINUSE — but it catches that and exits with code 0 (a clean shutdown),
|
|
10
|
+
// so .on("error") never fired and its output was swallowed by stdio:"ignore". The
|
|
11
|
+
// launcher then connected to the FOREIGN Postgres, printed a false "PGlite ready",
|
|
12
|
+
// and `prisma migrate deploy` failed authentication with a bare Prisma P1000.
|
|
13
|
+
//
|
|
14
|
+
// The fix is defense-in-depth, both layers pure + dependency-injected so they unit-test
|
|
15
|
+
// with fakes (server-signal-handlers.mjs precedent — no real process spawning, no
|
|
16
|
+
// import-time side effects):
|
|
17
|
+
// 1. Pre-flight port-occupancy probe — before forking, check whether the port is
|
|
18
|
+
// already held. If so, FAIL FAST with an actionable message (no fork, no false
|
|
19
|
+
// "ready", no silent mis-connect).
|
|
20
|
+
// 2. Exit-latch — after forking, race the child's "exit"/"error" against port-ready.
|
|
21
|
+
// If the child exits before readiness is confirmed, for ANY exit code (including
|
|
22
|
+
// the reproduced EADDRINUSE -> exit 0), the launch is FATAL. "someone is listening"
|
|
23
|
+
// is no longer sufficient evidence that our embedded PGlite is up.
|
|
24
|
+
//
|
|
25
|
+
// No automatic port bumping (out of scope for #379 — elaboration chose fail-fast).
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Format the fail-fast message shown when the embedded PGlite port is occupied.
|
|
29
|
+
* @param {number} port
|
|
30
|
+
* @returns {string}
|
|
31
|
+
*/
|
|
32
|
+
export function formatPortConflictMessage(port) {
|
|
33
|
+
return (
|
|
34
|
+
`ERROR: Embedded PostgreSQL (PGlite) could not start — port ${port} is already in use.\n` +
|
|
35
|
+
`Another process (often a real PostgreSQL) is occupying it. Free the port, or run\n` +
|
|
36
|
+
`Chorus on a different embedded port: chorus --pglite-port <port>`
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/** True when a child process has already terminated (exit code recorded). */
|
|
41
|
+
function childHasExited(child) {
|
|
42
|
+
return child.exitCode !== null && child.exitCode !== undefined;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Classify migrate output as a Prisma authentication failure (P1000).
|
|
47
|
+
*
|
|
48
|
+
* Matches the stable error CODE token first, then the human phrase as a fallback,
|
|
49
|
+
* so it survives message drift across Prisma versions. Deliberately narrow: it must
|
|
50
|
+
* NOT fire on other migration errors (P3009 failed migration, P1001 can't-reach, etc.)
|
|
51
|
+
* — those keep chorus.mjs's existing generic "Database migration failed" path.
|
|
52
|
+
* Verified against the installed Prisma 7.3.0 surface text (GitHub #379).
|
|
53
|
+
*
|
|
54
|
+
* @param {string|undefined|null} output combined stdout+stderr of `prisma migrate deploy`
|
|
55
|
+
* @returns {boolean}
|
|
56
|
+
*/
|
|
57
|
+
export function isPrismaAuthFailure(output) {
|
|
58
|
+
if (!output) return false;
|
|
59
|
+
const text = String(output);
|
|
60
|
+
// P1000 is Prisma's dedicated auth-failure code — the most stable signal.
|
|
61
|
+
if (/\bP1000\b/.test(text)) return true;
|
|
62
|
+
// Fallback phrase (covers adapter-surfaced errors that omit the bare code token).
|
|
63
|
+
if (/Authentication failed against (the )?database server/i.test(text)) return true;
|
|
64
|
+
return false;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Mask credentials in a Postgres connection URL, preserving host:port (+db) for
|
|
69
|
+
* diagnostics. Falls back to a naive user:pass@ strip if URL parsing fails, and to a
|
|
70
|
+
* placeholder for empty input.
|
|
71
|
+
*
|
|
72
|
+
* @param {string|undefined|null} url
|
|
73
|
+
* @returns {string}
|
|
74
|
+
*/
|
|
75
|
+
export function maskDbUrl(url) {
|
|
76
|
+
if (!url) return "(unknown database)";
|
|
77
|
+
const raw = String(url);
|
|
78
|
+
try {
|
|
79
|
+
const u = new URL(raw);
|
|
80
|
+
const auth = u.username ? `${u.username}:***@` : "";
|
|
81
|
+
const db = u.pathname && u.pathname !== "/" ? u.pathname : "";
|
|
82
|
+
return `${u.protocol}//${auth}${u.host}${db}`;
|
|
83
|
+
} catch {
|
|
84
|
+
// Best-effort: strip a user:pass@ segment if present.
|
|
85
|
+
return raw.replace(/\/\/[^@/]*@/, "//***@");
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/** Extract just host:port from a connection URL for terse messages. */
|
|
90
|
+
function hostPortOf(url) {
|
|
91
|
+
if (!url) return "the database";
|
|
92
|
+
try {
|
|
93
|
+
return new URL(String(url)).host || "the database";
|
|
94
|
+
} catch {
|
|
95
|
+
const m = String(url).match(/@([^/?]+)/);
|
|
96
|
+
return m ? m[1] : "the database";
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Build the Chorus-friendly diagnostic shown (as the FINAL output) when
|
|
102
|
+
* `prisma migrate deploy` fails authentication. The remedy depends on WHY we're
|
|
103
|
+
* pointed at that database:
|
|
104
|
+
* - embedded path (no external DATABASE_URL): the port is likely occupied by another
|
|
105
|
+
* PostgreSQL — suggest `chorus --pglite-port <port>`.
|
|
106
|
+
* - external path (DATABASE_URL set): name the external host:port and suggest
|
|
107
|
+
* `unset DATABASE_URL` if it was unintended.
|
|
108
|
+
* Credentials are always masked.
|
|
109
|
+
*
|
|
110
|
+
* @param {object} params
|
|
111
|
+
* @param {string} params.effectiveUrl the DATABASE_URL actually used for migration
|
|
112
|
+
* @param {boolean} params.startedEmbedded true if we launched embedded PGlite ourselves
|
|
113
|
+
* @param {number} params.pglitePort the embedded port (for the --pglite-port hint)
|
|
114
|
+
* @returns {string}
|
|
115
|
+
*/
|
|
116
|
+
export function formatMigrationAuthDiagnostic({ effectiveUrl, startedEmbedded, pglitePort }) {
|
|
117
|
+
const masked = maskDbUrl(effectiveUrl);
|
|
118
|
+
const hostPort = hostPortOf(effectiveUrl);
|
|
119
|
+
const lines = [
|
|
120
|
+
"",
|
|
121
|
+
"ERROR: Database migration failed — the database server rejected the credentials.",
|
|
122
|
+
`Connected to ${masked}, but authentication failed (Prisma P1000).`,
|
|
123
|
+
"",
|
|
124
|
+
];
|
|
125
|
+
if (startedEmbedded) {
|
|
126
|
+
lines.push(
|
|
127
|
+
`This usually means port ${pglitePort} is occupied by another PostgreSQL, so Chorus`,
|
|
128
|
+
`connected to it instead of its own embedded database. Free the port, or run on a`,
|
|
129
|
+
`different one: chorus --pglite-port <port>`
|
|
130
|
+
);
|
|
131
|
+
} else {
|
|
132
|
+
lines.push(
|
|
133
|
+
`Chorus used the DATABASE_URL from your environment (${hostPort}) instead of its`,
|
|
134
|
+
`embedded database. If that was not intended, clear it and re-run: unset DATABASE_URL`
|
|
135
|
+
);
|
|
136
|
+
}
|
|
137
|
+
return lines.join("\n");
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* Launch the embedded PGlite child and confirm it is genuinely OUR process that is
|
|
142
|
+
* ready — not a foreign listener on the same port.
|
|
143
|
+
*
|
|
144
|
+
* Pure w.r.t. its injected dependencies: `fork`, `waitForTcp`, `preflightCheck`,
|
|
145
|
+
* `logger`. No process global is touched here; the caller (chorus.mjs) wires the real
|
|
146
|
+
* implementations and decides how to exit on failure.
|
|
147
|
+
*
|
|
148
|
+
* @param {object} params
|
|
149
|
+
* @param {string} params.host host to probe for readiness (e.g. "localhost")
|
|
150
|
+
* @param {number} params.port embedded PGlite port
|
|
151
|
+
* @param {() => { on: Function, kill?: Function, exitCode: number|null, killed?: boolean }} params.fork
|
|
152
|
+
* forks the PGlite server child and returns a ChildProcess-like object
|
|
153
|
+
* @param {(host: string, port: number) => Promise<void>} params.waitForTcp
|
|
154
|
+
* resolves when the port accepts a TCP connection, rejects on timeout
|
|
155
|
+
* @param {(host: string, port: number) => Promise<boolean>} params.preflightCheck
|
|
156
|
+
* resolves true if the port is ALREADY occupied before we fork (foreign listener)
|
|
157
|
+
* @param {{ log: Function, error: Function }} params.logger
|
|
158
|
+
* @returns {Promise<
|
|
159
|
+
* | { ok: true, child: object }
|
|
160
|
+
* | { ok: false, reason: "port-occupied", port: number }
|
|
161
|
+
* | { ok: false, reason: "child-exited", exitInfo: { code: number|null, signal: string|null } }
|
|
162
|
+
* | { ok: false, reason: "child-error", error: Error }
|
|
163
|
+
* | { ok: false, reason: "not-ready", error: Error }
|
|
164
|
+
* >}
|
|
165
|
+
*/
|
|
166
|
+
export async function launchEmbeddedPglite({ host, port, fork, waitForTcp, preflightCheck, logger }) {
|
|
167
|
+
// Layer 1 — pre-flight: never fork onto an already-occupied port.
|
|
168
|
+
const occupied = await preflightCheck(host, port);
|
|
169
|
+
if (occupied) {
|
|
170
|
+
logger.error(formatPortConflictMessage(port));
|
|
171
|
+
return { ok: false, reason: "port-occupied", port };
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
const child = fork();
|
|
175
|
+
|
|
176
|
+
// The child may have died synchronously during/just after fork (its exit code is
|
|
177
|
+
// then already recorded even if our "exit" listener attaches a tick too late).
|
|
178
|
+
if (childHasExited(child)) {
|
|
179
|
+
return {
|
|
180
|
+
ok: false,
|
|
181
|
+
reason: "child-exited",
|
|
182
|
+
exitInfo: { code: child.exitCode, signal: null },
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
// Layer 2 — latch the child's terminal events, then race them against readiness.
|
|
187
|
+
// A dead child ALWAYS beats a "someone is listening" probe: that is the #379 guard.
|
|
188
|
+
let exitInfo = null; // { code, signal } once the child exits
|
|
189
|
+
let spawnError = null;
|
|
190
|
+
let readyError = null;
|
|
191
|
+
|
|
192
|
+
const childDied = new Promise((resolve) => {
|
|
193
|
+
child.on("exit", (code, signal) => {
|
|
194
|
+
exitInfo = { code, signal };
|
|
195
|
+
resolve("exit");
|
|
196
|
+
});
|
|
197
|
+
child.on("error", (err) => {
|
|
198
|
+
spawnError = err;
|
|
199
|
+
resolve("error");
|
|
200
|
+
});
|
|
201
|
+
});
|
|
202
|
+
|
|
203
|
+
const readied = waitForTcp(host, port).then(
|
|
204
|
+
() => "ready",
|
|
205
|
+
(err) => {
|
|
206
|
+
readyError = err;
|
|
207
|
+
return "not-ready";
|
|
208
|
+
}
|
|
209
|
+
);
|
|
210
|
+
|
|
211
|
+
const outcome = await Promise.race([childDied, readied]);
|
|
212
|
+
|
|
213
|
+
// Re-check the latches regardless of who won the race — the child dying is fatal
|
|
214
|
+
// even if the port-ready probe also resolved (e.g. against a foreign listener).
|
|
215
|
+
if (exitInfo || childHasExited(child)) {
|
|
216
|
+
return {
|
|
217
|
+
ok: false,
|
|
218
|
+
reason: "child-exited",
|
|
219
|
+
exitInfo: exitInfo || { code: child.exitCode ?? null, signal: null },
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
if (spawnError) {
|
|
223
|
+
return { ok: false, reason: "child-error", error: spawnError };
|
|
224
|
+
}
|
|
225
|
+
if (outcome === "not-ready") {
|
|
226
|
+
// Readiness timed out but the child is (as far as we know) still alive — don't leak it.
|
|
227
|
+
if (child.kill && !child.killed) child.kill("SIGTERM");
|
|
228
|
+
return { ok: false, reason: "not-ready", error: readyError };
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
// outcome === "ready" AND the child has not exited → genuinely our PGlite.
|
|
232
|
+
logger.log(`PGlite ready on port ${port}.`);
|
|
233
|
+
return { ok: true, child };
|
|
234
|
+
}
|
package/cli/event-router.mjs
CHANGED
|
@@ -14,12 +14,14 @@ const NOOP_LOGGER = { info() {}, warn() {}, error() {} };
|
|
|
14
14
|
// MIRROR of the server's NOTIFICATION_ACTION_TO_TURN_TRIGGER (src/services/notification-turn.ts).
|
|
15
15
|
// Used ONLY to match a re-read wake notification back to a DIRECTED autonomous pending turn
|
|
16
16
|
// (the deliver_turn re-dispatch rebuilds the prompt from the notification, T2). Kept narrow
|
|
17
|
-
// to the
|
|
18
|
-
// action collapses to the `task_assigned` trigger exactly as the server does, so a
|
|
17
|
+
// to the dedicated triggers a `deliver_turn` ping can carry for an autonomous wake; every
|
|
18
|
+
// other action collapses to the `task_assigned` trigger exactly as the server does, so a
|
|
19
19
|
// task_assigned turn matches its task_reopened/task_verified/idea_claimed/proposal_* origins.
|
|
20
20
|
const ACTION_TO_TURN_TRIGGER = {
|
|
21
21
|
mentioned: "mentioned",
|
|
22
22
|
elaboration_verified: "elaboration_verified",
|
|
23
|
+
start_development: "start_development",
|
|
24
|
+
yolo_requested: "yolo_requested",
|
|
23
25
|
elaboration_requested: "elaboration",
|
|
24
26
|
elaboration_answered: "elaboration",
|
|
25
27
|
human_instruction: "human_instruction",
|
|
@@ -219,7 +221,12 @@ export class EventRouter {
|
|
|
219
221
|
* per-direct-idea serialization holds and the spawner's on-disk transcript probe
|
|
220
222
|
* naturally selects `claude --resume <directIdeaUuid>` (the session already
|
|
221
223
|
* exists). Synchronous + non-throwing, mirroring `dispatch`.
|
|
222
|
-
*
|
|
224
|
+
*
|
|
225
|
+
* `resumeReason` (add-crash-execution-resume) is the interrupted row's prior
|
|
226
|
+
* reason ("user" | "crash") threaded from the control event; it is stamped on the
|
|
227
|
+
* synthetic notification as `resumedFrom` so the prompt builder can state a crash
|
|
228
|
+
* explicitly. Absent/unknown → not stamped → the user-resume prompt.
|
|
229
|
+
* @param {{ entityType?: string, entityUuid?: string, resumeReason?: string }} target
|
|
223
230
|
*/
|
|
224
231
|
dispatchResume(target) {
|
|
225
232
|
const entityType = target?.entityType;
|
|
@@ -228,7 +235,16 @@ export class EventRouter {
|
|
|
228
235
|
this.logger.warn("[Chorus] resume dispatch missing entityType/entityUuid, skipping");
|
|
229
236
|
return;
|
|
230
237
|
}
|
|
231
|
-
const
|
|
238
|
+
const resumedFrom =
|
|
239
|
+
target?.resumeReason === "user" || target?.resumeReason === "crash"
|
|
240
|
+
? target.resumeReason
|
|
241
|
+
: undefined;
|
|
242
|
+
const n = {
|
|
243
|
+
action: "resource_resumed",
|
|
244
|
+
entityType,
|
|
245
|
+
entityUuid,
|
|
246
|
+
...(resumedFrom ? { resumedFrom } : {}),
|
|
247
|
+
};
|
|
232
248
|
this.#resolveAndEnqueue(n, `resume:${entityType}:${entityUuid}`).catch((err) => {
|
|
233
249
|
this.logger.error(`[Chorus] failed to dispatch resume for ${entityType}:${entityUuid}: ${err}`);
|
|
234
250
|
});
|
|
@@ -278,15 +294,18 @@ export class EventRouter {
|
|
|
278
294
|
this.logger.warn(`[Chorus] pending-turn ${turnUuid} missing sessionId, skipping`);
|
|
279
295
|
return;
|
|
280
296
|
}
|
|
281
|
-
// A DIRECTED autonomous turn (mentioned / task_assigned / elaboration_verified
|
|
282
|
-
// delivered by the deliver_turn ping too (T2).
|
|
283
|
-
// notification (promptText is null), so it takes a
|
|
284
|
-
// elaboration are not delivered by deliver_turn (resume
|
|
285
|
-
// request/answer rides the notification broadcast), so they
|
|
297
|
+
// A DIRECTED autonomous turn (mentioned / task_assigned / elaboration_verified /
|
|
298
|
+
// start_development / yolo_requested) is delivered by the deliver_turn ping too (T2).
|
|
299
|
+
// Its prompt must be rebuilt from the notification (promptText is null), so it takes a
|
|
300
|
+
// separate async path. resume / elaboration are not delivered by deliver_turn (resume
|
|
301
|
+
// is synthetic; elaboration request/answer rides the notification broadcast), so they
|
|
302
|
+
// are not re-dispatched here.
|
|
286
303
|
if (
|
|
287
304
|
pending.trigger === "mentioned" ||
|
|
288
305
|
pending.trigger === "task_assigned" ||
|
|
289
|
-
pending.trigger === "elaboration_verified"
|
|
306
|
+
pending.trigger === "elaboration_verified" ||
|
|
307
|
+
pending.trigger === "start_development" ||
|
|
308
|
+
pending.trigger === "yolo_requested"
|
|
290
309
|
) {
|
|
291
310
|
// Shared dedup, marked BEFORE async work (mirrors the human_instruction path and
|
|
292
311
|
// `dispatch`) so concurrent deliveries collapse to one wake.
|
package/cli/prompts.mjs
CHANGED
|
@@ -138,6 +138,42 @@ function buildPromptBody(n) {
|
|
|
138
138
|
`chorus_get_elaboration, then author the proposal via the existing proposal flow ` +
|
|
139
139
|
`(chorus_pm_create_proposal / the proposal skill).\n${mentionGuidance(n, "idea")}`
|
|
140
140
|
);
|
|
141
|
+
case "start_development":
|
|
142
|
+
// A human clicked "Start Development" (add-stage-advance-start-development). The
|
|
143
|
+
// idea's proposal is approved and unfinished tasks remain. The agent's job on this
|
|
144
|
+
// wake is the WHOLE remaining execute stage — loop over every claimable task until
|
|
145
|
+
// none remain (elaboration decision Q1), never stopping after a single task.
|
|
146
|
+
return (
|
|
147
|
+
`[Chorus] A human started DEVELOPMENT for idea '${n.entityTitle}' ` +
|
|
148
|
+
`(ideaUuid: ${n.entityUuid}, projectUuid: ${n.projectUuid}). The idea's proposal is approved and ` +
|
|
149
|
+
`unfinished tasks remain. Claim and execute ALL remaining tasks of that proposal in dependency ` +
|
|
150
|
+
`order, following the develop workflow: repeatedly find claimable tasks (chorus_get_unblocked_tasks ` +
|
|
151
|
+
`with projectUuid: "${n.projectUuid}"), claim one (chorus_claim_task), implement it, self-check its ` +
|
|
152
|
+
`acceptance criteria (chorus_report_criteria_self_check), and submit it (chorus_submit_for_verify) — ` +
|
|
153
|
+
`then loop until NO claimable task remains. Do NOT stop after one task. Leave tasks already in ` +
|
|
154
|
+
`to_verify (awaiting human verification) and tasks claimed by other sessions untouched. If nothing ` +
|
|
155
|
+
`is claimable, post a brief status comment on the idea and end the turn.\n${mentionGuidance(n, "idea")}`
|
|
156
|
+
);
|
|
157
|
+
case "yolo_requested":
|
|
158
|
+
// A human clicked "Yolo" (add-stage-advance-yolo). Unlike start_development
|
|
159
|
+
// (always the execute stage), this wake can land at ANY incomplete stage, so the
|
|
160
|
+
// prompt must NOT hard-code a stage — it points the agent at the yolo skill and lets
|
|
161
|
+
// it self-select the entry phase from the idea's current state (no proposal yet →
|
|
162
|
+
// elaborate + write proposal; approved proposal with open tasks → execute; etc.).
|
|
163
|
+
// Honors the "yolo never merges" rule: drive through done + completion report, but
|
|
164
|
+
// never merge or push a PR without explicit human approval.
|
|
165
|
+
return (
|
|
166
|
+
`[Chorus] A human requested a YOLO run for idea '${n.entityTitle}' ` +
|
|
167
|
+
`(ideaUuid: ${n.entityUuid}, projectUuid: ${n.projectUuid}). Drive this idea all the ` +
|
|
168
|
+
`way to done following the yolo skill (the full-auto AI-DLC pipeline: Idea → ` +
|
|
169
|
+
`Elaboration → Proposal → Execute → Verify). First read the idea's current state with ` +
|
|
170
|
+
`chorus_get_idea (plus chorus_get_elaboration / chorus_get_proposals as needed) and ` +
|
|
171
|
+
`RESUME from whatever phase it is already in — do NOT assume a fixed stage: if ` +
|
|
172
|
+
`elaboration isn't resolved, self-elaborate then write the proposal; if a proposal is ` +
|
|
173
|
+
`approved with open tasks, execute them; and so on. Complete the pipeline through the ` +
|
|
174
|
+
`final done state and completion report, but do NOT merge or push a pull request ` +
|
|
175
|
+
`without explicit human approval.\n${mentionGuidance(n, "idea")}`
|
|
176
|
+
);
|
|
141
177
|
case "proposal_rejected":
|
|
142
178
|
return (
|
|
143
179
|
`[Chorus] Proposal '${n.entityTitle}' was REJECTED (proposalUuid: ${n.entityUuid}, ` +
|
|
@@ -172,6 +208,21 @@ function buildPromptBody(n) {
|
|
|
172
208
|
// daemon's isNewSession probe selects `claude --resume <directIdeaUuid>`
|
|
173
209
|
// automatically, so the woken Claude continues the SAME session where it left
|
|
174
210
|
// off. It intentionally has no @mention (a self-resume has no actor to address).
|
|
211
|
+
//
|
|
212
|
+
// `resumedFrom` (add-crash-execution-resume) distinguishes the resume kind:
|
|
213
|
+
// "crash" gets an explicit exited-abnormally instruction — the previous run may
|
|
214
|
+
// have died mid-edit, so the agent must verify state before continuing.
|
|
215
|
+
// "user" / absent / unknown (older server) keeps the original text unchanged.
|
|
216
|
+
if (n.resumedFrom === "crash") {
|
|
217
|
+
return (
|
|
218
|
+
`[Chorus] The previous run on this ${n.entityType} EXITED ABNORMALLY (crashed) ` +
|
|
219
|
+
`(${n.entityType}Uuid: ${n.entityUuid}), and a user asked to resume it. The crash may ` +
|
|
220
|
+
`have left work half-finished — first re-check the current state with the appropriate ` +
|
|
221
|
+
`chorus_get_* tool (e.g. chorus_get_task / chorus_get_idea) plus chorus_get_comments, ` +
|
|
222
|
+
`and inspect any partial local work (working tree, uncommitted changes, half-written ` +
|
|
223
|
+
`files). Then continue the unfinished work from where the crashed run left off.`
|
|
224
|
+
);
|
|
225
|
+
}
|
|
175
226
|
return (
|
|
176
227
|
`[Chorus] Your work on this ${n.entityType} was RESUMED after an interrupt ` +
|
|
177
228
|
`(${n.entityType}Uuid: ${n.entityUuid}). Continue where you left off — re-check the ` +
|
|
@@ -253,6 +304,16 @@ export const WAKE_ACTIONS = new Set([
|
|
|
253
304
|
// idea-rooted like the other elaboration wakes, so the session anchor/resume contract is
|
|
254
305
|
// unchanged. See buildPrompt's `elaboration_verified` case for the write-proposal prompt.
|
|
255
306
|
"elaboration_verified",
|
|
307
|
+
// add-stage-advance-start-development: a human clicked "Start Development" — the idea's
|
|
308
|
+
// proposal is approved and unfinished tasks remain. Wakes the assigned daemon agent to
|
|
309
|
+
// CLAIM AND EXECUTE ALL remaining tasks (dedicated trigger, session-origin-pinned like
|
|
310
|
+
// elaboration_verified). See buildPrompt's `start_development` case.
|
|
311
|
+
"start_development",
|
|
312
|
+
// add-stage-advance-yolo: a human clicked "Yolo" — wakes the assigned daemon agent to
|
|
313
|
+
// drive the WHOLE idea to done via the yolo skill (dedicated trigger, session-origin-
|
|
314
|
+
// pinned like start_development). Unlike start_development it is stage-adaptive — see
|
|
315
|
+
// buildPrompt's `yolo_requested` case.
|
|
316
|
+
"yolo_requested",
|
|
256
317
|
"proposal_rejected",
|
|
257
318
|
"proposal_approved",
|
|
258
319
|
"idea_claimed",
|
package/cli/turn-reporter.mjs
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
// persistent conversation; the server creates that turn (status `pending`) at the
|
|
5
5
|
// notification chokepoint, and the daemon advances it:
|
|
6
6
|
// • on spawn → pending → running
|
|
7
|
-
// • on subprocess exit → running → ended
|
|
7
|
+
// • on subprocess exit → running → ended (clean) | interrupted (user/crash/shutdown)
|
|
8
8
|
//
|
|
9
9
|
// The daemon does NOT know the server-side turn uuid. It identifies the turn the SAME
|
|
10
10
|
// way the transcript ingest does — by the session BUSINESS KEY (`sessionId` = the
|
|
@@ -27,7 +27,10 @@ import { createDaemonRestClient } from "./daemon-rest-client.mjs";
|
|
|
27
27
|
const NOOP_LOGGER = { info() {}, warn() {}, error() {} };
|
|
28
28
|
|
|
29
29
|
/** Turn lifecycle states the server's turn-advance endpoint accepts. */
|
|
30
|
-
export const TURN_STATUSES = new Set(["pending", "running", "ended"]);
|
|
30
|
+
export const TURN_STATUSES = new Set(["pending", "running", "ended", "interrupted"]);
|
|
31
|
+
|
|
32
|
+
/** Interrupt reasons a DAEMON may report (`offline` is server-reconcile-only). */
|
|
33
|
+
export const TURN_INTERRUPT_REASONS = new Set(["user", "crash", "shutdown"]);
|
|
31
34
|
|
|
32
35
|
/**
|
|
33
36
|
* Build an `advanceTurn(params)` function the waker invokes on a wake's spawn (→
|
|
@@ -43,7 +46,7 @@ export const TURN_STATUSES = new Set(["pending", "running", "ended"]);
|
|
|
43
46
|
* logger?: { info(m:string):void, warn(m:string):void, error(m:string):void },
|
|
44
47
|
* fetchImpl?: typeof fetch, Injectable for tests.
|
|
45
48
|
* }} opts
|
|
46
|
-
* @returns {(params: { sessionId: string, status: "running"|"ended", entityType?: string|null, entityUuid?: string|null }) => Promise<void>}
|
|
49
|
+
* @returns {(params: { sessionId: string, status: "running"|"ended"|"interrupted", entityType?: string|null, entityUuid?: string|null, interruptedReason?: "user"|"crash"|"shutdown"|null }) => Promise<void>}
|
|
47
50
|
*/
|
|
48
51
|
export function createTurnReporter(opts) {
|
|
49
52
|
const logger = opts.logger ?? NOOP_LOGGER;
|
|
@@ -58,18 +61,36 @@ export function createTurnReporter(opts) {
|
|
|
58
61
|
logger,
|
|
59
62
|
});
|
|
60
63
|
|
|
61
|
-
return async function advanceTurn({
|
|
64
|
+
return async function advanceTurn({
|
|
65
|
+
sessionId,
|
|
66
|
+
status,
|
|
67
|
+
entityType,
|
|
68
|
+
entityUuid,
|
|
69
|
+
interruptedReason,
|
|
70
|
+
}) {
|
|
62
71
|
if (typeof sessionId !== "string" || !sessionId || !TURN_STATUSES.has(status)) {
|
|
63
72
|
logger.warn(
|
|
64
73
|
`[Chorus] refusing to advance turn: bad sessionId/status (${sessionId}, ${status})`,
|
|
65
74
|
);
|
|
66
75
|
return;
|
|
67
76
|
}
|
|
77
|
+
// Domain guard mirroring the server's: a reason travels only with `interrupted`
|
|
78
|
+
// and only from the daemon-reportable vocabulary (`offline` is the server's own
|
|
79
|
+
// reconcile verdict). Refusing here keeps a bad caller visible in daemon logs
|
|
80
|
+
// instead of as a server 400.
|
|
81
|
+
if (interruptedReason != null) {
|
|
82
|
+
if (status !== "interrupted" || !TURN_INTERRUPT_REASONS.has(interruptedReason)) {
|
|
83
|
+
logger.warn(
|
|
84
|
+
`[Chorus] refusing to advance turn: bad interruptedReason (${interruptedReason}) for status ${status}`,
|
|
85
|
+
);
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
68
89
|
// The client resolves the connectionUuid lazily, validates it (logging
|
|
69
90
|
// "no connection uuid yet" when absent), POSTs the exact server payload — sending
|
|
70
91
|
// entityType/entityUuid only when both are present — and logs the failure cause on a
|
|
71
92
|
// network error / non-2xx. We swallow the structured result so a failed report can
|
|
72
93
|
// never crash the wake path.
|
|
73
|
-
await client.turnAdvance({ sessionId, status, entityType, entityUuid });
|
|
94
|
+
await client.turnAdvance({ sessionId, status, entityType, entityUuid, interruptedReason });
|
|
74
95
|
};
|
|
75
96
|
}
|
package/cli/wake-queue.mjs
CHANGED
|
@@ -30,6 +30,15 @@ export class WakeQueue {
|
|
|
30
30
|
/** @type {string[]} keys waiting for a global concurrency slot. */
|
|
31
31
|
this.readyKeys = [];
|
|
32
32
|
this.activeCount = 0;
|
|
33
|
+
// Graceful-shutdown latch: once set, #pump starts NOTHING new — in-flight tasks
|
|
34
|
+
// finish (drain observes them) but queued work stays queued and dies with the
|
|
35
|
+
// process. Never cleared; a stopping queue is on its way out.
|
|
36
|
+
this.stopped = false;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/** Stop starting new tasks (graceful shutdown). In-flight tasks are unaffected. */
|
|
40
|
+
stop() {
|
|
41
|
+
this.stopped = true;
|
|
33
42
|
}
|
|
34
43
|
|
|
35
44
|
/**
|
|
@@ -75,8 +84,29 @@ export class WakeQueue {
|
|
|
75
84
|
return [...this.pending.entries()].filter(([, q]) => q.length > 0).map(([k]) => k);
|
|
76
85
|
}
|
|
77
86
|
|
|
87
|
+
/**
|
|
88
|
+
* Wait (bounded) for every in-flight task to finish — the graceful-shutdown drain
|
|
89
|
+
* (fix-daemon-exit-orphan-running-turn). Resolves `true` when the queue went idle
|
|
90
|
+
* (no active task) within `timeoutMs`, `false` on timeout — the caller exits
|
|
91
|
+
* anyway and leaves the rest to the server-side reconcile backstop. Pending
|
|
92
|
+
* (not-yet-started) tasks are NOT waited for: a shutting-down daemon stops
|
|
93
|
+
* starting new work, so only the in-flight subprocesses (and their exit reports)
|
|
94
|
+
* matter. Polling (50ms) keeps this zero-dep and independent of task internals.
|
|
95
|
+
* @param {number} timeoutMs
|
|
96
|
+
* @returns {Promise<boolean>}
|
|
97
|
+
*/
|
|
98
|
+
async drain(timeoutMs) {
|
|
99
|
+
const deadline = Date.now() + Math.max(0, timeoutMs);
|
|
100
|
+
while (this.activeCount > 0) {
|
|
101
|
+
if (Date.now() >= deadline) return false;
|
|
102
|
+
await new Promise((r) => setTimeout(r, 50));
|
|
103
|
+
}
|
|
104
|
+
return true;
|
|
105
|
+
}
|
|
106
|
+
|
|
78
107
|
/** Try to start as many ready keys as the concurrency cap allows. */
|
|
79
108
|
#pump() {
|
|
109
|
+
if (this.stopped) return; // shutting down — start nothing new
|
|
80
110
|
while (this.activeCount < this.maxConcurrency && this.readyKeys.length > 0) {
|
|
81
111
|
const key = this.readyKeys.shift();
|
|
82
112
|
if (this.running.has(key)) continue; // already running under another slot
|