omnilane 0.8.3 → 0.9.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.
package/README.zh-CN.md CHANGED
@@ -21,92 +21,50 @@
21
21
 
22
22
  ---
23
23
 
24
- ## v0.8.3 新功能
24
+ ## 👋 第一次用?
25
25
 
26
- - **MCP server** — `omnilane mcp` 启动零依赖的 stdio MCP server,任何支持
27
- MCP 的宿主(Claude Code、Codex、Gemini CLI、Cursor、OpenCode……)无需安装
28
- skill 即可发现并调用 omnilane:提供 `route`、`jobs_status`、`jobs_result`、
29
- `list_lanes` 四个工具。`route` 默认只读 advise 模式;work 模式必须明确
30
- 指定 workdir。
26
+ 你已经在用某个 AI 写程式助手——**Claude Code、Codex、Cursor、Gemini
27
+ CLI** 之类。每个一次只接一个 AI 模型,而「每件工作该用哪个模型最好」得你自己决定。
31
28
 
32
- ## v0.8.2 新功能
29
+ **omnilane 帮你决定。** 每一件工作,它会自动派给对那件事最强(也最省)的模型——硬派程式
30
+ 交给顶尖程式模型、随手的小检查交给又快又便宜的、长文件交给大脉络模型——全部用你本来就在
31
+ 付费的订阅与 API 金钥。用内建预设值就好,或改一个小设定档就能微调。不用另外顾一套东西
32
+ (它躲在你现有工具背后跑),`./install.sh --uninstall` 可干净移除。
33
33
 
