Skip to main content

StreamingProvider

Trait StreamingProvider 

Source
pub trait StreamingProvider: Sized {
    type Metadata;

Show 13 methods // Required methods fn name(&self) -> &'static str; fn load_status(&self) -> String; fn request_status(&self, model: &str) -> String; fn from_env_or_dotenv(root: &Path) -> Result<Self>; fn load_metadata(&self) -> Result<Self::Metadata>; fn token_budget( &self, model: &str, metadata: Option<&Self::Metadata>, ) -> u32; fn serialized_request_body( &self, model: &str, messages: &[ProviderMessage], request: &StreamingRequest<'_>, ) -> Result<Vec<u8>>; fn send_streaming_request( &self, model: &str, messages: &[ProviderMessage], request: &StreamingRequest<'_>, ) -> Result<Response<Body>>; fn stream_format(&self, model: &str) -> Result<StreamFormat>; fn request_error_message(error: &ProviderError) -> String; fn is_retryable_request_error(error: &ProviderError) -> bool; // Provided methods fn metadata_loaded_event( &self, _metadata: &Self::Metadata, ) -> Option<AgentEvent> { ... } fn metadata_status( &self, _model: &str, _metadata: &Self::Metadata, ) -> Option<String> { ... }
}
Expand description

Minimal provider trait used by the agent loop.

This trait intentionally stops at provider concerns: auth, metadata, request dispatch, retry/error policy, and which stream format to parse.

The agent loop still owns cancellation, tool dispatch, and transcript events.

Required Associated Types§

Required Methods§

Source

fn name(&self) -> &'static str

Source

fn load_status(&self) -> String

Source

fn request_status(&self, model: &str) -> String

Source

fn from_env_or_dotenv(root: &Path) -> Result<Self>

Source

fn load_metadata(&self) -> Result<Self::Metadata>

Source

fn token_budget(&self, model: &str, metadata: Option<&Self::Metadata>) -> u32

Source

fn serialized_request_body( &self, model: &str, messages: &[ProviderMessage], request: &StreamingRequest<'_>, ) -> Result<Vec<u8>>

Serialize exactly the request body that the adapter sends.

Source

fn send_streaming_request( &self, model: &str, messages: &[ProviderMessage], request: &StreamingRequest<'_>, ) -> Result<Response<Body>>

Source

fn stream_format(&self, model: &str) -> Result<StreamFormat>

Source

fn request_error_message(error: &ProviderError) -> String

Source

fn is_retryable_request_error(error: &ProviderError) -> bool

Provided Methods§

Source

fn metadata_loaded_event( &self, _metadata: &Self::Metadata, ) -> Option<AgentEvent>

Source

fn metadata_status( &self, _model: &str, _metadata: &Self::Metadata, ) -> Option<String>

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§