mod budget;
mod cost;
mod guardrails;
mod manager;
mod metrics;
mod providers;
mod rate_limit;
mod streaming;
mod tiktoken;
mod tokens;
pub use budget::TokenBudgetTracker;
pub use cost::CostCalculator;
pub use guardrails::{
extract_inference_content, GuardrailProcessor, PiiCheckResult, PromptInjectionResult,
};
pub use manager::{InferenceCheckResult, InferenceRateLimitManager, InferenceRouteStats};
pub use metrics::InferenceMetrics;
pub use providers::{create_provider, InferenceProviderAdapter};
pub use rate_limit::{TokenRateLimitResult, TokenRateLimiter};
pub use streaming::{
is_sse_response, StreamingTokenCounter, StreamingTokenResult, TokenCountSource,
};
pub use tiktoken::{tiktoken_manager, TiktokenEncoding, TiktokenManager};
pub use tokens::{TokenCounter, TokenEstimate, TokenSource};
use zentinel_config::{InferenceConfig, InferenceProvider};
pub fn create_inference_provider(config: &InferenceConfig) -> Box<dyn InferenceProviderAdapter> {
create_provider(&config.provider)
}