34
- - **`openrouter` vendor** 只需 `curl` 加一个 `OPENROUTER_API_KEY`,
35
- 即可直连 OpenRouter API 派工:任何 omnilane 安装都能访问数百个
36
- 托管模型,无需再装任何代理 CLI。仅限 advise/consult(不能改文件,
37
- work 模式会明确报错指路),模型 slug 必填,例如
38
- `dispatch.sh --vendor openrouter --model anthropic/claude-sonnet-5 consult "..."`。
39
- - **`opencode` vendor** — 通过 OpenCode 多供应商聚合 CLI 无头派工
40
- (`opencode run`)。advise 模式锁定内置只读 `plan` agent;work 模式
41
- 用 `--auto`。加入默认 `coding-overflow` 链作为最后回退。
34
+ **[⬇ 直接跳到 60 秒上手](#-60-秒上手)**
42
35
 
43
- ## v0.8.1 新功能
36
+ ## v0.9.1 新功能
44
37
 
45
- - **Claude Code 插件开场自动载入路由提醒** — 插件新增 `SessionStart`
46
- hook(`hooks/hooks.json`),在会话开始(`startup|resume|clear`)时自动
47
- 注入路由提醒,安装插件即生效,无需修改 `~/.claude/CLAUDE.md`。其他
48
- CLI 仍使用 `install.sh` 的指令文件提醒。
38
+ - **修复**:`configure set` 不再删除 `routing.local.yaml` 中手写的注释——
39
+ 只改写自身的戳记行与被替换的 lane。
49
40
 
50
- ## v0.8.0 新功能
51
-
52
- - **两个新派工 vendor** — `kimi`(Moonshot Kimi Code CLI)与 `qwen`
53
- (Alibaba Qwen Code CLI)加入,沿用统一 runner 契约:advise 只读、
54
- work 自动批准、剥除 API key 环境变量改用 CLI 自身订阅登录、空输出
55
- 视为失败。可用 `--vendor kimi|qwen` 直接指定。
56
- - **coding-overflow 新增备选链** — 额度溢流道改为 grok → kimi → qwen
57
- 再到 `off`,三家装任一家即可用。runner 以假可执行文件完成契约测试;
58
- 欢迎反馈真实模型实测结果。
41
+ ## v0.9.0 新功能
59
42
 
60
- ## v0.7.1 新功能
43
+ - **新增 5 个 OpenAI-compatible direct-API vendor** — `deepseek`、`zai`(GLM)、`mistral`、`groq`、`cerebras`,与 `openrouter` 同为免 CLI 通道(curl 加一把 `<VENDOR>_API_KEY`);`lib/common.sh` registry 一行即加一个。详见 [`docs/model-capabilities-2026-07.md`](docs/model-capabilities-2026-07.md)。
44
+ - **fish shell 补全** — `omnilane completion fish | source`。
61
45
 
62
- - **路由表更新(2026-07 模型数据)** — hardest-coding 首选改为 GPT-5.6 Sol
63
- **max** 档位:Artificial Analysis Coding Agent Index v1.1 测得 Sol (max)
64
- 80 分为当前最高,替换旧的「xhigh 胜 max」快照。
65
- - **Claude 备选升档** — hardest-coding 与 hard-judgment 的 Claude Opus 4.8
66
- 备选改为 **xhigh**,依 Anthropic 官方对困难任务与长时间工作的建议。
67
-
68
- ## v0.7.0 新功能
69
-
70
- - **先预览再派工** — `--dry-run` 打印完整解析后的派工计划(vendor、模型、
71
- 模式、超时、副作用判定),不调用模型、不创建作业状态。
72
- - **版本化 JSON 自动化** — `--list`/`--explain`/`--validate` 与
73
- `jobs list|status|result|stats` 都提供 `--json` 信封;另有只读 `jobs wait`、
74
- `jobs audit`,以及带可复现 manifest 的离线 `omnilane release-audit` 发布审计。
75
- - **本地作业一条龙** — `jobs tail` 查看实时输出、`jobs retry` 以 fail-closed
76
- 方式重派已完成作业、`prune --older-than` 按时间清理,`--help` 覆盖所有命令。
77
- - **安装与补全更安全** — `install.sh --check`/`--dry-run` 只读报告漂移,
78
- `omnilane completion bash|zsh` 提供安全的 tab 补全,并修复五个 macOS 自带
79
- Bash 3.2 崩溃。
80
-
81
- ## v0.6.0 新功能
82
-
83
- - **离线理解并验证路由** — 使用 `--explain` 查看每个备用候选,或使用
84
- `--validate` 检查完整生效路由表;都不会调用模型或创建作业状态。
85
- - **用机器可读数据观察本地状态** — `jobs.sh stats` 提供有界统计,
86
- `omnilane doctor --json` 提供健康检查,同时不会泄漏任务或结果正文。
87
- - **在 Live Board 比较两条作业** — 将一条已加载作业固定为仅存在于内存中的
88
- 参考快照,并排比较模型路径与公开结果。
89
- - **让锁恢复更安静** — 所有者文件在检查与读取之间消失时,不再泄漏容易误判的
90
- 缺失文件诊断,同时保持 fail-closed。
46
+ ## 60 秒上手
91
47
 
92
- ## v0.5.1 新功能
48
+ **最快的方式——用 npm 装:**
93
49
 
94
- - **在非 Git 目录使用 Codex work** — 普通文件夹仍完整支持;Omnilane 不要求,
95
- 也绝不会自动执行 `git init`。
96
- - **干净停止非 Git 卡死** — 未设置整体上限时,解析后的单次看门狗会自动成为
97
- 进程组保险丝,同时保留手动 timeout 的优先级和退出码语义。
98
- - **让版本显示可信** `VERSION` 现在统一提供给 `omnilane --version` 和两份
99
- plugin manifest,CI 会检查变更记录和五种语言 README 是否一致。
50
+ ```bash
51
+ npm i -g omnilane # 装 CLI
52
+ omnilane route hardest-coding "修掉会间歇失败的 auth token 更新测试"
53
+ omnilane doctor # 看你手上有哪些 AI CLI / 金钥
54
+ omnilane ui start # 选配:在浏览器即时看派工
55
+ ```
100
56
 
101
- ## 60 秒上手
57
+ **或 clone 整包**(拿到路由表与可自订的技能):
102
58
 
103
59
  ```bash
104
60
  git clone https://github.com/Seraphim0916/omnilane && cd omnilane
105
- ./install.sh # 检测你的 CLI、接好技能、说你的语言
106
- omnilane route hardest-coding "修掉间歇失败的 auth token 刷新测试"
107
- omnilane ui start # 可选:在浏览器实时查看派发
61
+ ./install.sh # 侦测你的 CLI、接好技能、说你的语言
62
+ omnilane route hardest-coding "修掉会间歇失败的 auth token 更新测试"
108
63
  ```
109
64
 
65
+ > 第一次用?先跑 `omnilane doctor`——它会告诉你 omnilane 现在能接到哪些模型 CLI 与
66
+ > API 金钥,你就知道实际会跑什么。
67
+
110
68
  ## 🧭 工作原理
111
69
 
112
70
  omnilane 让**任何**一个 agentic CLI 的主循环把子任务分类到通道(lane),
@@ -131,6 +89,8 @@ flowchart LR
131
89
  调用对应厂商的 CLI。`--vendor` 会锁定指定厂商,不做降级。
132
90
  - **`skills/omnilane/SKILL.md`** — 一份技能四个框架都能加载:
133
91
  先认出自己是哪个模型,自己通道的活自己干,其余派出去。
92
+ - **`omnilane mcp`** — 同一套路由改以 MCP stdio server 提供,
93
+ 给走 MCP 而非 skill 集成的宿主。
134
94
 
135
95
  <div align="center">
136
96
 
@@ -267,10 +227,13 @@ Esc。服务器发送事件(SSE)会实时更新,又不会重建当前聚焦的
267
227
  }
268
228
  ```
269
229
 
270
- Server 提供 `route`、`jobs_status`、`jobs_result`、`list_lanes` 四个工具。
230
+ Server 提供 `route`,以及一组只读查询工具:`list_lanes`、`explain`、`validate`、`dry_run`、`jobs_list`、`jobs_status`、`jobs_result`、`jobs_stats`、`jobs_audit`、`doctor`。
271
231
  `route` 默认只读 `advise` 模式;选择 `work` 的调用必须同时提供明确的
272
232
  `workdir`。
273
233
 
234
+ 唯一的运行需求是 Node.js(不装任何 npm 包);也可以直接
235
+ `npm install -g omnilane`,CLI 连同 MCP server 一起装好。
236
+
274
237
  ## ⚙️ 自定义设置
275
238
 
276
239
  三层,全部可选:
@@ -295,6 +258,8 @@ scripts/dispatch.sh --list # 生效表,标出候选链降级与关闭的通
295
258
  ```
296
259
  eval "$(omnilane completion bash)" # 在当前 Bash 启用补全
297
260
  source <(omnilane completion zsh) # 在当前 Zsh 启用补全
261
+ omnilane completion fish | source
262
+ omnilane mcp # MCP stdio server(需 Node.js)
298
263
  omnilane release-audit [--target 版本] [--json] # 离线、只读的发布闸门
