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/CHANGELOG.md +51 -1
- package/README.ja.md +153 -96
- package/README.ko.md +152 -96
- package/README.md +161 -103
- package/README.zh-CN.md +134 -82
- package/README.zh-TW.md +140 -88
- package/VERSION +1 -1
- package/package.json +1 -1
- package/routing.yaml +17 -12
- package/scripts/configure.sh +19 -16
- package/scripts/runners/run-vote.sh +1 -1
package/README.zh-TW.md
CHANGED
|
@@ -21,105 +21,67 @@
|
|
|
21
21
|
|
|
22
22
|
---
|
|
23
23
|
|
|
24
|
-
##
|
|
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
|
-
|
|
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
|
-
|
|
43
|
-
|
|
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
|
-
|
|
32
|
+
你已經在用某個 AI 寫程式助手——**Claude Code、Codex、Cursor、Gemini
|
|
33
|
+
CLI** 之類。每個一次只接一個 AI 模型,而「每件工作該用哪個模型最好」得你自己決定。
|
|
57
34
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
35
|
+
**omnilane 幫你決定。** 每一件工作,它會自動派給對那件事最強(也最省)的模型——硬派程式
|
|
36
|
+
交給頂尖程式模型、隨手的小檢查交給又快又便宜的、長文件交給大脈絡模型——全部用你本來就在
|
|
37
|
+
付費的訂閱與 API 金鑰。用內建預設值就好,或改一個小設定檔就能微調。不用另外顧一套東西
|
|
38
|
+
(它躲在你現有工具背後跑),`./install.sh --uninstall` 可乾淨移除。
|
|
62
39
|
|
|
63
|
-
|
|
40
|
+
**[⬇ 直接跳到 60 秒上手](#-60-秒上手)**
|
|
64
41
|
|
|
65
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
52
|
+
- **修正**:`configure set` 不再刪掉 `routing.local.yaml` 裡手寫的註解——
|
|
53
|
+
只改寫自身的戳記行與被取代的 lane。
|
|
82
54
|
|
|
83
|
-
|
|
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
|
-
|
|
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
|
-
|
|
97
|
-
`--validate` 檢查完整生效路由表;都不會呼叫模型或建立工作狀態。
|
|
98
|
-
- **用機器可讀資料觀察本機狀態** — `jobs.sh stats` 提供有界統計,
|
|
99
|
-
`omnilane doctor --json` 提供健康檢查,又不會洩漏任務或結果正文。
|
|
100
|
-
- **在 Live Board 比較兩筆工作** — 把一筆已載入工作釘成只存在記憶體的
|
|
101
|
-
參考快照,並排比較模型路徑與公開結果。
|
|
102
|
-
- **讓鎖恢復更安靜** — 擁有者檔案在檢查與讀取間消失時,不再洩漏容易誤判的
|
|
103
|
-
缺檔診斷,同時維持 fail-closed。
|
|
63
|
+
## ⚡ 60 秒上手
|
|
104
64
|
|
|
105
|
-
|
|
65
|
+
**最快的方式——用 npm 裝:**
|
|
106
66
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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.
|
|
166
|
-
| ⚖️ hard-judgment |
|
|
167
|
-
| ✒️ taste-final | Claude Opus
|
|
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
|
|
170
|
-
| 📚 long-context | Gemini 3.1 Pro (High) | Claude Opus
|
|
171
|
-
| ⚡ fast-agentic | Gemini 3.
|
|
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
|
|
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** — 自己做:
|
|
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.
|
|
1
|
+
0.10.1
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "omnilane",
|
|
3
|
-
"version": "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
|
|
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-
|
|
18
|
-
bulk-mechanical: codex gpt-5.6-terra max | claude claude-sonnet-5 high | gemini "Gemini 3.
|
|
19
|
-
triage: codex gpt-5.6-luna medium | gemini "Gemini 3.
|
|
20
|
-
hard-judgment:
|
|
21
|
-
taste-final: claude claude-opus-
|
|
22
|
-
consult: codex gpt-5.6-sol max | claude claude-opus-
|
|
23
|
-
ui-draft: codex gpt-5.6-sol xhigh | claude claude-opus-
|
|
24
|
-
long-context: gemini "Gemini 3.1 Pro (High)" - | claude claude-opus-
|
|
25
|
-
fast-agentic: gemini "Gemini 3.
|
|
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 (
|
|
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.
|
|
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.
|
package/scripts/configure.sh
CHANGED
|
@@ -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
|
-
|
|
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
|
-
#
|
|
149
|
-
|
|
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-
|
|
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=("
|
|
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
|
|
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-
|
|
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" "
|
|
166
|
-
CEREBRAS_MODELS=("gpt-oss-120b" "qwen-3-
|
|
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-
|
|
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 ;;
|