1use thiserror::Error;
4
5use crate::types::MemoryId;
6
7#[derive(Debug, Error)]
9pub enum MenteError {
10 #[error("memory not found: {0}")]
12 MemoryNotFound(MemoryId),
13
14 #[error("storage error: {0}")]
16 Storage(String),
17
18 #[error("index error: {0}")]
20 Index(String),
21
22 #[error("query error: {0}")]
24 Query(String),
25
26 #[error("serialization error: {0}")]
28 Serialization(String),
29
30 #[error("capacity exceeded: {0}")]
32 CapacityExceeded(String),
33
34 #[error("embedding dimension mismatch: got {got}, expected {expected}")]
36 EmbeddingDimensionMismatch {
37 got: usize,
39 expected: usize,
41 },
42
43 #[error("permission denied: agent {agent_id} cannot access space {space_id}")]
45 PermissionDenied {
46 agent_id: crate::types::AgentId,
48 space_id: crate::types::SpaceId,
50 },
51
52 #[error("resource exhausted: {0}")]
54 ResourceExhausted(String),
55
56 #[error(transparent)]
58 Io(#[from] std::io::Error),
59}
60
61pub type MenteResult<T> = Result<T, MenteError>;