299
264
  omnilane ui start # 启动或复用本地 Live UI,输出链接
300
265
  omnilane ui status # 查看 Live UI 是否正在运行
@@ -308,11 +273,15 @@ dispatch.sh [--json] --list [--json]
308
273
  dispatch.sh [--json] --explain 通道 [--json] # 离线逐候选解释路由决策
309
274
  dispatch.sh [--json] --validate [--json] # 离线检查生效路由,不调用模型
310
275
  jobs.sh [--json] {list | status 作业ID | result 作业ID} # JSON 结果只回元数据,不回正文
276
+ jobs.sh [--json] list [--lane L] [--vendor V] [--status running|done] # 过滤列表
311
277
  jobs.sh wait 作业ID [--timeout N] # 作业退出码;124 超时;125 工作进程消失
312
- jobs.sh [--json] stats [--last N] # 本机成功率与路由汇总
278
+ jobs.sh cancel 作业ID # 停止运行中的作业:整组 SIGTERM,再 SIGKILL
279
+ jobs.sh rm 作业ID # 删除单个已完成/已死作业(运行中会被拒绝)
280
+ jobs.sh [--json] stats [--last N] [--lane L] [--vendor V] # 本机成功率与路由汇总
313
281
  jobs.sh audit [--last N] [--json] # 只读检查作业完整性与隐私
314
282
  jobs.sh prune [--keep N] [--apply] # 默认仅预览;只清理已完成作业
315
283
  configure.sh # 交互通道菜单
