mnemos/lib.rs
1//! # mnemos
2//!
3//! A self-learning knowledgebase built on ruvector that gets smarter the more you use it.
4//!
5//! ## Features
6//!
7//! - **Vector Storage**: High-performance HNSW-based vector indexing
8//! - **Self-Learning**: Adaptive query understanding using GNN-inspired learning
9//! - **Knowledge Graph**: Semantic relationships between knowledge entries
10//! - **Hybrid Search**: Combine vector similarity with metadata filtering
11//! - **gRPC Interface**: High-performance RPC for service integration
12//! - **MCP Server**: Model Context Protocol for Claude Desktop
13//! - **Suggestor Adapters**: Knowledge retrieval and persistence inside the
14//! convergence loop
15//!
16//! ## Quick Start
17//!
18//! ```rust,no_run
19//! use mnemos::{KnowledgeBase, KnowledgeEntry};
20//!
21//! #[tokio::main]
22//! async fn main() -> anyhow::Result<()> {
23//! let kb = KnowledgeBase::open("./knowledge.db").await?;
24//!
25//! // Add knowledge
26//! kb.add_entry(KnowledgeEntry::new(
27//! "Rust Memory Safety",
28//! "Rust ensures memory safety through ownership and borrowing rules...",
29//! )).await?;
30//!
31//! // Search with learning
32//! let results = kb.search_simple("memory management in rust", 5).await?;
33//!
34//! Ok(())
35//! }
36//! ```
37//!
38//! ## Architecture
39//!
40//! ```text
41//! ┌─────────────────────────────────────────────────────────────┐
42//! │ mnemos │
43//! ├─────────────────────────────────────────────────────────────┤
44//! │ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────────────┐ │
45//! │ │ CLI │ │ gRPC │ │ MCP │ │ Library API │ │
46//! │ │ │ │ Server │ │ Server │ │ │ │
47//! │ └────┬────┘ └────┬────┘ └────┬────┘ └────────┬────────┘ │
48//! │ │ │ │ │ │
49//! │ └────────────┴────────────┴────────────────┘ │
50//! │ │ │
51//! │ ┌────────────────────────┴───────────────────────────────┐ │
52//! │ │ KnowledgeBase │ │
53//! │ │ ┌─────────────┐ ┌───────────────┐ ┌──────────────┐ │ │
54//! │ │ │ Embedding │ │ Learning │ │ Storage │ │ │
55//! │ │ │ Engine │ │ Engine │ │ Backend │ │ │
56//! │ │ │ (Hash/ML) │ │ (GNN-style) │ │ (Bincode) │ │ │
57//! │ │ └─────────────┘ └───────────────┘ └──────────────┘ │ │
58//! │ └────────────────────────────────────────────────────────┘ │
59//! └─────────────────────────────────────────────────────────────┘
60//! ```
61
62#![forbid(unsafe_code)]
63#![warn(missing_docs)]
64
65pub mod agentic;
66pub mod core;
67pub mod embedding;
68pub mod error;
69pub mod ingest;
70pub mod learning;
71pub mod provenance;
72pub mod storage;
73pub mod suggestor;
74
75#[cfg(feature = "grpc")]
76pub mod grpc;
77
78// Re-exports
79pub use crate::agentic::{
80 // Core agent memory
81 AgenticDB,
82 AgenticStats,
83 CausalEdge,
84 // Causal memory
85 CausalMemory,
86 CausalNode,
87 Critique,
88 CritiqueType,
89 DriftDetector,
90 Experience,
91 ExperienceWindow,
92 FewShotLearner,
93 Hyperedge,
94 // Learning sessions
95 LearningSession,
96 LearningStrategy,
97 // Meta-learning
98 MetaLearner,
99 // Online/continual learning
100 OnlineLearner,
101 ParameterSnapshot,
102 // Reflexion (self-critique)
103 ReflexionEpisode,
104 ReflexionMemory,
105 Reward,
106 SessionTurn,
107 // Skills
108 Skill,
109 SkillLibrary,
110 SkillPattern,
111 TaskFeatures,
112 TemporalMemory,
113 TemporalOccurrence,
114 TemporalPeriod,
115 // Temporal patterns (time crystals)
116 TimeCrystal,
117};
118pub use crate::core::{
119 KnowledgeBase, KnowledgeBaseConfig, KnowledgeEntry, SearchOptions, SearchResult,
120};
121pub use crate::embedding::EmbeddingEngine;
122pub use crate::error::{Error, Result};
123pub use crate::learning::LearningEngine;
124pub use crate::provenance::{MNEMOS_PROVENANCE, Mnemos};
125pub use crate::storage::StorageBackend;
126pub use crate::suggestor::{
127 KnowledgeHitPayload, KnowledgeRetrievalSuggestor, KnowledgeStoreSuggestor,
128};