#[derive(Debug, thiserror::Error, Clone, PartialEq)]
pub enum MemoryValidationError {
#[error("invalid hybrid weights: bm25={bm25}, vector={vector}")]
InvalidHybridWeights {
bm25: f32,
vector: f32,
},
#[error("recall limit must be greater than zero")]
InvalidRecallLimit,
#[error("unknown memory importance level: {0}")]
InvalidImportance(String),
}
#[derive(Debug, thiserror::Error)]
pub enum MemoryStoreError {
#[error("database error: {0}")]
Database(String),
#[error("serialization error: {0}")]
Serialization(String),
#[error(transparent)]
Validation(#[from] MemoryValidationError),
}
#[derive(Debug, thiserror::Error)]
pub enum MemoryServiceError {
#[error(transparent)]
Validation(#[from] MemoryValidationError),
#[error(transparent)]
Store(#[from] MemoryStoreError),
}
impl From<serde_json::Error> for MemoryStoreError {
fn from(value: serde_json::Error) -> Self {
Self::Serialization(value.to_string())
}
}