pi-firecode 1.0.0 → 1.0.1

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 (93) hide show
  1. package/README.md +55 -41
  2. package/README.zh-CN.md +74 -0
  3. package/config.example.jsonc +21 -22
  4. package/dist/config.example.jsonc +90 -0
  5. package/dist/index.js +11464 -0
  6. package/dist/master/prompts/master.en.md +22 -0
  7. package/{master → dist/master}/prompts/master.zh.md +3 -3
  8. package/dist/master/prompts/worker.en.md +1 -0
  9. package/dist/watcher/prompts/watch.en.md +43 -0
  10. package/package.json +10 -27
  11. package/activity.ts +0 -92
  12. package/busy.ts +0 -188
  13. package/config.ts +0 -500
  14. package/deliver.ts +0 -119
  15. package/flame.ts +0 -149
  16. package/format.ts +0 -133
  17. package/header.ts +0 -218
  18. package/herdr-client.ts +0 -60
  19. package/index.ts +0 -68
  20. package/jsonc.ts +0 -34
  21. package/master/actions.ts +0 -293
  22. package/master/activity-list.ts +0 -281
  23. package/master/event-card.ts +0 -87
  24. package/master/event-format.ts +0 -83
  25. package/master/guard.ts +0 -46
  26. package/master/index.ts +0 -252
  27. package/master/list-view.ts +0 -129
  28. package/master/outbox.ts +0 -188
  29. package/master/prompt.ts +0 -26
  30. package/master/role.ts +0 -18
  31. package/master/run.ts +0 -315
  32. package/master/runtime.ts +0 -259
  33. package/master/spawn.ts +0 -234
  34. package/master/state.ts +0 -225
  35. package/master/worker-view.ts +0 -517
  36. package/provider/claude-sub.ts +0 -151
  37. package/provider/openai-native/index.ts +0 -8
  38. package/provider/openai-native/src/compact-client.ts +0 -350
  39. package/provider/openai-native/src/config.ts +0 -297
  40. package/provider/openai-native/src/extension.ts +0 -93
  41. package/provider/openai-native/src/native-compaction.ts +0 -151
  42. package/provider/openai-native/src/native-details.ts +0 -157
  43. package/provider/openai-native/src/native-replay.ts +0 -253
  44. package/provider/openai-native/src/native-runtime.ts +0 -144
  45. package/provider/openai-native/src/options.ts +0 -87
  46. package/provider/openai-native/src/request-pipeline.ts +0 -21
  47. package/provider/openai-native/src/responses-input.ts +0 -433
  48. package/review/advisor.ts +0 -110
  49. package/review/card.ts +0 -398
  50. package/review/checkpoint.ts +0 -378
  51. package/review/evidence.ts +0 -230
  52. package/review/index.ts +0 -992
  53. package/review/occupancy.ts +0 -25
  54. package/review/outcome.ts +0 -98
  55. package/review/prompt.ts +0 -209
  56. package/review/reviewer.ts +0 -353
  57. package/review/session.ts +0 -110
  58. package/review/state.ts +0 -877
  59. package/review/ui.ts +0 -89
  60. package/round-recorder.ts +0 -18
  61. package/session/herdr-display.ts +0 -87
  62. package/session/presets.ts +0 -300
  63. package/session/quota.ts +0 -123
  64. package/session/rename.ts +0 -46
  65. package/session/stats.ts +0 -313
  66. package/statusbar/index.ts +0 -256
  67. package/statusbar/render.ts +0 -113
  68. package/theme.ts +0 -45
  69. package/tools/actions.ts +0 -53
  70. package/tools/assistant-view.ts +0 -64
  71. package/tools/click-anchor.ts +0 -56
  72. package/tools/group-view.ts +0 -420
  73. package/tools/grouping.ts +0 -158
  74. package/tools/host.ts +0 -369
  75. package/tools/index.ts +0 -186
  76. package/tools/line.ts +0 -231
  77. package/tools/machine.ts +0 -78
  78. package/tools/parts.ts +0 -143
  79. package/tools/round.ts +0 -95
  80. package/tools/timing.ts +0 -22
  81. package/tools/turn-clock.ts +0 -41
  82. package/tools/turn-summary.ts +0 -109
  83. package/truncated-write.ts +0 -18
  84. package/watcher/card.ts +0 -91
  85. package/watcher/index.ts +0 -176
  86. package/watcher/observer.ts +0 -75
  87. package/watcher/transcript.ts +0 -56
  88. /package/{master → dist/master}/prompts/worker.zh.md +0 -0
  89. /package/{review → dist/review}/prompts/advisor.en.md +0 -0
  90. /package/{review → dist/review}/prompts/advisor.zh.md +0 -0
  91. /package/{review → dist/review}/prompts/review.en.md +0 -0
  92. /package/{review → dist/review}/prompts/review.zh.md +0 -0
  93. /package/{watcher → dist/watcher}/prompts/watch.zh.md +0 -0
