vtcode_core/core/agent/
stats.rs

1//! Statistics and reporting structures for compaction system
2
3use crate::core::agent::types::MessagePriority;
4use serde::{Deserialize, Serialize};
5
6/// Compaction operation result
7#[derive(Debug, Clone, Serialize, Deserialize)]
8pub struct CompactionResult {
9    /// Number of messages processed
10    pub messages_processed: usize,
11    /// Number of messages compacted
12    pub messages_compacted: usize,
13    /// Total original size (bytes)
14    pub original_size: usize,
15    /// Total compacted size (bytes)
16    pub compacted_size: usize,
17    /// Overall compression ratio
18    pub compression_ratio: f64,
19    /// Processing time in milliseconds
20    pub processing_time_ms: u64,
21}
22
23/// Compaction statistics
24#[derive(Debug, Clone, Serialize, Deserialize)]
25pub struct CompactionStatistics {
26    /// Total messages in history
27    pub total_messages: usize,
28    /// Messages by priority level
29    pub messages_by_priority: std::collections::HashMap<MessagePriority, usize>,
30    /// Total memory usage (bytes)
31    pub total_memory_usage: usize,
32    /// Average message size (bytes)
33    pub average_message_size: usize,
34    /// Last compaction timestamp
35    pub last_compaction_timestamp: u64,
36    /// Compaction frequency (operations per hour)
37    pub compaction_frequency: f64,
38}