@chorus-aidlc/chorus 0.17.3 → 0.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/app-build-manifest.json +327 -325
- package/.next/standalone/.next/app-path-routes-manifest.json +37 -37
- package/.next/standalone/.next/build-manifest.json +5 -5
- package/.next/standalone/.next/prerender-manifest.json +27 -27
- 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.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/activity/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/[ideaUuid]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page.js +2 -2
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/dashboard/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page.js +2 -2
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page.js +2 -2
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/documents/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/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 +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/proposals/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[uuid]/tasks/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/page.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/settings/page.js +2 -2
- package/.next/standalone/.next/server/app/(dashboard)/settings/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/settings/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_not-found.html +2 -2
- package/.next/standalone/.next/server/app/_not-found.rsc +2 -2
- package/.next/standalone/.next/server/app/admin/companies/[uuid]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/admin/companies/new/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/admin/companies/new.html +2 -2
- package/.next/standalone/.next/server/app/admin/companies/new.rsc +2 -2
- package/.next/standalone/.next/server/app/admin/companies/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/admin/companies.html +2 -2
- package/.next/standalone/.next/server/app/admin/companies.rsc +2 -2
- package/.next/standalone/.next/server/app/admin/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/admin.html +2 -2
- package/.next/standalone/.next/server/app/admin.rsc +2 -2
- package/.next/standalone/.next/server/app/api/admin/companies/[uuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/admin/companies/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/admin/login/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/admin/session/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agent-connections/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/agent-connections/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agents/[uuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agents/[uuid]/sessions/route.js +1 -1
- package/.next/standalone/.next/server/app/api/agents/[uuid]/sessions/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/agents/[uuid]/sessions/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/agents/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/api-keys/[uuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/api-keys/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/callback/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/check-default/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/company-oidc/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/default-login/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/identify/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/me/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/auth/sync-token/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/comments/route.js +1 -1
- package/.next/standalone/.next/server/app/api/comments/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/comments/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon/connection-heartbeat/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/daemon/connection-heartbeat/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon/control/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon/directory-request/report/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/daemon/directory-request/report/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon/execution-state/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/daemon/execution-state/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon/executions/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/daemon/executions/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon/pending-turns/route.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon/pending-turns/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/daemon/pending-turns/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon/report-interrupt/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/daemon/report-interrupt/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon/resume/route.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon/resume/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/daemon/resume/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon/transcript/route.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon/transcript/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/daemon/transcript/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon/turn-advance/route.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon/turn-advance/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/daemon/turn-advance/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon-directory-requests/[uuid]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/daemon-directory-requests/[uuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon-directory-requests/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/daemon-directory-requests/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/instruction/route.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/instruction/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/instruction/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/repoint/route.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/repoint/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/repoint/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/route.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/daemon-sessions/[sessionUuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon-sessions/ad-hoc/route.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon-sessions/ad-hoc/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/daemon-sessions/ad-hoc/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon-sessions/route.js +1 -1
- package/.next/standalone/.next/server/app/api/daemon-sessions/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/daemon-sessions/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/documents/[uuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/entities/[type]/[uuid]/root-idea/route.js +1 -1
- package/.next/standalone/.next/server/app/api/entities/[type]/[uuid]/root-idea/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/entities/[type]/[uuid]/root-idea/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/events/notifications/route.js +1 -1
- package/.next/standalone/.next/server/app/api/events/notifications/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/events/notifications/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/events/route.js +1 -1
- package/.next/standalone/.next/server/app/api/events/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/events/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/health/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/claim/route.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/claim/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/claim/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/preview/route.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/preview/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/preview/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/route.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/move/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/parent/route.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/parent/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/parent/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/release/route.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/release/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/release/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/route.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/wake-preview/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/ideas/[uuid]/wake-preview/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/conversational/route.js +1 -1
- package/.next/standalone/.next/server/app/api/ideas/conversational/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/ideas/conversational/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/mcp/route.js +1 -1
- package/.next/standalone/.next/server/app/api/mcp/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/mcp/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/me/assignments/route.js +1 -1
- package/.next/standalone/.next/server/app/api/me/assignments/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/me/assignments/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/mentionables/route.js +1 -1
- package/.next/standalone/.next/server/app/api/mentionables/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/mentionables/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/notifications/[uuid]/archive/route.js +1 -1
- package/.next/standalone/.next/server/app/api/notifications/[uuid]/archive/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/notifications/[uuid]/archive/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/notifications/[uuid]/read/route.js +1 -1
- package/.next/standalone/.next/server/app/api/notifications/[uuid]/read/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/notifications/[uuid]/read/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/notifications/preferences/route.js +1 -1
- package/.next/standalone/.next/server/app/api/notifications/preferences/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/notifications/preferences/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/notifications/read-all/route.js +1 -1
- package/.next/standalone/.next/server/app/api/notifications/read-all/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/notifications/read-all/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/notifications/route.js +1 -1
- package/.next/standalone/.next/server/app/api/notifications/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/notifications/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/notifications/unread-count/route.js +1 -1
- package/.next/standalone/.next/server/app/api/notifications/unread-count/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/notifications/unread-count/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/project-groups/[uuid]/dashboard/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/project-groups/[uuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/project-groups/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/project-visits/pin/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/project-visits/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/project-visits/visit/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/activity/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/agent-cwds/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/agent-cwds/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/available/route.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/available/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/available/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/documents/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/group/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/route.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/tracker/route.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/tracker/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/ideas/tracker/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/[proposalUuid]/validate/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/proposals/summary/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/resource-graph/route.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/resource-graph/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/resource-graph/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/stats/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/dependencies/route.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/dependencies/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/dependencies/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/route.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/projects/[uuid]/tasks/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/agent-cwd-options/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/projects/agent-cwd-options/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/proposals/[uuid]/approve/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/proposals/[uuid]/close/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/proposals/[uuid]/reject/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/proposals/[uuid]/revoke/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/proposals/[uuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/references/[uuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/references/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/search/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/session/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/sessions/[uuid]/route.js +1 -1
- package/.next/standalone/.next/server/app/api/sessions/[uuid]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/sessions/[uuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/claim/route.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/claim/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/claim/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/[dependsOnUuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/route.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/dependencies/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/release/route.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/release/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/release/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/route.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/sessions/route.js +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/sessions/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/tasks/[uuid]/sessions/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/index.html +2 -2
- package/.next/standalone/.next/server/app/index.rsc +2 -2
- package/.next/standalone/.next/server/app/login/admin/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/login/admin.html +2 -2
- package/.next/standalone/.next/server/app/login/admin.rsc +2 -2
- package/.next/standalone/.next/server/app/login/callback/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/login/callback.html +2 -2
- package/.next/standalone/.next/server/app/login/callback.rsc +2 -2
- package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/login/pick-workspace/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/login/pick-workspace.html +2 -2
- package/.next/standalone/.next/server/app/login/pick-workspace.rsc +2 -2
- package/.next/standalone/.next/server/app/login.html +2 -2
- package/.next/standalone/.next/server/app/login.rsc +2 -2
- package/.next/standalone/.next/server/app/onboarding/page.js +2 -2
- package/.next/standalone/.next/server/app/onboarding/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/onboarding.html +2 -2
- package/.next/standalone/.next/server/app/onboarding.rsc +3 -3
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/projects.html +2 -2
- package/.next/standalone/.next/server/app/projects.rsc +3 -3
- package/.next/standalone/.next/server/app/settings.html +2 -2
- package/.next/standalone/.next/server/app/settings.rsc +4 -4
- package/.next/standalone/.next/server/app-paths-manifest.json +37 -37
- package/.next/standalone/.next/server/chunks/109.js +1 -0
- package/.next/standalone/.next/server/chunks/1318.js +1 -1
- package/.next/standalone/.next/server/chunks/1496.js +1 -0
- package/.next/standalone/.next/server/chunks/1559.js +2 -2
- package/.next/standalone/.next/server/chunks/2572.js +1 -1
- package/.next/standalone/.next/server/chunks/2961.js +1 -1
- package/.next/standalone/.next/server/chunks/3112.js +1 -1
- package/.next/standalone/.next/server/chunks/{1201.js → 3619.js} +2 -2
- package/.next/standalone/.next/server/chunks/{3630.js → 4810.js} +1 -1
- package/.next/standalone/.next/server/chunks/4827.js +1 -1
- package/.next/standalone/.next/server/chunks/5245.js +1 -1
- package/.next/standalone/.next/server/chunks/6113.js +1 -1
- package/.next/standalone/.next/server/chunks/6506.js +2 -2
- package/.next/standalone/.next/server/chunks/6737.js +1 -0
- package/.next/standalone/.next/server/chunks/6753.js +3 -3
- package/.next/standalone/.next/server/chunks/679.js +1 -1
- package/.next/standalone/.next/server/chunks/731.js +1 -0
- package/.next/standalone/.next/server/chunks/7368.js +1 -1
- package/.next/standalone/.next/server/chunks/7530.js +1 -1
- package/.next/standalone/.next/server/chunks/7857.js +1 -0
- package/.next/standalone/.next/server/chunks/920.js +1 -1
- package/.next/standalone/.next/server/chunks/9213.js +1 -1
- package/.next/standalone/.next/server/chunks/9378.js +1 -1
- package/.next/standalone/.next/server/chunks/9931.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/pages/404.html +2 -2
- 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/chunks/11595.0afa1a540f681fb4.js +1 -0
- package/.next/standalone/.next/static/chunks/22705-324a191727ae45b7.js +1 -0
- package/.next/standalone/.next/static/chunks/33456.4a5f4712a7e78d8f.js +1 -0
- package/.next/standalone/.next/static/chunks/44216-3876e84f5b02d355.js +1 -0
- package/.next/standalone/.next/static/chunks/4860.5719e32b95be2d93.js +1 -0
- package/.next/standalone/.next/static/chunks/6528-a8a562ef7d26bb43.js +1 -0
- package/.next/standalone/.next/static/chunks/67439-7b339b28ed0ecfc6.js +1 -0
- package/.next/standalone/.next/static/chunks/79919-ae8bd8d8ec1e38ce.js +1 -0
- package/.next/standalone/.next/static/chunks/{46021-f5d072b0cbcb7fac.js → 82203-4ce5926624df7ed0.js} +1 -1
- package/.next/standalone/.next/static/chunks/94643-37ac7b8ef8ea5e75.js +1 -0
- package/.next/standalone/.next/static/chunks/99373.6c1509bfaf599741.js +1 -0
- package/.next/standalone/.next/static/chunks/99775-697e82ee04eac6b1.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/layout-2fda722cdace8147.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/dashboard/{page-77b175e52a85f3cb.js → page-b45c42c536eff64b.js} +1 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page-792aba7fd6b6daa3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/page-800a979f12b73f27.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/graph/{page-69d3162667f85677.js → page-34de35f75aa71f6d.js} +1 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page-a16002aa2a911619.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/new/{page-a3f83031dfbafc81.js → page-e8030824994edf35.js} +1 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/page-4f7f1ddbaf79be8f.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/[taskUuid]/{page-3c7ff3a40a4615ac.js → page-349b0977f3c6209a.js} +1 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/tasks/{page-7b8e11fdc5b596d0.js → page-be43cb06112fce12.js} +1 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/settings/page-6916e1abab42a6e6.js +1 -0
- package/.next/standalone/.next/static/chunks/app/onboarding/{page-0ce33b9327fe3d8c.js → page-c0090caae202eae5.js} +1 -1
- package/.next/standalone/.next/static/chunks/{webpack-dffb97a4feb8faba.js → webpack-cfb63dd1b416c92e.js} +1 -1
- package/.next/standalone/.next/static/css/75c761a5428611fa.css +1 -0
- package/.next/standalone/package.json +1 -1
- package/.next/standalone/public/chorus-plugin/.claude-plugin/plugin.json +2 -2
- package/.next/standalone/public/chorus-plugin/agents/code-reviewer.md +1 -0
- package/.next/standalone/public/chorus-plugin/agents/proposal-reviewer.md +12 -3
- package/.next/standalone/public/chorus-plugin/agents/task-reviewer.md +4 -0
- package/.next/standalone/public/chorus-plugin/bin/chorus-api.sh +1 -1
- package/.next/standalone/public/chorus-plugin/bin/on-post-submit-for-verify.sh +3 -3
- package/.next/standalone/public/chorus-plugin/bin/on-post-submit-proposal.sh +3 -3
- package/.next/standalone/public/chorus-plugin/bin/on-post-verify-task.sh +2 -2
- package/.next/standalone/public/chorus-plugin/bin/on-session-start.sh +39 -64
- package/.next/standalone/public/chorus-plugin/bin/resolve-spec-mode.sh +107 -0
- package/.next/standalone/public/chorus-plugin/bin/tests/test-resolver-drift.sh +46 -0
- package/.next/standalone/public/chorus-plugin/bin/tests/test-skill-harness-fidelity-negative.sh +328 -0
- package/.next/standalone/public/chorus-plugin/bin/tests/test-skill-harness-fidelity.sh +372 -0
- package/.next/standalone/public/chorus-plugin/bin/tests/test-spec-mode-resolution.sh +83 -0
- package/.next/standalone/public/chorus-plugin/skills/brainstorm/SKILL.md +1 -1
- package/.next/standalone/public/chorus-plugin/skills/chorus/SKILL.md +11 -6
- package/.next/standalone/public/chorus-plugin/skills/chorus-cli/SKILL.md +1 -1
- package/.next/standalone/public/chorus-plugin/skills/develop/SKILL.md +14 -9
- 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 +27 -31
- package/.next/standalone/public/chorus-plugin/skills/orchestrate/SKILL.md +11 -1
- package/.next/standalone/public/chorus-plugin/skills/proposal/SKILL.md +14 -7
- package/.next/standalone/public/chorus-plugin/skills/quick-dev/SKILL.md +6 -4
- package/.next/standalone/public/chorus-plugin/skills/review/SKILL.md +10 -8
- package/.next/standalone/public/chorus-plugin/skills/spec-lite/SKILL.md +147 -0
- package/.next/standalone/public/chorus-plugin/skills/yolo/SKILL.md +49 -34
- package/.next/standalone/public/kiro-plugin/.kiro/agents/chorus-code-reviewer.json +1 -1
- package/.next/standalone/public/kiro-plugin/.kiro/agents/chorus-proposal-reviewer.json +2 -1
- package/.next/standalone/public/kiro-plugin/.kiro/agents/chorus-task-reviewer.json +1 -1
- package/.next/standalone/public/kiro-plugin/.kiro/agents/chorus.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 +9 -7
- 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 +35 -27
- package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-orchestrate/SKILL.md +9 -1
- package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-proposal/SKILL.md +14 -7
- package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-quick-dev/SKILL.md +2 -2
- package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-review/SKILL.md +8 -8
- package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-spec-lite/SKILL.md +147 -0
- package/.next/standalone/public/kiro-plugin/.kiro/skills/chorus-yolo/SKILL.md +39 -25
- package/.next/standalone/public/kiro-plugin/.kiro/steering/chorus.md +11 -6
- package/.next/standalone/public/kiro-plugin/bin/chorus-api.sh +1 -1
- package/.next/standalone/public/kiro-plugin/bin/on-agent-spawn.sh +41 -0
- package/.next/standalone/public/kiro-plugin/bin/on-post-submit-for-verify.sh +3 -3
- package/.next/standalone/public/kiro-plugin/bin/on-post-submit-proposal.sh +3 -3
- package/.next/standalone/public/kiro-plugin/bin/on-post-verify-task.sh +2 -2
- package/.next/standalone/public/kiro-plugin/bin/resolve-spec-mode.sh +107 -0
- package/.next/standalone/public/kiro-plugin/manifest.txt +2 -0
- package/.next/standalone/public/skill/chorus/SKILL.md +11 -1
- package/.next/standalone/public/skill/code-reviewer-chorus/SKILL.md +1 -0
- package/.next/standalone/public/skill/develop-chorus/SKILL.md +1 -1
- package/.next/standalone/public/skill/orchestrate-chorus/SKILL.md +11 -1
- package/.next/standalone/public/skill/proposal-reviewer-chorus/SKILL.md +5 -2
- package/.next/standalone/public/skill/quick-dev-chorus/SKILL.md +1 -1
- package/.next/standalone/public/skill/review-chorus/SKILL.md +5 -3
- package/.next/standalone/public/skill/task-reviewer-chorus/SKILL.md +4 -0
- package/.next/standalone/public/skill/yolo-chorus/SKILL.md +23 -7
- package/README.ja.md +3 -3
- package/README.ko.md +3 -3
- package/README.md +3 -3
- package/README.zh.md +3 -3
- package/cli/agent-cli-config.mjs +323 -0
- package/cli/agent-launcher.mjs +44 -16
- package/cli/claude-spawner.mjs +22 -13
- package/cli/codex-spawner.mjs +23 -15
- package/cli/credentials.mjs +7 -0
- package/cli/daemon-config.mjs +14 -0
- package/cli/daemon.mjs +32 -6
- package/cli/dsh-managed-config.mjs +26 -28
- package/cli/dsh-spawner.mjs +23 -15
- package/cli/init/steps/credential-seed.mjs +1 -1
- package/cli/kiro-spawner.mjs +22 -15
- package/cli/launch-diagnostics.mjs +67 -0
- package/cli/login.mjs +17 -1
- package/cli/pi-spawner.mjs +19 -12
- package/cli/prompts.mjs +52 -2
- package/cli/spawner-select.mjs +6 -11
- package/package.json +1 -1
- package/.next/standalone/.next/server/chunks/1114.js +0 -1
- package/.next/standalone/.next/server/chunks/1155.js +0 -1
- package/.next/standalone/.next/server/chunks/6465.js +0 -1
- package/.next/standalone/.next/server/chunks/8105.js +0 -1
- package/.next/standalone/.next/server/chunks/8232.js +0 -1
- package/.next/standalone/.next/static/chunks/11595.f7c3ef5cd7fc8feb.js +0 -1
- package/.next/standalone/.next/static/chunks/33456.c81079032acc2966.js +0 -1
- package/.next/standalone/.next/static/chunks/45262-38b332523f00a223.js +0 -1
- package/.next/standalone/.next/static/chunks/4860.f0cfb1201191ae88.js +0 -1
- package/.next/standalone/.next/static/chunks/66609-64a01d5cb415465b.js +0 -1
- package/.next/standalone/.next/static/chunks/79919-c5a2a3fd8f5f9204.js +0 -1
- package/.next/standalone/.next/static/chunks/94394-38194b81b489275c.js +0 -1
- package/.next/standalone/.next/static/chunks/94643-f1bdf37fb3bb6adb.js +0 -1
- package/.next/standalone/.next/static/chunks/95225-96b44da3ebd6ddad.js +0 -1
- package/.next/standalone/.next/static/chunks/96482-2b3bdb2544d72e5a.js +0 -1
- package/.next/standalone/.next/static/chunks/99373.3c23ac2efbd4db02.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/layout-66328332f62c7371.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/[documentUuid]/page-87ceae13c4950fc9.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/documents/page-45e95154e546460e.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/[proposalUuid]/page-b7b2017e5be69564.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[uuid]/proposals/page-8b06834ca0f663bb.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/settings/page-efe5326c47aca9ca.js +0 -1
- package/.next/standalone/.next/static/css/1d9cf83f50b6db00.css +0 -1
- /package/.next/standalone/.next/static/{wuqYN129vOIGymh_NEdZe → IxKVu5zkFPTjSKAUR99yH}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{wuqYN129vOIGymh_NEdZe → IxKVu5zkFPTjSKAUR99yH}/_ssgManifest.js +0 -0
package/.next/standalone/public/chorus-plugin/bin/tests/test-skill-harness-fidelity-negative.sh
ADDED
|
@@ -0,0 +1,328 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# test-skill-harness-fidelity-negative.sh — negative cases for the fidelity guard.
|
|
3
|
+
#
|
|
4
|
+
# A blacklist guard that passes on a tree it never scanned is worse than no guard,
|
|
5
|
+
# so this harness plants each blacklisted literal into a synthetic repo and asserts
|
|
6
|
+
# the guard actually FAILS. Every case runs twice: once under a plain path and once
|
|
7
|
+
# under a path containing a space, because the original guard word-split its scope
|
|
8
|
+
# string and reported "3 PASS" on a repo checked out under e.g.
|
|
9
|
+
# "/Users/me/My Repos/Chorus" while having searched nothing.
|
|
10
|
+
#
|
|
11
|
+
# Bash 3.2 compatible.
|
|
12
|
+
set -u
|
|
13
|
+
|
|
14
|
+
GUARD="$(cd "$(dirname "$0")" && pwd)/test-skill-harness-fidelity.sh"
|
|
15
|
+
if [ ! -x "$GUARD" ]; then
|
|
16
|
+
echo "FATAL: guard not found or not executable at $GUARD" >&2
|
|
17
|
+
exit 1
|
|
18
|
+
fi
|
|
19
|
+
|
|
20
|
+
PASS=0
|
|
21
|
+
FAIL=0
|
|
22
|
+
TMPROOT="$(mktemp -d)"
|
|
23
|
+
trap 'rm -rf "$TMPROOT"' EXIT
|
|
24
|
+
|
|
25
|
+
# scaffold <repo-root> — a minimal tree with every path the guard scans, all clean.
|
|
26
|
+
# Missing paths are themselves a scan error now, so the clean case must be complete.
|
|
27
|
+
scaffold() {
|
|
28
|
+
_r="$1"
|
|
29
|
+
mkdir -p "$_r/public/chorus-plugin/bin/tests" \
|
|
30
|
+
"$_r/public/chorus-plugin/skills/develop" \
|
|
31
|
+
"$_r/public/chorus-plugin/agents" \
|
|
32
|
+
"$_r/public/kiro-plugin/.kiro/skills" \
|
|
33
|
+
"$_r/public/kiro-plugin/.kiro/agents" \
|
|
34
|
+
"$_r/public/kiro-plugin/.kiro/steering" \
|
|
35
|
+
"$_r/public/skill/proposal-reviewer-chorus" \
|
|
36
|
+
"$_r/packages/chorus-dsh/skills" \
|
|
37
|
+
"$_r/packages/chorus-dsh/skills/proposal-reviewer-chorus" \
|
|
38
|
+
"$_r/packages/chorus-pi/agents" \
|
|
39
|
+
"$_r/packages/openclaw-plugin/skills/proposal-reviewer" \
|
|
40
|
+
"$_r/plugins/chorus/skills" \
|
|
41
|
+
"$_r/plugins/chorus/skills/chorus-proposal-reviewer" \
|
|
42
|
+
"$_r/docs"
|
|
43
|
+
printf 'clean skill text, wait using your harness mechanism\n' \
|
|
44
|
+
> "$_r/public/chorus-plugin/skills/develop/SKILL.md"
|
|
45
|
+
printf '# SPEC_LITE\nthe template is inlined here\n' > "$_r/docs/SPEC_LITE.md"
|
|
46
|
+
cp "$GUARD" "$_r/public/chorus-plugin/bin/tests/$(basename "$GUARD")"
|
|
47
|
+
|
|
48
|
+
# ── The seven proposal-reviewer surfaces, all carrying the canonical rule.
|
|
49
|
+
# Checks 4-6 fail on a missing enumerated path, so a clean tree needs all seven
|
|
50
|
+
# present AND compliant. The truthful "Any shell command beyond read-only
|
|
51
|
+
# inspection —" sentence is included deliberately: it must not trip check 4.
|
|
52
|
+
for _pr in "public/chorus-plugin/agents/proposal-reviewer.md" \
|
|
53
|
+
"plugins/chorus/skills/chorus-proposal-reviewer/SKILL.md" \
|
|
54
|
+
"packages/chorus-pi/agents/chorus-proposal-reviewer.md" \
|
|
55
|
+
"packages/chorus-dsh/skills/proposal-reviewer-chorus/SKILL.md" \
|
|
56
|
+
"packages/openclaw-plugin/skills/proposal-reviewer/SKILL.md" \
|
|
57
|
+
"public/skill/proposal-reviewer-chorus/SKILL.md"; do
|
|
58
|
+
printf 'Bash is READ-ONLY inspection only: ls, cat, grep/rg, find.\n' > "$_r/$_pr"
|
|
59
|
+
printf 'No file writes, no git write ops, no installs, no test/build runs.\n' >> "$_r/$_pr"
|
|
60
|
+
printf 'Any shell command beyond read-only inspection — no file writes.\n' >> "$_r/$_pr"
|
|
61
|
+
printf 'Use it to confirm a file or directory exists before flagging it as missing.\n' >> "$_r/$_pr"
|
|
62
|
+
done
|
|
63
|
+
# Claude Code's file additionally needs the frontmatter list check 6 reads.
|
|
64
|
+
cat > "$_r/public/chorus-plugin/agents/proposal-reviewer.md" <<'CCAGENT'
|
|
65
|
+
---
|
|
66
|
+
disallowedTools:
|
|
67
|
+
- Agent
|
|
68
|
+
- Edit
|
|
69
|
+
- Write
|
|
70
|
+
---
|
|
71
|
+
Bash is READ-ONLY inspection only: ls, cat, grep/rg, find.
|
|
72
|
+
No file writes, no git write ops, no installs, no test/build runs.
|
|
73
|
+
Any shell command beyond read-only inspection — no file writes.
|
|
74
|
+
Use it to confirm a file or directory exists before flagging it as missing.
|
|
75
|
+
CCAGENT
|
|
76
|
+
# Kiro states the rule inside a JSON prompt string and names its tool `shell`.
|
|
77
|
+
cat > "$_r/public/kiro-plugin/.kiro/agents/chorus-proposal-reviewer.json" <<'KIROAGENT'
|
|
78
|
+
{
|
|
79
|
+
"name": "chorus-proposal-reviewer",
|
|
80
|
+
"tools": [
|
|
81
|
+
"read",
|
|
82
|
+
"shell",
|
|
83
|
+
"@chorus"
|
|
84
|
+
],
|
|
85
|
+
"prompt": "Shell is READ-ONLY inspection only: ls, cat, grep/rg, find. No file writes, no git write ops, no installs, no test/build runs. Use it to confirm a file or directory exists before flagging it as missing."
|
|
86
|
+
}
|
|
87
|
+
KIROAGENT
|
|
88
|
+
# ── Check 4's extra scope: the Kiro orchestrator prompt and steering doc.
|
|
89
|
+
# Not reviewer definitions (so check 5 never looks at them), but they describe the
|
|
90
|
+
# grant to the agent that spawns the reviewer — a false claim here misleads it.
|
|
91
|
+
printf 'chorus-proposal-reviewer is scoped `tools: ["read", "shell", "@chorus"]`.\n' \
|
|
92
|
+
> "$_r/public/kiro-plugin/.kiro/agents/chorus.md"
|
|
93
|
+
printf 'chorus-proposal-reviewer is scoped `tools: ["read", "shell", "@chorus"]`.\n' \
|
|
94
|
+
> "$_r/public/kiro-plugin/.kiro/steering/chorus.md"
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
# run_guard <repo-root> — echo the guard's exit code, discarding its output.
|
|
98
|
+
run_guard() {
|
|
99
|
+
"$1/public/chorus-plugin/bin/tests/$(basename "$GUARD")" >/dev/null 2>&1
|
|
100
|
+
echo $?
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
# expect <label> <repo-root> <want-rc-zero|want-rc-nonzero>
|
|
104
|
+
expect() {
|
|
105
|
+
_label="$1"; _r="$2"; _want="$3"
|
|
106
|
+
_rc="$(run_guard "$_r")"
|
|
107
|
+
case "$_want" in
|
|
108
|
+
zero) if [ "$_rc" -eq 0 ]; then PASS=$((PASS+1)); echo " PASS $_label (exit 0)"
|
|
109
|
+
else FAIL=$((FAIL+1)); echo " FAIL $_label — wanted exit 0, got $_rc"; fi ;;
|
|
110
|
+
nonzero) if [ "$_rc" -ne 0 ]; then PASS=$((PASS+1)); echo " PASS $_label (exit $_rc)"
|
|
111
|
+
else FAIL=$((FAIL+1)); echo " FAIL $_label — guard reported PASS but the literal is present"; fi ;;
|
|
112
|
+
esac
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
# case_in <dirname> — build a fresh scaffold under TMPROOT/<dirname>, echo its path.
|
|
116
|
+
case_in() {
|
|
117
|
+
_d="$TMPROOT/$1"
|
|
118
|
+
rm -rf "$_d"; mkdir -p "$_d"
|
|
119
|
+
scaffold "$_d"
|
|
120
|
+
echo "$_d"
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
echo "skill/harness fidelity guard — negative cases (plain path AND path with a space):"
|
|
124
|
+
echo ""
|
|
125
|
+
|
|
126
|
+
for dirname in "plain" "with spaces"; do
|
|
127
|
+
echo "--- repo root: .../$dirname"
|
|
128
|
+
|
|
129
|
+
R="$(case_in "$dirname")"
|
|
130
|
+
expect "clean tree passes" "$R" zero
|
|
131
|
+
|
|
132
|
+
R="$(case_in "$dirname")"
|
|
133
|
+
printf 'Use TeamCreate to spawn the team\n' >> "$R/plugins/chorus/skills/note.md"
|
|
134
|
+
expect "check 1 catches TeamCreate" "$R" nonzero
|
|
135
|
+
|
|
136
|
+
R="$(case_in "$dirname")"
|
|
137
|
+
printf 'Run the reviewer synchronously and read the result\n' \
|
|
138
|
+
>> "$R/public/chorus-plugin/skills/develop/SKILL.md"
|
|
139
|
+
expect "check 2 catches 'reviewer synchronously'" "$R" nonzero
|
|
140
|
+
|
|
141
|
+
R="$(case_in "$dirname")"
|
|
142
|
+
printf 'the subagent waits and returns the VERDICT to you\n' \
|
|
143
|
+
>> "$R/public/kiro-plugin/.kiro/skills/SKILL.md"
|
|
144
|
+
expect "check 2 catches 'waits and returns the VERDICT' (kiro)" "$R" nonzero
|
|
145
|
+
|
|
146
|
+
R="$(case_in "$dirname")"
|
|
147
|
+
printf 'spawn it in **foreground** so it blocks\n' >> "$R/packages/chorus-dsh/skills/SKILL.md"
|
|
148
|
+
expect "check 2 catches 'in **foreground**' (dsh)" "$R" nonzero
|
|
149
|
+
|
|
150
|
+
R="$(case_in "$dirname")"
|
|
151
|
+
printf 'the launch returns the VERDICT inline\n' \
|
|
152
|
+
>> "$R/public/chorus-plugin/skills/develop/SKILL.md"
|
|
153
|
+
expect "check 2 catches 'returns the VERDICT inline'" "$R" nonzero
|
|
154
|
+
|
|
155
|
+
# dsh legitimately keeps run_in_background: false, so only this exact
|
|
156
|
+
# parenthesised imperative is blacklisted — not the flag itself.
|
|
157
|
+
R="$(case_in "$dirname")"
|
|
158
|
+
printf 'wait for it (do NOT set run_in_background)\n' \
|
|
159
|
+
>> "$R/packages/chorus-dsh/skills/SKILL.md"
|
|
160
|
+
expect "check 2 catches '(do NOT set run_in_background)' (dsh)" "$R" nonzero
|
|
161
|
+
|
|
162
|
+
R="$(case_in "$dirname")"
|
|
163
|
+
printf 'Copy .chorus/specs/TEMPLATE/spec.md to start\n' >> "$R/docs/SPEC_LITE.md"
|
|
164
|
+
expect "check 3 catches .chorus/specs/TEMPLATE" "$R" nonzero
|
|
165
|
+
|
|
166
|
+
# chorus-pi is excluded from check 2 on purpose: its blocking `subagent` really
|
|
167
|
+
# does return the VERDICT, so the phrase is true there and must NOT trip a FAIL.
|
|
168
|
+
R="$(case_in "$dirname")"
|
|
169
|
+
mkdir -p "$R/packages/chorus-pi/skills"
|
|
170
|
+
printf 'the blocking subagent waits and returns the VERDICT\n' \
|
|
171
|
+
>> "$R/packages/chorus-pi/skills/SKILL.md"
|
|
172
|
+
expect "check 2 still exempts packages/chorus-pi" "$R" zero
|
|
173
|
+
|
|
174
|
+
# dsh's real wording must stay green. If someone later replaces the literal
|
|
175
|
+
# blacklist with a proximity rule pairing run_in_background against
|
|
176
|
+
# "foreground"/"synchronous"/"inline", this case fails a correct tree — which
|
|
177
|
+
# is exactly the regression the guard's header forbids.
|
|
178
|
+
R="$(case_in "$dirname")"
|
|
179
|
+
printf 'Spawn the reviewer with run_in_background: false and read its result.\n' \
|
|
180
|
+
>> "$R/packages/chorus-dsh/skills/SKILL.md"
|
|
181
|
+
expect "check 2 allows dsh's legitimate run_in_background: false" "$R" zero
|
|
182
|
+
|
|
183
|
+
# A scan that cannot run must never look like "no hits".
|
|
184
|
+
R="$(case_in "$dirname")"
|
|
185
|
+
rm -rf "$R/packages/chorus-dsh"
|
|
186
|
+
expect "missing scope path fails instead of passing" "$R" nonzero
|
|
187
|
+
|
|
188
|
+
# ── Check 4 — shell-disabled claims, one fixture per phrasing family ──────
|
|
189
|
+
R="$(case_in "$dirname")"
|
|
190
|
+
printf -- '- **You are READ-ONLY.** Do NOT run Bash.\n' \
|
|
191
|
+
>> "$R/packages/chorus-dsh/skills/proposal-reviewer-chorus/SKILL.md"
|
|
192
|
+
expect "check 4 catches 'Do NOT run Bash' (dsh reviewer)" "$R" nonzero
|
|
193
|
+
|
|
194
|
+
R="$(case_in "$dirname")"
|
|
195
|
+
printf 'You have `read` and `@chorus` tools — no `shell`, no `write`.\n' \
|
|
196
|
+
>> "$R/public/kiro-plugin/.kiro/agents/chorus-proposal-reviewer.json"
|
|
197
|
+
expect "check 4 catches 'no \`shell\`' (kiro reviewer)" "$R" nonzero
|
|
198
|
+
|
|
199
|
+
R="$(case_in "$dirname")"
|
|
200
|
+
printf 'Bash is disabled for this agent.\n' \
|
|
201
|
+
>> "$R/packages/chorus-pi/agents/chorus-proposal-reviewer.md"
|
|
202
|
+
expect "check 4 catches 'Bash is disabled' (pi reviewer)" "$R" nonzero
|
|
203
|
+
|
|
204
|
+
R="$(case_in "$dirname")"
|
|
205
|
+
printf 'Running any shell commands is prohibited.\n' \
|
|
206
|
+
>> "$R/plugins/chorus/skills/chorus-proposal-reviewer/SKILL.md"
|
|
207
|
+
expect "check 4 catches 'Running any shell commands' (codex reviewer)" "$R" nonzero
|
|
208
|
+
|
|
209
|
+
R="$(case_in "$dirname")"
|
|
210
|
+
printf 'You cannot run shell commands.\n' \
|
|
211
|
+
>> "$R/public/skill/proposal-reviewer-chorus/SKILL.md"
|
|
212
|
+
expect "check 4 catches 'cannot run shell' (standalone skill)" "$R" nonzero
|
|
213
|
+
|
|
214
|
+
R="$(case_in "$dirname")"
|
|
215
|
+
printf 'Do not edit files or run Bash commands.\n' \
|
|
216
|
+
>> "$R/packages/openclaw-plugin/skills/proposal-reviewer/SKILL.md"
|
|
217
|
+
expect "check 4 catches 'or run Bash commands' (openclaw reviewer)" "$R" nonzero
|
|
218
|
+
|
|
219
|
+
# Check 4's extra scope: the orchestrator prompt and the steering doc. These two
|
|
220
|
+
# carried the "no `shell`" claim while sitting outside the guard, which is how the
|
|
221
|
+
# false statement survived the fix — so each gets its own fixture.
|
|
222
|
+
R="$(case_in "$dirname")"
|
|
223
|
+
printf 'Each reviewer is scoped `tools: ["read", "@chorus"]`, no `shell`.\n' \
|
|
224
|
+
>> "$R/public/kiro-plugin/.kiro/agents/chorus.md"
|
|
225
|
+
expect "check 4 catches 'no \`shell\`' (kiro orchestrator prompt)" "$R" nonzero
|
|
226
|
+
|
|
227
|
+
R="$(case_in "$dirname")"
|
|
228
|
+
printf 'The reviewer cannot run shell commands.\n' \
|
|
229
|
+
>> "$R/public/kiro-plugin/.kiro/steering/chorus.md"
|
|
230
|
+
expect "check 4 catches 'cannot run shell' (kiro steering doc)" "$R" nonzero
|
|
231
|
+
|
|
232
|
+
R="$(case_in "$dirname")"
|
|
233
|
+
rm -f "$R/public/kiro-plugin/.kiro/agents/chorus.md"
|
|
234
|
+
expect "a deleted check-4-only file fails instead of being skipped" "$R" nonzero
|
|
235
|
+
|
|
236
|
+
# The clean tree passes with neither of those two files carrying the canonical
|
|
237
|
+
# rule markers — that is check 5 correctly ignoring them (they are orchestrator
|
|
238
|
+
# prose, not reviewer definitions). Adding them to PR_FILES would break it.
|
|
239
|
+
|
|
240
|
+
# The truthful sentence every surface keeps must NOT trip check 4. This is the
|
|
241
|
+
# false positive an under-anchored blacklist (a bare "shell"/"Bash") would cause.
|
|
242
|
+
R="$(case_in "$dirname")"
|
|
243
|
+
printf 'Any shell command beyond read-only inspection — no git write ops.\n' \
|
|
244
|
+
>> "$R/public/skill/proposal-reviewer-chorus/SKILL.md"
|
|
245
|
+
expect "check 4 allows the truthful 'beyond read-only inspection' prose" "$R" zero
|
|
246
|
+
|
|
247
|
+
# ── Check 5 — the canonical rule must be present, all three markers ───────
|
|
248
|
+
R="$(case_in "$dirname")"
|
|
249
|
+
grep -v 'READ-ONLY inspection only' \
|
|
250
|
+
"$R/packages/openclaw-plugin/skills/proposal-reviewer/SKILL.md" > "$R/tmp.md"
|
|
251
|
+
mv "$R/tmp.md" "$R/packages/openclaw-plugin/skills/proposal-reviewer/SKILL.md"
|
|
252
|
+
expect "check 5 catches a missing read-only-inspection marker (openclaw)" "$R" nonzero
|
|
253
|
+
|
|
254
|
+
R="$(case_in "$dirname")"
|
|
255
|
+
grep -v 'before flagging it as missing' \
|
|
256
|
+
"$R/packages/chorus-dsh/skills/proposal-reviewer-chorus/SKILL.md" > "$R/tmp.md"
|
|
257
|
+
mv "$R/tmp.md" "$R/packages/chorus-dsh/skills/proposal-reviewer-chorus/SKILL.md"
|
|
258
|
+
expect "check 5 catches a missing existence-check obligation (dsh)" "$R" nonzero
|
|
259
|
+
|
|
260
|
+
R="$(case_in "$dirname")"
|
|
261
|
+
grep -v 'no installs, no test/build runs' \
|
|
262
|
+
"$R/packages/chorus-pi/agents/chorus-proposal-reviewer.md" > "$R/tmp.md"
|
|
263
|
+
mv "$R/tmp.md" "$R/packages/chorus-pi/agents/chorus-proposal-reviewer.md"
|
|
264
|
+
expect "check 5 catches a missing forbidden-command list (pi)" "$R" nonzero
|
|
265
|
+
|
|
266
|
+
# ── Enumerated path deleted — must FAIL, never be silently skipped ────────
|
|
267
|
+
R="$(case_in "$dirname")"
|
|
268
|
+
rm -f "$R/public/skill/proposal-reviewer-chorus/SKILL.md"
|
|
269
|
+
expect "a deleted enumerated surface fails instead of being skipped" "$R" nonzero
|
|
270
|
+
|
|
271
|
+
# ── Check 6 — the tool grants behind the rule ────────────────────────────
|
|
272
|
+
R="$(case_in "$dirname")"
|
|
273
|
+
# awk, not `sed 's/…/…\n…/'` — BSD sed (macOS) does not expand \n in the
|
|
274
|
+
# replacement, so the sed form would silently insert a literal "n" and the
|
|
275
|
+
# fixture would prove nothing.
|
|
276
|
+
awk '{print} /^ - Agent$/{print " - Bash"}' \
|
|
277
|
+
"$R/public/chorus-plugin/agents/proposal-reviewer.md" > "$R/tmp.md"
|
|
278
|
+
mv "$R/tmp.md" "$R/public/chorus-plugin/agents/proposal-reviewer.md"
|
|
279
|
+
expect "check 6 catches '- Bash' re-added to disallowedTools (claude code)" "$R" nonzero
|
|
280
|
+
|
|
281
|
+
# Two evasions of a whole-line `- Bash` match, both of which YAML accepts and a
|
|
282
|
+
# harness would honour: flow style, and a quoted entry.
|
|
283
|
+
R="$(case_in "$dirname")"
|
|
284
|
+
awk '/^disallowedTools:$/{print "disallowedTools: [Bash, Agent, Edit, Write]"; skip=1; next}
|
|
285
|
+
skip&&/^[[:space:]]*-[[:space:]]/{next} {skip=0; print}' \
|
|
286
|
+
"$R/public/chorus-plugin/agents/proposal-reviewer.md" > "$R/tmp.md"
|
|
287
|
+
mv "$R/tmp.md" "$R/public/chorus-plugin/agents/proposal-reviewer.md"
|
|
288
|
+
expect "check 6 catches Bash in a YAML flow-style disallowedTools (claude code)" "$R" nonzero
|
|
289
|
+
|
|
290
|
+
R="$(case_in "$dirname")"
|
|
291
|
+
awk '{print} /^ - Agent$/{print " - \"Bash\""}' \
|
|
292
|
+
"$R/public/chorus-plugin/agents/proposal-reviewer.md" > "$R/tmp.md"
|
|
293
|
+
mv "$R/tmp.md" "$R/public/chorus-plugin/agents/proposal-reviewer.md"
|
|
294
|
+
expect "check 6 catches a quoted '- \"Bash\"' entry (claude code)" "$R" nonzero
|
|
295
|
+
|
|
296
|
+
# Two more evasions YAML accepts inside the list: a `#` comment line and a blank
|
|
297
|
+
# line before `- Bash`. An extractor that treats either as the end of the list
|
|
298
|
+
# reports PASS on a tree whose deny list really does contain Bash.
|
|
299
|
+
R="$(case_in "$dirname")"
|
|
300
|
+
awk '{print} /^ - Agent$/{print " # restrict shell"; print " - Bash"}' \
|
|
301
|
+
"$R/public/chorus-plugin/agents/proposal-reviewer.md" > "$R/tmp.md"
|
|
302
|
+
mv "$R/tmp.md" "$R/public/chorus-plugin/agents/proposal-reviewer.md"
|
|
303
|
+
expect "check 6 catches '- Bash' after a comment line in the list (claude code)" "$R" nonzero
|
|
304
|
+
|
|
305
|
+
R="$(case_in "$dirname")"
|
|
306
|
+
awk '{print} /^ - Agent$/{print ""; print " - Bash"}' \
|
|
307
|
+
"$R/public/chorus-plugin/agents/proposal-reviewer.md" > "$R/tmp.md"
|
|
308
|
+
mv "$R/tmp.md" "$R/public/chorus-plugin/agents/proposal-reviewer.md"
|
|
309
|
+
expect "check 6 catches '- Bash' after a blank line in the list (claude code)" "$R" nonzero
|
|
310
|
+
|
|
311
|
+
R="$(case_in "$dirname")"
|
|
312
|
+
grep -v '"shell",' "$R/public/kiro-plugin/.kiro/agents/chorus-proposal-reviewer.json" \
|
|
313
|
+
> "$R/tmp.json"
|
|
314
|
+
mv "$R/tmp.json" "$R/public/kiro-plugin/.kiro/agents/chorus-proposal-reviewer.json"
|
|
315
|
+
expect "check 6 catches \`shell\` dropped from kiro's tools" "$R" nonzero
|
|
316
|
+
|
|
317
|
+
# A `Bash` mention elsewhere in the Claude Code agent body is not a tool denial —
|
|
318
|
+
# only a `- Bash` entry inside the disallowedTools list is.
|
|
319
|
+
R="$(case_in "$dirname")"
|
|
320
|
+
printf 'Bash inspection findings belong in the VERDICT comment.\n' \
|
|
321
|
+
>> "$R/public/chorus-plugin/agents/proposal-reviewer.md"
|
|
322
|
+
expect "check 6 does not fire on 'Bash' outside the disallowedTools list" "$R" zero
|
|
323
|
+
|
|
324
|
+
echo ""
|
|
325
|
+
done
|
|
326
|
+
|
|
327
|
+
echo "Results: $PASS passed, $FAIL failed"
|
|
328
|
+
[ "$FAIL" -eq 0 ]
|