commandcode-api-proxy 0.1.2 → 0.1.3

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 (43) hide show
  1. package/README.md +149 -22
  2. package/dist/proxy.js +8 -0
  3. package/dist/proxy.js.map +1 -1
  4. package/dist/server.d.ts.map +1 -1
  5. package/dist/server.js +184 -21
  6. package/dist/server.js.map +1 -1
  7. package/dist/setup/claude-code.d.ts +2 -0
  8. package/dist/setup/claude-code.d.ts.map +1 -0
  9. package/dist/setup/claude-code.js +37 -0
  10. package/dist/setup/claude-code.js.map +1 -0
  11. package/dist/setup/opencode.d.ts.map +1 -1
  12. package/dist/setup/opencode.js.map +1 -1
  13. package/dist/stream.d.ts +1 -0
  14. package/dist/stream.d.ts.map +1 -1
  15. package/dist/stream.js +6 -0
  16. package/dist/stream.js.map +1 -1
  17. package/dist/translate/anthropic-models.d.ts +2 -0
  18. package/dist/translate/anthropic-models.d.ts.map +1 -0
  19. package/dist/translate/anthropic-models.js +11 -0
  20. package/dist/translate/anthropic-models.js.map +1 -0
  21. package/dist/translate/anthropic-types.d.ts +168 -0
  22. package/dist/translate/anthropic-types.d.ts.map +1 -0
  23. package/dist/translate/anthropic-types.js +4 -0
  24. package/dist/translate/anthropic-types.js.map +1 -0
  25. package/dist/translate/anthropic.d.ts +24 -0
  26. package/dist/translate/anthropic.d.ts.map +1 -0
  27. package/dist/translate/anthropic.js +458 -0
  28. package/dist/translate/anthropic.js.map +1 -0
  29. package/dist/translate/openai.d.ts +10 -10
  30. package/dist/translate/openai.d.ts.map +1 -1
  31. package/dist/translate/openai.js +153 -208
  32. package/dist/translate/openai.js.map +1 -1
  33. package/dist/translate/util.d.ts +1 -2
  34. package/dist/translate/util.d.ts.map +1 -1
  35. package/dist/translate/util.js +33 -12
  36. package/dist/translate/util.js.map +1 -1
  37. package/dist/translate/validation.d.ts +2 -0
  38. package/dist/translate/validation.d.ts.map +1 -1
  39. package/dist/translate/validation.js +74 -0
  40. package/dist/translate/validation.js.map +1 -1
  41. package/dist/upstream.d.ts.map +1 -1
  42. package/dist/upstream.js.map +1 -1
  43. package/package.json +1 -1
package/README.md CHANGED
@@ -56,12 +56,13 @@ Get your API key from https://commandcode.ai/settings.
56
56
 
57
57
  ### CLI options
58
58
 
59
- | Option | Description | Default |
60
- | ----------- | -------------------- | ----------- |
61
- | `--host` | Bind address | `127.0.0.1` |
62
- | `--port` | Port | `8787` |
63
- | `--api-key` | Command Code API key | — |
64
- | `--setup-opencode` | Generate OpenCode provider config | — |
59
+ | Option | Description | Default |
60
+ | --------------------- | --------------------------------- | ----------- |
61
+ | `--host` | Bind address | `127.0.0.1` |
62
+ | `--port` | Port | `8787` |
63
+ | `--api-key` | Command Code API key | — |
64
+ | `--setup-opencode` | Generate OpenCode provider config | — |
65
+ | `--setup-claude-code` | Generate Claude Code model config | — |
65
66
 
66
67
  ## Endpoints
67
68
 
@@ -78,6 +79,71 @@ curl http://127.0.0.1:8787/v1/chat/completions \
78
79
  }'
