Skip to main content

converge_knowledge/
lib.rs

1//! # Converge Knowledge
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//!
14//! ## Quick Start
15//!
16//! ```rust,no_run
17//! use converge_knowledge::{KnowledgeBase, KnowledgeEntry};
18//!
19//! #[tokio::main]
20//! async fn main() -> anyhow::Result<()> {
21//!     let kb = KnowledgeBase::open("./knowledge.db").await?;
22//!
23//!     // Add knowledge
24//!     kb.add_entry(KnowledgeEntry::new(
25//!         "Rust Memory Safety",
26//!         "Rust ensures memory safety through ownership and borrowing rules...",
27//!     )).await?;
28//!
29//!     // Search with learning
30//!     let results = kb.search_simple("memory management in rust", 5).await?;
31//!
32//!     Ok(())
33//! }
34//! ```
35//!
36//! ## Architecture
37//!
38//! ```text
39//! ┌─────────────────────────────────────────────────────────────┐
40//! │                    Converge Knowledge                        │
41//! ├─────────────────────────────────────────────────────────────┤
42//! │  ┌─────────┐  ┌─────────┐  ┌─────────┐  ┌─────────────────┐ │
43//! │  │   CLI   │  │  gRPC   │  │   MCP   │  │  Library API    │ │
44//! │  │         │  │ Server  │  │ Server  │  │                 │ │
45//! │  └────┬────┘  └────┬────┘  └────┬────┘  └────────┬────────┘ │
46//! │       │            │            │                │          │
47//! │       └────────────┴────────────┴────────────────┘          │
48//! │                           │                                  │
49//! │  ┌────────────────────────┴───────────────────────────────┐ │
50//! │  │                   KnowledgeBase                        │ │
51//! │  │  ┌─────────────┐  ┌───────────────┐  ┌──────────────┐ │ │
52//! │  │  │  Embedding  │  │   Learning    │  │   Storage    │ │ │
53//! │  │  │   Engine    │  │    Engine     │  │   Backend    │ │ │
54//! │  │  │  (Hash/ML)  │  │  (GNN-style)  │  │  (Bincode)   │ │ │
55//! │  │  └─────────────┘  └───────────────┘  └──────────────┘ │ │
56//! │  └────────────────────────────────────────────────────────┘ │
57//! └─────────────────────────────────────────────────────────────┘
58//! ```
59
60#![forbid(unsafe_code)]
61#![warn(missing_docs)]
62
63pub mod agentic;
64pub mod core;
65pub mod embedding;
66pub mod error;
67pub mod ingest;
68pub mod learning;
69pub mod storage;
70
71#[cfg(feature = "grpc")]
72pub mod grpc;
73
74#[cfg(feature = "mcp")]
75pub mod mcp;
76
77// Re-exports
78pub use crate::agentic::{
79    // Core agent memory
80    AgenticDB,
81    AgenticStats,
82    CausalEdge,
83    // Causal memory
84    CausalMemory,
85    CausalNode,
86    Critique,
87    CritiqueType,
88    DriftDetector,
89    Experience,
90    ExperienceWindow,
91    FewShotLearner,
92    Hyperedge,
93    // Learning sessions
94    LearningSession,
95    LearningStrategy,
96    // Meta-learning
97    MetaLearner,
98    // Online/continual learning
99    OnlineLearner,
100    ParameterSnapshot,
101    // Reflexion (self-critique)
102    ReflexionEpisode,
103    ReflexionMemory,
104    Reward,
105    SessionTurn,
106    // Skills
107    Skill,
108    SkillLibrary,
109    SkillPattern,
110    TaskFeatures,
111    TemporalMemory,
112    TemporalOccurrence,
113    TemporalPeriod,
114    // Temporal patterns (time crystals)
115    TimeCrystal,
116};
117pub use crate::core::{
118    KnowledgeBase, KnowledgeBaseConfig, KnowledgeEntry, SearchOptions, SearchResult,
119};
120pub use crate::embedding::EmbeddingEngine;
121pub use crate::error::{Error, Result};
122pub use crate::learning::LearningEngine;
123pub use crate::storage::StorageBackend;