pub mod convert;
pub mod lineage;
pub mod orphan;
pub mod storage_bridge;
pub mod store;
pub mod token;
pub use lineage::Lineage;
pub use orphan::{OrphanEffect, OrphanMode};
pub use store::{ActiveSession, AgentGraph, AgentRecord, AgentRegistry, RecentEvent};
#[derive(Debug, thiserror::Error)]
pub enum RegistryError {
#[error("agent already registered: {0:?}")]
AlreadyRegistered([u8; 16]),
#[error("agent not found: {0:?}")]
NotFound([u8; 16]),
#[error("lineage validation failed: {0}")]
Lineage(#[from] LineageError),
#[error("storage backend error: {0}")]
Storage(#[from] crate::storage::StorageError),
}
#[derive(Debug, thiserror::Error)]
pub enum LineageError {
#[error("circular agent delegation detected: {cycle:?}")]
CircularDelegation {
cycle: Vec<[u8; 16]>,
},
#[error("max delegation depth exceeded: depth {depth} > max {max}")]
MaxDepthExceeded { depth: u32, max: u32 },
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum SuspendReason {
BudgetExceeded,
Manual,
ParentSuspended {
parent_agent_id: [u8; 16],
},
ParentDeregistered,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum AgentStatus {
Active,
Suspended(SuspendReason),
Deregistered,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct AgentStatusChanged {
pub agent_id: [u8; 16],
pub new_status: AgentStatus,
pub suspend_reason: SuspendReason,
}