crabmate 0.4.0

Rust AI agent: OpenAI-compatible chat/completions, function calling, HTTP serve, ops CLI
Documentation
[
ToolSpec {
            name: "shellcheck_check",
            description: "使用 ShellCheck 对 Shell/Bash 脚本做静态分析(只读)。可指定 paths(默认递归扫描工作区中 .sh/.bash 文件)、severity(error/warning/info/style)、shell(sh/bash/dash/ksh)。需本机安装 shellcheck。",
            category: ToolCategory::Development,
            parameters: tool_params::params_shellcheck_check,
            runner: runner_shellcheck_check,
            summary: ToolSummaryKind::Static("shellcheck"),
        },
        ToolSpec {
            name: "cppcheck_analyze",
            description: "使用 cppcheck 对 C/C++ 代码做静态分析(只读)。可指定 paths(默认 src)、enable(all/style/performance/portability 等)、std(如 c++17、c11)、platform。需本机安装 cppcheck。",
            category: ToolCategory::Development,
            parameters: tool_params::params_cppcheck_analyze,
            runner: runner_cppcheck_analyze,
            summary: ToolSummaryKind::Static("cppcheck"),
        },
        ToolSpec {
            name: "semgrep_scan",
            description: "使用 Semgrep 做多语言 SAST 安全扫描(只读)。可指定 config(规则集,默认 auto)、paths、severity、lang、json 输出。需本机安装 semgrep。",
            category: ToolCategory::Development,
            parameters: tool_params::params_semgrep_scan,
            runner: runner_semgrep_scan,
            summary: ToolSummaryKind::Static("semgrep scan"),
        },
        ToolSpec {
            name: "hadolint_check",
            description: "使用 Hadolint 对 Dockerfile 做 lint 检查(只读)。可指定 path(默认 Dockerfile)、format(tty/json/checkstyle 等)、ignore(忽略规则列表)。需本机安装 hadolint。",
            category: ToolCategory::Development,
            parameters: tool_params::params_hadolint_check,
            runner: runner_hadolint_check,
            summary: ToolSummaryKind::Static("hadolint"),
        },
        ToolSpec {
            name: "bandit_scan",
            description: "使用 Bandit 对 Python 代码做安全分析(只读)。递归扫描 Python 文件检查安全反模式。可指定 paths、severity、confidence、skip(跳过测试 ID)。需本机安装 bandit(pip install bandit)。",
            category: ToolCategory::Development,
            parameters: tool_params::params_bandit_scan,
            runner: runner_bandit_scan,
            summary: ToolSummaryKind::Static("bandit"),
        },
        ToolSpec {
            name: "lizard_complexity",
            description: "使用 lizard 分析代码圈复杂度(只读,多语言支持)。可指定 paths、threshold(复杂度阈值)、language(如 python,java,cpp)、sort、warnings_only、exclude。需本机安装 lizard(pip install lizard);若 PATH 中无 `lizard` 可执行文件,会回退尝试 `python3 -m lizard`。",
            category: ToolCategory::Development,
            parameters: tool_params::params_lizard_complexity,
            runner: runner_lizard_complexity,
            summary: ToolSummaryKind::Static("lizard complexity"),
        },
]