magi-code 0.96.1

Repository-aware CLI coding agent for terminal work
Documentation
use crate::tui::state;

use crate::primary_agents::sanitized_primary_agent_diagnostic_text;

pub(crate) fn record_primary_agent_startup_diagnostics(
    state: &mut state::MissionControlState,
    diagnostics: &[crate::primary_agents::PrimaryAgentProfileDiagnostic],
) {
    if diagnostics.is_empty() {
        return;
    }
    let summary = format!(
        "{} primary agent profile diagnostic(s); invalid profiles skipped",
        diagnostics.len()
    );
    state.status = summary.clone();
    state.record_error_transcript(&summary);
    for diagnostic in diagnostics.iter().take(5) {
        state.record_error_transcript(&format!(
            "primary agent profile skipped: profile={} reason={}",
            sanitized_primary_agent_diagnostic_label(diagnostic),
            sanitized_primary_agent_diagnostic_text(&diagnostic.message)
        ));
    }
    if diagnostics.len() > 5 {
        state.record_error_transcript(&format!(
            "{} additional primary agent profile diagnostic(s) omitted",
            diagnostics.len() - 5
        ));
    }
}

fn sanitized_primary_agent_diagnostic_label(
    diagnostic: &crate::primary_agents::PrimaryAgentProfileDiagnostic,
) -> String {
    let label = diagnostic
        .path
        .as_ref()
        .and_then(|path| path.file_name())
        .and_then(|name| name.to_str())
        .or(diagnostic.id.as_deref())
        .unwrap_or("<unknown>");
    sanitized_primary_agent_diagnostic_text(label)
}