a3s 0.10.6

a3s — A3S coding agent CLI; `a3s code` launches the interactive TUI
Documentation
use std::sync::Arc;

use a3s_code_core::memory::{MemoryObservation, MemoryObserver};

use super::WorkspaceEvolution;

#[derive(Clone)]
pub(crate) struct EvolutionMemoryObserver {
    evolution: WorkspaceEvolution,
}

impl EvolutionMemoryObserver {
    pub(crate) fn new(evolution: WorkspaceEvolution) -> Arc<Self> {
        Arc::new(Self { evolution })
    }
}

#[async_trait::async_trait]
impl MemoryObserver for EvolutionMemoryObserver {
    async fn on_memory_stored(&self, observation: MemoryObservation) -> anyhow::Result<()> {
        self.evolution.observe(observation).await
    }
}