magi-code 0.96.1

Repository-aware CLI coding agent for terminal work
Documentation
use crate::{
    providers::ToolCall,
    tools::{ToolCapability, ToolResult, contract::metadata_key as meta},
};

/// Recover diagnostics for failed searches without changing their stored output.
pub(super) fn failed_search_diagnostic_output(
    call: &ToolCall,
    result: &ToolResult,
) -> Option<String> {
    if result.success
        || !result.content.trim().is_empty()
        || ToolCapability::from_dispatch_name(&call.name) != Some(ToolCapability::Grep)
    {
        return None;
    }
    [meta::STDERR, meta::STDOUT]
        .into_iter()
        .filter_map(|key| result.metadata.get(key).and_then(serde_json::Value::as_str))
        .find(|text| !text.trim().is_empty())
        .map(str::to_string)
}