mod event_logger;
mod event_store;
#[cfg(test)]
mod event_tests;
mod event_types;
mod event_writer;
mod filter;
pub mod index;
mod io;
pub mod retention;
pub use retention::{RetentionAnalysis, RetentionManager, RetentionPolicy, RetentionStats};
mod stats;
pub mod streaming;
pub use event_logger::{EventLogger, EventRecord};
pub use event_store::EventStore;
pub use event_types::MapReduceEvent;
pub use event_writer::{EventWriter, FileEventWriter, JsonlEventWriter};
pub use filter::EventFilter;
pub use index::{EventIndex, FileOffset};
pub use stats::EventStats;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq)]
#[serde(rename_all = "lowercase")]
pub enum EventSeverity {
Debug,
Info,
Warning,
Error,
Critical,
}
#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq)]
#[serde(rename_all = "snake_case")]
pub enum EventCategory {
JobLifecycle,
AgentLifecycle,
Checkpoint,
Worktree,
Performance,
DeadLetterQueue,
}
impl MapReduceEvent {
pub fn severity(&self) -> EventSeverity {
use MapReduceEvent::*;
match self {
JobFailed { .. } | AgentFailed { .. } | CheckpointFailed { .. } => EventSeverity::Error,
MemoryPressure { .. } | DLQItemsEvicted { .. } => EventSeverity::Warning,
JobStarted { .. }
| JobCompleted { .. }
| AgentCompleted { .. }
| DLQItemAdded { .. } => EventSeverity::Info,
_ => EventSeverity::Debug,
}
}
pub fn category(&self) -> EventCategory {
use MapReduceEvent::*;
match self {
JobStarted { .. }
| JobCompleted { .. }
| JobFailed { .. }
| JobPaused { .. }
| JobResumed { .. } => EventCategory::JobLifecycle,
AgentStarted { .. }
| AgentProgress { .. }
| AgentCompleted { .. }
| AgentFailed { .. }
| AgentRetrying { .. } => EventCategory::AgentLifecycle,
CheckpointCreated { .. } | CheckpointLoaded { .. } | CheckpointFailed { .. } => {
EventCategory::Checkpoint
}
WorktreeCreated { .. } | WorktreeMerged { .. } | WorktreeCleaned { .. } => {
EventCategory::Worktree
}
QueueDepthChanged { .. } | MemoryPressure { .. } => EventCategory::Performance,
DLQItemAdded { .. }
| DLQItemRemoved { .. }
| DLQItemsReprocessed { .. }
| DLQItemsEvicted { .. }
| DLQAnalysisGenerated { .. } => EventCategory::DeadLetterQueue,
ClaudeToolInvoked { .. }
| ClaudeTokenUsage { .. }
| ClaudeSessionStarted { .. }
| ClaudeMessage { .. } => EventCategory::AgentLifecycle,
}
}
}