pub trait AgentProvider:
SessionStorage
+ Send
+ Sync {
Show 15 methods
// Required methods
fn get_my_account<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<GetMyAccountResponse, String>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn get_billing_info<'life0, 'life1, 'async_trait>(
&'life0 self,
account_username: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<BillingResponse, String>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn list_rulebooks<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<ListRuleBook>, String>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn get_rulebook_by_uri<'life0, 'life1, 'async_trait>(
&'life0 self,
uri: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<RuleBook, String>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn create_rulebook<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
uri: &'life1 str,
description: &'life2 str,
content: &'life3 str,
tags: Vec<String>,
visibility: Option<RuleBookVisibility>,
) -> Pin<Box<dyn Future<Output = Result<CreateRuleBookResponse, String>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait;
fn delete_rulebook<'life0, 'life1, 'async_trait>(
&'life0 self,
uri: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<(), String>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn chat_completion<'life0, 'async_trait>(
&'life0 self,
model: AgentModel,
messages: Vec<ChatMessage>,
tools: Option<Vec<Tool>>,
session_id: Option<Uuid>,
) -> Pin<Box<dyn Future<Output = Result<ChatCompletionResponse, String>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn chat_completion_stream<'life0, 'async_trait>(
&'life0 self,
model: AgentModel,
messages: Vec<ChatMessage>,
tools: Option<Vec<Tool>>,
headers: Option<HeaderMap>,
session_id: Option<Uuid>,
) -> Pin<Box<dyn Future<Output = Result<(Pin<Box<dyn Stream<Item = Result<ChatCompletionStreamResponse, ApiStreamError>> + Send>>, Option<String>), String>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn cancel_stream<'life0, 'async_trait>(
&'life0 self,
request_id: String,
) -> Pin<Box<dyn Future<Output = Result<(), String>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn search_docs<'life0, 'life1, 'async_trait>(
&'life0 self,
input: &'life1 SearchDocsRequest,
) -> Pin<Box<dyn Future<Output = Result<Vec<Content>, String>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn memorize_session<'life0, 'async_trait>(
&'life0 self,
checkpoint_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<(), String>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn search_memory<'life0, 'life1, 'async_trait>(
&'life0 self,
input: &'life1 SearchMemoryRequest,
) -> Pin<Box<dyn Future<Output = Result<Vec<Content>, String>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn slack_read_messages<'life0, 'life1, 'async_trait>(
&'life0 self,
input: &'life1 SlackReadMessagesRequest,
) -> Pin<Box<dyn Future<Output = Result<Vec<Content>, String>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn slack_read_replies<'life0, 'life1, 'async_trait>(
&'life0 self,
input: &'life1 SlackReadRepliesRequest,
) -> Pin<Box<dyn Future<Output = Result<Vec<Content>, String>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn slack_send_message<'life0, 'life1, 'async_trait>(
&'life0 self,
input: &'life1 SlackSendMessageRequest,
) -> Pin<Box<dyn Future<Output = Result<Vec<Content>, String>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
}Expand description
Unified agent provider trait.
Extends SessionStorage so that any AgentProvider can also manage
sessions and checkpoints. This avoids passing two separate trait
objects through the CLI call-chain.