llm_memory_graph/lib.rs
1//! LLM-Memory-Graph: Graph-based context-tracking and prompt-lineage database
2//!
3//! This crate provides a high-performance, embeddable graph database specifically designed
4//! for tracking LLM conversation context, prompt lineage, and multi-agent coordination.
5//!
6//! # Features
7//!
8//! - **Context Persistence**: Maintain conversation history across sessions
9//! - **Prompt Lineage**: Track prompt evolution and template inheritance
10//! - **Graph-Native**: Efficient relationship queries using graph algorithms
11//! - **Embedded Storage**: Low-latency, file-based storage using Sled
12//! - **Type-Safe**: Strongly typed nodes and edges with schema validation
13//!
14//! # Quick Start
15//!
16//! ```no_run
17//! use llm_memory_graph::{MemoryGraph, Config};
18//!
19//! # fn main() -> Result<(), Box<dyn std::error::Error>> {
20//! let config = Config::default();
21//! let graph = MemoryGraph::open(config)?;
22//!
23//! let session = graph.create_session()?;
24//! let prompt_id = graph.add_prompt(
25//! session.id,
26//! "Explain quantum computing".to_string(),
27//! None
28//! )?;
29//!
30//! # Ok(())
31//! # }
32//! ```
33
34#![deny(missing_docs)]
35#![deny(unsafe_code)]
36#![warn(clippy::all)]
37#![warn(clippy::pedantic)]
38#![allow(clippy::module_name_repetitions)]
39// Allow pedantic lints that are overly strict for this codebase
40#![allow(clippy::missing_errors_doc)]
41#![allow(clippy::missing_panics_doc)]
42#![allow(clippy::must_use_candidate)]
43#![allow(clippy::return_self_not_must_use)]
44#![allow(clippy::uninlined_format_args)]
45#![allow(clippy::cast_possible_truncation)]
46#![allow(clippy::cast_precision_loss)]
47#![allow(clippy::cast_sign_loss)]
48#![allow(clippy::doc_markdown)]
49#![allow(clippy::needless_pass_by_value)]
50#![allow(clippy::map_unwrap_or)]
51#![allow(clippy::unused_self)]
52#![allow(clippy::unnecessary_wraps)]
53#![allow(clippy::too_many_lines)]
54#![allow(clippy::explicit_iter_loop)]
55
56pub mod engine;
57pub mod error;
58// pub mod grpc; // TODO: Complete gRPC implementation
59// pub mod integrations; // TODO: Fix type mismatches in retry logic
60pub mod migration;
61pub mod observatory;
62pub mod plugin;
63pub mod query;
64pub mod storage;
65pub mod types;
66
67// Re-export main types
68pub use engine::{AsyncMemoryGraph, MemoryGraph};
69pub use error::{Error, Result};
70pub use types::{
71 AgentConfig, AgentId, AgentMetrics, AgentNode, AgentStatus, Config, ContextType,
72 ConversationSession, EdgeType, InheritsProperties, InstantiatesProperties, InvokesProperties,
73 NodeId, NodeType, Priority, PromptMetadata, PromptNode, PromptTemplate, ReferencesProperties,
74 ResponseMetadata, ResponseNode, SessionId, TemplateId, TokenUsage, ToolInvocation,
75 TransfersToProperties, VariableSpec, Version, VersionLevel,
76};
77
78/// Current version of the LLM-Memory-Graph library
79pub const VERSION: &str = env!("CARGO_PKG_VERSION");