fix(release): handle nested default-wrapped bundled channel entries

This commit is contained in:
Tak Hoffman
2026-04-11 11:33:29 -05:00
parent f3f1ab0a3f
commit 49b42b4a45
5 changed files with 117 additions and 30 deletions

View File

@@ -55,6 +55,7 @@ import {
listMemoryPromptSupplements,
restoreMemoryPluginState,
} from "./memory-state.js";
import { unwrapDefaultModuleExport } from "./module-export.js";
import { isPathInside, safeStatSync } from "./path-safety.js";
import { createPluginRegistry, type PluginRecord, type PluginRegistry } from "./registry.js";
import { resolvePluginCacheInputs } from "./roots.js";
@@ -602,12 +603,7 @@ function resolvePluginModuleExport(moduleExport: unknown): {
definition?: OpenClawPluginDefinition;
register?: OpenClawPluginDefinition["register"];
} {
const resolved =
moduleExport &&
typeof moduleExport === "object" &&
"default" in (moduleExport as Record<string, unknown>)
? (moduleExport as { default: unknown }).default
: moduleExport;
const resolved = unwrapDefaultModuleExport(moduleExport);
if (typeof resolved === "function") {
return {
register: resolved as OpenClawPluginDefinition["register"],
@@ -624,12 +620,7 @@ function resolvePluginModuleExport(moduleExport: unknown): {
function resolveSetupChannelRegistration(moduleExport: unknown): {
plugin?: ChannelPlugin;
} {
const resolved =
moduleExport &&
typeof moduleExport === "object" &&
"default" in (moduleExport as Record<string, unknown>)
? (moduleExport as { default: unknown }).default
: moduleExport;
const resolved = unwrapDefaultModuleExport(moduleExport);
if (!resolved || typeof resolved !== "object") {
return {};
}