omnilane 0.11.0 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -6,6 +6,60 @@ semantic version tags.
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [0.12.0] - 2026-08-03
10
+
11
+ ### Changed
12
+
13
+ - `hardest-coding` now runs GPT-5.6 Sol at `xhigh` instead of `max`. On
14
+ Artificial Analysis's per-effort Coding Index, Sol at xhigh scores ahead of
15
+ Sol at max and of every Claude tier, at roughly a third less cost per task:
16
+ past xhigh, more effort buys overthinking on this workload rather than
17
+ accuracy. The lane's Claude candidate is unchanged.
18
+ - `fast-agentic` now runs GPT-5.6 Luna first, with Gemini 3.6 Flash as the
19
+ second candidate. Luna leads Flash on AA's Agentic Index by a wide margin,
20
+ and OpenAI's 2026-07-30 reprice left it costing a fraction as much per task.
21
+ Flash keeps only a throughput advantage, so put it back in front locally if
22
+ your loops are latency-bound. Both models accept image input, so the lane's
23
+ multimodal checks are unaffected either way.
24
+ - Lane comments in `routing.yaml` no longer carry benchmark scores, prices or
25
+ throughput figures. They state why a lane is ordered the way it is, which
26
+ stays true for months; the figures, each with the date it was retrieved, now
27
+ live only in `docs/model-capabilities-2026-07.md`. A number going stale
28
+ should not require a routing-table edit. This refresh found a Coding Agent
29
+ Index figure that had survived two re-bases inside a comment while the docs
30
+ forbade quoting that index at all.
31
+
32
+ ### Added
33
+
34
+ - **`--mode sysops`**, a third dispatch mode: `work` minus the vendor sandbox,
35
+ for service operations the sandbox denies (`launchctl` and similar). Codex
36
+ runs it with `-s danger-full-access`; every other vendor treats it as plain
37
+ `work`. It hands the worker full access to the machine, so it is an explicit
38
+ per-dispatch flag and cannot be set as a lane default — an invalid `--mode`
39
+ still exits 2 rather than falling through to a write-enabled branch. Codex
40
+ under `work` or `sysops` continues to require a git-repo `--workdir`.
41
+ - `routing.local.yaml.example` ships a **value profile**: the same vendors one
42
+ effort notch cheaper, trading about one Intelligence Index point for 30-40%
43
+ off the cost per task, plus a clearly-marked riskier tier for models on the
44
+ cost/intelligence frontier that hallucinate heavily.
45
+ - `docs/model-capabilities-2026-07.md` documents AA's two Capability Indices —
46
+ Coding Index (Terminal-Bench v2.1 + SciCode) and Agentic Index (GDPval-AA v2
47
+ + τ³-Banking) — with the composition, weights and the caveat that neither
48
+ carries a version label, so a re-base would arrive silently.
49
+
50
+ ### Fixed
51
+
52
+ - Corrected the pricing table for OpenAI's 2026-07-30 reprice: GPT-5.6 Terra is
53
+ $2/$12 and Luna is $0.20/$1.20; Sol is unchanged. Subscription quotas are
54
+ unchanged but Terra and Luna now consume fewer credits.
55
+ - Replaced the Intelligence Index table, which quoted a 2026-07-24 article, with
56
+ values retrieved from AA on 2026-08-02. AA re-measures, and most rows had
57
+ moved 10-20% on cost per task in the interim.
58
+ - Documented that AA's **Coding Index is not the Coding Agent Index**. They
59
+ share no components, and their numbers collide: Claude Opus 5 reads 77.98 on
60
+ the former, right on top of the 77/78 figures circulating for the latter's
61
+ v1.3.
62
+
9
63
  ## [0.11.0] - 2026-07-27
10
64
 
11
65
  No routing changes. The Live Board is now readable in five languages.
@@ -475,7 +529,8 @@ work to the wrong model, and records the evidence behind the shipped defaults.
475
529
  - Initial shared routing table, cross-vendor dispatcher, runners, installer,
476
530
  and baseline lint fixes.
477
531
 
478
- [Unreleased]: https://github.com/Seraphim0916/omnilane/compare/v0.11.0...HEAD
532
+ [Unreleased]: https://github.com/Seraphim0916/omnilane/compare/v0.12.0...HEAD
533
+ [0.12.0]: https://github.com/Seraphim0916/omnilane/compare/v0.11.0...v0.12.0
479
534
  [0.11.0]: https://github.com/Seraphim0916/omnilane/compare/v0.10.4...v0.11.0
480
535
  [0.10.4]: https://github.com/Seraphim0916/omnilane/compare/v0.10.3...v0.10.4
481
536
  [0.10.3]: https://github.com/Seraphim0916/omnilane/compare/v0.10.2...v0.10.3
package/README.ja.md CHANGED
@@ -112,7 +112,7 @@ flowchart LR
112
112
 
113
113
  | レーン | 第一候補 | バックアップ | 用途 |
114
114
  |---|---|---|---|
115
- | 🔥 hardest-coding | GPT-5.6 Sol (max) | Claude Opus 5 (xhigh) | 最難関の実装、根本原因デバッグ、正確性が要の変更 |
115
+ | 🔥 hardest-coding | GPT-5.6 Sol (xhigh) | Claude Opus 5 (xhigh) | 最難関の実装、根本原因デバッグ、正確性が要の変更 |
116
116
  | 🏗️ bulk-mechanical | GPT-5.6 Terra (max) | Claude Sonnet 5 (high) | リファクタ、移行、テスト、大規模スイープ |
117
117
  | 🧹 triage | GPT-5.6 Luna (medium) | Gemini 3.6 Flash (Low) | 大量の一次スクリーニング |
118
118
  | ⚖️ hard-judgment | Claude Opus 5 (xhigh) | GPT-5.6 Sol (max) | アーキテクチャ裁定、深い推論、セカンドオピニオン |
@@ -120,7 +120,7 @@ flowchart LR
120
120
  | 💬 consult | 明示指定したベンダー/モデル | —(フォールバックなし) | 自然言語で直接相談。`--vendor` を必ず維持 |
121
121
  | 🎨 ui-draft | GPT-5.6 Sol (xhigh) | Claude Opus 5 (high) | デザインシステム/参考画像がある場合の UI ドラフト |
122
122
  | 📚 long-context | Gemini 3.1 Pro (High) | Claude Opus 5 (high) | 100 万トークン級の走査と検索。複数箇所をまたぐ統合には Claude 候補を、高速反復ループは Flash を優先 |
123
- | ⚡ fast-agentic | Gemini 3.6 Flash (High) | GPT-5.6 Luna (high) | 高速なマルチステップ agentic ループ、マルチモーダル確認 |
123
+ | ⚡ fast-agentic | GPT-5.6 Luna (max) | Gemini 3.6 Flash (High) | 高速なマルチステップ agentic ループ、マルチモーダル確認 |
124
124
  | 📡 live-search | Grok 4.5 | —(off) | リアルタイム X/ウェブ検索とソーシャル文脈 |
125
125
  | 🚰 coding-overflow | Grok 4.5 | Kimi K3 → Qwen3 Coder Plus → OpenCode | Codex クォータ逼迫時の中級コーディング逃し弁 |
