@kyo-so/cli 0.9.1 → 0.11.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.
@@ -45,6 +45,16 @@ Do not use this skill for every coding task. It is intended for deliberate revie
45
45
  - The CLI also accepts `--repo-summary`, repeatable `--constraint`, and repeatable `--file` flags. For a large review, adjust an agent timeout with `--set agents.<agent>.timeoutMs=<ms>`.
46
46
  - Run the CLI without a config trust flag first. Inspect `audit.warnings` in the JSON result; if it contains `untrusted config was not executed`, or the command fails with an untrusted-config message, ask the user whether to rerun with `--trust-config` to use it or `--ignore-config` to skip it. Never add `--trust-config` without confirmation.
47
47
  - Keep `--json` enabled and interpret the returned `decision` exactly like the MCP result.
48
- 5. Treat `decision: block` as a stop signal. Present the result to the user before implementing.
49
- 6. Treat `decision: approve_with_changes` as requiring changes to the plan or implementation.
50
- 7. Do not claim Kyoso modified files. Kyoso only reviews.
48
+ 5. Apply the [review-pass stop contract](#review-pass-stop-contract) before deciding whether to run another review.
49
+ 6. Treat `decision: block` as a stop signal. Present the result to the user before implementing.
50
+ 7. Treat `decision: approve_with_changes` as requiring changes to the plan or implementation.
51
+ 8. Do not claim Kyoso modified files. Kyoso only reviews.
52
+
53
+ ## Review-pass stop contract
54
+
55
+ - At one explicit review checkpoint, run one automatic review pass only.
56
+ - Record the returned `requestFingerprint`. Do not run the same fingerprint again in the same task.
57
+ - If `completion.status !== "complete"`, stop. Present the incomplete result; do not retry the same command or enter a finding-fix loop.
58
+ - A single confirmation pass is allowed only after fixing actionable, material findings from the first complete pass.
59
+ - After the confirmation pass, stop even when findings remain. Do not start a third pass without the user's explicit approval.
60
+ - Do not interpret `approve_with_changes` as permission to repeat until `approve`.
package/CHANGELOG.md CHANGED
@@ -7,6 +7,69 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.11.0] - 2026-07-15
11
+
12
+ ### Added
13
+
14
+ - User-global review execution budgets with lower-only request overrides,
15
+ absolute deadlines, streamed ACP text-output caps (including thought chunks), token-usage accounting,
16
+ request fingerprints, and structured incomplete-review results.
17
+ - Audit events and JSON/Markdown budget reporting for planned, consumed, and
18
+ skipped model calls, wall time, output bytes, token-usage state, and review
19
+ completion reasons.
20
+ - A two-pass stop contract for the bundled Kyoso review Skill: one initial
21
+ review plus one confirmation after material fixes, with fingerprint-based
22
+ duplicate prevention and explicit approval required for a third pass.
23
+
24
+ ### Changed
25
+
26
+ - Promote the Marketplace Plugin to `0.4.0`, pin its Codex and Claude Code MCP
27
+ definitions to `@kyo-so/cli@0.10.0`, and allow clients to forward
28
+ `OPENROUTER_API_KEY` by name for the existing OpenRouter project opt-in.
29
+ - Default the Judge to deterministic-only mode. An LLM Judge now requires an
30
+ explicit `deterministic_plus_llm` opt-in and shares the review call budget.
31
+
32
+ ## [0.10.0] - 2026-07-15
33
+
34
+ ### Added
35
+
36
+ - User-authorized project-scoped `agents.codex.provider = "openrouter"` and
37
+ inherited OpenRouter model overrides, with a required non-empty Codex model
38
+ for provider selection and a user-global exact absolute-directory
39
+ `allowProjectProvider` allowlist,
40
+ a `provider = "default"` project opt-out that clears an inherited OpenRouter
41
+ model unless the reset layer supplies one, and a fixed OpenRouter Responses
42
+ API preset.
43
+ - OpenRouter readiness in `kyoso doctor`, including detected/missing key
44
+ guidance without exposing credential values.
45
+ - `kyoso setup --with-openrouter` for explicit `OPENROUTER_API_KEY` forwarding
46
+ in newly generated manual Codex and Claude Code MCP registrations. New Codex
47
+ registrations also include `CODEX_HOME` and `CODEX_ACCESS_TOKEN` alongside
48
+ the existing credential allowlist.
49
+ - A release-gated pinned Codex ACP/OpenRouter smoke command that requires an
50
+ explicit environment opt-in and never accepts credentials through argv.
51
+
52
+ ### Changed
53
+
54
+ - Forward `OPENROUTER_API_KEY` to the Codex child only for the OpenRouter
55
+ provider; omit the provider to retain existing Codex login, OpenAI/Codex key,
56
+ and `CODEX_CONFIG` behavior.
57
+ - Preserve existing MCP registrations during setup, including disabled entries;
58
+ existing users update their environment allowlist manually.
59
+ - Omit `OPENROUTER_API_KEY` from new manual MCP registrations unless
60
+ `--with-openrouter` is explicitly requested.
61
+ - Keep the released Marketplace Plugin environment contract unchanged: it does
62
+ not forward `OPENROUTER_API_KEY` until a later coordinated Plugin
63
+ promotion.
64
+
65
+ ### Fixed
66
+
67
+ - Require the explicit `--set` provider and model pair when direct CLI input
68
+ selects OpenRouter, preventing a project-supplied model from completing that
69
+ external-routing selection.
70
+ - Resolve existing project allowlist directories by real path and document
71
+ intentional preflight-only audit completion events.
72
+
10
73
  ## [0.9.1] - 2026-07-13
11
74
 
12
75
  ### Added
package/README.ja.md CHANGED
@@ -30,11 +30,11 @@ Kyoso はコード変更を適用しません。
30
30
  <img src="https://raw.githubusercontent.com/hokupod/kyoso/main/docs/assets/kyoso-review-flow.ja.svg" alt="Kyo-so のレビュー実行フロー。MCP/CLI リクエストから secret scan、スナップショット、アンサンブルレビュー、集約、ゲート、最終決定まで" width="640">
31
31
  </p>
32
32
 
