From 3ee4a5f7a80393316788b005187c2a140cb58996 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E9=93=AD=E8=BD=A9?= Date: Wed, 14 Oct 2026 17:33:18 +0800 Subject: [PATCH] chore: prepare 2.0.0 plugin development --- apps/showcase_ui/package-lock.json | 4 +- apps/showcase_ui/package.json | 2 +- docs/plans/2.0.0-plugins.md | 101 +++++++++++++++++++++++++++++ pyproject.toml | 2 +- uv.lock | 2 +- 5 files changed, 106 insertions(+), 5 deletions(-) create mode 100644 docs/plans/2.0.0-plugins.md diff --git a/apps/showcase_ui/package-lock.json b/apps/showcase_ui/package-lock.json index ee4e647..3f3e5b2 100644 --- a/apps/showcase_ui/package-lock.json +++ b/apps/showcase_ui/package-lock.json @@ -1,12 +1,12 @@ { "name": "artemis-showcase-ui", - "version": "1.5.2", + "version": "2.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "artemis-showcase-ui", - "version": "1.5.2", + "version": "2.0.0", "dependencies": { "@angular/cdk": "^22.1.5", "@angular/common": "^22.1.4", diff --git a/apps/showcase_ui/package.json b/apps/showcase_ui/package.json index 8fe1da7..d20e298 100644 --- a/apps/showcase_ui/package.json +++ b/apps/showcase_ui/package.json @@ -1,6 +1,6 @@ { "name": "artemis-showcase-ui", - "version": "1.5.2", + "version": "2.0.0", "scripts": { "ng": "ng", "start": "ng serve --proxy-config proxy.conf.json", diff --git a/docs/plans/2.0.0-plugins.md b/docs/plans/2.0.0-plugins.md new file mode 100644 index 0000000..13b38f8 --- /dev/null +++ b/docs/plans/2.0.0-plugins.md @@ -0,0 +1,101 @@ +# ARTEMIS 2.0.0:插件与跨端测试 + +状态:已确认产品设计,进入开发准备;本文件中的功能尚未全部实现。 + +开发分支:`codex/v2.0.0-plugins`,从 1.5.2 主线建立。版本号为 2.0.0,发布前不创建正式版本标签。1.5.x 的 BUG 修复继续在主线进行,后续正常合并进开发分支。 + +插件市场仓库: + +## 产品目标 + +用户在 ARTEMIS 网页输入一个任务,由 ARTEMIS 自身完成电脑、Web 控制台和 Android 的组合测试,生成统一证据和验收结论。外部 AI 仍通过现有 MCP 发起任务、指导任务并查询报告。 + +首版运行环境为本机 Windows。Flash、Pro 共用插件能力,纯电脑任务不要求连接 Android;架构保留远程执行和其他平台的扩展位置。 + +首发仅提供一个电脑控制插件,适配 [open-codex-computer-use](https://github.com/iFurySt/open-codex-computer-use)。浏览器通过该插件的窗口观察、点击和输入能力操作;首版不增加独立浏览器插件。终端、SSH、专用 API 等能力通过后续插件扩展。 + +## 插件市场和安装 + +- 市场以独立 Git 仓库维护索引、说明、来源和验证记录,发行附件分发插件安装包。 +- 用户从 ARTEMIS 的插件页面安装、配置、检查、启用、升级及卸载插件,显示下载、安装和失败状态。 +- 完整插件包包含清单、Skill、MCP 启动信息、配置表单定义及必要资源或依赖说明;允许纯 Skill 类型。 +- 安装时使用最新已验证且兼容的版本。依赖进入插件专用目录,校验下载文件;安装失败保留原可用版本。 +- 已安装插件提示更新,用户点击升级。任务固定使用启动时的版本,插件空闲时完成升级。 +- 高级入口允许本地插件和自定义 MCP 接入,标明来源,用户手动启用。 +- 验证记录注明 ARTEMIS、插件、系统版本及覆盖场景。尚未完成验证的插件不进入可安装市场索引。 + +## 配置、授权与 Skill + +- 同一插件支持多套命名连接配置,例如不同路由器或控制台,允许设置默认项。 +- 任务界面和 JSON 可以覆盖连接配置与可用插件;凭据保存在本机,任务参数和普通报告仅引用配置名称。 +- 用户启用插件时授权其控制范围,范围内自动执行;超出范围等待用户指导。 +- 执行层校验可调用工具及可识别的目标参数。第三方进程的系统权限必须如实说明,工具参数检查不能宣称等同于操作系统沙箱。 +- AI 从已启用且配置就绪的插件中按需选择,按需加载工具、Skill 及其引用资源。 +- 复用第三方 Skill 时适配工具名称和运行环境。依赖宿主专用 API 的 Skill 需要对应适配,不能仅复制文件就宣称可用。 + +## 任务执行和共享资源 + +- 复用后台配置、任务队列、批次、历史和报告存储,不另建调度器。 +- 执行上下文从单个 Android 设备扩展为资源集合,按资源路由动作和观察结果。 +- 同一桌面或同一路由器上的用例整条串行;独立资源上的任务可并行。仅操作手机的任务不占用桌面资源。 +- 多资源获取应避免相互等待;资源身份需要跨插件一致,不能因为通过不同插件访问同一路由器而绕开互斥。 +- 暂停先停止派发并确认正在执行的动作停止,再释放资源。恢复重新排队、观察和核对环境,不沿用过期截图或状态假设。 +- 网页显示正在控制的资源并提供暂停和指导入口;跨端任务沿用现有用户指导语义。 +- 工具结果区分成功、失败和结果不确定;保留文本、图像、结构化结果和错误,不因 MCP 调用返回就自动认定业务成功。 +- 插件启动、连接、操作和恢复受明确超时及任务总预算约束;不得产生无界重试。 +- 结果不明的点击或配置修改先核对状态再决定是否重试,业务用例不因模型或插件重试而重新提交。 +- 恢复无效时结束当前用例、记录插件与工具的失败原因,后续用例遵循批次的失败即停止设置。 + +## 环境恢复和报告 + +- 环境恢复由任务提示词或配置决定,不统一强制回滚。 +- 具备读取能力时记录配置修改前后的值;要求恢复时将恢复纳入结束阶段并验证,失败单独展示并标记受影响资源。 +- 手机、电脑和浏览器操作进入同一时间线,记录资源、插件版本、耗时、动作结果及证据来源。 +- 首版电脑证据以步骤截图和工具结果为主。保留 Android 录屏,插件接口允许返回视频附件,电脑持续录屏后续扩展。 +- 执行完成与测试通过继续分开。缺少验收证据时记录未验证或阻塞,保留已有明确结论,人工复验沿用现有优先级。 +- 网页、Word、Excel、单任务资料包和批次资料包提供一致的跨端结果与证据。 +- 对外 MCP、参数文档和随源码分发的自动化 Skill 同步新任务配置及能力查询。 + +## 已核实的接入基础 + +现有代码具有 Actuator 能力描述、内部 MCP ActionSession、统一队列和 DataEngine。外部 MCP 连接、内部 Skill 动态加载及跨资源上下文仍需新增。 + +Flash 的扩展调用需要完整处理 MCP 错误及多种输出;Pro 的发现、工具绑定和动作分派需要连通,不能仅向模型声明工具名称。 + +电脑控制项目已有 Windows 实现。前期静态检查发现截图采用屏幕区域截取,窗口定位和元素索引具有会话状态;应通过固定版本实测遮挡、DPI、多窗口、连续操作、超时和退出清理,再确定市场发布包。这里不代表已通过运行验证。 + +## 交付顺序和验收 + +### 0. 开发基线 + +- [x] 独立开发分支,版本统一为 2.0.0。 +- [x] 保存确认过的设计和市场仓库地址。 +- [ ] 形成可运行的插件功能;版本标记不代表功能已经完成。 + +### 1. 通用插件基础 + +- [ ] 明确清单和市场索引契约,并实现版本兼容与参数校验。 +- [ ] 支持本地 stdio / 远程 MCP 连接、自定义接入、会话生命周期及有界取消。 +- [ ] 支持 Skill 按需加载、命名配置、凭据引用和授权范围检查。 +- [ ] Flash / Pro 共用工具分派,完整保存错误与图像等结果。 + +### 2. 插件页面和市场 + +- [ ] 市场查询、安装进度、配置、启停、诊断、更新和卸载。 +- [ ] 下载完整性检查、失败恢复、任务版本固定与升级互斥。 +- [ ] 仅发布实际验证过的插件版本与验证记录。 + +### 3. 跨端执行 + +- [ ] 适配首发电脑控制插件,支持纯电脑和混合任务。 +- [ ] 多资源互斥、暂停恢复、指导、超时及共享环境变更处理。 +- [ ] 跨端证据、验收、人工复验和各类导出保持一致。 +- [ ] 同步 HTTP、工作区 MCP 和自动化 Skill。 + +### 4. 验收 + +- [ ] 确定性测试覆盖连接失败、结果不确定、超时、取消、升级及资源互斥。 +- [ ] Windows 实测窗口遮挡、多窗口、DPI、输入、观察和浏览器控制台操作。 +- [ ] 实际跑通电脑修改参数、手机验证、按要求恢复及完整证据导出。 +- [ ] 验证 Flash / Pro、纯电脑任务、批量执行、暂停恢复和人工指导。 +- [ ] 执行仓库质量检查、前端交互检查,并完成真实安装包验证后发布。 diff --git a/pyproject.toml b/pyproject.toml index e137100..f836b7f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -14,7 +14,7 @@ [project] name = "artemis" -version = "1.5.2" +version = "2.0.0" description = "Autonomous AI Assistant for Mobile Automation" authors = [ diff --git a/uv.lock b/uv.lock index f56add0..5c8d83d 100644 --- a/uv.lock +++ b/uv.lock @@ -206,7 +206,7 @@ wheels = [ [[package]] name = "artemis" -version = "1.5.2" +version = "2.0.0" source = { editable = "." } dependencies = [ { name = "adbutils" },