crabmate 0.4.0

Rust AI agent: OpenAI-compatible chat/completions, function calling, HTTP serve, ops CLI
Documentation
[
ToolSpec {
            name: "ruff_check",
            description: "在工作区运行 `ruff check`(需已安装 ruff)。默认检查 `.`;可通过 paths 指定相对路径。无 pyproject.toml/setup/requirements 等标记时跳过。",
            category: ToolCategory::Development,
            parameters: tool_params::params_ruff_check,
            runner: runner_ruff_check,
            summary: ToolSummaryKind::Static("ruff check"),
        },
        ToolSpec {
            name: "pytest_run",
            description: "在工作区运行 `python3 -m pytest`(需已安装 pytest)。可选 test_path、keyword(-k)、markers(-m)、quiet、maxfail、nocapture。",
            category: ToolCategory::Development,
            parameters: tool_params::params_pytest_run,
            runner: runner_pytest_run,
            summary: ToolSummaryKind::Static("python3 -m pytest"),
        },
        ToolSpec {
            name: "mypy_check",
            description: "在工作区运行 `mypy`(需已安装 mypy)。默认检查 `.`;可选 paths 与 strict。无 Python 项目标记时跳过。",
            category: ToolCategory::Development,
            parameters: tool_params::params_mypy_check,
            runner: runner_mypy_check,
            summary: ToolSummaryKind::Static("mypy"),
        },
        ToolSpec {
            name: "python_install_editable",
            description: "在工作区根执行可编辑安装:`backend=uv` 时 `uv pip install -e .`,`backend=pip` 时 `python3 -m pip install -e .`。须存在 pyproject.toml 或 setup.py。",
            category: ToolCategory::Development,
            parameters: tool_params::params_python_install_editable,
            runner: runner_python_install_editable,
            summary: ToolSummaryKind::Dynamic(ts::summary_python_install_editable),
        },
        ToolSpec {
            name: "uv_sync",
            description: "在工作区根运行 `uv sync`(须存在 pyproject.toml)。可选 frozen(--frozen)、no_dev(--no-dev)、all_packages(--all-packages)。需本机已安装 uv。",
            category: ToolCategory::Development,
            parameters: tool_params::params_uv_sync,
            runner: runner_uv_sync,
            summary: ToolSummaryKind::Static("uv sync"),
        },
        ToolSpec {
            name: "uv_run",
            description: "在工作区根运行 `uv run`:`args` 为非空字符串数组(如 [\"pytest\",\"-q\"]),逐项作为子进程参数、不经 shell。须存在 pyproject.toml。",
            category: ToolCategory::Development,
            parameters: tool_params::params_uv_run,
            runner: runner_uv_run,
            summary: ToolSummaryKind::Dynamic(ts::summary_uv_run),
        },
        ToolSpec {
            name: "python_snippet_run",
            description: "在工作区根目录写入临时 .py 并执行(结束后删除)。可 import 已安装的第三方包;默认 python3 + PYTHONPATH 含工作区根;可选 use_uv 用 uv 项目环境。等同任意代码执行,仅用于可信工作区。",
            category: ToolCategory::Development,
            parameters: tool_params::params_python_snippet_run,
            runner: runner_python_snippet_run,
            summary: ToolSummaryKind::Dynamic(ts::summary_python_snippet_run),
        },
]