33
- backend が 1 つだけ有効な場合は、2 role の ensemble の代わりに 1 agent が `combined_reviewer` として実行されます。この図の Mermaid ソースは [docs/assets/](docs/assets/) にあります。
33
+ backend が 1 つだけ有効な場合は、2 role の ensemble の代わりに 1 agent が `combined_reviewer` として実行されます([Single-backend mode](#single-backend-mode) を参照)。この図の Mermaid ソースは [docs/assets/](docs/assets/) にあります。
34
34
 
35
35
  ## Quick Start
36
36
 
37
- グローバルインストールは不要です。Kyoso は `npx` または `bunx` で実行します。
37
+ グローバルインストールは不要です。Kyoso は `npx` または `bunx` で実行します。パッケージ化された CLI を実行するには Node.js 20 以降が必要です。
38
38
 
39
39
  ### 導入モード
40
40
 
@@ -44,14 +44,18 @@ backend が 1 つだけ有効な場合は、2 role の ensemble の代わりに
44
44
  | CLI+Skill-only | npm CLI+Skill | なし | Codex/Claude Code |
45
45
  | 手動setup | 手動MCP登録+Skill | あり | Codex/Claude Code |
46
46
 
47
- 迷ったらMarketplace Pluginを選んでください。2コマンドでSkillとMCP serverをまとめて導入できます。手順は下の[Codex](#codex)/[Claude Code](#claude-code)節を参照してください。
47
+ 迷ったらMarketplace Pluginを選んでください。2コマンドでSkillとMCP serverをまとめて導入できます。手順は下の[Codex](#codex)/[Claude Code](#claude-code)節を参照してください。導入モードを後から切り替える場合は[移行](#移行)を参照してください。
48
48
 
49
49
  #### Marketplace Plugin
50
50
 
51
51
  PluginはSkillと公開済みのKyoso CLIの完全一致versionへpinしたMCP定義を同梱しますが、CLI本体は同梱しません。MCPの初回起動ではnpmへのnetwork accessが必要です。cache済みpackageでoffline起動できる場合はありますが、保証しません。manifestの`Read` capabilityは表示metadataであり、filesystem認可を追加するものではありません。
52
52
 
53
+ `kyoso setup ... --with-openrouter` の出力と手動セットアップ例は、引き続き利用者が管理するクライアント登録テンプレートです。Marketplace Plugin `0.4.0` は `@kyo-so/cli@0.10.0` へpinしています。
54
+
53
55
  PluginのSkillは同梱の`kyoso` MCP serverをdependencyとして宣言するため、Kyoso reviewの明示的な実行はCLI fallbackではなくMCPへ誘導されます。同梱Plugin MCPを無効化した場合は、Plugin Skillを利用不可として扱います。MCPを再有効化するか、Pluginを削除してCLI+Skill-onlyへ移行してください。PluginはCLI fallback modeではありません。
54
56
 
57
+ Marketplace Plugin `0.4.0` はMCP processへ`OPENROUTER_API_KEY`の変数名を公開しますが、credential値は保存しません。KyosoはOpenRouterを明示選択したCodex childだけへ値を転送し、展開されていないplaceholderは未設定として扱います。
58
+
55
59
  #### CLI+Skill-only
56
60
 
57
61
  ```bash
@@ -68,21 +72,6 @@ Claude Codeでは`codex`を`claude-code`へ置き換えます。既定はdry-run
68
72
 
69
73
  Skill-onlyは意図的にMCP dependencyを宣言しません。`npx`または`bunx`のpackage-runner fallbackに到達すると、Codex Auto modeはsandbox network escalation approvalを要求することがあります。PATH上に`kyoso`を導入すると、このfallbackを避けられます。
70
74
 
71
- #### 移行
72
-
73
- - 手動MCPからCLI+Skill: CLIとSkillを先に導入し、`codex mcp remove kyoso`または`claude mcp remove kyoso --scope local|project|user`を実行します。
74
- - CLI+SkillからPlugin: Pluginを追加してenabledを確認してから、手動MCP登録を削除します。手動コピーSkillは自動削除しません。
75
- - PluginからCLI+Skill: CLIとSkillを先に導入し、`codex plugin remove kyoso@kyoso`を実行します。
76
- - CLI+Skillから手動MCPへ戻す: `kyoso setup codex --write`または`kyoso setup claude-code --write`を実行します。
77
-
78
- ### Claude Only / Codex Only
79
-
80
- Kyoso は Claude だけ、または Codex だけでも実行できます。利用できない backend は `kyoso.toml` で無効化してください。例は `examples/claude-only.toml` と `examples/codex-only.toml` にあります。
81
-
82
- single-agent mode では、残った backend が `combined_reviewer` として 1 回だけ実行され、implementation と architecture/security の両方を確認します。JSON output には `reviewMode: "single_agent"` と `agentsUsed` が入り、Markdown output には cross-model verification が行われていないことと disagreements が N/A であることを表示します。
83
-
84
- この mode では独立した cross-model validation はなく、自己レビュー bias が残ります。一方で、別プロセスの read-only review、temporary snapshots、adversarial review prompts、secret scanning、deterministic gates は利用できます。
85
-
86
75
  ### Claude Code
87
76
 
88
77
  1. Claude 認証を準備します。
@@ -141,31 +130,7 @@ codex plugin add kyoso@kyoso
141
130
 
142
131
  Codex desktopのPlugins pageまたは`/plugins`からKyosoを選ぶこともできます。追加したMarketplaceが見えない場合はdesktop appをrefresh/restartしてください。確認は`codex plugin list --marketplace kyoso --json`、削除は`codex plugin remove kyoso@kyoso`です。Plugin で導入した場合、`kyoso setup codex` は不要です。
143
132
 
144
- Codex Auto modeでは、approvalが必要なKyoso toolの呼び出しが拒否されることがあります。個人設定で事前承認するには、次を`~/.codex/config.toml`(`CODEX_HOME`を設定している場合は`$CODEX_HOME/config.toml`)へ追加します。**Kyosoを信頼し、選択したコードとレビュー用contextが設定済みの外部model providerへ送信されることを許容できる場合だけ設定してください。** Pluginの既定値では有効にしていません。
145
-
146
- ```toml
147
- [plugins."kyoso@kyoso".mcp_servers.kyoso.tools.diff_review]
148
- approval_mode = "approve"
149
-
150
- [plugins."kyoso@kyoso".mcp_servers.kyoso.tools.plan_review]
151
- approval_mode = "approve"
152
-
153
- [plugins."kyoso@kyoso".mcp_servers.kyoso.tools.security_review]
154
- approval_mode = "approve"
155
- ```
156
-
157
- Pluginではなく、MCP serverとして直接登録している場合(`kyoso setup codex --write` または手動設定)は、`plugins."kyoso@kyoso".` プレフィックスなしの `mcp_servers.kyoso` キーを使用します。
158
-
159
- ```toml
160
- [mcp_servers.kyoso.tools.diff_review]
161
- approval_mode = "approve"
162
-
163
- [mcp_servers.kyoso.tools.plan_review]
164
- approval_mode = "approve"
165
-
166
- [mcp_servers.kyoso.tools.security_review]
167
- approval_mode = "approve"
168
- ```
133
+ Codex Auto modeでは、approvalが必要なKyoso toolの呼び出しが拒否されることがあります。個人設定で事前承認する方法は [Codex approval prompts](#codex-approval-prompts) を参照してください。
169
134
 
170
135
  3. または、MCP を登録して review skill をインストールします。
171
136
 
@@ -189,34 +154,9 @@ Use Kyoso diff_review on the current diff. I need a second opinion before mergin
189
154
 
190
155
  手動セットアップ用の例は `examples/codex-config.toml` と `examples/claude-code-mcp.json` にあります。
191
156
 
192
- ## Install / Run
193
-
194
- ```bash
195
- npx @kyo-so/cli mcp
196
- bunx @kyo-so/cli mcp
197
- ```
198
-
199
- Naming note: npm パッケージは `@kyo-so/cli` (製品名 Kyo-so に対応) で、インストールされる CLI コマンドは短い `kyoso` です。
200
-
201
- ローカル開発:
202
-
203
- ```bash
204
- nix develop
205
- safe-chain bun install
206
- safe-chain bun run typecheck
207
- safe-chain bun test
208
- safe-chain bun run build
209
- ```
210
-
211
- パッケージ化された CLI を実行するには Node.js 20 以降が必要です。
212
-
213
- Nix dev shell は Node.js 24 と nixpkgs が提供する Bun version を固定します。`.envrc` を確認してから `direnv allow` を一度実行すると、自動で shell を読み込めます。CI は Bun 1.3.14 に pin したままです。現在の nixpkgs Bun version は少し異なる場合がありますが、`flake.lock` により local shell の再現性を保ちます。
214
-
215
- 既知の配布リスク: `@modelcontextprotocol/server` にはまだ stable release がありません。Kyoso は現在 prerelease API を pin しているため、MCP SDK API の変更に追従する follow-up release が必要になる場合があります。
216
-
217
157
  ## CLI
218
158
 
219
- 通常の実行経路は `npx @kyo-so/cli` と `bunx @kyo-so/cli` です。以下の例では、この prefix を `kyoso` と省略しています。
159
+ 通常の実行経路は `npx @kyo-so/cli` と `bunx @kyo-so/cli` です。以下の例では、この prefix を `kyoso` と省略しています。Naming note: npm パッケージは `@kyo-so/cli` (製品名 Kyo-so に対応) で、インストールされる CLI コマンドは短い `kyoso` です。
220
160
 
221
161
  ```bash
222
162
  kyoso plan --goal "Review this OAuth callback plan" --plan plan.md
@@ -298,45 +238,44 @@ Skillは利用可能な最初の経路を使います。順序はKyoso MCP tools
298
238
 
299
239
  managed installはcanonical directoryのdigestとCLI versionを`.kyoso-install.json`へ記録します。現行または既知historical copyはadoptして自動更新します。変更済み/未知のcopyはconflictとして残し、上書きしません。`--force`はそのSkill directoryだけを置換し、MCP設定を削除・上書きしません。
300
240
 
301
- ## Safety Model
302
-
303
- Kyoso MVP は disposable temporary snapshot と policy-level write denial を使用します。完全な OS sandbox ではありません。リスクを理解していない場合、untrusted repositories に対して Kyoso を実行しないでください。
304
-
305
- Secret detection は best-effort です。Kyoso は request、selected files、diff 内で secret らしき値を検出すると、その値を redact し、既定では backend agents の実行前に block します。
306
-
307
- Kyoso は provider credentials を保存しません。Child agent environment variables は allowlist されます。
308
-
309
- Repository content、plans、diffs、selected files は backend prompts 内で untrusted data として扱われます。Kyoso はそれらを `<untrusted-content>` tags で包み、その中にある instructions に従わないよう agents に指示します。最終判断は schema-constrained findings から導出されます。agents は files の書き込みや commands の実行ができず、judge は deterministic decision を変更できません。
241
+ ## Configuration
310
242
 
311
- Finding title aggregation のため簡潔な英語に正規化されます。evidence、recommendations、summaries はユーザーの言語のままで構いません。
243
+ ### Files and precedence
312
244
 
313
- Audit trace workspace が制御するpathではなく、trusted user state root 配下へ書き込みます。対応するPOSIX runtimeでは、absoluteな`$XDG_STATE_HOME`が利用可能ならそれを、そうでなければ`$HOME/.local/state`を使用し、owner、permission、containment、symlinkを確認できた場合だけ書き込みます。検証またはsafe openに失敗した場合、別locationへ黙ってfallbackせず、そのreviewのAudit writeを無効化してsanitized warningを返し、review自体は継続します。
245
+ Kyoso は次の順に config load します。
314
246
 
315
- Windows、および必要なfilesystem capabilityを証明できない環境では、Audit writeをfail-closeで無効化します。trusted state rootを変更できる、または検証済みinodeをrenameできるsame OS user権限のhostile processはこの保証の対象外です。この脅威にはOS sandboxまたはnative dirfd-based supportが必要です。
247
+ - built-in defaults
248
+ - user global TOML: `$XDG_CONFIG_HOME/kyoso/config.toml`、または `~/.config/kyoso/config.toml`
249
+ - project TOML: `<cwd>/kyoso.toml`
250
+ - `--network` などの CLI flags と `--set agents.claude.effort=high` などの反復可能な overrides
316
251
 
317
- ## Agent Auth
252
+ `plan`、`security`、`diff` は、反復可能な `--set <key>=<value>` overrides を受け付けます。CLI で指定した値は config files より優先され、`--ignore-config` との併用も可能です。
318
253
 
319
- Codex は利用可能な場合、local `codex` login を使用します。既定の subscription-backed path では API key は不要です。
254
+ 未知の key は拒否されます。boolean / numeric config keys schema の型へ変換し、string keys は文字列のまま保持した後、config 全体を再検証します。
320
255
 
321
- Claude2 つの auth paths をサポートします。
256
+ Project `kyoso.toml` declarative で、trust approval は不要です。tools toggles、agent `enabled` / `model` / `effort` / `role` / `timeoutMs`、user global authorization後のCodex専用`provider`または継承したOpenRouterのmodel上書き、workspace byte limits と additive `workspace.deny`、verification settings、advisory judge settings、tightening-only security/network settings を設定できます。
322
257
 
323
- - `ANTHROPIC_API_KEY`: direct Anthropic API billing
324
- - `CLAUDE_CODE_OAUTH_TOKEN`: `claude setup-token` から得る subscription auth
258
+ Global TOML command 実行や env forwarding を含む user-owned settings 用です。
325
259
 
326
- Claude credentials が両方設定されている場合、Kyoso は既定で `CLAUDE_CODE_OAUTH_TOKEN` だけを Claude child agent に forward します。`ANTHROPIC_API_KEY` だけを forward するには、`agents.claude.auth.preferApiKey: true` を設定してください。
260
+ ```toml
261
+ [agents.codex]
262
+ command = "bunx"
263
+ args = ["@agentclientprotocol/codex-acp"]
264
+ # この完全一致のproject directoryだけに`provider`選択、または継承した
265
+ # OpenRouterのmodel上書きを許可します。
266
+ allowProjectProvider = ["/absolute/path/to/project"]
327
267
 
328
- Default child-agent env allowlist:
268
+ [agents.codex.env]
269
+ CODEX_CONFIG = '{"model":"gpt-5.5"}'
270
+ ```
329
271
 
330
- | Agent | Provider env |
331
- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
332
- | Codex | `CODEX_API_KEY`, `OPENAI_API_KEY`, `CODEX_HOME`, `CODEX_ACCESS_TOKEN` |
333
- | Claude | `ANTHROPIC_API_KEY`, `CLAUDE_CODE_OAUTH_TOKEN`, `ANTHROPIC_MODEL`, `ANTHROPIC_BASE_URL`, `CLAUDE_CONFIG_DIR`, `CLAUDE_CODE_USE_BEDROCK`, `CLAUDE_CODE_USE_VERTEX`, `CLAUDE_CODE_USE_FOUNDRY` |
272
+ `kyoso.config.ts` deprecated ですが、互換性のため引き続き supported です。trust-on-first-use approval の後にのみ load され、trusted hashes は `~/.kyoso/trusted-configs.json` に保存されます。`kyoso.toml` と `kyoso.config.ts` が両方ある場合、Kyoso は TOML を使用し TypeScript config を無視します。
334
273
 
335
- Kyoso は subprocesses の起動に必要な最小限の runtime env も forward します: `PATH`, `HOME`, `TMPDIR`, `TEMP`, `TMP`, `LANG`, `LC_ALL`, `SHELL`, `USER`, `USERNAME`, `SystemRoot`。
274
+ ### Agents
336
275
 
337
- ## Agent Models and Effort
276
+ Agent keys: `agents.<codex|claude>.<enabled|model|effort|role|timeoutMs>`。Codexには`agents.codex.provider`もあり、`"openrouter"`はexternal providerを選択し、`"default"`は継承したOpenRouter選択を通常のCodex behaviorへ戻します。Claudeにprovider設定はありません。`agents.codex.allowProjectProvider`はglobal config専用のabsolute project directory allowlistです。完全一致のproject TOMLだけが`provider`を選択、または継承したOpenRouterの`model`を上書きでき、descendantやglobには一致しません。project configと`--set`では変更できず、legacy boolean値は拒否します。`command` / `args` / `env`もglobal config専用です([Files and precedence](#files-and-precedence) を参照)。
338
277
 
339
- `agents.<name>.model` または `agents.<name>.effort` を省略すると、各 agent 独自の default を使用します。Codex は `~/.codex/config.toml` などの local Codex config を使用し、Claude は adapter default を使用します。
278
+ `agents.<name>.model` または `agents.<name>.effort` を省略すると、各 agent 独自の default を使用します。Codex は `~/.codex/config.toml`(`CODEX_HOME`を設定している場合は`$CODEX_HOME/config.toml`)などの local Codex config を使用し、Claude は adapter default を使用します。
340
279
 
341
280
  指定できる model 名は [Claude models overview](https://platform.claude.com/docs/en/about-claude/models/overview) と [Codex models](https://developers.openai.com/codex/models) を参照してください。
342
281
 
@@ -357,53 +296,116 @@ Kyoso は model pins を adapter-supported configuration に mapping します
357
296
 
358
297
  effort は仕組みが異なります。Kyoso は env var を設定せず、session ごとに最初の prompt の前に一度、backend agent へ ACP の `session/set_config_option` リクエストを送信します(Claude は `configId: "effort"`、Codex は `configId: "reasoning_effort"`)。有効な値は backend agent のバージョンと選択した model に依存します(例えば Claude は effort levels に対応した model でのみこの option を公開します)。Kyoso は `effort` の値自体を validate しません。backend agent がリクエストを reject した場合、または対応していない場合、Kyoso は stderr に log を出力してレビューを継続します。
359
298
 
360
- ## Audit
299
+ ### Codex の OpenRouter project opt-in
361
300
 
362
- 対応するPOSIX runtimeでは、Audit traces はuser state base(absoluteな`$XDG_STATE_HOME`、なければ`$HOME/.local/state`)配下の次の場所に書き込まれます。
301
+ まずuser global configでproject-level OpenRouter routingを許可します。
363
302
 
364
- ```text
365
- <state-base>/kyoso/workspaces/<sha256(realpath(cwd))>/<logical audit.directory>/<yyyy-mm-dd>/<traceId>.jsonl
303
+ ```toml
304
+ # ~/.config/kyoso/config.toml
305
+ [agents.codex]
306
+ allowProjectProvider = ["/absolute/path/to/project"]
366
307
  ```
367
308
 
368
- `audit.directory`はlogicalなrelative directory(既定: `.kyoso/traces`)であり、workspace内のdirectoryではありません。既存のworkspace `.kyoso/traces`は自動で移行・削除されません。
309
+ 続けてOpenRouterが必要なprojectだけでopt-inします。
369
310
 
370
- Raw agent output と raw file contents は既定で無効です。`audit.includeRawAgentOutput`を有効にすると、traces に sensitive review output が残る場合があります。local retention policy に従って古い traces を削除してください。Windowsまたは安全なfilesystem capabilityを証明できない環境では、Audit trace writeは無効のままで、reviewはsanitized warningを返します。
311
+ ```toml
312
+ # <project>/kyoso.toml
313
+ [agents.codex]
314
+ provider = "openrouter"
315
+ model = "openai/o4-mini"
316
+ ```
371
317
 
372
- ## Config
318
+ `provider = "openrouter"` の場合、`model`は空白でない値が必須です。これはOpenRouterのmodel IDです。Kyosoはcatalogやtool calling対応を検証しないため、利用するmodelのtool supportはproviderで確認してください。
373
319
 
374
- Kyoso は次の順に config load します。
320
+ `allowProjectProvider`はprojectの`provider`と、OpenRouterを継承中のproject `model`上書きに必要で、listには解決後のproject config fileを含むcanonical directoryのabsolute pathを完全一致で指定します。invocationのcwdやlexical pathではありません。trusted `kyoso.config.ts`を含むproject config fileとallowlist entryの両方をsymlink経由も含めて同じdirectoryのreal pathへ解決して比較するため、そのdirectoryへ解決されるentryは一致し、別の場所へ解決されるentryまたは解決できないpathはfail closedです。user globalの`provider = "openrouter"`にはallowlist entryは不要です。CLIで選択する場合は、同一 invocation に`--set agents.codex.provider=openrouter`と`--set agents.codex.model=<model>`の両方が必要であり、project modelで前者を補完することはできません。`allowProjectProvider`は`--set` pathではなく、legacy boolean値は拒否されます。
375
321
 
376
- - built-in defaults
377
- - user global TOML: `$XDG_CONFIG_HOME/kyoso/config.toml`、または `~/.config/kyoso/config.toml`
378
- - project TOML: `<cwd>/kyoso.toml`
379
- - `--network` などの CLI flags と `--set agents.claude.effort=high` などの反復可能な overrides
322
+ user global configがOpenRouterを選択している場合、projectは`provider = "default"`で明示的にopt-outできます。このresetにはmodelもauthorizationも不要で、同じlayerで通常のCodex modelを明示しない限り継承したOpenRouter modelも消去し、そのprojectではOpenRouter keyをforwardしません。
380
323
 
381
- `plan`、`security`、`diff` は、反復可能な `--set <key>=<value>` overrides を受け付けます。CLI で指定した値は config files より優先され、`--ignore-config` との併用も可能です。
324
+ Kyosoを起動するCodexまたはClaude client processのenvironmentにkeyを設定します。直接のenvironment variableをprimary pathとし、1Passwordなどのsecret managerはoptionalでKyosoの依存ではありません。
382
325
 
383
- - Agent keys: `agents.<codex|claude>.<enabled|model|effort|role|timeoutMs>`
384
- - Verification keys: `verification.<enabled|maxFindings|timeoutMs>`
385
- - Judge keys: `judge.<mode|provider|timeoutMs>`
326
+ ```bash
327
+ export OPENROUTER_API_KEY="<secret>"
328
+ ```
386
329
 
387
- 未知の key は拒否されます。boolean / numeric config keys schema の型へ変換し、string keys は文字列のまま保持した後、config 全体を再検証します。
330
+ keyは`kyoso.toml`、Git管理するconfig、Audit trace、review outputへ保存しません。KyosoはKyoso processまたは明示した`agents.codex.env`のいずれのsourceであっても、このproviderを選択した場合だけCodex childへ転送します。`provider`を省略するか`provider = "default"`の場合は、両方のsourceを意図的に転送しません。空でない明示的な`agents.codex.env.OPENROUTER_API_KEY`は、転送しなかったことを示すsanitized warningも出します。選択されたCodex OpenRouter childだけがkeyを受け取れるため、`agents.claude.env`など別のchild configurationに空でないkeyがある場合も同じwarningを出します。`provider`を省略すると既存のCodex login、`OPENAI_API_KEY`、`CODEX_API_KEY`、`CODEX_CONFIG`の挙動を維持し、行を削除するとその挙動へ戻ります。
388
331
 
389
- Project `kyoso.toml` declarative で、trust approval は不要です。tools toggles、agent `enabled` / `model` / `effort` / `role` / `timeoutMs`、workspace byte limits と additive `workspace.deny`、verification settings、advisory judge settings、tightening-only security/network settings を設定できます。
332
+ GUI clientshell exportを継承しない場合があります。新規manual MCP registrationは`kyoso setup <client> --write --with-openrouter`で作成し、clientを再起動してから`kyoso doctor`でKyoso processがkeyを検出できるか確認してください。`kyoso setup`は既存のMCP entryを再書換えせずに保持するため、既存registrationでは[examples](examples/codex-config.toml)を参照してopt-in allowlistを手動更新する必要があります。
390
333
 
391
- Global TOML command 実行や env forwarding を含む user-owned settings 用です。
334
+ 新規manual MCP registrationは既定で`OPENROUTER_API_KEY`を含めません。providerを意図して選択した後だけ`--with-openrouter`で追加し、既存registrationは書換えません。Claude Code registrationの`${OPENROUTER_API_KEY}`はclientが展開する必要があり、Kyosoは`${NAME}`、`$NAME`、`%NAME%`(前後の空白は許容)だけから成る未展開credential placeholderだけを無視し、変数名だけを含むsanitized warningを出します。ほかの文字列を含む値は維持します。custom credential-like nameの末尾が`_KEY`、`_TOKEN`、`_SECRET`、`_PASSWORD`である場合にも同じ規則を適用し、credentialではないtemplateは維持されます。
392
335
 
393
- ```toml
394
- [agents.codex]
395
- command = "bunx"
396
- args = ["@agentclientprotocol/codex-acp"]
336
+ このuser-authorized project-scoped opt-inを推奨します。global `provider = "openrouter"`は、projectが`provider = "default"`を設定するまで継承されます。`provider`の省略だけでは解除されません。固定のOpenRouter Responses API presetはbetaです。custom endpoint、provider routing、fallback、judge integrationは公開しません。keyをこのpresetに束縛するため、OpenRouter modeではtop-levelの`profile`または`profiles`を含む`CODEX_CONFIG`と、objectではない`model_providers` valueをchild起動前に拒否します。objectの場合は`model_providers`を固定の`kyoso-openrouter` entryだけに置換し、破棄したentry数だけを含むsanitized warningを出します。provider IDやconfig valueは出力しません。拒否するfield以外では、`model`、`model_provider`、`model_providers`以外のunrelatedな`CODEX_CONFIG` fieldを維持するため、foreign provider configurationがkey付きのendpointを選択することはできません。Claudeは設定済みproviderのままで、judgeは`OPENROUTER_API_KEY`を使用しません。
397
337
 
398
- [agents.codex.env]
399
- CODEX_CONFIG = '{"model":"gpt-5.5"}'
338
+ user global authorization後、projectの`kyoso.toml`はexternal providerを選択、または継承したOpenRouter modelを上書きし、review contextをそこへ送ることがあります。untrusted repositoryでは`--ignore-config`を使用し、必要なCLI optionsだけを明示してください。
339
+
340
+ 実際のCodex ACP/OpenRouter smokeはrelease-gatedであり、testでは実行しません。networkと課金が明示許可された後だけ、client environmentへkeyをexportして次を実行します。
341
+
342
+ ```bash
343
+ KYOSO_OPENROUTER_ACP_SMOKE=release KYOSO_OPENROUTER_MODEL=<model> safe-chain bun run smoke:openrouter:codex-acp
400
344
  ```
401
345
 
402
- `kyoso.config.ts` deprecated ですが、互換性のため引き続き supported です。trust-on-first-use approval の後にのみ load され、trusted hashes は `~/.kyoso/trusted-configs.json` に保存されます。`kyoso.toml` と `kyoso.config.ts` が両方ある場合、Kyoso は TOML を使用し TypeScript config を無視します。
346
+ このcommandCLI argumentsを受け付けず、pinしたCodex ACP adapterを使います。呼び出し元のrepositoryやcached Codex loginを利用しないよう、空のtemporary workspace、`HOME`、`CODEX_HOME`を新規作成し、key/modelをconfig・temporary artifact・outputへ書かずに固定の成功または失敗メッセージだけを返します。
347
+
348
+ ### Agent auth
349
+
350
+ Codex は利用可能な場合、local `codex` login を使用します。既定の subscription-backed path では API key は不要です。
351
+
352
+ Claude は 2 つの auth paths をサポートします。
353
+
354
+ - `ANTHROPIC_API_KEY`: direct Anthropic API billing
355
+ - `CLAUDE_CODE_OAUTH_TOKEN`: `claude setup-token` から得る subscription auth
356
+
357
+ Claude credentials が両方設定されている場合、Kyoso は既定で `CLAUDE_CODE_OAUTH_TOKEN` だけを Claude child agent に forward します。`ANTHROPIC_API_KEY` だけを forward するには、`agents.claude.auth.preferApiKey: true` を設定してください。
358
+
359
+ Default child-agent env allowlist:
360
+
361
+ | Agent | Provider env |
362
+ | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
363
+ | Codex | `CODEX_API_KEY`, `OPENAI_API_KEY`, `CODEX_HOME`, `CODEX_ACCESS_TOKEN` |
364
+ | Claude | `ANTHROPIC_API_KEY`, `CLAUDE_CODE_OAUTH_TOKEN`, `ANTHROPIC_MODEL`, `ANTHROPIC_BASE_URL`, `CLAUDE_CONFIG_DIR`, `CLAUDE_CODE_USE_BEDROCK`, `CLAUDE_CODE_USE_VERTEX`, `CLAUDE_CODE_USE_FOUNDRY` |
365
+
366
+ `OPENROUTER_API_KEY`は通常のCodex allowlistには意図的に含めません。`agents.codex.provider = "openrouter"`の場合だけKyoso processからcopyし、keyがないか空の場合はCodex childを起動せず、構造化されたagent failureとして返します。別reviewerはdegraded modeで継続できます。
367
+
368
+ 資格情報露出を最小化するため、OpenRouter modeでは`OPENAI_API_KEY`、`CODEX_API_KEY`、`CODEX_ACCESS_TOKEN`をCodex childから除外します。local adapter state用に`CODEX_HOME`は残ります。そのためadapterはlocal login cacheを読み取れ、これはcredential isolationではなくdefense in depthです。
369
+
370
+ Kyoso は subprocesses の起動に必要な最小限の runtime env も forward します: `PATH`, `HOME`, `TMPDIR`, `TEMP`, `TMP`, `LANG`, `LC_ALL`, `SHELL`, `USER`, `USERNAME`, `SystemRoot`。
371
+
372
+ Subscription-only setup:
373
+
374
+ - Codex: local `codex` login を使用
375
+ - Claude: `claude setup-token` を実行し、`CLAUDE_CODE_OAUTH_TOKEN` を設定
376
+ - Judge: default の `deterministic_only` mode は API key を必要としません([Judge](#judge) を参照)
377
+ - 明示的な LLM judge opt-in を無効化するには、`judge.mode = "deterministic_only"` または `judge.provider = "none"` を設定
378
+
379
+ Team admins は organization Usage credits も確認してください。Credits が有効な場合、subscription limits を超える billing behavior は Kyoso の外側で制御されます。
403
380
 
404
- Default agent timeouts は Codex 120 秒、Claude 300 秒です。MCP clients は tool calls に少なくとも 360 秒を許可してください。`verification.enabled` が true の場合、Kyoso は追加の cross-agent verification round を実行することがあるため、少なくとも 480 秒を許可してください。
381
+ ### Single-backend mode
405
382
 
406
- Optional finding verificationdefault disabled です:
383
+ Kyoso Claude だけ、または Codex だけでも実行できます。利用できない backend `kyoso.toml` で無効化してください。例は `examples/claude-only.toml` と `examples/codex-only.toml` にあります。
384
+
385
+ single-agent mode では、残った backend が `combined_reviewer` として 1 回だけ実行され、implementation と architecture/security の両方を確認します。JSON output には `reviewMode: "single_agent"` と `agentsUsed` が入り、Markdown output には cross-model verification が行われていないことと disagreements が N/A であることを表示します。
386
+
387
+ この mode では独立した cross-model validation はなく、自己レビュー bias が残ります。一方で、別プロセスの read-only review、temporary snapshots、adversarial review prompts、secret scanning、deterministic gates は利用できます。
388
+
389
+ ### Execution budget and review stopping
390
+
391
+ 各 review には、model call数、総 wall time、streaming中のagent text(message / thought chunk)、agentあたりのfinding数に user-global の hard ceiling があります。
392
+
393
+ ```toml
394
+ [reviewBudget]
395
+ maxModelCalls = 4
396
+ maxTotalWallTimeMs = 480000
397
+ maxAgentOutputBytes = 65536
398
+ maxFindingsPerAgent = 10
399
+ skipOptionalPhasesWhenTokenUsageUnknown = true
400
+ ```
401
+
402
+ `reviewBudget` は user-global 専用です。project `kyoso.toml` と `--set` では変更できません。MCP / library request は `options.reviewBudget` で ceiling を下げることだけができ、引き上げはできません。Kyoso は primary reviewer を両方予約してから開始し、残りのcallだけを verification に使い、LLM Judge は advisory として扱います。既定のJudge modeは `deterministic_only` です。
403
+
404
+ 結果には `completion`、`executionBudget`、`requestFingerprint` が含まれます。Markdown と Audit は call数、wall time、output bytes、reported / unknown token usage を示します。`completion.status` が `incomplete` の場合、Kyoso は `retryable: false` の通常の `block` 結果を返します。これは code defect の断定ではなく、review coverage が未完了であることを意味します。同じ fingerprint を自動 retry しないでください。同一review checkpointでは、bundled Skill は初回1 passと material fix後の確認1 passだけを許可し、3回目には明示的な user approval が必要です。
405
+
406
+ ### Verification
407
+
408
+ Verification keys: `verification.<enabled|maxFindings|timeoutMs>`。Optional finding verification は default で disabled です:
407
409
 
408
410
  ```toml
409
411
  [verification]
@@ -414,9 +416,11 @@ timeoutMs = 90000
414
416
  allowDemotion = false
415
417
  ```
416
418
 
417
- Enabled の場合、Kyoso は high/critical かつ single-source の各 finding について、その finding を報告していない agent に反証を試みさせます。Phase 1 は annotate-only です。verification は finding confidence と notes を更新できますが、severity final decision は変更しません。`allowDemotion` は future opt-in phase 用に予約されており、現時点では no-op です。
419
+ Enabled の場合、Kyoso は high/critical かつ single-source の各 finding について、その finding を報告していない agent に反証を試みさせます。Phase 1 は annotate-only で、verification は finding confidence と notes を更新できますが、severity は変更しません。verification skip / fail / budget不足 / overflow の場合は finding を `not_verified` にし、coverage incomplete を返します。`allowDemotion` は future opt-in phase 用に予約されており、現時点では no-op です。
418
420
 
419
- Judge LLMs は optional です。OpenAI judge を使うには `OPENAI_API_KEY` または `CODEX_API_KEY` を設定し、Anthropic judge を使うには `ANTHROPIC_API_KEY` を設定します。Optional overrides:
421
+ ### Judge
422
+
423
+ Judge keys: `judge.<mode|provider|timeoutMs>`。Judge LLMs は optional で、default は `mode = "deterministic_only"` です。credential だけでは judge call を開始しません。OpenAI judge は `mode = "deterministic_plus_llm"` と `OPENAI_API_KEY` または `CODEX_API_KEY`、Anthropic judge は同modeと `ANTHROPIC_API_KEY` を設定します。Optional overrides:
420
424
 
421
425
  - `OPENAI_BASE_URL`: OpenAI-compatible API base URL
422
426
  - `KYOSO_OPENAI_JUDGE_MODEL`: OpenAI judge model, default `gpt-5.4-mini`
@@ -424,23 +428,101 @@ Judge LLMs は optional です。OpenAI judge を使うには `OPENAI_API_KEY`
424
428
 
425
429
  Judge defaults は意図的に lightweight models を使用します。より強い judge を使う場合は、`KYOSO_ANTHROPIC_JUDGE_MODEL` に `claude-sonnet-5` のような Sonnet-class model を設定してください。
426
430
 
427
- Subscription-only setup:
431
+ ### Timeouts
428
432
 
429
- - Codex: local `codex` login を使用
430
- - Claude: `claude setup-token` を実行し、`CLAUDE_CODE_OAUTH_TOKEN` を設定
431
- - Judge: API keys を設定しないことで、Kyoso は `deterministic_fallback` を使用
432
- - `OPENAI_API_KEY` が存在するときに OpenAI judge calls を避けるには、`judge.provider = "none"` を設定
433
+ Default agent timeouts は Codex 120 秒、Claude 300 秒です。verification round の default は 90 秒です。review全体のdeadlineは既定480秒で、各phaseはdeadlineを延長せず残り時間を使います。MCP clients は tool calls に少なくとも480秒を許可してください。
433
434
 
434
- Team admins は organization Usage credits も確認してください。Credits が有効な場合、subscription limits を超える billing behavior は Kyoso の外側で制御されます。
435
+ ### Audit
436
+
437
+ 対応するPOSIX runtimeでは、Audit traces はuser state base(absoluteな`$XDG_STATE_HOME`、なければ`$HOME/.local/state`)配下の次の場所に書き込まれます。
438
+
439
+ ```text
440
+ <state-base>/kyoso/workspaces/<sha256(realpath(cwd))>/<logical audit.directory>/<yyyy-mm-dd>/<traceId>.jsonl
441
+ ```
442
+
443
+ `audit.directory`はlogicalなrelative directory(既定: `.kyoso/traces`)であり、workspace内のdirectoryではありません。既存のworkspace `.kyoso/traces`は自動で移行・削除されません。
444
+
445
+ Raw agent output と raw file contents は既定で無効です。`audit.includeRawAgentOutput`を有効にすると、traces に sensitive review output が残る場合があります。local retention policy に従って古い traces を削除してください。Windowsまたは安全なfilesystem capabilityを証明できない環境では、Audit trace writeは無効のままで、reviewはsanitized warningを返します([Safety Model](#safety-model) を参照)。
446
+
447
+ ## Safety Model
448
+
449
+ Kyoso MVP は disposable temporary snapshot と policy-level write denial を使用します。完全な OS sandbox ではありません。リスクを理解していない場合、untrusted repositories に対して Kyoso を実行しないでください。
450
+
451
+ Secret detection は best-effort です。Kyoso は request、selected files、diff 内で secret らしき値を検出すると、その値を redact し、既定では backend agents の実行前に block します。
452
+
453
+ Kyoso は provider credentials を保存しません。Child agent environment variables は allowlist されます。
454
+
455
+ Repository content、plans、diffs、selected files は backend prompts 内で untrusted data として扱われます。Kyoso はそれらを `<untrusted-content>` tags で包み、その中にある instructions に従わないよう agents に指示します。最終判断は schema-constrained findings から導出されます。agents は files の書き込みや commands の実行ができず、judge は deterministic decision を変更できません。
456
+
457
+ Finding title は aggregation のため簡潔な英語に正規化されます。evidence、recommendations、summaries はユーザーの言語のままで構いません。
458
+
459
+ Audit trace は workspace が制御するpathではなく、trusted user state root 配下へ書き込みます。対応するPOSIX runtimeでは、absoluteな`$XDG_STATE_HOME`が利用可能ならそれを、そうでなければ`$HOME/.local/state`を使用し、owner、permission、containment、symlinkを確認できた場合だけ書き込みます。検証またはsafe openに失敗した場合、別locationへ黙ってfallbackせず、そのreviewのAudit writeを無効化してsanitized warningを返し、review自体は継続します。
460
+
461
+ Windows、および必要なfilesystem capabilityを証明できない環境では、Audit writeをfail-closeで無効化します。trusted state rootを変更できる、または検証済みinodeをrenameできるsame OS user権限のhostile processはこの保証の対象外です。この脅威にはOS sandboxまたはnative dirfd-based supportが必要です。
462
+
463
+ ## 移行
464
+
465
+ - 手動MCPからCLI+Skill: CLIとSkillを先に導入し、`codex mcp remove kyoso`または`claude mcp remove kyoso --scope local|project|user`を実行します。
466
+ - CLI+SkillからPlugin: Pluginを追加してenabledを確認してから、手動MCP登録を削除します。手動コピーSkillは自動削除しません。
467
+ - PluginからCLI+Skill: CLIとSkillを先に導入し、`codex plugin remove kyoso@kyoso`を実行します。
468
+ - CLI+Skillから手動MCPへ戻す: `kyoso setup codex --write`または`kyoso setup claude-code --write`を実行します。
435
469
 
436
470
  ## Troubleshooting
437
471
 
438
- - MCP timeout: client tool timeouts を少なくとも 360 秒、`verification.enabled` が true の場合は少なくとも 480 秒に設定してください。Kyoso defaults は Codex 120 秒、Claude 300 秒、verification 90 秒です。
472
+ - MCP timeout: client tool timeouts を少なくとも 360 秒、`verification.enabled` が true の場合は少なくとも 480 秒に設定してください。Kyoso defaults は [Timeouts](#timeouts) を参照してください。
439
473
  - Fresh npm release: safe-chain などの minimum-package-age protection により、publish 直後は `npx @kyo-so/cli` の解決が一時的に block される場合があります。
440
474
  - Deprecated TypeScript config: `--trust-config` を渡さない限り、untrusted `kyoso.config.ts` は skip されます。新規設定は `kyoso.toml` を使ってください。
475
+ - OpenRouter key missing: 空でないCodex `model`、Kyoso processへ転送された`OPENROUTER_API_KEY`、clientの再起動を確認し、`kyoso doctor`を実行してください。Marketplace Plugin `0.4.0`以降はこの変数名をKyoso processへ転送し、それ以前のversionは転送しません。既存MCP registrationはsetupで再書換えされません。
476
+
477
+ ### Codex approval prompts
478
+
479
+ Codex Auto modeでは、approvalが必要なKyoso toolの呼び出しが拒否されることがあります。個人設定で事前承認するには、次を`~/.codex/config.toml`(`CODEX_HOME`を設定している場合は`$CODEX_HOME/config.toml`)へ追加します。**Kyosoを信頼し、選択したコードとレビュー用contextが設定済みの外部model providerへ送信されることを許容できる場合だけ設定してください。** Pluginの既定値では有効にしていません。
480
+
481
+ ```toml
482
+ [plugins."kyoso@kyoso".mcp_servers.kyoso.tools.diff_review]
483
+ approval_mode = "approve"
484
+
485
+ [plugins."kyoso@kyoso".mcp_servers.kyoso.tools.plan_review]
486
+ approval_mode = "approve"
487
+
488
+ [plugins."kyoso@kyoso".mcp_servers.kyoso.tools.security_review]
489
+ approval_mode = "approve"
490
+ ```
491
+
492
+ Pluginではなく、MCP serverとして直接登録している場合(`kyoso setup codex --write` または手動設定)は、`plugins."kyoso@kyoso".` プレフィックスなしの `mcp_servers.kyoso` キーを使用します。
493
+
494
+ ```toml
495
+ [mcp_servers.kyoso.tools.diff_review]
496
+ approval_mode = "approve"
497
+
498
+ [mcp_servers.kyoso.tools.plan_review]
499
+ approval_mode = "approve"
500
+
501
+ [mcp_servers.kyoso.tools.security_review]
502
+ approval_mode = "approve"
503
+ ```
441
504
 
442
505
  ## Development
443
506
 
507
+ ローカル開発:
508
+
509
+ ```bash
510
+ nix develop
511
+ safe-chain bun install
512
+ safe-chain bun run typecheck
513
+ safe-chain bun test
514
+ safe-chain bun run build
515
+ safe-chain bun run pack:verify
516
+ ```
517
+
518
+ Nix dev shell は Node.js 24 と nixpkgs が提供する Bun version を固定します。`.envrc` を確認してから `direnv allow` を一度実行すると、自動で shell を読み込めます。CI は Bun 1.3.14 に pin したままです。現在の nixpkgs Bun version は少し異なる場合がありますが、`flake.lock` により local shell の再現性を保ちます。
519
+
520
+ test suite は credential-free の MCP stdio と ACP subprocess の integration coverage を含みます。`pack:verify` はさらに、pack 済みの `dist/bin/kyoso.js` MCP server を起動し、published bundle の protocol handshake を確認します。
521
+
522
+ 既知の配布リスク: `@modelcontextprotocol/server` にはまだ stable release がありません。Kyoso は現在 prerelease API を pin しているため、MCP SDK API の変更に追従する follow-up release が必要になる場合があります。`@modelcontextprotocol/server`、`@agentclientprotocol/sdk`、または pin 済み ACP adapters を bump する release の前には、手動での real-agent dogfooding を実行してください。
523
+
524
+ Debug 用の environment variables:
525
+
444
526
  - `KYOSO_TEST_FAKE_AGENTS=1`: test-only fake ACP agents; production では設定しないでください。
445
527
  - `KYOSO_KEEP_TEMP=1`: local debugging 用に temporary snapshots を保持します。
446
528