126
126
  | 🗳️ arbitrate | off(オプトイン) | — | 内蔵オピニオンパネル(重大な判断用)——デフォルト無効。`routing.local.yaml` で有効化;投票者×ラウンドごとに 1 コール消費 |
@@ -291,7 +291,7 @@ omnilane ui status # Live UI の稼働状態を表
291
291
  omnilane ui url # 現在の認証済みローカル URL を表示
292
292
  omnilane ui stop # Live UI を停止
293
293
  omnilane doctor [--json] # ルーティングとローカル実行環境を読み取り専用で診断
294
- dispatch.sh [--background] [--dry-run] [--mode advise|work] [--workdir DIR]
294
+ dispatch.sh [--background] [--dry-run] [--mode advise|work|sysops] [--workdir DIR]
295
295
  [--vendor V] [--model M] [--effort E] [--timeout SEC] [--job-timeout SEC]
296
296
  LANE "TASK" # "-" で stdin から読む
297
297
  dispatch.sh [--json] --list [--json]
@@ -326,6 +326,12 @@ configure.sh set|get|unset|list|diff LANE [SPEC] # routing.local.yaml を非
326
326
  workspace-write、Claude は編集自動承認、Gemini は accept-edits モード。
327
327
  `openrouter` vendor は work モードを明確に拒否します——編集はエージェント型
328
328
  CLI ベンダーへ。
329
+ - **sysops** — `work` からベンダーのサンドボックスを外したモード。サンドボックスが
330
+ 拒否するサービス操作(`launchctl` など)向けです。Codex は
331
+ `-s danger-full-access` で実行し、他のベンダーは通常の `work` として扱います。
332
+ マシン全体へのアクセスをワーカーに与えることになるため、ディスパッチごとに
333
+ 明示指定する必要があり、レーンの既定値には決してできません。`work` が
334
+ サンドボックス拒否で失敗するのを実際に確認した場合にのみ使ってください。
329
335
 
330
336
  ## 🔒 安全機構
331
337
 
@@ -478,6 +484,10 @@ scripts/dispatch.sh --dry-run hardest-coding "…" # 解決済みプラン、
478
484
  依頼した場合のみです。ディスパッチの既定は読み取り専用の `advise` で、ベンダーごとに
479
485
  実装されています(読み取り専用サンドボックス、plan モード、あるいは読み取り専用の
480
486
  ツールセット)。編集には `--mode work` と明示的な `--workdir` の両方が必要です。
487
+ 第三のモード `--mode sysops` は `work` からベンダーのサンドボックスを外したもので、
488
+ サンドボックスが拒否するサービス操作(`launchctl` など)向けです。codex は
489
+ `-s danger-full-access` で実行し、他のベンダーは `work` として扱います。
490
+ ディスパッチごとの明示指定のみで、レーンの既定値にはなりません。
481
491
  ワーカー自身は再ディスパッチできません——深度ガードが終了コード 86 で入れ子の
482
492
  ファンアウトを拒否するため、一つのコマンドがエージェントの連鎖に膨らんでクォータを
483
493
  食い潰すことはありません。
@@ -506,6 +516,27 @@ scripts/dispatch.sh --dry-run hardest-coding "…" # 解決済みプラン、
506
516
 
507
517
  ## 📜 リリース履歴
508
518
 
519
+ ## v0.12.0 の新機能
520
+
521
+ - **`hardest-coding` の Sol を `max` から `xhigh` へ** — AA の努力度別 Coding Index
522
+ では、Sol の xhigh が自身の max も Claude の全ティアも上回り、コストは約 3 分の 1
523
+ 少ない。この種の作業では xhigh を超えた努力度は正確さではなく考えすぎを買う。
524
+ - **`fast-agentic` の第一候補が GPT-5.6 Luna に**、Gemini 3.6 Flash は第二候補へ。
525
+ Luna は AA の Agentic Index で Flash を大きく上回り、2026-07-30 の値下げ後は
526
+ タスクあたりコストがごく僅か。Flash に残る優位はスループットのみ — レイテンシ律速の
527
+ ループならローカル設定で先頭に戻すこと。
528
+ - **レーンのコメントから数値を排除。** `routing.yaml` は各順序の「理由」だけを述べ、
529
+ スコア・価格・スループットは取得日とともに `docs/model-capabilities-2026-07.md` に
530
+ 集約。数値が古くなってもルーティング表の編集は不要になった。
531
+ - **value プロファイル**を `routing.local.yaml.example` に追加 — Intelligence Index
532
+ 約 1 ポイントと引き換えに、タスクあたりコストを 30〜40% 削減。
533
+ - **`--mode sysops` を追加** — ベンダーのサンドボックスを外した `work`。サンドボックスが
534
+ 拒否するサービス操作向けです。ワーカーにマシン全体へのアクセスを与えるため、
535
+ ディスパッチごとの指定のみで、レーンの既定値にはできません。
536
+ - **価格とベンチマークを更新**(2026-07-30 の OpenAI 値下げ反映)。あわせて AA の
537
+ Coding Index が Coding Agent Index **ではない**ことを明記 — 構成要素は全く別物だが
538
+ 数値が近接する。
539
+
509
540
  ## v0.11.0 の新機能
510
541
 
511
542
  - **Live Board が 5 言語で読めます** — 英語・日本語・韓国語・繁体字中国語・簡体字
package/README.ko.md CHANGED
@@ -110,7 +110,7 @@ flowchart LR
110
110
 
111
111
  | 레인 | 1순위 모델 | 백업 | 용도 |
112
112
  |---|---|---|---|
113
- | 🔥 hardest-coding | GPT-5.6 Sol (max) | Claude Opus 5 (xhigh) | 가장 어려운 구현, 근본 원인 디버깅, 정확성이 핵심인 수정 |
113
+ | 🔥 hardest-coding | GPT-5.6 Sol (xhigh) | Claude Opus 5 (xhigh) | 가장 어려운 구현, 근본 원인 디버깅, 정확성이 핵심인 수정 |
114
114
  | 🏗️ bulk-mechanical | GPT-5.6 Terra (max) | Claude Sonnet 5 (high) | 리팩터링, 마이그레이션, 테스트, 대량 스윕 |
115
115
  | 🧹 triage | GPT-5.6 Luna (medium) | Gemini 3.6 Flash (Low) | 대량 1차 선별 |
116
116
  | ⚖️ hard-judgment | Claude Opus 5 (xhigh) | GPT-5.6 Sol (max) | 아키텍처 중재, 깊은 추론, 세컨드 오피니언 |
@@ -118,7 +118,7 @@ flowchart LR
118
118
  | 💬 consult | 명시적으로 지정한 벤더/모델 | —(폴백 없음) | 자연어 직접 상담. `--vendor` 를 반드시 유지 |
119
119
  | 🎨 ui-draft | GPT-5.6 Sol (xhigh) | Claude Opus 5 (high) | 디자인 시스템/참고 이미지가 있을 때의 UI 초안 |
120
120
  | 📚 long-context | Gemini 3.1 Pro (High) | Claude Opus 5 (high) | 100만 토큰급 훑기와 검색. 여러 곳을 잇는 다중 홉 통합은 Claude 후보를, 빠른 반복 루프는 Flash 우선 |
