coderouter-cli 2.4.0__py3-none-any.whl → 2.5.0__py3-none-any.whl

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.
@@ -268,10 +268,10 @@ def _rule_small_window_low_sensitivity(
268
268
  f"requires more evidence before promoting the provider."
269
269
  ),
270
270
  yaml_snippet=(
271
- f"profiles:\n"
272
- f" - name: default\n"
273
- f" drift_detection_sensitivity: low # was: normal or high\n"
274
- f" drift_detection_window_size: 30 # larger window = more stable"
271
+ "profiles:\n"
272
+ " - name: default\n"
273
+ " drift_detection_sensitivity: low # was: normal or high\n"
274
+ " drift_detection_window_size: 30 # larger window = more stable"
275
275
  ),
276
276
  evidence={
277
277
  "provider": p.provider,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: coderouter-cli
3
- Version: 2.4.0
3
+ Version: 2.5.0
4
4
  Summary: Local-first, free-first, fallback-built-in LLM router. Claude Code / OpenAI compatible.
5
5
  Project-URL: Homepage, https://github.com/zephel01/CodeRouter
6
6
  Project-URL: Repository, https://github.com/zephel01/CodeRouter
@@ -141,7 +141,7 @@ ANTHROPIC_BASE_URL=http://localhost:8088 ANTHROPIC_AUTH_TOKEN=dummy claude
141
141
  | ガード | 何から守るか |
142
142
  |---|---|
143
143
  | **Context Budget** | メッセージが溜まりすぎて context window 溢れ → 自動 trim |
144
- | **Drift Detection** | モデルの応答品質が徐々に劣化 → 別 provider に切替 or KV cache flush |
144
+ | **Drift Detection** | モデルの応答品質が徐々に劣化 → 別 provider に切替 or KV cache flush (6 シグナル、`goal_mode` で目標達成停滞も検知) |
145
145
  | **Self-healing** | backend が落ちた → 自動除外 + restart + 回復 probe で自動復帰 |
146
146
  | **Tool Loop Guard** | 同じツールを無限に呼び続ける → 検知して停止 |
147
147
  | **Memory Pressure** | GPU メモリ不足を検知 → 軽量モデルに切替 |
@@ -154,9 +154,40 @@ ANTHROPIC_BASE_URL=http://localhost:8088 ANTHROPIC_AUTH_TOKEN=dummy claude
154
154
  | **`coderouter doctor`** | プロバイダの問題を 6 プローブで即診断 + 修正パッチ出力 |
155
155
  | **`/dashboard`** | ブラウザで今何が起きてるかリアルタイム確認 |
156
156
  | **`coderouter audit`** | guard 発火履歴を検索 |
157
- | **`coderouter replay`** | provider 切替の効果を統計比較 (A/B 分析) |
157
+ | **`coderouter replay`** | provider 切替の効果を統計比較 (A/B 分析) / `--suggest-rules` でルール最適化提案 |
158
158
  | **Continuous Probe** | idle 時も定期的に backend を監視 |
159
159
 
160
+ ### Launcher — llama.cpp / vllm 起動 UI
161
+
162
+ `http://localhost:8088/launcher` で開けるブラウザ UI。llama.cpp や vllm を GUI で起動・管理できます。
163
+
164
+ | 機能 | 詳細 |
165
+ |---|---|
166
+ | **モデルスキャン** | `model_dirs` に指定したフォルダを再帰スキャンして `.gguf` / `.safetensors` をリスト化 |
167
+ | **オプションプロファイル** | `providers.yaml` に名前付きプリセットを定義 → ドロップダウンで選択するだけ |
168
+ | **複数プロセス管理** | llama.cpp と vllm を同時に起動し、ポートごとに独立管理 |
169
+ | **ログビューア** | 各プロセスの stdout/stderr をブラウザ内でリアルタイム確認 |
170
+
171
+ ```yaml
172
+ # providers.yaml に追記するだけで有効になる
173
+ launcher:
174
+ model_dirs:
175
+ - ~/models
176
+ option_profiles:
177
+ llama.cpp:
178
+ - name: "GPU フル活用"
179
+ args:
180
+ "-ngl": 99
181
+ "--ctx-size": 4096
182
+ vllm:
183
+ - name: "標準"
184
+ args:
185
+ "--dtype": "auto"
186
+ "--max-model-len": 4096
187
+ ```
188
+
189
+ 詳細 → [Launcher ガイド](./docs/launcher.md)
190
+
160
191
  ---
161
192
 
162
193
  ## 設定例 (最小)
@@ -193,6 +224,7 @@ providers:
193
224
  | すぐ動かす | [Quickstart](./docs/quickstart.md) |
194
225
  | 使いこなす | [利用ガイド](./docs/usage-guide.md) |
195
226
  | 無料で回す | [無料枠ガイド](./docs/free-tier-guide.md) |
227
+ | llama.cpp / vllm を GUI で起動 | [Launcher ガイド](./docs/launcher.md) |
196
228
  | 詰まった | [トラブルシューティング](./docs/troubleshooting.md) |
197
229
  | 設計を知りたい | [アーキテクチャ詳細](./docs/architecture.md) |
198
230
  | 全リリース履歴 | [CHANGELOG](./CHANGELOG.md) |
@@ -1,6 +1,6 @@
1
1
  coderouter/__init__.py,sha256=ghdjPrLtnRzY8fyQ4CJZI1UJKADyNTLtA3G7se8H7Ns,696
2
2
  coderouter/__main__.py,sha256=-LCgxJnvgUV240HjQKv7ly-mn2NuKHpC4nCpvTHjeSU,130
3
- coderouter/cli.py,sha256=lSrQBj7iYz39EbPfBNm8l-ZGe-dPIHUd_wG0KPTvpiQ,28154
3
+ coderouter/cli.py,sha256=kHDrwSzykzqx0jNlGoHdGEueMVkeWWVZC8gZo5pRGfY,28154
4
4
  coderouter/cli_stats.py,sha256=CCjzc1G4hTRHZ2gG1XhxhDpUkJnnl3NXbcbp1T18jpg,29894
5
5
  coderouter/cost.py,sha256=jf70XTTjEfWddHkOohErqSo5TfmIG42zQpBT_5faPNA,5881
6
6
  coderouter/doctor.py,sha256=2luNk6BHSRvpQStJnHcqzNvNi-SKdOuKV0WZdorZhVk,82854
@@ -19,7 +19,7 @@ coderouter/config/__init__.py,sha256=FODEn74fN-qZnt4INPSHswqhOlEgpL6-_onxsitSx8g
19
19
  coderouter/config/capability_registry.py,sha256=F6DetVL5oM03R4QeK1g6h_Q_zrXH0opnYDp3duZmkN4,15808
20
20
  coderouter/config/env_file.py,sha256=CoMK27fuAXm-NtoLzXb8yN2E-wDFjHQuFwiIlmgTBQw,10356
21
21
  coderouter/config/loader.py,sha256=FUEe8m4Tnmj_aul0vSctD8vKvNW-oLRoMRbTpSKqSmc,4077
22
- coderouter/config/schemas.py,sha256=1vTYTYIe_vbjbgBKJ8hbrpU12K5l3XCKXAJE85HWebA,55853
22
+ coderouter/config/schemas.py,sha256=XsOGooItlHSXIfkE6LJbZY6vOo3uRkxUoTOt03mQARI,60423
23
23
  coderouter/data/__init__.py,sha256=uNyfD9jaCvTWsBAWtaw1Fr25OSxzv3psGMfBjT1z0Cc,328
24
24
  coderouter/data/model-capabilities.yaml,sha256=2ztY4PUbGN_cWG-UUB-iPy-baeVFnGV8OcZHJUfZE7c,19290
25
25
  coderouter/guards/__init__.py,sha256=5qliYBqygvVPneej7nx0uSjxDKsz7t8VzvrDgVBJlvU,1170
@@ -34,8 +34,9 @@ coderouter/guards/self_healing.py,sha256=_fT_EJvTTp5VSi-qAP93J_1LkgPK5jkzsyrUHdK
34
34
  coderouter/guards/tool_loop.py,sha256=EzeMcmU7BLeTW2jsRVevU81l5rhWcn1oUr7EpzgXjVM,15209
35
35
  coderouter/ingress/__init__.py,sha256=WQsCH2CGJCAhy0mS6GSEdeYZRkkQu2OHDsP4CJWTLug,155
36
36
  coderouter/ingress/anthropic_routes.py,sha256=It2f7XGe3fgKQX01J2F5JOCoZr96t_Tx_kY2om99MVo,16894
37
- coderouter/ingress/app.py,sha256=FBgn9Vujn-xesmeUzQcaPhtdvAYfs9cIQSMBgs0V_XI,12110
38
- coderouter/ingress/dashboard_routes.py,sha256=jVFc_4Q67YrP0VIppuQfBLnLvnvaCWJJ4z7aZsHmu1s,21822
37
+ coderouter/ingress/app.py,sha256=PcuTvUFNjr04EbsUOu8qdyKTdBzxkIJYB4xpz8dFfMo,12635
38
+ coderouter/ingress/dashboard_routes.py,sha256=rscoj89weHTfc8QmYk-fof-7062rhKFHVHRA8cDImDI,21931
39
+ coderouter/ingress/launcher_routes.py,sha256=vyr_-FH8MznVSEdUtiI-6OlsbskabaYe9aGj8alU46I,45382
39
40
  coderouter/ingress/metrics_routes.py,sha256=M22dwOGn24P05Ge4W3c7d7mYytSGWjIR-pPSPOAiHJY,3965
40
41
  coderouter/ingress/openai_routes.py,sha256=Zw1efPw9DI6GgV8ZcLrzS6Cda0KLrFkKn2GBZWSe6Vo,6322
41
42
  coderouter/metrics/__init__.py,sha256=7Es351DPS7yLM0yVF_F0eesmiD83n7Zzhie44chht38,1465
@@ -56,13 +57,13 @@ coderouter/state/audit_log.py,sha256=JwGd0OkkDlkh0Fdc6SmnuyViwKzEaFA7Ux_VqHzakWE
56
57
  coderouter/state/replay.py,sha256=Z_YHKroTKZdrL8qObFxcoLOAQWWXZvXFdLfxzvBhEJg,11230
57
58
  coderouter/state/request_log.py,sha256=bR814sOn--U_sKVtbezwS3bkZaNt4FGnboX75_2LLiU,5908
58
59
  coderouter/state/store.py,sha256=h-rsMJq8GILsOfCP94nI40cuHaj4Vqycsm9UNN77REI,7445
59
- coderouter/state/suggest_rules.py,sha256=z9a9dTUm-l7mvRV48G7_tWtV2p24F0bQo2ijz8kf_2k,16674
60
+ coderouter/state/suggest_rules.py,sha256=FvdhEvao5NvdKp9zs8AkcoFKHY4yqqXY2HekvSjpDFA,16670
60
61
  coderouter/translation/__init__.py,sha256=PYXN7XVEwpG1uC8RLy6fvnGbzEZhhrEuUapH8IYOtG8,1788
61
62
  coderouter/translation/anthropic.py,sha256=JpvIWNXHUPVqOGvps7o_6ZADhXuJuvpU7RdMqQFtwwM,6421
62
63
  coderouter/translation/convert.py,sha256=-qyzFzmmr9hhQV6_Sg75kJnvCZvHe3n7vRdaZtk_JqQ,47269
63
64
  coderouter/translation/tool_repair.py,sha256=Ok2PF947Liegc5oaytfptv5MWMkpfJYQie-zdP1y3cY,9946
64
- coderouter_cli-2.4.0.dist-info/METADATA,sha256=nCXZKj29kM_o53ajIWgOI9PaGx_k4nBtIw-WvO_6MsU,10067
65
- coderouter_cli-2.4.0.dist-info/WHEEL,sha256=QccIxa26bgl1E6uMy58deGWi-0aeIkkangHcxk2kWfw,87
66
- coderouter_cli-2.4.0.dist-info/entry_points.txt,sha256=-dnLfD1YZ2WjH2zSdNCvlO65wYltM9bsHt9Fhg3yGss,51
67
- coderouter_cli-2.4.0.dist-info/licenses/LICENSE,sha256=wkEzoR86jFw33jvfOHjULqmkGEfxTFMgMaJnpR8mPRw,1065
68
- coderouter_cli-2.4.0.dist-info/RECORD,,
65
+ coderouter_cli-2.5.0.dist-info/METADATA,sha256=y3kojQRNkG5-hhTBLCyM60ZbBCFCKQHY4L-8HDuylyE,11368
66
+ coderouter_cli-2.5.0.dist-info/WHEEL,sha256=QccIxa26bgl1E6uMy58deGWi-0aeIkkangHcxk2kWfw,87
67
+ coderouter_cli-2.5.0.dist-info/entry_points.txt,sha256=-dnLfD1YZ2WjH2zSdNCvlO65wYltM9bsHt9Fhg3yGss,51
68
+ coderouter_cli-2.5.0.dist-info/licenses/LICENSE,sha256=wkEzoR86jFw33jvfOHjULqmkGEfxTFMgMaJnpR8mPRw,1065
69
+ coderouter_cli-2.5.0.dist-info/RECORD,,