49 lines
1.7 KiB
TypeScript
49 lines
1.7 KiB
TypeScript
/**
|
|
* Shared bridge auth/URL resolution. Consolidates the ant-only
|
|
* CLAUDE_BRIDGE_* dev overrides that were previously copy-pasted across
|
|
* a dozen files — inboundAttachments, BriefTool/upload, bridgeMain,
|
|
* initReplBridge, remoteBridgeCore, daemon workers, /rename,
|
|
* /remote-control.
|
|
*
|
|
* Two layers: *Override() returns the ant-only env var (or undefined);
|
|
* the non-Override versions fall through to the real OAuth store/config.
|
|
* Callers that compose with a different auth source (e.g. daemon workers
|
|
* using IPC auth) use the Override getters directly.
|
|
*/
|
|
|
|
import { getOauthConfig } from '../constants/oauth.js'
|
|
import { getClaudeAIOAuthTokens } from '../utils/auth.js'
|
|
|
|
/** Ant-only dev override: CLAUDE_BRIDGE_OAUTH_TOKEN, else undefined. */
|
|
export function getBridgeTokenOverride(): string | undefined {
|
|
return (
|
|
(process.env.USER_TYPE === 'ant' &&
|
|
process.env.CLAUDE_BRIDGE_OAUTH_TOKEN) ||
|
|
undefined
|
|
)
|
|
}
|
|
|
|
/** Ant-only dev override: CLAUDE_BRIDGE_BASE_URL, else undefined. */
|
|
export function getBridgeBaseUrlOverride(): string | undefined {
|
|
return (
|
|
(process.env.USER_TYPE === 'ant' && process.env.CLAUDE_BRIDGE_BASE_URL) ||
|
|
undefined
|
|
)
|
|
}
|
|
|
|
/**
|
|
* Access token for bridge API calls: dev override first, then the OAuth
|
|
* keychain. Undefined means "not logged in".
|
|
*/
|
|
export function getBridgeAccessToken(): string | undefined {
|
|
return getBridgeTokenOverride() ?? getClaudeAIOAuthTokens()?.accessToken
|
|
}
|
|
|
|
/**
|
|
* Base URL for bridge API calls: dev override first, then the production
|
|
* OAuth config. Always returns a URL.
|
|
*/
|
|
export function getBridgeBaseUrl(): string {
|
|
return getBridgeBaseUrlOverride() ?? getOauthConfig().BASE_API_URL
|
|
}
|