79
80
  ```
80
81
 
82
+ ### `POST /v1/messages` (Anthropic)
83
+
84
+ ```bash
85
+ curl http://127.0.0.1:8787/v1/messages \
86
+ -H "x-api-key: proxy-managed" \
87
+ -H "Content-Type: application/json" \
88
+ -d '{
89
+ "model": "claude-sonnet-4-5-20250929",
90
+ "max_tokens": 4096,
91
+ "messages": [{"role": "user", "content": "Hello!"}],
92
+ "stream": true
93
+ }'
94
+ ```
95
+
96
+ ### `POST /v1/messages/count_tokens` (Anthropic)
97
+
98
+ ```bash
99
+ curl http://127.0.0.1:8787/v1/messages/count_tokens \
100
+ -H "x-api-key: proxy-managed" \
101
+ -H "Content-Type: application/json" \
102
+ -d '{
103
+ "messages": [{"role": "user", "content": "Hello!"}]
104
+ }'
105
+ ```
106
+
107
+ ### Anthropic model mapping
108
+
109
+ Anthropic clients send Claude model IDs (e.g., `claude-sonnet-4-5-20250929`).
110
+ The proxy maps them to CC models via a config file with glob wildcards:
111
+
112
+ ```bash
113
+ npx commandcode-api-proxy --setup-claude-code
114
+ ```
115
+
116
+ This writes `~/.config/commandcode-api-proxy/anthropic-models.json`:
117
+
118
+ ```json
119
+ {
120
+ "default": "deepseek/deepseek-v4-pro",
121
+ "mappings": {
122
+ "claude-sonnet-*": "deepseek/deepseek-v4-pro",
123
+ "claude-opus-*": "deepseek/deepseek-v4-pro",
124
+ "claude-haiku-*": "deepseek/deepseek-v4-flash"
125
+ }
126
+ }
127
+ ```
128
+
129
+ **Glob matching:** `*` matches any characters. First matching pattern wins —
130
+ put specific patterns before general ones (e.g. `claude-sonnet-*` before
131
+ `claude-*`). Edit the file to customize mappings, then restart the proxy.
132
+
133
+ Non-Claude model IDs pass through unchanged.
134
+
135
+ **Optional override:** Set `ANTHROPIC_DEFAULT_MODEL` env var to override the
136
+ config file's `default` field without editing the file.
137
+
138
+ ### Anthropic limitations
139
+
140
+ - **Thinking signatures**: placeholder only (not cryptographically signed).
141
+ - **Cache control**: stripped (no CC analogue).
142
+ - **Count tokens**: heuristic estimate, not exact.
143
+ - **Built-in/server tools** (`computer_`, `bash_`, `web_search_`, etc.):
144
+ rejected with `invalid_request_error`. Only custom tools supported.
145
+ - **`metadata`, `top_k`, `top_p`, `service_tier`**: accepted but dropped.
146
+
81
147
  ## Client configuration
82
148
 
83
149
  ### OpenCode
@@ -102,19 +168,37 @@ Or add manually:
102
168
  "apiKey": "proxy-managed"
103
169
  },
104
170
  "models": {
105
- "deepseek-v4-pro": { "name": "DeepSeek V4 Pro", "limit": { "context": 1048576, "output": 393216 } },
106
- "deepseek-v4-flash": { "name": "DeepSeek V4 Flash", "limit": { "context": 1048576, "output": 393216 } },
171
+ "deepseek-v4-pro": {
172
+ "name": "DeepSeek V4 Pro",
173
+ "limit": { "context": 1048576, "output": 393216 }
174
+ },
175
+ "deepseek-v4-flash": {
176
+ "name": "DeepSeek V4 Flash",
177
+ "limit": { "context": 1048576, "output": 393216 }
178
+ },
107
179
  "MiniMax-M2.7": { "name": "MiniMax M2.7", "limit": { "context": 204800, "output": 32768 } },
108
180
  "MiniMax-M2.5": { "name": "MiniMax M2.5", "limit": { "context": 204800, "output": 32768 } },
109
181
  "GLM-5.1": { "name": "GLM-5.1", "limit": { "context": 200000, "output": 131072 } },
110
182
  "GLM-5": { "name": "GLM-5", "limit": { "context": 200000, "output": 131072 } },
111
183
  "Kimi-K2.6": { "name": "Kimi K2.6", "limit": { "context": 262144, "output": 98304 } },
112
184
  "Kimi-K2.5": { "name": "Kimi K2.5", "limit": { "context": 262144, "output": 98304 } },
113
- "Qwen3.6-Max-Preview": { "name": "Qwen 3.6 Max Preview", "limit": { "context": 262144, "output": 65536 } },
114
- "Qwen3.6-Plus": { "name": "Qwen 3.6 Plus", "limit": { "context": 1048576, "output": 65536 } },
185
+ "Qwen3.6-Max-Preview": {
186
+ "name": "Qwen 3.6 Max Preview",
187
+ "limit": { "context": 262144, "output": 65536 }
188
+ },
189
+ "Qwen3.6-Plus": {
190
+ "name": "Qwen 3.6 Plus",
191
+ "limit": { "context": 1048576, "output": 65536 }
192
+ },
115
193
  "Qwen3.7-Max": { "name": "Qwen 3.7 Max", "limit": { "context": 1048576, "output": 65536 } },
116
- "Qwen3.7-Plus": { "name": "Qwen 3.7 Plus", "limit": { "context": 1048576, "output": 65536 } },
117
- "Step-3.5-Flash": { "name": "Step 3.5 Flash", "limit": { "context": 262144, "output": 65536 } },
194
+ "Qwen3.7-Plus": {
195
+ "name": "Qwen 3.7 Plus",
196
+ "limit": { "context": 1048576, "output": 65536 }
197
+ },
198
+ "Step-3.5-Flash": {
199
+ "name": "Step 3.5 Flash",
200
+ "limit": { "context": 262144, "output": 65536 }
201
+ },
118
202
  "mimo-v2.5": { "name": "MiMo V2.5", "limit": { "context": 1048576, "output": 131072 } }
119
203
  }
120
204
  }
@@ -154,20 +238,63 @@ response = client.chat.completions.create(
154
238
  }
155
239
  ```
