consolidation/
consolidation.rs

1//! Memory consolidation example
2
3use omega_memory::{
4    CosmicMemory, Memory, MemoryContent, MemoryTier,
5};
6
7#[tokio::main]
8async fn main() -> Result<(), Box<dyn std::error::Error>> {
9    println!("šŸ”„ ExoGenesis Omega - Memory Consolidation Demo\n");
10
11    let memory = CosmicMemory::new().await?;
12
13    // Create multiple instant memories with varying importance
14    println!("šŸ“ Creating memories with varying importance...\n");
15
16    for i in 0..5 {
17        let importance = 0.2 + (i as f64 * 0.2);
18        let mem = Memory::new(
19            MemoryTier::Instant,
20            MemoryContent::Text(format!("Memory #{} with importance {:.1}", i, importance)),
21            vec![i as f32 / 5.0; 4],
22            importance,
23        );
24        memory.store(mem).await?;
25        println!("  Created instant memory #{} (importance: {:.1})", i, importance);
26    }
27
28    println!("\nšŸ“Š Initial statistics:");
29    let stats = memory.stats().await;
30    println!("  Instant: {}", stats.individual.instant);
31    println!("  Session: {}", stats.individual.session);
32    println!("  Episodic: {}", stats.individual.episodic);
33    println!("  Semantic: {}", stats.individual.semantic);
34
35    // Run auto-consolidation
36    println!("\nšŸ”„ Running auto-consolidation...");
37    memory.auto_consolidate().await?;
38
39    println!("\nšŸ“Š Post-consolidation statistics:");
40    let stats = memory.stats().await;
41    println!("  Instant: {}", stats.individual.instant);
42    println!("  Session: {}", stats.individual.session);
43    println!("  Episodic: {}", stats.individual.episodic);
44    println!("  Semantic: {}", stats.individual.semantic);
45
46    println!("\nāœ… High-importance memories were consolidated to higher tiers!");
47
48    Ok(())
49}