284
+ configure.sh set|get|unset|list|diff LANE [SPEC] # 非交互编辑/查看 routing.local.yaml
316
285
  ```
317
286
 
318
287
  退出码:`2` 用法错误(包括厂商值无效,或指定厂商不在该通道)、`3` 通道已关闭、
@@ -378,14 +347,93 @@ configure.sh # 交互通道菜单
378
347
  外卡住,因此上面的自动保险丝会限制这个场景并清理受监工的进程组。Omnilane
379
348
  不会自动执行 `git init`,也不要求用户创建仓库。
380
349
 
350
+ ## 📜 版本历程
351
+
352
+ <details>
353
+ <summary>旧版本(v0.8.3 以前)</summary>
354
+
355
+ ## v0.8.3 新功能
356
+
357
+ - **MCP server** — `omnilane mcp` 启动零依赖的 stdio MCP server,任何支持
358
+ MCP 的宿主(Claude Code、Codex、Gemini CLI、Cursor、OpenCode……)无需安装
359
+ skill 即可发现并调用 omnilane:提供 `route`、`jobs_status`、`jobs_result`、
360
+ `list_lanes` 四个工具。`route` 默认只读 advise 模式;work 模式必须明确
361
+ 指定 workdir。
362
+
363
+ ## v0.8.2 新功能
364
+
365
+ - **`openrouter` vendor** — 只需 `curl` 加一个 `OPENROUTER_API_KEY`,
366
+ 即可直连 OpenRouter API 派工:任何 omnilane 安装都能访问数百个
367
+ 托管模型,无需再装任何代理 CLI。仅限 advise/consult(不能改文件,
368
+ work 模式会明确报错指路),模型 slug 必填,例如
369
+ `dispatch.sh --vendor openrouter --model anthropic/claude-sonnet-5 consult "..."`。
370
+ - **`opencode` vendor** — 通过 OpenCode 多供应商聚合 CLI 无头派工
371
+ (`opencode run`)。advise 模式锁定内置只读 `plan` agent;work 模式
372
+ 用 `--auto`。加入默认 `coding-overflow` 链作为最后回退。
373
+
374
+ ## v0.8.1 新功能
375
+
376
+ - **Claude Code 插件开场自动载入路由提醒** — 插件新增 `SessionStart`
377
+ hook(`hooks/hooks.json`),在会话开始(`startup|resume|clear`)时自动
378
+ 注入路由提醒,安装插件即生效,无需修改 `~/.claude/CLAUDE.md`。其他
379
+ CLI 仍使用 `install.sh` 的指令文件提醒。
380
+
381
+ ## v0.8.0 新功能
382
+
383
+ - **两个新派工 vendor** — `kimi`(Moonshot Kimi Code CLI)与 `qwen`
384
+ (Alibaba Qwen Code CLI)加入,沿用统一 runner 契约:advise 只读、
385
+ work 自动批准、剥除 API key 环境变量改用 CLI 自身订阅登录、空输出
386
+ 视为失败。可用 `--vendor kimi|qwen` 直接指定。
387
+ - **coding-overflow 新增备选链** — 额度溢流道改为 grok → kimi → qwen
388
+ 再到 `off`,三家装任一家即可用。runner 以假可执行文件完成契约测试;
389
+ 欢迎反馈真实模型实测结果。
390
+
391
+ ## v0.7.1 新功能
392
+
393
+ - **路由表更新(2026-07 模型数据)** — hardest-coding 首选改为 GPT-5.6 Sol
394
+ **max** 档位:Artificial Analysis Coding Agent Index v1.1 测得 Sol (max)
395
+ 80 分为当前最高,替换旧的「xhigh 胜 max」快照。
396
+ - **Claude 备选升档** — hardest-coding 与 hard-judgment 的 Claude Opus 4.8
397
+ 备选改为 **xhigh**,依 Anthropic 官方对困难任务与长时间工作的建议。
398
+
399
+ ## v0.7.0 新功能
400
+
401
+ - **先预览再派工** — `--dry-run` 打印完整解析后的派工计划(vendor、模型、
402
+ 模式、超时、副作用判定),不调用模型、不创建作业状态。
403
+ - **版本化 JSON 自动化** — `--list`/`--explain`/`--validate` 与
404
+ `jobs list|status|result|stats` 都提供 `--json` 信封;另有只读 `jobs wait`、
405
+ `jobs audit`,以及带可复现 manifest 的离线 `omnilane release-audit` 发布审计。
406
+ - **本地作业一条龙** — `jobs tail` 查看实时输出、`jobs retry` 以 fail-closed
407
+ 方式重派已完成作业、`prune --older-than` 按时间清理,`--help` 覆盖所有命令。
408
+ - **安装与补全更安全** — `install.sh --check`/`--dry-run` 只读报告漂移,
409
+ `omnilane completion bash|zsh` 提供安全的 tab 补全,并修复五个 macOS 自带
410
+ Bash 3.2 崩溃。
411
+
412
+ ## v0.6.0 新功能
413
+
414
+ - **离线理解并验证路由** — 使用 `--explain` 查看每个备用候选,或使用
415
+ `--validate` 检查完整生效路由表;都不会调用模型或创建作业状态。
416
+ - **用机器可读数据观察本地状态** — `jobs.sh stats` 提供有界统计,
417
+ `omnilane doctor --json` 提供健康检查,同时不会泄漏任务或结果正文。
418
+ - **在 Live Board 比较两条作业** — 将一条已加载作业固定为仅存在于内存中的
419
+ 参考快照,并排比较模型路径与公开结果。
420
+ - **让锁恢复更安静** — 所有者文件在检查与读取之间消失时,不再泄漏容易误判的
421
+ 缺失文件诊断,同时保持 fail-closed。
422
+
423
+ ## v0.5.1 新功能
424
+
425
+ - **在非 Git 目录使用 Codex work** — 普通文件夹仍完整支持;Omnilane 不要求,
426
+ 也绝不会自动执行 `git init`。
427
+ - **干净停止非 Git 卡死** — 未设置整体上限时,解析后的单次看门狗会自动成为
428
+ 进程组保险丝,同时保留手动 timeout 的优先级和退出码语义。
429
+ - **让版本显示可信** — `VERSION` 现在统一提供给 `omnilane --version` 和两份
430
+ plugin manifest,CI 会检查变更记录和五种语言 README 是否一致。
431
+
432
+ </details>
433
+
381
434
  ## 🌱 状态
382
435
 
383
- v0.8.3 共有八个派发 vendor——四个框架原生(codex、claude、grok、gemini)、
384
- 三个聚合/溢流 CLI(kimi、qwen、opencode),加上免 CLI 的 `openrouter` 直连
385
- API vendor——全部走统一 runner 契约并附 contract 测试,另有 Claude Code
386
- `SessionStart` 自动提醒。kimi、qwen、opencode、openrouter 的 runner 以假
387
- 可执行文件做过契约测试;欢迎反馈真实模型使用经验。Grok/Antigravity 命令壳
388
- 行为仍可能随 CLI 版本变动。欢迎提交 issue 与 PR。
436
+ omnilane 现有 13 个派工 vendor——4 个框架原生(codex、claude、grok、gemini)、3 个聚合/溢流 CLI(kimi、qwen、opencode),加上 6 个免 CLI 的 OpenAI-compatible direct-API vendor(openrouter、deepseek、zai、mistral、groq、cerebras)——全部走统一 runner 契约并附 contract 测试,另有 Claude Code `SessionStart` 自动提醒与 MCP stdio server 介面(`omnilane mcp`)。direct-API 与聚合 runner 皆以假可执行档做过契约测试;欢迎反馈真实模型使用经验。Grok/Antigravity 命令壳行为仍可能随 CLI 版本变动。欢迎提交 issue 与 PR。
389
437
 
390
438
  项目文档:[贡献指南](CONTRIBUTING.md) · [安全政策](SECURITY.md) ·
391
439
  [变更记录](CHANGELOG.md)
package/README.zh-TW.md CHANGED
@@ -21,92 +21,53 @@
21
21
 
22
22
  ---
23
23
 
24
- ## v0.8.3 新功能
25
-
26
- - **MCP server** — `omnilane mcp` 啟動零依賴的 stdio MCP server,任何支援
27
- MCP 的宿主(Claude Code、Codex、Gemini CLI、Cursor、OpenCode……)不必安裝
28
- skill 就能發現並呼叫 omnilane:提供 `route`、`jobs_status`、`jobs_result`、
29
- `list_lanes` 四個工具。`route` 預設唯讀 advise 模式;work 模式必須明確
30
- 指定 workdir。
24
+ ## 👋 第一次用?
31
25
 
32
- ## v0.8.2 新功能
26
+ 你已經在用某個 AI 寫程式助手——**Claude Code、Codex、Cursor、Gemini
27
+ CLI** 之類。每個一次只接一個 AI 模型,而「每件工作該用哪個模型最好」得你自己決定。
33
28
 
34
- - **`openrouter` vendor** 只要 `curl` 加一把 `OPENROUTER_API_KEY`,
35
- 就能直連 OpenRouter API 派工:任何 omnilane 安裝都摸得到數百個
36
- 託管模型,不必再裝任何代理 CLI。僅限 advise/consult(不能改檔,
37
- work 模式會明確報錯指路),模型 slug 必填,例如
38
- `dispatch.sh --vendor openrouter --model anthropic/claude-sonnet-5 consult "..."`。
39
- - **`opencode` vendor** — 透過 OpenCode 多供應商聚合 CLI 無頭派工
40
- (`opencode run`)。advise 模式鎖定內建唯讀 `plan` agent;work 模式
41
- 用 `--auto`。加入預設 `coding-overflow` 鏈作為最後備援。
29
+ **omnilane 幫你決定。** 每一件工作,它會自動派給對那件事最強(也最省)的模型——硬派程式
30
+ 交給頂尖程式模型、隨手的小檢查交給又快又便宜的、長文件交給大脈絡模型——全部用你本來就在
31
+ 付費的訂閱與 API 金鑰。用內建預設值就好,或改一個小設定檔就能微調。不用另外顧一套東西
32
+ (它躲在你現有工具背後跑),`./install.sh --uninstall` 可乾淨移除。
42
33
 
43
- ## v0.8.1 新功能
34
+ **[⬇ 直接跳到 60 秒上手](#-60-秒上手)**
44
35
 
45
- - **Claude Code 外掛開場自動載入路由提醒** — 外掛新增 `SessionStart`
46
- hook(`hooks/hooks.json`),於開場(`startup|resume|clear`)自動注入
47
- 路由提醒,裝外掛即生效,不必修改 `~/.claude/CLAUDE.md`。其他 CLI
48
- 仍走 `install.sh` 的指令檔提醒。
49
-
50
- ## v0.8.0 新功能
51
-
52
- - **兩個新派工 vendor** — `kimi`(Moonshot Kimi Code CLI)與 `qwen`
53
- (Alibaba Qwen Code CLI)加入,沿用統一 runner 契約:advise 唯讀、
54
- work 自動核准、剝除 API key 環境變數改用 CLI 自身訂閱登入、空輸出
55
- 視為失敗。可用 `--vendor kimi|qwen` 直接點名。
56
- - **coding-overflow 長出備援鏈** — 額度溢流道改為 grok → kimi → qwen
57
- 再到 `off`,三家裝任一家即可用。runner 以假執行檔完成契約測試;
58
- 歡迎回報真實模型實測結果。
59
-
60
- ## v0.7.1 新功能
61
-
62
- - **路由表更新(2026-07 模型數據)** — hardest-coding 首選改為 GPT-5.6 Sol
63
- **max** 檔位:Artificial Analysis Coding Agent Index v1.1 測得 Sol (max)
64
- 80 分為現任最高,汰換舊的「xhigh 勝 max」快照。
65
- - **Claude 備援升檔** — hardest-coding 與 hard-judgment 的 Claude Opus 4.8
66
- 備援改為 **xhigh**,依 Anthropic 官方對困難任務與長時間工作的建議。
36
+ ## v0.9.1 新功能
67
37
 
68
- ## v0.7.0 新功能
38
+ - **修正**:`configure set` 不再刪掉 `routing.local.yaml` 裡手寫的註解——
39
+ 只改寫自身的戳記行與被取代的 lane。
69
40
 
70
- - **先預覽再派工** — `--dry-run` 印出完整解析後的派工計畫(vendor、模型、
71
- 模式、逾時、副作用判定),不呼叫模型、不建立工作狀態。
72
- - **版本化 JSON 自動化** — `--list`/`--explain`/`--validate` 與
73
- `jobs list|status|result|stats` 都有 `--json` 信封;另有唯讀 `jobs wait`、
74
- `jobs audit`,以及帶可重現 manifest 的離線 `omnilane release-audit` 發佈稽核。
75
- - **本機工作一條龍** — `jobs tail` 窺看即時輸出、`jobs retry` 以 fail-closed
76
- 方式重派已完成工作、`prune --older-than` 依時間清理,`--help` 覆蓋所有指令。
77
- - **安裝與補全更安全** — `install.sh --check`/`--dry-run` 唯讀回報漂移,
78
- `omnilane completion bash|zsh` 提供安全的 tab 補全,並修復五個 macOS 原生
79
- Bash 3.2 崩潰。
41
+ ## v0.9.0 新功能
80
42
 
81
- ## v0.6.0 新功能
43
+ - **五個 OpenAI-compatible direct-API vendor** — `deepseek`、`zai`(GLM)、
44
+ `mistral`、`groq`、`cerebras`,與 `openrouter` 同為免 CLI 通道(curl 加一把
45
+ `<VENDOR>_API_KEY`);`lib/common.sh` registry 一行即加一個。詳見
46
+ [`docs/model-capabilities-2026-07.md`](docs/model-capabilities-2026-07.md)。
47
+ - **fish shell 補全** — `omnilane completion fish | source`。
82
48
 
83
- - **離線看懂並驗證路由** 用 `--explain` 查看每個備援候選,或用
84
- `--validate` 檢查完整生效路由表;都不會呼叫模型或建立工作狀態。
85
- - **用機器可讀資料觀察本機狀態** — `jobs.sh stats` 提供有界統計,
86
- `omnilane doctor --json` 提供健康檢查,又不會洩漏任務或結果正文。
87
- - **在 Live Board 比較兩筆工作** — 把一筆已載入工作釘成只存在記憶體的
88
- 參考快照,並排比較模型路徑與公開結果。
89
- - **讓鎖恢復更安靜** — 擁有者檔案在檢查與讀取間消失時,不再洩漏容易誤判的
90
- 缺檔診斷,同時維持 fail-closed。
49
+ ## 60 秒上手
91
50
 
92
- ## v0.5.1 新功能
51
+ **最快的方式——用 npm 裝:**
93
52
 
94
- - **在非 Git 目錄使用 Codex work** — 一般資料夾仍完整支援;Omnilane 不要求、
95
- 也絕不會自動執行 `git init`。
96
- - **乾淨停止非 Git 卡死** — 未設定整體上限時,解析後的單次看門狗會自動成為
97
- 程序群組保險絲,同時保留手動 timeout 的優先序與退出碼語意。
98
- - **讓版本顯示可信** `VERSION` 現在統一供應 `omnilane --version` 與兩份
99
- plugin manifest,CI 會檢查變更紀錄和五語 README 是否一致。
53
+ ```bash
54
+ npm i -g omnilane # 裝 CLI
55
+ omnilane route hardest-coding "修掉會間歇失敗的 auth token 更新測試"
56
+ omnilane doctor # 看你手上有哪些 AI CLI / 金鑰
57
+ omnilane ui start # 選配:在瀏覽器即時看派工
58
+ ```
100
59
 
101
- ## 60 秒上手
60
+ **或 clone 整包**(拿到路由表與可自訂的技能):
102
61
 
103
62
  ```bash
