chorus-codes 0.8.9 → 0.8.10
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/BUILD_ID +1 -1
- package/.next/app-path-routes-manifest.json +1 -1
- package/.next/build-manifest.json +2 -2
- package/.next/prerender-manifest.json +3 -3
- package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +1 -1
- package/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/connect/page_client-reference-manifest.js +1 -1
- package/.next/server/app/demo/[scenario]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/new/page_client-reference-manifest.js +1 -1
- package/.next/server/app/new.html +1 -1
- package/.next/server/app/new.rsc +1 -1
- package/.next/server/app/new.segments/_full.segment.rsc +1 -1
- package/.next/server/app/new.segments/_head.segment.rsc +1 -1
- package/.next/server/app/new.segments/_index.segment.rsc +1 -1
- package/.next/server/app/new.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/new.segments/new/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/new.segments/new.segment.rsc +1 -1
- package/.next/server/app/onboarding/page_client-reference-manifest.js +1 -1
- package/.next/server/app/onboarding.html +1 -1
- package/.next/server/app/onboarding.rsc +1 -1
- package/.next/server/app/onboarding.segments/_full.segment.rsc +1 -1
- package/.next/server/app/onboarding.segments/_head.segment.rsc +1 -1
- package/.next/server/app/onboarding.segments/_index.segment.rsc +1 -1
- package/.next/server/app/onboarding.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/onboarding.segments/onboarding/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/onboarding.segments/onboarding.segment.rsc +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/personas/page_client-reference-manifest.js +1 -1
- package/.next/server/app/personas.html +1 -1
- package/.next/server/app/personas.rsc +1 -1
- package/.next/server/app/personas.segments/_full.segment.rsc +1 -1
- package/.next/server/app/personas.segments/_head.segment.rsc +1 -1
- package/.next/server/app/personas.segments/_index.segment.rsc +1 -1
- package/.next/server/app/personas.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/personas.segments/personas/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/personas.segments/personas.segment.rsc +1 -1
- package/.next/server/app/runs/[runId]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/runs/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/permissions/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings.html +1 -1
- package/.next/server/app/settings.rsc +1 -1
- package/.next/server/app/settings.segments/_full.segment.rsc +1 -1
- package/.next/server/app/settings.segments/_head.segment.rsc +1 -1
- package/.next/server/app/settings.segments/_index.segment.rsc +1 -1
- package/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/settings.segments/settings.segment.rsc +1 -1
- package/.next/server/app/templates/page_client-reference-manifest.js +1 -1
- package/.next/server/app/templates.html +1 -1
- package/.next/server/app/templates.rsc +1 -1
- package/.next/server/app/templates.segments/_full.segment.rsc +1 -1
- package/.next/server/app/templates.segments/_head.segment.rsc +1 -1
- package/.next/server/app/templates.segments/_index.segment.rsc +1 -1
- package/.next/server/app/templates.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/templates.segments/templates/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/templates.segments/templates.segment.rsc +1 -1
- package/.next/server/app-paths-manifest.json +1 -1
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/trace +20 -20
- package/.next/trace-build +1 -1
- package/dist/daemon/agents/claude.js +28 -3
- package/dist/daemon/agents/claude.js.map +1 -1
- package/package.json +1 -1
- /package/.next/static/{hmC83z5NnKa77tLC3wdHa → 7Dr1kMYKJ038LeaJtA80_}/_buildManifest.js +0 -0
- /package/.next/static/{hmC83z5NnKa77tLC3wdHa → 7Dr1kMYKJ038LeaJtA80_}/_ssgManifest.js +0 -0
package/.next/trace-build
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"name":"run-webpack","duration":
|
|
1
|
+
[{"name":"run-webpack","duration":10599460,"timestamp":6670667640488,"id":14,"parentId":1,"tags":{},"startTime":1778062038067,"traceId":"2ae559c6d80e4de6"},{"name":"run-typescript","duration":5408355,"timestamp":6670678243506,"id":2100,"parentId":1,"tags":{},"startTime":1778062048670,"traceId":"2ae559c6d80e4de6"},{"name":"static-check","duration":406752,"timestamp":6670683689687,"id":2103,"parentId":1,"tags":{},"startTime":1778062054116,"traceId":"2ae559c6d80e4de6"},{"name":"static-generation","duration":1405409,"timestamp":6670684268821,"id":2143,"parentId":1,"tags":{},"startTime":1778062054695,"traceId":"2ae559c6d80e4de6"},{"name":"collect-build-traces","duration":6230621,"timestamp":6670684096809,"id":2140,"parentId":1,"tags":{},"startTime":1778062054523,"traceId":"2ae559c6d80e4de6"},{"name":"telemetry-flush","duration":30,"timestamp":6670690329056,"id":2152,"parentId":1,"tags":{},"startTime":1778062060755,"traceId":"2ae559c6d80e4de6"},{"name":"next-build","duration":22816891,"timestamp":6670667512204,"id":1,"tags":{"buildMode":"default","version":"16.2.4","bundler":"webpack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778062037938,"traceId":"2ae559c6d80e4de6"}]
|
|
@@ -23,7 +23,13 @@ exports.claudeShim = {
|
|
|
23
23
|
// (settings.local.json `permissions.allow[]`) already implements the
|
|
24
24
|
// "workspace" profile. Full = bypass everything; strict isn't expressible
|
|
25
25
|
// at spawn time, only via tighter allow-list.
|
|
26
|
-
|
|
26
|
+
//
|
|
27
|
+
// Root-aware: --dangerously-skip-permissions is refused under root (same
|
|
28
|
+
// policy as the headless permission-mode bypass). Under root we drop the
|
|
29
|
+
// flag — claude will use its default per-tool prompts which the tmux
|
|
30
|
+
// session lets the user approve interactively.
|
|
31
|
+
const runningAsRoot = typeof process.getuid === 'function' && process.getuid() === 0;
|
|
32
|
+
if ((opts.unsandboxed || opts.sandbox === 'full') && !runningAsRoot) {
|
|
27
33
|
cmd += ` --dangerously-skip-permissions`;
|
|
28
34
|
}
|
|
29
35
|
if (opts.model) {
|
|
@@ -52,13 +58,32 @@ exports.claudeShim = {
|
|
|
52
58
|
runHeadless(opts) {
|
|
53
59
|
(0, preflight_js_1.preTrustClaudeWorkspace)(opts.cwd);
|
|
54
60
|
const args = ['--print', '--output-format', 'stream-json', '--verbose'];
|
|
61
|
+
// Root-aware permission mode. Claude CLI refuses both
|
|
62
|
+
// `--dangerously-skip-permissions` AND `--permission-mode
|
|
63
|
+
// bypassPermissions` when running as root (Anthropic's security
|
|
64
|
+
// policy — common WSL trap since WSL defaults to root). `plan`
|
|
65
|
+
// mode is the read-only escape hatch that doesn't trigger the
|
|
66
|
+
// refusal: reviewer / pure-text-generation use cases work
|
|
67
|
+
// normally, but the doer can't edit files or run bash. For
|
|
68
|
+
// chorus's typical reviewer fan-out (Tri-Review, Review-Only,
|
|
69
|
+
// Code-Review) plan mode is functionally equivalent. Power users
|
|
70
|
+
// running implement-style templates (Red-Green's implement phase)
|
|
71
|
+
// need a non-root user.
|
|
72
|
+
const runningAsRoot = typeof process.getuid === 'function' && process.getuid() === 0;
|
|
55
73
|
// Sandbox profile → permission-mode mapping. Headless mode auto-skips the
|
|
56
74
|
// workspace-trust dialog (per `claude -p` docs) so we don't need preflight
|
|
57
75
|
// beyond the trust marker write above.
|
|
58
|
-
if (opts.sandbox === 'strict') {
|
|
76
|
+
if (opts.sandbox === 'strict' || runningAsRoot) {
|
|
59
77
|
// 'plan' = read-only-ish: no Edit, no Bash. The closest Claude has to
|
|
60
|
-
// a strict sandbox in headless.
|
|
78
|
+
// a strict sandbox in headless. Also the only mode Claude allows under
|
|
79
|
+
// root, so we use it as the fallback when uid 0.
|
|
61
80
|
args.push('--permission-mode', 'plan');
|
|
81
|
+
if (runningAsRoot && opts.sandbox !== 'strict') {
|
|
82
|
+
// One-line stderr nudge so power users notice the downgrade
|
|
83
|
+
// and know to switch off root for write-capable doers.
|
|
84
|
+
process.stderr.write('[chorus] Claude running as root: permission mode downgraded to "plan" ' +
|
|
85
|
+
'(read-only). Run chorus as a non-root user for file-editing doer slots.\n');
|
|
86
|
+
}
|
|
62
87
|
}
|
|
63
88
|
else if (opts.autoApprove !== false || opts.sandbox === 'full') {
|
|
64
89
|
// Default for headless reviewer spawns — bypass per-tool prompts so the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude.js","sourceRoot":"","sources":["../../../src/daemon/agents/claude.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AASH,yCAAmD;AACnD,iDAAyD;AACzD,gDAA+C;AAC/C,iDAAiD;AAEpC,QAAA,UAAU,GAAc;IACnC,OAAO,EAAE,WAAW;IACpB,IAAI,EAAE,aAAa;IAEnB,kBAAkB,CAAC,IAAuB;QACxC,yEAAyE;QACzE,qEAAqE;QACrE,IAAA,sCAAuB,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAElC,MAAM,GAAG,GAAG,IAAA,oBAAS,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,GAAG,GAAG,MAAM,GAAG,YAAY,CAAC;QAEhC,+DAA+D;QAC/D,2EAA2E;QAC3E,qEAAqE;QACrE,0EAA0E;QAC1E,8CAA8C;QAC9C,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"claude.js","sourceRoot":"","sources":["../../../src/daemon/agents/claude.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "chorus-codes",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.10",
|
|
4
4
|
"description": "Driver-agnostic multi-LLM peer review for code decisions. Bring your own CLI; Chorus convenes 2-4 other LLMs to review the work before you ship.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "99x Agency",
|
|
File without changes
|
|
File without changes
|