Skip to main content

lash_core/provider/
mod.rs

1//! Provider components for pluggable LLM backends.
2//!
3//! A provider is split into narrow capabilities: configured state,
4//! request transport, failure classification, and model policy.
5//! [`ProviderHandle`] owns those components and is the executable handle
6//! installed by the host for a running session.
7//!
8//! [`ProviderSpec`] is only a host/config-file data shape. Runtime
9//! persistence records provider identity separately and never rebuilds a
10//! [`ProviderHandle`] from disk.
11
12mod factory;
13mod handle;
14mod model_policy;
15mod options;
16mod rate_limit;
17mod resolver;
18mod spec;
19mod support;
20#[cfg(test)]
21mod tests;
22mod traits;
23
24pub use factory::ProviderFactory;
25pub use handle::{ProviderComponents, ProviderHandle, UnconfiguredProvider};
26pub use model_policy::StaticModelPolicy;
27pub use options::{
28    CacheRetention, DEFAULT_CHUNK_TIMEOUT_MS, DEFAULT_REQUEST_TIMEOUT_MS, LlmTimeouts,
29    ProviderOptions, ProviderRateLimitPolicy, ProviderReliability, ProviderRetryPolicy,
30    RequestTimeout, ResolvedGenerationPolicy, resolve_generation_policy,
31};
32pub use rate_limit::{ProviderRateLimitPermit, ProviderRateLimiter};
33pub use resolver::{
34    EmptyProviderResolver, MapProviderResolver, ProviderBinding, ProviderResolutionError,
35    RuntimeProviderResolver, SingleProviderResolver,
36};
37pub use spec::ProviderSpec;
38pub use traits::{
39    DefaultProviderFailureClassifier, Provider, ProviderFailureClassifier, ProviderModelPolicy,
40    is_context_overflow_text,
41};