From 07be61cf91e8bc61ff13861bdc135335773c7e3f Mon Sep 17 00:00:00 2001 From: WuTao Date: Thu, 9 Apr 2026 07:17:06 +0800 Subject: [PATCH] feat: support ANTHROPIC_BASE_URL in EnvManager (#1627) * feat: add custom OpenRouter base URL support Allow users to configure a custom base URL for OpenRouter API calls through settings UI and environment management. Generated with AI Co-Authored-By: AI Partner * refactor: remove OpenRouter base URL customization, keep Claude URL changes Only retain ANTHROPIC_BASE_URL and ANTHROPIC_AUTH_TOKEN support in EnvManager for custom Claude API endpoint configuration. Generated with AI Co-Authored-By: AI Partner * chore: revert build artifacts to match main Generated with AI Co-Authored-By: AI Partner * fix: remove ANTHROPIC_AUTH_TOKEN, add ANTHROPIC_BASE_URL persistence - Remove unnecessary ANTHROPIC_AUTH_TOKEN (inherited from parent process) - Add ANTHROPIC_BASE_URL to saveClaudeMemEnv() to fix config persistence - Keep only ANTHROPIC_BASE_URL support for custom API endpoint Generated with AI Co-Authored-By: AI Partner --- src/shared/EnvManager.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/shared/EnvManager.ts b/src/shared/EnvManager.ts index ed9159a6..eca3120e 100644 --- a/src/shared/EnvManager.ts +++ b/src/shared/EnvManager.ts @@ -40,6 +40,7 @@ export const MANAGED_CREDENTIAL_KEYS = [ export interface ClaudeMemEnv { // Credentials (optional - empty means use CLI billing for Claude) ANTHROPIC_API_KEY?: string; + ANTHROPIC_BASE_URL?: string; GEMINI_API_KEY?: string; OPENROUTER_API_KEY?: string; } @@ -115,6 +116,7 @@ export function loadClaudeMemEnv(): ClaudeMemEnv { // Only return managed credential keys const result: ClaudeMemEnv = {}; if (parsed.ANTHROPIC_API_KEY) result.ANTHROPIC_API_KEY = parsed.ANTHROPIC_API_KEY; + if (parsed.ANTHROPIC_BASE_URL) result.ANTHROPIC_BASE_URL = parsed.ANTHROPIC_BASE_URL; if (parsed.GEMINI_API_KEY) result.GEMINI_API_KEY = parsed.GEMINI_API_KEY; if (parsed.OPENROUTER_API_KEY) result.OPENROUTER_API_KEY = parsed.OPENROUTER_API_KEY; @@ -151,6 +153,13 @@ export function saveClaudeMemEnv(env: ClaudeMemEnv): void { delete updated.ANTHROPIC_API_KEY; } } + if (env.ANTHROPIC_BASE_URL !== undefined) { + if (env.ANTHROPIC_BASE_URL) { + updated.ANTHROPIC_BASE_URL = env.ANTHROPIC_BASE_URL; + } else { + delete updated.ANTHROPIC_BASE_URL; + } + } if (env.GEMINI_API_KEY !== undefined) { if (env.GEMINI_API_KEY) { updated.GEMINI_API_KEY = env.GEMINI_API_KEY; @@ -210,6 +219,12 @@ export function buildIsolatedEnv(includeCredentials: boolean = true): Record