{
  "name": "edit_file",
  "title": "文件编辑",
  "description": "编辑文件内容，支持按文本搜索自动定位或按字符/字节位置精确编辑。文本模式（默认）推荐用 old_str 自动定位替换，也可用 start/end 按字符位置操作；二进制模式（encoding=binary）通过 start/end 按字节位置操作。适用于对已存在的文件进行局部精确修改。如需按行号操作文本文件，推荐使用 write_text；如需整体覆盖或新建文件，推荐使用 write_file。",
  "category": "文件操作",
  "group": "file",
  "type": "function",
  "main": "./index.js",
  "params": [
    {
      "name": "file",
      "description": "要编辑的文件路径，必须使用绝对路径",
      "type": "string",
      "required": true
    },
    {
      "name": "encoding",
      "description": "文件编码。传binary按二进制（字节）处理；传utf-8/ascii时按文本（字符）处理",
      "type": "string",
      "enum": ["utf-8", "ascii", "binary"],
      "required": true
    },
    {
      "name": "old_str",
      "description": "【文本模式推荐】搜索文本，工具自动在文件中查找并替换，无需手动计算字符位置。不传时使用start/end定位",
      "type": "string",
      "required": false
    },
    {
      "name": "start",
      "description": "覆盖的起始位置（从0开始）。文本模式为字符位置，二进制模式为字节位置。传了old_str时可不传；不传old_str时必传",
      "type": "number",
      "required": false
    },
    {
      "name": "end",
      "description": "覆盖的结束位置（不包含该位置）。等于start时表示在指定位置插入内容。传了old_str时可不传；不传old_str时必传",
      "type": "number",
      "required": false
    },
    {
      "name": "content",
      "description": "要写入的新内容。支持转义序列：\\n（换行）、\\r（回车）、\\t（制表符）",
      "type": "string",
      "required": true
    }
  ],
  "returns": [
    {
      "name": "code",
      "type": "number",
      "description": "编辑状态码，0表示成功"
    },
    {
      "name": "msg",
      "type": "string",
      "description": "编辑状态信息"
    },
    {
      "name": "file",
      "type": "string",
      "description": "编辑的文件路径"
    },
    {
      "name": "bytes",
      "type": "number",
      "description": "写入后的文件字节数"
    },
    {
      "name": "chars",
      "type": "number",
      "description": "写入后的文件总字符数/字节数（二进制模式与bytes相同）"
    },
    {
      "name": "next_start",
      "type": "number",
      "description": "下次编辑的推荐起始位置。连续编辑时直接使用此值作为下一次的start，无需手动计算偏移"
    }
  ]
}
