本页内容

本页内容

插件 SDK 参考

插件 SDK DefineSetupPluginEntry 帮助程序

轻量级 setup-entry.ts 文件的入门帮助程序,以及与其配对的窄设置帮助程序系列。 插件入口点部分参考。

defineSetupPluginEntry

导入: openclaw/plugin-sdk/channel-core

用于轻量级的 setup-entry.ts 文件。只返回 { plugin },不包含运行时或 CLI 接线。

typescript
import { defineSetupPluginEntry } from "openclaw/plugin-sdk/channel-core"; export default defineSetupPluginEntry(myChannelPlugin);

当通道被禁用或取消配置时,OpenClaw 加载此内容而不是完整条目。请参阅 Setup 和 Config 了解何时重要。

当完成延迟的插件升级时,Doctor 还会检查此公共设置条目。如果提供的话,它使用 plugin.lifecycle.detectLegacyStateMigrations。将检测器保留在这个轻量级条目上,而发布的版本可能仍需要遗留迁移;省略它并不能证明完整条目没有迁移,因此 Doctor 保留升级义务待定。丢失或损坏的设置条目也会使义务悬而未决。

将 defineSetupPluginEntry(...) 与以下更窄的设置辅助工具系列搭配使用:

导入 用途
openclaw/plugin-sdk/setup-runtime 运行时安全的设置辅助工具:createSetupTranslator、导入安全的设置补丁适配器、查找备注输出、promptResolvedAllowFrom、splitSetupEntries、委托式设置代理
openclaw/plugin-sdk/channel-setup 可选安装的设置接口
openclaw/plugin-sdk/channel-dm-policy 面向账户的 DM 策略描述符,用于设置流程
openclaw/plugin-sdk/setup-tools Setup/install CLI、存档和文档帮助程序
openclaw/plugin-sdk/archive 有界 TAR/gzip 成员检查、档案提取和单条目读取
openclaw/plugin-sdk/root-walk 预算受限、根目录有界的目录遍历
openclaw/plugin-sdk/secret-file 固定目标的机密读取和先写入者优先创建

inspectTarArchive({ archivePath, timeoutMs, limits, entryFilter, onFiltered }) 返回接受的 { path, kind, size } TAR/gzip 成员的有界、冻结列表,而不创建提取的树。它使用fs-safe的完整准入和零带提取策略,而不是tar显示输出。路径使用现有的规范化存档标识; LF 和 Unicode 拼写被保留。使用匹配的 filter/limit 设置并保留或验证相同的存档字节以供后续提取:检查结果不可重复使用写入权限。只有解决的结果才是完整录取的证据;过滤器回调可以在以后的策略失败之前发生。成员清单不会合成隐式父目录,因此整个树使用者必须单独授权这些父路径。

将繁重的 SDK、CLI 注册和长期运行时服务保留在完整条目中。

分割设置和运行时表面的捆绑工作区通道可以使用 openclaw/plugin-sdk/channel-entry-contract 中的 defineBundledChannelSetupEntry(...)。它允许设置条目保持设置安全的 plugin/secrets 导出,同时仍然公开运行时设置器:

typescript
import { defineBundledChannelSetupEntry } from "openclaw/plugin-sdk/channel-entry-contract"; export default defineBundledChannelSetupEntry({  importMetaUrl: import.meta.url,  plugin: {    specifier: "./channel-plugin-api.js",    exportName: "myChannelPlugin",  },  runtime: {    specifier: "./runtime-api.js",    exportName: "setMyChannelRuntime",  },  registerSetupRuntime(api) {    api.registerHttpRoute({      path: "/my-channel/events",      auth: "plugin",      handler: async (req, res) => {        /* setup-safe route */      },    });  },});

仅当设置流程确实需要轻量级运行时 setter,或需要为未配置的通道提供设置安全的网关接口时,才使用此方式。 registerSetupRuntime 仅在 "setup-runtime" 加载时运行;请将其限制为配置专用路由,或该设置流程所需的方法。

本页有帮助吗?