diff --git a/src/mind/unconscious.rs b/src/mind/unconscious.rs index 8b4af40..5678b19 100644 --- a/src/mind/unconscious.rs +++ b/src/mind/unconscious.rs @@ -77,20 +77,19 @@ impl Unconscious { // Scan all .agent files, exclude subconscious-* and surface-observe let mut agents: Vec = Vec::new(); - let all_tools = tools::memory::memory_tools().to_vec(); + let base_tools = tools::memory::memory_tools().to_vec(); + let extra_tools = tools::memory::journal_tools().to_vec(); for def in defs::load_defs() { if def.agent.starts_with("subconscious-") { continue; } if def.agent == "surface-observe" { continue; } let enabled = enabled_map.get(&def.agent).copied() .unwrap_or(false); - let effective_tools: Vec = if def.tools.is_empty() { - all_tools.clone() - } else { - all_tools.iter() - .filter(|t| def.tools.iter().any(|w| w == t.name)) - .cloned() - .collect() - }; + let mut effective_tools = base_tools.clone(); + for name in &def.tools { + if let Some(t) = extra_tools.iter().find(|t| t.name == name) { + effective_tools.push(t.clone()); + } + } let steps: Vec = def.steps.iter().map(|s| AutoStep { prompt: s.prompt.clone(), phase: s.phase.clone(), diff --git a/src/subconscious/agents/digest.agent b/src/subconscious/agents/digest.agent index a8e47d3..c342d25 100644 --- a/src/subconscious/agents/digest.agent +++ b/src/subconscious/agents/digest.agent @@ -1,4 +1,4 @@ -{"agent": "digest", "schedule": "daily"} +{"agent": "digest", "schedule": "daily", "tools": ["journal_tail", "journal_new", "journal_update"]} # Digest Agent — Episodic Consolidation