use thiserror::Error;
#[derive(Debug, Error)]
#[non_exhaustive]
pub enum MemoryError {
#[error(transparent)]
Core(#[from] basemyai_core::CoreError),
#[error("encryption key is required (mandatory in basemyai)")]
EncryptionRequired,
#[error("a valid agent_id is required (per-agent isolation invariant)")]
MissingAgent,
#[error("unknown memory layer: {0}")]
UnknownLayer(String),
#[error("inference failure: {0}")]
Inference(String),
#[error("extraction parse error: {0}")]
Extraction(String),
#[error("porting error: {0}")]
Porting(String),
#[error("text too long: {len} bytes (max {max})")]
TextTooLong {
len: usize,
max: usize,
},
}
pub type Result<T> = core::result::Result<T, MemoryError>;