{
  "name": "apply_patch",
  "title": "应用代码补丁",
  "description": "将 unified diff 格式的补丁应用到目标文件，支持 dry_run 预览模式。触发关键词：打补丁、应用补丁、apply patch、应用代码补丁",
  "category": "开发工具",
  "group": "develop",
  "type": "function",
  "main": "./index.js",
  "params": [
    {
      "name": "file",
      "description": "目标文件路径，必须使用绝对路径",
      "type": "string",
      "required": true
    },
    {
      "name": "patch",
      "description": "unified diff 格式的补丁文本，包含 @@ -start,count +start,count @@ 格式的 hunk 头和 +/- 标记的行。可以从 diff_check 工具的输出获取。",
      "type": "string",
      "required": true
    },
    {
      "name": "dry_run",
      "description": "预览模式，设为 true 时仅显示变更预览而不实际写入文件",
      "type": "boolean",
      "default": false
    },
    {
      "name": "encoding",
      "description": "文件编码，默认 utf-8",
      "type": "string",
      "default": "utf-8"
    }
  ],
  "returns": [
    {
      "name": "code",
      "type": "number",
      "description": "返回代码，0表示成功",
      "default": 0
    },
    {
      "name": "msg",
      "type": "string",
      "description": "返回消息，包含应用统计"
    },
    {
      "name": "total_hunks",
      "type": "number",
      "description": "补丁中的总 hunk 数"
    },
    {
      "name": "applied",
      "type": "number",
      "description": "成功应用的 hunk 数"
    },
    {
      "name": "failed",
      "type": "number",
      "description": "失败的 hunk 数"
    },
    {
      "name": "added_lines",
      "type": "number",
      "description": "新增行数"
    },
    {
      "name": "removed_lines",
      "type": "number",
      "description": "删除行数"
    },
    {
      "name": "file",
      "type": "string",
      "description": "目标文件路径"
    },
    {
      "name": "preview",
      "type": "string",
      "description": "dry_run 模式下返回的变更预览文本"
    }
  ]
}
