ainl-persona 0.1.6

Persona evolution engine over AINL graph memory (soft axes, metadata signals)
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//! Persona snapshot + fitness helpers (EMA targets live on `AxisState`).

use crate::axes::{AxisState, PersonaAxis};
use chrono::{DateTime, Utc};
use std::collections::HashMap;

#[derive(Debug, Clone)]
pub struct PersonaSnapshot {
    pub agent_id: String,
    pub axes: HashMap<PersonaAxis, AxisState>,
    pub captured_at: DateTime<Utc>,
}

impl PersonaSnapshot {
    pub fn score(&self, axis: PersonaAxis) -> f32 {
        self.axes.get(&axis).map(|s| s.score).unwrap_or(0.5)
    }
}