# RPA Studio 画布式 RPA 桌面端(Electron + React Flow)。把 1016 项能力目录拖到画布上,连线、配置、运行,生成可执行的 RPA 流程。 > 当前状态:任务优先的编排工作台。默认进入“编排”任务列表,编辑任务后进入上下流向画布;组件库按分类树展示,设置为独立入口。 ## 已实现(Day 1) - Electron 31 + React 18 + TypeScript + React Flow 画布 - 1016 项组件目录:997 厂商 + 16 控制 + 3 触发器,搜索 / 11 组筛选 / 可执行与待接入状态 - 编排工作区:任务列表、任务概览、运行/编辑入口;左侧主导航仅保留“编排”和“设置” - 组件库树:按能力分组展开/收起,搜索命中时自动展开分类,叶子组件支持拖拽 - 拖拽到画布、节点卡片、连线、缩放/平移/MiniMap、框选、撤销/重做 - 画布主流程上下连接;异常出口默认隐藏,可在节点失败策略中按需开启 - IF / 计次循环 / 遍历 / 条件循环 / 异常捕获 容器:可把组件拖入分支或循环体 - 属性面板:按字段类型渲染输入、必填、变量、失败策略(超时/重试/间隔/跳过/延时) - 流程 JSON 本地原子保存、自动保存、重启恢复 - 运行页与设置页骨架;运行期完全离线 ## 开发 ```powershell npm install npm run dev:local # 使用 RPA_ELECTRON_DIST 或 C:\electron-rpa\dist 的 Electron # 或 npm run build node scripts/start.mjs --no-sandbox npm run test:e2e # 隔离启动应用并执行本地网页订单完整流程 ``` > 为什么需要 `dev:local`:当前工作区 `D:\RPA` 的 ACL 会让 Electron 自带的 Chromium 沙箱启动失败(`--version` 都返回 0x80000003)。 > 把 Electron 运行时放在工作区外(例如 `C:\electron-rpa\dist`)即可正常启动;打包产物解压到普通目录后不受影响。 > `--no-sandbox` 仅用于本地调试,不作为产品默认。 ## 目录 ``` src/main 主进程:窗口、目录加载、流程存储、IPC src/preload 白名单桥 src/renderer React UI:画布、组件库、属性面板、运行/设置页 src/shared 主/渲染共享类型 scripts build-catalog / dev-safe / start / cdp-probe / 打包 resources catalog.json(1016 项派生元数据)、夹具站、桌面桥 docs 现状分析、实施方案 ``` ## 文档 - [现状分析与可行性](docs/01-现状分析与可行性.md) - [实施方案(三天)](docs/02-实施方案.md) ## 边界 - 1016 项目录中当前有 412 项通过能力注册表或运行时容器标记为可执行,覆盖控制/触发、字符串/集合/INI/二维表格与 Databook、数组重塑、时间转换、文件、浏览器元素常用及 DOM 高级能力、HTTP、Excel/CSV与表格辅助、系统路径与环境变量、进程管理、桌面键鼠/窗口对象/剪贴板/对话框、PDF、Word、邮件发送、文本差异、工作日判断、屏幕截图、离线图像查找与点击;其余灰标「待接入」。运行前检查会提前定位待接入组件、必填参数、多出口与断链节点。 - 内置本地演示站默认监听 `127.0.0.1:17863`;新用户首次启动会获得“本地网页订单演示”任务,可离线验证网页输入、点击和文本读取。 - 浏览器可信输入与定位机制参考 `C:\rpa-demo`:CDP Input、唯一定位、遮挡检查和输入回读校验;不使用 `el.click()` 伪造点击。 - 不包含厂商代码、二进制、模型或前端资产;目录是从厂商元数据派生的静态定义。 - 运行期不访问云服务;HTTP/邮件属于用户显式配置的外部系统。