diff --git a/src/main/services/agents/services/claudecode/index.ts b/src/main/services/agents/services/claudecode/index.ts index df4444b839..8176ec5c9d 100644 --- a/src/main/services/agents/services/claudecode/index.ts +++ b/src/main/services/agents/services/claudecode/index.ts @@ -6,6 +6,7 @@ import { McpHttpServerConfig, Options, query, SDKMessage } from '@anthropic-ai/c import { loggerService } from '@logger' import { config as apiConfigService } from '@main/apiServer/config' import { validateModelId } from '@main/apiServer/utils' +import anthropicService from "@main/services/AnthropicService"; import { GetAgentSessionResponse } from '../..' import { AgentServiceInterface, AgentStream, AgentStreamEvent } from '../../interfaces/AgentStreamInterface' @@ -67,8 +68,19 @@ class ClaudeCodeService implements AgentServiceInterface { const apiConfig = await apiConfigService.get() // process.env.ANTHROPIC_AUTH_TOKEN = apiConfig.apiKey // process.env.ANTHROPIC_BASE_URL = `http://${apiConfig.host}:${apiConfig.port}` - process.env.ANTHROPIC_AUTH_TOKEN = modelInfo.provider.apiKey - process.env.ANTHROPIC_BASE_URL = modelInfo.provider.apiHost + const env = { + ...process.env, + ELECTRON_RUN_AS_NODE: '1', + } + + if (modelInfo.provider.authType === 'oauth') { + env['ANTHROPIC_AUTH_TOKEN'] = await anthropicService.getValidAccessToken() + env['ANTHROPIC_BASE_URL'] = 'https://api.anthropic.com' + } else { + env['ANTHROPIC_AUTH_TOKEN'] = modelInfo.provider.apiKey + env['ANTHROPIC_API_KEY'] = modelInfo.provider.apiKey + env['ANTHROPIC_BASE_URL'] = modelInfo.provider.apiHost + } // Build SDK options from parameters const options: Options = {