156
240
 
241
+ ### Claude Code
242
+
243
+ Run the proxy's setup to generate model config and Claude Code settings:
244
+
245
+ ```bash
246
+ npx commandcode-api-proxy --setup-claude-code
247
+ ```
248
+
249
+ This creates:
250
+
251
+ 1. Model mapping config at `~/.config/commandcode-api-proxy/anthropic-models.json`
252
+ 2. Claude Code settings at `~/.config/commandcode-api-proxy/claude-settings.json`
253
+
254
+ Then run:
255
+
256
+ ```bash
257
+ claude --settings ~/.config/commandcode-api-proxy/claude-settings.json
258
+ ```
259
+
260
+ Or set an alias:
261
+
262
+ ```bash
263
+ alias claude-proxy="claude --settings ~/.config/commandcode-api-proxy/claude-settings.json"
264
+ claude-proxy
265
+ ```
266
+
267
+ ### Anthropic SDK (Python)
268
+
269
+ ```python
270
+ from anthropic import Anthropic
271
+
272
+ client = Anthropic(
273
+ base_url="http://127.0.0.1:8787/v1",
274
+ api_key="proxy-managed",
275
+ )
276
+
277
+ message = client.messages.create(
278
+ model="claude-sonnet-4-5-20250929",
279
+ max_tokens=4096,
280
+ messages=[{"role": "user", "content": "Hello!"}],
281
+ )
282
+ ```
283
+
157
284
  ## Model aliases
158
285
 
159
286
  Short names work in addition to full model IDs:
160
287
 
