Skip to content

feat: add HTTP/HTTPS/SOCKS5 proxy supportFeat/proxy support 添加HTTP/HTTPS/SOCKS5代理支持#162

Open
kiangz wants to merge 3 commits into
lessweb:mainfrom
kiangz:feat/proxy-support
Open

feat: add HTTP/HTTPS/SOCKS5 proxy supportFeat/proxy support 添加HTTP/HTTPS/SOCKS5代理支持#162
kiangz wants to merge 3 commits into
lessweb:mainfrom
kiangz:feat/proxy-support

Conversation

@kiangz
Copy link
Copy Markdown

@kiangz kiangz commented Jun 5, 2026

Summary

Add comprehensive proxy support for all network requests (OpenAI API, telemetry, web search).

Changes

  • New src/common/proxy.ts: Proxy resolution module with support for:

    • HTTPS_PROXY, HTTP_PROXY, SOCKS_PROXY, SOCKS5_PROXY environment variables
    • NO_PROXY bypass with wildcard (*), exact match, and subdomain wildcard (.example.com)
    • DEEPCODE_ prefixed environment variables
    • Configuration via ~/.deepcode/settings.json env field
    • Priority: user settings < project settings < system env vars
    • Dispatcher caching to avoid re-creating ProxyAgent on every request
  • src/common/openai-client.ts: Integrate ProxyAgent into OpenAI client

  • src/common/telemetry.ts: Route telemetry through proxyFetch

  • src/tools/web-search-handler.ts: Route web search through proxyFetch

  • docs/configuration.md / docs/configuration_en.md: Add proxy configuration docs (zh + en)

  • src/tests/proxy.test.ts: 28 unit tests covering all proxy scenarios

Compatibility

  • PowerShell: $env:HTTPS_PROXY = "http://..."
  • Bash: export HTTPS_PROXY=http://...
  • Settings: {"env": {"HTTPS_PROXY": "http://..."}}

摘要

为所有网络请求添加全面的代理支持(OpenAI API、遥测、网络搜索)。

更改

  • 新增src/common/proxy.ts:代理解析模块,支持:
    • HTTPS_PROXY HTTP_PROXY SOCKS_PROXYSOCKS5_PROXY环境变量
    • “NO_PROXY”绕过通配符(“*”)、精确匹配和子域通配符(“.example.com”)
    • “DEEPCODE_”前缀环境变量
    • 通过“~/.depcode/settings.json” “env”字段进行配置
    • 优先级:用户设置<项目设置<系统环境变量
    • 调度程序缓存,以避免在每次请求时重新创建“ProxyAgent”
  • src/common/openai-client.ts:将ProxyAgent 集成到openai客户端中
  • src/common/ttelemetry.ts:通过proxyFetch路由遥测
  • src/tools/web-search-handler.ts:通过proxyFetch路由web搜索
  • docs/configuration.md/docs/configuration _en.md:添加代理配置文档(中文+英文)
  • src/tests/proxy.test.ts:28个单元测试,涵盖所有代理场景

兼容性

  • PowerShell: $env:HTTPS_PROXY = "http://..."
  • Bash: export HTTPS_PROXY=http://...
  • Settings: {"env": {"HTTPS_PROXY": "http://..."}}

kiangz added 3 commits June 5, 2026 19:02
- Add src/common/proxy.ts: resolve proxy from env vars (HTTP_PROXY,
  HTTPS_PROXY, SOCKS_PROXY, NO_PROXY) and settings.json env field
- Integrate undici ProxyAgent into OpenAI client (openai-client.ts)
- Route telemetry and web-search requests through proxyFetch
- Support DEEPCODE_HTTPS_PROXY prefixed env vars
- NO_PROXY matching: exact host, subdomain wildcard, and * bypass
- Priority: user settings < project settings < system env vars
- Update configuration docs (zh + en) with proxy section
- 28 test cases covering resolveProxyUrl, getProxyDispatcher, proxyFetch
- System env: HTTPS_PROXY, HTTP_PROXY, SOCKS_PROXY, SOCKS5_PROXY
- DEEPCODE_ prefixed vars, lowercase fallback
- settings.json: user-level and project-level env config
- Priority: user < project < system
- NO_PROXY: exact match, wildcard *, subdomain (.example.com)
- Dispatcher caching verification
- proxyFetch fallback to global fetch and dispatcher injection
@kiangz kiangz force-pushed the feat/proxy-support branch from 9a1bc9c to c170d78 Compare June 5, 2026 11:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant