neomemx 0.1.2

A high-performance memory library for AI agents with semantic search
Documentation
//! # neomemx
//!
//! A high-performance memory library for AI agents.
//!
//! ## Quick Start
//!
//! ```rust,no_run
//! use neomemx::prelude::*;
//!
//! #[tokio::main]
//! async fn main() -> Result<()> {
//!     // Initialize engine with default configuration
//!     let engine = NeomemxEngine::new().await?;
//!
//!     // Create a scope for organizing facts
//!     let scope = ScopeIdentifiers::for_user("alice");
//!
//!     // Store a fact
//!     engine.store("Alice likes pizza")
//!         .with_scope(scope.clone())
//!         .execute()
//!         .await?;
//!
//!     // Search facts
//!     let results = engine.search("What does Alice like?")
//!         .with_scope(scope)
//!         .execute()
//!         .await?;
//!
//!     for fact in results.facts {
//!         println!("{}", fact.content);
//!     }
//!
//!     Ok(())
//! }
//! ```

#![warn(missing_docs, rust_2018_idioms)]
#![deny(unsafe_code)]

pub mod core;
pub mod engine;
pub mod error;

mod config;
mod embeddings;
mod extraction;
mod llm;
mod reranker;
mod search;
mod storage;
mod vector_store;

#[cfg(test)]
mod test_helpers;

pub use core::{
    ChangeLog, FactId, IngestionOutcome, ModificationResult, RetrievalResult, ScopeFilter,
    ScopeIdentifiers, StoredFact,
};
pub use engine::{EngineBuilder, EngineConfig, NeomemxEngine, QueryBuilder, StorageBuilder};

pub use error::NeomemxError;

/// Result type alias for neomemx operations
pub type Result<T> = std::result::Result<T, NeomemxError>;

/// Prelude module for convenient imports
pub mod prelude {
    pub use crate::core::{IngestionOutcome, RetrievalResult, ScopeIdentifiers, StoredFact};
    pub use crate::engine::{EngineBuilder, NeomemxEngine, QueryBuilder, StorageBuilder};
    pub use crate::error::{NeomemxError, Result};
}