161
- | Alias | Maps to |
162
- | -------------------------------------- | ---------------------------- |
163
- | `deepseek-v4-pro`, `deepseek-v4` | `deepseek/deepseek-v4-pro` |
164
- | `deepseek-v4-flash`, `deepseek-flash` | `deepseek/deepseek-v4-flash` |
165
- | `minimax-m2.7`, `minimax-m2.5` | `MiniMaxAI/MiniMax-*` |
166
- | `glm-5.1`, `glm-5` | `zai-org/GLM-*` |
167
- | `kimi-k2.6`, `kimi-k2.5` | `moonshotai/Kimi-*` |
168
- | `qwen3.6-max`, `qwen3.6-plus` | `Qwen/Qwen3.6-*` |
169
- | `step3.5` | `stepfun/Step-3.5-Flash` |
170
- | `mimo-v2.5` | `xiaomi/mimo-v2.5` |
288
+ | Alias | Maps to |
289
+ | ------------------------------------- | ---------------------------- |
290
+ | `deepseek-v4-pro`, `deepseek-v4` | `deepseek/deepseek-v4-pro` |
291
+ | `deepseek-v4-flash`, `deepseek-flash` | `deepseek/deepseek-v4-flash` |
292
+ | `minimax-m2.7`, `minimax-m2.5` | `MiniMaxAI/MiniMax-*` |
293
+ | `glm-5.1`, `glm-5` | `zai-org/GLM-*` |
294
+ | `kimi-k2.6`, `kimi-k2.5` | `moonshotai/Kimi-*` |
295
+ | `qwen3.6-max`, `qwen3.6-plus` | `Qwen/Qwen3.6-*` |
296
+ | `step3.5` | `stepfun/Step-3.5-Flash` |
297
+ | `mimo-v2.5` | `xiaomi/mimo-v2.5` |
171
298
 
172
299
  Any model ID is passed through as-is — the proxy does not validate against a fixed list.
173
300
 
package/dist/proxy.js CHANGED
@@ -3,6 +3,7 @@ import { loadConfig, fetchLatestCliVersion } from "./config.js";
3
3
  import { createServer } from "./server.js";
4
4
  import { saveApiKey, promptForApiKey, readAuthKey, deleteAuth } from "./auth.js";
5
5
  import { setupOpenCodeConfig } from "./setup/opencode.js";
6
+ import { setupClaudeCodeConfig } from "./setup/claude-code.js";
6
7
  import { logger, initLogger } from "./logger.js";
7
8
  const args = process.argv.slice(2);
8
9
  if (args[0] === "auth") {
@@ -36,6 +37,11 @@ if (args.includes("--setup-opencode")) {
36
37
  await setupOpenCodeConfig();
37
38
  process.exit(0);
38
39
  }
40
+ if (args.includes("--setup-claude-code")) {
41
+ const force = args.includes("--force");
42
+ await setupClaudeCodeConfig(force);
43
+ process.exit(0);
44
+ }
39
45
  const config = loadConfig();
40
46
  initLogger(config.logLevel);
41
47
  logger.info(`API key source: ${process.env.CC_API_KEY ? "env CC_API_KEY" : config.apiKey ? "auth.json" : "none"} (length: ${config.apiKey?.length ?? 0})`);
@@ -67,6 +73,8 @@ server.listen(config.port, config.host, () => {
67
73
  console.log(" GET /health");
68
74
  console.log(" GET /v1/models");
69
75
  console.log(" POST /v1/chat/completions (OpenAI format)");
76
+ console.log(" POST /v1/messages (Anthropic format)");
77
+ console.log(" POST /v1/messages/count_tokens (Anthropic format)");
70
78
  console.log("");
71
79
  console.log(" Press Ctrl+C to stop\n");
72
80
  });
package/dist/proxy.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../src/proxy.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAEnC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;IACvB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACvC,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;QAC/B,IAAI,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,yEAAyE,CAAC,CAAC;YACvF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;QAC3E,MAAM,GAAG,GAAG,MAAM,eAAe,EAAE,CAAC;QACpC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;YACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,UAAU,CAAC,GAAG,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,kEAAkE,CAAC,CAAC;IAClF,CAAC;SAAM,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,UAAU,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IACzC,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,IAAI,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;IACtC,MAAM,mBAAmB,EAAE,CAAC;IAC5B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;AAC5B,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAE5B,MAAM,CAAC,IAAI,CAAC,mBAAmB,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,aAAa,MAAM,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC;AAE3J,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;IAChC,MAAM,MAAM,GAAG,MAAM,qBAAqB,EAAE,CAAC;IAC7C,IAAI,MAAM;QAAE,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC;AACxC,CAAC;AAED,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;IACxE,MAAM,GAAG,GAAG,MAAM,eAAe,EAAE,CAAC;IACpC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,UAAU,CAAC,GAAG,CAAC,CAAC;IAChB,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC;IACpB,OAAO,CAAC,GAAG,CAAC,kEAAkE,CAAC,CAAC;AAClF,CAAC;AAED,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;AAEpC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;IAC3C,OAAO,CAAC,GAAG,CAAC,+BAA+B,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,OAAO,EAAE,CAAC,CAAC;IACzF,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,0BAA0B,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACpE,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;IAC7F,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC5B,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAChC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;AAC1C,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;IACxB,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;IACpC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACtC,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;IACzB,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACtC,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../src/proxy.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAiQ1C,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC,MAAM,CAsDrD"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAoc1C,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC,MAAM,CA4DrD"}
package/dist/server.js CHANGED
@@ -1,12 +1,12 @@
1
1
  import http from "node:http";