104
63
  git clone https://github.com/Seraphim0916/omnilane && cd omnilane
105
64
  ./install.sh # 偵測你的 CLI、接好技能、說你的語言
106
65
  omnilane route hardest-coding "修掉會間歇失敗的 auth token 更新測試"
107
- omnilane ui start # 選配:在瀏覽器即時看派工
108
66
  ```
109
67
 
68
+ > 第一次用?先跑 `omnilane doctor`——它會告訴你 omnilane 現在能接到哪些模型 CLI 與
69
+ > API 金鑰,你就知道實際會跑什麼。
70
+
110
71
  ## 🧭 運作方式
111
72
 
112
73
  omnilane 讓**任何**一個 agentic CLI 的主迴圈把子任務分類到通道(lane),
@@ -131,6 +92,8 @@ flowchart LR
131
92
  呼叫對應廠商的 CLI。`--vendor` 會鎖定點名廠商,不做降級。
132
93
  - **`skills/omnilane/SKILL.md`** — 一份技能四個框架都能載入:
133
94
  先認出自己是哪個模型,自己通道的活自己做,其餘派出去。
95
+ - **`omnilane mcp`** — 同一套路由改以 MCP stdio server 提供,
96
+ 給走 MCP 而非 skill 整合的宿主。
134
97
 
135
98
  <div align="center">
136
99
 
@@ -268,10 +231,13 @@ omnilane ui stop # 正常停止
268
231
  }
269
232
  ```
