@chenpu17/cc-gw 0.3.12 → 0.4.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.
Files changed (29) hide show
  1. package/README.md +35 -0
  2. package/package.json +27 -17
  3. package/src/cli/dist/index.js +1 -0
  4. package/src/server/dist/index.js +1597 -142
  5. package/src/web/dist/assets/About-CH7-GnML.js +11 -0
  6. package/src/web/dist/assets/{ApiKeys-CBe66hEA.js → ApiKeys-DbxeLLKa.js} +2 -2
  7. package/src/web/dist/assets/{Button-C-i-DISc.js → Button-3qj8BOTb.js} +1 -1
  8. package/src/web/dist/assets/{Dashboard-D8pCuP6p.js → Dashboard-Co1ZMGdJ.js} +1 -1
  9. package/src/web/dist/assets/{FormField-1cnBcVyy.js → FormField-DmKxUoqD.js} +1 -1
  10. package/src/web/dist/assets/{Help-BxOmZMMV.js → Help-DLqRglMH.js} +1 -1
  11. package/src/web/dist/assets/{Input-BZ6K0tyW.js → Input-AVaeYH0J.js} +1 -1
  12. package/src/web/dist/assets/{Login-Dv9uSd3D.js → Login-CQ-q3WoP.js} +1 -1
  13. package/src/web/dist/assets/{Logs-CPHSNLlA.js → Logs-C5qWLb-O.js} +1 -1
  14. package/src/web/dist/assets/ModelManagement-DEwX4znU.js +1 -0
  15. package/src/web/dist/assets/{PageSection-BdauTwx0.js → PageSection-819eIHwY.js} +1 -1
  16. package/src/web/dist/assets/Settings-BghgyqoT.js +1 -0
  17. package/src/web/dist/assets/{StatusBadge-BCWow-Yk.js → StatusBadge-FIJj_rsA.js} +1 -1
  18. package/src/web/dist/assets/{copy-BhWxP215.js → copy-dJsIfcXG.js} +1 -1
  19. package/src/web/dist/assets/index-But5PyJC.css +1 -0
  20. package/src/web/dist/assets/{index-Jd5giEeS.js → index-CMmlZ8am.js} +54 -20
  21. package/src/web/dist/assets/{index-DCeJcrH5.js → index-D4f4GIYb.js} +1 -1
  22. package/src/web/dist/assets/{info-BLq7flU9.js → info-Cg4yNF4Z.js} +1 -1
  23. package/src/web/dist/assets/useApiQuery-qpXuOM9g.js +1 -0
  24. package/src/web/dist/index.html +2 -2
  25. package/src/web/dist/assets/About-DnWkOgAf.js +0 -11
  26. package/src/web/dist/assets/ModelManagement-Cf-NV2X0.js +0 -1
  27. package/src/web/dist/assets/Settings-BG-7LB6a.js +0 -1
  28. package/src/web/dist/assets/index-BOv43c_r.css +0 -1
  29. package/src/web/dist/assets/useApiQuery-DByVsawz.js +0 -1
package/README.md CHANGED
@@ -166,6 +166,41 @@ export CC_GW_ANTHROPIC_BETA_ALL=claude-code-20250219,interleaved-thinking-2025-0
166
166
 
167
167
  然后运行 `direnv allow` 自动加载。
168
168
 
169
+ ##### 6.3 自定义接入点(Custom Endpoints)
170
+
171
+ cc-gw 支持创建额外的自定义 API 端点,每个端点可以:
172
+ - 使用不同的协议(Anthropic、OpenAI)
173
+ - 配置独立的路由规则
174
+ - 支持多路径注册(一个端点支持多种协议)
175
+ - **自动路径扩展**:只需配置基础路径(如 `/my-endpoint`),系统会根据协议自动注册完整的 API 路径
176
+
177
+ **快速示例**:
178
+
179
+ 通过 Web UI 或配置文件创建自定义端点:
180
+ ```json
181
+ {
182
+ "customEndpoints": [
183
+ {
184
+ "id": "claude-api",
185
+ "label": "Claude 专用接入点",
186
+ "path": "/claude",
187
+ "protocol": "anthropic",
188
+ "enabled": true
189
+ }
190
+ ]
191
+ }
192
+ ```
193
+
194
+ 配置后,客户端可以通过 `http://127.0.0.1:4100/claude/v1/messages` 访问(路径自动扩展)。
195
+
196
+ **主要特性**:
197
+ - **协议自动路径扩展**:配置 `/claude` + `anthropic` 协议,自动注册 `/claude/v1/messages`
198
+ - **多协议支持**:同时支持 Anthropic 和 OpenAI(Chat Completions / Responses API)
199
+ - **独立路由**:每个端点可以配置独立的模型路由规则
200
+ - **路由模板**:支持保存和应用路由预设,快速切换不同的 Provider 配置
201
+
202
+ **详细文档**:[docs/custom-endpoints.md](docs/custom-endpoints.md)
203
+
169
204
  > ⚠️ 如果 OpenAI 接入点仍返回“暂不支持”,请将客户端改用 `/anthropic/v1/messages` 端点并直接配置 Anthropic Provider。
