omnilane 0.9.0 → 0.10.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-TW.md CHANGED
@@ -21,105 +21,67 @@
21
21
 
22
22
  ---
23
23
 
24
- ## v0.9.0 新功能
25
-
26
- - **五個 OpenAI-compatible direct-API vendor** — `deepseek`、`zai`(GLM)、
27
- `mistral`、`groq`、`cerebras`,與 `openrouter` 同為免 CLI 通道(curl 加一把
28
- `<VENDOR>_API_KEY`);`lib/common.sh` registry 一行即加一個。詳見
29
- [`docs/model-capabilities-2026-07.md`](docs/model-capabilities-2026-07.md)。
30
- - **fish shell 補全** — `omnilane completion fish | source`。
31
-
32
- ## v0.8.3 新功能
33
-
34
- - **MCP server** — `omnilane mcp` 啟動零依賴的 stdio MCP server,任何支援
35
- MCP 的宿主(Claude Code、Codex、Gemini CLI、Cursor、OpenCode……)不必安裝
36
- skill 就能發現並呼叫 omnilane:提供 `route`、`jobs_status`、`jobs_result`、
37
- `list_lanes` 四個工具。`route` 預設唯讀 advise 模式;work 模式必須明確
38
- 指定 workdir。
24
+ ## 2026-07-25 更新
39
25
 
40
- ## v0.8.2 新功能
26
+ - 預設路由加入 `claude-opus-5`:成為 `hard-judgment`、`taste-final` 第一順位,也納入最高難度程式任務的備援。
27
+ - `omnilane configure` 已擴充全部 13 個供應商:共 106 個可選模型,完整收錄 Codex、Claude Code、Grok Build、Antigravity 即時清單,並加入已驗證的 OpenRouter/OpenCode 捷徑;仍可用 `c` 輸入自訂模型 ID。
41
28
 
42
- - **`openrouter` vendor** — 只要 `curl` 加一把 `OPENROUTER_API_KEY`,
43
- 就能直連 OpenRouter API 派工:任何 omnilane 安裝都摸得到數百個
44
- 託管模型,不必再裝任何代理 CLI。僅限 advise/consult(不能改檔,
45
- work 模式會明確報錯指路),模型 slug 必填,例如
46
- `dispatch.sh --vendor openrouter --model anthropic/claude-sonnet-5 consult "..."`。
47
- - **`deepseek`、`zai`、`mistral`、`groq`、`cerebras` vendor** — 與 `openrouter`
48
- 同一條免 CLI 直連 API 路徑,對應 OpenAI-compatible 供應商:DeepSeek、Z.ai GLM、
49
- Mistral、Groq、Cerebras。各只要 `curl` 加自己那把 `<VENDOR>_API_KEY`;僅限
50
- advise/consult。端點、金鑰、預設模型由 `lib/common.sh` 一行 registry 定義。
51
- 詳見 [`docs/model-capabilities-2026-07.md`](docs/model-capabilities-2026-07.md)。
52
- - **`opencode` vendor** — 透過 OpenCode 多供應商聚合 CLI 無頭派工
53
- (`opencode run`)。advise 模式鎖定內建唯讀 `plan` agent;work 模式
54
- 用 `--auto`。加入預設 `coding-overflow` 鏈作為最後備援。
29
+ ---
30
+ ## 👋 第一次用?
55
31
 
56
- ## v0.8.1 新功能
32
+ 你已經在用某個 AI 寫程式助手——**Claude Code、Codex、Cursor、Gemini
33
+ CLI** 之類。每個一次只接一個 AI 模型,而「每件工作該用哪個模型最好」得你自己決定。
57
34
 
58
- - **Claude Code 外掛開場自動載入路由提醒** — 外掛新增 `SessionStart`
59
- hook(`hooks/hooks.json`),於開場(`startup|resume|clear`)自動注入
60
- 路由提醒,裝外掛即生效,不必修改 `~/.claude/CLAUDE.md`。其他 CLI
61
- 仍走 `install.sh` 的指令檔提醒。
35
+ **omnilane 幫你決定。** 每一件工作,它會自動派給對那件事最強(也最省)的模型——硬派程式
36
+ 交給頂尖程式模型、隨手的小檢查交給又快又便宜的、長文件交給大脈絡模型——全部用你本來就在
37
+ 付費的訂閱與 API 金鑰。用內建預設值就好,或改一個小設定檔就能微調。不用另外顧一套東西
38
+ (它躲在你現有工具背後跑),`./install.sh --uninstall` 可乾淨移除。
62
39
 