121
- | ⚡ fast-agentic | Gemini 3.6 Flash (High) | GPT-5.6 Luna (high) | 빠른 멀티스텝 agentic 루프, 멀티모달 확인 |
121
+ | ⚡ fast-agentic | GPT-5.6 Luna (max) | Gemini 3.6 Flash (High) | 빠른 멀티스텝 agentic 루프, 멀티모달 확인 |
122
122
  | 📡 live-search | Grok 4.5 | —(off) | 실시간 X/웹 검색과 소셜 맥락 |
123
123
  | 🚰 coding-overflow | Grok 4.5 | Kimi K3 → Qwen3 Coder Plus → OpenCode | Codex 쿼터 소진 시 중급 코딩 안전 밸브 |
124
124
  | 🗳️ arbitrate | off(옵트인) | — | 내장 의견 패널(중대한 결정용)——기본 비활성. `routing.local.yaml` 에서 활성화;투표자×라운드마다 1콜 소모 |
@@ -283,7 +283,7 @@ omnilane ui status # Live UI 실행 상태 표시
283
283
  omnilane ui url # 현재 인증된 로컬 URL 표시
284
284
  omnilane ui stop # Live UI 중지
285
285
  omnilane doctor [--json] # 라우팅과 로컬 실행 환경을 읽기 전용으로 진단
286
- dispatch.sh [--background] [--dry-run] [--mode advise|work] [--workdir DIR]
286
+ dispatch.sh [--background] [--dry-run] [--mode advise|work|sysops] [--workdir DIR]
287
287
  [--vendor V] [--model M] [--effort E] [--timeout SEC] [--job-timeout SEC]
288
288
  LANE "TASK" # "-" 는 stdin 에서 읽기
289
289
  dispatch.sh [--json] --list [--json]
@@ -316,6 +316,11 @@ CLI 를 사용할 수 없음, `5` 1라운드 성공 투표자 부족, `6` 2라
316
316
  workspace-write, Claude 는 편집 자동 승인, Gemini 는 accept-edits 모드.
317
317
  `openrouter` vendor 는 work 모드를 명확한 오류로 거부합니다——파일 편집은
318
318
  에이전트형 CLI 벤더로 보내세요.
319
+ - **sysops** — `work` 에서 벤더 샌드박스를 뺀 모드. 샌드박스가 거부하는 서비스
320
+ 작업(`launchctl` 등)을 위한 것입니다. Codex 는 `-s danger-full-access` 로
321
+ 실행하고, 다른 벤더는 일반 `work` 로 취급합니다. 워커에게 머신 전체 접근 권한을
322
+ 주는 셈이므로 디스패치마다 명시적으로 지정해야 하며 레인 기본값이 될 수 없습니다.
323
+ `work` 가 샌드박스 거부로 실패하는 것을 직접 확인한 경우에만 쓰세요.
319
324
 
320
325
  ## 🔒 안전 장치
321
326
 
@@ -463,7 +468,11 @@ scripts/dispatch.sh --dry-run hardest-coding "…" # 완전히 해석된 계
463
468
 
464
469
  요청했을 때만 가능합니다. 디스패치의 기본값은 읽기 전용 `advise` 이며 벤더별로
465
470
  구현되어 있습니다(읽기 전용 샌드박스, plan 모드, 또는 읽기 전용 도구 집합).
466
- 수정하려면 `--mode work` 와 명시적인 `--workdir` 가 모두 필요합니다. 워커는 다시
471
+ 수정하려면 `--mode work` 와 명시적인 `--workdir` 가 모두 필요합니다. 번째 모드인
472
+ `--mode sysops` 는 `work` 에서 벤더 샌드박스를 뺀 것으로, 샌드박스가 거부하는 서비스
473
+ 작업(`launchctl` 등)을 위한 것입니다. codex 는 `-s danger-full-access` 로 실행하고
474
+ 다른 벤더는 `work` 로 취급하며, 디스패치마다 명시해야 할 뿐 레인 기본값이 될 수
475
+ 없습니다. 워커는 다시
467
476
  디스패치할 수도 없습니다——깊이 가드가 종료 코드 86 으로 중첩 팬아웃을 거부하므로,
468
477
  명령 하나가 에이전트 연쇄로 번져 할당량을 태우는 일은 없습니다.
469
478
 
@@ -490,6 +499,27 @@ scripts/dispatch.sh --dry-run hardest-coding "…" # 완전히 해석된 계
490
499
 
491
500
  ## 📜 릴리스 기록
492
501
 
502
+ ## v0.12.0 새 기능
503
+
504
+ - **`hardest-coding`의 Sol을 `max`에서 `xhigh`로** — AA의 노력 수준별 Coding Index
505
+ 에서 Sol의 xhigh가 자신의 max와 모든 Claude 티어를 앞서면서 비용은 약 3분의 1
506
+ 적다. 이 작업에서 xhigh를 넘는 노력은 정확도가 아니라 과잉 사고를 산다.
507
+ - **`fast-agentic`의 1순위가 GPT-5.6 Luna로**, Gemini 3.6 Flash는 2순위. Luna는 AA
508
+ Agentic Index에서 Flash를 크게 앞서고, 2026-07-30 가격 인하 후 태스크당 비용이
509
+ 극히 낮다. Flash에 남은 우위는 처리량뿐 — 레이턴시가 병목인 루프라면 로컬 설정에서
510
+ 다시 앞에 두면 된다.
511
+ - **레인 주석에서 수치 제거.** `routing.yaml`은 각 순서가 성립하는 "이유"만 서술하고,
512
+ 점수·가격·처리량은 조회 날짜와 함께 `docs/model-capabilities-2026-07.md`에만 둔다.
513
+ 수치가 낡아도 라우팅 표를 고칠 필요가 없다.
514
+ - **value 프로파일** 추가(`routing.local.yaml.example`) — Intelligence Index 약 1점을
515
+ 내주고 태스크당 비용을 30~40% 절감.
516
+ - **`--mode sysops` 추가** — 벤더 샌드박스를 뺀 `work`. 샌드박스가 거부하는 서비스
517
+ 작업을 위한 것입니다. 워커에게 머신 전체 접근 권한을 주므로 디스패치별 지정만
518
+ 가능하며 레인 기본값이 될 수 없습니다.
519
+ - **가격·벤치마크 갱신**(2026-07-30 OpenAI 인하 반영). 그리고 AA의 Coding Index는
520
+ Coding Agent Index가 **아니라는** 점을 문서화 — 구성 요소가 전혀 다른데 수치가
521
+ 겹친다.
522
+
493
523
  ## v0.11.0 새 기능
494
524
 
495
525
  - **Live Board 를 5 개 언어로 읽을 수 있습니다** — 영어, 일본어, 한국어, 번체 중국어,
package/README.md CHANGED
@@ -115,7 +115,7 @@ actually resolves.
115
115
 
116
116
  | Lane | First choice | Backup | When |
117
117
  |---|---|---|---|