170
205
 
171
206
  #### 常见问题排查
package/package.json CHANGED
@@ -1,8 +1,24 @@
1
1
  {
2
2
  "name": "@chenpu17/cc-gw",
3
- "version": "0.3.12",
3
+ "version": "0.4.0",
4
4
  "private": false,
5
5
  "type": "module",
6
+ "scripts": {
7
+ "dev": "pnpm --filter server dev",
8
+ "build": "pnpm run build:server && pnpm run build:web",
9
+ "build:server": "pnpm --filter @cc-gw/server build",
10
+ "build:cli": "pnpm --filter @cc-gw/cli build",
11
+ "build:web": "pnpm --filter @cc-gw/web build",
12
+ "build:all": "pnpm run build:server && pnpm run build:cli && pnpm run build:web",
13
+ "release:bundle": "pnpm run build:all && node scripts/build-release.mjs",
14
+ "prepack": "pnpm run build:all",
15
+ "lint": "pnpm exec eslint .",
16
+ "format": "pnpm exec prettier --check .",
17
+ "format:write": "pnpm exec prettier --write .",
18
+ "typecheck": "pnpm -r exec tsc --noEmit",
19
+ "test": "pnpm exec vitest run",
20
+ "test:playwright": "playwright test"
21
+ },
6
22
  "bin": {
7
23
  "cc-gw": "src/cli/dist/index.js"
8
24
  },
@@ -13,6 +29,15 @@
13
29
  "README.md",
14
30
  "LICENSE"
15
31
  ],
32
+ "pnpm": {
33
+ "peerDependencyRules": {
34
+ "ignoreMissing": [
35
+ "react",
36
+ "react-dom"
37
+ ]
38
+ }
39
+ },
40
+ "packageManager": "pnpm@9.0.0",
16
41
  "engines": {
17
42
  "node": ">=18.18.0"
18
43
  },
@@ -50,20 +75,5 @@
50
75
  "typescript": "^5.4.3",
51
76
  "typescript-eslint": "^7.5.0",
52
77
  "vitest": "^1.6.0"
53
- },
54
- "scripts": {
55
- "dev": "pnpm --filter server dev",
56
- "build": "pnpm run build:server && pnpm run build:web",
57
- "build:server": "pnpm --filter @cc-gw/server build",
58
- "build:cli": "pnpm --filter @cc-gw/cli build",
59
- "build:web": "pnpm --filter @cc-gw/web build",
60
- "build:all": "pnpm run build:server && pnpm run build:cli && pnpm run build:web",
61
- "release:bundle": "pnpm run build:all && node scripts/build-release.mjs",
62
- "lint": "pnpm exec eslint .",
63
- "format": "pnpm exec prettier --check .",
64
- "format:write": "pnpm exec prettier --write .",
65
- "typecheck": "pnpm -r exec tsc --noEmit",
66
- "test": "pnpm exec vitest run",
67
- "test:playwright": "playwright test"
68
78
  }
69
- }
79
+ }
@@ -103,6 +103,7 @@ async function ensureConfigTemplate(port) {
103
103
  defaults: { ...baseDefaults },
104
104
  storeRequestPayloads: true,
105
105
  storeResponsePayloads: true,
106
+ enableRoutingFallback: false,
106
107
  endpointRouting: {
107
108
  anthropic: {
108
109
  defaults: { ...baseDefaults },