severally-mcp 2.4.0 → 2.4.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.
Files changed (40) hide show
  1. package/README.ja.md +44 -19
  2. package/README.md +44 -18
  3. package/package.json +3 -1
  4. package/plugins/severally/.claude-plugin/plugin.json +1 -1
  5. package/plugins/severally/.codex-plugin/plugin.json +1 -1
  6. package/plugins/severally/dist/severally-mcp.mjs +585 -255
  7. package/plugins/severally/skills/_template/reference.md.tmpl +2 -2
  8. package/plugins/severally/skills/antigravity/severally/reference.md +2 -2
  9. package/plugins/severally/skills/claude/severally/reference.md +2 -2
  10. package/plugins/severally/skills/codex/severally/reference.md +2 -2
  11. package/plugins/severally/skills/opencode/severally/reference.md +2 -2
  12. package/scripts/build.mjs +57 -54
  13. package/scripts/doctor.mjs +15 -4
  14. package/scripts/install.mjs +73 -9
  15. package/scripts/live-check.mjs +11 -5
  16. package/scripts/live-mcp-check.mjs +10 -4
  17. package/src/adapters/antigravity-sandbox.mjs +24 -6
  18. package/src/adapters/antigravity.mjs +80 -17
  19. package/src/adapters/claude-code.mjs +49 -8
  20. package/src/adapters/codex.mjs +56 -6
  21. package/src/adapters/opencode-sandbox.mjs +20 -2
  22. package/src/adapters/opencode.mjs +115 -19
  23. package/src/brief.mjs +84 -7
  24. package/src/consultants.mjs +184 -25
  25. package/src/cross-spawn-escape.d.ts +7 -0
  26. package/src/export.mjs +50 -6
  27. package/src/expose-paths.mjs +149 -7
  28. package/src/failures.mjs +8 -1
  29. package/src/jobs.mjs +578 -132
  30. package/src/jsonc.mjs +11 -3
  31. package/src/parse-result.mjs +91 -14
  32. package/src/platform.mjs +52 -2
  33. package/src/policy.mjs +151 -28
  34. package/src/redact.mjs +22 -3
  35. package/src/result-schema.mjs +13 -0
  36. package/src/run.mjs +158 -12
  37. package/src/schema.mjs +84 -11
  38. package/src/server.mjs +49 -14
  39. package/src/status.mjs +16 -4
  40. package/src/store.mjs +287 -6
package/README.ja.md CHANGED
@@ -90,24 +90,52 @@ flowchart TB
90
90
  macOS、Linux、Windows(PowerShell またはコマンドプロンプト)のどれでも、次の 1 行で入れられます。
91
91
 
92
92
  ```bash
93
- npx -y severally-mcp@2.4.0 install
93
+ npx -y severally-mcp@2.4.2 install
94
94
  ```
95
95
 
96
96
  インストーラは、`PATH` で見つかった CLI のそれぞれに severally を登録します。末尾に `--dry-run` を付けると、何も
