@peterwangze/claude-trigger-router 1.1.0 → 1.1.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.md +83 -12
- package/dist/cli.js +285 -50
- package/dist/cli.js.map +2 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -18,11 +18,50 @@ Claude Trigger Router 是给 Claude Code 用的本地路由代理。
|
|
|
18
18
|
- **协议兼容**:支持 `openai` / `anthropic` 两类接口协议,OpenRouter、DeepSeek 等 OpenAI-compatible 服务按 `openai` 配。
|
|
19
19
|
- **基础路由**:用 `Router.default`、`Router.think`、`Router.longContext` 等槽位指定不同任务的默认模型。
|
|
20
20
|
- **SmartRouter**:先用显式规则命中高确定性任务,也可以在规则未命中时让路由模型从候选模型中自动选择。
|
|
21
|
-
- **Governance 观测**:记录 trace、metrics
|
|
21
|
+
- **Governance 观测**:记录 trace、metrics、异常摘要和健康状态,帮助你理解路由选择和运行风险。
|
|
22
22
|
- **doctor 诊断**:检查配置、服务可启动性、模型兼容策略和可选模型探测。
|
|
23
|
-
- **UI 工作台**:`ctr ui`
|
|
23
|
+
- **UI 工作台**:`ctr ui` 打开本地页面,查看服务上下文、远程状态、配置草稿、compiled models、capability warnings、治理 trace、metrics 和 Health 摘要。
|
|
24
24
|
- **远程状态基础**:可配置 `Runtime.remote_service`,通过 `/api/remote-status` 查看远程服务健康、compiled model 摘要和治理告警摘要。默认用户不需要配置远程模式。
|
|
25
25
|
|
|
26
|
+
## 部署模式与边界
|
|
27
|
+
|
|
28
|
+
当前配置里可以用 `Runtime.mode` 表达部署心智:
|
|
29
|
+
|
|
30
|
+
- `local`:默认模式。你的机器上运行一个本地 `ctr` 服务,Claude Code 通过本地代理访问上游模型。
|
|
31
|
+
- `server`:把 `ctr` 作为远程路由服务运行。它暴露 `/api/service-info`、`/api/remote-status`、`/api/registration`、`/ui` 等服务端状态和管理入口。
|
|
32
|
+
- `cloud`:保留给托管/云端形态的配置语义;当前 npm 包仍按自托管进程运行,不包含托管控制面或集群编排。
|
|
33
|
+
|
|
34
|
+
已落地的远程能力聚焦在“远程服务连接配置、状态查询和注册摘要”。它不会默认替代本地代理主路径,也不会自动启用尚未实现的集群、节点调度或托管控制面。
|
|
35
|
+
|
|
36
|
+
如果要把当前机器作为远程 `server` 暴露给其他客户端,最小配置仍然是普通的 `Models + Router.default`,再加上服务端监听和鉴权:
|
|
37
|
+
|
|
38
|
+
```yaml
|
|
39
|
+
HOST: "0.0.0.0"
|
|
40
|
+
PORT: 5678
|
|
41
|
+
APIKEY: "change-me"
|
|
42
|
+
|
|
43
|
+
Runtime:
|
|
44
|
+
mode: "server"
|
|
45
|
+
|
|
46
|
+
Models:
|
|
47
|
+
- id: sonnet
|
|
48
|
+
api: "https://openrouter.ai/api/v1/chat/completions"
|
|
49
|
+
key: "sk-xxx"
|
|
50
|
+
interface: "openai"
|
|
51
|
+
model: "anthropic/claude-sonnet-4"
|
|
52
|
+
|
|
53
|
+
Router:
|
|
54
|
+
default: "sonnet"
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
启动方式:
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
ctr start --daemon
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
注意:如果配置了 `HOST: "0.0.0.0"` 但没有设置 `APIKEY`,运行时会为了安全强制只监听 `127.0.0.1`。远程客户端里的 `Runtime.remote_service.auth_token` 应该填写服务端的 `APIKEY`,并建议把公网入口放在 HTTPS 反向代理之后。启用 `APIKEY` 后 `/ui` 也会受认证保护;远程浏览器访问 UI 时建议使用本地隧道、内网访问,或由反向代理处理认证。
|
|
64
|
+
|
|
26
65
|
## 安装
|
|
27
66
|
|
|
28
67
|
```bash
|
|
@@ -48,19 +87,23 @@ ctr setup
|
|
|
48
87
|
|
|
49
88
|
- 复用已有 `~/.claude-trigger-router/config.yaml`
|
|
50
89
|
- 探测并迁移旧 `claude-code-router` 配置
|
|
51
|
-
-
|
|
52
|
-
-
|
|
53
|
-
-
|
|
90
|
+
- 在没有可用配置时询问“本地使用”还是“连接远程服务”
|
|
91
|
+
- 本地使用时创建最小可用配置
|
|
92
|
+
- 连接远程服务时写入 `Runtime.remote_service`,不要求你先填写本地 provider/model
|
|
93
|
+
- 本地使用时,引导填写默认模型 ID、接口地址、API Key 和模型名
|
|
94
|
+
- 本地使用时,可选追加复杂任务模型,并生成 SmartRouter 起步模板
|
|
54
95
|
- 保存配置后启动本地服务
|
|
55
96
|
|
|
56
|
-
|
|
97
|
+
本地使用路径完成后按这个顺序使用:
|
|
57
98
|
|
|
58
99
|
```bash
|
|
59
100
|
ctr status
|
|
60
101
|
ctr code
|
|
61
102
|
```
|
|
62
103
|
|
|
63
|
-
`ctr code` 会带着本地代理环境启动 Claude Code。之后你在 Claude Code
|
|
104
|
+
`ctr code` 会带着本地代理环境启动 Claude Code。之后你在 Claude Code 里的请求会经过本地 Trigger Router。
|
|
105
|
+
|
|
106
|
+
如果 setup 选择的是“连接远程服务”,当前主要用于生成远程服务连接配置并检查远程状态;首次日常使用仍建议先跑通本地 `Models + Router.default` 主路径。
|
|
64
107
|
|
|
65
108
|
## 手动配置
|
|
66
109
|
|
|
@@ -248,7 +291,25 @@ http://127.0.0.1:5678/ui
|
|
|
248
291
|
当前 UI 分成两层:
|
|
249
292
|
|
|
250
293
|
- **使用者工作台**:查看和编辑配置草稿、模型、路由、compiled preview 和保存结果。
|
|
251
|
-
- **维护者工作台**:查看 Governance trace、metrics、异常阈值、快照和归档。
|
|
294
|
+
- **维护者工作台**:查看 Governance trace、Health 摘要、metrics、异常阈值、快照和归档。
|
|
295
|
+
|
|
296
|
+
首屏状态区会显示:
|
|
297
|
+
|
|
298
|
+
- 本地服务 ready 状态、端口、模型数和 `Router.default`
|
|
299
|
+
- `Runtime.mode` 与当前服务角色
|
|
300
|
+
- 远程服务状态摘要
|
|
301
|
+
- Registration 模型和上游服务摘要
|
|
302
|
+
|
|
303
|
+
维护者工作台里的 Health 摘要来自 `GET /api/governance/health`,用于快速判断近期治理状态:
|
|
304
|
+
|
|
305
|
+
- `idle`:还没有 trace 样本,先让请求经过路由服务
|
|
306
|
+
- `healthy`:当前窗口没有治理告警
|
|
307
|
+
- `watch`:存在 warning,需要关注级联、影子监督或延迟趋势
|
|
308
|
+
- `critical`:存在 critical 告警,应优先查看异常列表和最近 trace
|
|
309
|
+
|
|
310
|
+
同一份摘要也会出现在 `GET /api/governance/metrics` 的 `health` 字段里。异常数量按总告警数展示,并同时给出 critical / warning 明细,避免只看到单类告警而低估风险。
|
|
311
|
+
|
|
312
|
+
Health 摘要下方的 action 可以直接把 trace 表切到对应排查视图:cascade action 会筛选 `cascadeTriggered=true`,shadow action 会筛选 `shadowChecked=true`,其他 action 会回到近期 trace。
|
|
252
313
|
|
|
253
314
|
如果服务没有启动,`ctr ui` 会提示先运行:
|
|
254
315
|
|
|
@@ -276,17 +337,19 @@ ctr doctor
|
|
|
276
337
|
- 缺失字段和低风险结构问题
|
|
277
338
|
- 配置是否能通过本地校验
|
|
278
339
|
- 服务是否可启动
|
|
340
|
+
- 当前服务上下文:`local` / `server` / `cloud`
|
|
341
|
+
- 如果启用了 `Runtime.remote_service`,会单独检查远程服务可达和 ready 状态
|
|
279
342
|
- 模型兼容策略和请求编译方式
|
|
280
343
|
- capability hint 可能触发的运行时降级
|
|
281
344
|
- 在你确认后,对模型发送最小探测请求
|
|
282
345
|
|
|
283
|
-
模型探测会消耗少量额度,所以 doctor
|
|
346
|
+
模型探测会消耗少量额度,所以 doctor 会先征求确认。如果当前是远程客户端配置且没有本地 `Models`,doctor 会跳过本地模型探测。
|
|
284
347
|
|
|
285
348
|
## 远程服务状态
|
|
286
349
|
|
|
287
350
|
默认情况下,你只需要本地模式,不需要配置远程服务。
|
|
288
351
|
|
|
289
|
-
如果你已经有一个远程 Trigger Router
|
|
352
|
+
如果你已经有一个远程 Trigger Router 服务,可以通过 `ctr setup` 选择“连接远程服务”,或手动配置远程目标:
|
|
290
353
|
|
|
291
354
|
```yaml
|
|
292
355
|
Runtime:
|
|
@@ -294,7 +357,7 @@ Runtime:
|
|
|
294
357
|
remote_service:
|
|
295
358
|
enabled: true
|
|
296
359
|
base_url: "https://router.example.com"
|
|
297
|
-
auth_token: "${CTR_REMOTE_AUTH_TOKEN}"
|
|
360
|
+
auth_token: "${CTR_REMOTE_AUTH_TOKEN}" # 对应远程服务端 APIKEY
|
|
298
361
|
|
|
299
362
|
Router: {}
|
|
300
363
|
```
|
|
@@ -305,7 +368,15 @@ Router: {}
|
|
|
305
368
|
GET /api/remote-status
|
|
306
369
|
```
|
|
307
370
|
|
|
308
|
-
|
|
371
|
+
相关服务端状态接口:
|
|
372
|
+
|
|
373
|
+
```text
|
|
374
|
+
GET /api/service-info
|
|
375
|
+
GET /api/remote-status
|
|
376
|
+
GET /api/registration
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
这条能力当前作为远程接入基础 contract 提供,用于服务发现、状态检查和注册摘要;它不表示已经自动把 Claude Code 请求转发到远端。首次使用仍建议从本地 `ctr setup -> ctr start -> ctr code` 开始。
|
|
309
380
|
|
|
310
381
|
## 常用命令
|
|
311
382
|
|