[
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),
},
]