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.
- coderouter/cli.py +1 -1
- coderouter/config/schemas.py +135 -0
- coderouter/ingress/app.py +11 -0
- coderouter/ingress/dashboard_routes.py +1 -0
- coderouter/ingress/launcher_routes.py +1176 -0
- coderouter/state/suggest_rules.py +4 -4
- {coderouter_cli-2.4.0.dist-info → coderouter_cli-2.5.0.dist-info}/METADATA +35 -3
- {coderouter_cli-2.4.0.dist-info → coderouter_cli-2.5.0.dist-info}/RECORD +11 -10
- {coderouter_cli-2.4.0.dist-info → coderouter_cli-2.5.0.dist-info}/WHEEL +0 -0
- {coderouter_cli-2.4.0.dist-info → coderouter_cli-2.5.0.dist-info}/entry_points.txt +0 -0
- {coderouter_cli-2.4.0.dist-info → coderouter_cli-2.5.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -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
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
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.
|
|
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=
|
|
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=
|
|
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=
|
|
38
|
-
coderouter/ingress/dashboard_routes.py,sha256=
|
|
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=
|
|
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.
|
|
65
|
-
coderouter_cli-2.
|
|
66
|
-
coderouter_cli-2.
|
|
67
|
-
coderouter_cli-2.
|
|
68
|
-
coderouter_cli-2.
|
|
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,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|