118
- | 🔥 hardest-coding | GPT-5.6 Sol (max) | Claude Opus 5 (xhigh) | Hardest implementation, deep root-cause debug, correctness-critical edits |
118
+ | 🔥 hardest-coding | GPT-5.6 Sol (xhigh) | Claude Opus 5 (xhigh) | Hardest implementation, deep root-cause debug, correctness-critical edits |
119
119
  | 🏗️ bulk-mechanical | GPT-5.6 Terra (max) | Claude Sonnet 5 (high) | Refactors, migrations, tests, review sweeps — mechanical endurance |
120
120
  | 🧹 triage | GPT-5.6 Luna (medium) | Gemini 3.6 Flash (Low) | High-volume scans, first-pass filtering |
121
121
  | ⚖️ hard-judgment | Claude Opus 5 (xhigh) | GPT-5.6 Sol (max) | Architecture arbitration, deep reasoning, second opinions |
@@ -123,7 +123,7 @@ actually resolves.
123
123
  | 💬 consult | Explicit named vendor/model | — (no fallback) | Direct natural-language consultation; always keep `--vendor` |
124
124
  | 🎨 ui-draft | GPT-5.6 Sol (xhigh) | Claude Opus 5 (high) | UI drafts only WITH a design system / reference images |
125
125
  | 📚 long-context | Gemini 3.1 Pro (High) | Claude Opus 5 (high) | 1M-token sweeps and retrieval; for multi-hop synthesis prefer the Claude candidate, and Flash for fast repeated loops |
126
- | ⚡ fast-agentic | Gemini 3.6 Flash (High) | GPT-5.6 Luna (high) | Fast multi-step agentic loops, multimodal checks |
126
+ | ⚡ fast-agentic | GPT-5.6 Luna (max) | Gemini 3.6 Flash (High) | Fast multi-step agentic loops, multimodal checks |
127
127
  | 📡 live-search | Grok 4.5 | — (off) | Realtime X/web search and social context |
128
128
  | 🚰 coding-overflow | Grok 4.5 | Kimi K3 → Qwen3 Coder Plus → OpenCode | Codex-quota relief valve for mid-tier coding |
129
129
  | 🗳️ arbitrate | off (opt-in vote panel) | — | Built-in opinion panel for big calls — disabled by default; enable it in `routing.local.yaml`, one call per voter per round |
@@ -300,7 +300,7 @@ omnilane ui status # report whether the Live UI is r
300
300
  omnilane ui url # print the current authenticated local URL
301
301
  omnilane ui stop # stop the Live UI
302
302
  omnilane doctor [--json] # read-only routing and runtime health report
303
- dispatch.sh [--background] [--dry-run] [--mode advise|work] [--workdir DIR]
303
+ dispatch.sh [--background] [--dry-run] [--mode advise|work|sysops] [--workdir DIR]
304
304
  [--vendor V] [--model M] [--effort E] [--timeout SEC] [--job-timeout SEC]
305
305
  LANE "TASK" # "-" reads task from stdin
306
306
  dispatch.sh [--json] --list [--json]
@@ -349,6 +349,12 @@ code passes through.
349
349
  Codex gets a workspace-write sandbox; Claude auto-accepts edits; Gemini runs
350
350
  in accept-edits mode. The `openrouter` vendor refuses work mode with a clear
351
351
  error — route edits to an agentic CLI vendor instead.
352
+ - **sysops** — `work` minus the vendor sandbox, for service operations the
353
+ sandbox denies (`launchctl` and friends). Codex runs it with
354
+ `-s danger-full-access`; every other vendor treats it as plain `work`. This
355
+ hands the worker full access to the machine, so it is an explicit
356
+ per-dispatch opt-in and can never be a lane default. Reach for it only when
357
+ you have watched `work` fail on a sandbox denial.
352
358
 
353
359
  ## 🔒 Safety rails
354
360
 
@@ -508,7 +514,11 @@ scripts/dispatch.sh --dry-run hardest-coding "…" # fully resolved plan, no p
508
514
 
509
515
  Only if you ask for it. Dispatch defaults to `advise`, a read-only mode enforced
510
516
  per vendor (read-only sandbox, plan mode, or read-only tool set depending on the
511
- CLI). Editing requires both `--mode work` and an explicit `--workdir`. Workers
517
+ CLI). Editing requires both `--mode work` and an explicit `--workdir`. A third
518
+ mode, `--mode sysops`, is `work` minus the vendor sandbox — for service
519
+ operations the sandbox denies (e.g. `launchctl`); codex runs it with
520
+ `-s danger-full-access`, other vendors treat it as `work`, and it is an
521
+ explicit per-dispatch opt-in, never a lane default. Workers
512
522
  also cannot dispatch again — the depth guard refuses nested fan-out with exit 86,
513
523
  so one command can never spiral into a chain of agents spending your quota.
514
524
 
@@ -537,6 +547,30 @@ working notes, including per-benchmark caveats, live in
537
547
 
538
548
  ## 📜 Release history
539
549
 
550
+ ## What's new in v0.12.0
551
+
552
+ - **`hardest-coding` drops Sol from `max` to `xhigh`** — on AA's per-effort
553
+ Coding Index, Sol at xhigh outscores Sol at max and every Claude tier while
554
+ costing about a third less. Past xhigh, effort buys overthinking rather than
555
+ accuracy on this workload.
556
+ - **`fast-agentic` leads with GPT-5.6 Luna**, Gemini 3.6 Flash second. Luna
557
+ leads Flash on AA's Agentic Index by a wide margin and, after OpenAI's
558
+ 2026-07-30 reprice, costs a fraction as much per task. Flash keeps only a
559
+ throughput edge — put it back in front locally if your loops are
560
+ latency-bound.
561
+ - **Lane comments no longer carry numbers.** `routing.yaml` now states why each
562
+ ordering holds; every score, price and throughput figure lives in
563
+ `docs/model-capabilities-2026-07.md` with its retrieval date, so a stale
564
+ figure never requires a routing-table edit.
565
+ - **A value profile** in `routing.local.yaml.example` trades about one
566
+ Intelligence Index point for 30-40% off the cost per task.
567
+ - **New `--mode sysops`** — `work` without the vendor sandbox, for service
568
+ operations the sandbox denies. It gives the worker full machine access, so it
569
+ is a per-dispatch flag only and can never be a lane default.
570
+ - **Refreshed pricing and benchmark data** for the 2026-07-30 OpenAI reprice,
571
+ and documented that AA's Coding Index is *not* the Coding Agent Index — they
572
+ share no components and their numbers collide.
573
+
540
574
  ## What's new in v0.11.0
541
575
 
542
576
  - **The Live Board reads in five languages** — English, Japanese, Korean,
package/README.zh-CN.md CHANGED
@@ -103,7 +103,7 @@ flowchart LR
103
103
 
104
104
  | 通道 | 首选模型 | 备选模型 | 用途 |
105
105
  |---|---|---|---|
106
- | 🔥 hardest-coding | GPT-5.6 Sol (max) | Claude Opus 5 (xhigh) | 最难的实现、深度调试、正确性攸关的修改 |
106
+ | 🔥 hardest-coding | GPT-5.6 Sol (xhigh) | Claude Opus 5 (xhigh) | 最难的实现、深度调试、正确性攸关的修改 |
107
107
  | 🏗️ bulk-mechanical | GPT-5.6 Terra (max) | Claude Sonnet 5 (high) | 重构、迁移、测试、大面积扫描——机械耐力活 |
