Skip to main content

bitrouter_api/router/
mod.rs

1pub mod admin;
2pub mod agents;
3pub mod agentskills;
4#[cfg(feature = "anthropic")]
5pub mod anthropic;
6pub(crate) mod context;
7#[cfg(feature = "google")]
8pub mod google;
9#[cfg(feature = "mcp")]
10pub mod mcp;
11pub mod models;
12#[cfg(feature = "openai")]
13pub mod openai;
14pub mod routes;
15pub mod tools;
16
17#[cfg(any(feature = "openai", feature = "anthropic", feature = "google"))]
18mod observe_ctx {
19    use std::sync::Arc;
20    use std::time::Instant;
21
22    use bitrouter_core::observe::{CallerContext, ObserveCallback};
23
24    /// Bundles observation-related context passed through streaming handlers.
25    ///
26    /// Created at the call site and consumed inside `handle_stream_with_observe`
27    /// to emit success/failure observation events after the stream completes.
28    pub(crate) struct StreamObserveContext {
29        pub observer: Arc<dyn ObserveCallback>,
30        pub route: String,
31        pub provider: String,
32        pub target_model: String,
33        pub caller: CallerContext,
34        pub start: Instant,
35    }
36}
37
38#[cfg(any(feature = "openai", feature = "anthropic", feature = "google"))]
39pub(crate) use observe_ctx::StreamObserveContext;