| 146 | // :4000 claude-ai frontend, :3000 Console frontend. Env vars let |
| 147 | // scripts/claude-localhost override if your layout differs. |
| 148 | function getLocalOauthConfig(): OauthConfig { |
| 149 | const api = |
| 150 | process.env.CLAUDE_LOCAL_OAUTH_API_BASE?.replace(/\/$/, '') ?? |
| 151 | 'http://localhost:8000' |
| 152 | const apps = |
| 153 | process.env.CLAUDE_LOCAL_OAUTH_APPS_BASE?.replace(/\/$/, '') ?? |
| 154 | 'http://localhost:4000' |
| 155 | const consoleBase = |
| 156 | process.env.CLAUDE_LOCAL_OAUTH_CONSOLE_BASE?.replace(/\/$/, '') ?? |
| 157 | 'http://localhost:3000' |
| 158 | return { |
| 159 | BASE_API_URL: api, |
| 160 | CONSOLE_AUTHORIZE_URL: `${consoleBase}/oauth/authorize`, |
| 161 | CLAUDE_AI_AUTHORIZE_URL: `${apps}/oauth/authorize`, |
| 162 | CLAUDE_AI_ORIGIN: apps, |
| 163 | TOKEN_URL: `${api}/v1/oauth/token`, |
| 164 | API_KEY_URL: `${api}/api/oauth/claude_cli/create_api_key`, |
| 165 | ROLES_URL: `${api}/api/oauth/claude_cli/roles`, |
| 166 | CONSOLE_SUCCESS_URL: `${consoleBase}/buy_credits?returnUrl=/oauth/code/success%3Fapp%3Dclaude-code`, |
| 167 | CLAUDEAI_SUCCESS_URL: `${consoleBase}/oauth/code/success?app=claude-code`, |
| 168 | MANUAL_REDIRECT_URL: `${consoleBase}/oauth/code/callback`, |
| 169 | CLIENT_ID: '22422756-60c9-4084-8eb7-27705fd5cf9a', |
| 170 | OAUTH_FILE_SUFFIX: '-local-oauth', |
| 171 | MCP_PROXY_URL: 'http://localhost:8205', |
| 172 | MCP_PROXY_PATH: '/v1/toolbox/shttp/mcp/{server_id}', |
| 173 | } |
| 174 | } |
| 175 | |
| 176 | // Allowed base URLs for CLAUDE_CODE_CUSTOM_OAUTH_URL override. |
| 177 | // Only FedStart/PubSec deployments are permitted to prevent OAuth tokens |