feat(plugins): 迁移 MaaFW、M9A 与 HSR 集成 - #344
Merged
Merged
Conversation
审查者指南(Reviewer's Guide)将 MaaFramework/M9A/HSR 集成迁移到基于插件的 MaaFW 栈,替换传统的 M9A host 类型,将 MaaFW 脚本接入新的插件 HTTP/WebSocket API,新增配置复用流程,并改进 MaaFW 项目更新 / agent-env 的用户体验和进度处理(覆盖向导和编辑器视图)。 通过插件 HTTP 和 WebSocket 进度进行 MaaFW 项目更新的时序图sequenceDiagram
actor User
participant MaaFWScriptEdit
participant useMaaFWScriptConfig
participant useMaaFWApi
participant MaaFWPluginHTTP as MaaFW_plugin_HTTP
participant MaaFWProgressWS as MaaFW_progress_WebSocket
User->>MaaFWScriptEdit: 点击“检查更新 / 开始更新资源”
MaaFWScriptEdit->>useMaaFWScriptConfig: handleManualProjectUpdate()
useMaaFWScriptConfig->>useMaaFWScriptConfig: ensureMaaFWProgressSocket()
useMaaFWScriptConfig->>MaaFWProgressWS: WebSocket connect /plugin/maafw/progress
useMaaFWScriptConfig->>useMaaFWApi: updateProjectResources(scriptId, apply)
useMaaFWApi->>MaaFWPluginHTTP: POST /plugin/maafw/project/update
MaaFWPluginHTTP-->>useMaaFWApi: PluginRouteEnvelope<MaaFWPluginProjectUpdateData>
useMaaFWApi-->>useMaaFWScriptConfig: response
useMaaFWScriptConfig->>useMaaFWScriptConfig: handleProjectUpdateProgress()
useMaaFWScriptConfig->>useMaaFWScriptConfig: refreshPreviewIfPossible()
MaaFWProgressWS-->>useMaaFWScriptConfig: progress message
useMaaFWScriptConfig->>useMaaFWScriptConfig: handleMaaFWProgressMessage()
useMaaFWScriptConfig->>useMaaFWScriptConfig: handleProjectUpdateProgress()
useMaaFWScriptConfig-->>MaaFWScriptEdit: 更新 projectUpdateStage / projectUpdateProgress
MaaFWScriptEdit-->>User: 展示更新进度、日志与结果
从外部来源复用 MaaFW 配置的时序图sequenceDiagram
actor User
participant MaaFWSetupWizard
participant MaaFWConfigurationReusePanel
participant useMaaFWConfigurationReuse
participant MaaFWConfigReuseHTTP as MaaFW_config_reuse_HTTP
User->>MaaFWSetupWizard: 打开 MaaFW 项目引导 / 新用户页
MaaFWSetupWizard->>MaaFWConfigurationReusePanel: 渲染复用面板
User->>MaaFWConfigurationReusePanel: 选择“外部 MaaFW 配置”并选择路径
MaaFWConfigurationReusePanel->>useMaaFWConfigurationReuse: discoverSources(scriptId, sourcePath)
useMaaFWConfigurationReuse->>MaaFWConfigReuseHTTP: POST /plugin/maafw/config-reuse/sources
MaaFWConfigReuseHTTP-->>useMaaFWConfigurationReuse: { sources }
useMaaFWConfigurationReuse-->>MaaFWConfigurationReusePanel: sources
MaaFWConfigurationReusePanel-->>User: 展示候选配置
User->>MaaFWConfigurationReusePanel: 选择一个来源并点击“预览导入内容”
MaaFWConfigurationReusePanel->>useMaaFWConfigurationReuse: planExternal(scriptId, source, target)
useMaaFWConfigurationReuse->>MaaFWConfigReuseHTTP: POST /plugin/maafw/config-reuse/plan/external
MaaFWConfigReuseHTTP-->>useMaaFWConfigurationReuse: MaaFWConfigurationPlan
useMaaFWConfigurationReuse-->>MaaFWConfigurationReusePanel: plan
MaaFWConfigurationReusePanel-->>User: 展示预览与提示
User->>MaaFWConfigurationReusePanel: 点击“确认导入并创建用户”
MaaFWConfigurationReusePanel->>useMaaFWConfigurationReuse: applyPlan(scriptId, planId)
useMaaFWConfigurationReuse->>MaaFWConfigReuseHTTP: POST /plugin/maafw/config-reuse/apply
MaaFWConfigReuseHTTP-->>useMaaFWConfigurationReuse: MaaFWConfigurationApplyResult
useMaaFWConfigurationReuse-->>MaaFWConfigurationReusePanel: result
MaaFWConfigurationReusePanel-->>MaaFWSetupWizard: applied(result)
MaaFWSetupWizard-->>User: 跳转到新建 / 导入用户编辑页
文件级变更(File-Level Changes)
可能关联的问题(Possibly linked issues)
技巧与命令(Tips and commands)与 Sourcery 交互(Interacting with Sourcery)
自定义你的体验(Customizing Your Experience)访问你的 仪表盘 以:
获取帮助(Getting Help)Original review guide in EnglishReviewer's GuideMigrates MaaFramework/M9A/HSR integrations to plugin-based MaaFW stack, replacing legacy M9A host types, wiring MaaFW scripts to new plugin HTTP/WebSocket APIs, adding configuration reuse flows, and improving MaaFW project update/agent-env UX and progress handling across wizard and editor views. Sequence diagram for MaaFW project update via plugin HTTP and WebSocket progresssequenceDiagram
actor User
participant MaaFWScriptEdit
participant useMaaFWScriptConfig
participant useMaaFWApi
participant MaaFWPluginHTTP as MaaFW_plugin_HTTP
participant MaaFWProgressWS as MaaFW_progress_WebSocket
User->>MaaFWScriptEdit: 点击“检查更新 / 开始更新资源”
MaaFWScriptEdit->>useMaaFWScriptConfig: handleManualProjectUpdate()
useMaaFWScriptConfig->>useMaaFWScriptConfig: ensureMaaFWProgressSocket()
useMaaFWScriptConfig->>MaaFWProgressWS: WebSocket connect /plugin/maafw/progress
useMaaFWScriptConfig->>useMaaFWApi: updateProjectResources(scriptId, apply)
useMaaFWApi->>MaaFWPluginHTTP: POST /plugin/maafw/project/update
MaaFWPluginHTTP-->>useMaaFWApi: PluginRouteEnvelope<MaaFWPluginProjectUpdateData>
useMaaFWApi-->>useMaaFWScriptConfig: response
useMaaFWScriptConfig->>useMaaFWScriptConfig: handleProjectUpdateProgress()
useMaaFWScriptConfig->>useMaaFWScriptConfig: refreshPreviewIfPossible()
MaaFWProgressWS-->>useMaaFWScriptConfig: progress message
useMaaFWScriptConfig->>useMaaFWScriptConfig: handleMaaFWProgressMessage()
useMaaFWScriptConfig->>useMaaFWScriptConfig: handleProjectUpdateProgress()
useMaaFWScriptConfig-->>MaaFWScriptEdit: 更新 projectUpdateStage / projectUpdateProgress
MaaFWScriptEdit-->>User: 展示更新进度、日志与结果
Sequence diagram for MaaFW configuration reuse from external sourcessequenceDiagram
actor User
participant MaaFWSetupWizard
participant MaaFWConfigurationReusePanel
participant useMaaFWConfigurationReuse
participant MaaFWConfigReuseHTTP as MaaFW_config_reuse_HTTP
User->>MaaFWSetupWizard: 打开 MaaFW 项目引导 / 新用户页
MaaFWSetupWizard->>MaaFWConfigurationReusePanel: 渲染复用面板
User->>MaaFWConfigurationReusePanel: 选择“外部 MaaFW 配置”并选择路径
MaaFWConfigurationReusePanel->>useMaaFWConfigurationReuse: discoverSources(scriptId, sourcePath)
useMaaFWConfigurationReuse->>MaaFWConfigReuseHTTP: POST /plugin/maafw/config-reuse/sources
MaaFWConfigReuseHTTP-->>useMaaFWConfigurationReuse: { sources }
useMaaFWConfigurationReuse-->>MaaFWConfigurationReusePanel: sources
MaaFWConfigurationReusePanel-->>User: 展示候选配置
User->>MaaFWConfigurationReusePanel: 选择一个来源并点击“预览导入内容”
MaaFWConfigurationReusePanel->>useMaaFWConfigurationReuse: planExternal(scriptId, source, target)
useMaaFWConfigurationReuse->>MaaFWConfigReuseHTTP: POST /plugin/maafw/config-reuse/plan/external
MaaFWConfigReuseHTTP-->>useMaaFWConfigurationReuse: MaaFWConfigurationPlan
useMaaFWConfigurationReuse-->>MaaFWConfigurationReusePanel: plan
MaaFWConfigurationReusePanel-->>User: 展示预览与提示
User->>MaaFWConfigurationReusePanel: 点击“确认导入并创建用户”
MaaFWConfigurationReusePanel->>useMaaFWConfigurationReuse: applyPlan(scriptId, planId)
useMaaFWConfigurationReuse->>MaaFWConfigReuseHTTP: POST /plugin/maafw/config-reuse/apply
MaaFWConfigReuseHTTP-->>useMaaFWConfigurationReuse: MaaFWConfigurationApplyResult
useMaaFWConfigurationReuse-->>MaaFWConfigurationReusePanel: result
MaaFWConfigurationReusePanel-->>MaaFWSetupWizard: applied(result)
MaaFWSetupWizard-->>User: 跳转到新建 / 导入用户编辑页
File-Level Changes
Possibly linked issues
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
qiyinxi
marked this pull request as ready for review
August 9, 2026 04:55
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
摘要
原因
dev-plugin-v2仍使用旧 MaaFW/M9A bootstrap 版本和宿主内置 M9A 表面,无法直接承载当前三个插件仓的动态 provider 契约。本 PR 仅迁移三插件相关宿主表面,通用能力留给对应维护者处理。验证
build:main通过。auto_mas.pluginsentry point 校验通过。已知基线问题
dev-plugin-v2当前 HEAD 的app/core/config.py与app/models/schema.py自带未解决的 Git 冲突标记,后端无法完整导入;本 PR 未越权处理。uv.md.exe路径;本 PR 未修改通用安装框架。automas-script-hsr==0.1.9、automas-script-maafw==0.1.13、automas-script-maafw-pack-m9a==0.1.6需由对应插件仓发布后再做在线 bootstrap 验收。Summary by Sourcery
将基于 MaaFramework 的插件集成到宿主中,同时弃用旧的 M9A 处理方式,并通过插件支持的 API 和更丰富的前端体验增强 MaaFW 项目更新与环境准备流程。
New Features:
Bug Fixes:
Enhancements:
Build:
Original summary in English
Summary by Sourcery
Integrate MaaFramework-based plugins into the host while deprecating legacy M9A handling, and enhance MaaFW project update and environment preparation flows with plugin-backed APIs and richer frontend UX.
New Features:
Bug Fixes:
Enhancements:
Build: