跳转到内容

插件清单

每个插件都必须插件根目录下提供一个 coderclaw.plugin.json 文件。CoderClaw 使用此清单来在不执行插件代码的情况下验证配置。缺失或无效的清单将被视为插件错误,并阻止配置验证。

参阅完整的插件系统指南:插件

{
"id": "voice-call",
"configSchema": {
"type": "object",
"additionalProperties": false,
"properties": {}
}
}

必填键:

  • id(字符串):插件的规范 id。
  • configSchema(对象):插件配置的 JSON Schema(内联形式)。

可选键:

  • kind(字符串):插件类型(例如:"memory")。
  • channels(数组):此插件注册的渠道 id(例如:["matrix"])。
  • providers(数组):此插件注册的提供商 id。
  • skills(数组):要加载的 Skills 目录(相对于插件根目录)。
  • name(字符串):插件的显示名称。
  • description(字符串):插件简短描述。
  • uiHints(对象):用于 UI 渲染的配置字段标签/占位符/敏感标志。
  • version(字符串):插件版本(仅供参考)。
  • 每个插件都必须提供 JSON Schema,即使不接受任何配置也是如此。
  • 空 Schema 是可以接受的(例如 { "type": "object", "additionalProperties": false })。
  • Schema 在配置读取/写入时进行验证,而非在运行时。
  • 未知的 channels.* 键会被视为错误,除非该渠道 id 已在插件清单中声明。
  • plugins.entries.<id>plugins.allowplugins.denyplugins.slots.* 必须引用可发现的插件 id。未知 id 会被视为错误
  • 如果插件已安装但清单或 Schema 损坏或缺失,验证将失败,Doctor 会报告插件错误。
  • 如果插件配置存在但插件已禁用,配置会被保留,并在 Doctor 和日志中显示警告
  • 清单对所有插件都是必需的,包括从本地文件系统加载的插件。
  • 运行时仍然会单独加载插件模块;清单仅用于发现和验证。
  • 如果你的插件依赖原生模块,请记录构建步骤以及所有包管理器允许列表要求(例如 pnpm 的 allow-build-scripts - pnpm rebuild <package>)。