maafw-interface
Installation
SKILL.md
MaaFW interface.json(PI V2)开发
interface.json 是项目对外的标准化声明:通用 GUI、打包分发、工具链都靠它认识项目。字段语义一律路由 MaaLLMWiki 的 3.3-ProjectInterfaceV2 协议与官方 schema(interface.schema.json),不凭记忆填(已安装 maallmwiki skill 时由其承载完整路由流程)。
本文只承载路由拿不到的三样:选型决策(什么时候用什么)、静默失败面(不报错但就是不生效的字段交互)、流程与验证手法。字段字典(枚举、默认值、字段清单)不在本文复制;文中版本标注均为"该机制自哪版起"的历史事实,不是当前版本快照。
版本双轨防混淆:interface_version 固定数字 2(JSON 结构主版本,兼容性新增不碰它);PI 协议另有语义化版本 v2.x.y(独立于 MaaFW release 演进)——判断"目标 Client 支不支持某字段"看的是后者,协议当前到哪以原文变更表为准,不写死。
硬护栏
- 对外契约:字段改动 = 用户可见行为改动;软件更新走
github字段的 release 约定(通用 UI 只更新资源 release),不自造更新通道。 - resource / Bundle 分层(定义出自官方术语表 1.2-术语解释;3.3-ProjectInterfaceV2 协议行文的"资源包"指 resource 条目,不是 Bundle):
- Bundle:按 pipeline / model / image 标准结构存储的文件夹;
path[]的每个条目指向一个 Bundle 根目录(不是pipeline/子目录),按序加载、后者覆盖前者。 - resource 条目:声明单位(name / label / option),用户在 Client 里选择的就是它。
- controller / resource 声明不能经 import 合并——资源根永远由主 interface 声明。
- Bundle:按 pipeline / model / image 标准结构存储的文件夹;
- 不编造字段:枚举、默认值、版本支持拿不准就路由 schema 与协议原文,宁可少写用默认。
- i18n 完整性:
$开头的键必须在languages指向的翻译文件里有对应键;不配languages默认仅中文。 - 密钥卫生:interface.json 随资源分发,明文密钥不得写入;
password输入字段禁default(schema 硬拒)、不入 preset(协议建议,schema 不校验——靠纪律)。