//! # Porta
//!
//! *The gate to LLM providers.*
//!
//! Porta provides OAuth subscription handling for LLM providers like Anthropic's Claude.
//! Use your Claude Pro/Max subscription instead of API keys.
//!
//! ## Quick Start
//!
//! ```ignore
//! use porta::anthropic::{AnthropicOAuth, AnthropicClient, AuthMode};
//!
//! // 1. Get authorization URL
//! let oauth = AnthropicOAuth::new();
//! let (url, verifier) = oauth.authorize_url(AuthMode::Max)?;
//!
//! // 2. User visits URL, authorizes, gets code
//! let tokens = oauth.exchange(&code, &verifier).await?;
//!
//! // 3. Create client and send messages
//! let client = AnthropicClient::new(tokens);
//! let response = client.messages(&body).await?;
//! ```

pub mod error;
pub mod pkce;
pub mod anthropic;

pub use error::{Error, Result};
