Skip to main content

entelix_memory/
lib.rs

1//! # entelix-memory
2//!
3//! Tier-3 cross-thread persistent knowledge. Defines `Store<V>`, `Namespace`
4//! (mandatory `tenant_id` — invariant 11 / F2 mitigation), the `Embedder` /
5//! `Retriever` / `VectorStore` traits, and the five `LangChain`-style
6//! patterns: `BufferMemory`, `SummaryMemory`, `EntityMemory`,
7//! `SemanticMemory<E, V>`, `EpisodicMemory<V>`. Concrete `Embedder` /
8//! `VectorStore` / `Retriever` impls ship in companion crates
9//!.
10
11#![cfg_attr(docsrs, feature(doc_cfg))]
12#![doc(html_root_url = "https://docs.rs/entelix-memory/0.5.3")]
13#![deny(missing_docs)]
14// Doc-prose lints fire on legitimate proper nouns (LangChain,
15// Neo4j, ArangoDB, BTreeMap) and on long opening paragraphs that
16// explain trait intent; we accept the trade-off so docs read as
17// natural prose rather than artificially split sentences.
18#![allow(
19    clippy::doc_markdown,
20    clippy::missing_errors_doc,
21    clippy::missing_panics_doc,
22    clippy::option_if_let_else,
23    clippy::significant_drop_tightening,
24    clippy::too_long_first_doc_paragraph
25)]
26
27mod buffer;
28mod consolidating;
29mod consolidation;
30mod embedding_retriever;
31mod entity;
32mod episodic;
33mod graph;
34mod in_memory_vector_store;
35mod metered;
36mod namespace;
37mod rerank;
38mod semantic;
39mod store;
40mod summary;
41mod traits;
42mod vector;
43
44pub use buffer::{BufferMemory, PolicyExtras};
45pub use consolidating::{ConsolidatingBufferMemory, Summarizer};
46pub use consolidation::{
47    ConsolidationContext, ConsolidationPolicy, NeverConsolidate, OnMessageCount, OnTokenBudget,
48};
49pub use embedding_retriever::EmbeddingRetriever;
50pub use entity::{EntityMemory, EntityRecord};
51pub use episodic::{Episode, EpisodeId, EpisodicMemory};
52pub use graph::{Direction, EdgeId, GraphHop, GraphMemory, InMemoryGraphMemory, NodeId};
53pub use in_memory_vector_store::InMemoryVectorStore;
54pub use metered::{CostCalculatorAdapter, EmbeddingCostCalculator, MeteredEmbedder};
55pub use namespace::{Namespace, NamespacePrefix};
56pub use rerank::MmrReranker;
57pub use semantic::{SemanticMemory, SemanticMemoryBackend};
58pub use store::{InMemoryStore, PutOptions, Store};
59pub use summary::SummaryMemory;
60pub use traits::{
61    Document, DocumentId, Embedder, Embedding, EmbeddingUsage, IdentityReranker, RerankedDocument,
62    Reranker, RetrievalQuery, Retriever, VectorFilter, VectorStore,
63};
64pub use vector::{first_non_finite_vector_value, validate_vector_shape};