#[derive(Debug, Clone)]
pub struct BeliefRevisionConfig {
pub similarity_threshold: f32,
}
#[derive(Debug, Clone)]
pub struct NoteLinkingConfig {
pub enabled: bool,
pub similarity_threshold: f32,
pub top_k: usize,
pub timeout_secs: u64,
}
impl Default for NoteLinkingConfig {
fn default() -> Self {
Self {
enabled: false,
similarity_threshold: 0.85,
top_k: 10,
timeout_secs: 5,
}
}
}
#[derive(Debug, Clone)]
pub struct HebbianConsolidationConfig {
pub consolidation_interval_secs: u64,
pub consolidation_threshold: f64,
pub max_candidates_per_sweep: usize,
pub consolidation_cooldown_secs: u64,
pub consolidation_prompt_timeout_secs: u64,
pub consolidation_max_neighbors: usize,
}
impl Default for HebbianConsolidationConfig {
fn default() -> Self {
Self {
consolidation_interval_secs: 3600,
consolidation_threshold: 5.0,
max_candidates_per_sweep: 10,
consolidation_cooldown_secs: 86_400,
consolidation_prompt_timeout_secs: 30,
consolidation_max_neighbors: 20,
}
}
}
#[derive(Debug, Clone)]
pub struct ConsolidationConfig {
pub enabled: bool,
pub confidence_threshold: f32,
pub sweep_interval_secs: u64,
pub sweep_batch_size: usize,
pub similarity_threshold: f32,
}
#[derive(Debug, Clone)]
pub struct ForgettingConfig {
pub enabled: bool,
pub decay_rate: f32,
pub forgetting_floor: f32,
pub sweep_interval_secs: u64,
pub sweep_batch_size: usize,
pub replay_window_hours: u32,
pub replay_min_access_count: u32,
pub protect_recent_hours: u32,
pub protect_min_access_count: u32,
}
impl Default for ForgettingConfig {
fn default() -> Self {
Self {
enabled: false,
decay_rate: 0.1,
forgetting_floor: 0.05,
sweep_interval_secs: 7200,
sweep_batch_size: 500,
replay_window_hours: 24,
replay_min_access_count: 3,
protect_recent_hours: 24,
protect_min_access_count: 3,
}
}
}