mod event_store;
mod message_store;
mod state_store;
mod vector_store;
pub use event_store::{EventStore, ExecutionEventData, StoredEvent};
pub use message_store::{
CostInfo, ExecutionStats, FinishReason, InMemoryMessageStore, Message, MessageMetadata,
MessagePart, MessageRole, MessageStore, Thread, TokenUsage,
};
pub use state_store::{ExecutionSnapshot, StateStore, StateStoreJsonExt};
pub use vector_store::{
CollectionInfo, DistanceMetric, VectorDocument, VectorFilter, VectorSearchResult, VectorStore,
};
use async_trait::async_trait;
#[async_trait]
pub trait StorageBackend: Send + Sync {
fn name(&self) -> &str;
fn requires_network(&self) -> bool;
fn supports_air_gapped(&self) -> bool {
!self.requires_network()
}
async fn health_check(&self) -> anyhow::Result<()>;
async fn shutdown(&self) -> anyhow::Result<()> {
Ok(())
}
}
#[allow(clippy::mixed_attributes_style)]
pub mod guarantees {
}