openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
44 lines (43 loc) • 2.16 kB
JavaScript
import { definePluginEntry } from "openclaw/plugin-sdk/plugin-entry";
import { asNullableRecord } from "openclaw/plugin-sdk/string-coerce-runtime";
//#region extensions/memory-wiki/src/config-compat.ts
function hasLegacyBridgeArtifactToggle(value) {
return Object.hasOwn(asNullableRecord(value) ?? {}, "readMemoryCore");
}
function migrateMemoryWikiLegacyConfig(config) {
const rawEntry = asNullableRecord(config.plugins?.entries?.["memory-wiki"]);
const rawPluginConfig = asNullableRecord(rawEntry?.config);
const rawBridge = asNullableRecord(rawPluginConfig?.bridge);
if (!rawBridge || !hasLegacyBridgeArtifactToggle(rawBridge)) return null;
const nextConfig = structuredClone(config);
const nextPlugins = asNullableRecord(nextConfig.plugins) ?? {};
nextConfig.plugins = nextPlugins;
const nextEntries = asNullableRecord(nextPlugins.entries) ?? {};
nextPlugins.entries = nextEntries;
const nextEntry = asNullableRecord(nextEntries["memory-wiki"]) ?? {};
nextEntries["memory-wiki"] = nextEntry;
const nextPluginConfig = asNullableRecord(nextEntry.config) ?? {};
nextEntry.config = nextPluginConfig;
const nextBridge = asNullableRecord(nextPluginConfig.bridge) ?? {};
nextPluginConfig.bridge = nextBridge;
const legacyValue = nextBridge.readMemoryCore;
const hasCanonical = Object.hasOwn(nextBridge, "readMemoryArtifacts");
if (!hasCanonical) nextBridge.readMemoryArtifacts = legacyValue;
delete nextBridge.readMemoryCore;
return {
config: nextConfig,
changes: hasCanonical ? ["Removed legacy plugins.entries.memory-wiki.config.bridge.readMemoryCore; kept explicit plugins.entries.memory-wiki.config.bridge.readMemoryArtifacts."] : ["Moved plugins.entries.memory-wiki.config.bridge.readMemoryCore → plugins.entries.memory-wiki.config.bridge.readMemoryArtifacts."]
};
}
//#endregion
//#region extensions/memory-wiki/setup-api.ts
var setup_api_default = definePluginEntry({
id: "memory-wiki",
name: "Memory Wiki Setup",
description: "Lightweight Memory Wiki setup hooks",
register(api) {
api.registerConfigMigration((config) => migrateMemoryWikiLegacyConfig(config));
}
});
//#endregion
export { setup_api_default as default };