108
108
  | 🧹 triage | GPT-5.6 Luna (medium) | Gemini 3.6 Flash (Low) | 高量初筛、第一轮过滤 |
109
109
  | ⚖️ hard-judgment | Claude Opus 5 (xhigh) | GPT-5.6 Sol (max) | 架构仲裁、深度推理、第二意见 |
@@ -111,7 +111,7 @@ flowchart LR
111
111
  | 💬 consult | 明确指定的厂商/模型 | —(不降级) | 自然语言直接咨询;必须保留 `--vendor` |
112
112
  | 🎨 ui-draft | GPT-5.6 Sol (xhigh) | Claude Opus 5 (high) | 有设计规范/参考图时的 UI 出稿;开放式视觉品味交给 taste-final |
113
113
  | 📚 long-context | Gemini 3.1 Pro (High) | Claude Opus 5 (high) | 百万 token 扫读与检索;要跨段落多跳整合请改用 Claude 候选,高速重复循环仍优先 Flash |
114
- | ⚡ fast-agentic | Gemini 3.6 Flash (High) | GPT-5.6 Luna (high) | 快速多步骤 agentic 循环、多模态检查 |
114
+ | ⚡ fast-agentic | GPT-5.6 Luna (max) | Gemini 3.6 Flash (High) | 快速多步骤 agentic 循环、多模态检查 |
115
115
  | 📡 live-search | Grok 4.5 | —(off) | 实时 X/网络搜索与社群脉络 |
116
116
  | 🚰 coding-overflow | Grok 4.5 | Kimi K3 → Qwen3 Coder Plus → OpenCode | Codex 额度吃紧时的中量级编码溢流道;事实性声明须另行查证 |
117
117
  | 🗳️ arbitrate | off(可选评审团) | — | 内置意见评审团,重大决定用——默认关闭,要用在 `routing.local.yaml` 打开;每评审每轮烧一次额度 |
@@ -266,7 +266,7 @@ omnilane ui status # 查看 Live UI 是否正在运
266
266
  omnilane ui url # 输出当前通过认证的本地链接
267
267
  omnilane ui stop # 停止 Live UI
268
268
  omnilane doctor [--json] # 只读检查路由与本地运行环境
269
- dispatch.sh [--background] [--dry-run] [--mode advise|work] [--workdir 目录]
269
+ dispatch.sh [--background] [--dry-run] [--mode advise|work|sysops] [--workdir 目录]
270
270
  [--vendor V] [--model M] [--effort E] [--timeout SEC] [--job-timeout SEC]
271
271
  通道 "任务" # "-" 表示从 stdin 读任务
272
272
  dispatch.sh [--json] --list [--json]
@@ -298,6 +298,11 @@ configure.sh set|get|unset|list|diff LANE [SPEC] # 非交互编辑/查看 rou
298
298
  - **work** — 允许改文件,仅限你指定的 `--workdir`。Codex 给
299
299
  workspace-write 沙箱;Claude 自动接受编辑;Gemini 跑 accept-edits 模式。
300
300
  `openrouter` vendor 会明确拒绝 work 模式——改文件请走代理式 CLI vendor。
301
+ - **sysops** — 等于 `work` 拿掉 vendor 沙箱,用于沙箱会挡掉的服务操作
302
+ (`launchctl` 之类)。Codex 以 `-s danger-full-access` 执行;其他 vendor
303
+ 一律当成普通 `work`。这等于把整台机器的访问权交给工作端,因此只能逐次
304
+ 明确指定,永远不能设成 lane 默认值。只有在你亲眼看到 `work` 因沙箱拒绝而
305
+ 失败时才动用它。
301
306
 
302
307
  ## 🔒 内置安全机制
303
308
 
@@ -438,7 +443,10 @@ scripts/dispatch.sh --dry-run hardest-coding "…" # 完整解析后的计划,
438
443
 
439
444
  除非你明说要它改。派工默认是 `advise` 只读模式,而且是逐厂商实现的(只读沙箱、
440
445
  plan 模式,或只给只读工具集)。要改文件必须同时给 `--mode work` 和明确的
441
- `--workdir`。工作端也不能再往外派——深度守卫会用退出码 86 拒绝嵌套派工,一道
446
+ `--workdir`。第三种模式 `--mode sysops` 等于 `work` 拿掉 vendor 沙箱,用于沙箱会
447
+ 挡掉的服务操作(例如 `launchctl`);codex 以 `-s danger-full-access` 执行,其他
448
+ vendor 一律当成 `work`,而且它只能逐次明确指定,永远不是 lane 默认值。
449
+ 工作端也不能再往外派——深度守卫会用退出码 86 拒绝嵌套派工,一道
442
450
  命令不可能失控变成一整串 AI 烧你的额度。
443
451
 
444
452
  </details>
