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//! Database-backed conversation persistence with Qdrant vector search.
5
6pub mod admission;
7pub mod admission_rl;
8pub mod anchored_summary;
9pub mod compaction_probe;
10pub mod compression_guidelines;
11pub mod compression_predictor;
12pub mod consolidation;
13pub mod document;
14pub mod forgetting;
15pub mod scenes;
16pub mod tiers;
17
18pub mod db_vector_store;
19pub mod embedding_registry;
20pub mod embedding_store;
21pub mod error;
22pub mod eviction;
23pub mod graph;
24pub mod in_memory_store;
25pub mod qdrant_ops;
26pub mod response_cache;
27pub mod router;
28pub mod semantic;
29pub mod snapshot;
30pub mod store;
31pub mod testing;
32pub mod token_counter;
33pub mod types;
34pub mod vector_store;
35
36pub use admission::{
37    AdmissionControl, AdmissionDecision, AdmissionFactors, AdmissionRejected, AdmissionWeights,
38    GoalGateConfig, compute_content_type_prior, compute_factual_confidence, log_admission_decision,
39};
40pub use anchored_summary::AnchoredSummary;
41pub use compaction_probe::{
42    CategoryScore, CompactionProbeConfig, CompactionProbeResult, ProbeCategory, ProbeQuestion,
43    ProbeVerdict, answer_probe_questions, generate_probe_questions, score_answers,
44    validate_compaction,
45};
46pub use compression_guidelines::CompressionGuidelinesConfig;
47pub use compression_guidelines::{
48    build_guidelines_update_prompt, sanitize_guidelines, start_guidelines_updater,
49    truncate_to_token_budget, update_guidelines_once,
50};
51pub use compression_predictor::{
52    CompressionFeatures, CompressionModelWeights, CompressionPredictor,
53};
54pub use consolidation::{
55    ConsolidationConfig, ConsolidationResult, TopologyOp, run_consolidation_sweep,
56    start_consolidation_loop,
57};
58#[cfg(feature = "pdf")]
59pub use document::PdfLoader;
60pub use document::{
61    Chunk, Document, DocumentError, DocumentLoader, DocumentMetadata, IngestionPipeline,
62    SplitterConfig, TextLoader, TextSplitter,
63};
64pub use embedding_registry::{
65    EmbedFuture, Embeddable, EmbeddingRegistry, EmbeddingRegistryError, SyncStats,
66};
67pub use embedding_store::ensure_qdrant_collection;
68pub use error::MemoryError;
69pub use eviction::{EbbinghausPolicy, EvictionConfig, EvictionPolicy, start_eviction_loop};
70pub use forgetting::{ForgettingConfig, ForgettingResult, start_forgetting_loop};
71pub use graph::EntityLockManager;
72pub use graph::{
73    BeliefRevisionConfig, Community, Edge, EdgeType, Entity, EntityType, GraphFact, GraphStore,
74    RpeRouter, RpeSignal, extract_candidate_entities,
75};
76pub use qdrant_ops::QdrantOps;
77pub use response_cache::ResponseCache;
78pub use router::{
79    AsyncMemoryRouter, HeuristicRouter, HybridRouter, LlmRouter, MemoryRoute, MemoryRouter,
80    RoutingDecision, TemporalRange, classify_graph_subgraph, parse_route_str,
81    strip_temporal_keywords,
82};
83pub use scenes::{
84    MemScene, SceneConfig, consolidate_scenes, list_scenes, start_scene_consolidation_loop,
85};
86pub use semantic::{
87    BufferedWrite, EmbedContext, ExtractionResult, ExtractionStats, GraphExtractionConfig,
88    LinkingStats, NoteLinkingConfig, PersonaExtractionConfig, StructuredSummary, TrajectoryEntry,
89    TrajectoryExtractionConfig, TreeConsolidationConfig, TreeConsolidationResult, WriteBuffer,
90    build_summarization_prompt, contains_self_referential_language, extract_and_store,
91    extract_persona_facts, extract_trajectory_entries, link_memory_notes,
92    run_tree_consolidation_sweep, start_tree_consolidation_loop,
93};
94pub use snapshot::{ImportStats, MemorySnapshot, export_snapshot, import_snapshot};
95pub use store::compression_guidelines::CompressionFailurePair;
96pub use store::corrections::UserCorrectionRow;
97pub use store::experiments::{ExperimentResultRow, NewExperimentResult, SessionSummaryRow};
98pub use store::memory_tree::MemoryTreeRow;
99pub use store::persona::PersonaFactRow;
100pub use store::session_digest::SessionDigest;
101pub use store::trajectory::{NewTrajectoryEntry, TrajectoryEntryRow};
102pub use tiers::{TierPromotionConfig, start_tier_promotion_loop};
103pub use token_counter::TokenCounter;
104pub use tokio_util::sync::CancellationToken;
105pub use types::{ConversationId, MemSceneId, MemoryTier, MessageId};
106pub use vector_store::{
107    FieldCondition, FieldValue, ScoredVectorPoint, VectorFilter, VectorPoint, VectorStore,
108    VectorStoreError,
109};