1pub mod batch;
11pub mod cache;
12pub mod client;
13pub mod embeddings;
14pub mod pipeline;
15pub mod plugins;
16pub mod protocol;
17pub mod resilience;
18pub mod telemetry;
19pub mod tokens;
20pub mod transport;
21pub mod types;
22pub mod utils;
23
24#[cfg(feature = "routing_mvp")]
25pub mod routing;
26
27#[cfg(feature = "interceptors")]
28pub mod interceptors;
29
30pub use client::CallStats;
32pub use client::CancelHandle;
33pub use client::ChatBatchRequest;
34pub use client::EndpointExt;
35pub use client::{AiClient, AiClientBuilder};
36pub use telemetry::{FeedbackEvent, FeedbackSink};
37pub use types::{
38 events::StreamingEvent,
39 message::{Message, MessageRole},
40 tool::ToolCall,
41};
42
43#[cfg(feature = "routing_mvp")]
45pub use routing::{
46 CustomModelManager, LoadBalancingStrategy, ModelArray, ModelCapabilities, ModelEndpoint,
47 ModelInfo, ModelSelectionStrategy, PerformanceMetrics, PricingInfo, QualityTier, SpeedTier,
48};
49
50use futures::Stream;
51use std::pin::Pin;
52
53pub type Result<T> = std::result::Result<T, Error>;
55
56pub type PipeResult<T> = std::result::Result<T, Error>;
58
59pub type BoxStream<'a, T> = Pin<Box<dyn Stream<Item = PipeResult<T>> + Send + 'a>>;
61
62pub mod error;
64pub use error::{Error, ErrorContext};