PKU harness

发布

远程插件和内置插件怎样送到用户手上。远程插件登记到插件市场的注册表;内置插件合并进 pku-harness-plugins,通过签名的 OTA 更新或下一个 App 版本到达用户手机。

本页介绍写好的插件怎样送到用户手上。远程插件和内置插件的步骤不同。插件文档只需把文件夹推送到 GitHub,见声明式插件和插件市场的提交流程。

远程插件

  1. 用 HTTPS 部署你的 MCP 服务器(见快速上手)。
  2. 确认 MCP 服务器的 name 和你要使用的注册表 id 一致。
  3. 把插件登记到插件市场。一种方式是在仓库里加一份清单,然后在本网站提交(见清单参考和提交流程)。另一种方式是向 pku-harness-plugins 提交 pull request,在 registry/registry.json 里加一条记录。条目怎样审核、verified 标记怎样授予,见审核规则。
  4. 用户在「设置 → 插件 → 插件市场」里安装,也可以手动填写你的地址来添加。

你一部署,更新就生效了。App 下次刷新这个插件时,就会拿到新的工具列表。

工具名要保持稳定。用户的小组件和定时检查按名字引用工具,改名会让它们失效。

内置插件

  1. 先在 pku-harness-plugins 开一个 issue,说明插件做什么,以及为什么必须内置。

  2. 提交一个 pull request,包含三部分:plugins/<id>/ 文件夹,plugins/index.ts 里 builtinPlugins 的条目,以及一条 "kind": "builtin" 的注册表记录。

  3. 持续集成(CI)和审核者会运行以下检查:

    bun test
    bunx tsc --noEmit -p .
    bun scripts/validate-registry.ts
  4. 合并之后,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 → 插件指南。

本页目录