openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
53 lines (52 loc) • 1.64 kB
JavaScript
import { i as asOptionalRecord } from "../../record-coerce-DHZ4bFlT.js";
import "../../string-coerce-runtime-CEGJWkQ_.js";
import { t as definePluginEntry } from "../../plugin-entry-C7DUzV0e.js";
//#region extensions/canvas/src/config-migration.ts
function mergeHostConfig(params) {
return Object.assign({}, params.legacyHost, params.existingHost);
}
/** Migrates root canvasHost config into plugins.entries.canvas.config.host. */
function migrateLegacyCanvasHostConfig(config) {
const legacyHost = asOptionalRecord(config.canvasHost);
if (!legacyHost) return null;
const plugins = structuredClone(asOptionalRecord(config.plugins) ?? {});
const entries = asOptionalRecord(plugins.entries) ?? {};
const canvasEntry = asOptionalRecord(entries.canvas) ?? {};
const canvasConfig = asOptionalRecord(canvasEntry.config) ?? {};
const existingHost = asOptionalRecord(canvasConfig.host);
entries.canvas = {
...canvasEntry,
config: {
...canvasConfig,
host: mergeHostConfig({
legacyHost,
existingHost
})
}
};
plugins.entries = entries;
const next = {
...config,
plugins
};
delete next.canvasHost;
return {
config: next,
changes: ["migrated canvasHost to plugins.entries.canvas.config.host"]
};
}
//#endregion
//#region extensions/canvas/setup-api.ts
/**
* Canvas setup entrypoint that exposes config migrations.
*/
var setup_api_default = definePluginEntry({
id: "canvas",
name: "Canvas Setup",
description: "Lightweight Canvas setup hooks",
register(api) {
api.registerConfigMigration((config) => migrateLegacyCanvasHostConfig(config));
}
});
//#endregion
export { setup_api_default as default };