pub mod filesystem;
pub mod sandbox;
pub mod state;
pub mod storage;
pub use self::filesystem::FilesystemBackend;
pub use self::sandbox::SandboxBackend;
pub use self::state::StateBackend;
pub use self::storage::{
BackendConfig, BackendFactory, BackendStats, CachedBackend, FilesystemStorageBackend,
InMemoryBackend, NamespacedBackend, StorageBackend,
};
use async_trait::async_trait;
use serde_json::Value;
use crate::agent::DeepAgentError;
pub type Result<T> = std::result::Result<T, DeepAgentError>;
#[async_trait]
pub trait Backend: Send + Sync {
async fn save_state(&self, session_id: &str, state: &Value) -> Result<()>;
async fn load_state(&self, session_id: &str) -> Result<Option<Value>>;
async fn list_sessions(&self) -> Result<Vec<String>>;
}