XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFEWorkflow

【WinUI】XFE基于windows的工作流

公开
关注 0 Fork 0 Star 0
README.md

XFEWorkflow

基于 .NET 10、WinUI 3 和 XFEExtension 的本地自动化工作台。提供节点画布、C# 节点、纯 C# 工作流、独立 Runner、插件管理和分享插件与工作流的 Space。

启动

开发环境需要 Windows、.NET 10 SDK 和 WinUI 构建工具:

dotnet build XFEWorkflow.slnx -p:Platform=x64 -nr:false -m:1
& .\XFEWorkflow\XFEWorkflow\bin\x64\Debug\net10.0-windows10.0.22621.0\win-x64\XFEWorkflow.exe

首次启动自动安装官方插件并创建欢迎工作流。点击“运行”即可验证本地执行。发布包包含 .NET 运行时、Runner、Roslyn 引用程序集和本地 Monaco;运行代码无需另装 SDK。WebView2 使用 Windows 安装的 Evergreen Runtime。

完整发布与测试:

powershell -NoProfile -ExecutionPolicy Bypass -File tools/Test.ps1 -Ui
powershell -NoProfile -ExecutionPolicy Bypass -File tools/Publish-Release.ps1 -Platform x64 -IncludeLinuxServer

输出在 .artifacts/。保留 x86、ARM64 构建配置;首轮运行验证使用 Windows 11 x64。输入框架的 5.0.0-driver-local 包随仓库放在 vendor/nuget,由 NuGet.Config 引用,其余依赖从 NuGet 恢复。

