1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
//! # paladin-memory
//!
//! Memory adapters for the Paladin framework.
//!
//! This crate provides two categories of memory storage:
//!
//! - **Garrison** (`garrison` module): Conversation history storage adapters.
//! - [`garrison::InMemoryGarrison`] — always available, zero-dependency in-process store.
//! - `garrison::SqliteGarrison` — persistent SQLite-backed store (requires feature `sqlite`).
//! - `garrison::TiktokenCounter` / `garrison::TokenCounter` — token counting utilities
//! (requires feature `content-processing`).
//!
//! - **Sanctum** (`sanctum` module): Vector / semantic memory adapters.
//! - [`sanctum::InMemorySanctum`] — always available, in-process vector store.
//! - `sanctum::QdrantSanctumAdapter` — production-grade Qdrant-backed store (requires feature `qdrant`).
//!
//! - **Services** (`services` module): Application-layer memory orchestration.
//! - [`services::MemoryExtractionService`] — extracts and persists memories from conversations.
//! - [`services::RagRetrievalService`] — retrieves context for RAG pipelines.
//!
//! ## Feature flags
//!
//! | Feature | Enables |
//! |----------------------|--------------------------------------------------|
//! | `sqlite` | `SqliteGarrison` (depends on `sqlx`) |
//! | `qdrant` | `QdrantSanctumAdapter` (depends on `qdrant-client`) |
//! | `content-processing` | `TiktokenCounter`, `TokenCounter`, `TokenCounterFactory` (depends on `tiktoken-rs`) |
//!
//! No features are enabled by default.
/// Configuration types for garrison, sanctum, and memory extraction behavior.
/// Garrison adapters and supporting utilities.
/// Convenience re-exports for commonly used memory types.
/// Sanctum adapters and semantic-memory abstractions.
/// Application-layer services for memory extraction and retrieval.