claude-cac 1.1.0 → 1.1.2

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 (3) hide show
  1. package/README.md +1 -0
  2. package/cac +37 -29
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -8,6 +8,7 @@
8
8
 
9
9
  **[中文](#中文) | [English](#english) | [:book: Docs](https://cac.nextmind.space/docs)**
10
10
 
11
+ [![npm version](https://img.shields.io/npm/v/claude-cac.svg)](https://www.npmjs.com/package/claude-cac)
11
12
  [![GitHub stars](https://img.shields.io/github/stars/nmhjklnm/cac?style=social)](https://github.com/nmhjklnm/cac)
12
13
  [![Docs](https://img.shields.io/badge/Docs-cac.nextmind.space-D97706.svg)](https://cac.nextmind.space/docs)
13
14
  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
package/cac CHANGED
@@ -10,7 +10,7 @@ VERSIONS_DIR="$CAC_DIR/versions"
10
10
  # ━━━ utils.sh ━━━
11
11
  # ── utils: 颜色、读写、UUID、proxy 解析 ───────────────────────
12
12
 
13
- CAC_VERSION="1.0.0"
13
+ CAC_VERSION="1.1.2"
14
14
 
15
15
  _read() { [[ -f "$1" ]] && tr -d '[:space:]' < "$1" || echo "${2:-}"; }
16
16
  _die() { printf '%b\n' "$(_red "error:") $*" >&2; exit 1; }
@@ -1750,22 +1750,45 @@ _check_proxy_conflict() {
1750
1750
 
1751
1751
  # ── 输出结果 ──
1752
1752
  if [[ ${#conflicts[@]} -eq 0 ]]; then
1753
- echo "$(_green "✓") 未检测到本地代理软件冲突"
1753
+ echo "$(_green "✓") 未检测到代理冲突"
1754
1754
  return 0
1755
1755
  fi
1756
1756
 
1757
- echo "$(_yellow "⚠ 检测到可能的代理冲突"):"
1757
+ echo "$(_yellow "检测到本地代理软件"):"
1758
1758
  for msg in "${conflicts[@]}"; do
1759
- echo " $(_yellow "•") $msg"
1759
+ echo " $(_dim "•") $msg"
1760
1760
  done
1761
- echo
1762
- echo " $(_bold "解决方法"):在本地代理软件中为 cac 代理服务器 IP 添加 DIRECT 规则"
1763
- echo " 代理服务器:$(_bold "$proxy_host")"
1764
- echo
1765
- if [[ "$os" == "macos" ]]; then
1766
- echo " Clash 示例(添加到规则列表最前面):"
1767
- echo " - IP-CIDR,${proxy_host}/32,DIRECT"
1761
+
1762
+ # 验证 relay 能否实际绕过
1763
+ if _relay_is_running 2>/dev/null; then
1764
+ local rport; rport=$(_read "$CAC_DIR/relay.port" "")
1765
+ local relay_ip
1766
+ relay_ip=$(curl -s --proxy "http://127.0.0.1:$rport" --connect-timeout 8 https://api.ipify.org 2>/dev/null || true)
1767
+ if [[ -n "$relay_ip" ]]; then
1768
+ echo " $(_green "→") relay 已启动并连通 (出口: $(_cyan "$relay_ip")),冲突已自动绕过"
1769
+ return 0
1770
+ fi
1768
1771
  fi
1772
+
1773
+ # relay 未运行,尝试启动测试
1774
+ if [[ -f "$CAC_DIR/relay.js" ]]; then
1775
+ local _test_env; _test_env=$(_current_env)
1776
+ if _relay_start "$_test_env" 2>/dev/null; then
1777
+ local rport; rport=$(_read "$CAC_DIR/relay.port" "")
1778
+ local relay_ip
1779
+ relay_ip=$(curl -s --proxy "http://127.0.0.1:$rport" --connect-timeout 8 https://api.ipify.org 2>/dev/null || true)
1780
+ _relay_stop 2>/dev/null || true
1781
+ if [[ -n "$relay_ip" ]]; then
1782
+ echo " $(_green "→") relay 测试连通 (出口: $(_cyan "$relay_ip")),claude 启动时会自动绕过"
1783
+ return 0
1784
+ fi
1785
+ fi
1786
+ fi
1787
+
1788
+ # relay 也不行,给手动方案
1789
+ echo " $(_yellow "→") relay 无法绕过此冲突,需手动处理:"
1790
+ echo " 在本地代理软件中为代理服务器 IP 添加 DIRECT 规则"
1791
+ echo " 代理服务器:$(_bold "$proxy_host")"
1769
1792
  return 1
1770
1793
  }
1771
1794
 
@@ -1831,26 +1854,11 @@ cmd_check() {
1831
1854
  if _relay_is_running; then
1832
1855
  local rpid; rpid=$(_read "$CAC_DIR/relay.pid")
1833
1856
  local rport; rport=$(_read "$CAC_DIR/relay.port" "未知")
1834
- printf " Relay 进程 ... %s (PID=%s, 端口=%s)\n" "$(_green "运行中")" "$rpid" "$rport"
1857
+ echo " Relay ... $(_green "运行中") (PID=$rpid, 端口=$rport)"
1835
1858
  elif [[ -n "$proxy" ]]; then
1836
- # 有代理时临时启动 relay 做连通性测试
1837
- printf " Relay 测试 ... "
1838
- if _relay_start "$current" 2>/dev/null; then
1839
- local rport; rport=$(_read "$CAC_DIR/relay.port" "")
1840
- local relay_ip
1841
- relay_ip=$(curl -s --proxy "http://127.0.0.1:$rport" --connect-timeout 8 https://api.ipify.org 2>/dev/null || true)
1842
- if [[ -n "$relay_ip" ]]; then
1843
- printf "%s (端口=%s, 出口=%s)\n" "$(_green "✓ 连通")" "$rport" "$(_cyan "$relay_ip")"
1844
- else
1845
- printf "%s (端口=%s, 代理不通)\n" "$(_yellow "⚠ 启动成功但无法连通")" "$rport"
1846
- fi
1847
- _relay_stop 2>/dev/null || true
1848
- else
1849
- printf "%s\n" "$(_red "✗ 启动失败")"
1850
- fi
1851
- echo " $(_dim "(relay 将在 claude 启动时自动启用)")"
1859
+ echo " Relay ... $(_dim "未运行(claude 启动时按需自动启用)")"
1852
1860
  else
1853
- echo " Relay ... $(_dim "(无代理,不需要 relay)")"
1861
+ echo " Relay ... $(_dim "(无代理,不需要)")"
1854
1862
  fi
1855
1863
 
1856
1864
  echo
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-cac",
3
- "version": "1.1.0",
3
+ "version": "1.1.2",
4
4
  "description": "Isolate, protect, and manage your Claude Code — versions, environments, identity, and proxy.",
5
5
  "bin": {
6
6
  "cac": "cac"