From 01328718853682038aab842850fc86ee66801383 Mon Sep 17 00:00:00 2001 From: yu <191972707@qq.com> Date: Mon, 2 Nov 2026 13:08:03 +0800 Subject: [PATCH] feat: deduplicate capability palette --- README.md | 9 +- docs/05-重复能力去留清单.md | 925 +++ electron-builder.config.mjs | 1 + resources/capability-duplicates.json | 5611 +++++++++++++++++ .../duplicate-capabilities.test.ts | 19 + src/main/catalog.ts | 46 +- src/renderer/src/panels/Palette.tsx | 1 + src/shared/types.ts | 2 + 8 files changed, 6603 insertions(+), 11 deletions(-) create mode 100644 docs/05-重复能力去留清单.md create mode 100644 resources/capability-duplicates.json create mode 100644 src/main/capabilities/duplicate-capabilities.test.ts diff --git a/README.md b/README.md index fbe18a2..8ef228f 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,16 @@ # RPA Studio -画布式 RPA 桌面端(Electron + React Flow)。把 894 项可编排能力拖到画布上,连线、配置、运行,生成可执行的 RPA 流程。 +画布式 RPA 桌面端(Electron + React Flow)。把 658 项主能力拖到画布上,连线、配置、运行,生成可执行的 RPA 流程。 > 当前状态:任务优先的编排工作台。默认进入“编排”任务列表,编辑任务后进入上下流向画布;组件库按分类树展示,设置为独立入口。 -> 当前可编排能力:**894 / 894**(不接入项已分离备份;网页自动化、桌面自动化、数据、文件、办公、HTTP 等可直接编排)。 +> 当前可编排能力:**658 / 894**(122 项不接入和 236 项重复旧版本已分离;网页、桌面、数据、文件、办公、HTTP 等主能力可直接编排)。 ## 已实现 ### 编排与运行 - Electron 31 + React 18 + TypeScript + React Flow 画布 -- 894 项可编排组件目录:搜索 / 11 组筛选;122 项专用能力已分离备份;任务列表实时刷新 +- 658 项主能力目录:搜索 / 11 组筛选;236 项重复旧版本自动隐藏,122 项专用能力已分离备份;任务列表实时刷新 - 拖拽到画布、节点卡片、连线、缩放/平移/MiniMap、框选、撤销/重做 - IF / 计次循环 / 遍历 / 条件循环 / 异常捕获 容器:可把组件拖入分支或循环体 - 属性面板:按字段类型渲染输入、必填、变量、失败策略(超时/重试/间隔/跳过/延时) @@ -84,10 +84,11 @@ docs 现状分析、实施方案 - [现状分析与可行性](docs/01-现状分析与可行性.md) - [实施方案(三天)](docs/02-实施方案.md) - [未接入能力名单](docs/04-未接入名单.md) +- [重复能力去留清单](docs/05-重复能力去留清单.md) ## 边界 -- 原始目录 1016 项中,894 项进入可编排目录;122 项专用/厂商硬件/门户通道已分离到 `resources/excluded.json` 与 [不接入备份](docs/04-未接入名单.md)。组件库不再显示接入状态。 +- 原始目录 1016 项中,894 项未被排除;其中 658 项主能力进入组件库,236 项重复旧版本在 `resources/capability-duplicates.json` 中标记兼容隐藏,122 项专用/厂商硬件/门户通道在 `resources/excluded.json` 中备份。组件库不显示接入状态。 - 内置本地演示站默认监听 `127.0.0.1:17863`;新用户首次启动会获得“本地网页订单演示”任务,可离线验证网页输入、点击和文本读取。 - 编排首页提供“安装示例任务”,可安装网页订单、文件文本、Excel读写、剪贴板、Word文档和异常分支 6 条固定示例;重复安装会更新同名示例,不会无限复制。 - Tauri/WebView2 类应用的 UIA 支持天然受限(Invoke 假成功、ValuePattern 读回掩码):桌面元素点击采用“前台化 + 真实坐标点击”策略,输入采用“ValuePattern 写入 + 剪贴板粘贴兜底”。 diff --git a/docs/05-重复能力去留清单.md b/docs/05-重复能力去留清单.md new file mode 100644 index 0000000..9956cc6 --- /dev/null +++ b/docs/05-重复能力去留清单.md @@ -0,0 +1,925 @@ +# 重复能力去留清单 + +> 快照时间:2026-11-02 · 保留 658 个主能力,隐藏 236 个重复旧版本 / 别名;执行器保留,旧流程不受影响。 + +## 去留规则 + +1. 先按能力名称聚合。 +2. 再按目标域拆分:CV、桌面 Ground、网页元素、Excel、数据库、邮件协议等不互相吞并。 +3. 同域内保留最新主版本;带 `Vn` 的优先级高于基础旧 ID,`New` 仅在没有更高版本时保留。 +4. 重复 ID 标记 `duplicateOf` 后从组件库隐藏,但运行器和旧流程兼容保留。 + +## 汇总 + +| 状态 | 数量 | +|---|---:| +| 保留主能力 | 658 | +| 隐藏重复能力 | 236 | +| 原可编排数量 | 894 | +| 清理后组件库数量 | 658 | + +## 保留主能力 + +| ID | 名称 | +|---|---| +| `Trigger.Manual` | 人工发起 | +| `Trigger.Schedule` | 定时触发 | +| `Trigger.FileArrival` | 文件到达触发 | +| `logic_control_if_else` | IF 条件分支 | +| `logic_control_var` | 设置变量 | +| `Basic_SetVariable_V1` | 设置变量 | +| `logic_control_count_for` | 计次循环 | +| `logic_control_while` | 条件循环 | +| `infinite_loop` | 无限循环 | +| `logic_control_next_for` | 继续下次循环 | +| `logic_control_break_for` | 跳出循环 | +| `logic_control_try_catch` | 异常捕获 | +| `logic_control_stop` | 退出流程 | +| `logic_control_stop_return` | 返回并退出流程 | +| `child_modules_v1` | 调用子流程 | +| `concurrent_child_process_v1` | 并发调用子流程 | +| `logic_control_array_for_v3` | 遍历列表 | +| `logic_control_dictionary_for_v1` | 遍历字典 | +| `Element_exception_monitor_v2` | 异常监控 | +| `logic_control_if_ai_vision` | 判断屏幕图像(AI) | +| `App_Run` | 启动应用程序 | +| `App_GetPid` | 获取一个匹配PID | +| `App_GetPids` | 获取全部匹配PID | +| `App_KillV1` | 关闭应用程序 | +| `Array_Reshape2Dim` | 转化数组维度 | +| `Basic_IsDictionary` | 判断数据是否为字典 | +| `Basic_StringToNum` | 将文本转换为数字 | +| `Basic_Delay_V2` | 等待 | +| `Basic_ConvertInt` | 数值转为整数类型 | +| `Basic_RandomInt` | 生成随机数 | +| `Basic_IsNumber` | 判断数据是否为数值 | +| `Basic_ConvertBool` | 数据转为布尔类型 | +| `Basic_Type` | 获取数据类型 | +| `Basic_Dodecryption` | 设置密文变量 | +| `Basic_IsNull` | 判断数据是否为空 | +| `Basic_DebugOutput` | 调试输出 | +| `Basic_BusinessOrderCount` | 业务办理计数 | +| `Basic_ConvertNumber` | 数据转为数值类型 | +| `Basic_GetProcessInfo` | 获取流程信息 | +| `Basic_ConvertString` | 将数字转换为文本 | +| `Basic_Delay` | 流程延迟执行 | +| `Basic_IsArray` | 判断数据是否为数组 | +| `Basic_Clone` | 复制数据 | +| `Basic_JudgeDataType` | 判断数据类型 | +| `Basic_DataTypeConversion` | 转换数据类型 | +| `Bivartable_CreateDfV1` | 创建数据表格 | +| `Bivartable_GetMaxValue` | 获取最大值 | +| `Bivartable_DelDfColRow` | 删除行/列 | +| `Bivartable_ReadDfData_V1` | 读取数据 | +| `Bivartable_GetMinValue` | 获取最小值 | +| `Bivartable_HandleDfMissValue` | 缺失值处理 | +| `Bivartable_ColumnOperationDf` | 两列运算 | +| `Bivartable_SortDf` | 排序数据表格 | +| `Bivartable_ReadTable` | 读取数据表内容 | +| `Bivartable_DoCreate` | 创建二维表 | +| `Bivartable_WriteDfData` | 写入数据 | +| `Bivartable_FilterDf` | 筛选数据表格 | +| `Bivartable_SummaryCalculationDf` | 按列汇总计算 | +| `Bivartable_DoSort` | 排序 | +| `Bivartable_DoFilter` | 表格过滤 | +| `Bivartable_InsertDfData` | 插入数据 | +| `Bivartable_ReadDfIndexColumns` | 读取行名/列名 | +| `Bivartable_ReadDfShape` | 读取行数/列数 | +| `Bivartable_DfWriteToFile` | 写入到文件 | +| `Bivartable_DoSave` | 保存二维表至Excel | +| `Bivartable_PivotDf` | 生成数据透视表 | +| `Bivartable_GetSumValue` | 获取统计总和 | +| `Bivartable_GetAvgValue` | 获取平均值 | +| `Bivartable_SpliceColData` | 拼接两列数据 | +| `Bivartable_Dtype` | 列数据类型转换 | +| `Bivartable_ModifyDfName` | 修改行名/列名 | +| `Bivartable_ModifyColName` | 修改列名 | +| `Bivartable_DeleteDuplicateRow` | 删除重复行 | +| `Bivartable_MergeDf` | 合并数据表格 | +| `Bivartable_DoOpenExcel` | 基于Excel创建二维表 | +| `Bivartable_DoMerge` | 合并二维表 | +| `Bivartable_WriteTable` | 数据表写入内容 | +| `Bivartable_DoJoint` | 拼接列 | +| `Bivartable_DoCal` | 列计算 | +| `Clipboard_SetImage` | 设置剪切板图片 | +| `Clipboard_SetTextV1` | 将文本添加到剪切板 | +| `Clipboard_GetText` | 取剪切板文本 | +| `Clipboard_SaveImageV1` | 获取剪切板文件 | +| `Clipboard_GetTextV1` | 获取剪切板文本 | +| `Clipboard_ClearClipboard` | 清空剪切板 | +| `Clipboard_SetImageV1` | 将文件添加到剪切板 | +| `Clipboard_SetText` | 设置剪切板文本 | +| `Clipboard_SaveImage` | 取剪切板图片 | +| `Collection_Create` | 创建集合 | +| `Collection_HasItem` | 判断集合元素存在 | +| `Collection_Count` | 取集合大小 | +| `Collection_Remove` | 删除集合元素 | +| `Collection_Add` | 添加集合元素 | +| `CSV_ReadNew` | 读取内容 | +| `CSV_WriteNew` | 写入内容 | +| `CustomConfig_GetConfig` | 自定义配置 | +| `CV_GetText` | 获取文本 | +| `CV_SetText` | 文本输入 | +| `Element_SetValue_V1` | 文本输入 | +| `Element_SetValueGround` | 文本输入 | +| `CV_MouseHover` | 移动到元素上 | +| `CV_MouseClick` | 元素点击 | +| `Element_Click_V1` | 元素点击 | +| `Element_ClickGround` | 元素点击 | +| `Database_BatchSQLExecute` | 批量执行SQL语句 | +| `Database_DBConnect` | 连接数据库 | +| `Database_SingleSQLQuery` | 执行单SQL查询 | +| `Database_BatchInsertExecute` | SQL批量插入数据 | +| `Database_AllSQLQuery_V1` | 执行全SQL查询 | +| `Database_CloseDBConnect` | 关闭连接 | +| `Mail_RecvClose` | 关闭连接 | +| `Database_SQLExecute` | 执行SQL语句 | +| `Databook_WriteContent` | 写入内容至数据表 | +| `Databook_DeleteColumn` | 删除数据表格列 | +| `Databook_Export` | 导出数据表格 | +| `Databook_GetColumnInfo` | 获取列信息 | +| `Databook_ReadContent` | 读取数据表格内容 | +| `Databook_Clear` | 清空数据表格 | +| `Databook_SetColumnInfo` | 设置列描述 | +| `Databook_Import` | 导入数据表格 | +| `Databook_GetRowAndColCount` | 读取数据表格总行列数 | +| `Databook_DeleteRow` | 删除数据表格行 | +| `DataService_Correct` | 文本纠错 | +| `DataService_AgentCall` | 调用智能体 | +| `DataService_AIGenTxt` | AI生成文本 | +| `DataService_WorkingDay` | 判断是否工作日 | +| `DataService_Diff` | 文本比对 | +| `DataService_LargeModel` | 大模型 | +| `DataService_Review` | 文本审核 | +| `DataService_ChatBot` | chatbot对话机器人 | +| `DataService_KeyWord` | 关键词抽取 | +| `DataService_ZBrain` | 自定义AI模型 | +| `Dialog_SaveFile` | 保存文件对话框 | +| `Dialog_CsInputBox` | 输入对话框 | +| `Dialog_GetConfig` | 输入输出对话框 | +| `Dialog_GetConfigV7` | 人机交互表单 | +| `Dialog_Notice_V2` | 消息通知 | +| `Dialog_OpenFile` | 打开文件对话框 | +| `Dialog_GetConfigV8` | 自定义对话框 | +| `Dialog_OpenFiles` | 打开文件对话框(多选) | +| `Dialog_CsMsgBox` | 消息确认对话框 | +| `Dict_Create` | 创建字典 | +| `Dict_Delete` | 删除键值对 | +| `Dict_Items` | 获取字典所有键值 | +| `Dict_Values` | 获取字典所有值 | +| `Dict_Clear` | 清空字典 | +| `Dict_GetItem` | 获取字典值 | +| `Dict_Keys` | 获取字典所有键 | +| `Dict_Update` | 合并字典 | +| `Dict_SetItem` | 设置字典值 | +| `Element_SetValuePassword_V1` | 输入密码框 | +| `Element_Region2_v3` | 获取元素坐标 | +| `Element_RegionGround` | 获取元素坐标 | +| `Element_SelectOperation_v3` | 下拉框操作 | +| `Element_Sibling_V2` | 获取兄弟元素 | +| `Element_Children_V2` | 获取子元素 | +| `Element_ChildrenGround` | 获取子元素 | +| `Element_ElementAarray` | 获取相似元素数组 | +| `Element_Exists` | 元素判断 | +| `Element_ExistsGround` | 元素判断 | +| `Element_GetCheckGround` | 获取勾选框状态值 | +| `Element_GetCheck` | 获取勾选框状态值 | +| `Element_SetAttribute_v2` | 设置网页元素属性 | +| `Element_SetAttributeGround` | 设置网页元素属性 | +| `Element_WaitElement_v5` | 等待元素 | +| `Element_WaitElementGround` | 等待元素 | +| `Element_ScrollIntoView_v2` | 滚动页面 | +| `Element_ScrollIntoViewGround` | 滚动页面 | +| `Element_MouseTo_V4` | 鼠标移动到元素上 | +| `Element_MouseToGround` | 鼠标移动到元素上 | +| `Element_Click_V6` | 点击界面元素 | +| `Element_SetCheckGround` | 设置勾选框状态 | +| `Element_SetCheck` | 设置勾选框状态 | +| `Element_Parent_V2` | 获取父元素 | +| `Element_SetValue_V3` | 输入文本框 | +| `Element_StopAutoClosePopup` | 停止智能弹窗侦测 | +| `Element_GetButtonEnable_v4` | 判断元素是否可点击 | +| `Element_SetValue_V6` | 输入文本 | +| `Element_GetText_V5` | 获取界面元素文本 | +| `Element_GetValue` | 获取元素文本 | +| `Element_GetValueGround` | 获取元素文本 | +| `Element_SimilarElementList_V2` | 获取相似元素列表 | +| `Element_Shot_V2` | 元素截图 | +| `Element_ShotGround` | 元素截图 | +| `Element_CheckBoxOperation_v3` | 勾选框操作 | +| `Element_GetLineBarChartData` | 获取折线图/柱状图数据 | +| `Element_GetAttribute_v3` | 获取网页元素属性 | +| `Element_GetAttributeGround` | 获取网页元素属性 | +| `Element_GetSelect` | 获取下拉框选项值 | +| `Element_GetSelectGround` | 获取下拉框选项值 | +| `Element_SetValuePassword_V6` | 输入密码 | +| `Element_GetText_V1` | 获取区域文字 | +| `Element_GetElementNew` | 获取元素对象 | +| `Element_GetElementInfo_V1` | 获取元素信息 | +| `Element_ExistsV1` | 判断元素存在 | +| `Element_GetPieChartData` | 获取饼状图数据 | +| `Element_GetTableData` | 获取SAP表格数据 | +| `Element_StartAutoClosePopup` | 启动智能弹窗侦测 | +| `Element_SetSelectGround` | 设置下拉框选择项 | +| `Element_SetSelect` | 设置下拉框选择项 | +| `Element_GetHtml` | 获取网页元素源码 | +| `Element_GetButtonEnableGround` | 元素是否可点击 | +| `Element_FileUploader` | 上传文件 | +| `WebBrowser_Upload` | 上传文件 | +| `Excel_WriteColumnNew` | 写入列 | +| `Excel_Cs_SetCellFormat_V3` | 设置单元格格式 | +| `Excel_Cs_ReadContentV4` | 读取Excel内容 | +| `Excel_Cs_AutoFillV2` | 自动填充 | +| `Excel_NewExcel` | 新建excel | +| `Excel_Cs_CopyV2` | 复制Sheet | +| `Excel_WriteRangeNew` | 写入区域 | +| `Excel_Cs_DeleteColumn` | 删除列 | +| `Excel_Cs_OpenV4` | 打开Excel | +| `Excel_PasteRange` | 粘贴区域 | +| `Excel_OpenExcelNew` | 打开excel | +| `Excel_CopyRange` | 复制区域 | +| `Excel_Cs_ClearRangeV4` | 清除区域 | +| `Excel_Cs_InsertColumnV3` | 插入列 | +| `Excel_Cs_ReadRowCount` | 读取行数 | +| `Excel_Cs_ReadColumnCount` | 读取列数 | +| `Excel_Cs_Group` | 组合行列 | +| `Excel_ReadCellNew` | 读取单元格 | +| `Excel_WriteCellNew` | 写入单元格 | +| `Excel_Cs_SetRangeFontV2` | 设置区域字体颜色 | +| `Excel_Cs_DeletePictureV2` | 删除图片 | +| `Excel_Cs_NewV5` | 新建Excel | +| `Excel_GetColDataNew` | 读取列 | +| `Excel_GetSheetsName` | 获取sheet名 | +| `Excel_Cs_GetEmptyCell` | 获取第一个空白单元格 | +| `Excel_Cs_GetEditRange` | 获取已编辑区域 | +| `Excel_Cs_InsertRowV3` | 插入行 | +| `Excel_Cs_RefreshPivotTable` | 刷新Excel数据透视表 | +| `Excel_Cs_SetHeightV1` | 设置行高 | +| `Excel_Cs_Encrypt` | 加密Excel | +| `Excel_Cs_Move` | 移动Sheet | +| `Excel_Cs_DeleteDuplicates` | 删除重复 | +| `Excel_Cs_DeleteRangeV3` | 删除区域 | +| `Excel_Cs_ExcelFilter` | Excel数据筛选 | +| `Excel_Cs_GetPath` | 获取Excel路径 | +| `Excel_Cs_DeleteRow` | 删除行 | +| `Excel_Cs_Active` | 激活Sheet | +| `Excel_ReadRangeNew` | 读取区域 | +| `Excel_Cs_ConvertColumn` | 列名转换 | +| `Excel_Cs_InsertPictureV2` | 插入图片 | +| `Excel_Cs_Insert` | 插入Sheet | +| `Excel_Cs_Merge` | 合并Sheet | +| `Excel_Cs_ReadCellFormula` | 获取单元格公式 | +| `Excel_Save` | 保存excel | +| `Excel_Cs_InsertPivotView` | 新建透视图 | +| `Excel_Cs_Filter` | 数据筛选 | +| `Excel_SetCellFontColor` | 单元格字体颜色 | +| `Excel_Cs_CopyRangeV3` | 复制表格内容 | +| `Excel_Cs_SetWidthV1` | 设置列宽 | +| `Excel_SetRangeColor` | 区域颜色 | +| `Excel_Cs_Interop` | Excel动态调用 | +| `Excel_Cs_InsertPivotTable` | 新建Excel数据透视表 | +| `Excel_Cs_RunMacroV2` | 执行宏 | +| `Excel_Cs_FindV2` | Excel查找/替换 | +| `Excel_Cs_SaveAs` | 另存为Excel | +| `Excel_Loop` | excel内容循环 | +| `Excel_Cs_GetLastEmptyCell` | 获取尾部第一个空白单元格 | +| `Excel_WriteRowNew` | 写入行 | +| `Excel_GetRowDataNew` | 读取行 | +| `Excel_SetRangeFontColor` | 区域字体颜色 | +| `Excel_GetColumnId` | 获取Excel列标识 | +| `Excel_Cs_SetCellFont` | 设置单元格字体颜色 | +| `Excel_Cs_Delete` | 删除Sheet | +| `Excel_ActiveSheet` | 激活sheet | +| `Excel_Cs_Export` | 导出Excel为PDF | +| `Excel_Cs_MergeCellsV2` | 合并单元格 | +| `Excel_Cs_ShowTableStyle` | 设置Excel表格样式 | +| `Excel_Cs_CloseV2` | 关闭Excel | +| `Excel_Cs_SelectRangeV3` | 选中区域 | +| `Excel_Cs_ClearExcelFilter` | 清除Excel数据筛选 | +| `Excel_Close` | 关闭excel | +| `Excel_Cs_Rename` | 重命名Sheet | +| `Excel_Cs_SetCellBackground` | 设置单元格背景颜色 | +| `Excel_Cs_Save` | 保存Excel | +| `Excel_SetCellColor` | 单元格背景颜色 | +| `Excel_Cs_GetName` | 获取Sheet名 | +| `Excel_Cs_PastRangeV2` | 粘贴表格内容 | +| `Excel_Cs_ColumnSplitV2` | Excel分列 | +| `Excel_Cs_SortV1` | Excel数据排序 | +| `Excel_Cs_ExcelAddin` | 数据处理 | +| `Excel_Cs_ReadCellBackground` | 获取单元格背景色 | +| `Excel_RenameSheet` | 重命名sheet | +| `Excel_Cs_FilterPivotTable` | 筛选Excel数据透视表 | +| `Excel_SaveAs` | 另存excel | +| `Excel_Cs_Hide` | 隐藏/显示行列 | +| `Excel_Cs_SetSlicer` | Excel切片器 | +| `Excel_Cs_WriteContent` | 写入Excel内容 | +| `Excel_Cs_EnableExcelFilter` | 取消Excel数据筛选 | +| `Excel_Cs_SetRangeBackgroundV2` | 设置区域背景颜色 | +| `Excel_Cs_LoadV2` | 获取已打开Excel | +| `Excel_Cs_RefreshAll` | 刷新Excel数据 | +| `Excel_CopySheet` | 复制sheet | +| `Excel_CreateSheet` | 创建sheet | +| `Excel_ExportRangeAsPicture` | 导出区域为图片 | +| `Excel_Cs_Search` | 查找/替换数据 | +| `Excel_DeleteSheet` | 删除sheet | +| `ExceptionUtil_Throws` | 抛出异常 | +| `File_Rename` | 重命名文件 | +| `File_Delete` | 删除文件 | +| `File_DecompressFile` | 解压文件 | +| `File_GetFileList_V1` | 获取文件列表 | +| `File_File_Move` | 移动文件 | +| `File_MoveFolder` | 移动文件夹 | +| `File_Write_V1` | 写入文件 | +| `File_PathSize` | 取文件大小 | +| `File_MakeDir` | 创建文件夹 | +| `File_Copy_V1` | 复制文件/文件夹 | +| `File_GetFileInfo` | 获取文件信息 | +| `File_GetFolderList_V1` | 获取文件夹列表 | +| `File_ReadXml` | 读取xml文件 | +| `File_OpenFile` | 打开文件夹 | +| `File_Read` | 读取文件 | +| `File_Rename_V1` | 重命名文件/文件夹 | +| `File_CreateFile` | 新建文件 | +| `File_DeleteFile` | 删除文件/文件夹 | +| `File_PathSizeNew` | 获取文件大小 | +| `File_CreateFolder` | 生成上传路径 | +| `File_Copy` | 复制文件 | +| `File_CompressFile` | 压缩文件 | +| `File_FileExists` | 判断文件存在 | +| `File_PathExists` | 判断路径 | +| `File_Move` | 移动文件/文件夹 | +| `File_EmptyFolder` | 清空文件夹 | +| `File_WaitFile` | 等待文件 | +| `FileTypeConversion_Office2pdf` | OFFICE文档转PDF | +| `FileTypeConversion_Pdf2image2` | PDF转图片 | +| `FTP_Download` | 下载文件/文件夹(FTP) | +| `FTP_Rename` | 重命名文件/文件夹(FTP) | +| `FTP_Delete` | 删除文件/文件夹(FTP) | +| `FTP_Disconnect` | 断开FTP连接 | +| `FTP_Cwd` | 切换工作目录 | +| `FTP_GetFileList` | 获取文件/文件夹(FTP) | +| `FTP_CreateDir` | 创建文件夹(FTP) | +| `FTP_Exist` | 判断文件存在(FTP) | +| `FTP_Upload` | 上传文件/文件夹(FTP) | +| `FTP_Connect` | 建立FTP连接 | +| `GoogleTable_GetAllData` | 获取列信息(Google Sheets) | +| `GoogleTable_GetAllSheetsName` | 获取Sheet名(Google Sheets) | +| `GoogleTable_WriteToSheetRegionColumns` | 写入列(Google Sheets) | +| `GoogleTable_WriteToSheetRegionRows` | 写入行(Google Sheets) | +| `GoogleTable_WriteToSheetCell` | 写入单元格(Google Sheets) | +| `GoogleTable_WriteToSheetCellFormula` | 写入单元格公式(Google Sheets) | +| `GoogleTable_GetSheetRowCount` | 获取行数(Google Sheets) | +| `GoogleTable_DownloadSheets` | 导出Sheet(Google Sheets) | +| `GoogleTable_CopyPasteSheet` | 复制粘贴(Google Sheets) | +| `GoogleTable_GetColumnsByTableTitle` | 按表头读取列(Google Sheets) | +| `GoogleTable_ChangeSheet` | 激活Sheet(Google Sheets) | +| `GoogleTable_RenameSheet` | 重命名Sheet(Google Sheets) | +| `GoogleTable_WriteToSheetRegionregion` | 写入区域(Google Sheets) | +| `Http_Post_V3` | POST请求 | +| `Http_Get_V2` | GET请求 | +| `Http_Http_Request` | HTTP 请求 | +| `Image_Click_V2` | 点击图像 | +| `Image_Move_V2` | 鼠标移动到图像上 | +| `Image_Screenshot` | 屏幕截图 | +| `Image_Base64Decode` | 图片base64编码转二进制 | +| `Image_Find_V1` | 查找图像 | +| `Image_Base64Encode` | 图片转base64编码 | +| `Image_Wait_V1` | 等待图像 | +| `Image_Exists_V1` | 判断图像 | +| `Image_Location` | 图像位置 | +| `Image_Location_V1` | 获取图像位置 | +| `Image_CropImg` | 截取图像 | +| `Image_Click_V3` | 鼠标点击图像 | +| `Image_RelativePosition` | 对比图像相对位置 | +| `Image_Move_V1` | 移动到图像 | +| `Ini_DeleteKey` | 删除INI文件键 | +| `Ini_Write` | 写入INI文件键值 | +| `Ini_ListSection` | 枚举INI文件小节 | +| `Ini_DeleteSection` | 删除INI文件小节 | +| `Ini_ListKey` | 枚举INI文件键 | +| `Ini_Read` | 读取INI文件键值 | +| `JSON_Stringify` | 将JSON转换为文本 | +| `JSON_Parse` | 将文本转换为JSON | +| `Keyboard_PressNew` | 键盘模拟按键 | +| `Keyboard_DriveSend_V2` | 键盘驱动输入 | +| `Keyboard_Press` | 键盘按键 | +| `Keyboard_Send_V1` | 键盘输入 | +| `Keyboard_EnableManualOperation` | 开启模拟人工操作 | +| `Keyboard_DisableManualOperation` | 关闭模拟人工操作 | +| `List_DeleteList` | 删除列表项 | +| `List_GetIndex` | 获取列表项的位置 | +| `List_ListMerge` | 列表合并 | +| `List_ClearList` | 清空列表 | +| `List_ListLength` | 获取列表长度 | +| `List_ListSorted` | 列表排序 | +| `List_ListDuplication` | 列表去重 | +| `List_InsertList` | 新增列表项 | +| `List_ListIntersection` | 获取两列表的重复项 | +| `List_CreateList` | 创建列表 | +| `List_GetListItem` | 获取指定位置项的数据 | +| `List_SetListItem` | 修改指定位置项的数据 | +| `Log_Error` | 打印错误日志 | +| `Log_Info` | 打印普通日志 | +| `Mail_UnmarkSeen` | 标为未读 | +| `Mail_DoReplyMail_v1` | 回复邮件(Outlook) | +| `Mail_RecvConnect` | 连接邮箱 | +| `Mail_RecvMailGet` | 取第几封邮件 | +| `Mail_ExOperateMail` | 操作邮件 | +| `Mail_OperateMail` | 操作邮件 | +| `Mail_RecvGetList` | 邮件筛选 | +| `Mail_ReplyMail_v2` | 回复邮件 | +| `Mail_DoReplyMail` | 回复邮件 | +| `Mail_Send_V1` | 发送邮件 | +| `Mail_DoSendMail` | 发送邮件 | +| `Mail_ExSendMail` | 发送邮件 | +| `Mail_FindMail_v1` | 查找邮件 | +| `Mail_ExSearchMail` | 查找邮件 | +| `Mail_DoMoveMail` | 移动邮件 | +| `Mail_ExConnect` | 连接Exchange邮箱 | +| `Mail_RecvCount` | 取收件箱邮件数 | +| `Mail_DoGetMailMessage_v2` | 获取邮件(Outlook) | +| `Mail_DoGetMailMessage_v1` | 查找邮件(Outlook) | +| `Mail_FindMail_v2` | 获取邮件 | +| `Mail_DoGetMailMessage` | 查看邮件 | +| `Mail_MarkSeen` | 标为已读 | +| `Mail_DoMoveMail_v1` | 操作邮件(Outlook) | +| `Mail_DoSendMail_v1` | 发送邮件(Outlook) | +| `Math_Cos` | 余弦值 | +| `Math_Tan` | 正切值 | +| `Math_Scale` | 进制转换 | +| `Math_Round` | 四舍五入 | +| `Math_Pow` | x的y次幂 | +| `Math_Int` | 取整 | +| `Math_Sqrt` | 平方根 | +| `Math_Oct` | 转8进制 | +| `Math_Sin` | 正弦值 | +| `Math_Abs` | 绝对值 | +| `Math_Hex` | 转16进制 | +| `Math_Exp` | e的n次幂 | +| `Math_Sgn` | 取正负符号 | +| `MessageNotification_Feishu_Message` | 发送消息至飞书 | +| `MessageNotification_DingTalk_Message` | 发送消息至钉钉 | +| `MessageNotification_WXWork_Message` | 发送消息至企业微信 | +| `Mouse_ClickCombine_v4` | 鼠标点击 | +| `Mouse_DragToNew` | 鼠标拖拽 | +| `Mouse_RollTo` | 鼠标滚动 | +| `Mouse_MoveToV2` | 移动鼠标 | +| `NLP_BatchAnalyseProductReview` | 商品评论分析(批量) | +| `NLP_KeyWordsAnalysis` | 关键词 | +| `NLP_EmotionalAnalysis` | 情感分析 | +| `NLP_SplitText` | 实体抽取 | +| `NLP_AnalyseProductReview` | 商品评论分析 | +| `NLP_SemanticSimilarity` | 语义相似度 | +| `NLP_SplitWords` | 分词 | +| `NLP_PerspectiveAnalysis` | 观点分析 | +| `NLP_XunFei_NLPBaseServer` | 第三方NLP模型 | +| `NLP_XunFei_MachineTranslation` | 机器翻译 | +| `NLP_XunFei_FeelingAnalysis` | 第三方情感分析模型 | +| `NLP_XunFei_KeywordExtraction` | 关键字提取 | +| `OCR_MergeCardOCR` | 卡证文字识别 | +| `OCR_CalculationCode` | 算术验证码 | +| `OCR_IdCardV2` | OCR身份证 | +| `OCR_BusinessCardV2` | OCR名片 | +| `OCR_VehicleInvoiceV2` | OCR机动车发票 | +| `OCR_MergeOtherOCR` | 其他场景文字识别 | +| `OCR_BusinessLicenseV3` | OCR营业执照(自研) | +| `OCR_PassportV2` | OCR护照 | +| `OCR_MergeGeneralOCR` | 通用文字识别 | +| `OCR_KeyValueIdentification` | 识别键值对结构 | +| `OCR_AmountIdentification` | 识别价格金额 | +| `OCR_GeneralTextV2` | OCR高精度文本 | +| `OCR_VatInvoiceV2` | OCR增值税发票 | +| `OCR_DrivingLicenseV2` | OCR行驶证 | +| `OCR_AccountPageV2` | OCR户口页 | +| `OCR_PlateLicenseV2` | OCR车牌 | +| `OCR_BankCardV2` | OCR银行卡 | +| `OCR_BankCardV3` | OCR银行卡(自研) | +| `OCR_IdCardV3` | OCR身份证(自研) | +| `OCR_VatInvoiceV3` | OCR增值税发票(自研) | +| `OCR_MergePaperOCR` | 票据文字识别 | +| `OCR_DriverLicenseV2` | OCR驾驶证 | +| `OCR_RealEstateCertV2` | OCR不动产权证 | +| `OCR_TrainTicketV2` | OCR火车票 | +| `OCR_TaxiInvoiceV2` | OCR出租车发票 | +| `OCR_OfficialSealV2` | OCR公章 | +| `OCR_MergeCarOCR` | 汽车场景文字识别 | +| `OCR_MergeEducationOCR` | 教育场景文字识别 | +| `OCR_HouseCertV2` | OCR房产证 | +| `OCR_CommonEnglishNumbersCode` | 普通验证码 | +| `OCR_BusinessLicenseV2` | OCR营业执照 | +| `OCR_VinV2` | OCR车辆vin码 | +| `OcrOffline_GetOcrTextNew` | 图像OCR识别 | +| `OcrOffline_GetOcrTable` | 获取表格数据(OCR) | +| `OcrOffline_GetOcrTextPosition` | 图像OCR识别(含坐标) | +| `PDF_GetPdfInformation` | 获取 PDF 文档信息 | +| `PDF_SetPdfWaterMarkV1` | PDF 加水印 | +| `PDF_PdfEncryption` | 加密 PDF 文档 | +| `PDF_GetPdfImg` | 提取 PDF 图片 | +| `PDF_GetPdfPageNum` | 获取 PDF 总页数 | +| `PDF_ConcatPdfV1` | 合并 PDF 文档 | +| `PDF_GetPdfTable` | 读取 PDF 表格 | +| `PDF_PdfToImg` | PDF 转图片 | +| `PDF_CreateNewPdf` | 生成新的 PDF 文档 | +| `PDF_GetPdfText` | 读取 PDF 文本 | +| `Regex_Test` | 匹配判断 | +| `Regex_FindAll` | 全部查找 | +| `Regex_FindNew_1` | 文本内容提取(指定) | +| `Regex_FindStr` | 文本内容提取 | +| `Regex_FindNew` | 指定查找 | +| `Regex_FindAllNew` | 文本内容提取(全部) | +| `Regex_TestNew` | 判断文本匹配 | +| `Regex_FindStrV1` | 提取文本内容 | +| `Scenario_TextComparison` | 文档比对 | +| `ScreenControl_Screenlock` | 屏幕锁屏 | +| `ScreenControl_ScreenUnlock` | 唤醒屏幕(非登录解锁) | +| `StrUtil_InStr` | 查找 | +| `StrUtil_ListToString` | 列表聚合成文本 | +| `StrUtil_CharCode` | 将ASCII码转换为文本 | +| `StrUtil_CutOutStrV1` | 截取文本 | +| `StrUtil_CreateRandomStr` | 创建随机文本 | +| `StrUtil_SplitStr` | 分割文本为列表 | +| `StrUtil_Split` | 分割字符串 | +| `StrUtil_CaseChange` | 转换大小写 | +| `StrUtil_AddToStr` | 追加文本 | +| `StrUtil_Rtrim` | 裁剪右侧空格 | +| `StrUtil_DelTrim` | 去除文本两端空格 | +| `StrUtil_Trim` | 裁剪两侧空格 | +| `StrUtil_LowerCase` | 字母转小写 | +| `StrUtil_LookUpStr` | 查找文本 | +| `StrUtil_ReverseStr` | 反转文本 | +| `StrUtil_UpperCase` | 字母转大写 | +| `StrUtil_Mid` | 取中间内容 | +| `StrUtil_CharAsc` | 将文本转换为ASCII码 | +| `StrUtil_CompleteStr` | 补齐文本 | +| `StrUtil_Replace` | 替换文本 | +| `StrUtil_Left` | 取左侧内容 | +| `StrUtil_Ltrim` | 裁剪左侧空格 | +| `StrUtil_Len` | 获取文本长度 | +| `StrUtil_Right` | 取右侧内容 | +| `System_GetEnv` | 获取环境变量 | +| `System_ReadCredential` | 获取Windows凭据 | +| `System_GetTempPath` | 获取临时文件夹路径 | +| `System_GetHomePath` | 获取用户文件夹路径 | +| `System_GetSystemPath` | 获取系统文件夹路径 | +| `System_SetEnv` | 设置环境变量 | +| `System_GetInputMethodState` | 获取输入法状态 | +| `System_ConnectRemoteDesktop` | 连接远程桌面 | +| `System_AddCredential` | 添加Windows凭据 | +| `System_SetInputMethodState` | 设置输入法状态 | +| `System_CloseRemoteDesktop` | 关闭远程连接 | +| `System_ScreenSaverShowV1` | 开启屏保 | +| `System_ExecuteCommandV1` | 执行命令行 | +| `System_DeleteCredential` | 删除Windows凭据 | +| `System_ScreenSaverStop` | 关闭屏保 | +| `System_PlaySound` | 播放音频 | +| `Time_GetDateV2` | 获取日期时间 | +| `Time_CalDate` | 计算时长 | +| `Time_WeekDay` | 取星期 | +| `Time_Day` | 取第几天 | +| `Time_Date` | 取日期 | +| `Time_FormatNew` | 将时间戳转换为日期/时间 | +| `Time_Hour` | 取时 | +| `Time_DateOffset_V1` | 增加/减少时间 | +| `Time_GetDatetimeObj` | 获取日期时间信息 | +| `Time_Format` | 时间戳转时间 | +| `Time_DatetimeToTimestamp` | 时间转时间戳 | +| `Time_TimeStamp` | 取时间戳 | +| `Time_TimeTypeConversion_V1` | 转换日期时间格式 | +| `Time_DateToTimestamp` | 将日期/时间转换为时间戳 | +| `Time_Month` | 取月份 | +| `Time_Time` | 取时分秒 | +| `Time_Year` | 取年份 | +| `Time_TimeTypeConversion` | 日期时间格式转换 | +| `Time_Now` | 取时间 | +| `Time_Second` | 取秒 | +| `Time_Minute` | 取分 | +| `WebBrowser_Switch_V1` | 切换页面 | +| `WebBrowser_SetScrollPos_V1` | 设置滚动条位置 | +| `WebBrowser_GetTAB_V2` | 获取网页 Tab 对象 | +| `WebBrowser_SaveAs_V1` | 下载文件(点击按钮) | +| `WebBrowser_GetWeblistening` | 获取监听结果 | +| `WebBrowser_DataCollectionV5` | 数据采集 | +| `WebBrowser_RunJsInIeBySelector_v3` | 执行JS | +| `WebBrowser_RunJsInIeBySelectorGround` | 执行JS | +| `WebBrowser_CreateV3` | 打开网页 | +| `WebBrowser_Reload` | 刷新 | +| `WebBrowser_CloseWeb_V2` | 关闭网页 | +| `WebBrowser_Stop` | 停止网页加载 | +| `WebBrowser_GetDocument` | 获取网页源码 | +| `WebBrowser_GetCookie` | 获取Cookies(指定) | +| `WebBrowser_DownFile_V1` | 下载文件(指定链接) | +| `WebBrowser_DownloadFile_V1` | 下载文件 | +| `WebBrowser_GetCookieNew` | 获取完整Cookies | +| `WebBrowser_GetBrowserPicV1` | 浏览器截图 | +| `WebBrowser_GetTAB` | 获取Tab页 | +| `WebBrowser_Close_V1` | 关闭浏览器 | +| `WebBrowser_Maximize` | 最大化浏览器 | +| `WebBrowser_GoForward` | 前进 | +| `WebBrowser_SetCookies` | 设置Cookies | +| `WebBrowser_StartWeblistening` | 启动网页监听 | +| `WebBrowser_Wait` | 等待网页加载 | +| `WebBrowser_UploadDialog` | 处理上传对话框 | +| `WebBrowser_DataCrawler` | 爬取数据 | +| `WebBrowser_StopWeblistening` | 停止网页监听 | +| `WebBrowser_SetCookies_V1` | 设置Cookie | +| `WebBrowser_GetTitle` | 获取Title | +| `WebBrowser_GetScrollPos_V1` | 获取滚动条位置 | +| `WebBrowser_GoBack` | 后退 | +| `WebBrowser_GoUrl` | 跳转网页 | +| `WebBrowser_BatchDataCrawl` | 批量数据采集(beta) | +| `WebBrowser_GetUrl` | 获取URL | +| `WebBrowser_GetCookies` | 获取Cookies | +| `WebBrowser_Minimize` | 最小化浏览器 | +| `Window_SizeWindow_v1` | 调整窗口大小 | +| `Window_SetWindowState_v1` | 设置窗口状态 | +| `Window_GetWindowRect` | 获取窗口范围 | +| `Window_CloseWindow` | 关闭软件窗口 | +| `Window_GetActive` | 获取活动窗口 | +| `Window_ActiveWindow_v1` | 激活窗口 | +| `Window_WindowExists` | 判断窗口存在 | +| `Window_Get` | 获取窗口 | +| `Window_SetPos` | 设置窗口 | +| `Window_GetWindow_v1` | 获取窗口对象 | +| `Window_CloseWindow_v1` | 关闭窗口 | +| `Window_GetWindowMessage_v1` | 获取窗口信息 | +| `Window_MoveWindow_v1` | 移动窗口位置 | +| `Window_ActiveWindow` | 激活软件窗口 | +| `Window_GetScreenSize` | 获取屏幕尺寸 | +| `Window_SetWindowShow` | 设置窗口是否显示 | +| `Window_WindowList` | 获取窗口对象列表 | +| `Window_GetRect` | 窗口属性 | +| `Window_MaximumSize` | 窗口最大化 | +| `Window_WaitWindow` | 等待窗口 | +| `Word_ReadSelect` | 读取选中文本 | +| `Word_SaveAs` | Word另存为 | +| `Word_SetFontName` | 设置字体 | +| `Word_CutSelect` | 剪切 | +| `Word_ReadAll` | 读取Word文本 | +| `Word_InsertPicture` | 插入Word图片 | +| `Word_SetFontStyle` | 设置字体样式 | +| `Word_New` | 新建word | +| `Word_SetAlign` | 设置对齐方式 | +| `Word_Save` | 保存Word | +| `Word_ReadTable` | 读取Word表格 | +| `Word_New_V1` | 新建Word文档 | +| `Word_Open` | 打开Word文档 | +| `Word_SelectRow` | 选择行 | +| `Word_GetPath` | 获取Word路径 | +| `Word_DeleteSelect` | 删除 | +| `Word_SetPosition` | 设置光标位置 | +| `Word_Write` | 写入文字至Word | +| `Word_PositionToSelect` | 查找文本后设置光标位置 | +| `Word_Close` | 关闭Word | +| `Word_MovePosition` | 移动光标位置 | +| `Word_SetFontColor` | 设置字体颜色 | +| `Word_CopySelect` | 复制 | +| `Word_PasteSelect` | 粘贴 | +| `Word_Replace` | 替换 | +| `Word_WriteTable` | 插入Word表格 | +| `Word_Enter` | 回车 | +| `Word_SetFontSize` | 设置字体大小 | +| `Word_SelectAll` | 全选 | +| `Word_InsertPage` | 插入分页符 | + +## 隐藏重复能力 + +| 隐藏 ID | 保留主能力 | 名称 | +|---|---|---| +| `Basic_SetVariable` | `Basic_SetVariable_V1` | 设置变量 | +| `App_Kill` | `App_KillV1` | 关闭应用程序 | +| `Basic_Delay_V1` | `Basic_Delay_V2` | 等待 | +| `Basic_Rnd` | `Basic_RandomInt` | 生成随机数 | +| `Bivartable_CreateDf` | `Bivartable_CreateDfV1` | 创建数据表格 | +| `Bivartable_ReadDfData` | `Bivartable_ReadDfData_V1` | 读取数据 | +| `CSV_Read` | `CSV_ReadNew` | 读取内容 | +| `CSV_Write` | `CSV_WriteNew` | 写入内容 | +| `Element_SetValue` | `Element_SetValue_V1` | 文本输入 | +| `Element_Click` | `Element_Click_V1` | 元素点击 | +| `Database_AllSQLQuery` | `Database_AllSQLQuery_V1` | 执行全SQL查询 | +| `Dialog_InputBox` | `Dialog_CsInputBox` | 输入对话框 | +| `Dialog_GetConfigV5` | `Dialog_GetConfigV7` | 人机交互表单 | +| `Dialog_Notice_V1` | `Dialog_Notice_V2` | 消息通知 | +| `Dialog_Notice` | `Dialog_Notice_V2` | 消息通知 | +| `Dialog_GetConfigV6` | `Dialog_GetConfigV8` | 自定义对话框 | +| `Dialog_GetConfigV4` | `Dialog_GetConfigV8` | 自定义对话框 | +| `Dialog_GetConfigV3` | `Dialog_GetConfigV8` | 自定义对话框 | +| `Dialog_GetConfigV2` | `Dialog_GetConfigV8` | 自定义对话框 | +| `Dialog_GetConfigV1` | `Dialog_GetConfigV8` | 自定义对话框 | +| `Dialog_MsgBox` | `Dialog_CsMsgBox` | 消息确认对话框 | +| `Element_SetValuePassword` | `Element_SetValuePassword_V1` | 输入密码框 | +| `Element_Region2_v2` | `Element_Region2_v3` | 获取元素坐标 | +| `Element_Region2_v1` | `Element_Region2_v3` | 获取元素坐标 | +| `Element_Region` | `Element_Region2_v3` | 获取元素坐标 | +| `Element_Region2` | `Element_Region2_v3` | 获取元素坐标 | +| `Element_SelectOperation_v2` | `Element_SelectOperation_v3` | 下拉框操作 | +| `Element_SelectOperation_v1` | `Element_SelectOperation_v3` | 下拉框操作 | +| `Element_SelectOperation` | `Element_SelectOperation_v3` | 下拉框操作 | +| `Element_Sibling_V1` | `Element_Sibling_V2` | 获取兄弟元素 | +| `Element_Sibling` | `Element_Sibling_V2` | 获取兄弟元素 | +| `Element_Children_V1` | `Element_Children_V2` | 获取子元素 | +| `Element_ChildrenV1` | `Element_Children_V2` | 获取子元素 | +| `Element_Children` | `Element_Children_V2` | 获取子元素 | +| `Element_DesktopChildren` | `Element_ChildrenGround` | 获取子元素 | +| `Element_ElementCaptureSimilar` | `Element_ElementAarray` | 获取相似元素数组 | +| `Element_SetAttribute_v1` | `Element_SetAttribute_v2` | 设置网页元素属性 | +| `Element_SetAttribute` | `Element_SetAttribute_v2` | 设置网页元素属性 | +| `Element_WaitElement_v4` | `Element_WaitElement_v5` | 等待元素 | +| `Element_WaitElement_v3` | `Element_WaitElement_v5` | 等待元素 | +| `Element_WaitElement_v2` | `Element_WaitElement_v5` | 等待元素 | +| `Element_WaitElement_v1` | `Element_WaitElement_v5` | 等待元素 | +| `Element_WaitElement` | `Element_WaitElement_v5` | 等待元素 | +| `Element_ScrollIntoView_v1` | `Element_ScrollIntoView_v2` | 滚动页面 | +| `Element_ScrollIntoView` | `Element_ScrollIntoView_v2` | 滚动页面 | +| `Element_MouseTo_V3` | `Element_MouseTo_V4` | 鼠标移动到元素上 | +| `Element_MouseTo_V2` | `Element_MouseTo_V4` | 鼠标移动到元素上 | +| `Element_MouseTo_V1` | `Element_MouseTo_V4` | 鼠标移动到元素上 | +| `Element_MouseTo` | `Element_MouseTo_V4` | 鼠标移动到元素上 | +| `Element_Click_V5` | `Element_Click_V6` | 点击界面元素 | +| `Element_Click_V4` | `Element_Click_V6` | 点击界面元素 | +| `Element_Click_V3` | `Element_Click_V6` | 点击界面元素 | +| `Element_Click_V2` | `Element_Click_V6` | 点击界面元素 | +| `Element_Parent_V1` | `Element_Parent_V2` | 获取父元素 | +| `Element_Parent` | `Element_Parent_V2` | 获取父元素 | +| `Element_SetValue_V2` | `Element_SetValue_V3` | 输入文本框 | +| `Element_GetButtonEnable_v3` | `Element_GetButtonEnable_v4` | 判断元素是否可点击 | +| `Element_GetButtonEnable_v2` | `Element_GetButtonEnable_v4` | 判断元素是否可点击 | +| `Element_GetButtonEnable_v1` | `Element_GetButtonEnable_v4` | 判断元素是否可点击 | +| `Element_GetButtonEnable` | `Element_GetButtonEnable_v4` | 判断元素是否可点击 | +| `Element_SetValue_V5` | `Element_SetValue_V6` | 输入文本 | +| `Element_SetValue_V4` | `Element_SetValue_V6` | 输入文本 | +| `Element_GetText_V4` | `Element_GetText_V5` | 获取界面元素文本 | +| `Element_GetText_V3` | `Element_GetText_V5` | 获取界面元素文本 | +| `Element_GetText_V2` | `Element_GetText_V5` | 获取界面元素文本 | +| `Element_GetText` | `Element_GetText_V5` | 获取界面元素文本 | +| `Element_SimilarElementList_V1` | `Element_SimilarElementList_V2` | 获取相似元素列表 | +| `Element_SimilarElementList` | `Element_SimilarElementList_V2` | 获取相似元素列表 | +| `Element_Shot_V1` | `Element_Shot_V2` | 元素截图 | +| `Element_Shot` | `Element_Shot_V2` | 元素截图 | +| `Element_CheckBoxOperation_v2` | `Element_CheckBoxOperation_v3` | 勾选框操作 | +| `Element_CheckBoxOperation_v1` | `Element_CheckBoxOperation_v3` | 勾选框操作 | +| `Element_CheckBoxOperation` | `Element_CheckBoxOperation_v3` | 勾选框操作 | +| `Element_GetAttribute_v2` | `Element_GetAttribute_v3` | 获取网页元素属性 | +| `Element_GetAttribute_v1` | `Element_GetAttribute_v3` | 获取网页元素属性 | +| `Element_GetAttribute` | `Element_GetAttribute_v3` | 获取网页元素属性 | +| `Element_SetValuePassword_V5` | `Element_SetValuePassword_V6` | 输入密码 | +| `Element_GetElementV2` | `Element_GetElementNew` | 获取元素对象 | +| `Element_GetElementV1` | `Element_GetElementNew` | 获取元素对象 | +| `Element_GetElement` | `Element_GetElementNew` | 获取元素对象 | +| `Element_GetElementInfo` | `Element_GetElementInfo_V1` | 获取元素信息 | +| `Excel_Cs_WriteColumn` | `Excel_WriteColumnNew` | 写入列 | +| `Excel_WriteColumn` | `Excel_WriteColumnNew` | 写入列 | +| `Excel_Cs_SetCellFormat_V2` | `Excel_Cs_SetCellFormat_V3` | 设置单元格格式 | +| `Excel_Cs_SetCellFormat` | `Excel_Cs_SetCellFormat_V3` | 设置单元格格式 | +| `Excel_Cs_ReadContentV3` | `Excel_Cs_ReadContentV4` | 读取Excel内容 | +| `Excel_Cs_ReadContentV2` | `Excel_Cs_ReadContentV4` | 读取Excel内容 | +| `Excel_Cs_ReadContent` | `Excel_Cs_ReadContentV4` | 读取Excel内容 | +| `Excel_Cs_AutoFill` | `Excel_Cs_AutoFillV2` | 自动填充 | +| `Excel_Cs_Copy` | `Excel_Cs_CopyV2` | 复制Sheet | +| `Excel_Cs_WriteRangeV2` | `Excel_WriteRangeNew` | 写入区域 | +| `Excel_Cs_WriteRange` | `Excel_WriteRangeNew` | 写入区域 | +| `Excel_WriteRange` | `Excel_WriteRangeNew` | 写入区域 | +| `Excel_DeleteColumn` | `Excel_Cs_DeleteColumn` | 删除列 | +| `Excel_Cs_OpenV3` | `Excel_Cs_OpenV4` | 打开Excel | +| `Excel_Cs_OpenV2` | `Excel_Cs_OpenV4` | 打开Excel | +| `Excel_Cs_Open` | `Excel_Cs_OpenV4` | 打开Excel | +| `Excel_OpenExcel` | `Excel_OpenExcelNew` | 打开excel | +| `Excel_Cs_ClearRangeV3` | `Excel_Cs_ClearRangeV4` | 清除区域 | +| `Excel_Cs_ClearRangeV2` | `Excel_Cs_ClearRangeV4` | 清除区域 | +| `Excel_ClearRange` | `Excel_Cs_ClearRangeV4` | 清除区域 | +| `Excel_Cs_ClearRange` | `Excel_Cs_ClearRangeV4` | 清除区域 | +| `Excel_Cs_InsertColumnV2` | `Excel_Cs_InsertColumnV3` | 插入列 | +| `Excel_Cs_InsertColumn` | `Excel_Cs_InsertColumnV3` | 插入列 | +| `Excel_InsertColumn` | `Excel_Cs_InsertColumnV3` | 插入列 | +| `Excel_GetRowsCount` | `Excel_Cs_ReadRowCount` | 读取行数 | +| `Excel_GetColumnsCount` | `Excel_Cs_ReadColumnCount` | 读取列数 | +| `Excel_Cs_ReadCell` | `Excel_ReadCellNew` | 读取单元格 | +| `Excel_ReadCell` | `Excel_ReadCellNew` | 读取单元格 | +| `Excel_Cs_WriteCellV2` | `Excel_WriteCellNew` | 写入单元格 | +| `Excel_Cs_WriteCell` | `Excel_WriteCellNew` | 写入单元格 | +| `Excel_WriteCell` | `Excel_WriteCellNew` | 写入单元格 | +| `Excel_Cs_SetRangeFont` | `Excel_Cs_SetRangeFontV2` | 设置区域字体颜色 | +| `Excel_Cs_DeletePicture` | `Excel_Cs_DeletePictureV2` | 删除图片 | +| `Excel_DeleteImage` | `Excel_Cs_DeletePictureV2` | 删除图片 | +| `Excel_Cs_New` | `Excel_Cs_NewV5` | 新建Excel | +| `Excel_Cs_NewV4` | `Excel_Cs_NewV5` | 新建Excel | +| `Excel_Cs_NewV3` | `Excel_Cs_NewV5` | 新建Excel | +| `Excel_Cs_NewV2` | `Excel_Cs_NewV5` | 新建Excel | +| `Excel_Cs_ReadColumn` | `Excel_GetColDataNew` | 读取列 | +| `Excel_GetColData` | `Excel_GetColDataNew` | 读取列 | +| `Excel_Cs_InsertRowV2` | `Excel_Cs_InsertRowV3` | 插入行 | +| `Excel_Cs_InsertRow` | `Excel_Cs_InsertRowV3` | 插入行 | +| `Excel_InsertRow` | `Excel_Cs_InsertRowV3` | 插入行 | +| `Excel_Cs_SetHeight` | `Excel_Cs_SetHeightV1` | 设置行高 | +| `Excel_SetRowHeight` | `Excel_Cs_SetHeightV1` | 设置行高 | +| `Excel_Cs_DeleteRangeV2` | `Excel_Cs_DeleteRangeV3` | 删除区域 | +| `Excel_Cs_DeleteRange` | `Excel_Cs_DeleteRangeV3` | 删除区域 | +| `Excel_DeleteRange` | `Excel_Cs_DeleteRangeV3` | 删除区域 | +| `Excel_GetPath` | `Excel_Cs_GetPath` | 获取Excel路径 | +| `Excel_DeleteRow` | `Excel_Cs_DeleteRow` | 删除行 | +| `Excel_Cs_ReadRangeV2` | `Excel_ReadRangeNew` | 读取区域 | +| `Excel_Cs_ReadRange` | `Excel_ReadRangeNew` | 读取区域 | +| `Excel_ReadRange` | `Excel_ReadRangeNew` | 读取区域 | +| `Excel_Cs_InsertPicture` | `Excel_Cs_InsertPictureV2` | 插入图片 | +| `Excel_InsertImage` | `Excel_Cs_InsertPictureV2` | 插入图片 | +| `Excel_Cs_CopyRangeV2` | `Excel_Cs_CopyRangeV3` | 复制表格内容 | +| `Excel_Cs_CopyRange` | `Excel_Cs_CopyRangeV3` | 复制表格内容 | +| `Excel_Cs_SetWidth` | `Excel_Cs_SetWidthV1` | 设置列宽 | +| `Excel_SetColumnWidth` | `Excel_Cs_SetWidthV1` | 设置列宽 | +| `Excel_Cs_RunMacro` | `Excel_Cs_RunMacroV2` | 执行宏 | +| `Excel_ExecuteMacro` | `Excel_Cs_RunMacroV2` | 执行宏 | +| `Excel_Cs_Find` | `Excel_Cs_FindV2` | Excel查找/替换 | +| `Excel_Cs_WriteRowV2` | `Excel_WriteRowNew` | 写入行 | +| `Excel_Cs_WriteRow` | `Excel_WriteRowNew` | 写入行 | +| `Excel_WriteRow` | `Excel_WriteRowNew` | 写入行 | +| `Excel_Cs_ReadRow` | `Excel_GetRowDataNew` | 读取行 | +| `Excel_GetRowData` | `Excel_GetRowDataNew` | 读取行 | +| `Excel_Cs_MergeCells` | `Excel_Cs_MergeCellsV2` | 合并单元格 | +| `Excel_Cs_Close` | `Excel_Cs_CloseV2` | 关闭Excel | +| `Excel_Cs_SelectRangeV2` | `Excel_Cs_SelectRangeV3` | 选中区域 | +| `Excel_Cs_SelectRange` | `Excel_Cs_SelectRangeV3` | 选中区域 | +| `Excel_SelectRange` | `Excel_Cs_SelectRangeV3` | 选中区域 | +| `Excel_Cs_PastRange` | `Excel_Cs_PastRangeV2` | 粘贴表格内容 | +| `Excel_Cs_ColumnSplit` | `Excel_Cs_ColumnSplitV2` | Excel分列 | +| `Excel_Cs_Sort` | `Excel_Cs_SortV1` | Excel数据排序 | +| `Excel_Cs_SetRangeBackground` | `Excel_Cs_SetRangeBackgroundV2` | 设置区域背景颜色 | +| `Excel_Cs_Load` | `Excel_Cs_LoadV2` | 获取已打开Excel | +| `File_GetFileList` | `File_GetFileList_V1` | 获取文件列表 | +| `File_Write` | `File_Write_V1` | 写入文件 | +| `File_MakeFolder` | `File_MakeDir` | 创建文件夹 | +| `File_GetFolderList` | `File_GetFolderList_V1` | 获取文件夹列表 | +| `Http_Post_V2` | `Http_Post_V3` | POST请求 | +| `Http_Post` | `Http_Post_V3` | POST请求 | +| `Http_Get_V1` | `Http_Get_V2` | GET请求 | +| `Http_Get` | `Http_Get_V2` | GET请求 | +| `Image_Click_V1` | `Image_Click_V2` | 点击图像 | +| `Image_Click` | `Image_Click_V2` | 点击图像 | +| `Image_Find` | `Image_Find_V1` | 查找图像 | +| `Image_Wait` | `Image_Wait_V1` | 等待图像 | +| `Image_Exists` | `Image_Exists_V1` | 判断图像 | +| `Image_Move` | `Image_Move_V1` | 移动到图像 | +| `Keyboard_DriveSend_V1` | `Keyboard_DriveSend_V2` | 键盘驱动输入 | +| `Keyboard_DriveSend` | `Keyboard_DriveSend_V2` | 键盘驱动输入 | +| `Keyboard_Send` | `Keyboard_Send_V1` | 键盘输入 | +| `Mail_UnionConnect` | `Mail_RecvConnect` | 连接邮箱 | +| `Mail_ReplyMail_v1` | `Mail_ReplyMail_v2` | 回复邮件 | +| `Mail_ReplyMail` | `Mail_ReplyMail_v2` | 回复邮件 | +| `Mail_UnionSend_v1` | `Mail_Send_V1` | 发送邮件 | +| `Mail_Send` | `Mail_Send_V1` | 发送邮件 | +| `Mail_UnionSend` | `Mail_Send_V1` | 发送邮件 | +| `Mail_FindMail` | `Mail_FindMail_v1` | 查找邮件 | +| `Mouse_ClickCombine_v3` | `Mouse_ClickCombine_v4` | 鼠标点击 | +| `Mouse_ClickCombine_v2` | `Mouse_ClickCombine_v4` | 鼠标点击 | +| `Mouse_ClickCombine_v1` | `Mouse_ClickCombine_v4` | 鼠标点击 | +| `Mouse_Click` | `Mouse_ClickCombine_v4` | 鼠标点击 | +| `Mouse_ClickCombine` | `Mouse_ClickCombine_v4` | 鼠标点击 | +| `Mouse_DragToV2` | `Mouse_DragToNew` | 鼠标拖拽 | +| `Mouse_DragToV1` | `Mouse_DragToNew` | 鼠标拖拽 | +| `Mouse_DragTo` | `Mouse_DragToNew` | 鼠标拖拽 | +| `Mouse_MoveToV1` | `Mouse_MoveToV2` | 移动鼠标 | +| `Mouse_MoveTo` | `Mouse_MoveToV2` | 移动鼠标 | +| `PDF_SetPdfWaterMark` | `PDF_SetPdfWaterMarkV1` | PDF 加水印 | +| `PDF_ConcatPdf` | `PDF_ConcatPdfV1` | 合并 PDF 文档 | +| `Regex_Find` | `Regex_FindNew` | 指定查找 | +| `StrUtil_CutOutStr` | `StrUtil_CutOutStrV1` | 截取文本 | +| `System_ScreenSaverShow` | `System_ScreenSaverShowV1` | 开启屏保 | +| `System_ExecuteCommand` | `System_ExecuteCommandV1` | 执行命令行 | +| `Time_GetDateV1` | `Time_GetDateV2` | 获取日期时间 | +| `Time_GetDate` | `Time_GetDateV2` | 获取日期时间 | +| `Time_DateOffset` | `Time_DateOffset_V1` | 增加/减少时间 | +| `WebBrowser_Switch` | `WebBrowser_Switch_V1` | 切换页面 | +| `WebBrowser_SetScrollPos` | `WebBrowser_SetScrollPos_V1` | 设置滚动条位置 | +| `WebBrowser_GetTAB_V1` | `WebBrowser_GetTAB_V2` | 获取网页 Tab 对象 | +| `WebBrowser_SaveAs` | `WebBrowser_SaveAs_V1` | 下载文件(点击按钮) | +| `WebBrowser_BatchDataCrawlNew` | `WebBrowser_DataCollectionV5` | 数据采集 | +| `WebBrowser_DataCollectionV4` | `WebBrowser_DataCollectionV5` | 数据采集 | +| `WebBrowser_DataCollectionV3` | `WebBrowser_DataCollectionV5` | 数据采集 | +| `WebBrowser_DataCollectionV2` | `WebBrowser_DataCollectionV5` | 数据采集 | +| `WebBrowser_BatchDataCrawlNewV1` | `WebBrowser_DataCollectionV5` | 数据采集 | +| `WebBrowser_DataCollectionV1` | `WebBrowser_DataCollectionV5` | 数据采集 | +| `WebBrowser_DataCollection` | `WebBrowser_DataCollectionV5` | 数据采集 | +| `WebBrowser_DataCrawl` | `WebBrowser_DataCollectionV5` | 数据采集 | +| `WebBrowser_DataCrawl_software` | `WebBrowser_DataCollectionV5` | 数据采集 | +| `WebBrowser_DataCrawl_web` | `WebBrowser_DataCollectionV5` | 数据采集 | +| `WebBrowser_RunJsInIeBySelector_v2` | `WebBrowser_RunJsInIeBySelector_v3` | 执行JS | +| `WebBrowser_RunJsInIeBySelector_v1` | `WebBrowser_RunJsInIeBySelector_v3` | 执行JS | +| `WebBrowser_RunJsInIeBySelector` | `WebBrowser_RunJsInIeBySelector_v3` | 执行JS | +| `WebBrowser_RunJsInIeByTitle` | `WebBrowser_RunJsInIeBySelector_v3` | 执行JS | +| `WebBrowser_CreateV2` | `WebBrowser_CreateV3` | 打开网页 | +| `WebBrowser_Create` | `WebBrowser_CreateV3` | 打开网页 | +| `WebBrowser_CreateBackground` | `WebBrowser_CreateV3` | 打开网页 | +| `WebBrowser_CloseWeb_V1` | `WebBrowser_CloseWeb_V2` | 关闭网页 | +| `WebBrowser_CloseWeb` | `WebBrowser_CloseWeb_V2` | 关闭网页 | +| `WebBrowser_DownFile` | `WebBrowser_DownFile_V1` | 下载文件(指定链接) | +| `WebBrowser_DownloadFile` | `WebBrowser_DownloadFile_V1` | 下载文件 | +| `WebBrowser_GetBrowserPic` | `WebBrowser_GetBrowserPicV1` | 浏览器截图 | +| `WebBrowser_Close` | `WebBrowser_Close_V1` | 关闭浏览器 | +| `WebBrowser_GetScrollPos` | `WebBrowser_GetScrollPos_V1` | 获取滚动条位置 | +| `Window_SizeWindow` | `Window_SizeWindow_v1` | 调整窗口大小 | +| `Window_SetWindowState` | `Window_SetWindowState_v1` | 设置窗口状态 | +| `Window_SetActive` | `Window_ActiveWindow_v1` | 激活窗口 | +| `Window_GetWindow` | `Window_GetWindow_v1` | 获取窗口对象 | +| `Window_Close` | `Window_CloseWindow_v1` | 关闭窗口 | +| `Window_GetWindowMessage` | `Window_GetWindowMessage_v1` | 获取窗口信息 | +| `Window_MoveWindow` | `Window_MoveWindow_v1` | 移动窗口位置 | + +机器可读决策:`resources/capability-duplicates.json`。 diff --git a/electron-builder.config.mjs b/electron-builder.config.mjs index 14c707d..c666aed 100644 --- a/electron-builder.config.mjs +++ b/electron-builder.config.mjs @@ -23,6 +23,7 @@ export default { extraResources: [ { from: path.join(root, "resources", "catalog.json"), to: "catalog.json" }, { from: path.join(root, "resources", "excluded.json"), to: "excluded.json" }, + { from: path.join(root, "resources", "capability-duplicates.json"), to: "capability-duplicates.json" }, { from: path.join(root, "resources", "desktop-picker.ps1"), to: "desktop-picker.ps1" }, { from: path.join(root, "resources", "models"), to: "models" }, { from: path.join(root, "resources", "fixture"), to: "fixture" } diff --git a/resources/capability-duplicates.json b/resources/capability-duplicates.json new file mode 100644 index 0000000..02a211b --- /dev/null +++ b/resources/capability-duplicates.json @@ -0,0 +1,5611 @@ +{ + "schemaVersion": 1, + "generatedAt": "2026-11-02T04:56:17.341Z", + "policy": "同名能力按目标域、协议和最新版本保留主能力;重复旧版本仅隐藏,不删除执行器", + "editableBefore": 894, + "keep": 658, + "hide": 236, + "editableAfter": 658, + "decisions": [ + { + "id": "Trigger.Manual", + "name": "人工发起", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Trigger.Schedule", + "name": "定时触发", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Trigger.FileArrival", + "name": "文件到达触发", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "logic_control_if_else", + "name": "IF 条件分支", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "logic_control_var", + "name": "设置变量", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Basic_SetVariable_V1", + "name": "设置变量", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Basic_SetVariable", + "name": "设置变量", + "canonical": "Basic_SetVariable_V1", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "logic_control_count_for", + "name": "计次循环", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "logic_control_while", + "name": "条件循环", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "infinite_loop", + "name": "无限循环", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "logic_control_next_for", + "name": "继续下次循环", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "logic_control_break_for", + "name": "跳出循环", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "logic_control_try_catch", + "name": "异常捕获", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "logic_control_stop", + "name": "退出流程", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "logic_control_stop_return", + "name": "返回并退出流程", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "child_modules_v1", + "name": "调用子流程", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "concurrent_child_process_v1", + "name": "并发调用子流程", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "logic_control_array_for_v3", + "name": "遍历列表", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "logic_control_dictionary_for_v1", + "name": "遍历字典", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Element_exception_monitor_v2", + "name": "异常监控", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "logic_control_if_ai_vision", + "name": "判断屏幕图像(AI)", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "App_Run", + "name": "启动应用程序", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "App_GetPid", + "name": "获取一个匹配PID", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "App_GetPids", + "name": "获取全部匹配PID", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "App_KillV1", + "name": "关闭应用程序", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "App_Kill", + "name": "关闭应用程序", + "canonical": "App_KillV1", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Array_Reshape2Dim", + "name": "转化数组维度", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Basic_IsDictionary", + "name": "判断数据是否为字典", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Basic_StringToNum", + "name": "将文本转换为数字", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Basic_Delay_V2", + "name": "等待", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Basic_Delay_V1", + "name": "等待", + "canonical": "Basic_Delay_V2", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Basic_ConvertInt", + "name": "数值转为整数类型", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Basic_RandomInt", + "name": "生成随机数", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Basic_Rnd", + "name": "生成随机数", + "canonical": "Basic_RandomInt", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Basic_IsNumber", + "name": "判断数据是否为数值", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Basic_ConvertBool", + "name": "数据转为布尔类型", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Basic_Type", + "name": "获取数据类型", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Basic_Dodecryption", + "name": "设置密文变量", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Basic_IsNull", + "name": "判断数据是否为空", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Basic_DebugOutput", + "name": "调试输出", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Basic_BusinessOrderCount", + "name": "业务办理计数", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Basic_ConvertNumber", + "name": "数据转为数值类型", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Basic_GetProcessInfo", + "name": "获取流程信息", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Basic_ConvertString", + "name": "将数字转换为文本", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Basic_Delay", + "name": "流程延迟执行", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Basic_IsArray", + "name": "判断数据是否为数组", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Basic_Clone", + "name": "复制数据", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Basic_JudgeDataType", + "name": "判断数据类型", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Basic_DataTypeConversion", + "name": "转换数据类型", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Bivartable_CreateDfV1", + "name": "创建数据表格", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Bivartable_CreateDf", + "name": "创建数据表格", + "canonical": "Bivartable_CreateDfV1", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Bivartable_GetMaxValue", + "name": "获取最大值", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Bivartable_DelDfColRow", + "name": "删除行/列", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Bivartable_ReadDfData_V1", + "name": "读取数据", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Bivartable_ReadDfData", + "name": "读取数据", + "canonical": "Bivartable_ReadDfData_V1", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Bivartable_GetMinValue", + "name": "获取最小值", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Bivartable_HandleDfMissValue", + "name": "缺失值处理", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Bivartable_ColumnOperationDf", + "name": "两列运算", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Bivartable_SortDf", + "name": "排序数据表格", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Bivartable_ReadTable", + "name": "读取数据表内容", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Bivartable_DoCreate", + "name": "创建二维表", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Bivartable_WriteDfData", + "name": "写入数据", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Bivartable_FilterDf", + "name": "筛选数据表格", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Bivartable_SummaryCalculationDf", + "name": "按列汇总计算", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Bivartable_DoSort", + "name": "排序", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Bivartable_DoFilter", + "name": "表格过滤", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Bivartable_InsertDfData", + "name": "插入数据", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Bivartable_ReadDfIndexColumns", + "name": "读取行名/列名", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Bivartable_ReadDfShape", + "name": "读取行数/列数", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Bivartable_DfWriteToFile", + "name": "写入到文件", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Bivartable_DoSave", + "name": "保存二维表至Excel", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Bivartable_PivotDf", + "name": "生成数据透视表", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Bivartable_GetSumValue", + "name": "获取统计总和", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Bivartable_GetAvgValue", + "name": "获取平均值", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Bivartable_SpliceColData", + "name": "拼接两列数据", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Bivartable_Dtype", + "name": "列数据类型转换", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Bivartable_ModifyDfName", + "name": "修改行名/列名", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Bivartable_ModifyColName", + "name": "修改列名", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Bivartable_DeleteDuplicateRow", + "name": "删除重复行", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Bivartable_MergeDf", + "name": "合并数据表格", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Bivartable_DoOpenExcel", + "name": "基于Excel创建二维表", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Bivartable_DoMerge", + "name": "合并二维表", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Bivartable_WriteTable", + "name": "数据表写入内容", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Bivartable_DoJoint", + "name": "拼接列", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Bivartable_DoCal", + "name": "列计算", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Clipboard_SetImage", + "name": "设置剪切板图片", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Clipboard_SetTextV1", + "name": "将文本添加到剪切板", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Clipboard_GetText", + "name": "取剪切板文本", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Clipboard_SaveImageV1", + "name": "获取剪切板文件", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Clipboard_GetTextV1", + "name": "获取剪切板文本", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Clipboard_ClearClipboard", + "name": "清空剪切板", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Clipboard_SetImageV1", + "name": "将文件添加到剪切板", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Clipboard_SetText", + "name": "设置剪切板文本", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Clipboard_SaveImage", + "name": "取剪切板图片", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Collection_Create", + "name": "创建集合", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Collection_HasItem", + "name": "判断集合元素存在", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Collection_Count", + "name": "取集合大小", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Collection_Remove", + "name": "删除集合元素", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Collection_Add", + "name": "添加集合元素", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "CSV_ReadNew", + "name": "读取内容", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "CSV_Read", + "name": "读取内容", + "canonical": "CSV_ReadNew", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "CSV_WriteNew", + "name": "写入内容", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "CSV_Write", + "name": "写入内容", + "canonical": "CSV_WriteNew", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "CustomConfig_GetConfig", + "name": "自定义配置", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "CV_GetText", + "name": "获取文本", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "CV_SetText", + "name": "文本输入", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Element_SetValue_V1", + "name": "文本输入", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Element_SetValueGround", + "name": "文本输入", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Element_SetValue", + "name": "文本输入", + "canonical": "Element_SetValue_V1", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "CV_MouseHover", + "name": "移动到元素上", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "CV_MouseClick", + "name": "元素点击", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Element_Click_V1", + "name": "元素点击", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Element_ClickGround", + "name": "元素点击", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Element_Click", + "name": "元素点击", + "canonical": "Element_Click_V1", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Database_BatchSQLExecute", + "name": "批量执行SQL语句", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Database_DBConnect", + "name": "连接数据库", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Database_SingleSQLQuery", + "name": "执行单SQL查询", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Database_BatchInsertExecute", + "name": "SQL批量插入数据", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Database_AllSQLQuery_V1", + "name": "执行全SQL查询", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Database_AllSQLQuery", + "name": "执行全SQL查询", + "canonical": "Database_AllSQLQuery_V1", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Database_CloseDBConnect", + "name": "关闭连接", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Mail_RecvClose", + "name": "关闭连接", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Database_SQLExecute", + "name": "执行SQL语句", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Databook_WriteContent", + "name": "写入内容至数据表", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Databook_DeleteColumn", + "name": "删除数据表格列", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Databook_Export", + "name": "导出数据表格", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Databook_GetColumnInfo", + "name": "获取列信息", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Databook_ReadContent", + "name": "读取数据表格内容", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Databook_Clear", + "name": "清空数据表格", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Databook_SetColumnInfo", + "name": "设置列描述", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Databook_Import", + "name": "导入数据表格", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Databook_GetRowAndColCount", + "name": "读取数据表格总行列数", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Databook_DeleteRow", + "name": "删除数据表格行", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "DataService_Correct", + "name": "文本纠错", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "DataService_AgentCall", + "name": "调用智能体", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "DataService_AIGenTxt", + "name": "AI生成文本", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "DataService_WorkingDay", + "name": "判断是否工作日", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "DataService_Diff", + "name": "文本比对", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "DataService_LargeModel", + "name": "大模型", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "DataService_Review", + "name": "文本审核", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "DataService_ChatBot", + "name": "chatbot对话机器人", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "DataService_KeyWord", + "name": "关键词抽取", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "DataService_ZBrain", + "name": "自定义AI模型", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Dialog_SaveFile", + "name": "保存文件对话框", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Dialog_CsInputBox", + "name": "输入对话框", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Dialog_InputBox", + "name": "输入对话框", + "canonical": "Dialog_CsInputBox", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Dialog_GetConfig", + "name": "输入输出对话框", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Dialog_GetConfigV7", + "name": "人机交互表单", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Dialog_GetConfigV5", + "name": "人机交互表单", + "canonical": "Dialog_GetConfigV7", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Dialog_Notice_V2", + "name": "消息通知", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Dialog_Notice_V1", + "name": "消息通知", + "canonical": "Dialog_Notice_V2", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Dialog_Notice", + "name": "消息通知", + "canonical": "Dialog_Notice_V2", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Dialog_OpenFile", + "name": "打开文件对话框", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Dialog_GetConfigV8", + "name": "自定义对话框", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Dialog_GetConfigV6", + "name": "自定义对话框", + "canonical": "Dialog_GetConfigV8", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Dialog_GetConfigV4", + "name": "自定义对话框", + "canonical": "Dialog_GetConfigV8", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Dialog_GetConfigV3", + "name": "自定义对话框", + "canonical": "Dialog_GetConfigV8", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Dialog_GetConfigV2", + "name": "自定义对话框", + "canonical": "Dialog_GetConfigV8", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Dialog_GetConfigV1", + "name": "自定义对话框", + "canonical": "Dialog_GetConfigV8", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Dialog_OpenFiles", + "name": "打开文件对话框(多选)", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Dialog_CsMsgBox", + "name": "消息确认对话框", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Dialog_MsgBox", + "name": "消息确认对话框", + "canonical": "Dialog_CsMsgBox", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Dict_Create", + "name": "创建字典", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Dict_Delete", + "name": "删除键值对", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Dict_Items", + "name": "获取字典所有键值", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Dict_Values", + "name": "获取字典所有值", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Dict_Clear", + "name": "清空字典", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Dict_GetItem", + "name": "获取字典值", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Dict_Keys", + "name": "获取字典所有键", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Dict_Update", + "name": "合并字典", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Dict_SetItem", + "name": "设置字典值", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Element_SetValuePassword_V1", + "name": "输入密码框", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Element_SetValuePassword", + "name": "输入密码框", + "canonical": "Element_SetValuePassword_V1", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Element_Region2_v3", + "name": "获取元素坐标", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Element_RegionGround", + "name": "获取元素坐标", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Element_Region2_v2", + "name": "获取元素坐标", + "canonical": "Element_Region2_v3", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Element_Region2_v1", + "name": "获取元素坐标", + "canonical": "Element_Region2_v3", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Element_Region", + "name": "获取元素坐标", + "canonical": "Element_Region2_v3", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Element_Region2", + "name": "获取元素坐标", + "canonical": "Element_Region2_v3", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Element_SelectOperation_v3", + "name": "下拉框操作", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Element_SelectOperation_v2", + "name": "下拉框操作", + "canonical": "Element_SelectOperation_v3", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Element_SelectOperation_v1", + "name": "下拉框操作", + "canonical": "Element_SelectOperation_v3", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Element_SelectOperation", + "name": "下拉框操作", + "canonical": "Element_SelectOperation_v3", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Element_Sibling_V2", + "name": "获取兄弟元素", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Element_Sibling_V1", + "name": "获取兄弟元素", + "canonical": "Element_Sibling_V2", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Element_Sibling", + "name": "获取兄弟元素", + "canonical": "Element_Sibling_V2", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Element_Children_V2", + "name": "获取子元素", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Element_ChildrenGround", + "name": "获取子元素", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Element_Children_V1", + "name": "获取子元素", + "canonical": "Element_Children_V2", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Element_ChildrenV1", + "name": "获取子元素", + "canonical": "Element_Children_V2", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Element_Children", + "name": "获取子元素", + "canonical": "Element_Children_V2", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Element_DesktopChildren", + "name": "获取子元素", + "canonical": "Element_ChildrenGround", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Element_ElementAarray", + "name": "获取相似元素数组", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Element_ElementCaptureSimilar", + "name": "获取相似元素数组", + "canonical": "Element_ElementAarray", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Element_Exists", + "name": "元素判断", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Element_ExistsGround", + "name": "元素判断", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Element_GetCheckGround", + "name": "获取勾选框状态值", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Element_GetCheck", + "name": "获取勾选框状态值", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Element_SetAttribute_v2", + "name": "设置网页元素属性", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Element_SetAttributeGround", + "name": "设置网页元素属性", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Element_SetAttribute_v1", + "name": "设置网页元素属性", + "canonical": "Element_SetAttribute_v2", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Element_SetAttribute", + "name": "设置网页元素属性", + "canonical": "Element_SetAttribute_v2", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Element_WaitElement_v5", + "name": "等待元素", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Element_WaitElementGround", + "name": "等待元素", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Element_WaitElement_v4", + "name": "等待元素", + "canonical": "Element_WaitElement_v5", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Element_WaitElement_v3", + "name": "等待元素", + "canonical": "Element_WaitElement_v5", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Element_WaitElement_v2", + "name": "等待元素", + "canonical": "Element_WaitElement_v5", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Element_WaitElement_v1", + "name": "等待元素", + "canonical": "Element_WaitElement_v5", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Element_WaitElement", + "name": "等待元素", + "canonical": "Element_WaitElement_v5", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Element_ScrollIntoView_v2", + "name": "滚动页面", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Element_ScrollIntoViewGround", + "name": "滚动页面", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Element_ScrollIntoView_v1", + "name": "滚动页面", + "canonical": "Element_ScrollIntoView_v2", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Element_ScrollIntoView", + "name": "滚动页面", + "canonical": "Element_ScrollIntoView_v2", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Element_MouseTo_V4", + "name": "鼠标移动到元素上", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Element_MouseToGround", + "name": "鼠标移动到元素上", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Element_MouseTo_V3", + "name": "鼠标移动到元素上", + "canonical": "Element_MouseTo_V4", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Element_MouseTo_V2", + "name": "鼠标移动到元素上", + "canonical": "Element_MouseTo_V4", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Element_MouseTo_V1", + "name": "鼠标移动到元素上", + "canonical": "Element_MouseTo_V4", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Element_MouseTo", + "name": "鼠标移动到元素上", + "canonical": "Element_MouseTo_V4", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Element_Click_V6", + "name": "点击界面元素", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Element_Click_V5", + "name": "点击界面元素", + "canonical": "Element_Click_V6", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Element_Click_V4", + "name": "点击界面元素", + "canonical": "Element_Click_V6", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Element_Click_V3", + "name": "点击界面元素", + "canonical": "Element_Click_V6", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Element_Click_V2", + "name": "点击界面元素", + "canonical": "Element_Click_V6", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Element_SetCheckGround", + "name": "设置勾选框状态", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Element_SetCheck", + "name": "设置勾选框状态", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Element_Parent_V2", + "name": "获取父元素", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Element_Parent_V1", + "name": "获取父元素", + "canonical": "Element_Parent_V2", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Element_Parent", + "name": "获取父元素", + "canonical": "Element_Parent_V2", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Element_SetValue_V3", + "name": "输入文本框", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Element_SetValue_V2", + "name": "输入文本框", + "canonical": "Element_SetValue_V3", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Element_StopAutoClosePopup", + "name": "停止智能弹窗侦测", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Element_GetButtonEnable_v4", + "name": "判断元素是否可点击", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Element_GetButtonEnable_v3", + "name": "判断元素是否可点击", + "canonical": "Element_GetButtonEnable_v4", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Element_GetButtonEnable_v2", + "name": "判断元素是否可点击", + "canonical": "Element_GetButtonEnable_v4", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Element_GetButtonEnable_v1", + "name": "判断元素是否可点击", + "canonical": "Element_GetButtonEnable_v4", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Element_GetButtonEnable", + "name": "判断元素是否可点击", + "canonical": "Element_GetButtonEnable_v4", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Element_SetValue_V6", + "name": "输入文本", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Element_SetValue_V5", + "name": "输入文本", + "canonical": "Element_SetValue_V6", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Element_SetValue_V4", + "name": "输入文本", + "canonical": "Element_SetValue_V6", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Element_GetText_V5", + "name": "获取界面元素文本", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Element_GetText_V4", + "name": "获取界面元素文本", + "canonical": "Element_GetText_V5", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Element_GetText_V3", + "name": "获取界面元素文本", + "canonical": "Element_GetText_V5", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Element_GetText_V2", + "name": "获取界面元素文本", + "canonical": "Element_GetText_V5", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Element_GetText", + "name": "获取界面元素文本", + "canonical": "Element_GetText_V5", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Element_GetValue", + "name": "获取元素文本", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Element_GetValueGround", + "name": "获取元素文本", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Element_SimilarElementList_V2", + "name": "获取相似元素列表", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Element_SimilarElementList_V1", + "name": "获取相似元素列表", + "canonical": "Element_SimilarElementList_V2", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Element_SimilarElementList", + "name": "获取相似元素列表", + "canonical": "Element_SimilarElementList_V2", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Element_Shot_V2", + "name": "元素截图", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Element_ShotGround", + "name": "元素截图", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Element_Shot_V1", + "name": "元素截图", + "canonical": "Element_Shot_V2", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Element_Shot", + "name": "元素截图", + "canonical": "Element_Shot_V2", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Element_CheckBoxOperation_v3", + "name": "勾选框操作", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Element_CheckBoxOperation_v2", + "name": "勾选框操作", + "canonical": "Element_CheckBoxOperation_v3", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Element_CheckBoxOperation_v1", + "name": "勾选框操作", + "canonical": "Element_CheckBoxOperation_v3", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Element_CheckBoxOperation", + "name": "勾选框操作", + "canonical": "Element_CheckBoxOperation_v3", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Element_GetLineBarChartData", + "name": "获取折线图/柱状图数据", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Element_GetAttribute_v3", + "name": "获取网页元素属性", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Element_GetAttributeGround", + "name": "获取网页元素属性", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Element_GetAttribute_v2", + "name": "获取网页元素属性", + "canonical": "Element_GetAttribute_v3", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Element_GetAttribute_v1", + "name": "获取网页元素属性", + "canonical": "Element_GetAttribute_v3", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Element_GetAttribute", + "name": "获取网页元素属性", + "canonical": "Element_GetAttribute_v3", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Element_GetSelect", + "name": "获取下拉框选项值", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Element_GetSelectGround", + "name": "获取下拉框选项值", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Element_SetValuePassword_V6", + "name": "输入密码", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Element_SetValuePassword_V5", + "name": "输入密码", + "canonical": "Element_SetValuePassword_V6", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Element_GetText_V1", + "name": "获取区域文字", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Element_GetElementNew", + "name": "获取元素对象", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Element_GetElementV2", + "name": "获取元素对象", + "canonical": "Element_GetElementNew", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Element_GetElementV1", + "name": "获取元素对象", + "canonical": "Element_GetElementNew", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Element_GetElement", + "name": "获取元素对象", + "canonical": "Element_GetElementNew", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Element_GetElementInfo_V1", + "name": "获取元素信息", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Element_GetElementInfo", + "name": "获取元素信息", + "canonical": "Element_GetElementInfo_V1", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Element_ExistsV1", + "name": "判断元素存在", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Element_GetPieChartData", + "name": "获取饼状图数据", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Element_GetTableData", + "name": "获取SAP表格数据", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Element_StartAutoClosePopup", + "name": "启动智能弹窗侦测", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Element_SetSelectGround", + "name": "设置下拉框选择项", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Element_SetSelect", + "name": "设置下拉框选择项", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Element_GetHtml", + "name": "获取网页元素源码", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Element_GetButtonEnableGround", + "name": "元素是否可点击", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Element_FileUploader", + "name": "上传文件", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "WebBrowser_Upload", + "name": "上传文件", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Excel_WriteColumnNew", + "name": "写入列", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Excel_Cs_WriteColumn", + "name": "写入列", + "canonical": "Excel_WriteColumnNew", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_WriteColumn", + "name": "写入列", + "canonical": "Excel_WriteColumnNew", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_Cs_SetCellFormat_V3", + "name": "设置单元格格式", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Excel_Cs_SetCellFormat_V2", + "name": "设置单元格格式", + "canonical": "Excel_Cs_SetCellFormat_V3", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_Cs_SetCellFormat", + "name": "设置单元格格式", + "canonical": "Excel_Cs_SetCellFormat_V3", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_Cs_ReadContentV4", + "name": "读取Excel内容", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Excel_Cs_ReadContentV3", + "name": "读取Excel内容", + "canonical": "Excel_Cs_ReadContentV4", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_Cs_ReadContentV2", + "name": "读取Excel内容", + "canonical": "Excel_Cs_ReadContentV4", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_Cs_ReadContent", + "name": "读取Excel内容", + "canonical": "Excel_Cs_ReadContentV4", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_Cs_AutoFillV2", + "name": "自动填充", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Excel_Cs_AutoFill", + "name": "自动填充", + "canonical": "Excel_Cs_AutoFillV2", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_NewExcel", + "name": "新建excel", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Excel_Cs_CopyV2", + "name": "复制Sheet", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Excel_Cs_Copy", + "name": "复制Sheet", + "canonical": "Excel_Cs_CopyV2", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_WriteRangeNew", + "name": "写入区域", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Excel_Cs_WriteRangeV2", + "name": "写入区域", + "canonical": "Excel_WriteRangeNew", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_Cs_WriteRange", + "name": "写入区域", + "canonical": "Excel_WriteRangeNew", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_WriteRange", + "name": "写入区域", + "canonical": "Excel_WriteRangeNew", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_Cs_DeleteColumn", + "name": "删除列", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Excel_DeleteColumn", + "name": "删除列", + "canonical": "Excel_Cs_DeleteColumn", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_Cs_OpenV4", + "name": "打开Excel", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Excel_Cs_OpenV3", + "name": "打开Excel", + "canonical": "Excel_Cs_OpenV4", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_Cs_OpenV2", + "name": "打开Excel", + "canonical": "Excel_Cs_OpenV4", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_Cs_Open", + "name": "打开Excel", + "canonical": "Excel_Cs_OpenV4", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_PasteRange", + "name": "粘贴区域", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Excel_OpenExcelNew", + "name": "打开excel", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Excel_OpenExcel", + "name": "打开excel", + "canonical": "Excel_OpenExcelNew", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_CopyRange", + "name": "复制区域", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Excel_Cs_ClearRangeV4", + "name": "清除区域", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Excel_Cs_ClearRangeV3", + "name": "清除区域", + "canonical": "Excel_Cs_ClearRangeV4", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_Cs_ClearRangeV2", + "name": "清除区域", + "canonical": "Excel_Cs_ClearRangeV4", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_ClearRange", + "name": "清除区域", + "canonical": "Excel_Cs_ClearRangeV4", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_Cs_ClearRange", + "name": "清除区域", + "canonical": "Excel_Cs_ClearRangeV4", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_Cs_InsertColumnV3", + "name": "插入列", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Excel_Cs_InsertColumnV2", + "name": "插入列", + "canonical": "Excel_Cs_InsertColumnV3", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_Cs_InsertColumn", + "name": "插入列", + "canonical": "Excel_Cs_InsertColumnV3", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_InsertColumn", + "name": "插入列", + "canonical": "Excel_Cs_InsertColumnV3", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_Cs_ReadRowCount", + "name": "读取行数", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Excel_GetRowsCount", + "name": "读取行数", + "canonical": "Excel_Cs_ReadRowCount", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_Cs_ReadColumnCount", + "name": "读取列数", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Excel_GetColumnsCount", + "name": "读取列数", + "canonical": "Excel_Cs_ReadColumnCount", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_Cs_Group", + "name": "组合行列", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Excel_ReadCellNew", + "name": "读取单元格", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Excel_Cs_ReadCell", + "name": "读取单元格", + "canonical": "Excel_ReadCellNew", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_ReadCell", + "name": "读取单元格", + "canonical": "Excel_ReadCellNew", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_WriteCellNew", + "name": "写入单元格", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Excel_Cs_WriteCellV2", + "name": "写入单元格", + "canonical": "Excel_WriteCellNew", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_Cs_WriteCell", + "name": "写入单元格", + "canonical": "Excel_WriteCellNew", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_WriteCell", + "name": "写入单元格", + "canonical": "Excel_WriteCellNew", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_Cs_SetRangeFontV2", + "name": "设置区域字体颜色", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Excel_Cs_SetRangeFont", + "name": "设置区域字体颜色", + "canonical": "Excel_Cs_SetRangeFontV2", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_Cs_DeletePictureV2", + "name": "删除图片", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Excel_Cs_DeletePicture", + "name": "删除图片", + "canonical": "Excel_Cs_DeletePictureV2", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_DeleteImage", + "name": "删除图片", + "canonical": "Excel_Cs_DeletePictureV2", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_Cs_NewV5", + "name": "新建Excel", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Excel_Cs_New", + "name": "新建Excel", + "canonical": "Excel_Cs_NewV5", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_Cs_NewV4", + "name": "新建Excel", + "canonical": "Excel_Cs_NewV5", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_Cs_NewV3", + "name": "新建Excel", + "canonical": "Excel_Cs_NewV5", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_Cs_NewV2", + "name": "新建Excel", + "canonical": "Excel_Cs_NewV5", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_GetColDataNew", + "name": "读取列", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Excel_Cs_ReadColumn", + "name": "读取列", + "canonical": "Excel_GetColDataNew", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_GetColData", + "name": "读取列", + "canonical": "Excel_GetColDataNew", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_GetSheetsName", + "name": "获取sheet名", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Excel_Cs_GetEmptyCell", + "name": "获取第一个空白单元格", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Excel_Cs_GetEditRange", + "name": "获取已编辑区域", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Excel_Cs_InsertRowV3", + "name": "插入行", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Excel_Cs_InsertRowV2", + "name": "插入行", + "canonical": "Excel_Cs_InsertRowV3", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_Cs_InsertRow", + "name": "插入行", + "canonical": "Excel_Cs_InsertRowV3", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_InsertRow", + "name": "插入行", + "canonical": "Excel_Cs_InsertRowV3", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_Cs_RefreshPivotTable", + "name": "刷新Excel数据透视表", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Excel_Cs_SetHeightV1", + "name": "设置行高", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Excel_Cs_SetHeight", + "name": "设置行高", + "canonical": "Excel_Cs_SetHeightV1", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_SetRowHeight", + "name": "设置行高", + "canonical": "Excel_Cs_SetHeightV1", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_Cs_Encrypt", + "name": "加密Excel", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Excel_Cs_Move", + "name": "移动Sheet", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Excel_Cs_DeleteDuplicates", + "name": "删除重复", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Excel_Cs_DeleteRangeV3", + "name": "删除区域", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Excel_Cs_DeleteRangeV2", + "name": "删除区域", + "canonical": "Excel_Cs_DeleteRangeV3", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_Cs_DeleteRange", + "name": "删除区域", + "canonical": "Excel_Cs_DeleteRangeV3", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_DeleteRange", + "name": "删除区域", + "canonical": "Excel_Cs_DeleteRangeV3", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_Cs_ExcelFilter", + "name": "Excel数据筛选", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Excel_Cs_GetPath", + "name": "获取Excel路径", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Excel_GetPath", + "name": "获取Excel路径", + "canonical": "Excel_Cs_GetPath", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_Cs_DeleteRow", + "name": "删除行", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Excel_DeleteRow", + "name": "删除行", + "canonical": "Excel_Cs_DeleteRow", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_Cs_Active", + "name": "激活Sheet", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Excel_ReadRangeNew", + "name": "读取区域", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Excel_Cs_ReadRangeV2", + "name": "读取区域", + "canonical": "Excel_ReadRangeNew", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_Cs_ReadRange", + "name": "读取区域", + "canonical": "Excel_ReadRangeNew", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_ReadRange", + "name": "读取区域", + "canonical": "Excel_ReadRangeNew", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_Cs_ConvertColumn", + "name": "列名转换", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Excel_Cs_InsertPictureV2", + "name": "插入图片", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Excel_Cs_InsertPicture", + "name": "插入图片", + "canonical": "Excel_Cs_InsertPictureV2", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_InsertImage", + "name": "插入图片", + "canonical": "Excel_Cs_InsertPictureV2", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_Cs_Insert", + "name": "插入Sheet", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Excel_Cs_Merge", + "name": "合并Sheet", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Excel_Cs_ReadCellFormula", + "name": "获取单元格公式", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Excel_Save", + "name": "保存excel", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Excel_Cs_InsertPivotView", + "name": "新建透视图", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Excel_Cs_Filter", + "name": "数据筛选", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Excel_SetCellFontColor", + "name": "单元格字体颜色", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Excel_Cs_CopyRangeV3", + "name": "复制表格内容", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Excel_Cs_CopyRangeV2", + "name": "复制表格内容", + "canonical": "Excel_Cs_CopyRangeV3", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_Cs_CopyRange", + "name": "复制表格内容", + "canonical": "Excel_Cs_CopyRangeV3", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_Cs_SetWidthV1", + "name": "设置列宽", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Excel_Cs_SetWidth", + "name": "设置列宽", + "canonical": "Excel_Cs_SetWidthV1", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_SetColumnWidth", + "name": "设置列宽", + "canonical": "Excel_Cs_SetWidthV1", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_SetRangeColor", + "name": "区域颜色", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Excel_Cs_Interop", + "name": "Excel动态调用", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Excel_Cs_InsertPivotTable", + "name": "新建Excel数据透视表", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Excel_Cs_RunMacroV2", + "name": "执行宏", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Excel_Cs_RunMacro", + "name": "执行宏", + "canonical": "Excel_Cs_RunMacroV2", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_ExecuteMacro", + "name": "执行宏", + "canonical": "Excel_Cs_RunMacroV2", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_Cs_FindV2", + "name": "Excel查找/替换", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Excel_Cs_Find", + "name": "Excel查找/替换", + "canonical": "Excel_Cs_FindV2", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_Cs_SaveAs", + "name": "另存为Excel", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Excel_Loop", + "name": "excel内容循环", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Excel_Cs_GetLastEmptyCell", + "name": "获取尾部第一个空白单元格", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Excel_WriteRowNew", + "name": "写入行", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Excel_Cs_WriteRowV2", + "name": "写入行", + "canonical": "Excel_WriteRowNew", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_Cs_WriteRow", + "name": "写入行", + "canonical": "Excel_WriteRowNew", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_WriteRow", + "name": "写入行", + "canonical": "Excel_WriteRowNew", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_GetRowDataNew", + "name": "读取行", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Excel_Cs_ReadRow", + "name": "读取行", + "canonical": "Excel_GetRowDataNew", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_GetRowData", + "name": "读取行", + "canonical": "Excel_GetRowDataNew", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_SetRangeFontColor", + "name": "区域字体颜色", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Excel_GetColumnId", + "name": "获取Excel列标识", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Excel_Cs_SetCellFont", + "name": "设置单元格字体颜色", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Excel_Cs_Delete", + "name": "删除Sheet", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Excel_ActiveSheet", + "name": "激活sheet", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Excel_Cs_Export", + "name": "导出Excel为PDF", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Excel_Cs_MergeCellsV2", + "name": "合并单元格", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Excel_Cs_MergeCells", + "name": "合并单元格", + "canonical": "Excel_Cs_MergeCellsV2", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_Cs_ShowTableStyle", + "name": "设置Excel表格样式", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Excel_Cs_CloseV2", + "name": "关闭Excel", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Excel_Cs_Close", + "name": "关闭Excel", + "canonical": "Excel_Cs_CloseV2", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_Cs_SelectRangeV3", + "name": "选中区域", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Excel_Cs_SelectRangeV2", + "name": "选中区域", + "canonical": "Excel_Cs_SelectRangeV3", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_Cs_SelectRange", + "name": "选中区域", + "canonical": "Excel_Cs_SelectRangeV3", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_SelectRange", + "name": "选中区域", + "canonical": "Excel_Cs_SelectRangeV3", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_Cs_ClearExcelFilter", + "name": "清除Excel数据筛选", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Excel_Close", + "name": "关闭excel", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Excel_Cs_Rename", + "name": "重命名Sheet", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Excel_Cs_SetCellBackground", + "name": "设置单元格背景颜色", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Excel_Cs_Save", + "name": "保存Excel", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Excel_SetCellColor", + "name": "单元格背景颜色", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Excel_Cs_GetName", + "name": "获取Sheet名", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Excel_Cs_PastRangeV2", + "name": "粘贴表格内容", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Excel_Cs_PastRange", + "name": "粘贴表格内容", + "canonical": "Excel_Cs_PastRangeV2", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_Cs_ColumnSplitV2", + "name": "Excel分列", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Excel_Cs_ColumnSplit", + "name": "Excel分列", + "canonical": "Excel_Cs_ColumnSplitV2", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_Cs_SortV1", + "name": "Excel数据排序", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Excel_Cs_Sort", + "name": "Excel数据排序", + "canonical": "Excel_Cs_SortV1", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_Cs_ExcelAddin", + "name": "数据处理", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Excel_Cs_ReadCellBackground", + "name": "获取单元格背景色", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Excel_RenameSheet", + "name": "重命名sheet", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Excel_Cs_FilterPivotTable", + "name": "筛选Excel数据透视表", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Excel_SaveAs", + "name": "另存excel", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Excel_Cs_Hide", + "name": "隐藏/显示行列", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Excel_Cs_SetSlicer", + "name": "Excel切片器", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Excel_Cs_WriteContent", + "name": "写入Excel内容", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Excel_Cs_EnableExcelFilter", + "name": "取消Excel数据筛选", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Excel_Cs_SetRangeBackgroundV2", + "name": "设置区域背景颜色", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Excel_Cs_SetRangeBackground", + "name": "设置区域背景颜色", + "canonical": "Excel_Cs_SetRangeBackgroundV2", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_Cs_LoadV2", + "name": "获取已打开Excel", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Excel_Cs_Load", + "name": "获取已打开Excel", + "canonical": "Excel_Cs_LoadV2", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Excel_Cs_RefreshAll", + "name": "刷新Excel数据", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Excel_CopySheet", + "name": "复制sheet", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Excel_CreateSheet", + "name": "创建sheet", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Excel_ExportRangeAsPicture", + "name": "导出区域为图片", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Excel_Cs_Search", + "name": "查找/替换数据", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Excel_DeleteSheet", + "name": "删除sheet", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "ExceptionUtil_Throws", + "name": "抛出异常", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "File_Rename", + "name": "重命名文件", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "File_Delete", + "name": "删除文件", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "File_DecompressFile", + "name": "解压文件", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "File_GetFileList_V1", + "name": "获取文件列表", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "File_GetFileList", + "name": "获取文件列表", + "canonical": "File_GetFileList_V1", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "File_File_Move", + "name": "移动文件", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "File_MoveFolder", + "name": "移动文件夹", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "File_Write_V1", + "name": "写入文件", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "File_Write", + "name": "写入文件", + "canonical": "File_Write_V1", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "File_PathSize", + "name": "取文件大小", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "File_MakeDir", + "name": "创建文件夹", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "File_MakeFolder", + "name": "创建文件夹", + "canonical": "File_MakeDir", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "File_Copy_V1", + "name": "复制文件/文件夹", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "File_GetFileInfo", + "name": "获取文件信息", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "File_GetFolderList_V1", + "name": "获取文件夹列表", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "File_GetFolderList", + "name": "获取文件夹列表", + "canonical": "File_GetFolderList_V1", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "File_ReadXml", + "name": "读取xml文件", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "File_OpenFile", + "name": "打开文件夹", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "File_Read", + "name": "读取文件", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "File_Rename_V1", + "name": "重命名文件/文件夹", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "File_CreateFile", + "name": "新建文件", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "File_DeleteFile", + "name": "删除文件/文件夹", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "File_PathSizeNew", + "name": "获取文件大小", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "File_CreateFolder", + "name": "生成上传路径", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "File_Copy", + "name": "复制文件", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "File_CompressFile", + "name": "压缩文件", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "File_FileExists", + "name": "判断文件存在", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "File_PathExists", + "name": "判断路径", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "File_Move", + "name": "移动文件/文件夹", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "File_EmptyFolder", + "name": "清空文件夹", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "File_WaitFile", + "name": "等待文件", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "FileTypeConversion_Office2pdf", + "name": "OFFICE文档转PDF", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "FileTypeConversion_Pdf2image2", + "name": "PDF转图片", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "FTP_Download", + "name": "下载文件/文件夹(FTP)", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "FTP_Rename", + "name": "重命名文件/文件夹(FTP)", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "FTP_Delete", + "name": "删除文件/文件夹(FTP)", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "FTP_Disconnect", + "name": "断开FTP连接", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "FTP_Cwd", + "name": "切换工作目录", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "FTP_GetFileList", + "name": "获取文件/文件夹(FTP)", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "FTP_CreateDir", + "name": "创建文件夹(FTP)", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "FTP_Exist", + "name": "判断文件存在(FTP)", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "FTP_Upload", + "name": "上传文件/文件夹(FTP)", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "FTP_Connect", + "name": "建立FTP连接", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "GoogleTable_GetAllData", + "name": "获取列信息(Google Sheets)", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "GoogleTable_GetAllSheetsName", + "name": "获取Sheet名(Google Sheets)", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "GoogleTable_WriteToSheetRegionColumns", + "name": "写入列(Google Sheets)", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "GoogleTable_WriteToSheetRegionRows", + "name": "写入行(Google Sheets)", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "GoogleTable_WriteToSheetCell", + "name": "写入单元格(Google Sheets)", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "GoogleTable_WriteToSheetCellFormula", + "name": "写入单元格公式(Google Sheets)", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "GoogleTable_GetSheetRowCount", + "name": "获取行数(Google Sheets)", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "GoogleTable_DownloadSheets", + "name": "导出Sheet(Google Sheets)", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "GoogleTable_CopyPasteSheet", + "name": "复制粘贴(Google Sheets)", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "GoogleTable_GetColumnsByTableTitle", + "name": "按表头读取列(Google Sheets)", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "GoogleTable_ChangeSheet", + "name": "激活Sheet(Google Sheets)", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "GoogleTable_RenameSheet", + "name": "重命名Sheet(Google Sheets)", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "GoogleTable_WriteToSheetRegionregion", + "name": "写入区域(Google Sheets)", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Http_Post_V3", + "name": "POST请求", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Http_Post_V2", + "name": "POST请求", + "canonical": "Http_Post_V3", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Http_Post", + "name": "POST请求", + "canonical": "Http_Post_V3", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Http_Get_V2", + "name": "GET请求", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Http_Get_V1", + "name": "GET请求", + "canonical": "Http_Get_V2", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Http_Get", + "name": "GET请求", + "canonical": "Http_Get_V2", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Http_Http_Request", + "name": "HTTP 请求", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Image_Click_V2", + "name": "点击图像", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Image_Click_V1", + "name": "点击图像", + "canonical": "Image_Click_V2", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Image_Click", + "name": "点击图像", + "canonical": "Image_Click_V2", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Image_Move_V2", + "name": "鼠标移动到图像上", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Image_Screenshot", + "name": "屏幕截图", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Image_Base64Decode", + "name": "图片base64编码转二进制", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Image_Find_V1", + "name": "查找图像", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Image_Find", + "name": "查找图像", + "canonical": "Image_Find_V1", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Image_Base64Encode", + "name": "图片转base64编码", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Image_Wait_V1", + "name": "等待图像", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Image_Wait", + "name": "等待图像", + "canonical": "Image_Wait_V1", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Image_Exists_V1", + "name": "判断图像", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Image_Exists", + "name": "判断图像", + "canonical": "Image_Exists_V1", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Image_Location", + "name": "图像位置", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Image_Location_V1", + "name": "获取图像位置", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Image_CropImg", + "name": "截取图像", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Image_Click_V3", + "name": "鼠标点击图像", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Image_RelativePosition", + "name": "对比图像相对位置", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Image_Move_V1", + "name": "移动到图像", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Image_Move", + "name": "移动到图像", + "canonical": "Image_Move_V1", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Ini_DeleteKey", + "name": "删除INI文件键", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Ini_Write", + "name": "写入INI文件键值", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Ini_ListSection", + "name": "枚举INI文件小节", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Ini_DeleteSection", + "name": "删除INI文件小节", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Ini_ListKey", + "name": "枚举INI文件键", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Ini_Read", + "name": "读取INI文件键值", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "JSON_Stringify", + "name": "将JSON转换为文本", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "JSON_Parse", + "name": "将文本转换为JSON", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Keyboard_PressNew", + "name": "键盘模拟按键", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Keyboard_DriveSend_V2", + "name": "键盘驱动输入", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Keyboard_DriveSend_V1", + "name": "键盘驱动输入", + "canonical": "Keyboard_DriveSend_V2", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Keyboard_DriveSend", + "name": "键盘驱动输入", + "canonical": "Keyboard_DriveSend_V2", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Keyboard_Press", + "name": "键盘按键", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Keyboard_Send_V1", + "name": "键盘输入", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Keyboard_Send", + "name": "键盘输入", + "canonical": "Keyboard_Send_V1", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Keyboard_EnableManualOperation", + "name": "开启模拟人工操作", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Keyboard_DisableManualOperation", + "name": "关闭模拟人工操作", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "List_DeleteList", + "name": "删除列表项", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "List_GetIndex", + "name": "获取列表项的位置", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "List_ListMerge", + "name": "列表合并", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "List_ClearList", + "name": "清空列表", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "List_ListLength", + "name": "获取列表长度", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "List_ListSorted", + "name": "列表排序", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "List_ListDuplication", + "name": "列表去重", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "List_InsertList", + "name": "新增列表项", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "List_ListIntersection", + "name": "获取两列表的重复项", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "List_CreateList", + "name": "创建列表", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "List_GetListItem", + "name": "获取指定位置项的数据", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "List_SetListItem", + "name": "修改指定位置项的数据", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Log_Error", + "name": "打印错误日志", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Log_Info", + "name": "打印普通日志", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Mail_UnmarkSeen", + "name": "标为未读", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Mail_DoReplyMail_v1", + "name": "回复邮件(Outlook)", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Mail_RecvConnect", + "name": "连接邮箱", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Mail_UnionConnect", + "name": "连接邮箱", + "canonical": "Mail_RecvConnect", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Mail_RecvMailGet", + "name": "取第几封邮件", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Mail_ExOperateMail", + "name": "操作邮件", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Mail_OperateMail", + "name": "操作邮件", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Mail_RecvGetList", + "name": "邮件筛选", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Mail_ReplyMail_v2", + "name": "回复邮件", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Mail_DoReplyMail", + "name": "回复邮件", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Mail_ReplyMail_v1", + "name": "回复邮件", + "canonical": "Mail_ReplyMail_v2", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Mail_ReplyMail", + "name": "回复邮件", + "canonical": "Mail_ReplyMail_v2", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Mail_Send_V1", + "name": "发送邮件", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Mail_DoSendMail", + "name": "发送邮件", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Mail_ExSendMail", + "name": "发送邮件", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Mail_UnionSend_v1", + "name": "发送邮件", + "canonical": "Mail_Send_V1", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Mail_Send", + "name": "发送邮件", + "canonical": "Mail_Send_V1", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Mail_UnionSend", + "name": "发送邮件", + "canonical": "Mail_Send_V1", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Mail_FindMail_v1", + "name": "查找邮件", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Mail_ExSearchMail", + "name": "查找邮件", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Mail_FindMail", + "name": "查找邮件", + "canonical": "Mail_FindMail_v1", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Mail_DoMoveMail", + "name": "移动邮件", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Mail_ExConnect", + "name": "连接Exchange邮箱", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Mail_RecvCount", + "name": "取收件箱邮件数", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Mail_DoGetMailMessage_v2", + "name": "获取邮件(Outlook)", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Mail_DoGetMailMessage_v1", + "name": "查找邮件(Outlook)", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Mail_FindMail_v2", + "name": "获取邮件", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Mail_DoGetMailMessage", + "name": "查看邮件", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Mail_MarkSeen", + "name": "标为已读", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Mail_DoMoveMail_v1", + "name": "操作邮件(Outlook)", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Mail_DoSendMail_v1", + "name": "发送邮件(Outlook)", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Math_Cos", + "name": "余弦值", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Math_Tan", + "name": "正切值", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Math_Scale", + "name": "进制转换", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Math_Round", + "name": "四舍五入", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Math_Pow", + "name": "x的y次幂", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Math_Int", + "name": "取整", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Math_Sqrt", + "name": "平方根", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Math_Oct", + "name": "转8进制", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Math_Sin", + "name": "正弦值", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Math_Abs", + "name": "绝对值", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Math_Hex", + "name": "转16进制", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Math_Exp", + "name": "e的n次幂", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Math_Sgn", + "name": "取正负符号", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "MessageNotification_Feishu_Message", + "name": "发送消息至飞书", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "MessageNotification_DingTalk_Message", + "name": "发送消息至钉钉", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "MessageNotification_WXWork_Message", + "name": "发送消息至企业微信", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Mouse_ClickCombine_v4", + "name": "鼠标点击", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Mouse_ClickCombine_v3", + "name": "鼠标点击", + "canonical": "Mouse_ClickCombine_v4", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Mouse_ClickCombine_v2", + "name": "鼠标点击", + "canonical": "Mouse_ClickCombine_v4", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Mouse_ClickCombine_v1", + "name": "鼠标点击", + "canonical": "Mouse_ClickCombine_v4", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Mouse_Click", + "name": "鼠标点击", + "canonical": "Mouse_ClickCombine_v4", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Mouse_ClickCombine", + "name": "鼠标点击", + "canonical": "Mouse_ClickCombine_v4", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Mouse_DragToNew", + "name": "鼠标拖拽", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Mouse_DragToV2", + "name": "鼠标拖拽", + "canonical": "Mouse_DragToNew", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Mouse_DragToV1", + "name": "鼠标拖拽", + "canonical": "Mouse_DragToNew", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Mouse_DragTo", + "name": "鼠标拖拽", + "canonical": "Mouse_DragToNew", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Mouse_RollTo", + "name": "鼠标滚动", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Mouse_MoveToV2", + "name": "移动鼠标", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Mouse_MoveToV1", + "name": "移动鼠标", + "canonical": "Mouse_MoveToV2", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Mouse_MoveTo", + "name": "移动鼠标", + "canonical": "Mouse_MoveToV2", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "NLP_BatchAnalyseProductReview", + "name": "商品评论分析(批量)", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "NLP_KeyWordsAnalysis", + "name": "关键词", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "NLP_EmotionalAnalysis", + "name": "情感分析", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "NLP_SplitText", + "name": "实体抽取", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "NLP_AnalyseProductReview", + "name": "商品评论分析", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "NLP_SemanticSimilarity", + "name": "语义相似度", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "NLP_SplitWords", + "name": "分词", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "NLP_PerspectiveAnalysis", + "name": "观点分析", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "NLP_XunFei_NLPBaseServer", + "name": "第三方NLP模型", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "NLP_XunFei_MachineTranslation", + "name": "机器翻译", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "NLP_XunFei_FeelingAnalysis", + "name": "第三方情感分析模型", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "NLP_XunFei_KeywordExtraction", + "name": "关键字提取", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "OCR_MergeCardOCR", + "name": "卡证文字识别", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "OCR_CalculationCode", + "name": "算术验证码", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "OCR_IdCardV2", + "name": "OCR身份证", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "OCR_BusinessCardV2", + "name": "OCR名片", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "OCR_VehicleInvoiceV2", + "name": "OCR机动车发票", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "OCR_MergeOtherOCR", + "name": "其他场景文字识别", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "OCR_BusinessLicenseV3", + "name": "OCR营业执照(自研)", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "OCR_PassportV2", + "name": "OCR护照", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "OCR_MergeGeneralOCR", + "name": "通用文字识别", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "OCR_KeyValueIdentification", + "name": "识别键值对结构", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "OCR_AmountIdentification", + "name": "识别价格金额", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "OCR_GeneralTextV2", + "name": "OCR高精度文本", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "OCR_VatInvoiceV2", + "name": "OCR增值税发票", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "OCR_DrivingLicenseV2", + "name": "OCR行驶证", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "OCR_AccountPageV2", + "name": "OCR户口页", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "OCR_PlateLicenseV2", + "name": "OCR车牌", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "OCR_BankCardV2", + "name": "OCR银行卡", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "OCR_BankCardV3", + "name": "OCR银行卡(自研)", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "OCR_IdCardV3", + "name": "OCR身份证(自研)", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "OCR_VatInvoiceV3", + "name": "OCR增值税发票(自研)", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "OCR_MergePaperOCR", + "name": "票据文字识别", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "OCR_DriverLicenseV2", + "name": "OCR驾驶证", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "OCR_RealEstateCertV2", + "name": "OCR不动产权证", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "OCR_TrainTicketV2", + "name": "OCR火车票", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "OCR_TaxiInvoiceV2", + "name": "OCR出租车发票", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "OCR_OfficialSealV2", + "name": "OCR公章", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "OCR_MergeCarOCR", + "name": "汽车场景文字识别", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "OCR_MergeEducationOCR", + "name": "教育场景文字识别", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "OCR_HouseCertV2", + "name": "OCR房产证", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "OCR_CommonEnglishNumbersCode", + "name": "普通验证码", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "OCR_BusinessLicenseV2", + "name": "OCR营业执照", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "OCR_VinV2", + "name": "OCR车辆vin码", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "OcrOffline_GetOcrTextNew", + "name": "图像OCR识别", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "OcrOffline_GetOcrTable", + "name": "获取表格数据(OCR)", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "OcrOffline_GetOcrTextPosition", + "name": "图像OCR识别(含坐标)", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "PDF_GetPdfInformation", + "name": "获取 PDF 文档信息", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "PDF_SetPdfWaterMarkV1", + "name": "PDF 加水印", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "PDF_SetPdfWaterMark", + "name": "PDF 加水印", + "canonical": "PDF_SetPdfWaterMarkV1", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "PDF_PdfEncryption", + "name": "加密 PDF 文档", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "PDF_GetPdfImg", + "name": "提取 PDF 图片", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "PDF_GetPdfPageNum", + "name": "获取 PDF 总页数", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "PDF_ConcatPdfV1", + "name": "合并 PDF 文档", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "PDF_ConcatPdf", + "name": "合并 PDF 文档", + "canonical": "PDF_ConcatPdfV1", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "PDF_GetPdfTable", + "name": "读取 PDF 表格", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "PDF_PdfToImg", + "name": "PDF 转图片", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "PDF_CreateNewPdf", + "name": "生成新的 PDF 文档", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "PDF_GetPdfText", + "name": "读取 PDF 文本", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Regex_Test", + "name": "匹配判断", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Regex_FindAll", + "name": "全部查找", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Regex_FindNew_1", + "name": "文本内容提取(指定)", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Regex_FindStr", + "name": "文本内容提取", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Regex_FindNew", + "name": "指定查找", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Regex_Find", + "name": "指定查找", + "canonical": "Regex_FindNew", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Regex_FindAllNew", + "name": "文本内容提取(全部)", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Regex_TestNew", + "name": "判断文本匹配", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Regex_FindStrV1", + "name": "提取文本内容", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Scenario_TextComparison", + "name": "文档比对", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "ScreenControl_Screenlock", + "name": "屏幕锁屏", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "ScreenControl_ScreenUnlock", + "name": "唤醒屏幕(非登录解锁)", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "StrUtil_InStr", + "name": "查找", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "StrUtil_ListToString", + "name": "列表聚合成文本", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "StrUtil_CharCode", + "name": "将ASCII码转换为文本", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "StrUtil_CutOutStrV1", + "name": "截取文本", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "StrUtil_CutOutStr", + "name": "截取文本", + "canonical": "StrUtil_CutOutStrV1", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "StrUtil_CreateRandomStr", + "name": "创建随机文本", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "StrUtil_SplitStr", + "name": "分割文本为列表", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "StrUtil_Split", + "name": "分割字符串", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "StrUtil_CaseChange", + "name": "转换大小写", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "StrUtil_AddToStr", + "name": "追加文本", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "StrUtil_Rtrim", + "name": "裁剪右侧空格", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "StrUtil_DelTrim", + "name": "去除文本两端空格", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "StrUtil_Trim", + "name": "裁剪两侧空格", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "StrUtil_LowerCase", + "name": "字母转小写", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "StrUtil_LookUpStr", + "name": "查找文本", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "StrUtil_ReverseStr", + "name": "反转文本", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "StrUtil_UpperCase", + "name": "字母转大写", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "StrUtil_Mid", + "name": "取中间内容", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "StrUtil_CharAsc", + "name": "将文本转换为ASCII码", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "StrUtil_CompleteStr", + "name": "补齐文本", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "StrUtil_Replace", + "name": "替换文本", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "StrUtil_Left", + "name": "取左侧内容", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "StrUtil_Ltrim", + "name": "裁剪左侧空格", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "StrUtil_Len", + "name": "获取文本长度", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "StrUtil_Right", + "name": "取右侧内容", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "System_GetEnv", + "name": "获取环境变量", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "System_ReadCredential", + "name": "获取Windows凭据", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "System_GetTempPath", + "name": "获取临时文件夹路径", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "System_GetHomePath", + "name": "获取用户文件夹路径", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "System_GetSystemPath", + "name": "获取系统文件夹路径", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "System_SetEnv", + "name": "设置环境变量", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "System_GetInputMethodState", + "name": "获取输入法状态", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "System_ConnectRemoteDesktop", + "name": "连接远程桌面", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "System_AddCredential", + "name": "添加Windows凭据", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "System_SetInputMethodState", + "name": "设置输入法状态", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "System_CloseRemoteDesktop", + "name": "关闭远程连接", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "System_ScreenSaverShowV1", + "name": "开启屏保", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "System_ScreenSaverShow", + "name": "开启屏保", + "canonical": "System_ScreenSaverShowV1", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "System_ExecuteCommandV1", + "name": "执行命令行", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "System_ExecuteCommand", + "name": "执行命令行", + "canonical": "System_ExecuteCommandV1", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "System_DeleteCredential", + "name": "删除Windows凭据", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "System_ScreenSaverStop", + "name": "关闭屏保", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "System_PlaySound", + "name": "播放音频", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Time_GetDateV2", + "name": "获取日期时间", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Time_GetDateV1", + "name": "获取日期时间", + "canonical": "Time_GetDateV2", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Time_GetDate", + "name": "获取日期时间", + "canonical": "Time_GetDateV2", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Time_CalDate", + "name": "计算时长", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Time_WeekDay", + "name": "取星期", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Time_Day", + "name": "取第几天", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Time_Date", + "name": "取日期", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Time_FormatNew", + "name": "将时间戳转换为日期/时间", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Time_Hour", + "name": "取时", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Time_DateOffset_V1", + "name": "增加/减少时间", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Time_DateOffset", + "name": "增加/减少时间", + "canonical": "Time_DateOffset_V1", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Time_GetDatetimeObj", + "name": "获取日期时间信息", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Time_Format", + "name": "时间戳转时间", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Time_DatetimeToTimestamp", + "name": "时间转时间戳", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Time_TimeStamp", + "name": "取时间戳", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Time_TimeTypeConversion_V1", + "name": "转换日期时间格式", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Time_DateToTimestamp", + "name": "将日期/时间转换为时间戳", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Time_Month", + "name": "取月份", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Time_Time", + "name": "取时分秒", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Time_Year", + "name": "取年份", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Time_TimeTypeConversion", + "name": "日期时间格式转换", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Time_Now", + "name": "取时间", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Time_Second", + "name": "取秒", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Time_Minute", + "name": "取分", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "WebBrowser_Switch_V1", + "name": "切换页面", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "WebBrowser_Switch", + "name": "切换页面", + "canonical": "WebBrowser_Switch_V1", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "WebBrowser_SetScrollPos_V1", + "name": "设置滚动条位置", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "WebBrowser_SetScrollPos", + "name": "设置滚动条位置", + "canonical": "WebBrowser_SetScrollPos_V1", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "WebBrowser_GetTAB_V2", + "name": "获取网页 Tab 对象", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "WebBrowser_GetTAB_V1", + "name": "获取网页 Tab 对象", + "canonical": "WebBrowser_GetTAB_V2", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "WebBrowser_SaveAs_V1", + "name": "下载文件(点击按钮)", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "WebBrowser_SaveAs", + "name": "下载文件(点击按钮)", + "canonical": "WebBrowser_SaveAs_V1", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "WebBrowser_GetWeblistening", + "name": "获取监听结果", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "WebBrowser_DataCollectionV5", + "name": "数据采集", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "WebBrowser_BatchDataCrawlNew", + "name": "数据采集", + "canonical": "WebBrowser_DataCollectionV5", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "WebBrowser_DataCollectionV4", + "name": "数据采集", + "canonical": "WebBrowser_DataCollectionV5", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "WebBrowser_DataCollectionV3", + "name": "数据采集", + "canonical": "WebBrowser_DataCollectionV5", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "WebBrowser_DataCollectionV2", + "name": "数据采集", + "canonical": "WebBrowser_DataCollectionV5", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "WebBrowser_BatchDataCrawlNewV1", + "name": "数据采集", + "canonical": "WebBrowser_DataCollectionV5", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "WebBrowser_DataCollectionV1", + "name": "数据采集", + "canonical": "WebBrowser_DataCollectionV5", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "WebBrowser_DataCollection", + "name": "数据采集", + "canonical": "WebBrowser_DataCollectionV5", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "WebBrowser_DataCrawl", + "name": "数据采集", + "canonical": "WebBrowser_DataCollectionV5", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "WebBrowser_DataCrawl_software", + "name": "数据采集", + "canonical": "WebBrowser_DataCollectionV5", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "WebBrowser_DataCrawl_web", + "name": "数据采集", + "canonical": "WebBrowser_DataCollectionV5", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "WebBrowser_RunJsInIeBySelector_v3", + "name": "执行JS", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "WebBrowser_RunJsInIeBySelectorGround", + "name": "执行JS", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "WebBrowser_RunJsInIeBySelector_v2", + "name": "执行JS", + "canonical": "WebBrowser_RunJsInIeBySelector_v3", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "WebBrowser_RunJsInIeBySelector_v1", + "name": "执行JS", + "canonical": "WebBrowser_RunJsInIeBySelector_v3", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "WebBrowser_RunJsInIeBySelector", + "name": "执行JS", + "canonical": "WebBrowser_RunJsInIeBySelector_v3", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "WebBrowser_RunJsInIeByTitle", + "name": "执行JS", + "canonical": "WebBrowser_RunJsInIeBySelector_v3", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "WebBrowser_CreateV3", + "name": "打开网页", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "WebBrowser_CreateV2", + "name": "打开网页", + "canonical": "WebBrowser_CreateV3", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "WebBrowser_Create", + "name": "打开网页", + "canonical": "WebBrowser_CreateV3", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "WebBrowser_CreateBackground", + "name": "打开网页", + "canonical": "WebBrowser_CreateV3", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "WebBrowser_Reload", + "name": "刷新", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "WebBrowser_CloseWeb_V2", + "name": "关闭网页", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "WebBrowser_CloseWeb_V1", + "name": "关闭网页", + "canonical": "WebBrowser_CloseWeb_V2", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "WebBrowser_CloseWeb", + "name": "关闭网页", + "canonical": "WebBrowser_CloseWeb_V2", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "WebBrowser_Stop", + "name": "停止网页加载", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "WebBrowser_GetDocument", + "name": "获取网页源码", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "WebBrowser_GetCookie", + "name": "获取Cookies(指定)", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "WebBrowser_DownFile_V1", + "name": "下载文件(指定链接)", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "WebBrowser_DownFile", + "name": "下载文件(指定链接)", + "canonical": "WebBrowser_DownFile_V1", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "WebBrowser_DownloadFile_V1", + "name": "下载文件", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "WebBrowser_DownloadFile", + "name": "下载文件", + "canonical": "WebBrowser_DownloadFile_V1", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "WebBrowser_GetCookieNew", + "name": "获取完整Cookies", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "WebBrowser_GetBrowserPicV1", + "name": "浏览器截图", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "WebBrowser_GetBrowserPic", + "name": "浏览器截图", + "canonical": "WebBrowser_GetBrowserPicV1", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "WebBrowser_GetTAB", + "name": "获取Tab页", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "WebBrowser_Close_V1", + "name": "关闭浏览器", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "WebBrowser_Close", + "name": "关闭浏览器", + "canonical": "WebBrowser_Close_V1", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "WebBrowser_Maximize", + "name": "最大化浏览器", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "WebBrowser_GoForward", + "name": "前进", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "WebBrowser_SetCookies", + "name": "设置Cookies", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "WebBrowser_StartWeblistening", + "name": "启动网页监听", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "WebBrowser_Wait", + "name": "等待网页加载", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "WebBrowser_UploadDialog", + "name": "处理上传对话框", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "WebBrowser_DataCrawler", + "name": "爬取数据", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "WebBrowser_StopWeblistening", + "name": "停止网页监听", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "WebBrowser_SetCookies_V1", + "name": "设置Cookie", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "WebBrowser_GetTitle", + "name": "获取Title", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "WebBrowser_GetScrollPos_V1", + "name": "获取滚动条位置", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "WebBrowser_GetScrollPos", + "name": "获取滚动条位置", + "canonical": "WebBrowser_GetScrollPos_V1", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "WebBrowser_GoBack", + "name": "后退", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "WebBrowser_GoUrl", + "name": "跳转网页", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "WebBrowser_BatchDataCrawl", + "name": "批量数据采集(beta)", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "WebBrowser_GetUrl", + "name": "获取URL", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "WebBrowser_GetCookies", + "name": "获取Cookies", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "WebBrowser_Minimize", + "name": "最小化浏览器", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Window_SizeWindow_v1", + "name": "调整窗口大小", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Window_SizeWindow", + "name": "调整窗口大小", + "canonical": "Window_SizeWindow_v1", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Window_SetWindowState_v1", + "name": "设置窗口状态", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Window_SetWindowState", + "name": "设置窗口状态", + "canonical": "Window_SetWindowState_v1", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Window_GetWindowRect", + "name": "获取窗口范围", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Window_CloseWindow", + "name": "关闭软件窗口", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Window_GetActive", + "name": "获取活动窗口", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Window_ActiveWindow_v1", + "name": "激活窗口", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Window_SetActive", + "name": "激活窗口", + "canonical": "Window_ActiveWindow_v1", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Window_WindowExists", + "name": "判断窗口存在", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Window_Get", + "name": "获取窗口", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Window_SetPos", + "name": "设置窗口", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Window_GetWindow_v1", + "name": "获取窗口对象", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Window_GetWindow", + "name": "获取窗口对象", + "canonical": "Window_GetWindow_v1", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Window_CloseWindow_v1", + "name": "关闭窗口", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Window_Close", + "name": "关闭窗口", + "canonical": "Window_CloseWindow_v1", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Window_GetWindowMessage_v1", + "name": "获取窗口信息", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Window_GetWindowMessage", + "name": "获取窗口信息", + "canonical": "Window_GetWindowMessage_v1", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Window_MoveWindow_v1", + "name": "移动窗口位置", + "status": "keep", + "reason": "目标域 / 协议内的最新主版本" + }, + { + "id": "Window_MoveWindow", + "name": "移动窗口位置", + "canonical": "Window_MoveWindow_v1", + "status": "hide", + "reason": "同名旧版本或重复别名,保留执行兼容" + }, + { + "id": "Window_ActiveWindow", + "name": "激活软件窗口", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Window_GetScreenSize", + "name": "获取屏幕尺寸", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Window_SetWindowShow", + "name": "设置窗口是否显示", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Window_WindowList", + "name": "获取窗口对象列表", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Window_GetRect", + "name": "窗口属性", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Window_MaximumSize", + "name": "窗口最大化", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Window_WaitWindow", + "name": "等待窗口", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Word_ReadSelect", + "name": "读取选中文本", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Word_SaveAs", + "name": "Word另存为", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Word_SetFontName", + "name": "设置字体", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Word_CutSelect", + "name": "剪切", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Word_ReadAll", + "name": "读取Word文本", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Word_InsertPicture", + "name": "插入Word图片", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Word_SetFontStyle", + "name": "设置字体样式", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Word_New", + "name": "新建word", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Word_SetAlign", + "name": "设置对齐方式", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Word_Save", + "name": "保存Word", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Word_ReadTable", + "name": "读取Word表格", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Word_New_V1", + "name": "新建Word文档", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Word_Open", + "name": "打开Word文档", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Word_SelectRow", + "name": "选择行", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Word_GetPath", + "name": "获取Word路径", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Word_DeleteSelect", + "name": "删除", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Word_SetPosition", + "name": "设置光标位置", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Word_Write", + "name": "写入文字至Word", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Word_PositionToSelect", + "name": "查找文本后设置光标位置", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Word_Close", + "name": "关闭Word", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Word_MovePosition", + "name": "移动光标位置", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Word_SetFontColor", + "name": "设置字体颜色", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Word_CopySelect", + "name": "复制", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Word_PasteSelect", + "name": "粘贴", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Word_Replace", + "name": "替换", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Word_WriteTable", + "name": "插入Word表格", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Word_Enter", + "name": "回车", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Word_SetFontSize", + "name": "设置字体大小", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Word_SelectAll", + "name": "全选", + "status": "keep", + "reason": "唯一能力" + }, + { + "id": "Word_InsertPage", + "name": "插入分页符", + "status": "keep", + "reason": "唯一能力" + } + ] +} \ No newline at end of file diff --git a/src/main/capabilities/duplicate-capabilities.test.ts b/src/main/capabilities/duplicate-capabilities.test.ts new file mode 100644 index 0000000..2a538d8 --- /dev/null +++ b/src/main/capabilities/duplicate-capabilities.test.ts @@ -0,0 +1,19 @@ +import { readFile } from "node:fs/promises"; +import { describe, expect, it } from "vitest"; + +describe("duplicate capability policy", () => { + it("keeps one canonical capability and marks compatible aliases", async () => { + const audit = JSON.parse(await readFile("resources/capability-duplicates.json", "utf8")); + const decisions = audit.decisions as Array<{ id: string; status: string; canonical?: string }>; + const kept = decisions.filter((item) => item.status === "keep"); + const hidden = decisions.filter((item) => item.status === "hide"); + expect(kept.length).toBe(658); + expect(hidden.length).toBe(236); + expect(audit.editableBefore).toBe(kept.length + hidden.length); + expect(audit.editableAfter).toBe(kept.length); + const keptIds = new Set(kept.map((item) => item.id)); + expect(keptIds.size).toBe(kept.length); + for (const item of hidden) { if (!item.canonical) throw new Error("hidden capability missing canonical"); expect(keptIds.has(item.canonical)).toBe(true); } + expect(hidden.every((item) => item.canonical && !keptIds.has(item.id))).toBe(true); + }); +}); diff --git a/src/main/catalog.ts b/src/main/catalog.ts index d6d5053..56b9e5f 100644 --- a/src/main/catalog.ts +++ b/src/main/catalog.ts @@ -5,6 +5,7 @@ import type { Catalog, CatalogComponent } from "../shared/types"; let cached: Catalog | null = null; let excludedIds: Set | null = null; +let duplicateMap: Map | null = null; function resolveCatalogPath(): string { const candidates = [ @@ -19,6 +20,31 @@ function resolveCatalogPath(): string { throw new Error(`catalog.json not found; tried: ${candidates.join(", ")}`); } +function duplicatesPath(): string { + const candidates = [ + process.env.RPA_DUPLICATE_PATH, + path.join(process.resourcesPath, "capability-duplicates.json"), + path.join(app.getAppPath(), "resources", "capability-duplicates.json"), + path.join(__dirname, "../../resources/capability-duplicates.json") + ].filter(Boolean) as string[]; + return candidates.find((candidate) => fs.existsSync(candidate)) || ""; +} + +function loadDuplicateMap(): Map { + const map = new Map(); + const file = duplicatesPath(); + if (!file) return map; + try { + const parsed = JSON.parse(fs.readFileSync(file, "utf8")) as { decisions?: Array<{ id?: string; status?: string; canonical?: string }> }; + for (const decision of parsed.decisions || []) { + if (decision.id && decision.status === "hide" && decision.canonical) map.set(decision.id, decision.canonical); + } + } catch { + // 审计文件损坏时保留完整目录 + } + return map; +} + function excludedPath(): string { const candidates = [ process.env.RPA_EXCLUDED_PATH, @@ -53,15 +79,21 @@ export function loadCatalog(): Catalog { const raw = fs.readFileSync(catalogPath(), "utf8"); const catalog = JSON.parse(raw) as Catalog; const excluded = loadExcludedIds(); + const duplicates = duplicateMap || loadDuplicateMap(); + duplicateMap = duplicates; catalog.components = catalog.components .filter((component) => !excluded.has(component.id)) - .map((component: CatalogComponent) => component); - catalog.counts.total = catalog.components.length; - catalog.counts.vendor = catalog.components.filter((component) => component.kind === "vendor").length; - catalog.counts.native = catalog.components.filter((component) => component.kind === "native").length; - catalog.counts.triggers = catalog.components.filter((component) => component.kind === "trigger").length; - catalog.counts.fields = catalog.components.reduce((sum, component) => sum + component.fields.length, 0); - for (const group of catalog.groups) group.count = catalog.components.filter((component) => component.group === group.id).length; + .map((component: CatalogComponent) => ({ + ...component, + duplicateOf: duplicates.get(component.id) + })); + const visibleComponents = catalog.components.filter((component) => !component.duplicateOf); + catalog.counts.total = visibleComponents.length; + catalog.counts.vendor = visibleComponents.filter((component) => component.kind === "vendor").length; + catalog.counts.native = visibleComponents.filter((component) => component.kind === "native").length; + catalog.counts.triggers = visibleComponents.filter((component) => component.kind === "trigger").length; + catalog.counts.fields = visibleComponents.reduce((sum, component) => sum + component.fields.length, 0); + for (const group of catalog.groups) group.count = visibleComponents.filter((component) => component.group === group.id).length; cached = catalog; return catalog; } diff --git a/src/renderer/src/panels/Palette.tsx b/src/renderer/src/panels/Palette.tsx index f4813c9..9f7cfad 100644 --- a/src/renderer/src/panels/Palette.tsx +++ b/src/renderer/src/panels/Palette.tsx @@ -23,6 +23,7 @@ export function Palette({ catalog, onAdd }: PaletteProps) { const filtered = useMemo(() => { const keyword = query.trim().toLowerCase(); return catalog.components.filter((component) => { + if (component.duplicateOf) return false; if (!keyword) return true; const haystack = [ component.name, diff --git a/src/shared/types.ts b/src/shared/types.ts index c4a685c..69a21f9 100644 --- a/src/shared/types.ts +++ b/src/shared/types.ts @@ -59,6 +59,8 @@ export interface CatalogComponent { output: CatalogOutput; slots: string[]; nodeKind?: string; + /** 同名旧版本 / 重复别名指向的保留能力 ID。 */ + duplicateOf?: string; } export interface CatalogGroup {