UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

27 lines (26 loc) • 1.32 kB
import { l as normalizeOptionalString } from "./string-coerce-1VuiLaaR.mjs"; import { c as isRecord } from "./record-coerce-TIsquoVR.mjs"; import { d as normalizeStringEntries } from "./string-normalization-D6DKCpwE.mjs"; import { g as resolveConfigDir } from "./utils-CitNzLyF.mjs"; import path from "node:path"; //#region src/plugins/plugin-catalog-source.ts function parseExternalPluginCatalogEntries(raw) { const list = Array.isArray(raw) ? raw : isRecord(raw) ? raw.entries ?? raw.packages ?? raw.plugins : void 0; return Array.isArray(list) ? list.filter((entry) => isRecord(entry)) : []; } function resolveExternalPluginCatalogPaths(options) { if (options.catalogPaths?.length) return normalizeStringEntries(options.catalogPaths); const env = options.env ?? process.env; for (const key of ["OPENCLAW_PLUGIN_CATALOG_PATHS", "OPENCLAW_MPM_CATALOG_PATHS"]) { const raw = normalizeOptionalString(env[key]); if (raw) return normalizeStringEntries(raw.split(/[;,]/g).flatMap((chunk) => chunk.split(path.delimiter))); } const configDir = resolveConfigDir(env); return [ "mpm/plugins.json", "mpm/catalog.json", "plugins/catalog.json" ].map((relativePath) => path.join(configDir, relativePath)); } //#endregion export { resolveExternalPluginCatalogPaths as n, parseExternalPluginCatalogEntries as t };