//! Anthropic OAuth authentication
//!
//! Handles Claude Pro/Max subscription authentication via OAuth PKCE flow.

mod oauth;
mod client;
mod transform;

pub use oauth::{AuthMode, OAuthTokens, AnthropicOAuth};
pub use client::AnthropicClient;
pub use transform::RequestTransformer;

/// Claude Code client ID (used for OAuth)
pub const CLIENT_ID: &str = "9d1c250a-e61b-44d9-88ed-5944d1962f5e";

/// OAuth callback URL
pub const REDIRECT_URI: &str = "https://console.anthropic.com/oauth/code/callback";

/// OAuth scopes
pub const SCOPES: &str = "org:create_api_key user:profile user:inference";

/// User-Agent to mimic Claude CLI
pub const USER_AGENT: &str = "claude-cli/2.1.2 (external, cli)";

/// Tool name prefix for bypassing validation
pub const TOOL_PREFIX: &str = "mcp_";

/// Required beta headers for OAuth
pub const REQUIRED_BETAS: &[&str] = &[
    "oauth-2025-04-20",
    "interleaved-thinking-2025-05-14",
];
