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;