发布
远程插件和内置插件怎样送到用户手上。远程插件登记到插件市场的注册表;内置插件合并进 pku-harness-plugins,通过签名的 OTA 更新或下一个 App 版本到达用户手机。
本页介绍写好的插件怎样送到用户手上。远程插件和内置插件的步骤不同。插件文档只需把文件夹推送到 GitHub,见声明式插件和插件市场的提交流程。
远程插件
- 用 HTTPS 部署你的 MCP 服务器(见快速上手)。
- 确认 MCP 服务器的
name和你要使用的注册表id一致。 - 把插件登记到插件市场。一种方式是在仓库里加一份清单,然后在本网站提交(见清单参考和提交流程)。另一种方式是向
pku-harness-plugins提交 pull request,在registry/registry.json里加一条记录。条目怎样审核、verified标记怎样授予,见审核规则。 - 用户在「设置 → 插件 → 插件市场」里安装,也可以手动填写你的地址来添加。
你一部署,更新就生效了。App 下次刷新这个插件时,就会拿到新的工具列表。
工具名要保持稳定。用户的小组件和定时检查按名字引用工具,改名会让它们失效。
内置插件
-
先在
pku-harness-plugins开一个 issue,说明插件做什么,以及为什么必须内置。 -
提交一个 pull request,包含三部分:
plugins/<id>/文件夹,plugins/index.ts里builtinPlugins的条目,以及一条"kind": "builtin"的注册表记录。 -
持续集成(CI)和审核者会运行以下检查:
bun test bunx tsc --noEmit -p . bun scripts/validate-registry.ts -
合并之后,App 会把
plugins/子模块更新到新的提交。改动怎样到达手机,取决于它涉及哪些部分。只改了 JavaScript 的改动,通过签名的空中更新(OTA,over-the-air)推送,App 下载后在下次启动时生效。涉及原生代码的改动,要等下一个 App 版本,也就是新的 APK。
我们不往 npm 发布任何东西。App 和其他开发者都直接从 GitHub 仓库使用 SDK 和插件。
改名或合并
用户可能已经在小组件、定时检查或设置里保存了插件 id、工具 id 或小组件的 key。这些 id 不要复用,也不要悄悄改名。请用 PluginDef.legacy 把旧的插件 id、工具 id 和小组件 key 映射到新的上面(见 SDK → plugin)。
使用 PKU harness Cloud
PKU harness Cloud 是我们为需要服务器的功能提供的托管服务。如果插件声明了 PluginDef.cloud,请把其中的 cloud 声明原样复制到注册表记录里。这份声明包含 uses、e2e(存储的数据是否必须端到端加密)、disclosure,以及可选的 backend。
插件市场会在安装前展示这份声明。disclosure.zh 必须用平实的话写清楚哪些数据会离开手机。详见 Cloud → 插件指南。