ai-agent 0.13.4

Idiomatic agent sdk inspired by the claude code source leak
Documentation
pub async fn get_language_name(file_path: &str) -> String {
    if let Some(ext) = std::path::Path::new(file_path).extension() {
        let ext_str = ext.to_string_lossy().to_lowercase();
        match ext_str.as_str() {
            "js" => "JavaScript",
            "ts" => "TypeScript",
            "rs" => "Rust",
            "py" => "Python",
            "go" => "Go",
            "java" => "Java",
            "c" | "h" => "C",
            "cpp" | "cc" | "cxx" => "C++",
            "rb" => "Ruby",
            "php" => "PHP",
            "swift" => "Swift",
            "kt" => "Kotlin",
            "scala" => "Scala",
            "hs" => "Haskell",
            "ml" => "OCaml",
            "cs" => "C#",
            "fs" => "F#",
            "vb" => "Visual Basic",
            "html" | "htm" => "HTML",
            "css" => "CSS",
            "scss" | "sass" => "SCSS",
            "less" => "Less",
            "json" => "JSON",
            "yaml" | "yml" => "YAML",
            "toml" => "TOML",
            "xml" => "XML",
            "md" | "markdown" => "Markdown",
            "sql" => "SQL",
            "sh" | "bash" => "Bash",
            "zsh" => "Zsh",
            "fish" => "Fish",
            "ps1" => "PowerShell",
            "dockerfile" => "Dockerfile",
            "makefile" => "Makefile",
            _ => "unknown",
        }
        .to_string()
    } else {
        "unknown".to_string()
    }
}