pub mod admin;
pub mod agents;
pub mod agentskills;
#[cfg(feature = "anthropic")]
pub mod anthropic;
pub(crate) mod context;
#[cfg(feature = "google")]
pub mod google;
#[cfg(feature = "mcp")]
pub mod mcp;
pub mod models;
#[cfg(feature = "openai")]
pub mod openai;
pub mod routes;
pub mod tools;
#[cfg(any(feature = "openai", feature = "anthropic", feature = "google"))]
mod observe_ctx {
use std::sync::Arc;
use std::time::Instant;
use bitrouter_core::observe::{CallerContext, ObserveCallback};
pub(crate) struct StreamObserveContext {
pub observer: Arc<dyn ObserveCallback>,
pub route: String,
pub provider: String,
pub target_model: String,
pub caller: CallerContext,
pub start: Instant,
}
}
#[cfg(any(feature = "openai", feature = "anthropic", feature = "google"))]
pub(crate) use observe_ctx::StreamObserveContext;