2
2
  import { URL } from "node:url";
3
- import { toCCRequest, toOpenAIStreamChunk, toOpenAIErrorChunk, buildNonStreamingResponse, } from "./translate/openai.js";
3
+ import { toCCRequest, OpenAIStreamEncoder, buildNonStreamingResponse } from "./translate/openai.js";
4
+ import { toCCRequest as anToCCRequest, AnthropicStreamEncoder, buildAnthropicResponse, } from "./translate/anthropic.js";
4
5
  import { getDefaultModels, fetchModelList } from "./translate/models.js";
5
- import { resetMessageId } from "./translate/util.js";
6
- import { formatSSE, formatSSEDone } from "./stream.js";
6
+ import { formatSSE, formatSSEDone, formatAnthropicSSE } from "./stream.js";
7
7
  import { sendToCC, collectEvents, UpstreamError } from "./upstream.js";
8
8
  import { logger } from "./logger.js";
9
- import { validateOpenAIChatRequest, ValidationError } from "./translate/validation.js";
9
+ import { validateOpenAIChatRequest, validateAnthropicRequest, ValidationError, } from "./translate/validation.js";
10
10
  // ──────────────────────────────────────────
11
11
  // Mutable server state
12
12
  // ──────────────────────────────────────────
@@ -71,6 +71,22 @@ function sendJson(res, status, data) {
71
71
  });
72
72
  res.end(JSON.stringify(data));
73
73
  }
74
+ function sendOpenAIError(res, status, message) {
75
+ sendJson(res, status, { error: { message, type: "proxy_error" } });
76
+ }
77
+ const ANTHROPIC_STATUS_ERROR_MAP = {
78
+ 400: "invalid_request_error",
79
+ 401: "authentication_error",
80
+ 403: "permission_error",
81
+ 404: "not_found_error",
82
+ 429: "rate_limit_error",
83
+ 500: "api_error",
84
+ 529: "overloaded_error",
85
+ };
86
+ function sendAnthropicError(res, status, type, message) {
87
+ res.writeHead(status, { "Content-Type": "application/json", ...corsHeaders() });
88
+ res.end(JSON.stringify({ type: "error", error: { type, message } }));
89
+ }
74
90
  function corsHeaders() {
75
91
  return {
76
92
  "Access-Control-Allow-Origin": "*",
@@ -101,7 +117,27 @@ function handleHealth(_req, res) {
101
117
  version: process.env.npm_package_version ?? "0.1.0",
102
118
  });
103
119
  }