@@ -465,6 +473,24 @@ plan 模式,或只给只读工具集)。要改文件必须同时给 `--mode work
465
473
 
466
474
  ## 📜 版本历程
467
475
 
476
+ ## v0.12.0 新功能
477
+
478
+ - **`hardest-coding` 的 Sol 从 `max` 降到 `xhigh`**——在 AA 分档位的 Coding Index
479
+ 上,Sol 的 xhigh 不但胜过自己的 max,也胜过所有 Claude 档位,成本还少约三分之一。
480
+ 这类工作超过 xhigh 之后,多加的 effort 买到的是过度思考,不是正确率。
481
+ - **`fast-agentic` 改由 GPT-5.6 Luna 领头**,Gemini 3.6 Flash 退居第二。Luna 在 AA
482
+ 的 Agentic Index 上大幅领先 Flash,而且 2026-07-30 降价后每任务成本只剩零头。
483
+ Flash 只剩吞吐量优势——若你的循环受延迟限制,可在本机覆写把它调回第一。
484
+ - **lane 注释不再放数字。**`routing.yaml` 只说明每条排序「为什么」成立;所有分数、
485
+ 价格与吞吐量连同取数日期,一律放在 `docs/model-capabilities-2026-07.md`。数字过期
486
+ 不再需要动路由表。
487
+ - **新增 value profile**(在 `routing.local.yaml.example`):用约一个 Intelligence
488
+ Index 分数,换每任务成本降三到四成。
489
+ - **新增 `--mode sysops`**——等于 `work` 拿掉 vendor 沙箱,用于沙箱会挡掉的服务操作。
490
+ 它会把整台机器的访问权交给工作端,因此只能逐次指定,永远不能设成 lane 默认值。
491
+ - **价格与基准数据刷新**至 2026-07-30 OpenAI 降价后的版本,并记录 AA 的 Coding Index
492
+ **不是** Coding Agent Index——两者成分完全不同,数值却会撞在一起。
493
+
468
494
  ## v0.11.0 新功能
469
495
 
470
496
  - **Live Board 提供五种语言** —— 英文、日文、韩文、繁体中文与简体中文。首次加载依
package/README.zh-TW.md CHANGED
@@ -103,7 +103,7 @@ flowchart LR
103
103
 
104
104
  | 通道 | 首選模型 | 備選模型 | 用途 |
105
105
  |---|---|---|---|
106
- | 🔥 hardest-coding | GPT-5.6 Sol (max) | Claude Opus 5 (xhigh) | 最難的實作、深度除錯、正確性攸關的修改 |
106
+ | 🔥 hardest-coding | GPT-5.6 Sol (xhigh) | Claude Opus 5 (xhigh) | 最難的實作、深度除錯、正確性攸關的修改 |
107
107
  | 🏗️ bulk-mechanical | GPT-5.6 Terra (max) | Claude Sonnet 5 (high) | 重構、搬遷、測試、大面積掃描——機械耐力活 |
108
108
  | 🧹 triage | GPT-5.6 Luna (medium) | Gemini 3.6 Flash (Low) | 高量初篩、第一輪過濾 |
109
109
  | ⚖️ hard-judgment | Claude Opus 5 (xhigh) | GPT-5.6 Sol (max) | 架構仲裁、深度推理、第二意見 |
@@ -111,7 +111,7 @@ flowchart LR
111
111
  | 💬 consult | 明確點名的廠商/模型 | —(不降級) | 自然語言直接諮詢;必須保留 `--vendor` |
112
112
  | 🎨 ui-draft | GPT-5.6 Sol (xhigh) | Claude Opus 5 (high) | 有設計規範/參考圖時的 UI 出稿;開放式視覺品味交給 taste-final |
113
113
  | 📚 long-context | Gemini 3.1 Pro (High) | Claude Opus 5 (high) | 百萬 token 掃讀與檢索;要跨段落多跳整合請改用 Claude 候選,高速重複迴圈仍優先 Flash |
114
- | ⚡ fast-agentic | Gemini 3.6 Flash (High) | GPT-5.6 Luna (high) | 快速多步驟 agentic 迴圈、多模態檢查 |
114
+ | ⚡ fast-agentic | GPT-5.6 Luna (max) | Gemini 3.6 Flash (High) | 快速多步驟 agentic 迴圈、多模態檢查 |
115
115
  | 📡 live-search | Grok 4.5 | —(off) | 即時 X/網路搜尋與社群脈絡 |
116
116
  | 🚰 coding-overflow | Grok 4.5 | Kimi K3 → Qwen3 Coder Plus → OpenCode | Codex 額度吃緊時的中量級編碼溢流道;事實性宣稱須另行查證 |
117
117
  | 🗳️ arbitrate | off(選配評審團) | — | 內建意見評審團,重大決定用——預設關閉,要用在 `routing.local.yaml` 開;每評審每輪燒一次額度 |
@@ -267,7 +267,7 @@ omnilane ui status # 查看 Live UI 是否運作中
267
267
  omnilane ui url # 印出目前通過驗證的本機網址
268
268
  omnilane ui stop # 停止 Live UI
269
269
  omnilane doctor [--json] # 唯讀檢查路由與本機執行環境
270
- dispatch.sh [--background] [--dry-run] [--mode advise|work] [--workdir 目錄]
270
+ dispatch.sh [--background] [--dry-run] [--mode advise|work|sysops] [--workdir 目錄]
271
271
  [--vendor V] [--model M] [--effort E] [--timeout SEC] [--job-timeout SEC]
272
272
  通道 "任務" # "-" 表示從 stdin 讀任務
273
273
  dispatch.sh [--json] --list [--json]
@@ -311,6 +311,11 @@ codex/claude/grok/gemini 自選 1-4 個評審。開了之後,同一個問題丟
311
311
  - **work** — 允許改檔案,僅限你指定的 `--workdir`。Codex 給
312
312
  workspace-write 沙箱;Claude 自動接受編輯;Gemini 跑 accept-edits 模式。
313
313
  `openrouter` vendor 會明確拒絕 work 模式——改檔請走代理式 CLI vendor。
314
+ - **sysops** — 等於 `work` 拿掉 vendor 沙箱,用於沙箱會擋掉的服務操作
315
+ (`launchctl` 之類)。Codex 以 `-s danger-full-access` 執行;其他 vendor
316
+ 一律當成一般 `work`。這等於把整台機器的存取權交給工作端,因此只能逐次
317
+ 明確指定,永遠不能設成 lane 預設。只有在你親眼看到 `work` 因沙箱拒絕而
318
+ 失敗時才動用它。
314
319
 
315
320
  ## 🔒 內建安全機制
316
321
 
@@ -451,7 +456,10 @@ scripts/dispatch.sh --dry-run hardest-coding "…" # 完整解析後的計畫,
451
456
 
452
457
  除非你明講要它改。派工預設是 `advise` 唯讀模式,而且是逐廠商實作的(唯讀沙箱、
453
458
  plan 模式,或只給唯讀工具集)。要改檔必須同時給 `--mode work` 和明確的
454
- `--workdir`。工作端也不能再往外派——深度守衛會用退出碼 86 拒絕巢狀派工,一道
459
+ `--workdir`。第三種模式 `--mode sysops` 等於 `work` 拿掉 vendor 沙箱,用於沙箱會
460
+ 擋掉的服務操作(例如 `launchctl`);codex 以 `-s danger-full-access` 執行,其他
461
+ vendor 一律當成 `work`,而且它只能逐次明確指定,永遠不是 lane 預設。
462
+ 工作端也不能再往外派——深度守衛會用退出碼 86 拒絕巢狀派工,一道
455
463
  指令不可能失控變成一整串 AI 燒你的額度。
456
464
 
457
465
  </details>
@@ -475,6 +483,24 @@ plan 模式,或只給唯讀工具集)。要改檔必須同時給 `--mode work`
475
483
 
476
484
  ## 📜 版本歷程
477
485
 
486
+ ## v0.12.0 新功能
487
+
488
+ - **`hardest-coding` 的 Sol 從 `max` 降到 `xhigh`**——在 AA 分檔位的 Coding Index
489
+ 上,Sol 的 xhigh 不但勝過自己的 max,也勝過所有 Claude 檔位,成本還少約三分之一。
490
+ 這種工作超過 xhigh 之後,多加的 effort 買到的是過度思考,不是正確率。
491
+ - **`fast-agentic` 改由 GPT-5.6 Luna 領頭**,Gemini 3.6 Flash 退居第二。Luna 在 AA
492
+ 的 Agentic Index 上大幅領先 Flash,而且 2026-07-30 砍價後每任務成本只剩零頭。
493
+ Flash 只剩吞吐量優勢——若你的迴圈受延遲限制,可在本機覆寫把它調回第一。
494
+ - **lane 註解不再放數字。**`routing.yaml` 只說明每條排序「為什麼」成立;所有分數、
495
+ 價格與吞吐量連同取數日期,一律住在 `docs/model-capabilities-2026-07.md`。數字過期
496
+ 不再需要動路由表。
497
+ - **新增 value profile**(在 `routing.local.yaml.example`):用約一個 Intelligence
498
+ Index 分數,換每任務成本降三到四成。
499
+ - **新增 `--mode sysops`**——等於 `work` 拿掉 vendor 沙箱,用於沙箱會擋掉的服務操作。
500
+ 它會把整台機器的存取權交給工作端,因此只能逐次指定,永遠不能設成 lane 預設。
501
+ - **價格與基準數據刷新**至 2026-07-30 OpenAI 砍價後的版本,並記錄 AA 的 Coding Index
502
+ **不是** Coding Agent Index——兩者成分完全不同,數值卻會撞在一起。
503
+
478
504
  ## v0.11.0 新功能
479
505
 
480
506
  - **Live Board 提供五種語言** —— 英文、日文、韓文、繁體中文與簡體中文。首次載入依
package/VERSION CHANGED
@@ -1 +1 @@
1
- 0.11.0
1
+ 0.12.0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "omnilane",
3
- "version": "0.11.0",
3
+ "version": "0.12.0",
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"
@@ -39,3 +39,24 @@
39
39
  # hardest-coding: claude claude-opus-5 xhigh
40
40
  # bulk-mechanical: gemini "Gemini 3.6 Flash (High)" -
41
41
  # triage: gemini "Gemini 3.6 Flash (Low)" -
42
+
43
+ # Profile: value — same vendors, one effort notch cheaper. Each reasoning lane
44
+ # below gives up about one Artificial Analysis Intelligence Index point to save
45
+ # 30-40% of the cost per task; the fast-agentic line gives up nothing but
46
+ # throughput. Figures are in docs/model-capabilities-2026-07.md (AA leaderboard,
47
+ # retrieved 2026-08-02, post the 2026-07-30 OpenAI reprice). Take this when you
48
+ # pay per token and the work is not correctness-critical; the shipped defaults
49
+ # buy that point back.
50
+ # hardest-coding: codex gpt-5.6-sol xhigh # 57.7 pts @ $1.17 vs max 58.9 @ $1.86
51
+ # hard-judgment: claude claude-opus-5 high # 58.9 pts @ $1.23 vs xhigh 60.1 @ $1.80
52
+ # taste-final: claude claude-opus-5 high # already the value tier — unchanged
53
+ # fast-agentic: codex gpt-5.6-luna max # 51.2 pts @ $0.07 vs Gemini 3.6 Flash 50.1 @ $0.56; costs 25% throughput
54
+ # ui-draft: claude claude-opus-5 high
55
+ # bulk-mechanical is already the value pick at Terra (max), 55.0 pts @ $0.73 — leave it.
56
+ #
57
+ # Cheaper still, and correspondingly riskier — these two are the current
58
+ # Intelligence-vs-cost Pareto frontier but both are heavy hallucinators
59
+ # (Grok 4.5 54%, DeepSeek V4 Flash 0731 84%), so route only work whose output
60
+ # is mechanical rather than factual, and verify anything they assert:
61
+ # bulk-mechanical: grok grok-4.5 - # 53.8 pts @ $0.44, but 500K context, not 1M
62
+ # triage: deepseek deepseek-v4-flash - # 49.9 pts @ $0.03, ~60% under post-cut Luna (advise-only: cannot edit files)
package/routing.yaml CHANGED
@@ -7,9 +7,12 @@
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, 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):
10
+ # Every benchmark score, price and throughput figure behind these orderings lives in
11
+ # docs/model-capabilities-2026-07.md, with the date it was retrieved. The comments below
12
+ # deliberately carry no numbers: they state WHY a lane is ordered the way it is, which
13
+ # stays true for months, while the numbers move every few weeks. Change an ordering and
14
+ # you update the doc; a figure going stale should never need a routing-table edit.
15
+ # (Audited 2026-07-12; re-audited 2026-07-25, 2026-08-02 and 2026-08-03.)
13
16
  # defaults follow Artificial Analysis data, 2026-07
14
17
  # snapshot. Verified against AA site records + vendor pricing pages: Intelligence &
15
18
  # Coding indexes and 7:2:1 blended prices all match (AA field price1mBlended7To2To1);
@@ -17,28 +20,27 @@
17
20
  # standard short-context API tier — on subscription CLIs treat $ as relative ranking.
18
21
  # Your own job outcomes (~/.omnilane/jobs/) outrank these priors; edit lanes to match.
19
22
 
20
- hardest-coding: codex gpt-5.6-sol max | claude claude-opus-5 xhigh # Opus 5 xhigh is joint-first on AA Coding Agent Index (2026-07-24) and is Anthropic's documented starting point for coding/agentic work; max shows diminishing returns and can overthink. 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 xhigh | codex gpt-5.6-sol max # AA Intelligence Index 2026-07-24: Opus 5 61, Sol max 59; Opus leads AA agentic knowledge-work benchmarks. xhigh per Anthropic guidance (high is the documented floor for intelligence-sensitive work; max is for correctness-over-cost only) — raise to max locally via `omnilane configure set` if your workload needs it.
23
+ hardest-coding: codex gpt-5.6-sol xhigh | claude claude-opus-5 xhigh # ordered on coding capability specifically, not general intelligence. Sol dropped from max to xhigh on 2026-08-03: on AA's per-effort Coding Index, Sol at xhigh outscores both Sol at max and every Claude tier, at a third less cost — max buys overthinking here, not accuracy. xhigh is also Anthropic's documented starting point for coding/agentic work. Keep Sol first for the established Codex harness lane.
24
+ bulk-mechanical: codex gpt-5.6-terra max | claude claude-sonnet-5 high | gemini "Gemini 3.6 Flash (High)" - # ordered on endurance per dollar: Terra leads Sonnet 5 on both intelligence and cost per task
25
+ triage: codex gpt-5.6-luna medium | gemini "Gemini 3.6 Flash (Low)" - | claude claude-haiku-4-5 - # high-volume scans, ordered on cost per task: Luna is the cheapest model at its intelligence tier by a wide margin
26
+ hard-judgment: claude claude-opus-5 xhigh | codex gpt-5.6-sol max # ordered on agentic knowledge work, where Opus 5 leads Sol on AA's benchmarks. xhigh per Anthropic guidance (high is the documented floor for intelligence-sensitive work; max is for correctness-over-cost only) — raise to max locally via `omnilane configure set` if your workload needs it.
24
27
  taste-final: claude claude-opus-5 high | codex gpt-5.6-sol max # user-facing prose, prompt/doc polish, Chinese phrasing, style arbitration
25
28
  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
29
  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
30
  long-context: gemini "Gemini 3.1 Pro (High)" - | claude claude-opus-5 high | codex gpt-5.6-sol high # all have 1M context; Gemini leads single-needle retrieval at full length and is the cheapest way to sweep volume, Flash for fast loops. For multi-hop synthesis across a large corpus prefer the claude candidate: published multi-needle scores at 1M favour Claude by a wide margin (see docs/model-capabilities-2026-07.md)
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
31
+ fast-agentic: codex gpt-5.6-luna max | gemini "Gemini 3.6 Flash (High)" - # fast multi-step tool loops. Reordered 2026-08-03: Luna leads Flash on agentic benchmarks AND costs a fraction as much per task, so Flash's remaining edge is raw throughput alone. Keep Flash first only if your loops are latency-bound. Both take image input, so the lane's multimodal checks are unaffected
29
32
  live-search: grok grok-4.5 - | off # native X/web search lane; no real substitute
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.
33
+ 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 is a capable mid-tier coder but AA measures a high hallucination rate — verify every factual claim it ships. 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.
31
34
  arbitrate: off - - # opinion panel is OPT-IN: it costs one call per voter per round.
32
35
  # Enable: `arbitrate: vote codex,claude,grok -` (any 1-4 of codex/claude/grok/gemini)
33
36
  # Debate round (each voter rebuts the others): set the effort field to 2.
34
37
  # Custom gate: `arbitrate: exec /path/to/script -`
35
38
  # Claude Fable 5 (claude-fable-5) is deliberately absent from the defaults: the top Claude tier
36
- # is usually the MAIN LOOP itself, not a dispatched worker, and it prices at twice Opus 5
37
- # ($10/$50 vs $5/$25). This is a cost / guardrail / main-loop policy choice, NOT a capability
38
- # verdict AA calls Opus 5 (61) and Fable 5 (60) "effectively tied" on the Intelligence Index
39
- # (2026-07-24) and Epoch AI ranks them the other way, but Opus 5 leads AA-Briefcase by 146 Elo
40
- # and GDPval-AA v2 by 114 Elo at 20% lower cost per task. Fable 5 does keep the lead on factual
41
- # breadth (AA-Omniscience), so name it explicitly for recall-heavy consults. If you want
39
+ # is usually the MAIN LOOP itself, not a dispatched worker, and it prices at twice Opus 5.
40
+ # This is a cost / guardrail / main-loop policy choice, NOT a capability verdict — AA and
41
+ # Epoch AI disagree on which of the two leads general intelligence and call it effectively a
42
+ # tie, while Opus 5 leads clearly on agentic knowledge work at a lower cost per task. Fable 5
43
+ # does keep the lead on factual breadth, so name it explicitly for recall-heavy consults. If you want
42
44
  # to route to it anyway, pick it in the configurator or set e.g.
43
45
  # taste-final: claude claude-fable-5 high
44
46
  # in ~/.omnilane/routing.local.yaml.
@@ -3,7 +3,7 @@ set -euo pipefail
3
3
  # omnilane dispatch — one routing table, any harness.
4
4
  #
5
5
  # Usage:
6
- # dispatch.sh [--background] [--dry-run] [--mode advise|work] [--workdir DIR]
6
+ # dispatch.sh [--background] [--dry-run] [--mode advise|work|sysops] [--workdir DIR]
7
7
  # [--vendor V] [--model M] [--effort E] [--timeout SECONDS]
8
8
  # [--job-timeout SECONDS] LANE "TASK TEXT"
9
9
  # dispatch.sh [--json] --list [--json]
@@ -50,7 +50,11 @@ flags:
50
50
  --background run in the background and print the JOB_ID
51
51
  --dry-run print the fully resolved dispatch plan and stop
52
52
  before any provider call or job state
53
- --mode advise|work advise (read-only, default) or work (may edit files)
53
+ --mode advise|work|sysops
54
+ advise (read-only, default), work (may edit files),
55
+ or sysops (work without the vendor sandbox, for
56
+ service operations like launchctl — codex only;
57
+ other vendors treat it as work)
54
58
  --workdir DIR working directory handed to the vendor CLI
55
59
  --vendor V pin one configured vendor (codex|claude|grok|gemini|kimi|qwen|opencode|openrouter|deepseek|zai|mistral|groq|cerebras)
56
60
  --model M override the routed model
@@ -124,7 +128,7 @@ print_dry_run_plan() {
124
128
  local background=no task_source=argument write_worktree=no job_timeout=disabled
125
129
  [[ "$BACKGROUND" -eq 1 ]] && background=yes
126
130
  [[ "$TASK" == "-" ]] && task_source=stdin
127
- [[ "$MODE" == "work" ]] && write_worktree=yes
131
+ [[ "$MODE" == "work" || "$MODE" == "sysops" ]] && write_worktree=yes
128
132
  [[ -n "$JOB_TIMEOUT" ]] && job_timeout="$JOB_TIMEOUT"
129
133
  printf 'dry_run=yes\n'
130
134
  print_dry_run_value lane "$LANE"
@@ -487,7 +491,7 @@ LANE="$1"
487
491
  TASK="$2"
488
492
  [[ "$LANE" =~ ^[a-z][a-z0-9-]*$ ]] || { echo "omnilane: invalid lane name" >&2; exit 2; }
489
493
  # A typo like --mode advice must not fall through to the write-enabled branch.
490
- [[ "$MODE" == "advise" || "$MODE" == "work" ]] || { echo "omnilane: invalid --mode (advise|work)" >&2; exit 2; }
494
+ [[ "$MODE" == "advise" || "$MODE" == "work" || "$MODE" == "sysops" ]] || { echo "omnilane: invalid --mode (advise|work|sysops)" >&2; exit 2; }
491
495
  if [[ -n "$OVERRIDE_VENDOR" ]] &&
492
496
  ! [[ "$OVERRIDE_VENDOR" =~ ^(${OMNILANE_OVERRIDE_VENDOR_ALT})$ ]]; then
493
497
  echo "omnilane: invalid vendor (${OMNILANE_OVERRIDE_VENDOR_ALT})" >&2
@@ -567,7 +571,7 @@ fi
567
571
  [[ -n "$JOB_TIMEOUT" ]] || JOB_TIMEOUT="${OMNILANE_JOB_TIMEOUT:-}"
568
572
  CODEX_NONGIT_WORK=0
569
573
  CODEX_NONGIT_AUTO_JOB_TIMEOUT=0
570
- if [[ "$VENDOR" == "codex" && "$MODE" == "work" ]]; then
574
+ if [[ "$VENDOR" == "codex" && ( "$MODE" == "work" || "$MODE" == "sysops" ) ]]; then
571
575
  # The target directory is authoritative. Caller-supplied GIT_* state must not
572
576
  # redirect or corrupt discovery, so probe with a minimal clean environment.
573
577
  GIT_WORKTREE_STATE="$(env -i PATH="$PATH" HOME="${HOME:-}" \
@@ -3,6 +3,9 @@ set -euo pipefail
3
3
  # omnilane runner: OpenAI Codex CLI
4
4
  # Usage: run-codex.sh MODE WORKDIR MODEL EFFORT PROMPT_FILE OUTPUT_FILE
5
5
  # MODE = advise (read-only, ephemeral) | work (may edit files in WORKDIR)
6
+ # | sysops (work minus the Seatbelt sandbox: service operations like
7
+ # launchctl are denied under workspace-write, so sysops runs with
8
+ # -s danger-full-access; explicit per-dispatch opt-in only)
6
9
 
7
10
  source "$(dirname "${BASH_SOURCE[0]}")/../lib/common.sh"
8
11
 
@@ -17,6 +20,8 @@ ARGS=(exec -m "$MODEL" -o "${OUTPUT_FILE}.tmp" --skip-git-repo-check)
17
20
  [[ -n "$EFFORT" && "$EFFORT" != "-" ]] && ARGS+=(-c "model_reasoning_effort=\"$EFFORT\"")
18
21
  if [[ "$MODE" == "advise" ]]; then
19
22
  ARGS+=(--ephemeral -s read-only)
23
+ elif [[ "$MODE" == "sysops" ]]; then
24
+ ARGS+=(-s danger-full-access)
20
25
  else
21
26
  ARGS+=(-s workspace-write)
22
27
  fi