package/README.md CHANGED
@@ -1,60 +1,74 @@
1
- # FireCode
1
+ <p align="center">
2
+ <picture>
3
+ <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/Suge8/firecode/main/design/brand/logo-dark.svg">
4
+ <img alt="firecode" src="https://raw.githubusercontent.com/Suge8/firecode/main/design/brand/logo-light.svg" height="72">
5
+ </picture>
6
+ </p>
2
7
 
3
- FireCode 是一个 Pi 扩展包:把会话状态嵌进输入框边框、把每轮过程折叠成一行摘要,并提供对抗审查、多子代理指挥与观察员。各功能独立开关,关掉任一个不影响其余。
8
+ <h3 align="center">Install one extension. Uninstall the rest.</h3>
4
9
 
5
- ```text
6
- ─ ⣾⣿⣷ 处理中 1m3s · ⠹ 审查 第2轮 1/3 · 1 阻断 ──────────── 观察员 指挥官 ─
7
- 输入区
8
- ─ 优化插件状态栏和工具展示 ───────────── gpt-6-astra/medium Fast · 42.3%/200k ─
9
- ```
10
+ <p align="center">Parallel sub-agents, multi-model code review and a cleaner terminal for <a href="https://pi.dev">Pi</a>. One install, works out of the box.</p>
10
11
 
11
- ## 安装
12
+ <p align="center">
13
+ <a href="https://www.npmjs.com/package/pi-firecode"><img alt="npm" src="https://img.shields.io/npm/v/pi-firecode?color=FF7A0F"></a>
14
+ <a href="https://github.com/Suge8/firecode/actions/workflows/ci.yml"><img alt="CI" src="https://github.com/Suge8/firecode/actions/workflows/ci.yml/badge.svg"></a>
15
+ <a href="LICENSE"><img alt="MIT" src="https://img.shields.io/badge/license-MIT-blue"></a>
16
+ · <a href="README.zh-CN.md">中文</a>
17
+ </p>
12
18
 
13
- ```bash
14
- pi install npm:pi-firecode
15
- ```
19
+ <p align="center"><img alt="The commander dispatching three sub-agents in parallel" src="https://raw.githubusercontent.com/Suge8/firecode/main/design/promo/hero.gif" width="860"></p>
16
20
 
17
- 需要 Pi 1.1.0 及以上,升级用 `pi update`。扩展拥有与 Pi 相同的本机权限,安装前请审阅源码。
21
+ ## Why FireCode
18
22
 
19
- ## 配置
23
+ - **Works out of the box.** The default config is the recommended one, in your language.
24
+ - **Sub-agents under control.** Run them in parallel, pick a model per role, switch automatically on failure, step in any time.
25
+ - **Hands-off review and delivery.** You don't babysit it. What reaches you has already passed review.
26
+ - **An ultra-light core.** Built the Pi way: minimal, so your context stays lean.
27
+ - **Low visual load.** Focus on the results that matter. Everything in between folds away until you open it.
20
28
 
21
- 配置不随包生效。把推荐模板复制到 Pi Agent 目录,再重启 Pi:
29
+ ## Fully automatic review and delivery
22
30
 