104
- function handleModels(_req, res) {
120
+ function handleModels(req, res) {
121
+ const isAnthropic = req.headers["anthropic-version"] !== undefined;
122
+ if (isAnthropic) {
123
+ const items = modelList;
124
+ const data = {
125
+ data: items.map((id) => ({
126
+ id,
127
+ type: "model",
128
+ display_name: id,
129
+ created_at: new Date().toISOString(),
130
+ max_input_tokens: null,
131
+ max_tokens: null,
132
+ capabilities: null,
133
+ })),
134
+ has_more: false,
135
+ first_id: items.length > 0 ? items[0] : null,
136
+ last_id: items.length > 0 ? items[items.length - 1] : null,
137
+ };
138
+ sendJson(res, 200, data);
139
+ return;
140
+ }
105
141
  const data = {
106
142
  object: "list",
107
143
  data: modelList.map((id) => ({
@@ -119,7 +155,7 @@ async function handleChatCompletions(req, res) {
119
155
  rawBody = await parseBody(req);
120
156
  }
121
157
  catch {
122
- return sendJson(res, 400, { error: "Invalid JSON body" });
158
+ return sendOpenAIError(res, 400, "Invalid JSON body");
123
159
  }
124
160
  let openAIReq;
125
161
  try {
@@ -127,16 +163,17 @@ async function handleChatCompletions(req, res) {
127
163
  }
128
164
  catch (err) {
129
165
  if (err instanceof ValidationError) {
130
- return sendJson(res, 400, { error: err.message });
166
+ return sendOpenAIError(res, 400, err.message);
131
167
  }
132
- return sendJson(res, 400, { error: "Invalid request body" });
168
+ return sendOpenAIError(res, 400, "Invalid request body");
133
169
  }
134
170
  const apiKey = extractApiKey(req);
135
171
  if (!apiKey) {
136
- return sendJson(res, 401, { error: "Unauthorized" });
172
+ return sendOpenAIError(res, 401, "Unauthorized");
137
173
  }
138
174
  const isStream = openAIReq.stream === true;
139
175
  const model = openAIReq.model ?? "default";
176
+ const encoder = new OpenAIStreamEncoder(model);
140
177
  logger.info(`[Incoming Request] Model: ${model}`);
141
178
  logger.info(`[Incoming Request] Tools count: ${openAIReq.tools ? openAIReq.tools.length : 0}`);
142
179
  if (openAIReq.tools && openAIReq.tools.length > 0) {
@@ -145,7 +182,6 @@ async function handleChatCompletions(req, res) {
145
182
  else {
146
183
  logger.info(`[Incoming Request] No tools were sent by the client!`);
147
184
  }
148
- resetMessageId();
149
185
  const ccBody = toCCRequest(openAIReq);
150
186
  const abort = abortOnClientDisconnect(req, res);
151
187
  try {
@@ -163,7 +199,7 @@ async function handleChatCompletions(req, res) {
163
199
  ...corsHeaders(),
164
200
  });
165
201
  stream.on("data", (event) => {
166
- for (const chunk of toOpenAIStreamChunk(event, model)) {
202
+ for (const chunk of encoder.emit(event)) {
167
203
  res.write(formatSSE(chunk));
168
204
  }
169
205
  });
@@ -174,7 +210,7 @@ async function handleChatCompletions(req, res) {
174
210
  stream.on("error", (err) => {
175
211
  logger.error("[stream] OpenAI streaming error:", err.message);
176
212
  if (!res.destroyed) {
177
- res.write(formatSSE(toOpenAIErrorChunk(err)));
213
+ res.write(formatSSE(encoder.errorChunk(err)));
178
214
  res.write(formatSSEDone());
179
215
  res.end();
180
216
  }
@@ -183,28 +219,149 @@ async function handleChatCompletions(req, res) {
183
219
  }
184
220
  else {
185
221
  const events = await collectEvents(stream);
186
- const response = buildNonStreamingResponse(events, model);
222
+ const response = buildNonStreamingResponse(events, model, encoder.id);
187
223
  sendJson(res, 200, response);
188
224
  }
189
225
  }
190
226
  catch (err) {
191
- handleUpstreamError(res, err);
227
+ handleUpstreamError(res, err, "openai");
192
228
  }
193
229
  }
230
+ async function handleMessages(req, res) {
231
+ let rawBody;
232
+ try {
233
+ rawBody = await parseBody(req);
234
+ }
235
+ catch {
236
+ return sendAnthropicError(res, 400, "invalid_request_error", "Invalid JSON body");
237
+ }
238
+ let anthropicReq;
239
+ try {
240
+ anthropicReq = validateAnthropicRequest(rawBody);
241
+ }
242
+ catch (err) {
243
+ if (err instanceof ValidationError) {
244
+ return sendAnthropicError(res, 400, "invalid_request_error", err.message);
245
+ }
246
+ return sendAnthropicError(res, 400, "invalid_request_error", "Invalid request body");
247
+ }
248
+ const apiKey = extractApiKey(req);
249
+ if (!apiKey) {
250
+ return sendAnthropicError(res, 401, "authentication_error", "Missing API key");
251
+ }
252
+ const isStream = anthropicReq.stream === true;
253
+ const model = anthropicReq.model;
254
+ const encoder = new AnthropicStreamEncoder(model);
255
+ const ccBody = anToCCRequest(anthropicReq);
256
+ const abort = abortOnClientDisconnect(req, res);
257
+ try {
258
+ const result = await sendToCC(ccBody, { apiBase: config.ccApiBase, apiKey, ccVersion: config.ccVersion }, abort.signal);
259
+ const stream = result.stream;
260
+ if (isStream) {
261
+ res.writeHead(200, {
262
+ "Content-Type": "text/event-stream",
263
+ "Cache-Control": "no-cache",
264
+ Connection: "keep-alive",
265
+ ...corsHeaders(),
266
+ });
267
+ stream.on("data", (event) => {
268
+ for (const record of encoder.emit(event)) {
269
+ res.write(formatAnthropicSSE(record.event, record.data));
270
+ }
271
+ });
272
+ stream.on("end", () => res.end());
273
+ stream.on("error", (err) => {
274
+ logger.error("[stream] Anthropic streaming error:", err.message);
275
+ if (!res.destroyed) {
276
+ res.write(formatAnthropicSSE("error", {
277
+ type: "error",
278
+ error: { type: "api_error", message: err.message },
279
+ }));
280
+ res.end();
281
+ }
282
+ });
283
+ destroyStreamOnClientDisconnect(req, stream);
284
+ }
285
+ else {
286
+ const events = await collectEvents(stream);
287
+ const response = buildAnthropicResponse(events, model, encoder.messageId);
288
+ res.writeHead(200, { "Content-Type": "application/json", ...corsHeaders() });
289
+ res.end(JSON.stringify(response));
290
+ }
291
+ }
292
+ catch (err) {
293
+ handleUpstreamError(res, err, "anthropic");
294
+ }
295
+ }
296
+ async function handleCountTokens(req, res) {
297
+ let rawBody;
298
+ try {
299
+ rawBody = await parseBody(req);
300
+ }
301
+ catch {
302
+ return sendAnthropicError(res, 400, "invalid_request_error", "Invalid JSON body");
303
+ }
304
+ const body = rawBody;
305
+ const parts = [];
306
+ if (typeof body.system === "string")
307
+ parts.push(body.system);
308
+ else if (Array.isArray(body.system)) {
309
+ for (const b of body.system) {
310
+ if (b.text)
311
+ parts.push(b.text);
312
+ }
313
+ }
314
+ const msgs = body.messages;
315
+ if (msgs) {
316
+ for (const msg of msgs) {
317
+ parts.push(typeof msg.content === "string" ? msg.content : JSON.stringify(msg.content));
318
+ }
319
+ }
320
+ const tools = body.tools;
321
+ if (tools) {
322
+ for (const t of tools) {
323
+ parts.push(t.name ?? "", t.description ?? "", JSON.stringify(t.input_schema ?? {}));
324
+ }
325
+ }
326
+ const allText = parts.join("");
327
+ let cjk = 0;
328
+ let nonCjk = 0;
329
+ for (const ch of allText) {
330
+ const code = ch.codePointAt(0) ?? 0;
331
+ if ((code >= 0x4e00 && code <= 0x9fff) ||
332
+ (code >= 0x3040 && code <= 0x309f) ||
333
+ (code >= 0x30a0 && code <= 0x30ff) ||
334
+ (code >= 0xac00 && code <= 0xd7af)) {
335
+ cjk++;
336
+ }
337
+ else {
338
+ nonCjk++;
339
+ }
340
+ }
341
+ const estimated = Math.ceil(cjk + nonCjk / 4);
342
+ sendJson(res, 200, { input_tokens: estimated });
343
+ }
194
344
  // ──────────────────────────────────────────
195
345
  // Error handling
196
346
  // ──────────────────────────────────────────
197
- function handleUpstreamError(res, err) {
347
+ function handleUpstreamError(res, err, format) {
348
+ if (format === "anthropic") {
349
+ if (err instanceof UpstreamError) {
350
+ const status = err.statusCode >= 400 && err.statusCode < 500 ? err.statusCode : 502;
351
+ const type = ANTHROPIC_STATUS_ERROR_MAP[status] ?? "api_error";
352
+ sendAnthropicError(res, status, type, err.message);
353
+ }
354
+ else {
355
+ sendAnthropicError(res, 502, "api_error", err.message);
356
+ }
357
+ return;
358
+ }
198
359
  if (err instanceof UpstreamError) {
199
360
  const status = err.statusCode >= 400 && err.statusCode < 500 ? err.statusCode : 502;
200
- sendJson(res, status, {
201
- error: { message: err.message, type: "upstream_error", code: err.statusCode },
202
- });
361
+ sendOpenAIError(res, status, err.message);
203
362
  }
204
363
  else {
205
- sendJson(res, 502, {
206
- error: { message: err.message, type: "proxy_error" },
207
- });
364
+ sendOpenAIError(res, 502, err.message);
208
365
  }
209
366
  }
210
367
  export function createServer(cfg) {
@@ -224,6 +381,8 @@ export function createServer(cfg) {
224
381
  { method: "GET", path: "/health", handler: handleHealth },
225
382
  { method: "GET", path: "/v1/models", handler: handleModels },
226
383
  { method: "POST", path: "/v1/chat/completions", handler: handleChatCompletions },
384
+ { method: "POST", path: "/v1/messages", handler: handleMessages },
385
+ { method: "POST", path: "/v1/messages/count_tokens", handler: handleCountTokens },
227
386
  ];
228
387
  const server = http.createServer((req, res) => {
229
388
  if (req.method === "OPTIONS") {
@@ -234,6 +393,10 @@ export function createServer(cfg) {
234
393
  const pathname = parsedUrl.pathname;
235
394
  const route = routes.find((r) => r.method === req.method && r.path === pathname);
236
395
  if (!route) {
396
+ const isAnthropic = req.headers["anthropic-version"] !== undefined;
397
+ if (isAnthropic) {
398
+ return sendAnthropicError(res, 404, "not_found_error", "Not found");
399
+ }
237
400
  return sendJson(res, 404, { error: "Not found" });
238
401
  }
239
402
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function setupClaudeCodeConfig(force: boolean): Promise<void>;
2
+ //# sourceMappingURL=claude-code.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-code.d.ts","sourceRoot":"","sources":["../../src/setup/claude-code.ts"],"names":[],"mappings":"AAQA,wBAAsB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAiCzE"}