@chorus-aidlc/chorus 0.13.2 → 0.14.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 +485 -409
- package/.next/standalone/.next/app-path-routes-manifest.json +30 -27
- package/.next/standalone/.next/build-manifest.json +5 -5
- package/.next/standalone/.next/prerender-manifest.json +36 -36
- package/.next/standalone/.next/react-loadable-manifest.json +1 -1
- package/.next/standalone/.next/routes-manifest.json +16 -0
- package/.next/standalone/.next/server/app/(dashboard)/project-groups/[uuid]/page.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/project-groups/[uuid]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/project-groups/[uuid]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/activity/page.js +2 -2
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/activity/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/activity/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page.js +2 -2
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page.js +2 -2
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page.js +2 -2
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page.js +2 -2
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/graph/page.js +2 -2
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/graph/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/graph/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page.js +2 -2
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page.js +2 -2
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/new/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page.js +2 -2
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/page.js +3 -3
- 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.js +2 -2
- package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +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 +122 -1
- package/.next/standalone/.next/server/app/_not-found.rsc +18 -16
- package/.next/standalone/.next/server/app/admin/companies/[uuid]/page.js +2 -2
- package/.next/standalone/.next/server/app/admin/companies/[uuid]/page.js.nft.json +1 -1
- 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.js +1 -1
- package/.next/standalone/.next/server/app/admin/companies/new/page.js.nft.json +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 +122 -1
- package/.next/standalone/.next/server/app/admin/companies/new.rsc +25 -23
- package/.next/standalone/.next/server/app/admin/companies/page.js +1 -1
- package/.next/standalone/.next/server/app/admin/companies/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/admin/companies/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/admin/companies.html +122 -1
- package/.next/standalone/.next/server/app/admin/companies.rsc +25 -23
- package/.next/standalone/.next/server/app/admin/page.js +1 -1
- package/.next/standalone/.next/server/app/admin/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/admin/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/admin.html +122 -1
- package/.next/standalone/.next/server/app/admin.rsc +25 -23
- 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.js +1 -1
- package/.next/standalone/.next/server/app/api/admin/login/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/admin/session/route.js +1 -1
- package/.next/standalone/.next/server/app/api/admin/session/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agent-connections/route.js.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.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.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/company-oidc/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/default-login/route.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/default-login/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/identify/route.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/identify/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/me/route.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_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_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/entities/[type]/[uuid]/root-idea/route.js +1 -1
- package/.next/standalone/.next/server/app/api/entities/[type]/[uuid]/root-idea/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/entities/[type]/[uuid]/root-idea/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/events/notifications/route.js +1 -1
- package/.next/standalone/.next/server/app/api/events/notifications/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/events/notifications/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/events/route.js +1 -1
- package/.next/standalone/.next/server/app/api/events/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/events/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/health/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/claim/route.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/claim/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/claim/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/preview/route.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/preview/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/preview/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/route.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/parent/route.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/parent/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/parent/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/release/route.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/release/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/release/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/route.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/wake-preview/route.js +1 -0
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/wake-preview/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/wake-preview/route_client-reference-manifest.js +1 -0
- package/.next/standalone/.next/server/app/api/ideas/conversational/route.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/conversational/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/ideas/conversational/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/mcp/route.js +6 -6
- package/.next/standalone/.next/server/app/api/mcp/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/mcp/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/me/assignments/route.js +1 -1
- package/.next/standalone/.next/server/app/api/me/assignments/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/me/assignments/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/mentionables/route.js +1 -1
- package/.next/standalone/.next/server/app/api/mentionables/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/mentionables/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/notifications/[uuid]/archive/route.js +1 -1
- package/.next/standalone/.next/server/app/api/notifications/[uuid]/archive/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/notifications/[uuid]/archive/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/notifications/[uuid]/read/route.js +1 -1
- package/.next/standalone/.next/server/app/api/notifications/[uuid]/read/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/notifications/[uuid]/read/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/notifications/preferences/route.js +1 -1
- package/.next/standalone/.next/server/app/api/notifications/preferences/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/notifications/preferences/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/notifications/read-all/route.js +1 -1
- package/.next/standalone/.next/server/app/api/notifications/read-all/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/notifications/read-all/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/notifications/route.js +1 -1
- package/.next/standalone/.next/server/app/api/notifications/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/notifications/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/notifications/unread-count/route.js +1 -1
- package/.next/standalone/.next/server/app/api/notifications/unread-count/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/notifications/unread-count/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/project-groups/[uuid]/dashboard/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/project-groups/[uuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/project-groups/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/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_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/group/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/route.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/tracker/route.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/tracker/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/tracker/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/summary/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/resource-graph/route.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/resource-graph/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/resource-graph/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/stats/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/dependencies/route.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/dependencies/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/dependencies/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/route.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/proposals/[uuid]/approve/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/proposals/[uuid]/close/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/proposals/[uuid]/reject/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/proposals/[uuid]/revoke/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/proposals/[uuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/references/[uuid]/route.js +1 -0
- package/.next/standalone/.next/server/app/api/references/[uuid]/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/references/[uuid]/route_client-reference-manifest.js +1 -0
- package/.next/standalone/.next/server/app/api/references/route.js +1 -0
- package/.next/standalone/.next/server/app/api/references/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/references/route_client-reference-manifest.js +1 -0
- package/.next/standalone/.next/server/app/api/search/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/session/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/sessions/[uuid]/route.js +1 -1
- package/.next/standalone/.next/server/app/api/sessions/[uuid]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/sessions/[uuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/claim/route.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/claim/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/claim/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/route.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/release/route.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/release/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/release/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/route.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/sessions/route.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/sessions/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/sessions/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/index.html +122 -1
- package/.next/standalone/.next/server/app/index.rsc +22 -20
- 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 +122 -1
- package/.next/standalone/.next/server/app/login/admin.rsc +22 -20
- 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 +122 -1
- package/.next/standalone/.next/server/app/login/callback.rsc +22 -20
- 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 +2 -2
- package/.next/standalone/.next/server/app/login/pick-workspace/page.js.nft.json +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 +122 -1
- package/.next/standalone/.next/server/app/login/pick-workspace.rsc +22 -20
- package/.next/standalone/.next/server/app/login.html +122 -1
- package/.next/standalone/.next/server/app/login.rsc +22 -20
- 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 +122 -1
- package/.next/standalone/.next/server/app/onboarding.rsc +22 -20
- 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 +122 -1
- package/.next/standalone/.next/server/app/projects.rsc +25 -23
- package/.next/standalone/.next/server/app/settings.html +122 -1
- package/.next/standalone/.next/server/app/settings.rsc +25 -23
- package/.next/standalone/.next/server/app-paths-manifest.json +30 -27
- package/.next/standalone/.next/server/chunks/1114.js +1 -0
- package/.next/standalone/.next/server/chunks/1173.js +1 -0
- package/.next/standalone/.next/server/chunks/1286.js +32 -0
- package/.next/standalone/.next/server/chunks/1559.js +2 -2
- package/.next/standalone/.next/server/chunks/2382.js +1 -0
- package/.next/standalone/.next/server/chunks/2463.js +1 -0
- package/.next/standalone/.next/server/chunks/2618.js +1 -1
- package/.next/standalone/.next/server/chunks/2961.js +1 -1
- package/.next/standalone/.next/server/chunks/3219.js +1 -1
- package/.next/standalone/.next/server/chunks/3419.js +1 -1
- package/.next/standalone/.next/server/chunks/{8322.js → 378.js} +125 -2
- package/.next/standalone/.next/server/chunks/4545.js +1 -0
- package/.next/standalone/.next/server/chunks/{5957.js → 4797.js} +1 -1
- package/.next/standalone/.next/server/chunks/4827.js +1 -1
- package/.next/standalone/.next/server/chunks/{1343.js → 5201.js} +2 -2
- package/.next/standalone/.next/server/chunks/5245.js +1 -0
- package/.next/standalone/.next/server/chunks/5300.js +1 -1
- 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/6396.js +1 -0
- package/.next/standalone/.next/server/chunks/{796.js → 6492.js} +10 -10
- package/.next/standalone/.next/server/chunks/{8577.js → 6506.js} +3 -3
- package/.next/standalone/.next/server/chunks/6515.js +6 -0
- package/.next/standalone/.next/server/chunks/6646.js +1 -0
- package/.next/standalone/.next/server/chunks/679.js +1 -1
- package/.next/standalone/.next/server/chunks/7091.js +1 -0
- package/.next/standalone/.next/server/chunks/7364.js +1 -1
- package/.next/standalone/.next/server/chunks/7368.js +1 -1
- package/.next/standalone/.next/server/chunks/7530.js +1 -0
- package/.next/standalone/.next/server/chunks/7635.js +1 -0
- package/.next/standalone/.next/server/chunks/7762.js +1 -0
- package/.next/standalone/.next/server/chunks/8062.js +1 -0
- package/.next/standalone/.next/server/chunks/8204.js +1 -0
- package/.next/standalone/.next/server/chunks/8396.js +1 -0
- package/.next/standalone/.next/server/chunks/8454.js +1 -0
- package/.next/standalone/.next/server/chunks/920.js +1 -1
- package/.next/standalone/.next/server/chunks/9213.js +1 -0
- package/.next/standalone/.next/server/chunks/9378.js +1 -0
- package/.next/standalone/.next/server/chunks/951.js +1 -0
- package/.next/standalone/.next/server/chunks/9979.js +1 -0
- 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 +122 -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/static/C9o43aSSZ0ebgki6mQ0-b/_buildManifest.js +1 -0
- package/.next/standalone/.next/static/chunks/11595.7784dfe509c100a4.js +1 -0
- package/.next/standalone/.next/static/chunks/{58037-55d7422c6b808356.js → 14655-4f3bc7f3044c42c1.js} +1 -1
- package/.next/standalone/.next/static/chunks/{15183-5734d279b26e9414.js → 15183-3f43af926186f7ef.js} +2 -2
- package/.next/standalone/.next/static/chunks/21188-43211c9e40bf0d63.js +10 -0
- package/.next/standalone/.next/static/chunks/21932-bce5ba937d1603e1.js +1 -0
- package/.next/standalone/.next/static/chunks/24537-ef5b301140cf3a58.js +1 -0
- package/.next/standalone/.next/static/chunks/27030-3ae1d0e29245b23e.js +1 -0
- package/.next/standalone/.next/static/chunks/27290-2f874213668491c8.js +124 -0
- package/.next/standalone/.next/static/chunks/28680-dff79c4467712199.js +1 -0
- package/.next/standalone/.next/static/chunks/32331-87ae9bc7517c7947.js +1 -0
- package/.next/standalone/.next/static/chunks/33456.3bd7ba05bd39259b.js +1 -0
- package/.next/standalone/.next/static/chunks/37985-e4683195e4ca2519.js +1 -0
- package/.next/standalone/.next/static/chunks/38366.e6e0132b8ba873d6.js +1 -0
- package/.next/standalone/.next/static/chunks/38526-7ffc4b7351c15bc4.js +1 -0
- package/.next/standalone/.next/static/chunks/39025-13049f9c48e08d6c.js +1 -0
- package/.next/standalone/.next/static/chunks/42605-029b5426175cdee9.js +1 -0
- package/.next/standalone/.next/static/chunks/43111-7a4e08dc82bb3022.js +1 -0
- package/.next/standalone/.next/static/chunks/4860.4803e40814d50dd0.js +1 -0
- package/.next/standalone/.next/static/chunks/4939-ff22e2b42ad57f7f.js +1 -0
- package/.next/standalone/.next/static/chunks/51603-7fa00971493ae223.js +1 -0
- package/.next/standalone/.next/static/chunks/78917-c0a9a11fe437a752.js +1 -0
- package/.next/standalone/.next/static/chunks/83285-db8ae107944eb6df.js +1 -0
- package/.next/standalone/.next/static/chunks/84169-5beb288902aea242.js +1 -0
- package/.next/standalone/.next/static/chunks/84219-09970ab1b85c61f0.js +1 -0
- package/.next/standalone/.next/static/chunks/86155-c9b7c2c08d3fa80e.js +1 -0
- package/.next/standalone/.next/static/chunks/{27378-9328bcc96ae9872e.js → 87325-dc3239012edcacdc.js} +1 -1
- package/.next/standalone/.next/static/chunks/89836-b5ab6a0b32c54f42.js +1 -0
- package/.next/standalone/.next/static/chunks/93346-1d4cd71b8713a8a6.js +1 -0
- package/.next/standalone/.next/static/chunks/94170-fb8ea86f938a27a5.js +1 -0
- package/.next/standalone/.next/static/chunks/99373.0457580c532530bc.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/layout-00ff2f6753bb4603.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/project-groups/[uuid]/page-5824e6affe244f83.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/page-e5202e9b7669576c.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page-d9323dc8b6c974f7.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/page-c231207c3674aa54.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/graph/page-20054b1cec8ed1d2.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page-c83c5d1b4599e737.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/new/page-7bcaa11ee24b5754.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/page-7948aa8db4813091.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page-278d30ee1dd7e315.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/page-5a22db5f8504e61d.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/page-47a17dbadfbc75ad.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/settings/page-7fbf5bc58d3dd5b0.js +1 -0
- package/.next/standalone/.next/static/chunks/app/admin/companies/[uuid]/page-b2458ed001dc8177.js +1 -0
- package/.next/standalone/.next/static/chunks/app/admin/companies/new/page-e35dce890d6dfd8d.js +1 -0
- package/.next/standalone/.next/static/chunks/app/admin/layout-c66ce38cbd88982a.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/admin/companies/[uuid]/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/admin/companies/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/admin/login/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/admin/session/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/agent-connections/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/agents/[uuid]/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/agents/[uuid]/sessions/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/agents/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/api-keys/[uuid]/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/api-keys/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/auth/callback/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/auth/check-default/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/auth/company-oidc/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/auth/default-login/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/auth/identify/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/auth/logout/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/auth/me/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/auth/sync-token/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/comments/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/daemon/control/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/daemon/execution-state/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/daemon/executions/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/daemon/pending-turns/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/daemon/report-interrupt/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/daemon/resume/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/daemon/transcript/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/daemon/turn-advance/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/[sessionUuid]/instruction/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/[sessionUuid]/repoint/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/[sessionUuid]/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/ad-hoc/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/documents/[uuid]/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/entities/[type]/[uuid]/root-idea/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/events/notifications/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/events/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/health/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/claim/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/move/preview/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/move/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/parent/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/release/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/wake-preview/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/ideas/conversational/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/mcp/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/me/assignments/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/mentionables/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/notifications/[uuid]/archive/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/notifications/[uuid]/read/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/notifications/preferences/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/notifications/read-all/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/notifications/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/notifications/unread-count/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/project-groups/[uuid]/dashboard/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/project-groups/[uuid]/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/project-groups/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/activity/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/available/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/documents/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/group/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/ideas/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/ideas/tracker/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/proposals/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/proposals/summary/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/resource-graph/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/stats/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/tasks/dependencies/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/tasks/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/projects/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/approve/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/close/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/reject/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/revoke/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/references/[uuid]/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/references/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/search/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/session/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/sessions/[uuid]/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/claim/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/dependencies/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/release/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/sessions/route-55ce87d16bc689f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/layout-985054e973f66999.js +1 -0
- package/.next/standalone/.next/static/chunks/app/login/admin/page-f032b6db3bd20a2c.js +1 -0
- package/.next/standalone/.next/static/chunks/app/login/callback/page-ec23211506e688ee.js +1 -0
- package/.next/standalone/.next/static/chunks/app/login/page-9b34375d1b5579d7.js +1 -0
- package/.next/standalone/.next/static/chunks/app/login/pick-workspace/page-7e4664af2c787d08.js +1 -0
- package/.next/standalone/.next/static/chunks/app/onboarding/{page-8e20c8aa8ff90326.js → page-ece3f647133d446e.js} +1 -1
- package/.next/standalone/.next/static/chunks/app/page-79e2d32e69788bd2.js +1 -0
- package/.next/standalone/.next/static/chunks/webpack-96be8d6bd0d3d25f.js +1 -0
- package/.next/standalone/.next/static/css/5f09fa856a63632f.css +1 -0
- package/.next/standalone/package.json +4 -1
- package/.next/standalone/public/chorus-plugin/.claude-plugin/plugin.json +1 -1
- package/.next/standalone/public/chorus-plugin/skills/brainstorm/SKILL.md +1 -1
- package/.next/standalone/public/chorus-plugin/skills/chorus/SKILL.md +8 -1
- package/.next/standalone/public/chorus-plugin/skills/develop/SKILL.md +1 -1
- package/.next/standalone/public/chorus-plugin/skills/idea/SKILL.md +32 -1
- package/.next/standalone/public/chorus-plugin/skills/openspec-aware/SKILL.md +1 -1
- package/.next/standalone/public/chorus-plugin/skills/proposal/SKILL.md +1 -1
- package/.next/standalone/public/chorus-plugin/skills/quick-dev/SKILL.md +1 -1
- package/.next/standalone/public/chorus-plugin/skills/review/SKILL.md +1 -1
- package/.next/standalone/public/chorus-plugin/skills/yolo/SKILL.md +1 -1
- package/.next/standalone/public/install-kiro.sh +350 -0
- package/.next/standalone/public/kiro-plugin/.kiro/agents/chorus-code-reviewer.json +10 -0
- package/.next/standalone/public/kiro-plugin/.kiro/agents/chorus-proposal-reviewer.json +10 -0
- package/.next/standalone/public/kiro-plugin/.kiro/agents/chorus-task-reviewer.json +10 -0
- package/.next/standalone/public/kiro-plugin/.kiro/agents/chorus.json +50 -0
- package/.next/standalone/public/kiro-plugin/.kiro/agents/chorus.md +62 -0
- package/.next/standalone/public/kiro-plugin/.kiro/settings/mcp.json +12 -0
- package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-brainstorm/SKILL.md +158 -0
- package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-develop/SKILL.md +421 -0
- package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-idea/SKILL.md +332 -0
- package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-openspec-aware/SKILL.md +434 -0
- package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-proposal/SKILL.md +386 -0
- package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-quick-dev/SKILL.md +193 -0
- package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-review/SKILL.md +360 -0
- package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-yolo/SKILL.md +547 -0
- package/.next/standalone/public/kiro-plugin/.kiro/steering/chorus.md +391 -0
- package/.next/standalone/public/kiro-plugin/bin/chorus-api.sh +392 -0
- package/.next/standalone/public/kiro-plugin/bin/on-agent-spawn.sh +81 -0
- package/.next/standalone/public/kiro-plugin/bin/on-post-submit-for-verify.sh +68 -0
- package/.next/standalone/public/kiro-plugin/bin/on-post-submit-proposal.sh +76 -0
- package/.next/standalone/public/kiro-plugin/bin/on-post-verify-task.sh +119 -0
- package/.next/standalone/public/kiro-plugin/bin/on-stop.sh +45 -0
- package/.next/standalone/public/kiro-plugin/bin/test-syntax.sh +108 -0
- package/.next/standalone/public/skill/brainstorm-chorus/SKILL.md +1 -1
- package/.next/standalone/public/skill/chorus/SKILL.md +8 -1
- package/.next/standalone/public/skill/code-reviewer-chorus/SKILL.md +1 -1
- package/.next/standalone/public/skill/develop-chorus/SKILL.md +1 -1
- package/.next/standalone/public/skill/idea-chorus/SKILL.md +32 -1
- package/.next/standalone/public/skill/package.json +1 -1
- package/.next/standalone/public/skill/proposal-chorus/SKILL.md +2 -1
- package/.next/standalone/public/skill/proposal-reviewer-chorus/SKILL.md +1 -1
- package/.next/standalone/public/skill/quick-dev-chorus/SKILL.md +1 -1
- package/.next/standalone/public/skill/review-chorus/SKILL.md +1 -1
- package/.next/standalone/public/skill/task-reviewer-chorus/SKILL.md +1 -1
- package/.next/standalone/public/skill/yolo-chorus/SKILL.md +1 -1
- package/README.ja.md +464 -0
- package/README.ko.md +463 -0
- package/README.md +8 -3
- package/README.zh.md +8 -3
- package/chorus.mjs +4 -0
- package/cli/client-args.mjs +19 -8
- package/cli/codex-session-map.mjs +9 -79
- package/cli/daemon-agent.mjs +12 -7
- package/cli/daemon-config.mjs +2 -2
- package/cli/daemon-install-config.mjs +213 -0
- package/cli/daemon-service.mjs +12 -7
- package/cli/daemon.mjs +68 -9
- package/cli/kiro-session-map.mjs +49 -0
- package/cli/kiro-spawner.mjs +409 -0
- package/cli/kiro-transcript.mjs +262 -0
- package/cli/prompts.mjs +19 -2
- package/cli/session-map.mjs +126 -0
- package/cli/spawner-select.mjs +7 -1
- package/cli/waker.mjs +18 -3
- package/package.json +4 -1
- package/prisma/migrations/20260710171801_add_reference_artifact/migration.sql +27 -0
- package/prisma/migrations/20260714091007_add_daemon_execution_direct_idea/migration.sql +2 -0
- package/prisma/schema.prisma +33 -0
- package/.next/standalone/.next/server/chunks/1463.js +0 -1
- package/.next/standalone/.next/server/chunks/1512.js +0 -1
- package/.next/standalone/.next/server/chunks/3371.js +0 -1
- package/.next/standalone/.next/server/chunks/3373.js +0 -1
- package/.next/standalone/.next/server/chunks/4958.js +0 -1
- package/.next/standalone/.next/server/chunks/5011.js +0 -1
- package/.next/standalone/.next/server/chunks/5631.js +0 -1
- package/.next/standalone/.next/server/chunks/6496.js +0 -1
- package/.next/standalone/.next/server/chunks/6817.js +0 -1
- package/.next/standalone/.next/server/chunks/704.js +0 -31
- package/.next/standalone/.next/server/chunks/7160.js +0 -1
- package/.next/standalone/.next/server/chunks/8448.js +0 -1
- package/.next/standalone/.next/server/chunks/8551.js +0 -1
- package/.next/standalone/.next/server/chunks/9516.js +0 -1
- package/.next/standalone/.next/server/chunks/9855.js +0 -6
- package/.next/standalone/.next/static/CIg9Mtv4fKIeKqPY5Rczv/_buildManifest.js +0 -1
- package/.next/standalone/.next/static/chunks/16467-dd4f928e725306c1.js +0 -1
- package/.next/standalone/.next/static/chunks/1892-9c03d4d3560ff572.js +0 -1
- package/.next/standalone/.next/static/chunks/225-7b0507c29df705f1.js +0 -1
- package/.next/standalone/.next/static/chunks/24459-3bc9657d71c77b47.js +0 -1
- package/.next/standalone/.next/static/chunks/38366.62260b57e5f4b09d.js +0 -1
- package/.next/standalone/.next/static/chunks/46055-f786ace4b994dc40.js +0 -1
- package/.next/standalone/.next/static/chunks/4860.18e9c1a01636e309.js +0 -1
- package/.next/standalone/.next/static/chunks/52064-74d81c8d682deb6b.js +0 -1
- package/.next/standalone/.next/static/chunks/57362-9ece5cc290dab705.js +0 -1
- package/.next/standalone/.next/static/chunks/63820-551bca4e19d0119c.js +0 -1
- package/.next/standalone/.next/static/chunks/64187-cff8a4b5e96fa8f9.js +0 -10
- package/.next/standalone/.next/static/chunks/68255-05c42a26602c6b37.js +0 -1
- package/.next/standalone/.next/static/chunks/71350-88c2649fc693c1e8.js +0 -1
- package/.next/standalone/.next/static/chunks/75752-cc8fafe132943baa.js +0 -1
- package/.next/standalone/.next/static/chunks/80350-20c953d484f262ff.js +0 -1
- package/.next/standalone/.next/static/chunks/84169-71a87d06871ec9df.js +0 -1
- package/.next/standalone/.next/static/chunks/89644-2fee0373b890e8e3.js +0 -1
- package/.next/standalone/.next/static/chunks/93346-b3e1ebe948fc623f.js +0 -1
- package/.next/standalone/.next/static/chunks/94743-aff8a51a7f7970a9.js +0 -1
- package/.next/standalone/.next/static/chunks/96752-ad15cc38599f12e2.js +0 -1
- package/.next/standalone/.next/static/chunks/97306-8834e12cdbeed920.js +0 -1
- package/.next/standalone/.next/static/chunks/99373.c4a36dcd46ec841e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/layout-a3747bde1ddaba52.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/project-groups/[uuid]/page-87b79c98e46fbd04.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/page-b2db3da2d7945904.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page-0467d744b84aa2c2.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/page-7abff55f9bfebab3.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/graph/page-b3b2b2ba3d60893e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page-0aff1fa7a814188c.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/new/page-6dbfbe5d97855e42.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/page-b8fbcac7224342db.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page-0a04a31e1b383094.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/page-e2a69b645ec9ae13.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/page-b760877bfcd12dff.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/settings/page-111aed4d3319d64b.js +0 -1
- package/.next/standalone/.next/static/chunks/app/admin/companies/[uuid]/page-cc2fe0c5b749cd2f.js +0 -1
- package/.next/standalone/.next/static/chunks/app/admin/companies/new/page-4f3b3c449c61f6d2.js +0 -1
- package/.next/standalone/.next/static/chunks/app/admin/layout-50c9b40750f734be.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/admin/companies/[uuid]/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/admin/companies/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/admin/login/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/admin/session/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/agent-connections/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/agents/[uuid]/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/agents/[uuid]/sessions/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/agents/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/api-keys/[uuid]/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/api-keys/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/auth/callback/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/auth/check-default/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/auth/company-oidc/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/auth/default-login/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/auth/identify/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/auth/logout/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/auth/me/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/auth/sync-token/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/comments/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/daemon/control/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/daemon/execution-state/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/daemon/executions/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/daemon/pending-turns/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/daemon/report-interrupt/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/daemon/resume/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/daemon/transcript/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/daemon/turn-advance/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/[sessionUuid]/instruction/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/[sessionUuid]/repoint/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/[sessionUuid]/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/ad-hoc/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/daemon-sessions/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/documents/[uuid]/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/entities/[type]/[uuid]/root-idea/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/events/notifications/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/events/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/health/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/claim/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/move/preview/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/move/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/parent/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/release/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/ideas/[uuid]/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/ideas/conversational/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/mcp/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/me/assignments/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/mentionables/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/notifications/[uuid]/archive/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/notifications/[uuid]/read/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/notifications/preferences/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/notifications/read-all/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/notifications/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/notifications/unread-count/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/project-groups/[uuid]/dashboard/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/project-groups/[uuid]/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/project-groups/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/activity/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/available/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/documents/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/group/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/ideas/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/ideas/tracker/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/proposals/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/proposals/summary/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/resource-graph/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/stats/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/tasks/dependencies/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/projects/[uuid]/tasks/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/projects/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/approve/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/close/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/reject/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/revoke/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/proposals/[uuid]/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/search/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/session/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/sessions/[uuid]/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/claim/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/dependencies/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/release/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/tasks/[uuid]/sessions/route-47e1d397c5fcef9e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/layout-e3a49e06950a057f.js +0 -1
- package/.next/standalone/.next/static/chunks/app/login/admin/page-d470135f7aab6c5e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/login/callback/page-39a43f6d0245f8ca.js +0 -1
- package/.next/standalone/.next/static/chunks/app/login/page-acda3a31dc6a8280.js +0 -1
- package/.next/standalone/.next/static/chunks/app/login/pick-workspace/page-10683852baf17426.js +0 -1
- package/.next/standalone/.next/static/chunks/app/page-000b1349c8d5b652.js +0 -1
- package/.next/standalone/.next/static/chunks/webpack-3551a4c7f9bfe638.js +0 -1
- package/.next/standalone/.next/static/css/a80bf83b9122bfc5.css +0 -1
- /package/.next/standalone/.next/static/{CIg9Mtv4fKIeKqPY5Rczv → C9o43aSSZ0ebgki6mQ0-b}/_ssgManifest.js +0 -0
|
@@ -5,60 +5,18 @@
|
|
|
5
5
|
// keyed by the Chorus session anchor (direct idea uuid, or the entity uuid for an
|
|
6
6
|
// ad-hoc session) and `codex exec resume <thread_id>` on the next wake.
|
|
7
7
|
//
|
|
8
|
-
//
|
|
9
|
-
// ~/.chorus/codex-sessions.json
|
|
10
|
-
//
|
|
11
|
-
//
|
|
12
|
-
//
|
|
13
|
-
// CONTRACT: this is best-effort and MUST NEVER throw into the wake path. Any
|
|
14
|
-
// read/parse/write/rename failure degrades to "no mapping → next wake starts
|
|
15
|
-
// fresh" with a visible log (no-silent-errors). IO is injectable for tests.
|
|
8
|
+
// Thin wrapper over the generic `createSessionMap` factory (shared with the Kiro
|
|
9
|
+
// backend); the store is ~/.chorus/codex-sessions.json. The public API
|
|
10
|
+
// (getThreadId / setThreadId / codexSessionMapPath) and its injectable-IO deps are
|
|
11
|
+
// unchanged — see session-map.mjs for the best-effort / never-throw contract.
|
|
16
12
|
|
|
17
|
-
import {
|
|
18
|
-
import { homedir } from "node:os";
|
|
19
|
-
import { dirname, join } from "node:path";
|
|
13
|
+
import { createSessionMap } from "./session-map.mjs";
|
|
20
14
|
|
|
21
|
-
const
|
|
15
|
+
const map = createSessionMap({ filename: "codex-sessions.json", logPrefix: "codex-session-map" });
|
|
22
16
|
|
|
23
17
|
/** Absolute path to the Codex session-id map, alongside ~/.chorus/daemon.json. */
|
|
24
18
|
export function codexSessionMapPath() {
|
|
25
|
-
return
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
/** A non-empty trimmed string, or null. */
|
|
29
|
-
function nonEmpty(value) {
|
|
30
|
-
return typeof value === "string" && value.trim().length > 0 ? value : null;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* Read the whole map as a plain object. Missing / unreadable / malformed file →
|
|
35
|
-
* `{}` (never throws). A non-object JSON value (array / scalar) is also treated
|
|
36
|
-
* as empty.
|
|
37
|
-
* @param {string} path
|
|
38
|
-
* @param {(p: string) => string} read
|
|
39
|
-
* @param {{warn(m:string):void}} logger
|
|
40
|
-
* @returns {Record<string, unknown>}
|
|
41
|
-
*/
|
|
42
|
-
function readMap(path, read, logger) {
|
|
43
|
-
let raw;
|
|
44
|
-
try {
|
|
45
|
-
raw = read(path);
|
|
46
|
-
} catch (err) {
|
|
47
|
-
// ENOENT is the normal "no map yet" case — silent. Other read errors warn.
|
|
48
|
-
if (!(err && err.code === "ENOENT")) {
|
|
49
|
-
logger.warn(`[Chorus] codex-session-map: read failed (${err}) — treating as empty`);
|
|
50
|
-
}
|
|
51
|
-
return {};
|
|
52
|
-
}
|
|
53
|
-
try {
|
|
54
|
-
const parsed = JSON.parse(raw);
|
|
55
|
-
if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) return parsed;
|
|
56
|
-
logger.warn("[Chorus] codex-session-map: file is not a JSON object — treating as empty");
|
|
57
|
-
return {};
|
|
58
|
-
} catch (err) {
|
|
59
|
-
logger.warn(`[Chorus] codex-session-map: corrupt JSON (${err}) — treating as empty`);
|
|
60
|
-
return {};
|
|
61
|
-
}
|
|
19
|
+
return map.mapPath();
|
|
62
20
|
}
|
|
63
21
|
|
|
64
22
|
/**
|
|
@@ -69,13 +27,7 @@ function readMap(path, read, logger) {
|
|
|
69
27
|
* @returns {string | null}
|
|
70
28
|
*/
|
|
71
29
|
export function getThreadId(anchor, deps = {}) {
|
|
72
|
-
|
|
73
|
-
if (!a) return null;
|
|
74
|
-
const path = deps.path ?? codexSessionMapPath();
|
|
75
|
-
const read = deps.read ?? ((p) => readFileSync(p, "utf8"));
|
|
76
|
-
const logger = deps.logger ?? NOOP_LOGGER;
|
|
77
|
-
const map = readMap(path, read, logger);
|
|
78
|
-
return nonEmpty(map[a]);
|
|
30
|
+
return map.get(anchor, deps);
|
|
79
31
|
}
|
|
80
32
|
|
|
81
33
|
/**
|
|
@@ -91,27 +43,5 @@ export function getThreadId(anchor, deps = {}) {
|
|
|
91
43
|
* @returns {void}
|
|
92
44
|
*/
|
|
93
45
|
export function setThreadId(anchor, threadId, deps = {}) {
|
|
94
|
-
|
|
95
|
-
const t = nonEmpty(threadId);
|
|
96
|
-
if (!a || !t) return; // nothing meaningful to persist
|
|
97
|
-
const path = deps.path ?? codexSessionMapPath();
|
|
98
|
-
const read = deps.read ?? ((p) => readFileSync(p, "utf8"));
|
|
99
|
-
const write = deps.write ?? writeFileSync;
|
|
100
|
-
const mkdir = deps.mkdir ?? mkdirSync;
|
|
101
|
-
const rename = deps.rename ?? renameSync;
|
|
102
|
-
const logger = deps.logger ?? NOOP_LOGGER;
|
|
103
|
-
|
|
104
|
-
try {
|
|
105
|
-
const map = readMap(path, read, logger);
|
|
106
|
-
map[a] = t;
|
|
107
|
-
mkdir(dirname(path), { recursive: true });
|
|
108
|
-
// Atomic write: temp file (0600) in the same dir, then rename over target,
|
|
109
|
-
// so a crash mid-write never truncates the live map.
|
|
110
|
-
const tmp = `${path}.tmp`;
|
|
111
|
-
write(tmp, JSON.stringify(map, null, 2) + "\n", { mode: 0o600 });
|
|
112
|
-
rename(tmp, path);
|
|
113
|
-
} catch (err) {
|
|
114
|
-
// Best-effort: a failed persist just means the next wake starts fresh.
|
|
115
|
-
logger.warn(`[Chorus] codex-session-map: failed to persist ${a}→${t} (${err}) — wake will start fresh next time`);
|
|
116
|
-
}
|
|
46
|
+
map.set(anchor, threadId, deps);
|
|
117
47
|
}
|
package/cli/daemon-agent.mjs
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
// cli/daemon-agent.mjs
|
|
2
2
|
// Pure resolution + validation of the daemon's `--agent <type>` selection.
|
|
3
|
-
// `claude-code` (the default) and `
|
|
4
|
-
// (add-daemon-codex-backend cashed in the reserved `codex` slot
|
|
5
|
-
// unknown value is a hard
|
|
3
|
+
// `claude-code` (the default), `codex`, and `kiro` are all implemented backends
|
|
4
|
+
// (add-daemon-codex-backend cashed in the reserved `codex` slot;
|
|
5
|
+
// add-daemon-kiro-backend adds `kiro`). Resolving an unknown value is a hard
|
|
6
|
+
// error (no silent fallback). Zero dependencies.
|
|
6
7
|
|
|
7
|
-
/** The agent backends the daemon recognizes.
|
|
8
|
-
* via ClaudeSpawner, codex via CodexSpawner — see
|
|
9
|
-
|
|
8
|
+
/** The agent backends the daemon recognizes. All are implemented (claude-code
|
|
9
|
+
* via ClaudeSpawner, codex via CodexSpawner, kiro via KiroSpawner — see
|
|
10
|
+
* spawner-select.mjs). */
|
|
11
|
+
export const KNOWN_AGENTS = ["claude-code", "codex", "kiro"];
|
|
10
12
|
|
|
11
13
|
/** The default agent backend when neither --agent nor CHORUS_AGENT is set. */
|
|
12
14
|
export const DEFAULT_AGENT = "claude-code";
|
|
@@ -21,6 +23,7 @@ export const DEFAULT_AGENT = "claude-code";
|
|
|
21
23
|
*/
|
|
22
24
|
export function backendCli(agentType) {
|
|
23
25
|
if (agentType === "codex") return { name: "codex", envVar: "CHORUS_CODEX_PATH" };
|
|
26
|
+
if (agentType === "kiro") return { name: "kiro-cli", envVar: "CHORUS_KIRO_PATH" };
|
|
24
27
|
return { name: "claude", envVar: "CHORUS_CLAUDE_PATH" };
|
|
25
28
|
}
|
|
26
29
|
|
|
@@ -33,7 +36,9 @@ export function backendCli(agentType) {
|
|
|
33
36
|
* @returns {string}
|
|
34
37
|
*/
|
|
35
38
|
export function backendClientType(agentType) {
|
|
36
|
-
|
|
39
|
+
if (agentType === "codex") return "codex";
|
|
40
|
+
if (agentType === "kiro") return "kiro";
|
|
41
|
+
return "claude_code";
|
|
37
42
|
}
|
|
38
43
|
|
|
39
44
|
/**
|
package/cli/daemon-config.mjs
CHANGED
|
@@ -107,7 +107,7 @@ export function resolveSigintTimeoutMs(flags = {}, deps = {}) {
|
|
|
107
107
|
// The Waker/SseListener treat an `undefined` entry as "use process.cwd()".
|
|
108
108
|
|
|
109
109
|
/** Expand a leading `~` to the home dir and resolve to an absolute path. */
|
|
110
|
-
function normalizeCwd(value, home) {
|
|
110
|
+
export function normalizeCwd(value, home) {
|
|
111
111
|
if (typeof value !== "string") return undefined;
|
|
112
112
|
const trimmed = value.trim();
|
|
113
113
|
if (!trimmed) return undefined;
|
|
@@ -125,7 +125,7 @@ function normalizeCwd(value, home) {
|
|
|
125
125
|
* @param {Array<unknown>} list @param {string} home
|
|
126
126
|
* @returns {string[]}
|
|
127
127
|
*/
|
|
128
|
-
function cleanCwdList(list, home) {
|
|
128
|
+
export function cleanCwdList(list, home) {
|
|
129
129
|
const seen = new Set();
|
|
130
130
|
const out = [];
|
|
131
131
|
for (const raw of Array.isArray(list) ? list : []) {
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
// cli/daemon-install-config.mjs
|
|
2
|
+
// The `chorus daemon install` pre-install config phase (fix-daemon-install-config,
|
|
3
|
+
// idea d7592c96). Two pure, dependency-injected helpers that run BEFORE the
|
|
4
|
+
// service unit is written, so a boot-time daemon in systemd/launchd's CLEAN
|
|
5
|
+
// environment can always authenticate and knows which working directories to
|
|
6
|
+
// serve:
|
|
7
|
+
//
|
|
8
|
+
// resolveInstallCredentials — resolve (flags>env>daemon.json>plugin) → persist
|
|
9
|
+
// into ~/.chorus/daemon.json → validate against the server → abort (write
|
|
10
|
+
// nothing) if creds cannot be obtained or the key is invalid. This is the
|
|
11
|
+
// crux of the fix: a systemd --user unit does NOT inherit the operator's
|
|
12
|
+
// shell-exported CHORUS_URL/CHORUS_API_KEY, so the creds must live in the
|
|
13
|
+
// 0600 login file the clean boot env reads.
|
|
14
|
+
//
|
|
15
|
+
// resolveInstallCwds — determine the served working-directory set and persist
|
|
16
|
+
// it to daemon.json `cwds` (the single source of truth; the unit carries no
|
|
17
|
+
// --cwd — see cli/daemon-service.mjs buildServiceArgs). Prompts an interactive
|
|
18
|
+
// add-loop only when nothing is configured and stdin is a TTY.
|
|
19
|
+
//
|
|
20
|
+
// All IO (resolve / validate / persist / prompt / readJson / env / cwd) is
|
|
21
|
+
// injected so the helpers unit-test without real disk, network, or TTY — matching
|
|
22
|
+
// the style of cli/credentials.mjs and cli/daemon-config.mjs.
|
|
23
|
+
|
|
24
|
+
import { homedir } from "node:os";
|
|
25
|
+
import { resolveCredentials, loginFilePath } from "./credentials.mjs";
|
|
26
|
+
import { updateDaemonConfig, prompt as defaultPrompt } from "./login.mjs";
|
|
27
|
+
import { validateAndFetchIdentity } from "./chorus-client.mjs";
|
|
28
|
+
import { normalizeCwd, cleanCwdList } from "./daemon-config.mjs";
|
|
29
|
+
import { readFileSync } from "node:fs";
|
|
30
|
+
|
|
31
|
+
/** A non-empty trimmed string, or undefined. */
|
|
32
|
+
function nonEmpty(value) {
|
|
33
|
+
if (typeof value !== "string") return undefined;
|
|
34
|
+
const t = value.trim();
|
|
35
|
+
return t.length > 0 ? t : undefined;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/** Read a JSON file, returning null on any error. Mirrors credentials.mjs. */
|
|
39
|
+
function readJsonSafe(path) {
|
|
40
|
+
try {
|
|
41
|
+
const parsed = JSON.parse(readFileSync(path, "utf8"));
|
|
42
|
+
return parsed && typeof parsed === "object" ? parsed : null;
|
|
43
|
+
} catch {
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Credential preflight for `chorus daemon install`. Resolves credentials, persists
|
|
50
|
+
* them (with the fetched identity) into ~/.chorus/daemon.json, and validates the
|
|
51
|
+
* key against the server — all BEFORE the caller writes any service unit.
|
|
52
|
+
*
|
|
53
|
+
* Returns `{ ok: true, creds, identity }` on success, or `{ ok: false }` when the
|
|
54
|
+
* install must abort (no unit should be written). Never throws.
|
|
55
|
+
*
|
|
56
|
+
* Behavior (elaboration Q1/Q2/Q8/Q9):
|
|
57
|
+
* - Resolve via resolveCredentials (flags > env > daemon.json > plugin).
|
|
58
|
+
* - Unresolved + TTY + !skip → prompt login-style (masked key).
|
|
59
|
+
* - Unresolved + (skip || !TTY) → abort with the multi-source hint (no prompt).
|
|
60
|
+
* - ALWAYS validate the resolved/entered key; abort on failure.
|
|
61
|
+
* - On success persist { url, apiKey, agentUuid, agentName } via the 0600
|
|
62
|
+
* field-merge writer (preserves cwds / yoloAckAt / sigintTimeoutMs).
|
|
63
|
+
*
|
|
64
|
+
* @param {{ url?: string, apiKey?: string }} flags
|
|
65
|
+
* @param {Record<string,string|undefined>} env
|
|
66
|
+
* @param {{
|
|
67
|
+
* isTTY?: boolean, skip?: boolean,
|
|
68
|
+
* resolve?: typeof resolveCredentials,
|
|
69
|
+
* validate?: typeof validateAndFetchIdentity,
|
|
70
|
+
* writeConfig?: (partial: Record<string, unknown>) => string,
|
|
71
|
+
* prompt?: typeof defaultPrompt,
|
|
72
|
+
* log?: (m: string) => void,
|
|
73
|
+
* errLog?: (m: string) => void,
|
|
74
|
+
* }} [opts]
|
|
75
|
+
* @returns {Promise<{ ok: true, creds: {url:string,apiKey:string}, identity: {uuid:string,name:string} } | { ok: false }>}
|
|
76
|
+
*/
|
|
77
|
+
export async function resolveInstallCredentials(flags = {}, env = {}, opts = {}) {
|
|
78
|
+
const isTTY = opts.isTTY ?? false;
|
|
79
|
+
const skip = opts.skip ?? false;
|
|
80
|
+
const resolve = opts.resolve ?? resolveCredentials;
|
|
81
|
+
const validate = opts.validate ?? validateAndFetchIdentity;
|
|
82
|
+
const writeConfig = opts.writeConfig ?? updateDaemonConfig;
|
|
83
|
+
const ask = opts.prompt ?? defaultPrompt;
|
|
84
|
+
const log = opts.log ?? (() => {});
|
|
85
|
+
const errLog = opts.errLog ?? (() => {});
|
|
86
|
+
|
|
87
|
+
let url;
|
|
88
|
+
let apiKey;
|
|
89
|
+
|
|
90
|
+
// 1. Try the layered resolver. It THROWS (does not return null) when no source
|
|
91
|
+
// yields a complete pair — catch it and decide prompt vs abort.
|
|
92
|
+
try {
|
|
93
|
+
const resolved = resolve(flags, { env });
|
|
94
|
+
url = resolved.url;
|
|
95
|
+
apiKey = resolved.apiKey;
|
|
96
|
+
log(`[Chorus] credentials resolved from: ${resolved.source}`);
|
|
97
|
+
} catch (err) {
|
|
98
|
+
const hint = err instanceof Error ? err.message : String(err);
|
|
99
|
+
if (!isTTY || skip) {
|
|
100
|
+
// No way (or no permission) to prompt — abort with the actionable hint
|
|
101
|
+
// rather than writing a unit that would crash-loop at boot.
|
|
102
|
+
errLog(hint);
|
|
103
|
+
return { ok: false };
|
|
104
|
+
}
|
|
105
|
+
// TTY + interactive: complete credentials login-style (masked key).
|
|
106
|
+
log("[Chorus] no credentials found — configuring them now (saved for the boot service).");
|
|
107
|
+
url = nonEmpty(await ask("Chorus URL: "));
|
|
108
|
+
apiKey = nonEmpty(await ask("Chorus API key (cho_...): ", { mask: true }));
|
|
109
|
+
if (!url || !apiKey) {
|
|
110
|
+
errLog("[Chorus] both a URL and an API key are required — aborting install.");
|
|
111
|
+
return { ok: false };
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
// 2. ALWAYS validate against the server before writing anything (Q2/Q9) — even
|
|
116
|
+
// in skip mode. A bad/expired key fails the install instead of at boot.
|
|
117
|
+
let identity;
|
|
118
|
+
try {
|
|
119
|
+
identity = await validate({ url, apiKey });
|
|
120
|
+
} catch (err) {
|
|
121
|
+
errLog(`[Chorus] credential validation failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
122
|
+
errLog("[Chorus] credentials were NOT saved and no service was installed.");
|
|
123
|
+
return { ok: false };
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
// 3. Persist into the 0600 login file so the clean boot env can read it. The
|
|
127
|
+
// field-merge writer preserves cwds / yoloAckAt / sigintTimeoutMs.
|
|
128
|
+
writeConfig({ url, apiKey, agentUuid: identity.uuid, agentName: identity.name });
|
|
129
|
+
log(`[Chorus] credentials saved for ${identity.name} (${identity.uuid}).`);
|
|
130
|
+
return { ok: true, creds: { url, apiKey }, identity };
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* Determine the set of working directories the daemon serves and persist it to
|
|
135
|
+
* ~/.chorus/daemon.json `cwds` (the single source of truth — the unit carries no
|
|
136
|
+
* --cwd). Prompts an interactive add-loop only when nothing is configured and
|
|
137
|
+
* stdin is a TTY (and skip is false).
|
|
138
|
+
*
|
|
139
|
+
* "Configured" ⇔ a `--cwd` flag was passed OR daemon.json already has a non-empty
|
|
140
|
+
* `cwds` array. Configured, or skip/non-TTY, uses that set (or the process cwd
|
|
141
|
+
* default) with no prompt.
|
|
142
|
+
*
|
|
143
|
+
* Returns `{ cwds: string[] }` — the normalized, de-duplicated set that was
|
|
144
|
+
* persisted. Never throws.
|
|
145
|
+
*
|
|
146
|
+
* @param {{ cwd?: string[] }} flags
|
|
147
|
+
* @param {{
|
|
148
|
+
* isTTY?: boolean, skip?: boolean,
|
|
149
|
+
* readJson?: (path: string) => (Record<string, unknown>|null),
|
|
150
|
+
* loginPath?: string,
|
|
151
|
+
* writeConfig?: (partial: Record<string, unknown>) => string,
|
|
152
|
+
* prompt?: typeof defaultPrompt,
|
|
153
|
+
* home?: string,
|
|
154
|
+
* processCwd?: string,
|
|
155
|
+
* log?: (m: string) => void,
|
|
156
|
+
* }} [opts]
|
|
157
|
+
* @returns {Promise<{ cwds: string[] }>}
|
|
158
|
+
*/
|
|
159
|
+
export async function resolveInstallCwds(flags = {}, opts = {}) {
|
|
160
|
+
const isTTY = opts.isTTY ?? false;
|
|
161
|
+
const skip = opts.skip ?? false;
|
|
162
|
+
const readJson = opts.readJson ?? readJsonSafe;
|
|
163
|
+
const loginPath = opts.loginPath ?? loginFilePath();
|
|
164
|
+
const writeConfig = opts.writeConfig ?? updateDaemonConfig;
|
|
165
|
+
const ask = opts.prompt ?? defaultPrompt;
|
|
166
|
+
const home = opts.home ?? homedir();
|
|
167
|
+
const processCwd = opts.processCwd ?? process.cwd();
|
|
168
|
+
const log = opts.log ?? (() => {});
|
|
169
|
+
|
|
170
|
+
// 1. Explicit --cwd flag(s) → configured; normalize + dedup, no prompt.
|
|
171
|
+
const flagList = Array.isArray(flags.cwd) ? flags.cwd : typeof flags.cwd === "string" ? [flags.cwd] : [];
|
|
172
|
+
const fromFlags = cleanCwdList(flagList, home);
|
|
173
|
+
if (fromFlags.length > 0) {
|
|
174
|
+
writeConfig({ cwds: fromFlags });
|
|
175
|
+
return { cwds: fromFlags };
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
// 2. Existing daemon.json `cwds` → configured; use as-is (re-persist is a no-op
|
|
179
|
+
// merge, so we skip the write and just return them).
|
|
180
|
+
const file = readJson(loginPath);
|
|
181
|
+
const fromFile = file && Array.isArray(file.cwds) ? cleanCwdList(file.cwds, home) : [];
|
|
182
|
+
if (fromFile.length > 0) {
|
|
183
|
+
return { cwds: fromFile };
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
// 3. Unconfigured. On a non-TTY or in skip mode, fall back to the process cwd
|
|
187
|
+
// default with no prompt.
|
|
188
|
+
const defaultCwd = normalizeCwd(processCwd, home);
|
|
189
|
+
if (!isTTY || skip) {
|
|
190
|
+
const cwds = defaultCwd ? [defaultCwd] : [];
|
|
191
|
+
if (cwds.length > 0) writeConfig({ cwds });
|
|
192
|
+
return { cwds };
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
// 4. Unconfigured + TTY + !skip → interactive add-loop. Pre-seed the current
|
|
196
|
+
// directory as the suggested first entry (Enter accepts it), then keep
|
|
197
|
+
// prompting until a blank line ends the loop.
|
|
198
|
+
const collected = [];
|
|
199
|
+
log(`[Chorus] Configure the working directories this daemon serves.`);
|
|
200
|
+
const first = nonEmpty(await ask(`Working directory [${defaultCwd}] (Enter to accept the default): `));
|
|
201
|
+
collected.push(first ?? defaultCwd);
|
|
202
|
+
// subsequent adds
|
|
203
|
+
// eslint-disable-next-line no-constant-condition
|
|
204
|
+
while (true) {
|
|
205
|
+
const next = nonEmpty(await ask("Add another working directory (blank to finish): "));
|
|
206
|
+
if (!next) break;
|
|
207
|
+
collected.push(next);
|
|
208
|
+
}
|
|
209
|
+
const cwds = cleanCwdList(collected, home);
|
|
210
|
+
const finalCwds = cwds.length > 0 ? cwds : defaultCwd ? [defaultCwd] : [];
|
|
211
|
+
if (finalCwds.length > 0) writeConfig({ cwds: finalCwds });
|
|
212
|
+
return { cwds: finalCwds };
|
|
213
|
+
}
|
package/cli/daemon-service.mjs
CHANGED
|
@@ -70,17 +70,22 @@ export function resolveScriptPath() {
|
|
|
70
70
|
|
|
71
71
|
/**
|
|
72
72
|
* Build the argv the SUPERVISED daemon runs — the normal long-lived daemon
|
|
73
|
-
* (NO `-d`: the supervisor owns the foreground process). Reflects the
|
|
74
|
-
* operator passed to `install
|
|
75
|
-
*
|
|
73
|
+
* (NO `-d`: the supervisor owns the foreground process). Reflects the `--agent`
|
|
74
|
+
* / `--chorus-only` posture the operator passed to `install`. The served cwd set
|
|
75
|
+
* is NOT embedded here — it lives in ~/.chorus/daemon.json `cwds` (single source
|
|
76
|
+
* of truth) and is read by the daemon via resolveDaemonCwds. Pure.
|
|
76
77
|
* @param {{ cwds?: string[], agent?: string, chorusOnly?: boolean, scriptPath: string }} spec
|
|
77
|
-
* @returns {string[]} e.g. ["/x/chorus.mjs","daemon","--
|
|
78
|
+
* @returns {string[]} e.g. ["/x/chorus.mjs","daemon","--agent","codex"]
|
|
78
79
|
*/
|
|
79
80
|
export function buildServiceArgs(spec) {
|
|
80
81
|
const args = [spec.scriptPath, "daemon"];
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
82
|
+
// NOTE: --cwd is deliberately NOT emitted. The set of working directories the
|
|
83
|
+
// daemon serves is persisted to ~/.chorus/daemon.json `cwds` at install time
|
|
84
|
+
// (the single source of truth) and read back by the daemon via
|
|
85
|
+
// resolveDaemonCwds. Baking --cwd into the unit too would let the two sources
|
|
86
|
+
// drift and would hide the paths from a plain `chorus daemon` run
|
|
87
|
+
// (fix-daemon-install-config, elaboration Q5-A). `spec.cwds` is still accepted
|
|
88
|
+
// for signature compatibility but ignored here.
|
|
84
89
|
if (spec.agent) args.push("--agent", spec.agent);
|
|
85
90
|
if (spec.chorusOnly) args.push("--chorus-only");
|
|
86
91
|
return args;
|
package/cli/daemon.mjs
CHANGED
|
@@ -13,7 +13,11 @@
|
|
|
13
13
|
// observability idea.
|
|
14
14
|
|
|
15
15
|
import { resolveCredentials, loginFilePath } from "./credentials.mjs";
|
|
16
|
-
import { prompt, writeLoginFile } from "./login.mjs";
|
|
16
|
+
import { prompt, writeLoginFile, updateDaemonConfig } from "./login.mjs";
|
|
17
|
+
import {
|
|
18
|
+
resolveInstallCredentials,
|
|
19
|
+
resolveInstallCwds,
|
|
20
|
+
} from "./daemon-install-config.mjs";
|
|
17
21
|
import {
|
|
18
22
|
resolvePermissionMode,
|
|
19
23
|
yoloWarningLine,
|
|
@@ -29,6 +33,7 @@ import { Waker } from "./waker.mjs";
|
|
|
29
33
|
import { LineageResolver } from "./lineage.mjs";
|
|
30
34
|
import { resolveClaudePath } from "./claude-spawner.mjs";
|
|
31
35
|
import { resolveCodexPath } from "./codex-spawner.mjs";
|
|
36
|
+
import { resolveKiroPath } from "./kiro-spawner.mjs";
|
|
32
37
|
import { selectSpawner } from "./spawner-select.mjs";
|
|
33
38
|
import {
|
|
34
39
|
createExecutionUploadHooks,
|
|
@@ -484,6 +489,7 @@ export async function runDaemon(flags = {}, deps = {}) {
|
|
|
484
489
|
// banner shows the right binary instead of always probing for `claude`.
|
|
485
490
|
const findClaude = deps.resolveClaudePath ?? resolveClaudePath;
|
|
486
491
|
const findCodex = deps.resolveCodexPath ?? resolveCodexPath;
|
|
492
|
+
const findKiro = deps.resolveKiroPath ?? resolveKiroPath;
|
|
487
493
|
const verbose = flags.verbose === true || env.CHORUS_VERBOSE === "1";
|
|
488
494
|
|
|
489
495
|
// Resolve the agent backend (default claude-code). An unknown --agent /
|
|
@@ -520,7 +526,14 @@ export async function runDaemon(flags = {}, deps = {}) {
|
|
|
520
526
|
// The preflight dep bundle — built from the same seams runDaemon resolved, so
|
|
521
527
|
// the detach/restart paths run the SAME (injectable) preflight, not the real
|
|
522
528
|
// implementations. Threaded into startDetached so tests can drive it offline.
|
|
523
|
-
|
|
529
|
+
// writeConfig / readJson / loginPath are optional injectable IO used by the
|
|
530
|
+
// `install` config phase — default (undefined) means the real 0600 login file.
|
|
531
|
+
const pfDeps = {
|
|
532
|
+
flags, env, isTTY, resolve, validate, writeCreds, askPrompt, log, errLog,
|
|
533
|
+
writeConfig: deps.writeConfig,
|
|
534
|
+
readJson: deps.readJson,
|
|
535
|
+
loginPath: deps.loginPath,
|
|
536
|
+
};
|
|
524
537
|
|
|
525
538
|
const action = flags.action ?? "run";
|
|
526
539
|
if (action !== "run") {
|
|
@@ -557,10 +570,12 @@ export async function runDaemon(flags = {}, deps = {}) {
|
|
|
557
570
|
|
|
558
571
|
// Detect the SELECTED backend's executable (non-fatal): the daemon still
|
|
559
572
|
// subscribes when it's missing; a wake surfaces the error visibly when one
|
|
560
|
-
// arrives. The resolved path (or absence) is shown in the banner below.
|
|
561
|
-
//
|
|
562
|
-
//
|
|
563
|
-
|
|
573
|
+
// arrives. The resolved path (or absence) is shown in the banner below. Each
|
|
574
|
+
// backend probes its own binary — codex → resolveCodexPath, kiro →
|
|
575
|
+
// resolveKiroPath, otherwise resolveClaudePath — so a `--agent kiro` run probes
|
|
576
|
+
// (and the banner reports) `kiro-cli`, not `claude`.
|
|
577
|
+
const cliPath =
|
|
578
|
+
agentType === "codex" ? findCodex() : agentType === "kiro" ? findKiro() : findClaude();
|
|
564
579
|
|
|
565
580
|
// The daemon.json the layered config readers (credentials, sigint timeout, cwds)
|
|
566
581
|
// consult. Surfacing its absolute path + presence in the banner makes it obvious
|
|
@@ -742,11 +757,55 @@ export async function handleLifecycleAction(action, { log, errLog, lifecycle, se
|
|
|
742
757
|
const svc = service ?? { detectSupervisor: () => ({ kind: "none" }) };
|
|
743
758
|
|
|
744
759
|
if (action === "install") {
|
|
760
|
+
// Pre-install config phase (fix-daemon-install-config): BEFORE writing any
|
|
761
|
+
// unit, guarantee the clean-env boot service can authenticate and knows which
|
|
762
|
+
// cwds to serve. --yes/-y OR a non-TTY suppress prompts; neither suppresses
|
|
763
|
+
// the resolve/persist/validate/abort guarantee.
|
|
764
|
+
const flags = pfDeps?.flags ?? {};
|
|
765
|
+
const env = pfDeps?.env ?? {};
|
|
766
|
+
const isTTY = pfDeps?.isTTY ?? false;
|
|
767
|
+
const skip = flags.yes === true || !isTTY;
|
|
768
|
+
const installCfg = svc.installConfig ?? {
|
|
769
|
+
resolveInstallCredentials,
|
|
770
|
+
resolveInstallCwds,
|
|
771
|
+
};
|
|
772
|
+
|
|
773
|
+
const credResult = await installCfg.resolveInstallCredentials(flags, env, {
|
|
774
|
+
isTTY,
|
|
775
|
+
skip,
|
|
776
|
+
resolve: pfDeps?.resolve,
|
|
777
|
+
validate: pfDeps?.validate,
|
|
778
|
+
writeConfig: pfDeps?.writeConfig ?? updateDaemonConfig,
|
|
779
|
+
prompt: pfDeps?.askPrompt,
|
|
780
|
+
log,
|
|
781
|
+
errLog,
|
|
782
|
+
});
|
|
783
|
+
if (!credResult.ok) {
|
|
784
|
+
// Credentials could not be obtained / validated — never install a service
|
|
785
|
+
// that would fail to authenticate and crash-loop at boot.
|
|
786
|
+
errLog("[Chorus] install aborted — no service was written.");
|
|
787
|
+
return 1;
|
|
788
|
+
}
|
|
789
|
+
|
|
790
|
+
// Configure + persist the served cwd set (single source of truth in
|
|
791
|
+
// daemon.json; the unit carries no --cwd). Never blocks on a non-TTY.
|
|
792
|
+
// readJson / loginPath are optional injectable seams (default to the real
|
|
793
|
+
// login file) so the config phase can be exercised hermetically in tests.
|
|
794
|
+
await installCfg.resolveInstallCwds(flags, {
|
|
795
|
+
isTTY,
|
|
796
|
+
skip,
|
|
797
|
+
writeConfig: pfDeps?.writeConfig ?? updateDaemonConfig,
|
|
798
|
+
readJson: pfDeps?.readJson,
|
|
799
|
+
loginPath: pfDeps?.loginPath,
|
|
800
|
+
prompt: pfDeps?.askPrompt,
|
|
801
|
+
log,
|
|
802
|
+
});
|
|
803
|
+
|
|
745
804
|
const spec = {
|
|
746
805
|
...svc.resolveServicePaths(),
|
|
747
|
-
cwds:
|
|
748
|
-
agent:
|
|
749
|
-
chorusOnly:
|
|
806
|
+
cwds: flags.cwd ?? [],
|
|
807
|
+
agent: flags.agent,
|
|
808
|
+
chorusOnly: flags.chorusOnly === true,
|
|
750
809
|
workingDir: process.cwd(),
|
|
751
810
|
};
|
|
752
811
|
const r = svc.installService(spec);
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
// cli/kiro-session-map.mjs
|
|
2
|
+
// Daemon-local persistence of the Kiro `anchor → sessionId` map. Kiro GENERATES
|
|
3
|
+
// its own per-cwd conversation sessionId (unlike Claude, which accepts a
|
|
4
|
+
// client-supplied --session-id), and the daemon works one repo cwd shared by many
|
|
5
|
+
// ideas — so Kiro's native "resume most recent conversation from this directory"
|
|
6
|
+
// would cross-contaminate ideas. Instead we record the generated sessionId keyed
|
|
7
|
+
// by the Chorus session anchor (direct idea uuid, or the entity uuid for an ad-hoc
|
|
8
|
+
// session) and `kiro-cli chat --no-interactive --resume-id <sessionId>` on the
|
|
9
|
+
// next wake for that anchor.
|
|
10
|
+
//
|
|
11
|
+
// Thin wrapper over the generic `createSessionMap` factory (shared with the Codex
|
|
12
|
+
// backend); the store is ~/.chorus/kiro-sessions.json. See session-map.mjs for the
|
|
13
|
+
// best-effort / never-throw contract and the injectable-IO deps.
|
|
14
|
+
|
|
15
|
+
import { createSessionMap } from "./session-map.mjs";
|
|
16
|
+
|
|
17
|
+
const map = createSessionMap({ filename: "kiro-sessions.json", logPrefix: "kiro-session-map" });
|
|
18
|
+
|
|
19
|
+
/** Absolute path to the Kiro session-id map, alongside ~/.chorus/daemon.json. */
|
|
20
|
+
export function kiroSessionMapPath() {
|
|
21
|
+
return map.mapPath();
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Look up the Kiro sessionId recorded for `anchor`, or null when there is none
|
|
26
|
+
* (no file, no entry, or a non-string entry). Never throws.
|
|
27
|
+
* @param {string} anchor
|
|
28
|
+
* @param {{ path?: string, read?: (p: string) => string, logger?: any }} [deps]
|
|
29
|
+
* @returns {string | null}
|
|
30
|
+
*/
|
|
31
|
+
export function getSessionId(anchor, deps = {}) {
|
|
32
|
+
return map.get(anchor, deps);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Record `anchor → sessionId`, preserving every other entry. Atomic (temp file +
|
|
37
|
+
* rename). Best-effort: a blank anchor/sessionId is ignored (no write), and any
|
|
38
|
+
* IO failure is logged and swallowed — it never throws into the wake path.
|
|
39
|
+
* @param {string} anchor
|
|
40
|
+
* @param {string} sessionId
|
|
41
|
+
* @param {{ path?: string, read?: (p: string) => string,
|
|
42
|
+
* write?: (p: string, c: string, o?: object) => void,
|
|
43
|
+
* mkdir?: (p: string, o?: object) => void,
|
|
44
|
+
* rename?: (from: string, to: string) => void, logger?: any }} [deps]
|
|
45
|
+
* @returns {void}
|
|
46
|
+
*/
|
|
47
|
+
export function setSessionId(anchor, sessionId, deps = {}) {
|
|
48
|
+
map.set(anchor, sessionId, deps);
|
|
49
|
+
}
|