//! Persistent vector index with hot/cold architecture.
//!
//! # Architecture
//!
//! ```text
//! ┌──────────────────────────────────────────────────┐
//! │           PersistentVectorIndex                  │
//! │         (implements VectorIndex)                 │
//! └─────────────────────┬────────────────────────────┘
//!                       │
//!      ┌────────────────┼────────────────┐
//!      │                │                │
//!      ▼                ▼                ▼
//! ┌─────────┐    ┌───────────┐    ┌─────────────┐
//! │   Hot   │    │   Cold    │    │  Background │
//! │ (RAM)   │    │ (mmap'd)  │    │  Builder    │
//! │ Recent  │    │ Historical│    │ (periodic)  │
//! └─────────┘    └───────────┘    └─────────────┘
//! ```
//!
//! - **Hot:** In-memory HNSW for recent vectors (configurable window)
//! - **Cold:** Memory-mapped HNSW loaded from disk snapshot
//! - **Background builder:** Periodically rebuilds cold index from hot
//!
//! # Graceful Degradation
//!
//! If the cold index fails to load, the system operates in hot-only mode.
//! All vectors accumulate in the hot index until a successful checkpoint.

mod config;
mod index;

pub use config::PersistentVectorIndexConfig;
pub use index::PersistentVectorIndex;
