pub trait Memory: Send + Sync {
Show 28 methods
// Required methods
fn repo_map(&self, root: &Path) -> RepoMap;
fn identity(&self, agent: &str) -> Option<Identity>;
fn save_identity(&self, agent: &str, identity: &Identity) -> Result<()>;
fn task(&self, run: &RunId) -> Option<TaskMem>;
fn save_task(&self, task: &TaskMem) -> Result<()>;
fn shared_signals(&self) -> Vec<SharedSignal>;
fn shared_docs(&self) -> Vec<WorkingDoc>;
fn post_signal(&self, signal: SharedSignal) -> Result<()>;
fn upsert_doc(&self, doc: WorkingDoc) -> Result<()>;
fn remember(&self, fact: Fact) -> Result<()>;
fn recall(&self, q: &str, k: usize) -> Vec<Fact>;
fn all_facts(&self) -> Vec<Fact>;
fn forget(&self, id: &str) -> Result<()>;
fn cache_discovered_models(
&self,
provider_id: &str,
models: &[String],
) -> Result<()>;
fn get_discovered_models(&self, provider_id: &str) -> Vec<String>;
// Provided methods
fn memory_doc(&self, _kind: MemoryDocKind) -> Option<MemoryDoc> { ... }
fn upsert_memory_doc(
&self,
_kind: MemoryDocKind,
_content: &str,
) -> Result<()> { ... }
fn remove_memory_doc(&self, _kind: MemoryDocKind) -> Result<()> { ... }
fn memory_stats(&self) -> MemoryStats { ... }
fn consolidate_memory(&self) -> Result<()> { ... }
fn upsert_graph_node(&self, _node: GraphNode) -> Result<()> { ... }
fn upsert_graph_edge(&self, _edge: GraphEdge) -> Result<()> { ... }
fn graph_node(&self, _id: &str) -> Option<GraphNode> { ... }
fn graph_neighbors(
&self,
_id: &str,
_direction: GraphDirection,
_limit: usize,
) -> Vec<(GraphEdge, GraphNode)> { ... }
fn search_graph(&self, _query: &str, _limit: usize) -> Vec<GraphNode> { ... }
fn graph_export(&self) -> KnowledgeGraph { ... }
fn delete_graph_node(&self, _id: &str) -> Result<()> { ... }
fn delete_graph_edge(&self, _id: &str) -> Result<()> { ... }
}Required Methods§
fn repo_map(&self, root: &Path) -> RepoMap
fn identity(&self, agent: &str) -> Option<Identity>
fn save_identity(&self, agent: &str, identity: &Identity) -> Result<()>
fn task(&self, run: &RunId) -> Option<TaskMem>
fn save_task(&self, task: &TaskMem) -> Result<()>
fn post_signal(&self, signal: SharedSignal) -> Result<()>
fn upsert_doc(&self, doc: WorkingDoc) -> Result<()>
fn remember(&self, fact: Fact) -> Result<()>
fn recall(&self, q: &str, k: usize) -> Vec<Fact>
fn all_facts(&self) -> Vec<Fact>
fn forget(&self, id: &str) -> Result<()>
fn cache_discovered_models( &self, provider_id: &str, models: &[String], ) -> Result<()>
fn get_discovered_models(&self, provider_id: &str) -> Vec<String>
Provided Methods§
fn memory_doc(&self, _kind: MemoryDocKind) -> Option<MemoryDoc>
fn upsert_memory_doc(&self, _kind: MemoryDocKind, _content: &str) -> Result<()>
fn remove_memory_doc(&self, _kind: MemoryDocKind) -> Result<()>
fn memory_stats(&self) -> MemoryStats
fn consolidate_memory(&self) -> Result<()>
fn upsert_graph_node(&self, _node: GraphNode) -> Result<()>
fn upsert_graph_edge(&self, _edge: GraphEdge) -> Result<()>
fn graph_node(&self, _id: &str) -> Option<GraphNode>
fn graph_neighbors( &self, _id: &str, _direction: GraphDirection, _limit: usize, ) -> Vec<(GraphEdge, GraphNode)>
fn search_graph(&self, _query: &str, _limit: usize) -> Vec<GraphNode>
fn graph_export(&self) -> KnowledgeGraph
fn delete_graph_node(&self, _id: &str) -> Result<()>
fn delete_graph_edge(&self, _id: &str) -> Result<()>
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".