export const ENV_PREFIXES = ['CLAUDECODE_', 'CLAUDE_CODE_']; export const ENV_EXACT_MATCHES = new Set([ 'CLAUDECODE', 'CLAUDE_CODE_SESSION', 'CLAUDE_CODE_ENTRYPOINT', 'MCP_SESSION_ID', ]); export const ENV_PROXY_VARS = new Set([ 'HTTP_PROXY', 'HTTPS_PROXY', 'ALL_PROXY', 'NO_PROXY', 'http_proxy', 'https_proxy', 'all_proxy', 'no_proxy', 'npm_config_proxy', 'npm_config_https_proxy', ]); export const ENV_PRESERVE = new Set([ 'CLAUDE_CODE_OAUTH_TOKEN', 'CLAUDE_CODE_GIT_BASH_PATH', 'CLAUDE_CODE_USE_BEDROCK', 'CLAUDE_CODE_USE_VERTEX', 'ANTHROPIC_BEDROCK_BASE_URL', 'AWS_REGION', 'AWS_PROFILE', 'AWS_ACCESS_KEY_ID', 'AWS_SECRET_ACCESS_KEY', 'AWS_SESSION_TOKEN', 'ANTHROPIC_VERTEX_PROJECT_ID', 'CLOUD_ML_REGION', 'GOOGLE_APPLICATION_CREDENTIALS', ]); export function sanitizeEnv(env: NodeJS.ProcessEnv = process.env): NodeJS.ProcessEnv { const sanitized: NodeJS.ProcessEnv = {}; for (const [key, value] of Object.entries(env)) { if (value === undefined) continue; if (ENV_PRESERVE.has(key)) { sanitized[key] = value; continue; } if (ENV_EXACT_MATCHES.has(key)) continue; if (ENV_PROXY_VARS.has(key)) continue; if (ENV_PREFIXES.some(prefix => key.startsWith(prefix))) continue; sanitized[key] = value; } return sanitized; }