Skip to main content

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};