Skip to main content

zeph_memory/
lib.rs

1// SPDX-FileCopyrightText: 2026 Andrei G <bug-ops>
2// SPDX-License-Identifier: MIT OR Apache-2.0
3
4//! SQLite-backed conversation persistence with Qdrant vector search.
5
6pub mod anchored_summary;
7pub mod compaction_probe;
8pub mod compression_guidelines;
9pub mod document;
10
11pub mod embedding_registry;
12pub mod embedding_store;
13pub mod error;
14pub mod eviction;
15pub mod graph;
16pub mod in_memory_store;
17pub mod math;
18pub mod qdrant_ops;
19pub mod response_cache;
20pub mod router;
21pub mod semantic;
22pub mod snapshot;
23pub mod sqlite;
24pub mod sqlite_vector_store;
25pub mod testing;
26pub mod token_counter;
27pub mod types;
28pub mod vector_store;
29
30pub use anchored_summary::AnchoredSummary;
31pub use compaction_probe::{
32    CompactionProbeConfig, CompactionProbeResult, ProbeQuestion, ProbeVerdict,
33    answer_probe_questions, generate_probe_questions, score_answers, validate_compaction,
34};
35pub use compression_guidelines::CompressionGuidelinesConfig;
36#[cfg(feature = "compression-guidelines")]
37pub use compression_guidelines::{
38    build_guidelines_update_prompt, sanitize_guidelines, start_guidelines_updater,
39    truncate_to_token_budget, update_guidelines_once,
40};
41#[cfg(feature = "pdf")]
42pub use document::PdfLoader;
43pub use document::{
44    Chunk, Document, DocumentError, DocumentLoader, DocumentMetadata, IngestionPipeline,
45    SplitterConfig, TextLoader, TextSplitter,
46};
47pub use embedding_registry::{
48    EmbedFuture, Embeddable, EmbeddingRegistry, EmbeddingRegistryError, SyncStats,
49};
50pub use embedding_store::ensure_qdrant_collection;
51pub use error::MemoryError;
52pub use eviction::{EbbinghausPolicy, EvictionConfig, EvictionPolicy, start_eviction_loop};
53pub use graph::{Community, Edge, EdgeType, Entity, EntityType, GraphFact, GraphStore};
54pub use math::cosine_similarity;
55pub use qdrant_ops::QdrantOps;
56pub use response_cache::ResponseCache;
57pub use router::{
58    HeuristicRouter, MemoryRoute, MemoryRouter, TemporalRange, classify_graph_subgraph,
59    strip_temporal_keywords,
60};
61pub use semantic::{
62    ExtractionResult, ExtractionStats, GraphExtractionConfig, LinkingStats, NoteLinkingConfig,
63    StructuredSummary, build_summarization_prompt, extract_and_store, link_memory_notes,
64};
65pub use snapshot::{ImportStats, MemorySnapshot, export_snapshot, import_snapshot};
66#[cfg(feature = "compression-guidelines")]
67pub use sqlite::compression_guidelines::CompressionFailurePair;
68pub use sqlite::corrections::UserCorrectionRow;
69#[cfg(feature = "experiments")]
70pub use sqlite::experiments::{ExperimentResultRow, NewExperimentResult, SessionSummaryRow};
71pub use token_counter::TokenCounter;
72pub use tokio_util::sync::CancellationToken;
73pub use types::{ConversationId, MessageId};
74pub use vector_store::{
75    FieldCondition, FieldValue, ScoredVectorPoint, VectorFilter, VectorPoint, VectorStore,
76    VectorStoreError,
77};