第六章:发布到社区商店

这一章把前面写好的插件或适配器提交到 iamai 社区商店。商店不是运行时后端,而是随文档构建生成的 静态 registry;提交入口使用 GitHub issue,维护者审核后再把条目合入 docs/ecosystem/entries

准备扩展元数据

先确认扩展已经可以通过 uv add 安装,或者至少有一个公开仓库。可发布扩展至少需要这些信息:

  • id:全局唯一,例如 plugin.echoadapter.acme

  • typepluginadapterrulesetagent_tool 等。

  • namesummary:用于商店卡片展示,summary 保持一句话。

  • packagerepository:至少填写一个。

  • license:例如 MITApache-2.0

  • entry_points:插件使用 iamai.plugins,适配器使用 iamai.adapters

  • runtime_capabilities:例如 network:httpstorage:sqliteagent:tool

  • security_notes:声明网络访问、凭据需求、危险动作和可选依赖。

  • permission_notes:Agent 工具需要说明权限名、输入 schema、审计字段和审批要求。

使用文档表单提交

打开 社区商店,点击“提交扩展”并填写这些字段。表单会实时生成候选 registry JSON,并在点击提交后打开 GitHub issue 页面。

Entry point 的填写格式是每行一个:

plugin:echo=iamai_plugin_echo:EchoPlugin
adapter:acme=iamai_adapter_acme:AcmeAdapter

表单不会让你声明 officialsecurity_reviewed 这类认证徽章。它们代表维护者审核结论, 不是扩展作者的自我声明。

使用 GitHub Issue Form 提交

你也可以直接在 GitHub 新建 issue,选择 Ecosystem submission 模板。这个模板和文档页表单使用同一组核心字段。 如果你已经从文档页表单生成了 JSON,可以把它粘贴到 Candidate registry JSON 字段。

维护者审核

维护者会检查包或仓库是否可访问、entry point 是否和包元数据一致、安装说明是否安全、是否含有密钥或私有地址, 以及安全声明是否覆盖实际运行时能力。 通过后,维护者把 JSON 合入 docs/ecosystem/entries/<id>.json 并运行:

uv run python scripts/validate_ecosystem_store.py

Checkpoint

完成后你应该得到一个带有 ecosystem-submission label 的 GitHub issue。issue 里包含一段 json 代码块, 它可以直接作为 registry 条目的初稿。