@chorus-aidlc/chorus 0.21.0 → 0.21.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 +213 -213
- package/.next/standalone/.next/app-path-routes-manifest.json +38 -38
- package/.next/standalone/.next/build-manifest.json +2 -2
- package/.next/standalone/.next/prerender-manifest.json +42 -42
- 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 +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_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 +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 +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_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_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/page.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/settings/page.js +2 -2
- package/.next/standalone/.next/server/app/(dashboard)/settings/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/settings/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_not-found.html +2 -2
- package/.next/standalone/.next/server/app/_not-found.rsc +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_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/admin/companies/new.html +2 -2
- package/.next/standalone/.next/server/app/admin/companies/new.rsc +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 +2 -2
- package/.next/standalone/.next/server/app/admin/companies.rsc +1 -1
- package/.next/standalone/.next/server/app/admin/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/admin.html +2 -2
- package/.next/standalone/.next/server/app/admin.rsc +1 -1
- package/.next/standalone/.next/server/app/api/admin/companies/[uuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/admin/companies/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/admin/login/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/admin/session/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agent-connections/route_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_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agents/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/api-keys/[uuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/api-keys/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/callback/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/check-default/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/company-oidc/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/default-login/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/identify/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/me/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/sync-token/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/comments/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon/connection-heartbeat/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon/control/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon/directory-request/report/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon/execution-state/route_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon-directory-requests/[uuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon-directory-requests/route_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/project-groups/[uuid]/access-preview/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]/members/[userUuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/project-groups/[uuid]/members/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/project-groups/[uuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/project-groups/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/project-visits/pin/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/project-visits/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/project-visits/visit/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/access-preview/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/activity/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/agent-cwds/route_client-reference-manifest.js +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/preview/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_client-reference-manifest.js +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]/members/[userUuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/members/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_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_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/agent-cwd-options/route_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_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/references/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/search/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/session/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/sessions/[uuid]/route_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +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_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/index.html +2 -2
- package/.next/standalone/.next/server/app/index.rsc +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 +2 -2
- package/.next/standalone/.next/server/app/login/admin.rsc +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 +2 -2
- package/.next/standalone/.next/server/app/login/callback.rsc +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_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/login/pick-workspace.html +2 -2
- package/.next/standalone/.next/server/app/login/pick-workspace.rsc +1 -1
- package/.next/standalone/.next/server/app/login.html +2 -2
- package/.next/standalone/.next/server/app/login.rsc +1 -1
- package/.next/standalone/.next/server/app/onboarding/page.js +2 -2
- package/.next/standalone/.next/server/app/onboarding/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/onboarding.html +2 -2
- package/.next/standalone/.next/server/app/onboarding.rsc +2 -2
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/projects.html +2 -2
- package/.next/standalone/.next/server/app/projects.rsc +2 -2
- package/.next/standalone/.next/server/app/settings.html +2 -2
- package/.next/standalone/.next/server/app/settings.rsc +3 -3
- package/.next/standalone/.next/server/app-paths-manifest.json +38 -38
- package/.next/standalone/.next/server/chunks/1855.js +2 -2
- package/.next/standalone/.next/server/chunks/2689.js +2 -2
- package/.next/standalone/.next/server/chunks/5212.js +1 -1
- package/.next/standalone/.next/server/chunks/5281.js +2 -2
- package/.next/standalone/.next/server/chunks/5647.js +1 -1
- package/.next/standalone/.next/server/chunks/5764.js +2 -2
- package/.next/standalone/.next/server/chunks/6493.js +1 -1
- package/.next/standalone/.next/server/chunks/6991.js +2 -2
- package/.next/standalone/.next/server/chunks/{9894.js → 7138.js} +1 -1
- package/.next/standalone/.next/server/chunks/{9583.js → 7169.js} +3 -3
- package/.next/standalone/.next/server/chunks/7425.js +1 -0
- package/.next/standalone/.next/server/chunks/7839.js +1 -1
- package/.next/standalone/.next/server/chunks/8692.js +1 -0
- package/.next/standalone/.next/server/chunks/87.js +1 -0
- package/.next/standalone/.next/server/chunks/8849.js +2 -2
- package/.next/standalone/.next/server/chunks/911.js +1 -0
- package/.next/standalone/.next/server/chunks/9295.js +1 -1
- package/.next/standalone/.next/server/middleware-manifest.json +5 -5
- package/.next/standalone/.next/server/pages/404.html +2 -2
- package/.next/standalone/.next/server/pages/500.html +1 -1
- package/.next/standalone/.next/server/pages-manifest.json +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/static/chunks/15638-e8566f8551988a0b.js +1 -0
- package/.next/standalone/.next/static/chunks/30187-8406d0b0e7582b4e.js +1 -0
- package/.next/standalone/.next/static/chunks/59480-03e05915e0f0f1e4.js +1 -0
- package/.next/standalone/.next/static/chunks/65833-d0a8d9023febc1ce.js +1 -0
- package/.next/standalone/.next/static/chunks/75844-ab7e24827a4875a0.js +1 -0
- package/.next/standalone/.next/static/chunks/88277-9563bd5857edfb08.js +1 -0
- package/.next/standalone/.next/static/chunks/91202-a6809360a6c58c9a.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/layout-9a0a7266bbc1498f.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/{page-670eeb1a8007a20c.js → page-26aef423473209b6.js} +1 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page-deb0615a19598fe6.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/page-cb20e73952b1d4ee.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/graph/{page-ed5fbcae30e875d1.js → page-c8af650e39ff3eac.js} +1 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page-6bc33e1fb5e252dc.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/new/page-e622257cf6a2fe0c.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/{page-49b02e795c5b279c.js → page-2085f55b6cbd4d82.js} +1 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/{page-f26cad3e8406ac07.js → page-2b9e6239037f79d5.js} +1 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/{page-04a3fbabc7542960.js → page-7afc11846cb7aefc.js} +1 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/settings/{page-d0c217c1e9a18433.js → page-406dbd7ae784ec2b.js} +1 -1
- package/.next/standalone/.next/static/chunks/app/onboarding/page-bb641e258e90d08b.js +1 -0
- package/.next/standalone/package.json +1 -1
- package/.next/standalone/public/chorus-plugin/.claude-plugin/plugin.json +1 -1
- package/.next/standalone/public/chorus-plugin/bin/chorus-api.sh +1 -1
- package/.next/standalone/public/chorus-plugin/skills/brainstorm/SKILL.md +1 -1
- package/.next/standalone/public/chorus-plugin/skills/chorus/SKILL.md +1 -1
- package/.next/standalone/public/chorus-plugin/skills/chorus-cli/SKILL.md +1 -1
- package/.next/standalone/public/chorus-plugin/skills/develop/SKILL.md +1 -1
- package/.next/standalone/public/chorus-plugin/skills/docs/SKILL.md +1 -1
- package/.next/standalone/public/chorus-plugin/skills/idea/SKILL.md +1 -1
- package/.next/standalone/public/chorus-plugin/skills/openspec-aware/SKILL.md +1 -1
- package/.next/standalone/public/chorus-plugin/skills/orchestrate/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/research/SKILL.md +1 -1
- package/.next/standalone/public/chorus-plugin/skills/review/SKILL.md +1 -1
- package/.next/standalone/public/chorus-plugin/skills/spec-lite/SKILL.md +1 -1
- package/.next/standalone/public/chorus-plugin/skills/yolo/SKILL.md +1 -1
- package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-brainstorm/SKILL.md +1 -1
- package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-cli/SKILL.md +1 -1
- package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-develop/SKILL.md +1 -1
- package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-docs/SKILL.md +1 -1
- package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-idea/SKILL.md +1 -1
- package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-openspec-aware/SKILL.md +1 -1
- package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-orchestrate/SKILL.md +1 -1
- package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-proposal/SKILL.md +1 -1
- package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-quick-dev/SKILL.md +1 -1
- package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-research/SKILL.md +1 -1
- package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-review/SKILL.md +1 -1
- package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-spec-lite/SKILL.md +1 -1
- package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-yolo/SKILL.md +1 -1
- package/.next/standalone/public/kiro-plugin/bin/chorus-api.sh +1 -1
- package/README.md +1 -1
- package/README.zh.md +1 -1
- package/cli/init/contracts.mjs +3 -0
- package/cli/init/install-methods.mjs +24 -113
- package/cli/init/pi-compatibility.mjs +5 -0
- package/cli/init/pi-mcp-backend.mjs +160 -0
- package/cli/init/pi-mcp-config.mjs +48 -64
- package/cli/init/registry.mjs +3 -2
- package/cli/init/run-command.mjs +3 -1
- package/cli/init/steps/codex-restart.mjs +95 -0
- package/cli/init/steps/credential-seed.mjs +18 -17
- package/cli/init.mjs +2 -2
- package/cli/upgrade-plugins.mjs +10 -45
- package/package.json +1 -1
- package/.next/standalone/.next/server/chunks/1443.js +0 -1
- package/.next/standalone/.next/server/chunks/2701.js +0 -1
- package/.next/standalone/.next/server/chunks/6666.js +0 -1
- package/.next/standalone/.next/server/chunks/7329.js +0 -1
- package/.next/standalone/.next/static/chunks/14891-8a7485231cdaf105.js +0 -1
- package/.next/standalone/.next/static/chunks/30187-12e26e880f7b6da7.js +0 -1
- package/.next/standalone/.next/static/chunks/36244-82317cfd58345146.js +0 -1
- package/.next/standalone/.next/static/chunks/40309-bedb6f19876265b4.js +0 -1
- package/.next/standalone/.next/static/chunks/56161-5d2f255f25dba375.js +0 -1
- package/.next/standalone/.next/static/chunks/6497-36958930c3e35070.js +0 -1
- package/.next/standalone/.next/static/chunks/70762-18006a86c770d908.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/layout-2f843ed9eb3944e4.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page-ed4d5692eac763c4.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/page-48b79f200d9f086c.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page-91e61264f483701b.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/new/page-cf90d562352224ec.js +0 -1
- package/.next/standalone/.next/static/chunks/app/onboarding/page-87d43a00d0a7b209.js +0 -1
- /package/.next/standalone/.next/static/{q_ngNQiWgbMewMxZKkQzM → -QBMDLYHMUleR_Nbp3gXV}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{q_ngNQiWgbMewMxZKkQzM → -QBMDLYHMUleR_Nbp3gXV}/_ssgManifest.js +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@chorus-aidlc/chorus",
|
|
3
|
-
"version": "0.21.
|
|
3
|
+
"version": "0.21.1",
|
|
4
4
|
"description": "The Agent Harness for AI-Human Collaboration — session lifecycle, task state, sub-agent orchestration, observability, and failure recovery",
|
|
5
5
|
"homepage": "https://github.com/Chorus-AIDLC/Chorus",
|
|
6
6
|
"repository": {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "chorus",
|
|
3
3
|
"description": "Chorus AI-DLC collaboration platform plugin for Claude Code. Automates session lifecycle, provides MCP tools for PM/Developer/Admin workflows, and enables multi-agent team observability.",
|
|
4
|
-
"version": "0.21.
|
|
4
|
+
"version": "0.21.1",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Chorus-AIDLC"
|
|
7
7
|
},
|
|
@@ -292,7 +292,7 @@ cmd_mcp_tool() {
|
|
|
292
292
|
# Step 1: Initialize MCP session
|
|
293
293
|
local init_payload
|
|
294
294
|
init_payload=$(cat <<JSONEOF
|
|
295
|
-
{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"chorus-hook","version":"0.21.
|
|
295
|
+
{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"chorus-hook","version":"0.21.1"}}}
|
|
296
296
|
JSONEOF
|
|
297
297
|
)
|
|
298
298
|
|
|
@@ -283,7 +283,7 @@ cmd_mcp_tool() {
|
|
|
283
283
|
# Step 1: Initialize MCP session
|
|
284
284
|
local init_payload
|
|
285
285
|
init_payload=$(cat <<JSONEOF
|
|
286
|
-
{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"chorus-hook","version":"0.21.
|
|
286
|
+
{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"chorus-hook","version":"0.21.1"}}}
|
|
287
287
|
JSONEOF
|
|
288
288
|
)
|
|
289
289
|
|
package/README.md
CHANGED
|
@@ -80,7 +80,7 @@ chorus upgrade --plugins # Also refresh configured agents' Chorus plugins
|
|
|
80
80
|
|
|
81
81
|
Self-upgrade supports the active **npm global installation** on Linux, macOS and Windows. It checks npm's prefix, resolves the latest stable release, avoids downgrades and verifies the installed version. Source checkouts, links, npx and other package-manager installations must use their own update workflow. CLI discovery, installation or verification failure stops plugin work.
|
|
82
82
|
|
|
83
|
-
`--plugins` reads `~/.chorus/daemon.json`, including legacy single-agent records. Explicit Claude Code, Codex, Kiro and Pi types are processed even with wake disabled. Each record's home, config directory and PATH are respected; shared destinations update once. Only Chorus and required integration packages are refreshed, with existing credentials and unrelated settings preserved. Host CLIs must already be installed. Kiro templates come from the record's configured Chorus instance (its served version, which may lag npm); conflicting instance URLs for one destination are reported. Pi
|
|
83
|
+
`--plugins` reads `~/.chorus/daemon.json`, including legacy single-agent records. Explicit Claude Code, Codex, Kiro and Pi types are processed even with wake disabled. Each record's home, config directory and PATH are respected; shared destinations update once. Only Chorus and required integration packages are refreshed, with existing credentials and unrelated settings preserved. Host CLIs must already be installed. Kiro templates come from the record's configured Chorus instance (its served version, which may lag npm); conflicting instance URLs for one destination are reported. Stable Pi >=0.99.0 <2.0.0 uses native MCP and targets Chorus only; Pi 0.84.4–0.98.x retains the verified `pi-mcp-adapter@5.0.0` pin. Unknown versions do not trigger adapter changes or an MCP-complete claim; unsupported hosts run no package commands. Updates are targeted, never all-extension; missing capability or incompatible constraints report incomplete work. User pins/ranges are preserved (the verified adapter pin is intentional, not an incomplete latest refresh). Existing native-host adapters and `-builtin:mcp` filters produce scope-specific manual-migration warnings, never automatic removal. See [Pi setup](docs/CONNECT_PI.md).
|
|
84
84
|
|
|
85
85
|
The command is noninteractive and reports each target. Exit **0** means all requested work completed (missing/empty configuration is a successful no-op); exit **1** means failure or incomplete work, including offline/unknown/untyped records, missing hosts or unsupported targeted updates. Later targets still run after a plugin failure; completed changes are not rolled back. Start new agent sessions and restart the daemon when convenient to activate updates—the command does not restart processes or interrupt sessions.
|
|
86
86
|
|
package/README.zh.md
CHANGED
|
@@ -71,7 +71,7 @@ chorus upgrade --plugins # 同时刷新已配置 Agent 的 Chorus 插件
|
|
|
71
71
|
|
|
72
72
|
自升级支持 Linux、macOS 和 Windows 上当前使用的 **npm 全局安装**:检查 npm prefix、查询最新稳定版本、避免降级,并在安装后验证版本。源码目录、链接、npx 和其他包管理器安装请使用各自的更新方式。CLI 检查、安装或版本验证失败后,不会继续更新插件。
|
|
73
73
|
|
|
74
|
-
`--plugins` 读取 `~/.chorus/daemon.json`,兼容旧版单 Agent 配置。明确指定 Claude Code、Codex、Kiro、Pi 类型的记录都会处理,不受唤醒开关影响;按每条记录的 home、配置目录和 PATH 定位宿主,共享目标只更新一次。仅刷新 Chorus 及必需的集成依赖,保留已有凭证和无关设置,不安装宿主 CLI。Kiro 模板来自记录配置的 Chorus 实例(以该实例提供的版本为准,可能落后于 npm
|
|
74
|
+
`--plugins` 读取 `~/.chorus/daemon.json`,兼容旧版单 Agent 配置。明确指定 Claude Code、Codex、Kiro、Pi 类型的记录都会处理,不受唤醒开关影响;按每条记录的 home、配置目录和 PATH 定位宿主,共享目标只更新一次。仅刷新 Chorus 及必需的集成依赖,保留已有凭证和无关设置,不安装宿主 CLI。Kiro 模板来自记录配置的 Chorus 实例(以该实例提供的版本为准,可能落后于 npm),共享目录对应不同实例时报告冲突。稳定版 Pi >=0.99.0 <2.0.0 使用原生 MCP,仅定向更新 Chorus;Pi 0.84.4–0.98.x 保留已验证的 `pi-mcp-adapter@5.0.0` 策略固定版本。未知版本不操作 adapter、不宣称 MCP 已完成;不支持的宿主不执行包命令。只做定向更新,绝不更新全部扩展;缺少能力或约束不兼容时报告未完成。保留用户 pins/ranges(验证过的 adapter 固定版本是预期策略,不算刷新未完成)。原生宿主已有 adapter 或 `-builtin:mcp` 时仅按作用域提示手动迁移,不自动卸载或改设置。详见 [Pi 接入](docs/CONNECT_PI.md)。
|
|
75
75
|
|
|
76
76
|
命令非交互执行并逐项汇总。退出码 **0** 表示请求全部完成(配置不存在或为空也算成功);**1** 表示失败或未全部完成,包括 offline、未知或缺少类型的记录、宿主缺失及不支持定向更新。单个插件失败不影响后续目标,已完成的变更不回滚。更新后请开启新的 Agent 会话,并在方便时重启 daemon;命令本身不会重启进程或中断现有会话。
|
|
77
77
|
|
package/cli/init/contracts.mjs
CHANGED
|
@@ -100,6 +100,8 @@ export const FAILURE_ACTIONS = Object.freeze([OUTCOME_ACTIONS.FAILED]);
|
|
|
100
100
|
* @property {string} [agentId] Present for per-agent outcomes.
|
|
101
101
|
* @property {("installed"|"repaired"|"skipped"|"seeded"|"failed"|"unsupported")} action
|
|
102
102
|
* @property {string} detail One-line human explanation for the summary.
|
|
103
|
+
* @property {boolean} [codexEnvWritten] Codex credentials persisted in this invocation.
|
|
104
|
+
* @property {boolean} [codexMcpWritten] Codex native MCP configuration write succeeded.
|
|
103
105
|
*/
|
|
104
106
|
|
|
105
107
|
/**
|
|
@@ -114,6 +116,7 @@ export const FAILURE_ACTIONS = Object.freeze([OUTCOME_ACTIONS.FAILED]);
|
|
|
114
116
|
* @property {(path: string) => (string|null)} backup Copy a file to <path>.chorus-bak
|
|
115
117
|
* once before overwrite; returns the backup path or null if the source is absent.
|
|
116
118
|
* @property {NodeJS.ProcessEnv} env
|
|
119
|
+
* @property {StepOutcome[]} priorOutcomes Completed outcomes from this invocation.
|
|
117
120
|
*/
|
|
118
121
|
|
|
119
122
|
/** True when an outcome represents a failure (drives the process exit code). */
|
|
@@ -22,6 +22,8 @@ import { OUTCOME_ACTIONS } from "./contracts.mjs";
|
|
|
22
22
|
import { CHORUS_PLUGIN_ID, CHORUS_MARKETPLACE_NAME, CHORUS_MARKETPLACE_SOURCE } from "./chorus-plugin-consts.mjs";
|
|
23
23
|
import { writeCodexMcpServer } from "./codex-mcp-config.mjs";
|
|
24
24
|
import { resolveCredentials } from "../credentials.mjs";
|
|
25
|
+
import { PI_LEGACY_ADAPTER_SPEC } from "./pi-compatibility.mjs";
|
|
26
|
+
import { PI_CHORUS_SPEC, readPiPackageState, probePiBackend, inspectPiSettings, managePiPackages } from "./pi-mcp-backend.mjs";
|
|
25
27
|
|
|
26
28
|
const STEP_ID = "plugin-install";
|
|
27
29
|
const { INSTALLED, REPAIRED, SKIPPED, FAILED, UNSUPPORTED } = OUTCOME_ACTIONS;
|
|
@@ -146,6 +148,8 @@ export function installCodex(ctx) {
|
|
|
146
148
|
// Ensure the native-MCP block is present + normalized to the keyless bearer_token_env_var
|
|
147
149
|
// form. Idempotent; runs on both fresh install and re-run. Never writes a secret. A missing
|
|
148
150
|
// URL is a non-fatal skip (the plugin surface is still installed). Returns a note suffix.
|
|
151
|
+
let codexMcpWritten = false;
|
|
152
|
+
const codexOut = (action, detail) => ({ ...out("codex", action, detail), codexMcpWritten });
|
|
149
153
|
const ensureMcp = () => {
|
|
150
154
|
if (ctx.flags?.pluginOnly) return ""; // Upgrade preserves existing connection settings.
|
|
151
155
|
if (!chorusUrl) {
|
|
@@ -153,9 +157,10 @@ export function installCodex(ctx) {
|
|
|
153
157
|
}
|
|
154
158
|
try {
|
|
155
159
|
writeMcp({ configPath, url: chorusUrl });
|
|
160
|
+
codexMcpWritten = true;
|
|
156
161
|
return ' and wrote [mcp_servers.chorus] (bearer_token_env_var="CHORUS_API_KEY")';
|
|
157
|
-
} catch
|
|
158
|
-
return
|
|
162
|
+
} catch {
|
|
163
|
+
return " (WARNING: could not write [mcp_servers.chorus]; check config.toml permissions and retry)";
|
|
159
164
|
}
|
|
160
165
|
};
|
|
161
166
|
|
|
@@ -170,13 +175,12 @@ export function installCodex(ctx) {
|
|
|
170
175
|
if (!ru.ok) return out("codex", FAILED, `codex plugin marketplace upgrade failed: ${errText(ru)}`);
|
|
171
176
|
const rp = run("codex", ["plugin", "add", CHORUS_PLUGIN_ID, "--json"], { env });
|
|
172
177
|
if (!rp.ok) return out("codex", FAILED, `codex plugin add failed: ${errText(rp)}`);
|
|
173
|
-
return
|
|
174
|
-
"codex",
|
|
178
|
+
return codexOut(
|
|
175
179
|
REPAIRED,
|
|
176
180
|
`refreshed ${CHORUS_MARKETPLACE_NAME} and reinstalled ${CHORUS_PLUGIN_ID}${ensureMcp()}`,
|
|
177
181
|
);
|
|
178
182
|
}
|
|
179
|
-
return
|
|
183
|
+
return codexOut(SKIPPED, `already installed (config.toml)${ensureMcp()}`);
|
|
180
184
|
}
|
|
181
185
|
|
|
182
186
|
ctx.backup?.(configPath); // back up before the CLI edits it
|
|
@@ -186,8 +190,7 @@ export function installCodex(ctx) {
|
|
|
186
190
|
}
|
|
187
191
|
const r2 = run("codex", ["plugin", "add", CHORUS_PLUGIN_ID, "--json"], { env });
|
|
188
192
|
if (!r2.ok) return out("codex", FAILED, `codex plugin add failed: ${errText(r2)}`);
|
|
189
|
-
return
|
|
190
|
-
"codex",
|
|
193
|
+
return codexOut(
|
|
191
194
|
state.marketplaceRegistered ? REPAIRED : INSTALLED,
|
|
192
195
|
`installed ${CHORUS_PLUGIN_ID} via codex plugin CLI${ensureMcp()}`,
|
|
193
196
|
);
|
|
@@ -469,118 +472,26 @@ export function installOpenclaw(ctx) {
|
|
|
469
472
|
: out("openclaw", INSTALLED, `installed ${OPENCLAW_NPM_SPEC} and enabled ${OPENCLAW_PLUGIN_ID}`);
|
|
470
473
|
}
|
|
471
474
|
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
// (chorus-pi ships to npm as @chorus-aidlc/chorus-pi):
|
|
475
|
-
// `pi install npm:pi-mcp-adapter` (the MCP adapter — exposes chorus_* tools)
|
|
476
|
-
// `pi install npm:@chorus-aidlc/chorus-pi` (the Chorus skills/agents/extension)
|
|
477
|
-
// pi installs extensions straight from an npm source (the `npm:` prefix on the
|
|
478
|
-
// spec, like OpenClaw). There is NO marketplace step and NO separate enable
|
|
479
|
-
// step (unlike claude / codex / openclaw). pi has no permission system and loads
|
|
480
|
-
// TypeScript via jiti, so the package publishes source as-is — nothing to build.
|
|
481
|
-
//
|
|
482
|
-
// TWO packages: pi reaches the Chorus MCP tools ONLY through `pi-mcp-adapter` (which reads
|
|
483
|
-
// the mcp.json `chorus agents add` writes — see credential-seed's pi branch + pi-mcp-config.mjs);
|
|
484
|
-
// chorus.ts does NOT register tools itself. So we install the adapter FIRST (the tool surface),
|
|
485
|
-
// then chorus-pi (the skills / reviewer agents / session extension). Both are idempotent.
|
|
486
|
-
//
|
|
487
|
-
// Graceful degradation: if the `pi` binary is absent we surface the exact manual
|
|
488
|
-
// commands as UNSUPPORTED guidance (never a hard FAILED — UNSUPPORTED is not a
|
|
489
|
-
// FAILURE_ACTION, so `chorus init` does not abort) and run ZERO commands. This
|
|
490
|
-
// follows the "no guessed command / no crash" rule the other adapters share.
|
|
491
|
-
//
|
|
492
|
-
// VERIFIED-gap: `@chorus-aidlc/chorus-pi` is published at the next coordinated
|
|
493
|
-
// release (A2), so the npm-install path could not be exercised end-to-end on this
|
|
494
|
-
// build host. The command shapes + graceful fallback are implemented; the spec's
|
|
495
|
-
// `pi install npm:<pkg>` form is the documented, reviewed command (pi-mcp-adapter is
|
|
496
|
-
// published — verified 2.32.1).
|
|
497
|
-
// ---------------------------------------------------------------------------
|
|
498
|
-
const PI_ADAPTER_SPEC = "npm:pi-mcp-adapter";
|
|
499
|
-
const PI_NPM_SPEC = "npm:@chorus-aidlc/chorus-pi";
|
|
500
|
-
|
|
501
|
-
/**
|
|
502
|
-
* Read pi's install state. `pi install` records each package's source in the
|
|
503
|
-
* agent settings file (`<PI_CODING_AGENT_DIR|~/.pi/agent>/settings.json`) under a
|
|
504
|
-
* `packages[]` array — entries are either a string source (`npm:@scope/pkg`) or an
|
|
505
|
-
* object carrying that source plus filtering. We substring-match the stringified
|
|
506
|
-
* entry so detection is robust to either shape. This is the file-read probe the pi
|
|
507
|
-
* adapter previously lacked (its descriptor had no `readState`, so the runtime
|
|
508
|
-
* defaulted `pluginInstalled:false` and every re-run reported a fresh INSTALL
|
|
509
|
-
* instead of the SKIPPED/upgrade messaging the other adapters give).
|
|
510
|
-
*/
|
|
511
|
-
export function readPiInstallState({ env = process.env, readJson = readJsonSafe } = {}) {
|
|
512
|
-
const home = env.HOME || homedir();
|
|
513
|
-
const agentDir = nonEmpty(env.PI_CODING_AGENT_DIR) || join(home, ".pi", "agent");
|
|
514
|
-
const settings = readJson(join(agentDir, "settings.json"));
|
|
515
|
-
const pkgs = Array.isArray(settings?.packages) ? settings.packages : [];
|
|
516
|
-
const hasPkg = (needle) =>
|
|
517
|
-
pkgs.some((p) => (typeof p === "string" ? p : JSON.stringify(p)).includes(needle));
|
|
518
|
-
const adapterInstalled = hasPkg("pi-mcp-adapter");
|
|
519
|
-
const pluginInstalled = hasPkg("@chorus-aidlc/chorus-pi");
|
|
520
|
-
return {
|
|
521
|
-
marketplaceRegistered: false, // pi has no marketplace concept
|
|
522
|
-
pluginInstalled: pluginInstalled && adapterInstalled,
|
|
523
|
-
chorusPiInstalled: pluginInstalled,
|
|
524
|
-
adapterInstalled,
|
|
525
|
-
};
|
|
475
|
+
export function readPiInstallState(options = {}) {
|
|
476
|
+
return readPiPackageState(options);
|
|
526
477
|
}
|
|
527
478
|
|
|
528
479
|
export function installPi(ctx) {
|
|
529
480
|
const run = ctx.run ?? runCommand;
|
|
530
481
|
const env = ctx.env ?? process.env;
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
const hasBinary = ctx.binaryOnPath ?? binaryOnPath;
|
|
537
|
-
if (!hasBinary(["pi"], { env })) {
|
|
538
|
-
return out(
|
|
539
|
-
"pi",
|
|
540
|
-
UNSUPPORTED,
|
|
541
|
-
`pi CLI not found on PATH — install the Chorus extension manually once pi is available: ` +
|
|
542
|
-
`\`pi install ${PI_ADAPTER_SPEC} && pi install ${PI_NPM_SPEC}\``,
|
|
543
|
-
);
|
|
482
|
+
if (!(ctx.binaryOnPath ?? binaryOnPath)(["pi"], { env })) {
|
|
483
|
+
return out("pi", UNSUPPORTED, "pi CLI not found on PATH — once available, check pi --version. " +
|
|
484
|
+
`On supported native Pi install only: pi install ${PI_CHORUS_SPEC} --no-approve. ` +
|
|
485
|
+
`On supported legacy Pi first install: pi install ${PI_LEGACY_ADAPTER_SPEC} --no-approve. ` +
|
|
486
|
+
"Unknown/unsupported versions require manual compatibility confirmation; MCP setup is incomplete.");
|
|
544
487
|
}
|
|
545
|
-
|
|
546
|
-
const
|
|
547
|
-
const
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
return out(
|
|
553
|
-
"pi",
|
|
554
|
-
SKIPPED,
|
|
555
|
-
`already installed (${PI_ADAPTER_SPEC} + ${PI_NPM_SPEC} in pi settings) — re-run with --update-installed to upgrade`,
|
|
556
|
-
);
|
|
557
|
-
}
|
|
558
|
-
|
|
559
|
-
// Update requested on an existing install → use pi's OWN updater. `pi install`
|
|
560
|
-
// of an already-recorded package only re-writes the settings entry; it does NOT
|
|
561
|
-
// pull the newer published version, so it never clears pi's "Package updates
|
|
562
|
-
// available — Run pi update --extensions" nag. `pi update --extensions` (exactly
|
|
563
|
-
// what that nag tells the user to run) refreshes installed extensions — including
|
|
564
|
-
// chorus-pi + pi-mcp-adapter — to their latest published versions.
|
|
565
|
-
if (bothInstalled) {
|
|
566
|
-
const u = run("pi", ["update", "--extensions"], { env });
|
|
567
|
-
if (!u.ok) return out("pi", FAILED, `pi update --extensions failed: ${errText(u)}`);
|
|
568
|
-
return out("pi", REPAIRED, `updated installed pi extensions to latest via \`pi update --extensions\` (incl. ${PI_NPM_SPEC})`);
|
|
569
|
-
}
|
|
570
|
-
|
|
571
|
-
// Fresh or partial install → install what's needed (pi install is idempotent for
|
|
572
|
-
// any already-present one). The MCP adapter is the tool surface, so install it
|
|
573
|
-
// FIRST; then the chorus-pi package.
|
|
574
|
-
const ra = run("pi", ["install", PI_ADAPTER_SPEC], { env });
|
|
575
|
-
if (!ra.ok) return out("pi", FAILED, `pi install ${PI_ADAPTER_SPEC} failed: ${errText(ra)}`);
|
|
576
|
-
const r = run("pi", ["install", PI_NPM_SPEC], { env });
|
|
577
|
-
if (!r.ok) return out("pi", FAILED, `pi install failed: ${errText(r)}`);
|
|
578
|
-
|
|
579
|
-
// A partial pre-existing install we just completed → REPAIRED; a clean first
|
|
580
|
-
// install → INSTALLED (same distinction the other adapters draw).
|
|
581
|
-
return state.chorusPiInstalled || state.adapterInstalled
|
|
582
|
-
? out("pi", REPAIRED, `reinstalled ${PI_ADAPTER_SPEC} + ${PI_NPM_SPEC} via pi install`)
|
|
583
|
-
: out("pi", INSTALLED, `installed ${PI_ADAPTER_SPEC} + ${PI_NPM_SPEC} via pi install`);
|
|
488
|
+
const backend = probePiBackend({ run, env, cwd: ctx.cwd });
|
|
489
|
+
const scopes = inspectPiSettings({ env, cwd: ctx.cwd, readJson: ctx.readJson });
|
|
490
|
+
const result = managePiPackages({ backend, scopes, run, env, cwd: ctx.cwd, update: !!ctx.flags?.updateInstalled });
|
|
491
|
+
const existing = scopes[0].chorus.length || scopes[0].adapters.length;
|
|
492
|
+
const action = result.failed ? FAILED : !result.complete ? UNSUPPORTED
|
|
493
|
+
: !result.changed ? SKIPPED : existing ? REPAIRED : INSTALLED;
|
|
494
|
+
return { ...out("pi", action, result.detail), complete: result.complete, backend, warnings: result.warnings };
|
|
584
495
|
}
|
|
585
496
|
|
|
586
497
|
// ---------------------------------------------------------------------------
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export const PI_SUPPORTED_RANGE = ">=0.84.4 <2.0.0";
|
|
2
|
+
export const PI_MIN_SUPPORTED_VERSION = [0, 84, 4];
|
|
3
|
+
export const PI_MAX_SUPPORTED_MAJOR = 2;
|
|
4
|
+
export const PI_NATIVE_MCP_MIN_VERSION = [0, 99, 0];
|
|
5
|
+
export const PI_LEGACY_ADAPTER_SPEC = "npm:pi-mcp-adapter@5.0.0";
|