23
- ```bash
24
- agent_dir="${PI_CODING_AGENT_DIR:-$HOME/.pi/agent}"
25
- mkdir -p "$agent_dir/extensions/firecode"
26
- curl -fsSL https://unpkg.com/pi-firecode/config.example.jsonc -o "$agent_dir/extensions/firecode/config.jsonc"
27
- ```
31
+ Just tell the commander what you want. On important or hard tasks it starts an adversarial review on its own: any number of models you choose look for problems, every problem goes back to be fixed, and the fix is reviewed again until it passes. What reaches you is code that meets the bar and does what you asked. If it keeps getting stuck, an advisor model decides what to do next. You can also run `/fire-review` yourself at any time.
28
32
 
29
- - 模板里的模型一律写成 `"provider/model/thinking"`,换成你已登录的模型。
30
- - 审查、指挥官、观察员会真实调用配置里的模型;某一节配错时该功能拒绝启动并提示,不会改用默认模型。
31
- - 会额外花钱的:观察员每回合调用一次模型(模板里默认不自动开启);OpenAI 加速档按供应商规则加价。
32
- - 没有配置文件时,可选功能全部关闭,并在会话启动时提示。
33
+ <p align="center"><img alt="Round 1 fails, the agent fixes it, round 2 passes" src="https://raw.githubusercontent.com/Suge8/firecode/main/design/promo/review-loop.gif" width="760"></p>
33
34
 
34
- ## 功能
35
+ Other reviewers hand you a list of problems. FireCode hands you code that's fixed and re-reviewed:
35
36
 
36
- | 功能 | 入口 | 做什么 |
37
+ | | Reviewers | What you get |
37
38
  | --- | --- | --- |
38
- | 输入框状态 | 自动 | 上边框显示进行状态、计时与审查进度,下边框显示会话标题、模型、思考档与上下文占用 |
39
- | 过程折叠 | 自动;点摘要或 `Ctrl+O` 展开 | 每次输入折成一轮:一行摘要(耗时、均速)、最近 3 条中间回复的首句、最终回复全文 |
40
- | 预设 | `/preset`、预设里配的快捷键 | 一键切换模型、思考档、工具集与附加指令 |
41
- | 对抗审查 | `/fire-review` | 多个模型并行审查改动;没过自动修复再审,连续失败请顾问模型裁决 |
42
- | 指挥官 | `/fire-master`(新会话默认开启) | 按角色表把工作派给子代理并行执行;输入框上方列出子代理,点一行看它的全过程并可直接补话 |
43
- | 观察员 | `/fire-watch` | 每回合结束后用便宜模型评估新增内容,跑偏或过度工程时插话 |
44
- | 用量 | `/quota`、`/tokens` | 查 Claude、Codex 订阅剩余额度;统计本地会话的 token 与成本 |
45
- | 会话名 | `/rename`、`Ctrl+R` | 改当前会话名 |
46
- | OpenAI 请求层 | `Ctrl+F` 切加速档 | 回答详略、加速档、可选的 OpenAI 原生上下文压缩 |
47
- | Claude 订阅适配 | 自动 | 请求带 Claude Code 归因;令牌换发导致的 401 自动重试一次 |
39
+ | **FireCode** | Any number of models, reviewing adversarially | **Fixed code that passed re-review** |
40
+ | Qwen Code `/review` | Up to 16 agents, one model | A findings list; `--fix` patches once, no re-review |
41
+ | Open Code Review (Alibaba) | One model, file by file | A findings list to fix yourself |
42
+ | PR-Agent / Qodo | Specialist agents, one model | Comments and suggestions |
43
+ | multi-model-review (Pi) | Several model families | One combined verdict |
44
+
45
+ ## Clear sub-agent status
46
+
47
+ Every sub-agent sits above the input box. Click one to read its whole run and talk to it directly.
48
48
 
49
- 在配置的 `features` 里写 `false` 即可关闭对应功能,比如 `"features": { "watcher": false }`。
49
+ <p align="center"><img alt="A sub-agent's full run with a follow-up typed into its own input box" src="https://raw.githubusercontent.com/Suge8/firecode/main/design/promo/shot-worker-view.png" width="720"></p>
50
50
 
51
- ## 开发
51
+ ## An ultra-light core
52
52
 
