use lorefs::{LoreFS, LoreConfig};
use std::error::Error;
use tempfile::tempdir;
fn main() -> Result<(), Box<dyn Error>> {
let temp_dir = tempdir()?;
let config = LoreConfig::builder()
.base_dir(temp_dir.path())
.git_enabled(true)
.build()?;
let mut lore = LoreFS::new(config)?;
println!("Initial Memory Tree:");
println!("{}", lore.get_memory_tree());
println!("Adding memory...");
lore.add(
"User prefers Rust for system programming.",
"MEMORY.md",
&["preference", "rust"],
)?;
println!("Updating persona...");
lore.update_file(
"system/persona.md",
"# Persona\nI am a helpful Rust assistant specialized in CLI tools.",
)?;
println!("Searching for 'Rust'...");
let results = lore.search("Rust", 5, None)?;
for (path, content) in results {
println!("Found in {}:", path);
println!("{}", content);
}
println!("\nPinned Context for LLM:");
println!("{}", lore.get_pinned_context()?);
Ok(())
}