ilmari 0.9.6

Minimal tmux popup radar for coding agents
//! Planned Aider adapter scaffold (disabled in the v1 registry).
//!
//! Detection stubs match `aider` so enablement is a registry flip once classification is ready.
//! Tracking issue: https://github.com/bnomei/ilmari/issues/12
//! Repository: https://github.com/Aider-AI/aider
//! Docs: https://aider.chat/docs/install.html

use std::sync::Arc;

use crate::model::{AgentDetail, AgentKind, SessionRecord, SessionStatus};
use crate::tmux::PaneSnapshot;

use super::super::{classify_supported_session, command_matches, AgentAdapter};

/// Planned Aider adapter scaffold; filtered out of `AdapterRegistry::v1`.
pub(in crate::agents) struct AiderAdapter;

impl AgentAdapter for AiderAdapter {
    fn kind(&self) -> AgentKind {
        AgentKind::Aider
    }

    fn detect(&self, pane: &PaneSnapshot) -> bool {
        command_matches(&pane.pane_current_command, "aider")
    }

    fn classify(
        &self,
        pane: &PaneSnapshot,
        output_tail: Option<&str>,
        output_fingerprint: Option<u64>,
        previous: Option<&SessionRecord>,
    ) -> SessionStatus {
        classify_supported_session(self, pane, output_tail, output_fingerprint, previous)
    }

    fn extract_detail(
        &self,
        _output_tail: Option<&str>,
        _previous: Option<&SessionRecord>,
    ) -> Option<Arc<AgentDetail>> {
        None
    }

    fn extract_output_excerpt(
        &self,
        _output_tail: Option<&str>,
        _previous: Option<&SessionRecord>,
    ) -> Option<Arc<str>> {
        None
    }
}