270
233
 
271
- Server 提供 `route`、`jobs_status`、`jobs_result`、`list_lanes` 四個工具。
234
+ Server 提供 `route`,以及一組唯讀查詢工具:`list_lanes`、`explain`、`validate`、`dry_run`、`jobs_list`、`jobs_status`、`jobs_result`、`jobs_stats`、`jobs_audit`、`doctor`。
272
235
  `route` 預設唯讀 `advise` 模式;選 `work` 的呼叫必須同時提供明確的
273
236
  `workdir`。
274
237
 
238
+ 唯一的執行需求是 Node.js(不裝任何 npm 套件);也可以直接
239
+ `npm install -g omnilane`,CLI 連同 MCP server 一起裝好。
240
+
275
241
  ## ⚙️ 自訂設定
276
242
 
277
243
  三層,全部選用:
@@ -298,6 +264,7 @@ omnilane list | route … | jobs … | configure # 全域指令,任何目錄
298
264
  # (install.sh 會連結進 ~/.local/bin)
299
265
  eval "$(omnilane completion bash)" # 在目前 Bash 啟用補全
300
266
  source <(omnilane completion zsh) # 在目前 Zsh 啟用補全
267
+ omnilane completion fish | source # 在目前 Fish 啟用補全
301
268
  omnilane ui start # 啟動或沿用本機 Live UI,印出網址
302
269
  omnilane ui status # 查看 Live UI 是否運作中
303
270
  omnilane ui url # 印出目前通過驗證的本機網址
@@ -310,12 +277,17 @@ dispatch.sh [--json] --list [--json]
310
277
  dispatch.sh [--json] --explain 通道 [--json] # 離線逐候選解釋路由決策
311
278
  dispatch.sh [--json] --validate [--json] # 離線檢查生效路由,不呼叫模型
312
279
  jobs.sh [--json] {list | status 工作ID | result 工作ID} # JSON 結果只回中繼資料,不回本文
280
+ jobs.sh [--json] list [--lane L] [--vendor V] [--status running|done] # 過濾清單
313
281
  jobs.sh wait 工作ID [--timeout N] # 工作結束碼;124 逾時;125 工作者消失
314
- jobs.sh [--json] stats [--last N] # 本機成功率與路由彙整
282
+ jobs.sh cancel 工作ID # 停止執行中的工作:整組 SIGTERM,再 SIGKILL
283
+ jobs.sh rm 工作ID # 刪除單一已完成/已死工作(執行中會被拒絕)
284
+ jobs.sh [--json] stats [--last N] [--lane L] [--vendor V] # 本機成功率與路由彙整
315
285
  jobs.sh audit [--last N] [--json] # 唯讀檢查工作完整性與隱私