97
- 変えずに変更内容だけを表示します。終わったら、クライアントを再起動してください。動いているセッションは、新しい
98
- 登録を読み直しません。
99
-
100
- Claude Code だけで使うなら、プラグインマーケットプレイスから入れることもできます。Claude Code で
101
- `/plugin marketplace add coz-a/severally`、続けて `/plugin install severally@severally` を実行し、Claude Code を
102
- 再起動します。見つかった CLI すべてに登録できる上の 1 行が基本の方法です。詳しくは
103
- [docs/install.ja.md](docs/install.ja.md#claude-code-のプラグインマーケットプレイスから入れる) にあります。
97
+ 変えずに変更内容だけを表示します。
104
98
 
105
99
  macOS と Linux の既定のインストールは、`npm install -g` で `severally-mcp` コマンドを `PATH` に置きます。要るのは
106
100
  Codex のプラグインだけです。npm がグローバルに入れられないとき(たとえば sudo が要る、npm のグローバルのフォルダが
107
101
  `PATH` に無い)は、インストーラが代わりに Codex を直接登録し、そう表示します。ほかに必要なことはありません。
108
102
 
109
- Claude Code のプラグインマーケットプレイスから入れる方法、クローンから入れる方法、登録の確かめ方、インストーラが
110
- 変えるものは、[docs/install.ja.md](docs/install.ja.md) にあります。
103
+ 終わったら、クライアントを再起動してください。動いているセッションは、新しい登録を読み直しません。相談を始めずに
104
+ 設定を確かめるには、次を実行します。
105
+
106
+ ```bash
107
+ npx -y severally-mcp@latest status
108
+ ```
109
+
110
+ 設定ファイル・この機械から使える相談相手・入っている写しの版・どのクライアントに登録されているか・各 CLI に
111
+ ログインしているかを表示します。ログインの確認は CLI 自身の状態確認コマンドを読むだけで、プロンプトは送りません。
112
+ 使用枠を使い切っていないかは確かめません。それは最初の相談で分かります。
113
+
114
+ Codex と Claude Code がある機械での出力の一部を示します。
115
+
116
+ ```text
117
+ config: ok
118
+
119
+ consultants:
120
+ codex: codex, <model> available
121
+ claude-code: claude-code, <model> available
122
+
123
+ clients:
124
+ Claude Code registered (listed by the client)
125
+ Codex registered (listed by the client)
126
+
127
+ login (out of quota is not checked; the first consultation shows it):
128
+ codex logged in
129
+ claude-code logged in
130
+ ```
131
+
132
+ ここまで済んだら、[使い方](#使い方)のようにエージェントに最初の相談を頼んでください。
133
+
134
+ Claude Code だけで使うなら、プラグインマーケットプレイスから入れることもできます。Claude Code で
135
+ `/plugin marketplace add coz-a/severally`、続けて `/plugin install severally@severally` を実行し、Claude Code を
136
+ 再起動します。見つかった CLI すべてに登録できる上の 1 行が基本の方法です。プラグインマーケットプレイスから入れる
137
+ 方法、クローンから入れる方法、登録の確かめ方、インストーラが変えるものは、[docs/install.ja.md](docs/install.ja.md)
138
+ にあります。
111
139
 
112
140
  ### コマンドライン
113
141
 
@@ -125,11 +153,6 @@ npx -y severally-mcp@latest install [--dry-run] [--manual] [--force] [--skip-glo
125
153
 
126
154
  方式ごとに何が変わるかは [docs/install.ja.md](docs/install.ja.md#2-つのインストール方式) にあります。
127
155
 
128
- `npx -y severally-mcp@latest status` を実行すると、相談を始めずに、設定ファイル・この機械から使える相談相手・
129
- 入っている写しの版・どのクライアントに登録されているか・各 CLI にログインしているかを表示します。ログインの確認は
130
- CLI 自身の状態確認コマンドを読むだけで、プロンプトは送りません。使用枠を使い切っていないかは確かめません。それは
131
- 最初の相談で分かります。
132
-
133
156
  ### 更新
134
157
 
135
158
  次の 1 行で、最新版に入れ替わります。バージョン番号を調べる必要はありません。
@@ -313,13 +336,13 @@ API キーで呼び出すモデル(OpenRouter や、OpenAI 互換のほかの
313
336
  |---|---|---|---|---|---|
314
337
  | Codex | できる | パスで拒否(権限プロファイル)。`.env` のようなファイル名では拒否しない | ある。サンドボックスの中(コマンドは動くが、書き込みとネットワークはできない) | できない | できる(`network: "off"` のときを除く) |
315
338
  | Claude Code | できる(`Read` / `Glob` / `Grep`) | 拒否(権限の規則) | なし | できない | できる(`network: "off"` のときを除く) |
316
- | Antigravity | できる(`view_file`) | 拒否(ツールのフック) | なし | できない | できる(`network: "off"` のときを除く) |
339
+ | Antigravity | できる(`view_file`・`read_file`) | 拒否(ツールのフック) | なし | できない | できる(`network: "off"` のときを除く) |
317
340
  | OpenCode | できる(`read` / `glob` / `grep`) | 拒否(権限の規則) | なし(Code Mode の `execute` は拒否) | できない | できる(`network: "off"` のときを除く) |
318
341
 
319
342
  どの相談相手も、渡したファイルの写しだけが入った専用の作業ディレクトリで始まり、サーバはあなたのリポジトリの
320
- 場所を伝えません。それでも、あなたの
321
- ユーザーアカウントで読めるファイルは、表で「拒否」とした秘密のパスを除いて読めます。Codex はファイルの名前では
322
- 拒否しないので、あなたのリポジトリにある `.env` は Codex から読めます。
343
+ 場所を伝えません。それでも、あなたのユーザーアカウントで読めるファイルは、表で「拒否」とした秘密のパスを除いて
344
+ 読めます。例外は、ファイルを渡した相談での Claude Code です。そのときは、渡したファイルの写ししか読めません。
345
+ Codex はファイルの名前では拒否しないので、あなたのリポジトリにある `.env` は Codex から読めます。
323
346
 
324
347
  **ディスクを読めて Web も閲覧できる相談相手は、読んだ内容を URL に載せて外に持ち出せます**。開いたページに、
325
348
  そうするよう書かれていた場合などです。それを防ぎたいときは、エージェントが `network: "off"` を渡します。その回の
@@ -359,6 +382,8 @@ CLI ごとにどう守らせているかは [docs/how-it-works.ja.md](docs/how-i
359
382
 
360
383
  - `npm install` のあと `npm test` を実行します。テストは本物の代わりに用意した CLI を相手にオフラインで動き、
361
384
  実際の API は呼びません。
385
+ - CI では `npm run lint`・`npm run typecheck`・`npm run format:check` も確かめています。プルリクエストを出す前に
386
+ 実行してください。
362
387
  - ソースか Skill のテンプレートを変えたら、`npm run build` を実行してください。ビルド済みのサーバ
363
388
  (`plugins/severally/dist/`)と生成した Skill はコミットしてあり、古いままだと CI が失敗します。
364
389
  - `npm run live-check` と `npm run doctor` は、入っている CLI を相手に本物の相談を実行するので、実際の使用量がかかります。
package/README.md CHANGED
@@ -16,7 +16,7 @@ A plugin that lets your AI agent ask other coding agents for independent opinion
16
16
  The consultants are Codex, Claude Code, Antigravity and OpenCode. When the agent gets stuck in an investigation, or faces two options that look equally good, it asks the
17
17
  consultants for their opinions. It checks the findings that come back itself, and carries on from what it found.
18
18
  For an important decision, such as a change that is hard to reverse, it consults before asking you to approve it,
19
- and asks you only about what is yours to decide. You can also ask yourself: "ask Codex".
19
+ and asks you only about what is yours to decide. You can also ask for one yourself: "ask Codex".
20
20
 
21
21
  The plugin puts the question to several independent consultants, and returns each one's answer on its own
22
22
  instead of merging them into one, because a disagreement means something too. The agent checks why they disagree
@@ -92,24 +92,51 @@ routes and the real CLIs have been tried on Linux only.
92
92
  One line, on macOS, Linux and Windows (PowerShell or Command Prompt):
93
93
 
94
94
  ```bash
95
- npx -y severally-mcp@2.4.0 install
95
+ npx -y severally-mcp@2.4.2 install
96
96
  ```
97
97
 
98
98
  The installer registers severally with each CLI it finds on `PATH`. Add `--dry-run` at the end to print what it
99
- would change without changing anything. Then restart the clients: a running session does not reload the new
100
- registration.
101
-
102
- If you use only Claude Code, you can install from its plugin marketplace instead: run `/plugin marketplace add coz-a/severally`
103
- and then `/plugin install severally@severally` in Claude Code, and restart it. The one line above is the main route,
104
- since it registers every CLI it finds. Details are in
105
- [docs/install.md](docs/install.md#from-the-claude-code-plugin-marketplace).
99
+ would change without changing anything.
106
100
 
107
101
  On macOS and Linux, the default install also runs `npm install -g` to put a `severally-mcp` command on `PATH`, which
108
102
  only Codex's plugin needs. If npm cannot install it globally (for example it needs sudo, or npm's global folder is
109
103
  not on `PATH`), the installer registers Codex directly instead and says so. Nothing else is needed.
110
104
 
111
- Installing from the Claude Code plugin marketplace or from a clone, checking the registration, and what the
112
- installer changes are in [docs/install.md](docs/install.md).
105
+ Then restart the clients: a running session does not reload the new registration. To check the setup without
106
+ starting a consultation, run:
107
+
108
+ ```bash
109
+ npx -y severally-mcp@latest status
110
+ ```
111
+
112
+ It shows the config file, the consultants this machine can reach, the installed copies' versions, which clients
113
+ have severally registered and whether each CLI is logged in. The login check reads the CLI's own status command and
114
+ sends no prompt; running out of quota is not checked, and the first consultation shows it.
115
+
116
+ Part of the output on a machine with Codex and Claude Code:
117
+
118
+ ```text
119
+ config: ok
120
+
121
+ consultants:
122
+ codex: codex, <model> available
123
+ claude-code: claude-code, <model> available
124
+
125
+ clients:
126
+ Claude Code registered (listed by the client)
127
+ Codex registered (listed by the client)
128
+
129
+ login (out of quota is not checked; the first consultation shows it):
130
+ codex logged in
131
+ claude-code logged in
132
+ ```
133
+
134
+ Then ask your agent for a first consultation, as in [Usage](#usage).
135
+
136
+ If you use only Claude Code, you can install from its plugin marketplace instead: run `/plugin marketplace add coz-a/severally`
137
+ and then `/plugin install severally@severally` in Claude Code, and restart it. The one line above is the main route,
138
+ since it registers every CLI it finds. Installing from the marketplace or from a clone, checking the registration,
139
+ and what the installer changes are in [docs/install.md](docs/install.md).
113
140
 
114
141
  ### Command line
115
142
 
@@ -127,11 +154,6 @@ npx -y severally-mcp@latest install [--dry-run] [--manual] [--force] [--skip-glo
127
154
 
128
155
  What each mode changes is in [docs/install.md](docs/install.md#two-install-modes).
129
156
 
130
- `npx -y severally-mcp@latest status` shows what is set up without starting a consultation: the config file, the
131
- consultants this machine can reach, the installed copies' versions, which clients have severally registered and
132
- whether each CLI is logged in. The login check reads the CLI's own status command and sends no prompt; running out
133
- of quota is not checked, and the first consultation shows it.
134
-
135
157
  ### Updating
136
158
 
137
159
  This line replaces your install with the latest version, with no version number to look up:
@@ -320,11 +342,13 @@ history is never sent. No consultant can:
320
342
  |---|---|---|---|---|---|
321
343
  | Codex | yes | blocked by path (permission profile), not by file name such as `.env` | yes, in its sandbox (commands run, but cannot write or reach the network) | no | yes, unless `network: "off"` |
322
344
  | Claude Code | yes (`Read` / `Glob` / `Grep`) | blocked (permission rules) | none | no | yes, unless `network: "off"` |
323
- | Antigravity | yes (`view_file`) | blocked (tool hook) | none | no | yes, unless `network: "off"` |
345
+ | Antigravity | yes (`view_file`, `read_file`) | blocked (tool hook) | none | no | yes, unless `network: "off"` |
324
346
  | OpenCode | yes (`read` / `glob` / `grep`) | blocked (permission rules) | none (its Code Mode `execute` is refused) | no | yes, unless `network: "off"` |
325
347
 
326
348
  Every consultant starts in a working directory of its own that holds only copies of the files you handed it, and
327
- the server does not tell it where your repository is. It can still read any file your user account can read, except the credential paths the table marks blocked.
349
+ the server does not tell it where your repository is. It can still read any file your user account can read, except
350
+ the credential paths the table marks blocked. The one exception is Claude Code in a consultation that exposes files:
351
+ it can then read only those copies.
328
352
  Codex does not block by file name, so a `.env` in your repository is readable to it.
329
353
 
330
354
  **A consultant that can both read your disk and browse could carry what it read out in a URL**, for example if a
@@ -364,6 +388,8 @@ a large change, open an issue first so we can talk it over. Everyone taking part
364
388
  [Code of Conduct](CODE_OF_CONDUCT.md).
365
389
 
366
390
  - `npm install`, then `npm test`. The tests run offline against stand-in CLIs and make no real API calls.
391
+ - CI also runs `npm run lint`, `npm run typecheck` and `npm run format:check`. Run them before you open a pull
392
+ request.
367
393
  - After changing the source or the Skill template, run `npm run build`. The built server in
368
394
  `plugins/severally/dist/` and the generated Skills are committed, and CI fails when they are out of date.
369
395
  - `npm run live-check` and `npm run doctor` run real consultations against the CLIs you have installed, and spend
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "severally-mcp",
3
- "version": "2.4.0",
3
+ "version": "2.4.2",
4
4
  "description": "A plugin that lets your AI agent ask other coding agents for independent opinions, returned separately.",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
@@ -57,7 +57,9 @@
57
57
  "devDependencies": {
58
58
  "@eslint/js": "9.36.0",
59
59
  "@modelcontextprotocol/client": "^2.3.1",
60
+ "@types/cross-spawn": "6.0.6",
60
61
  "@types/node": "22.18.6",
62
+ "@types/which": "2.0.2",
61
63
  "esbuild": "^0.28.2",
62
64
  "eslint": "9.36.0",
63
65
  "globals": "16.4.0",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://anthropic.com/claude-code/plugin.schema.json",
3
3
  "name": "severally",
4
- "version": "2.4.0",
4
+ "version": "2.4.2",
5
5
  "description": "Ask Codex, Claude Code, Antigravity or OpenCode for an independent opinion, review or structured debate, in a sandboxed child session that can read files and search the web but cannot edit files, change the system, or start other agents.",
6
6
  "author": {
7
7
  "name": "coz.a",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "severally",
3
- "version": "2.4.0",
3
+ "version": "2.4.2",
4
4
  "description": "Ask Codex, Claude Code, Antigravity or OpenCode for an independent opinion, review or structured debate, in a sandboxed child session that can read files and search the web but cannot edit files, change the system, or start other agents.",
5
5
  "author": {
6
6
  "name": "coz.a",