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}