53
- 需要 [Bun](https://bun.sh/) 和一份 pi-mono 源码:开发版 `pi` 在 `PATH` 中时测试会自动定位它,否则把 `PI_PACKAGES_DIR` 设为 pi-mono 的 `packages/` 目录。
53
+ Built the Pi way: sub-agents add just two small tools, and review and the watcher add none. Here is what sub-agent tools cost on every request (tool definitions sent to the model, measured October 2026):
54
+
55
+ | | Sub-agent tools | Characters |
56
+ | --- | --- | --- |
57
+ | **FireCode** | 2 | **926** |
58
+ | omp | 2 | 3,140 |
59
+ | Codex CLI | 5–6 | 4,766–9,378 |
60
+ | pi-subagents | 2–3 | 4,703–23,182 |
61
+
62
+ ## Also in the box
63
+
64
+ `/fire-watch` a cheap model that speaks up only when work drifts · `/preset` switch model, thinking and tools in one go · `/quota` and `/tokens` usage at a glance · `Ctrl+R` rename the session · `Ctrl+Shift+S` OpenAI Fast mode · Works with Claude subscription login
65
+
66
+ ## Install
54
67
 
55
68
  ```bash
56
- bun test # 测试
57
- pi -e . # 在本地仓库直接试用
69
+ pi install npm:pi-firecode
58
70
  ```
59
71
 
60
- 模块边界、状态机约束与术语见 `AGENTS.md`、各模块的 `AGENTS.md` 与 `WORDS.md`。
72
+ Restart Pi (1.1.0+) and it's ready; the config is created on first launch. Turn anything off with `"features": { "<name>": false }` in `~/.pi/agent/extensions/firecode/config.jsonc`.
73
+
74
+ [Contributing](.github/CONTRIBUTING.md) · MIT © Suge8
@@ -0,0 +1,74 @@
1
+ <p align="center">
2
+ <picture>
3
+ <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/Suge8/firecode/main/design/brand/logo-dark.svg">
4
+ <img alt="firecode" src="https://raw.githubusercontent.com/Suge8/firecode/main/design/brand/logo-light.svg" height="72">
5
+ </picture>
6
+ </p>
7
+
8
+ <h3 align="center">装这一个,其余扩展都可以卸了。</h3>
9
+
10
+ <p align="center">给 <a href="https://pi.dev">Pi</a> 加上并行子代理、多模型代码审查和更干净的终端界面。装一个就够,开箱即用。</p>
11
+
12
+ <p align="center">
13
+ <a href="https://www.npmjs.com/package/pi-firecode"><img alt="npm" src="https://img.shields.io/npm/v/pi-firecode?color=FF7A0F"></a>
14
+ <a href="https://github.com/Suge8/firecode/actions/workflows/ci.yml"><img alt="CI" src="https://github.com/Suge8/firecode/actions/workflows/ci.yml/badge.svg"></a>
15
+ <a href="LICENSE"><img alt="MIT" src="https://img.shields.io/badge/license-MIT-blue"></a>
16
+ · <a href="README.md">English</a>
17
+ </p>
18
+
19
+ <p align="center"><img alt="指挥官并行派出三个子代理" src="https://raw.githubusercontent.com/Suge8/firecode/main/design/promo/hero.zh.gif" width="860"></p>
20
+
21
+ ## 为什么用 FireCode
22
+
23
+ - **开箱即用。** 默认配置就是推荐配置,支持多语言。
24
+ - **子代理可控。** 并行跑,每个角色独立选模型,出故障自动切换,随时点开干预。
25
+ - **审查交付全自动。** 不用盯着,交到你手里的就是审查通过的结果。
26
+ - **核心极轻。** 完美契合 Pi 原生的极简思路,上下文保持极度轻量。
27
+ - **视觉负担低。** 你只需要在乎真正重要的结果,中间过程全部折叠,想看再展开。
28
+
29
+ ## 全自动审查交付
30
+
31
+ 你只管告诉指挥官要做什么。遇到重要、难的任务,它会自动发起对抗审查:你配置的任意多个模型一起挑问题,挑出来就打回修复,修完再审,直到通过才交给你,交出来的是质量过关、满足需求的代码。反复卡住时,顾问模型会出来拿主意。想手动审,也可以随时执行 `/fire-review`。
32
+
33
+ <p align="center"><img alt="第 1 轮没过,代理修复后第 2 轮通过" src="https://raw.githubusercontent.com/Suge8/firecode/main/design/promo/review-loop.zh.gif" width="760"></p>
34
+
35
+ 别的审查工具交给你一份问题清单,FireCode 交给你修好并复审通过的代码:
36
+
37
+ | | 审查者 | 交到你手里的是 |
38
+ | --- | --- | --- |
39
+ | **FireCode** | 任意多个模型对抗审查 | **修好、复审通过的代码** |
40
+ | Qwen Code `/review` | 最多 16 个代理,同一个模型 | 问题清单;`--fix` 修一次,不复审 |
41
+ | Open Code Review(阿里) | 同一个模型,逐文件审 | 问题清单,要你自己修 |
42
+ | PR-Agent / Qodo | 分工代理,同一个模型 | 评论和修改建议 |
43
+ | multi-model-review(Pi) | 多家模型 | 一份汇总结论 |
44
+
45
+ ## 清晰的子代理状态
46
+
47
+ 每个子代理都列在输入框上方,点一下就能看它的完整过程,并直接跟它说话。
48
+
49
+ <p align="center"><img alt="子代理的完整过程,在它自己的输入框里补一句话" src="https://raw.githubusercontent.com/Suge8/firecode/main/design/promo/shot-worker-view.zh.png" width="720"></p>
50
+
51
+ ## 核心极轻
52
+
53
+ 完美契合 Pi 原生的极简思路:子代理只加两个小工具,审查和观察员一个都不加。下表是子代理工具在每次请求里占的上下文(发给模型的工具定义字符数,2026 年 10 月实测):
54
+
55
+ | | 子代理工具数 | 字符数 |
56
+ | --- | --- | --- |
57
+ | **FireCode** | 2 | **926** |
58
+ | omp | 2 | 3,140 |
59
+ | Codex CLI | 5–6 | 4,766–9,378 |
60
+ | pi-subagents | 2–3 | 4,703–23,182 |
61
+
62
+ ## 还有这些
63
+
64
+ `/fire-watch` 便宜模型帮你盯着,跑偏才开口 · `/preset` 一键切换模型、思考档和工具 · `/quota`、`/tokens` 看用量 · `Ctrl+R` 改会话名 · `Ctrl+Shift+S` 开关 OpenAI 加速档 · 适配 Claude 订阅登录
65
+
66
+ ## 安装
67
+
68
+ ```bash
69
+ pi install npm:pi-firecode
70
+ ```
71
+
72
+ 重启 Pi(1.1.0 及以上)就能用,配置文件首次启动时自动生成。不想要哪个功能,在 `~/.pi/agent/extensions/firecode/config.jsonc` 里写 `"features": { "<名字>": false }` 关掉。
73
+
74
+ [参与开发](.github/CONTRIBUTING.md) · MIT © Suge8
@@ -1,13 +1,14 @@
1
1
  {
2
- // 公开推荐配置:功能全开。复制后重启 Pi。
3
- // Watcher 新会话不自动激活,需要时 /fire-watch 翻转当前会话。
4
- // 凡是指定模型的位置都写同一个模型原子:"provider/model/thinking",思考档取最后一段。
2
+ // Recommended config: every feature on. It is written here on first launch; swap in the models you are logged in to, then restart Pi.
3
+ // The watcher does not activate itself in a new session; run /fire-watch to toggle it for the current session.
4
+ // Everywhere a model is named, use the same model atom: "provider/model/thinking" (the last segment is the thinking level).
5
+ // Language of the UI and of the text shown to models: follows the system locale by default (zh* → Chinese, otherwise English); uncomment the next line to pin it, "zh" | "en".
6
+ // "language": "en",
5
7
  "features": {
6
8
  "header": true,
7
9
  "statusbar": true,
8
10
  "tools": true,
9
11
  "presets": true,
10
- "rename": true,
11
12
  "stats": true,
12
13
  "claudeSub": true,
13
14
  "openaiNative": true,
@@ -17,11 +18,10 @@
17
18
  },
18
19
 
19
20
  "keys": {
20
- "rename": "ctrl+r",
21
- "fast": "ctrl+f"
21
+ "fast": "ctrl+shift+s"
22
22
  },
23
23
 
24
- // nativeCompaction 使用 OpenAI 原生上下文压缩;priority 加钱换更快出字,默认关。
24
+ // nativeCompaction uses OpenAI's native context compaction; priority pays more for faster output and is off by default.
25
25
  "openai": {
26
26
  "nativeCompaction": true,
27
27
  "providers": {
@@ -29,34 +29,34 @@
29
29
  }
30
30
  },
31
31
 
32
- // 新会话默认激活指挥官。
32
+ // New sessions activate the Master by default. Role names are yours to choose; the Master picks a role by its "use".
33
33
  "master": {
34
34
  "autoActivate": true,
35
35
  "workerExcludeExtensions": [],
36
36
  "roles": {
37
- "调研员": {
37
+ "researcher": {
38
38
  "model": "anthropic/claude-haiku-5-5/low",
39
- "use": "只读不改:联网搜索、查文档与版本、读日志、按线索定位代码与核对资料",
39
+ "use": "Read-only: web search, docs and version lookups, reading logs, locating code from leads, checking references",
40
40
  "fallback": ["openai-codex/gpt-6-luna/medium"]
41
41
  },
42
- "工程师": {
42
+ "engineer": {
43
43
  "model": "anthropic/claude-sonnet-5-5/high",
44
- "use": "要改代码:实现、调试;需要深读代码找缺陷的审计也派它(只读)",
44
+ "use": "Changes code: implementation, debugging; also for audits that need deep code reading to find defects (read-only)",
45
45
  "fallback": ["openai-codex/gpt-6.1-sol/high"]
46
46
  },
47
- "批量工": {
47
+ "batch": {
48
48
  "model": "anthropic/claude-haiku-5-5/medium",
49
- "use": "规格明确、靠测试或类型检查就能验收的批量改动:按模式迁移、改名、补样板;量大时按文件划界并行多派",
49
+ "use": "Well-specified bulk changes that tests or type checks can verify: pattern migrations, renames, boilerplate; for large volumes split by file and run several in parallel",
50
50
  "fallback": ["openai-codex/gpt-6.1-sol/medium"]
51
51
  },
52
- "设计师": {
52
+ "designer": {
53
53
  "model": "anthropic/claude-opus-5-5/medium",
54
- "use": "视觉、前端",
54
+ "use": "Visual and frontend work",
55
55
  "fallback": ["openai-codex/gpt-6.1-sol/high"]
56
56
  },
57
- "哨兵": {
57
+ "sentinel": {
58
58
  "model": "anthropic/claude-haiku-5-5/low",
59
- "use": "CI、部署、长测试等待",
59
+ "use": "Waiting on CI, deployments and long tests",
60
60
  "fallback": ["anthropic/claude-sonnet-5-5/low"]
61
61
  }
62
62
  }
@@ -71,18 +71,17 @@
71
71
  "ds": { "model": "deepseek/deepseek-flash/high", "key": "alt+6" }
72
72
  },
73
73
 
74
- // 审查只在用户或指挥官发起时调用模型。
74
+ // Review only calls models when the user or the Master starts it.
75
75
  "review": {
76
76
  "advisor": "anthropic/claude-fable-5-1/high",
77
77
  "reviewers": ["anthropic/claude-opus-5-5/low", "openai-codex/gpt-6.1-sol/low"],
78
78
  "maxRounds": 5,
79
79
  "advisorAfterFailures": 2,
80
80
  "timeoutMinutes": 40,
81
- "tools": ["read", "grep", "find", "ls", "bash"],
82
- "language": "zh"
81
+ "tools": ["read", "grep", "find", "ls", "bash"]
83
82
  },
84
83
 
85
- // 激活后每个主会话回合评估新增内容,会产生额外模型调用;需要开口时当场插话。
84
+ // Once active, it evaluates what each main-session turn added, which costs extra model calls; it speaks up on the spot when needed.
86
85
  "watcher": {
87
86
  "enabled": false,
88
87
  "model": "openai-codex/gpt-6.1-sol/medium",
@@ -0,0 +1,90 @@
1
+ {
2
+ // Recommended config: every feature on. It is written here on first launch; swap in the models you are logged in to, then restart Pi.
3
+ // The watcher does not activate itself in a new session; run /fire-watch to toggle it for the current session.
4
+ // Everywhere a model is named, use the same model atom: "provider/model/thinking" (the last segment is the thinking level).
5
+ // Language of the UI and of the text shown to models: follows the system locale by default (zh* → Chinese, otherwise English); uncomment the next line to pin it, "zh" | "en".
6
+ // "language": "en",
7
+ "features": {
8
+ "header": true,
9
+ "statusbar": true,
10
+ "tools": true,
11
+ "presets": true,
12
+ "stats": true,
13
+ "claudeSub": true,
14
+ "openaiNative": true,
15
+ "review": true,
16
+ "master": true,
17
+ "watcher": true
18
+ },
19
+
20
+ "keys": {
21
+ "fast": "ctrl+shift+s"
22
+ },
23
+
24
+ // nativeCompaction uses OpenAI's native context compaction; priority pays more for faster output and is off by default.
25
+ "openai": {
26
+ "nativeCompaction": true,
27
+ "providers": {
28
+ "openai-codex": { "textVerbosity": "low", "priority": false }
29
+ }
30
+ },
31
+
32
+ // New sessions activate the Master by default. Role names are yours to choose; the Master picks a role by its "use".
33
+ "master": {
34
+ "autoActivate": true,
35
+ "workerExcludeExtensions": [],
36
+ "roles": {
37
+ "researcher": {
38
+ "model": "anthropic/claude-haiku-5-5/low",
39
+ "use": "Read-only: web search, docs and version lookups, reading logs, locating code from leads, checking references",
40
+ "fallback": ["openai-codex/gpt-6-luna/medium"]
41
+ },
42
+ "engineer": {
43
+ "model": "anthropic/claude-sonnet-5-5/high",
44
+ "use": "Changes code: implementation, debugging; also for audits that need deep code reading to find defects (read-only)",
45
+ "fallback": ["openai-codex/gpt-6.1-sol/high"]
46
+ },
47
+ "batch": {
48
+ "model": "anthropic/claude-haiku-5-5/medium",
49
+ "use": "Well-specified bulk changes that tests or type checks can verify: pattern migrations, renames, boilerplate; for large volumes split by file and run several in parallel",
50
+ "fallback": ["openai-codex/gpt-6.1-sol/medium"]
51
+ },
52
+ "designer": {
53
+ "model": "anthropic/claude-opus-5-5/medium",
54
+ "use": "Visual and frontend work",
55
+ "fallback": ["openai-codex/gpt-6.1-sol/high"]
56
+ },
57
+ "sentinel": {
58
+ "model": "anthropic/claude-haiku-5-5/low",
59
+ "use": "Waiting on CI, deployments and long tests",
60
+ "fallback": ["anthropic/claude-sonnet-5-5/low"]
61
+ }
62
+ }
63
+ },
64
+
65
+ "presets": {
66
+ "sonnet": { "model": "anthropic/claude-sonnet-5-5/high", "key": "alt+1" },
67
+ "opus": { "model": "anthropic/claude-opus-5-5/high", "key": "alt+2" },
68
+ "fable": { "model": "anthropic/claude-fable-5-1/medium", "key": "alt+3" },
69
+ "astra": { "model": "openai-codex/gpt-6-astra/medium", "key": "alt+4" },
70
+ "sol": { "model": "openai-codex/gpt-6.1-sol/medium", "key": "alt+5" },
71
+ "ds": { "model": "deepseek/deepseek-flash/high", "key": "alt+6" }
72
+ },
73
+
74
+ // Review only calls models when the user or the Master starts it.
75
+ "review": {
76
+ "advisor": "anthropic/claude-fable-5-1/high",
77
+ "reviewers": ["anthropic/claude-opus-5-5/low", "openai-codex/gpt-6.1-sol/low"],
78
+ "maxRounds": 5,
79
+ "advisorAfterFailures": 2,
80
+ "timeoutMinutes": 40,
81
+ "tools": ["read", "grep", "find", "ls", "bash"]
82
+ },
83
+
84
+ // Once active, it evaluates what each main-session turn added, which costs extra model calls; it speaks up on the spot when needed.
85
+ "watcher": {
86
+ "enabled": false,
87
+ "model": "openai-codex/gpt-6.1-sol/medium",
88
+ "context": "minimal"
89
+ }
90
+ }