[package]
name = "cel-memory-sqlite"
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
description = "SQLite-backed local memory for AI agents, implementing cel-memory with FTS and vector search."
keywords = ["ai", "memory", "sqlite", "vector-search", "embedding"]
categories = ["asynchronous", "database"]
readme = "README.md"

[dependencies]
async-trait.workspace = true
cel-memory = { path = "../cel-memory", version = "0.1.5" }
chrono = { workspace = true, features = ["serde"] }
rusqlite = { workspace = true, features = ["functions"] }
serde_json.workspace = true
sqlite-vec = "0.1"
thiserror.workspace = true
tokio = { workspace = true }
tracing.workspace = true
uuid = { workspace = true, features = ["v7", "serde"] }
zerocopy = "0.7"

# fastembed pulls in onnxruntime + tokenizers; gated behind a feature so
# downstream crates can opt in only when they need real embeddings (model
# download is ~130 MB). The MockEmbedder is always available.
fastembed = { version = "4", optional = true }

[features]
default = []
fastembed = ["dep:fastembed"]

[dev-dependencies]
chrono = { workspace = true, features = ["serde"] }
tempfile = "3"
tokio = { workspace = true, features = ["macros", "rt", "rt-multi-thread"] }
# NOTE: runtime-only crates are intentionally not dev-deps here. Integration
# tests that need a full runtime should live downstream; keeping them out keeps
# this crate standalone-testable with only cel-memory + storage deps.