使用

  • 插件可注册原生 WinUI 页面。“Agent 浏览器”插件提供 WebView2 和可调宽的 Markdown 聊天栏,优先适配 DeepSeek;browser-debugger 技能、Node 和 Playwright 随插件内置,每轮自动导入,无需配置技能目录或检测本地环境。设置中直接填写、验证和更换 API Key,留空保存保留原密钥及对话。用户消息显示登录账号头像与名称并靠右,AI 回复及工具调用靠左显示头像。使用说明、页面 SDK。

  • Agent 浏览器支持多个独立会话,每个会话拥有自己的多标签浏览器和登录配置;切换会话同时切换网页,重启恢复标签列表、选中标签、网址、登录状态、聊天、草稿及完成的模型上下文。操作次数默认不限,设置为 0 表示不限,正整数表示上限。中断任务不会自动重做。会话与浏览器说明。

  • 内置基础节点现有 164 个动作和 4 个系统触发器。本轮新增 141 个,涵盖文本拼接/拆分/替换/正则、数学与布尔、数组筛选/排序/字段投影、对象与 JSON、日期时间、编码与路径,以及计数循环、break/continue/throw。Ctrl+K 可搜索中文或 C# 方法名;节点教程与四份可导入模板、完整能力目录。参数通过类型化连线传递,普通消息不插值,中文与组合表情保持原样。

  • “新建工作流”只需填写名称,默认创建图形化工作流;进入编辑器后可随时切换图形化与 C#,分别保留图形和代码。节点库使用可折叠分类和紧凑列表,标注插件名称;支持收藏、最近使用和按插件筛选。Ctrl+K 搜索节点、功能或插件,多个关键词用空格分隔,Enter 添加首个结果、Esc 清空;搜索自动展开命中分类,清空后恢复原先的折叠状态。

  • 拖动面板之间的分隔条调整节点库和属性区宽度、运行输出高度;展开的导航栏与浏览器拾取结果区也可拖动调整。尺寸按工作区保存,窗口缩小时限制到可用空间,放大后恢复偏好尺寸。分隔条可用方向键微调,双击或 Home 恢复默认值;顶部“视图”菜单提供“重置面板布局”。

  • 将节点拖到带边框的画布,按住圆环端口拖出预览线,松开到另一端口完成连接;也可依次点击两端。蓝色连接执行顺序,数据端口按类型区分颜色;悬停查看用途,属性显示连接来源和去向。拖动已连接的目标圆环可改接,松到空白画布可断开,Ctrl+Z/Y 撤销或重做;Esc 取消改接并保留原线。也可选中连线按 Delete 或右键端口断开。左侧节点库使用系统强调色并跟随浅/深色主题,详见端口与类型转换。

  • 拖动空白处、按住空格拖动或中键拖动可平移;Shift 拖动框选、Shift 点击多选;直接滚动鼠标滚轮,以鼠标位置为中心缩放,“适应画布”查看全图。滚动条默认隐藏。

  • Ctrl+C/V 复制粘贴,Ctrl+Z/Y 撤销重做,右键删除连线。窄窗口通过“节点属性”按钮展开属性面板;循环、并行与异常处理通过“编辑子图”组织。

  • 遍历数组使用“逻辑控制 → 遍历集合”,在 body 子图中放置“当前循环项”,把 item 输出直接连到“日志操作 → 输出日志”的 message,消息参数无需修改;index 输出从 0 开始的数字序号。主图后续步骤在全部完成后执行。可导入模板与完整教程。

  • 企业微信联系人可用可导入模板:读取缓存联系人 → 遍历 → 逐项原样输出联系人,通过数据连线传递完整对象。在“插件中心 → 企业微信”先连接客户端;当前接口只提供已加载缓存,不保证完整通讯录。配置与连线。

  • 读取联系人 ID、名称或其他对象字段,使用“变量与数据 → 读取对象字段”,把 value 输出连到后续节点,found 可用于系统条件判断。消息参数无需表达式。联系人字段模板、无需插件的示例及字段路径与连线教程。JSON 日志、调试、运行记录和导出完整显示中文与表情,包括组合表情、肤色和旗帜,保留原文中的字面转义。

  • C# 工作流实现 IWorkflow。C# 节点填写方法体,使用 context.InvokeAsync 调用插件。诊断列表双击跳转,运行错误可以从历史记录定位。

  • 编辑器 F5 运行/继续、F9 设置选中节点断点、F10 单步越过、F11 进入循环/子流程,Shift+F5 停止。底部“调试”页显示参数、变量、输入与已有输出;自动任务忽略断点。节点调试教程。

  • 标题栏与左下角用户选项卡同步显示真实登录账号的昵称和头像。点击右上角先打开用户弹窗,再选择个人中心、Space、登录/注册、切换账号或退出登录。个人中心提供资料编辑、头像预览和作者中心,适配浅深主题与窄窗口。账号界面说明。

  • “工作流”列表与“工作流编辑器”独立:列表可展开查看触发状态、下次运行时间和优先级,并统一开启、关闭工作流。触发器从节点库拖入,在节点属性中配置。导入、复制的工作流默认关闭。

  • 编辑器支持多个可关闭、可重排的标签页;重复打开定位到已有标签,切换标签保留各自编辑状态。文件、编辑、工作流、视图、工具命令放在顶部菜单;Ctrl+N 新建、Ctrl+S 保存、Ctrl+W 关闭标签。保存编辑内容不会覆盖列表中的启停状态与优先级。

  • 展开工作流列表可查看触发器与下次运行时间。支持间隔、每日、文件变化、插件事件和上游工作流完成;事件可映射为工作流输入,完成事件可把上游输出交给下游。托盘驻留期间继续运行。触发器与联动说明。

  • “插件中心”管理本地插件;独立的“Space”页面提供插件、工作流、我的发布及管理员审核。可上传 .xfeplugin,也可选择本地工作流或 .xfeworkflow / .json 文件发布。下载前可只读预览图形、结构化子图、对应 C# 与插件依赖;下载时自动获取锁定的插件版本,导入为默认关闭的新副本。账号和 Space 固定共用 http://localhost:3300/space/v1/,客户端不提供地址修改入口。上传、预览、审核与下载说明。

  • 在“设置 → 凭据”保存 ai.key、wecom.webhook 等引用;“设置 → 桌面输入”管理标准输入、HID 与紧急停止。AI 模板需要配置数据源、兼容 Chat Completions 的服务地址、模型与凭据。真实 AI 和企业微信服务由使用者配置。

  • 内置浏览器为不同登录配置保存独立会话;点击“拾取元素”获取选择器和 iframe 路径。桌面插件使用 UIA3,支持按窗口、进程 ID 和 AutomationId 定位。

  • “屏幕与识别”插件提供 17 个节点:屏幕/图像区域框选、离线中英文 OCR、文字与模板图像的查找/等待/点击、颜色判断、鼠标操作和剪贴板。区域及坐标可在属性面板可视化拾取;顶部“工具”菜单提供“新建框选 OCR 模板”。使用说明与示例。

  • 找图节点支持直接从屏幕框选目标模板、缩略图与原图预览、重新框选、本地图像导入、1%~100% 匹配相似度和无点击的测试预览。模板内嵌到工作流,随保存、复制和导入导出携带;旧版容差规则可以保留。

  • 关闭主窗口会隐藏到托盘。托盘使用支持浅深主题的原生 WinUI 云母菜单,可打开、紧急停止、恢复调度或退出。Ctrl+Alt+F12 紧急停止任务、暂停自动调度并释放按键;从托盘或“设置 → 桌面输入”恢复调度。HID 仅在 Windows 11 x64 显式安装、启用;标准输入为默认后端。托盘菜单说明。

  • 运行输出、诊断和日志页面统一使用 XFE 日志,只显示主动日志和必要错误;开始、结束、遍历等生命周期不写入日志或导出。计数徽章保持正圆,内容区与选中选项卡背景相连并同步浅深主题。运行记录可查看输入、输出、节点日志并跳转到完整日志;日志可筛选工作流与运行、定位节点和导出。“日志操作 → 导出运行日志”可在流程中保存本次运行的日志快照,支持 UTF-8 文本与 JSON。导出格式与范围。

