crabmate 0.4.0

Rust AI agent: OpenAI-compatible chat/completions, function calling, HTTP serve, ops CLI
Documentation
[
ToolSpec {
            name: "delete_file",
            description: "删除工作区内的**单个文件**(受控写入,需 confirm=true)。不能用于删除目录(请用 delete_dir)。路径必须为相对路径。",
            category: ToolCategory::Development,
            parameters: tool_params::params_delete_file,
            runner: runner_delete_file,
            summary: ToolSummaryKind::Dynamic(ts::summary_delete_file),
        },
        ToolSpec {
            name: "delete_dir",
            description: "删除工作区内的目录(受控写入,需 confirm=true)。默认仅删除空目录;recursive=true 时递归删除含子目录和文件。不能删除工作区根目录。",
            category: ToolCategory::Development,
            parameters: tool_params::params_delete_dir,
            runner: runner_delete_dir,
            summary: ToolSummaryKind::Dynamic(ts::summary_delete_dir),
        },
        ToolSpec {
            name: "append_file",
            description: "在工作区内文件末尾追加内容。默认文件须已存在;create_if_missing=true 时不存在则创建。不覆盖已有内容。支持 dry_run=true 预览;默认 ensure_leading_newline=true,会在原文件非空且末尾无换行时先补一个换行,避免新内容接在旧末行后。`content` 可用 body/text/code 等别名。",
            category: ToolCategory::Development,
            parameters: tool_params::params_append_file,
            runner: runner_append_file,
            summary: ToolSummaryKind::Dynamic(ts::summary_append_file),
        },
        ToolSpec {
            name: "create_dir",
            description: "在工作区内创建目录。默认 parents=true(递归创建父目录,类似 mkdir -p)。目录已存在时不报错。",
            category: ToolCategory::Development,
            parameters: tool_params::params_create_dir,
            runner: runner_create_dir,
            summary: ToolSummaryKind::Dynamic(ts::summary_create_dir),
        },
        ToolSpec {
            name: "search_replace",
            description: "在工作区内**单个文件**中搜索并替换文本。支持字面量或正则表达式匹配。默认 dry_run=true 仅预览变更(显示行级替换对比);写盘需 dry_run=false + confirm=true。可限制最大替换次数。文件上限 4MiB。",
            category: ToolCategory::Development,
            parameters: tool_params::params_search_replace,
            runner: runner_search_replace,
            summary: ToolSummaryKind::Dynamic(ts::summary_search_replace),
        },
        ToolSpec {
            name: "chmod_file",
            description: "修改文件或目录权限(仅 Unix/Linux,受控写入需 confirm=true)。mode 为八进制数字(如 \"755\"\"644\")。",
            category: ToolCategory::Development,
            parameters: tool_params::params_chmod_file,
            runner: runner_chmod_file,
            summary: ToolSummaryKind::Dynamic(ts::summary_chmod_file),
        },
        ToolSpec {
            name: "symlink_info",
            description: "查看符号链接信息(只读):目标路径、是否悬空、是否指向工作区外。非符号链接则报告实际类型。",
            category: ToolCategory::Development,
            parameters: tool_params::params_symlink_info,
            runner: runner_symlink_info,
            summary: ToolSummaryKind::Dynamic(ts::summary_symlink_info),
        },
        // ── 新增纯内存 / 开发辅助工具 ────────────────────────
]