Skip to content

插件应用提交与发布

上线奖励

活动是否启用以开放平台“上线奖励”页为准。每个应用首次实际上线,退还此前实际扣除且未退的审核费,再额外奖励1000积分一次。免费审核也有首次奖励;后续版本上线仍退审核费,不再重复奖励。

例如两次付费审核共扣2000积分,最终上线后到账“退款2000+奖励1000”。审核失败不会立即退款,仅审核通过也不会发钱;重复发布、重新上架和多个Client不会重复领奖。

退款回原付款团队和原赠送/购买分项,奖励进入应用团队的赠送积分。历史已上线应用由管理员核对后补发;活动前已提交的应用也纳入。目前不设结束日期,结束时会公告;结束前已提交的版本,之后上线仍可兑现。到账详情可在“审核记录”中查询。

插件应用和网页 OAuth App 都从 Team 工作区注册。每个 Product 必须绑定一个 Project。插件渠道只创建 一个稳定 OAuth Client ID;插件不一定需要 OAuth 业务权限,但必须有这个鉴权身份,供审核、安装和统计关联。

提交流程

  1. 从左侧「工作区」进入「开放平台」,创建 Product,选择 Project 和「插件」。
  2. 正常开发和自测,没有开发阶段次数限制,也不要求按固定阶段提交。
  3. 把图标、截图和 .reaiapp 上传到绑定 Project 的文件存储;开放平台会复用 Project 文件,不复制物理字节。
  4. 按「上架信息 → 图片与插件包 → 确认提交」完成审核申请。每个 Team 每月 2 次免费审核,之后每次 1000 积分;每个 Team 最多 10 个未删除 Product,Client 不计数。
  5. 审核批准后,由 Team Owner/Admin 点击发布。批准不会自动上架。
  6. V1 在线时仍可独立开发、测试和审核 V2;只有显式发布 V2 才会原子替换 V1。

网页 App 不需要上传 .reaiapp,可直接提交;网页 App 不会进入 Driver 插件 Catalog。

包格式

.reaiapp 是 ZIP,根目录必须有一个 app.manifest.json。Manifest 必须满足 Driver V2 Host 1.1 完整合同;旧的五字段占位 Manifest 不再接受:

json
{
  "manifestVersion": "1.1",
  "appId": "com.example.demo",
  "publisherId": "你的 Team UUID",
  "oauthAppId": "你的 OAuth Client ID",
  "version": "1.0.0",
  "name": "示例插件",
  "targets": [
    { "platform": "macos", "architectures": ["aarch64", "x86_64"] },
    { "platform": "windows", "architectures": ["aarch64", "x86_64"] }
  ],
  "hostApi": { "range": ">=1.2.0 <2.0.0" },
  "requires": { "hostCapabilities": ["surface.main@1"] },
  "runtime": {
    "components": [{
      "id": "ui", "kind": "web-surface", "protocol": "web-surface@1",
      "required": true, "headless": false, "activation": "on-demand",
      "entry": "dist/app.js",
      "lifecycle": { "activate": "default.activate", "deactivate": "default.deactivate" }
    }]
  },
  "contributes": {
    "surfaces": [{ "id": "main", "componentId": "ui", "location": "app.main" }]
  }
}

审核附件当前只支持 target=universal 的一个包,最大 64 MiB;Manifest 的 targets 必须按上例声明 Host 平台和架构。appId 是永久不变的 packageAppId,第一次有效包 上传时锁定;创建 Product 时不手填。oauthAppId 是稳定鉴权身份,version 是本次 semver 版本身份。 publisherIdoauthAppId 和版本必须与本次提交一致。官方插件的 publisherId 固定为 reai, 官方插件同样需要审核。

声明 i18n 的插件包需提供 zhen 语言文件,普通插件同时声明 metadata.i18n@1。 语言文件位于 assets/locales/<语言>.json,必须使用非空字符串叶子;各语言的键和插值变量一致。 元数据引用必须完整、唯一且指向存在的内容,静态元数据不能插值。最多 16 种语言,每文件 256 KiB、 最多 16 层;静态元数据最多 1024 UTF-8 字节,标题栏文字另有 48/12/24 字符限制。 后台也校验额外语言文件,并拒绝重复 JSON 键、HTML 和不支持的消息语法。

这类包全部资源展开后最多 64 MiB,单资源最多 32 MiB;超限会在解压前拒绝。 build-manifest.json 必须与包身份及全部资源的路径、大小、SHA-256 完全一致。 出现“插件包文件与构建清单不一致”时,请重新打包后提交;不要手工删除 i18n 绕过检查。 历史无 i18n 包继续兼容。语言检查通过仍需独立完成身份核对和受控能力审核。

Manifest schema 校验失败时会显示出错路径、规则关键字和 schema 基线,但不会回显原始字段值; 缺少 oauthAppId 会单独提示。建议提交前先使用与目标 Driver 同版本的 CLI 执行 validate/build/ contract-test/pack,并确认 Host 标准 prepare 通过。

图标必须有 1 张,插件截图必须有 1..9 张,只支持 PNG、JPEG、WebP,单张最大 10 MiB。所有文件都从 绑定 Project 选择,不能填写外部图片 URL。

文件和版本

提交后,平台锁定本次 OAuth 配置、包、图标和截图。项目文件与审核归档共用同一份物理文件, 平台通过独立指针保护审核版本;删除项目里的文件不会破坏已冻结版本。

批准版本永久保留,不能替换字节。拒绝、撤回或取消的文件保留 180 天后才可能清理,审核记录和 SHA-256 摘要永久保留。下架只停止 Catalog 和下载,不删除历史版本。

下架不抹掉审核结果,可直接重新上架。新版本发布时旧版本进入 superseded 历史状态;历史已审核 版本也可重新发布,切换过程不会先让当前版本下线。

开发体验者

创建者固定可测试且不占名额;还可添加最多 5 个体验者 UID。加入名单并不自动授权,体验者仍须在 签名 Driver 中确认 consent。开发授权同时检查当前 Team membership、绑定 Project execute 权限和 每个 Scope 的实时资格。移除后 authorization、exchange、refresh 和云能力运行时调用立即失效。

AI Workflow Editor