命令行节点提供 PowerShell 脚本(Windows PowerShell 5.1)和 CMD 命令,支持多行脚本、工作目录、环境变量、最长执行时间与管理员启动。管理员模式由 Windows 显示 UAC,取消后不会执行命令。stdout、stderr、exitCode、succeeded 可以连到后续节点;result 提供完整结果。默认保留非零退出码供条件节点判断,也可开启“非零退出码报错”。每个输出流最多保留 256 Ki 字符,超出后继续排空并设置 truncated;停止或超时会终止所属命令及子进程。

工作区通过 AutoPath 放在应用本地数据目录的 Workspace 中;XFE_WORKFLOW_DATA 可指定独立工作区。工作流、运行记录、插件与浏览器配置分别保存,凭据使用当前 Windows 用户 DPAPI 加密。

节点库交互参考 Node-RED 的分类折叠与搜索及 Unreal Blueprint 的收藏、筛选与拖放,使用原生 WinUI 控件和系统强调色实现。画布内节点保留原有样式。

模块

项目 职责
XFEWorkflow WinUI、MVVM、画布、Monaco、浏览器、托盘与管理页面
XFEWorkflow.Abstractions 工作流数据模型、插件 SDK、能力和触发器接口
XFEWorkflow.Core 图校验、结构化逻辑、执行上下文和变量作用域
XFEWorkflow.Infrastructure AutoConfig 存储、Roslyn、插件加载、调度、IPC、Space 客户端
XFEWorkflow.Runner 每次运行或插件监听的独立执行进程
XFEWorkflow.Space.Contracts / Server 发布协议、账号、上传、审核与下载服务
XFEWorkflow.Plugins.Standard / Desktop HTTP、文件、AI、企微、网页、定时触发和桌面能力
XFEWorkflow.Plugins.WeCom 企业微信收到消息触发、独立字段输出、引用回复与持久化去重;筛选使用系统条件,兼容群机器人接口
XFEWorkflow.Plugins.Vision 离线 OCR、区域截图、文字/图像定位、颜色与鼠标能力
XFEWorkflow.Test XFE XUnit 自动测试与本地模拟服务

文档

插件与 C# 按本地受信任代码执行。Runner 提供故障隔离,程序集加载上下文负责依赖隔离。Windows 凭据文件应连同工作区一起备份,且只能由原用户解密。

LICENSE.txt MIT

MIT License

Copyright (c) [year] [fullname]

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.