63
- ## v0.8.0 新功能
40
+ **[⬇ 直接跳到 60 秒上手](#-60-秒上手)**
64
41
 
65
- - **兩個新派工 vendor** — `kimi`(Moonshot Kimi Code CLI)與 `qwen`
66
- (Alibaba Qwen Code CLI)加入,沿用統一 runner 契約:advise 唯讀、
67
- work 自動核准、剝除 API key 環境變數改用 CLI 自身訂閱登入、空輸出
68
- 視為失敗。可用 `--vendor kimi|qwen` 直接點名。
69
- - **coding-overflow 長出備援鏈** — 額度溢流道改為 grok → kimi → qwen
70
- 再到 `off`,三家裝任一家即可用。runner 以假執行檔完成契約測試;
71
- 歡迎回報真實模型實測結果。
42
+ ## v0.10.0 新功能
72
43
 
73
- ## v0.7.1 新功能
44
+ - **Gemini 3.6 Flash 預設路由**——`fast-agentic`、`triage`、`bulk-mechanical`
45
+ 的 gemini 候選(與 `Gemini Flash` 別名)改用 2026-07-21 發布的 Gemini 3.6
46
+ Flash:輸出 token 更少、輸出單價更低、Artificial Analysis 實測輸出速度第一。
47
+ - **證據重稽核**——路由註解、模型能力筆記與 Gemini 價格表對官方來源刷新
48
+ (2026-07-21/22)。
74
49
 
75
- - **路由表更新(2026-07 模型數據)** — hardest-coding 首選改為 GPT-5.6 Sol
76
- **max** 檔位:Artificial Analysis Coding Agent Index v1.1 測得 Sol (max)
77
- 80 分為現任最高,汰換舊的「xhigh 勝 max」快照。
78
- - **Claude 備援升檔** — hardest-coding 與 hard-judgment 的 Claude Opus 4.8
79
- 備援改為 **xhigh**,依 Anthropic 官方對困難任務與長時間工作的建議。
50
+ ## v0.9.1 新功能
80
51
 
81
- ## v0.7.0 新功能
52
+ - **修正**:`configure set` 不再刪掉 `routing.local.yaml` 裡手寫的註解——
53
+ 只改寫自身的戳記行與被取代的 lane。
82
54
 
83
- - **先預覽再派工** — `--dry-run` 印出完整解析後的派工計畫(vendor、模型、
84
- 模式、逾時、副作用判定),不呼叫模型、不建立工作狀態。
85
- - **版本化 JSON 自動化** — `--list`/`--explain`/`--validate` 與
86
- `jobs list|status|result|stats` 都有 `--json` 信封;另有唯讀 `jobs wait`、
87
- `jobs audit`,以及帶可重現 manifest 的離線 `omnilane release-audit` 發佈稽核。
88
- - **本機工作一條龍** — `jobs tail` 窺看即時輸出、`jobs retry` 以 fail-closed
89
- 方式重派已完成工作、`prune --older-than` 依時間清理,`--help` 覆蓋所有指令。
90
- - **安裝與補全更安全** — `install.sh --check`/`--dry-run` 唯讀回報漂移,
91
- `omnilane completion bash|zsh` 提供安全的 tab 補全,並修復五個 macOS 原生
92
- Bash 3.2 崩潰。
55
+ ## v0.9.0 新功能
93
56
 
94
- ## v0.6.0 新功能
57
+ - **五個 OpenAI-compatible direct-API vendor** — `deepseek`、`zai`(GLM)、
58
+ `mistral`、`groq`、`cerebras`,與 `openrouter` 同為免 CLI 通道(curl 加一把
59
+ `<VENDOR>_API_KEY`);`lib/common.sh` registry 一行即加一個。詳見
60
+ [`docs/model-capabilities-2026-07.md`](docs/model-capabilities-2026-07.md)。
61
+ - **fish shell 補全** — `omnilane completion fish | source`。
95
62
 
96
- - **離線看懂並驗證路由** 用 `--explain` 查看每個備援候選,或用
97
- `--validate` 檢查完整生效路由表;都不會呼叫模型或建立工作狀態。
98
- - **用機器可讀資料觀察本機狀態** — `jobs.sh stats` 提供有界統計,
99
- `omnilane doctor --json` 提供健康檢查,又不會洩漏任務或結果正文。
100
- - **在 Live Board 比較兩筆工作** — 把一筆已載入工作釘成只存在記憶體的
101
- 參考快照,並排比較模型路徑與公開結果。
102
- - **讓鎖恢復更安靜** — 擁有者檔案在檢查與讀取間消失時,不再洩漏容易誤判的
103
- 缺檔診斷,同時維持 fail-closed。
63
+ ## 60 秒上手
104
64
 
105
- ## v0.5.1 新功能
65
+ **最快的方式——用 npm 裝:**
106
66
 
107
- - **在非 Git 目錄使用 Codex work** — 一般資料夾仍完整支援;Omnilane 不要求、
108
- 也絕不會自動執行 `git init`。
109
- - **乾淨停止非 Git 卡死** — 未設定整體上限時,解析後的單次看門狗會自動成為
110
- 程序群組保險絲,同時保留手動 timeout 的優先序與退出碼語意。
111
- - **讓版本顯示可信** `VERSION` 現在統一供應 `omnilane --version` 與兩份
112
- plugin manifest,CI 會檢查變更紀錄和五語 README 是否一致。
67
+ ```bash
68
+ npm i -g omnilane # 裝 CLI
69
+ omnilane route hardest-coding "修掉會間歇失敗的 auth token 更新測試"
70
+ omnilane doctor # 看你手上有哪些 AI CLI / 金鑰
71
+ omnilane ui start # 選配:在瀏覽器即時看派工
72
+ ```
113
73
 
114
- ## 60 秒上手
74
+ **或 clone 整包**(拿到路由表與可自訂的技能):
115
75
 
116
76
  ```bash
117
77
  git clone https://github.com/Seraphim0916/omnilane && cd omnilane
118
78
  ./install.sh # 偵測你的 CLI、接好技能、說你的語言
119
79
  omnilane route hardest-coding "修掉會間歇失敗的 auth token 更新測試"
120
- omnilane ui start # 選配:在瀏覽器即時看派工
121
80
  ```
122
81
 
82
+ > 第一次用?先跑 `omnilane doctor`——它會告訴你 omnilane 現在能接到哪些模型 CLI 與
83
+ > API 金鑰,你就知道實際會跑什麼。
84
+
123
85
  ## 🧭 運作方式
124
86
 
125
87
  omnilane 讓**任何**一個 agentic CLI 的主迴圈把子任務分類到通道(lane),
@@ -131,7 +93,7 @@ flowchart LR
131
93
  M["主迴圈<br/><i>你在用的任一 CLI</i>"] --> T{{"routing.yaml<br/>一張共用路由表"}}
132
94
  T -->|hardest-coding| C1["Codex — GPT-5.6 Sol"]
133
95
  T -->|bulk-mechanical| C2["Codex — GPT-5.6 Terra"]
134
- T -->|taste-final| C3["Claude — Opus 4.8"]
96
+ T -->|taste-final| C3["Claude — Opus 5"]
135
97
  T -->|long-context| C4["Gemini — 3.1 Pro"]
136
98
  T -->|live-search| C5["Grok — 4.5"]
137
99
  T -->|"arbitrate(選配)"| C6["vote — 1-4 模型評審團"]
@@ -160,15 +122,15 @@ flowchart LR
160
122
 
161
123
  | 通道 | 首選模型 | 備選模型 | 用途 |
162
124
  |---|---|---|---|
163
- | 🔥 hardest-coding | GPT-5.6 Sol (max) | Claude Opus 4.8 (xhigh) | 最難的實作、深度除錯、正確性攸關的修改 |
125
+ | 🔥 hardest-coding | GPT-5.6 Sol (max) | Claude Opus 5 (max) | 最難的實作、深度除錯、正確性攸關的修改 |
164
126
  | 🏗️ bulk-mechanical | GPT-5.6 Terra (max) | Claude Sonnet 5 (high) | 重構、搬遷、測試、大面積掃描——機械耐力活 |
165
- | 🧹 triage | GPT-5.6 Luna (medium) | Gemini 3.5 Flash (Low) | 高量初篩、第一輪過濾 |
166
- | ⚖️ hard-judgment | GPT-5.6 Sol (max) | Claude Opus 4.8 (xhigh) | 架構仲裁、深度推理、第二意見 |
167
- | ✒️ taste-final | Claude Opus 4.8 (high) | GPT-5.6 Sol (max) | 對外文字、prompt 與文件打磨、風格終審 |
127
+ | 🧹 triage | GPT-5.6 Luna (medium) | Gemini 3.6 Flash (Low) | 高量初篩、第一輪過濾 |
128
+ | ⚖️ hard-judgment | Claude Opus 5 (max) | GPT-5.6 Sol (max) | 架構仲裁、深度推理、第二意見 |
129
+ | ✒️ taste-final | Claude Opus 5 (high) | GPT-5.6 Sol (max) | 對外文字、prompt 與文件打磨、風格終審 |
168
130
  | 💬 consult | 明確點名的廠商/模型 | —(不降級) | 自然語言直接諮詢;必須保留 `--vendor` |
169
- | 🎨 ui-draft | GPT-5.6 Sol (xhigh) | Claude Opus 4.8 (high) | 有設計規範/參考圖時的 UI 出稿;開放式視覺品味交給 taste-final |
170
- | 📚 long-context | Gemini 3.1 Pro (High) | Claude Opus 4.8 (high) | 百萬 token 長文整合——僅限分析,不派 agentic 長鏈 |
171
- | ⚡ fast-agentic | Gemini 3.5 Flash (High) | GPT-5.6 Luna (high) | 快速多步驟 agentic 迴圈、多模態檢查 |
131
+ | 🎨 ui-draft | GPT-5.6 Sol (xhigh) | Claude Opus 5 (high) | 有設計規範/參考圖時的 UI 出稿;開放式視覺品味交給 taste-final |
132
+ | 📚 long-context | Gemini 3.1 Pro (High) | Claude Opus 5 (high) | 百萬 token 長文整合;Pro 可跑 agentic 工作,高速重複迴圈仍優先 Flash |
133
+ | ⚡ fast-agentic | Gemini 3.6 Flash (High) | GPT-5.6 Luna (high) | 快速多步驟 agentic 迴圈、多模態檢查 |
172
134
  | 📡 live-search | Grok 4.5 | —(off) | 即時 X/網路搜尋與社群脈絡 |
173
135
  | 🚰 coding-overflow | Grok 4.5 | Kimi K3 → Qwen3 Coder Plus → OpenCode | Codex 額度吃緊時的中量級編碼溢流道;事實性宣稱須另行查證 |
174
136
  | 🗳️ arbitrate | off(選配評審團) | — | 內建意見評審團,重大決定用——預設關閉,要用在 `routing.local.yaml` 開;每評審每輪燒一次額度 |
@@ -176,7 +138,8 @@ flowchart LR
176
138
  **備選模型**是候選鏈的下一位——首選那家的廠商 CLI 沒裝時,派工就降到它。
177
139
 
178
140
  > **Claude Fable 5 去哪了?** 預設表刻意不放:Claude 頂級檔通常就是*主迴圈本人*,
179
- > 不是被派發的工人,而且定價高於 Opus。設定選單的模型清單有列它——
141
+ > 不是被派發的工人,而且定價高於 Opus。這是成本/護欄/主迴圈策略,不代表能力
142
+ > 不如 Opus;Anthropic 將 Fable 5 定位在 Opus 5 之上。設定選單的模型清單有列它——
180
143
  > 不同意就自己路由過去(例如在 `routing.local.yaml` 寫
181
144
  > `taste-final: claude claude-fable-5 high`)。
182
145
 
@@ -200,11 +163,11 @@ flowchart LR
200
163
  的 `omnilane` 技能會自動套對的那一列,這裡是給人看的版本。
201
164
 
202
165
  - **Claude Code · Fable 5** — 自己做:hard-judgment、taste-final、最吃正確性的硬修。派出去:機械編碼量 → Codex、長文 → Gemini、即時搜尋 → Grok。
203
- - **Claude Code · Opus 4.8** — 自己做:taste-final。hard-judgment 派給 Codex Sol(智力分高於 Opus)、所有編碼走 Codex 通道、長文 → Gemini、即時搜尋 → Grok。
166
+ - **Claude Code · Opus 5** — 自己做:hard-judgment、taste-final。大量編碼走 Codex 通道、長文 → Gemini、即時搜尋 → Grok。
204
167
  - **Codex · Sol** — 自己做:hardest-coding、hard-judgment、ui-draft。派出去:taste-final → Claude、長文 → Gemini、即時搜尋 → Grok、粗活 → Codex Terra。
205
168
  - **Codex · Terra** — 自己做:bulk-mechanical。真正最硬的往上升給 Sol;taste → Claude、長文 → Gemini、即時搜尋 → Grok。
206
169
  - **Grok Build · Grok 4.5** — 自己做:live-search、coding-overflow(中量級編碼)。所有硬活派給 Codex/Claude/Gemini——先驗每個 API 簽章與引用事實。
207
- - **Antigravity · Gemini** — 自己做:long-context(3.1 Pro)、fast-agentic(Flash)。編碼/判斷/文字派給 Codex/Claude;即時搜尋 → Grok。3.1 Pro 絕不接 agentic 工具長鏈。
170
+ - **Antigravity · Gemini** — 自己做:3.1 Pro 的長文與重脈絡 agentic 工作、Flash 的高速重複迴圈。最硬的編碼/判斷/文字派給 Codex/Claude;即時搜尋 → Grok。
208
171
 
209
172
  </details>
210
173
 
@@ -412,6 +375,95 @@ codex/claude/grok/gemini 自選 1-4 個評審。開了之後,同一個問題丟
412
375
  外卡住,因此上面的自動保險絲會限制這個情境並清掉受監工的程序群組。Omnilane
413
376
  不會自動執行 `git init`,也不要求使用者建立 repo。
414
377
 
378
+ ## 📜 版本歷程
379
+
380
+ <details>
381
+ <summary>舊版本(v0.8.3 以前)</summary>
382
+
383
+ ## v0.8.3 新功能
384
+
385
+ - **MCP server** — `omnilane mcp` 啟動零依賴的 stdio MCP server,任何支援
386
+ MCP 的宿主(Claude Code、Codex、Gemini CLI、Cursor、OpenCode……)不必安裝
387
+ skill 就能發現並呼叫 omnilane:提供 `route`、`jobs_status`、`jobs_result`、
388
+ `list_lanes` 四個工具。`route` 預設唯讀 advise 模式;work 模式必須明確
389
+ 指定 workdir。
390
+
391
+ ## v0.8.2 新功能
392
+
393
+ - **`openrouter` vendor** — 只要 `curl` 加一把 `OPENROUTER_API_KEY`,
394
+ 就能直連 OpenRouter API 派工:任何 omnilane 安裝都摸得到數百個
395
+ 託管模型,不必再裝任何代理 CLI。僅限 advise/consult(不能改檔,
396
+ work 模式會明確報錯指路),模型 slug 必填,例如
397
+ `dispatch.sh --vendor openrouter --model anthropic/claude-sonnet-5 consult "..."`。
398
+ - **`deepseek`、`zai`、`mistral`、`groq`、`cerebras` vendor** — 與 `openrouter`
399
+ 同一條免 CLI 直連 API 路徑,對應 OpenAI-compatible 供應商:DeepSeek、Z.ai GLM、
400
+ Mistral、Groq、Cerebras。各只要 `curl` 加自己那把 `<VENDOR>_API_KEY`;僅限
401
+ advise/consult。端點、金鑰、預設模型由 `lib/common.sh` 一行 registry 定義。
402
+ 詳見 [`docs/model-capabilities-2026-07.md`](docs/model-capabilities-2026-07.md)。
403
+ - **`opencode` vendor** — 透過 OpenCode 多供應商聚合 CLI 無頭派工
404
+ (`opencode run`)。advise 模式鎖定內建唯讀 `plan` agent;work 模式
405
+ 用 `--auto`。加入預設 `coding-overflow` 鏈作為最後備援。
406
+
407
+ ## v0.8.1 新功能
408
+
409
+ - **Claude Code 外掛開場自動載入路由提醒** — 外掛新增 `SessionStart`
410
+ hook(`hooks/hooks.json`),於開場(`startup|resume|clear`)自動注入
411
+ 路由提醒,裝外掛即生效,不必修改 `~/.claude/CLAUDE.md`。其他 CLI
412
+ 仍走 `install.sh` 的指令檔提醒。
413
+
414
+ ## v0.8.0 新功能
415
+
416
+ - **兩個新派工 vendor** — `kimi`(Moonshot Kimi Code CLI)與 `qwen`
417
+ (Alibaba Qwen Code CLI)加入,沿用統一 runner 契約:advise 唯讀、
418
+ work 自動核准、剝除 API key 環境變數改用 CLI 自身訂閱登入、空輸出
419
+ 視為失敗。可用 `--vendor kimi|qwen` 直接點名。
420
+ - **coding-overflow 長出備援鏈** — 額度溢流道改為 grok → kimi → qwen
421
+ 再到 `off`,三家裝任一家即可用。runner 以假執行檔完成契約測試;
422
+ 歡迎回報真實模型實測結果。
423
+
424
+ ## v0.7.1 新功能
425
+
426
+ - **路由表更新(2026-07 模型數據)** — hardest-coding 首選改為 GPT-5.6 Sol
427
+ **max** 檔位:Artificial Analysis Coding Agent Index v1.1 測得 Sol (max)
428
+ 80 分為現任最高,汰換舊的「xhigh 勝 max」快照。
429
+ - **Claude 備援升檔** — hardest-coding 與 hard-judgment 的 Claude Opus 4.8
430
+ 備援改為 **xhigh**,依 Anthropic 官方對困難任務與長時間工作的建議。
431
+
432
+ ## v0.7.0 新功能
433
+
434
+ - **先預覽再派工** — `--dry-run` 印出完整解析後的派工計畫(vendor、模型、
435
+ 模式、逾時、副作用判定),不呼叫模型、不建立工作狀態。
436
+ - **版本化 JSON 自動化** — `--list`/`--explain`/`--validate` 與
437
+ `jobs list|status|result|stats` 都有 `--json` 信封;另有唯讀 `jobs wait`、
438
+ `jobs audit`,以及帶可重現 manifest 的離線 `omnilane release-audit` 發佈稽核。
439
+ - **本機工作一條龍** — `jobs tail` 窺看即時輸出、`jobs retry` 以 fail-closed
440
+ 方式重派已完成工作、`prune --older-than` 依時間清理,`--help` 覆蓋所有指令。
441
+ - **安裝與補全更安全** — `install.sh --check`/`--dry-run` 唯讀回報漂移,
442
+ `omnilane completion bash|zsh` 提供安全的 tab 補全,並修復五個 macOS 原生
443
+ Bash 3.2 崩潰。
444
+
445
+ ## v0.6.0 新功能
446
+
447
+ - **離線看懂並驗證路由** — 用 `--explain` 查看每個備援候選,或用
448
+ `--validate` 檢查完整生效路由表;都不會呼叫模型或建立工作狀態。
449
+ - **用機器可讀資料觀察本機狀態** — `jobs.sh stats` 提供有界統計,
450
+ `omnilane doctor --json` 提供健康檢查,又不會洩漏任務或結果正文。
451
+ - **在 Live Board 比較兩筆工作** — 把一筆已載入工作釘成只存在記憶體的
452
+ 參考快照,並排比較模型路徑與公開結果。
453
+ - **讓鎖恢復更安靜** — 擁有者檔案在檢查與讀取間消失時,不再洩漏容易誤判的
454
+ 缺檔診斷,同時維持 fail-closed。
455
+
456
+ ## v0.5.1 新功能
457
+
458
+ - **在非 Git 目錄使用 Codex work** — 一般資料夾仍完整支援;Omnilane 不要求、
459
+ 也絕不會自動執行 `git init`。
460
+ - **乾淨停止非 Git 卡死** — 未設定整體上限時,解析後的單次看門狗會自動成為
461
+ 程序群組保險絲,同時保留手動 timeout 的優先序與退出碼語意。
462
+ - **讓版本顯示可信** — `VERSION` 現在統一供應 `omnilane --version` 與兩份
463
+ plugin manifest,CI 會檢查變更紀錄和五語 README 是否一致。
464
+
465
+ </details>
466
+
415
467
  ## 🌱 狀態
416
468
 
417
469
  omnilane 現有十三個派工 vendor——四個框架原生(codex、claude、grok、gemini)、
package/VERSION CHANGED
@@ -1 +1 @@
1
- 0.9.0
1
+ 0.10.1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "omnilane",
3
- "version": "0.9.0",
3
+ "version": "0.10.1",
4
4
  "description": "One routing table, every harness — classify subtasks into lanes and dispatch each lane to the best vendor's agentic CLI (Codex, Claude, Gemini, Grok) using your existing subscription logins.",
5
5
  "bin": {
6
6
  "omnilane": "bin/omnilane"
package/routing.yaml CHANGED
@@ -7,30 +7,35 @@
7
7
  # Fallback chain: the first candidate whose vendor CLI is installed wins, so the
8
8
  # same table degrades gracefully when you only subscribe to one or two vendors.
9
9
  # Override any line in ~/.omnilane/routing.local.yaml (same format; local wins).
10
- # Provenance (audited 2026-07-12): defaults follow Artificial Analysis data, 2026-07
10
+ # Provenance (audited 2026-07-12, re-audited 2026-07-25 vs official model cards;
11
+ # Gemini Flash candidates moved 3.5 -> 3.6 on 2026-07-22; Claude Opus defaults moved
12
+ # 4.8 -> 5 after the 2026-07-24 release — see docs/model-capabilities-2026-07.md):
13
+ # defaults follow Artificial Analysis data, 2026-07
11
14
  # snapshot. Verified against AA site records + vendor pricing pages: Intelligence &
12
15
  # Coding indexes and 7:2:1 blended prices all match (AA field price1mBlended7To2To1);
13
16
  # coding cost-per-task is chart-only (not independently reconstructed). Prices are
14
17
  # standard short-context API tier — on subscription CLIs treat $ as relative ranking.
15
18
  # Your own job outcomes (~/.omnilane/jobs/) outrank these priors; edit lanes to match.
16
19
 
17
- hardest-coding: codex gpt-5.6-sol max | claude claude-opus-4-8 xhigh # AA Coding Agent Index v1.1: Sol (max) 80 = SOTA (2026-07-09, Codex harness); Claude xhigh per Anthropic guidance for difficult tasks
18
- bulk-mechanical: codex gpt-5.6-terra max | claude claude-sonnet-5 high | gemini "Gemini 3.5 Flash (High)" - # Terra 76.66 ~= Fable-class at a fraction of the cost
19
- triage: codex gpt-5.6-luna medium | gemini "Gemini 3.5 Flash (Low)" - | claude claude-haiku-4-5 - # high-volume scans
20
- hard-judgment: codex gpt-5.6-sol max | claude claude-opus-4-8 xhigh # Sol max Intelligence 59 second only to Fable 5 (2026-07-09 AA); Claude xhigh per Anthropic guidance for difficult tasks
21
- taste-final: claude claude-opus-4-8 high | codex gpt-5.6-sol max # user-facing prose, prompt/doc polish, Chinese phrasing, style arbitration
22
- consult: codex gpt-5.6-sol max | claude claude-opus-4-8 high | grok grok-4.5 - | gemini "Gemini 3.1 Pro (High)" - # direct named-model consultation; use --vendor to prevent fallback
23
- ui-draft: codex gpt-5.6-sol xhigh | claude claude-opus-4-8 high # only with a design system / reference images; open-ended visual taste -> taste-final
24
- long-context: gemini "Gemini 3.1 Pro (High)" - | claude claude-opus-4-8 high | codex gpt-5.6-sol high # 1M-token synthesis ONLY never agentic loops (AA agentic 21.4)
25
- fast-agentic: gemini "Gemini 3.5 Flash (High)" - | codex gpt-5.6-luna high # speed + agentic tool loops
20
+ hardest-coding: codex gpt-5.6-sol max | claude claude-opus-5 max # Opus 5 xhigh is joint-first on AA Coding Agent Index (2026-07-24); max adds test-time compute for correctness-critical fallback. Keep Sol first for the established Codex harness lane.
21
+ bulk-mechanical: codex gpt-5.6-terra max | claude claude-sonnet-5 high | gemini "Gemini 3.6 Flash (High)" - # AA Coding Agent Index v1.1: Terra 77.4 ~= Fable 77.2 at a fraction of the cost
22
+ triage: codex gpt-5.6-luna medium | gemini "Gemini 3.6 Flash (Low)" - | claude claude-haiku-4-5 - # high-volume scans
23
+ hard-judgment: claude claude-opus-5 max | codex gpt-5.6-sol max # AA Intelligence Index 2026-07-24: Opus 5 max 61, Sol max 59; Opus leads AA agentic knowledge-work benchmarks
24
+ taste-final: claude claude-opus-5 high | codex gpt-5.6-sol max # user-facing prose, prompt/doc polish, Chinese phrasing, style arbitration
25
+ consult: codex gpt-5.6-sol max | claude claude-opus-5 high | grok grok-4.5 - | gemini "Gemini 3.1 Pro (High)" - # direct named-model consultation; use --vendor to prevent fallback
26
+ ui-draft: codex gpt-5.6-sol xhigh | claude claude-opus-5 high # only with a design system / reference images; open-ended visual taste -> taste-final
27
+ long-context: gemini "Gemini 3.1 Pro (High)" - | claude claude-opus-5 high | codex gpt-5.6-sol high # all have 1M context; prefer Gemini for cost + long-doc synthesis, Flash for fast loops
28
+ fast-agentic: gemini "Gemini 3.6 Flash (High)" - | codex gpt-5.6-luna high # speed + agentic tool loops; 3.6 Flash (released 2026-07-21): AA Intelligence 50, #1 output speed 303.6 tok/s, -17% output tokens vs 3.5 Flash per Google
26
29
  live-search: grok grok-4.5 - | off # native X/web search lane; no real substitute
27
- coding-overflow: grok grok-4.5 - | kimi kimi-k3 - | qwen qwen3-coder-plus - | opencode - - | off # codex-quota relief valve: mid-tier coding; verify factual claims (grok hallucination-prone). kimi/qwen model fields are CLI aliases — adjust to your login. opencode "-" model = its own configured default.
30
+ coding-overflow: grok grok-4.5 - | kimi kimi-k3 - | qwen qwen3-coder-plus - | opencode - - | off # codex-quota relief valve: mid-tier coding; Grok 4.5 (GA 2026-07-16) Terminal-Bench 83.3 / SWE-Bench Pro 64.7, but AA hallucination 54% — verify factual claims. qwen3-coder-plus = 2025-09-23 snapshot alias (Qwen 3.6 Plus exists; re-evaluate before swapping). kimi/qwen model fields are CLI aliases — adjust to your login. opencode "-" model = its own configured default.
28
31
  arbitrate: off - - # opinion panel is OPT-IN: it costs one call per voter per round.
29
32
  # Enable: `arbitrate: vote codex,claude,grok -` (any 1-4 of codex/claude/grok/gemini)
30
33
  # Debate round (each voter rebuts the others): set the effort field to 2.
31
34
  # Custom gate: `arbitrate: exec /path/to/script -`
32
35
  # Claude Fable 5 (claude-fable-5) is deliberately absent from the defaults: the top Claude tier
33
- # is usually the MAIN LOOP itself, not a dispatched worker, and it prices above Opus. If you want
36
+ # is usually the MAIN LOOP itself, not a dispatched worker, and it prices above Opus. This is a
37
+ # cost / guardrail / main-loop policy choice, NOT a capability verdict — Anthropic positions
38
+ # Fable 5 above Opus 4.8. If you want
34
39
  # to route to it anyway, pick it in the configurator or set e.g.
35
40
  # taste-final: claude claude-fable-5 high
36
41
  # in ~/.omnilane/routing.local.yaml.
@@ -60,7 +60,9 @@ cfg_set() {
60
60
  {
61
61
  echo "# updated by 'configure set' on $(date +%F) — first match per lane wins"
62
62
  echo "$lane: $spec"
63
- [[ "$had_file" -eq 1 ]] && grep -v '^#' "$LOCAL_FILE.bak" | grep -v "^$lane:" || true
63
+ # Drop only our own stamp line and the lane being replaced; the user's own
64
+ # comments in routing.local.yaml survive a set.
65
+ [[ "$had_file" -eq 1 ]] && grep -v "^# updated by 'configure set'" "$LOCAL_FILE.bak" | grep -v "^$lane:" || true
64
66
  } > "$tmp"
65
67
  mv "$tmp" "$LOCAL_FILE"
66
68
 
@@ -145,25 +147,26 @@ case "${1:-}" in
145
147
  -h|--help|help) cfg_usage; exit 0 ;;
146
148
  esac
147
149
 
148
- # Curated suggestions only "c" always allows free text so new models work.
149
- CODEX_MODELS=("gpt-5.6-sol" "gpt-5.6-terra" "gpt-5.6-luna")
150
+ # Native CLI catalogs are pinned from each installed CLI's live model surface.
151
+ # Dynamic/API catalogs stay curated — "c" always accepts an exact model ID.
152
+ CODEX_MODELS=("gpt-5.6" "gpt-5.6-sol" "gpt-5.6-terra" "gpt-5.6-luna" "gpt-5.5" "gpt-5.4" "gpt-5.4-mini" "gpt-5.3-codex-spark")
150
153
  CODEX_EFFORTS=("xhigh" "max" "ultra" "high" "medium" "low" "minimal" "none")
151
- CLAUDE_MODELS=("claude-opus-4-8" "claude-fable-5" "claude-sonnet-5" "claude-haiku-4-5")
154
+ CLAUDE_MODELS=("default" "best" "fable" "opus" "sonnet" "haiku" "opus[1m]" "sonnet[1m]" "opusplan" "claude-fable-5" "claude-opus-5" "claude-sonnet-5" "claude-opus-4-8" "claude-opus-4-7" "claude-opus-4-6" "claude-opus-4-5-20251101" "claude-sonnet-4-6" "claude-sonnet-4-5-20250929" "claude-haiku-4-5" "claude-haiku-4-5-20251001")
152
155
  CLAUDE_EFFORTS=("max" "xhigh" "high" "medium" "low" "-")
153
- GEMINI_MODELS=("Gemini 3.1 Pro (High)" "Gemini 3.1 Pro (Low)" "Gemini 3.5 Flash (High)" "Gemini 3.5 Flash (Medium)" "Gemini 3.5 Flash (Low)")
154
- GROK_MODELS=("grok-4.5" "grok-4.3")
155
- KIMI_MODELS=("kimi-k3" "kimi-k2.7-code")
156
- QWEN_MODELS=("qwen3-coder-plus" "qwen3-coder-flash")
157
- # OpenCode models use provider/model form; OpenRouter models are catalog slugs.
158
- OPENCODE_MODELS=("openrouter/anthropic/claude-sonnet-5" "openrouter/openai/gpt-5.6-sol" "opencode/default (leave model to opencode)")
159
- OPENROUTER_MODELS=("anthropic/claude-sonnet-5" "openai/gpt-5.6-sol" "moonshotai/kimi-k3" "qwen/qwen3-coder-plus")
156
+ GEMINI_MODELS=("gemini-3.6-flash-high" "gemini-3.6-flash-medium" "gemini-3.6-flash-low" "gemini-3.5-flash-high" "gemini-3.5-flash-medium" "gemini-3.5-flash-low" "gemini-3.1-pro-high" "gemini-3.1-pro-low" "claude-sonnet-4-6" "claude-opus-4-6-thinking" "gpt-oss-120b-medium")
157
+ GROK_MODELS=("grok-4.5" "headroom-grok-build" "grok-4.3-official")
158
+ KIMI_MODELS=("kimi-k3" "kimi-k2.7-code" "kimi-k2.5")
159
+ QWEN_MODELS=("qwen3.7-max" "qwen3.7-plus" "qwen3.6-plus" "qwen3.5-plus" "qwen3-max-2026-01-23" "qwen3-coder-next" "qwen3-coder-plus" "qwen3-coder-flash")
160
+ # OpenCode models use provider/model form; OpenRouter models use catalog slugs.
161
+ OPENCODE_MODELS=("openrouter/anthropic/claude-opus-5" "openrouter/anthropic/claude-fable-5" "openrouter/anthropic/claude-sonnet-5" "openrouter/openai/gpt-5.6-sol" "openrouter/openai/gpt-5.6-terra" "openrouter/openai/gpt-5.6-luna" "openrouter/x-ai/grok-4.5" "openrouter/google/gemini-3.6-flash" "openrouter/moonshotai/kimi-k3" "openrouter/moonshotai/kimi-k2.7-code" "openrouter/qwen/qwen3.7-max" "openrouter/qwen/qwen3.7-plus" "openrouter/qwen/qwen3-coder-plus" "opencode/default (leave model to opencode)")
162
+ OPENROUTER_MODELS=("anthropic/claude-opus-5" "anthropic/claude-fable-5" "anthropic/claude-sonnet-5" "openai/gpt-5.6-sol" "openai/gpt-5.6-terra" "openai/gpt-5.6-luna" "x-ai/grok-4.5" "google/gemini-3.6-flash" "moonshotai/kimi-k3" "moonshotai/kimi-k2.7-code" "qwen/qwen3.7-max" "qwen/qwen3.7-plus" "qwen/qwen3-coder-plus")
160
163
  # Direct-API OpenAI-compatible vendors (curl + <VENDOR>_API_KEY); slugs are
161
164
  # suggestions — "c" free text covers anything each provider's /models lists.
162
- DEEPSEEK_MODELS=("deepseek-chat" "deepseek-reasoner" "deepseek-v4-flash")
163
- ZAI_MODELS=("glm-4.6")
164
- MISTRAL_MODELS=("devstral-latest" "codestral-latest" "mistral-medium-latest")
165
- GROQ_MODELS=("openai/gpt-oss-120b" "qwen/qwen3.6-27b" "openai/gpt-oss-20b")
166
- CEREBRAS_MODELS=("gpt-oss-120b" "qwen-3-32b" "llama-3.3-70b")
165
+ DEEPSEEK_MODELS=("deepseek-v4-pro" "deepseek-v4-flash")
166
+ ZAI_MODELS=("glm-5.1" "glm-5" "glm-5-turbo" "glm-4.7" "glm-4.7-flashx" "glm-4.7-flash" "glm-4.6")
167
+ MISTRAL_MODELS=("devstral-latest" "devstral-small-latest" "codestral-latest" "mistral-medium-latest" "mistral-large-latest")
168
+ GROQ_MODELS=("groq/compound" "groq/compound-mini" "openai/gpt-oss-120b" "openai/gpt-oss-20b" "qwen/qwen3.6-27b" "llama-3.3-70b-versatile" "llama-3.1-8b-instant")
169
+ CEREBRAS_MODELS=("zai-glm-4.7" "gpt-oss-120b" "qwen-3-235b-a22b-instruct-2507" "qwen-3-32b" "llama3.1-8b")
167
170
 
168
171
  custom_value_is_safe() {
169
172
  case "$1" in
@@ -31,7 +31,7 @@ trap cleanup_temp_files EXIT
31
31
  voter_spec() { # vendor -> "model<TAB>effort"
32
32
  case "$1" in
33
33
  codex) printf 'gpt-5.6-sol\thigh' ;;
34
- claude) printf 'claude-opus-4-8\thigh' ;;
34
+ claude) printf 'claude-opus-5\thigh' ;;
35
35
  gemini) printf 'Gemini 3.1 Pro (High)\t-' ;;
36
36
  grok) printf 'grok-4.5\t-' ;;
37
37
  *) return 1 ;;