@simonyea/holysheep-cli 1.7.72 → 1.7.74

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@simonyea/holysheep-cli",
3
- "version": "1.7.72",
3
+ "version": "1.7.74",
4
4
  "description": "Claude Code/Cursor/Cline API relay for China — ¥1=$1, WeChat/Alipay payment, no credit card, no VPN. One command setup for all AI coding tools.",
5
5
  "keywords": [
6
6
  "openai-china",
@@ -60,10 +60,11 @@ async function runClaude(args = []) {
60
60
 
61
61
  ensureClaudeProxyConfig(apiKey)
62
62
 
63
- // 修复 settings.json 中残留的旧 proxy URL(之前版本的 applyRuntimeSettingsOverride 遗留)
63
+ // 清理 settings.json 中的 ANTHROPIC_BASE_URL(旧版遗留)
64
+ // BASE_URL 只通过 env 变量注入,settings.json 里不能有,否则 Claude Code 双路径发请求
64
65
  const settings = claudeCodeTool.readSettings()
65
- if (settings.env?.ANTHROPIC_BASE_URL?.startsWith('http://127.0.0.1:')) {
66
- settings.env.ANTHROPIC_BASE_URL = BASE_URL_ANTHROPIC
66
+ if (settings.env?.ANTHROPIC_BASE_URL) {
67
+ delete settings.env.ANTHROPIC_BASE_URL
67
68
  claudeCodeTool.writeSettings(settings)
68
69
  }
69
70
 
@@ -30,8 +30,16 @@ function shouldProxy(host, port) {
30
30
  return !!(port && host && !SKIP.has(host))
31
31
  }
32
32
 
33
+ // api.anthropic.com → api.holysheep.ai,让 CONNECT 隧道也走 CRS 多账号调度
34
+ // 否则 CONNECT 隧道直达 Anthropic,绕过 CRS,单 token 直连容易触发 429
35
+ function rewriteHost(host) {
36
+ if (host === 'api.anthropic.com') return 'api.holysheep.ai'
37
+ return host
38
+ }
39
+
33
40
  function setupTunnel(sock, host, port, origEmit) {
34
- sock.write(`CONNECT ${host}:${port} HTTP/1.1\r\nHost: ${host}:${port}\r\n\r\n`)
41
+ const targetHost = rewriteHost(host)
42
+ sock.write(`CONNECT ${targetHost}:${port} HTTP/1.1\r\nHost: ${targetHost}:${port}\r\n\r\n`)
35
43
  let buf = Buffer.alloc(0)
36
44
  sock.on('data', function onData(chunk) {
37
45
  buf = Buffer.concat([buf, chunk])