Skip to main content

uira_memory/tools/
mod.rs

1pub mod forget_tool;
2pub mod profile_tool;
3pub mod search_tool;
4pub mod store_tool;
5
6pub use forget_tool::memory_forget_tool;
7pub use profile_tool::memory_profile_tool;
8pub use search_tool::memory_search_tool;
9pub use store_tool::memory_store_tool;
10
11use std::sync::Arc;
12
13use crate::config::MemoryConfig;
14use crate::embeddings::EmbeddingProvider;
15use crate::profile::UserProfile;
16use crate::search::HybridSearcher;
17use crate::store::MemoryStore;
18
19pub struct MemoryTools {
20    pub store: Arc<MemoryStore>,
21    pub searcher: Arc<HybridSearcher>,
22    pub embedder: Arc<dyn EmbeddingProvider>,
23    pub profile: Arc<UserProfile>,
24    pub config: MemoryConfig,
25}
26
27impl MemoryTools {
28    pub fn new(
29        store: Arc<MemoryStore>,
30        searcher: Arc<HybridSearcher>,
31        embedder: Arc<dyn EmbeddingProvider>,
32        profile: Arc<UserProfile>,
33        config: MemoryConfig,
34    ) -> Self {
35        Self {
36            store,
37            searcher,
38            embedder,
39            profile,
40            config,
41        }
42    }
43}