pub mod audit;
pub mod budget;
pub mod cache;
pub mod client;
pub mod config;
pub mod context;
pub mod cost;
#[cfg(feature = "dlp")]
pub mod dlp;
pub mod error;
pub mod events;
#[cfg(feature = "hwaccel")]
pub mod hardware;
pub mod health;
pub mod inference;
pub mod metrics;
pub mod middleware;
pub mod provider;
pub mod queue;
pub mod router;
pub mod server;
#[cfg(feature = "otel")]
pub mod telemetry;
pub mod tools;
pub use budget::{TokenBudget, TokenPool};
pub use cache::ResponseCache;
pub use client::HooshClient;
pub use error::HooshError;
pub use inference::{InferenceRequest, InferenceResponse, ModelInfo};
pub use provider::{LlmProvider, ProviderRegistry, ProviderType};
pub use router::Router;
pub use tools::{ToolCall, ToolChoice, ToolDefinition, ToolResult};
#[cfg(test)]
#[doc(hidden)]
pub fn install_crypto_provider() {
use std::sync::Once;
static INIT: Once = Once::new();
INIT.call_once(|| {
let _ = rustls::crypto::ring::default_provider().install_default();
});
}
#[cfg(test)]
mod tests;