316
286
  jobs.sh prune [--keep N] [--apply] # 預設只預覽;只清理已完成工作
287
+ omnilane mcp # MCP stdio server(需 Node.js)
317
288
  omnilane release-audit [--target 版本] [--json] # 離線、唯讀的發布閘門
318
289
  configure.sh # 互動通道選單
290
+ configure.sh set|get|unset|list|diff LANE [SPEC] # 非互動編輯/檢視 routing.local.yaml
319
291
  ```
320
292
 
321
293
  **重大決定可以開評審團,不是問一個人。**`arbitrate` 通道**預設關閉**——
@@ -388,12 +360,102 @@ codex/claude/grok/gemini 自選 1-4 個評審。開了之後,同一個問題丟
388
360
  外卡住,因此上面的自動保險絲會限制這個情境並清掉受監工的程序群組。Omnilane
389
361
  不會自動執行 `git init`,也不要求使用者建立 repo。
390
362
 
363
+ ## 📜 版本歷程
364
+
365
+ <details>
366
+ <summary>舊版本(v0.8.3 以前)</summary>
367
+
368
+ ## v0.8.3 新功能
369
+
370
+ - **MCP server** — `omnilane mcp` 啟動零依賴的 stdio MCP server,任何支援
371
+ MCP 的宿主(Claude Code、Codex、Gemini CLI、Cursor、OpenCode……)不必安裝
372
+ skill 就能發現並呼叫 omnilane:提供 `route`、`jobs_status`、`jobs_result`、
373
+ `list_lanes` 四個工具。`route` 預設唯讀 advise 模式;work 模式必須明確
374
+ 指定 workdir。
375
+
376
+ ## v0.8.2 新功能
377
+
378
+ - **`openrouter` vendor** — 只要 `curl` 加一把 `OPENROUTER_API_KEY`,
379
+ 就能直連 OpenRouter API 派工:任何 omnilane 安裝都摸得到數百個
380
+ 託管模型,不必再裝任何代理 CLI。僅限 advise/consult(不能改檔,
381
+ work 模式會明確報錯指路),模型 slug 必填,例如
382
+ `dispatch.sh --vendor openrouter --model anthropic/claude-sonnet-5 consult "..."`。
383
+ - **`deepseek`、`zai`、`mistral`、`groq`、`cerebras` vendor** — 與 `openrouter`
384
+ 同一條免 CLI 直連 API 路徑,對應 OpenAI-compatible 供應商:DeepSeek、Z.ai GLM、
385
+ Mistral、Groq、Cerebras。各只要 `curl` 加自己那把 `<VENDOR>_API_KEY`;僅限
386
+ advise/consult。端點、金鑰、預設模型由 `lib/common.sh` 一行 registry 定義。
387
+ 詳見 [`docs/model-capabilities-2026-07.md`](docs/model-capabilities-2026-07.md)。
388
+ - **`opencode` vendor** — 透過 OpenCode 多供應商聚合 CLI 無頭派工
389
+ (`opencode run`)。advise 模式鎖定內建唯讀 `plan` agent;work 模式
390
+ 用 `--auto`。加入預設 `coding-overflow` 鏈作為最後備援。
391
+
392
+ ## v0.8.1 新功能
393
+
394
+ - **Claude Code 外掛開場自動載入路由提醒** — 外掛新增 `SessionStart`
395
+ hook(`hooks/hooks.json`),於開場(`startup|resume|clear`)自動注入
396
+ 路由提醒,裝外掛即生效,不必修改 `~/.claude/CLAUDE.md`。其他 CLI
397
+ 仍走 `install.sh` 的指令檔提醒。
398
+
399
+ ## v0.8.0 新功能
400
+
401
+ - **兩個新派工 vendor** — `kimi`(Moonshot Kimi Code CLI)與 `qwen`
402
+ (Alibaba Qwen Code CLI)加入,沿用統一 runner 契約:advise 唯讀、
403
+ work 自動核准、剝除 API key 環境變數改用 CLI 自身訂閱登入、空輸出
404
+ 視為失敗。可用 `--vendor kimi|qwen` 直接點名。
405
+ - **coding-overflow 長出備援鏈** — 額度溢流道改為 grok → kimi → qwen
406
+ 再到 `off`,三家裝任一家即可用。runner 以假執行檔完成契約測試;
407
+ 歡迎回報真實模型實測結果。
408
+
409
+ ## v0.7.1 新功能
410
+
411
+ - **路由表更新(2026-07 模型數據)** — hardest-coding 首選改為 GPT-5.6 Sol
412
+ **max** 檔位:Artificial Analysis Coding Agent Index v1.1 測得 Sol (max)
413
+ 80 分為現任最高,汰換舊的「xhigh 勝 max」快照。
414
+ - **Claude 備援升檔** — hardest-coding 與 hard-judgment 的 Claude Opus 4.8
415
+ 備援改為 **xhigh**,依 Anthropic 官方對困難任務與長時間工作的建議。
416
+
417
+ ## v0.7.0 新功能
418
+
419
+ - **先預覽再派工** — `--dry-run` 印出完整解析後的派工計畫(vendor、模型、
420
+ 模式、逾時、副作用判定),不呼叫模型、不建立工作狀態。
421
+ - **版本化 JSON 自動化** — `--list`/`--explain`/`--validate` 與
422
+ `jobs list|status|result|stats` 都有 `--json` 信封;另有唯讀 `jobs wait`、
423
+ `jobs audit`,以及帶可重現 manifest 的離線 `omnilane release-audit` 發佈稽核。
424
+ - **本機工作一條龍** — `jobs tail` 窺看即時輸出、`jobs retry` 以 fail-closed
425
+ 方式重派已完成工作、`prune --older-than` 依時間清理,`--help` 覆蓋所有指令。
426
+ - **安裝與補全更安全** — `install.sh --check`/`--dry-run` 唯讀回報漂移,
427
+ `omnilane completion bash|zsh` 提供安全的 tab 補全,並修復五個 macOS 原生
428
+ Bash 3.2 崩潰。
429
+
430
+ ## v0.6.0 新功能
431
+
432
+ - **離線看懂並驗證路由** — 用 `--explain` 查看每個備援候選,或用
433
+ `--validate` 檢查完整生效路由表;都不會呼叫模型或建立工作狀態。
434
+ - **用機器可讀資料觀察本機狀態** — `jobs.sh stats` 提供有界統計,
435
+ `omnilane doctor --json` 提供健康檢查,又不會洩漏任務或結果正文。
436
+ - **在 Live Board 比較兩筆工作** — 把一筆已載入工作釘成只存在記憶體的
437
+ 參考快照,並排比較模型路徑與公開結果。
438
+ - **讓鎖恢復更安靜** — 擁有者檔案在檢查與讀取間消失時,不再洩漏容易誤判的
439
+ 缺檔診斷,同時維持 fail-closed。
440
+
441
+ ## v0.5.1 新功能
442
+
443
+ - **在非 Git 目錄使用 Codex work** — 一般資料夾仍完整支援;Omnilane 不要求、
444
+ 也絕不會自動執行 `git init`。
445
+ - **乾淨停止非 Git 卡死** — 未設定整體上限時,解析後的單次看門狗會自動成為
446
+ 程序群組保險絲,同時保留手動 timeout 的優先序與退出碼語意。
447
+ - **讓版本顯示可信** — `VERSION` 現在統一供應 `omnilane --version` 與兩份
448
+ plugin manifest,CI 會檢查變更紀錄和五語 README 是否一致。
449
+
450
+ </details>
451
+
391
452
  ## 🌱 狀態
392
453
 
393
- v0.8.3 共有八個派工 vendor——四個框架原生(codex、claude、grok、gemini)、
394
- 三個聚合/溢流 CLI(kimi、qwen、opencode),加上免 CLI 的 `openrouter` 直連
395
- API vendor——全部走統一 runner 契約並附 contract 測試,另有 Claude Code
396
- `SessionStart` 自動提醒。kimi、qwen、opencode、openrouter 的 runner 以假
454
+ omnilane 現有十三個派工 vendor——四個框架原生(codex、claude、grok、gemini)、
455
+ 三個聚合/溢流 CLI(kimi、qwen、opencode),加上六個免 CLI 的 OpenAI-compatible
456
+ 直連 API vendor(openrouter、deepseek、zai、mistral、groq、cerebras)——全部走
457
+ 統一 runner 契約並附 contract 測試,另有 Claude Code `SessionStart` 自動提醒與
458
+ MCP stdio server 介面(`omnilane mcp`)。直連 API 與聚合 runner 皆以假
397
459
  執行檔做過契約測試;歡迎回報真實模型使用經驗。Grok/Antigravity 指令殼行為
398
460
  仍可能隨 CLI 版本變動。歡迎回報 issue 與 PR。
399
461
 
package/VERSION CHANGED
@@ -1 +1 @@
1
- 0.8.3
1
+ 0.9.1
package/bin/omnilane CHANGED
@@ -40,13 +40,14 @@ case "$cmd" in
40
40
  ;;
41
41
  completion)
42
42
  [[ $# -eq 1 ]] || {
43
- echo "usage: omnilane completion bash|zsh" >&2
43
+ echo "usage: omnilane completion bash|zsh|fish" >&2
44
44
  exit 2
45
45
  }
46
46
  case "$1" in
47
47
  bash) cat "$REPO/completions/omnilane.bash" ;;
48
48
  zsh) cat "$REPO/completions/_omnilane" ;;
49
- *) echo "usage: omnilane completion bash|zsh" >&2; exit 2 ;;
49
+ fish) cat "$REPO/completions/omnilane.fish" ;;
50
+ *) echo "usage: omnilane completion bash|zsh|fish" >&2; exit 2 ;;
50
51
  esac
51
52
  ;;
52
53
  release-audit) exec bash "$REPO/scripts/release-audit.sh" "$@" ;;
@@ -69,7 +70,7 @@ omnilane — one routing table, every harness
69
70
  dispatch or consult a model
70
71
  omnilane jobs [--json] COMMAND [ARGS] list, status, result, stats, wait, or audit
71
72
  omnilane mcp start the MCP stdio server
72
- omnilane completion bash|zsh print a shell completion script
73
+ omnilane completion bash|zsh|fish print a shell completion script
73
74
  omnilane release-audit [flags] offline, read-only release gate
74
75
  omnilane doctor [--json] read-only local health report
75
76
  omnilane ui start|status|url|stop