{
  "name": "diff_check",
  "title": "差异对比工具",
  "description": "基于LCS算法的差异对比工具，支持文本/文本、文件/文件、文件/文本三种对比模式，输出unified diff格式的差异结果。触发关键词：对比、diff、差异、输出对比、期望输出、文本对比、文件对比、差异分析",
  "category": "开发工具",
  "group": "develop",
  "type": "function",
  "main": "./index.js",
  "params": [
    {
      "name": "textA",
      "description": "对比文本A（与textB配对使用，或与fileB配对使用）",
      "type": "string"
    },
    {
      "name": "textB",
      "description": "对比文本B（与textA配对使用，或与fileA配对使用）",
      "type": "string"
    },
    {
      "name": "fileA",
      "description": "对比文件A的路径（与fileB配对使用，或与textB配对使用）",
      "type": "string"
    },
    {
      "name": "fileB",
      "description": "对比文件B的路径（与fileA配对使用，或与textA配对使用）",
      "type": "string"
    },
    {
      "name": "encoding",
      "description": "文件读取编码，默认utf-8",
      "type": "string",
      "default": "utf-8"
    },
    {
      "name": "contextLines",
      "description": "上下文行数，控制差异块上下保留的相同行数，默认3",
      "type": "number",
      "default": 3
    }
  ],
  "returns": [
    {
      "name": "code",
      "type": "number",
      "description": "返回代码，0表示成功",
      "default": 0,
      "required": true
    },
    {
      "name": "msg",
      "type": "string",
      "description": "返回消息，存在差异时描述差异概要",
      "default": "",
      "required": true
    },
    {
      "name": "hasDiff",
      "type": "boolean",
      "description": "是否存在差异",
      "required": true
    },
    {
      "name": "totalLinesA",
      "type": "number",
      "description": "文本A总行数"
    },
    {
      "name": "totalLinesB",
      "type": "number",
      "description": "文本B总行数"
    },
    {
      "name": "equalLines",
      "type": "number",
      "description": "相同行数"
    },
    {
      "name": "addedLines",
      "type": "number",
      "description": "新增行数"
    },
    {
      "name": "removedLines",
      "type": "number",
      "description": "删除行数"
    },
    {
      "name": "changedLines",
      "type": "number",
      "description": "变动行总数（addedLines + removedLines）"
    },
    {
      "name": "hunkCount",
      "type": "number",
      "description": "差异块数量"
    },
    {
      "name": "contextLines",
      "type": "number",
      "description": "实际使用的上下文行数"
    },
    {
      "name": "hunks",
      "type": "array",
      "description": "差异块头部信息（unified diff格式）",
      "items": {
        "type": "object",
        "properties": {
          "header": { "type": "string", "description": "unified diff header，如 @@ -1,5 +2,6 @@" },
          "oldStart": { "type": "number", "description": "原文起始行号" },
          "oldCount": { "type": "number", "description": "原文行数" },
          "newStart": { "type": "number", "description": "新文起始行号" },
          "newCount": { "type": "number", "description": "新文行数" }
        }
      }
    },
    {
      "name": "diffLines",
      "type": "array",
      "description": "差异行详细列表",
      "items": {
        "type": "object",
        "properties": {
          "type": { "type": "string", "description": "差异类型：equal/modified/added/removed" },
          "lineNumberA": { "type": "number", "description": "文本A行号（added行为null）" },
          "lineNumberB": { "type": "number", "description": "文本B行号（removed行为null）" },
          "contentA": { "type": "string", "description": "文本A该行内容（added行为空）" },
          "contentB": { "type": "string", "description": "文本B该行内容（removed行为空）" }
        }
      }
    },
    {
      "name": "summary",
      "type": "object",
      "description": "差异统计摘要",
      "properties": {
        "equalLines": { "type": "number", "description": "相同行数" },
        "addedLines": { "type": "number", "description": "新增行数" },
        "removedLines": { "type": "number", "description": "删除行数" },
        "totalHunks": { "type": "number", "description": "差异块数量" },
        "description": { "type": "string", "description": "人类可读的差异描述" }
      }
    }
  ]
}
