chorus-codes 0.7.1 → 0.7.2
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/build-manifest.json +3 -3
- package/.next/cache/.previewinfo +1 -1
- package/.next/cache/.rscinfo +1 -1
- package/.next/cache/.tsbuildinfo +1 -1
- package/.next/fallback-build-manifest.json +3 -3
- package/.next/prerender-manifest.json +3 -3
- 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/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.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.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/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.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/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/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.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/middleware-build-manifest.js +3 -3
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/trace +1 -1
- package/.next/trace-build +1 -1
- package/README.md +38 -15
- package/dist/cli/commands/start.js +58 -0
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/daemon/index.js +1 -1
- package/dist/mcp/index.js +1 -1
- package/package.json +1 -1
- /package/.next/static/{8H2I8TTPlrKuWCV-SxY5f → 9cD3yIOGe_Aqr17uJHTQS}/_buildManifest.js +0 -0
- /package/.next/static/{8H2I8TTPlrKuWCV-SxY5f → 9cD3yIOGe_Aqr17uJHTQS}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{8H2I8TTPlrKuWCV-SxY5f → 9cD3yIOGe_Aqr17uJHTQS}/_ssgManifest.js +0 -0
package/README.md
CHANGED
|
@@ -84,12 +84,49 @@ Reproduces 1-in-20, no obvious pattern. Drop the failing test + suspect code int
|
|
|
84
84
|
|
|
85
85
|
```bash
|
|
86
86
|
npm i -g chorus-codes # install
|
|
87
|
-
chorus init # finds AI tools you already have
|
|
87
|
+
chorus init # finds AI tools you already have, wires up MCP
|
|
88
88
|
chorus start --ui # opens http://localhost:5050
|
|
89
89
|
```
|
|
90
90
|
|
|
91
91
|
Paste a task. Hit submit. Watch the AIs argue.
|
|
92
92
|
|
|
93
|
+
### Or drive it from any AI CLI you already use
|
|
94
|
+
|
|
95
|
+
`chorus init` registers Chorus as an MCP server with every CLI / IDE it detects (Claude Code, Codex, Gemini CLI, Cursor, Windsurf, Kimi, OpenCode). After that, just ask the assistant in plain English:
|
|
96
|
+
|
|
97
|
+
```
|
|
98
|
+
> Use chorus to review the staged diff against main
|
|
99
|
+
> Ask chorus to run the architect-review template on src/payments/*.ts
|
|
100
|
+
> chorus, get a second opinion on this function from claude + gemini
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Or invoke a specific MCP tool directly — every CLI uses the same name (`chorus`) and exposes nine tools:
|
|
104
|
+
|
|
105
|
+
| Tool | What it does |
|
|
106
|
+
|---|---|
|
|
107
|
+
| `create_chat` | Kick off a review (returns a `chatId` + URL) |
|
|
108
|
+
| `wait_for_chat` | Block until the run reaches a terminal state |
|
|
109
|
+
| `get_chat_status` | Poll a running chat without blocking |
|
|
110
|
+
| `cancel_chat` / `resume_chat` | Stop or restart |
|
|
111
|
+
| `list_templates` / `list_personas` | Discover what's available |
|
|
112
|
+
| `invoke_persona` | Run a single persona (skip multi-reviewer fan-out) |
|
|
113
|
+
| `list_blocked` | See chats that need human input |
|
|
114
|
+
|
|
115
|
+
Example raw invocation (from any MCP client):
|
|
116
|
+
|
|
117
|
+
```jsonc
|
|
118
|
+
// tool: chorus.create_chat
|
|
119
|
+
{
|
|
120
|
+
"template": "code-review",
|
|
121
|
+
"work": "Review the staged diff vs main. Flag race conditions and missing tests."
|
|
122
|
+
}
|
|
123
|
+
// → { "chatId": "abc123", "url": "http://localhost:5050/runs/abc123", "status": "reviewing" }
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
Stream results back into your editor, or open the URL to watch live.
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
93
130
|
**Requires** Node 20+ and at least *one* of these (you probably already have one):
|
|
94
131
|
|
|
95
132
|
- Claude Code, Codex CLI, Gemini CLI, OpenCode, or Kimi CLI — uses your existing subscription, no extra cost
|
|
@@ -257,20 +294,6 @@ Configure on first run, or anytime at *Settings → Permissions*.
|
|
|
257
294
|
|
|
258
295
|
---
|
|
259
296
|
|
|
260
|
-
## Use it from inside another AI tool
|
|
261
|
-
|
|
262
|
-
Chorus speaks MCP — the protocol Claude Code, Cursor, Codex, Gemini CLI etc. use to talk to other tools. So you can trigger a Chorus run *from inside* the AI tool you're already using.
|
|
263
|
-
|
|
264
|
-
Example, inside Claude Code:
|
|
265
|
-
|
|
266
|
-
> *"Run code-review on the diff against main using Chorus"*
|
|
267
|
-
|
|
268
|
-
Claude Code calls Chorus → Chorus fans out to other AI tools → results stream back into Claude Code. Useful when you want a second opinion without leaving the editor.
|
|
269
|
-
|
|
270
|
-
`chorus init` wires up MCP for the orchestrators it detects (Claude / Codex / Gemini / Cursor / Windsurf, etc.).
|
|
271
|
-
|
|
272
|
-
---
|
|
273
|
-
|
|
274
297
|
## Compared to other code-review tools
|
|
275
298
|
|
|
276
299
|
| | **Chorus** | CodeRabbit | Greptile | Cursor Review | GitHub Copilot |
|
|
@@ -24,6 +24,8 @@ function registerStartCommand(program) {
|
|
|
24
24
|
const pidFile = path_1.default.join(chorusDir, 'daemon.pid');
|
|
25
25
|
if (await alreadyRunning(pidFile, options.ui))
|
|
26
26
|
return;
|
|
27
|
+
if (await alreadyRunningOnDefaultPort(options.ui))
|
|
28
|
+
return;
|
|
27
29
|
await reapOrphans();
|
|
28
30
|
warnIfTmuxMissing();
|
|
29
31
|
// Capture the interactive PATH from the user's terminal BEFORE
|
|
@@ -62,6 +64,62 @@ async function captureAndPersistPath() {
|
|
|
62
64
|
/* non-fatal */
|
|
63
65
|
}
|
|
64
66
|
}
|
|
67
|
+
/**
|
|
68
|
+
* Pidfile-less variant of `alreadyRunning`. Covers the case where
|
|
69
|
+
* the daemon is healthy on :7707 but the pidfile is missing or stale
|
|
70
|
+
* (manual deletion, /tmp wipe, prior crash before pidfile write,
|
|
71
|
+
* sudo-started daemon vs. user-invoked `chorus start`, etc.).
|
|
72
|
+
*
|
|
73
|
+
* Without this, a healthy chorus + missing pidfile would fall through
|
|
74
|
+
* to reapOrphans() and either kill the live daemon or hit the
|
|
75
|
+
* "couldn't identify the PID" dead-end (when the daemon runs as a
|
|
76
|
+
* different user and `ss -p` redacts the PID).
|
|
77
|
+
*
|
|
78
|
+
* The HTTP probe alone is a strong signal — chorus's /api/v1/health
|
|
79
|
+
* returns a versioned envelope no random other process happens to
|
|
80
|
+
* mimic. The PID-cmdline cross-check is belt-and-braces: only treat
|
|
81
|
+
* "already running" as authoritative when both agree it's chorus.
|
|
82
|
+
*/
|
|
83
|
+
async function alreadyRunningOnDefaultPort(uiFlag) {
|
|
84
|
+
// Short timeout — we're trying to fail fast and fall through to reap
|
|
85
|
+
// logic when the daemon is actually dead. 1.5s covers a slow loopback
|
|
86
|
+
// round-trip on resource-starved CI runners without making a healthy
|
|
87
|
+
// system feel sluggish.
|
|
88
|
+
let healthyVersion = null;
|
|
89
|
+
try {
|
|
90
|
+
const ac = new AbortController();
|
|
91
|
+
const timer = setTimeout(() => ac.abort(), 1500);
|
|
92
|
+
const res = await fetch(`${shared_js_1.DAEMON_URL}/api/v1/health`, {
|
|
93
|
+
signal: ac.signal,
|
|
94
|
+
});
|
|
95
|
+
clearTimeout(timer);
|
|
96
|
+
if (!res.ok)
|
|
97
|
+
return false;
|
|
98
|
+
const envelope = (await res.json());
|
|
99
|
+
if (envelope.ok !== true || !envelope.data?.version)
|
|
100
|
+
return false;
|
|
101
|
+
healthyVersion = envelope.data.version;
|
|
102
|
+
}
|
|
103
|
+
catch {
|
|
104
|
+
// ECONNREFUSED / abort / parse error → not a healthy chorus on :7707.
|
|
105
|
+
return false;
|
|
106
|
+
}
|
|
107
|
+
// Cross-check: the PID listening on :7707 must look like chorus.
|
|
108
|
+
// Without this, a foreign service that happens to respond 200 on
|
|
109
|
+
// /api/v1/health with a matching envelope shape could fool us into
|
|
110
|
+
// sending the user to a wrong cockpit URL. Belt-and-braces.
|
|
111
|
+
const pids = (0, port_utils_js_1.findPidsOnPort)(7707);
|
|
112
|
+
const looksLikeChorus = pids.some((pid) => (0, port_utils_js_1.pidLooksLikeChorus)(pid).match);
|
|
113
|
+
if (pids.length > 0 && !looksLikeChorus)
|
|
114
|
+
return false;
|
|
115
|
+
console.log('');
|
|
116
|
+
console.log((0, ui_js_1.header)(ui_js_1.sym.ok, 'Chorus is already running', `version ${healthyVersion}`));
|
|
117
|
+
(0, shared_js_1.printCockpitAccessHint)();
|
|
118
|
+
if (uiFlag && (0, runtime_env_js_1.shouldAutoOpenBrowser)((0, runtime_env_js_1.detectRuntimeEnv)())) {
|
|
119
|
+
(0, open_1.default)(shared_js_1.COCKPIT_URL);
|
|
120
|
+
}
|
|
121
|
+
return true;
|
|
122
|
+
}
|
|
65
123
|
async function alreadyRunning(pidFile, uiFlag) {
|
|
66
124
|
if (!fs_1.default.existsSync(pidFile))
|
|
67
125
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":"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"}
|
package/dist/daemon/index.js
CHANGED
|
@@ -55,7 +55,7 @@ function resolveDaemonPort() {
|
|
|
55
55
|
}
|
|
56
56
|
const PORT = resolveDaemonPort();
|
|
57
57
|
const HOST = '127.0.0.1';
|
|
58
|
-
const VERSION = '0.7.
|
|
58
|
+
const VERSION = '0.7.2';
|
|
59
59
|
const startTime = Date.now();
|
|
60
60
|
// Absolute path to bin/chorus.mjs — used by /orchestrators/:name/connect
|
|
61
61
|
// when the cockpit triggers a one-click wire-up. Both src/daemon/index.ts
|
package/dist/mcp/index.js
CHANGED
|
@@ -11,7 +11,7 @@ const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
|
|
|
11
11
|
const tools_js_1 = require("./tools.js");
|
|
12
12
|
const mcpServer = new mcp_js_1.McpServer({
|
|
13
13
|
name: "chorus",
|
|
14
|
-
version: "0.7.
|
|
14
|
+
version: "0.7.2",
|
|
15
15
|
});
|
|
16
16
|
/**
|
|
17
17
|
* Register the 7 MCP tools.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "chorus-codes",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.2",
|
|
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
|
/package/.next/static/{8H2I8TTPlrKuWCV-SxY5f → 9cD3yIOGe_Aqr17uJHTQS}/_clientMiddlewareManifest.js
RENAMED
|
File without changes
|
|
File without changes
|