use crate::memory::MemoryStore;
pub fn remember(memory: &mut MemoryStore, key: &str, value: &str) -> String {
memory.upsert(key, value);
format!("Remembered: {} = {}", key, value)
}
pub fn recall(memory: &MemoryStore, query: &str) -> String {
if query.trim().is_empty() {
let facts = memory.all_facts();
if facts.is_empty() {
return "No facts stored yet.".to_string();
}
let mut out = format!("All {} stored fact(s):\n\n", facts.len());
for f in &facts {
out.push_str(&format!(" {}: {}\n", f.key, f.value));
}
return out;
}
let results = memory.search(query);
if results.is_empty() {
return format!("No facts found matching '{}'.", query);
}
let mut out = format!("Found {} fact(s) matching '{}':\n\n", results.len(), query);
for f in &results {
out.push_str(&format!(" {}: {}\n", f.key, f.value));
}
out
}