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