lorefs 0.1.0

A lightweight, high-performance Rust native SDK for File-First Agent Memory.
Documentation
use lorefs::{LoreFS, LoreConfig};
use std::error::Error;
use tempfile::tempdir;

fn main() -> Result<(), Box<dyn Error>> {
    // For demonstration, we use a temporary directory
    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());

    // Add memory
    println!("Adding memory...");
    lore.add(
        "User prefers Rust for system programming.",
        "MEMORY.md",
        &["preference", "rust"],
    )?;

    // Update system persona
    println!("Updating persona...");
    lore.update_file(
        "system/persona.md",
        "# Persona\nI am a helpful Rust assistant specialized in CLI tools.",
    )?;

    // Search memory
    println!("Searching for 'Rust'...");
    let results = lore.search("Rust", 5, None)?;
    for (path, content) in results {
        println!("Found in {}:", path);
        println!("{}", content);
    }

    // Get pinned context for system prompt
    println!("\nPinned Context for LLM:");
    println!("{}", lore.get_pinned_context()?);

    Ok(())
}