openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
101 lines (100 loc) • 5.7 kB
JavaScript
import { l as normalizeSortedUniqueStringEntries } from "./string-normalization-YMwDjufr.mjs";
import { t as createInstalledPluginEnabledPredicate } from "./installed-plugin-index-DyE_yB6z.mjs";
import { n as normalizePluginsConfigWithResolverCore } from "./config-normalization-shared-DVk1kbw8.mjs";
import { r as loadPluginManifestRegistryForInstalledIndex } from "./plugin-control-plane-context-BhsvNWYe.mjs";
import { s as loadPluginMetadataSnapshotForRegistry, u as resolvePluginMetadataSnapshot, v as createPluginRegistryIdNormalizer, y as listPluginManifestContributionIds } from "./plugin-metadata-snapshot-D_ni58BI.mjs";
import { a as loadPluginRegistrySnapshotWithMetadata, t as canReusePluginRegistrySnapshot } from "./plugin-registry-snapshot-DKGai6T0.mjs";
//#region src/plugins/plugin-registry-contributions.ts
/** Loads manifest and installed-index contributions used to build plugin registry snapshots. */
function loadManifestContractRecords(params) {
let records = params.manifestRecords;
if (!records) {
if (!canReusePluginRegistrySnapshot(params)) return loadPluginManifestRegistryForPluginRegistry({
...params,
pluginIds: params.onlyPluginIds,
includeDisabled: true
}).plugins;
records = resolvePluginMetadataSnapshot({
config: params.config,
env: params.env,
...params.workspaceDir !== void 0 ? { workspaceDir: params.workspaceDir } : {},
allowWorkspaceScopedCurrent: params.workspaceDir === void 0
}).plugins;
}
if (params.onlyPluginIds === void 0) return records;
const pluginIds = new Set(params.onlyPluginIds);
return records.filter((record) => pluginIds.has(record.id));
}
function createContributionPluginFilter(params, index) {
if (params.includeDisabled) {
const installedPluginIds = new Set(index.plugins.map((plugin) => plugin.pluginId));
return (pluginId) => installedPluginIds.has(pluginId);
}
return createInstalledPluginEnabledPredicate(index.plugins, params.config, params.env);
}
function listContributionManifestPlugins(params) {
const lookUpTable = params.lookUpTable;
if (lookUpTable) {
const includePlugin = createContributionPluginFilter(params, lookUpTable.index);
return lookUpTable.plugins.filter((plugin) => includePlugin(plugin.id));
}
const { snapshot: index, manifestRegistry } = loadContributionRegistrySnapshot(params);
const pluginIds = index.plugins.map((plugin) => plugin.pluginId);
return loadPluginManifestRegistryForInstalledIndex({
index,
manifestRegistry,
config: params.config,
workspaceDir: params.workspaceDir,
env: params.env,
pluginIds: params.includeDisabled ? pluginIds : pluginIds.filter(createContributionPluginFilter(params, index)),
includeDisabled: true
}).plugins;
}
function loadContributionRegistrySnapshot(params) {
const metadata = params.bundledChannelConfigCollector ? void 0 : loadPluginMetadataSnapshotForRegistry(params);
return metadata ? {
snapshot: metadata.index,
manifestRegistry: metadata.manifestRegistry
} : loadPluginRegistrySnapshotWithMetadata(params);
}
function loadPluginManifestRegistryForPluginRegistry(params = {}) {
const { snapshot: index, manifestRegistry } = loadContributionRegistrySnapshot(params);
return loadPluginManifestRegistryForInstalledIndex({
index,
...manifestRegistry ? { manifestRegistry } : {},
config: params.config,
workspaceDir: params.workspaceDir,
env: params.env,
pluginIds: params.pluginIds,
includeDisabled: params.includeDisabled,
...params.bundledChannelConfigCollector ? { bundledChannelConfigCollector: params.bundledChannelConfigCollector } : {}
});
}
function normalizePluginsConfigWithRegistry(config, index, options = {}) {
return normalizePluginsConfigWithResolverCore(config, createPluginRegistryIdNormalizer(index, options));
}
function listPluginContributionIds(params) {
const plugins = listContributionManifestPlugins(params);
return normalizeSortedUniqueStringEntries(plugins.flatMap((plugin) => listPluginManifestContributionIds(plugin, params.contribution)));
}
function resolvePluginContributionOwners(params) {
if (params.lookUpTable && typeof params.matches === "string") {
const index = params.lookUpTable.index;
const owners = params.lookUpTable.owners[params.contribution].get(params.matches);
if (!owners) return [];
return normalizeSortedUniqueStringEntries(owners.filter(createContributionPluginFilter(params, index)));
}
const matcher = typeof params.matches === "string" ? (contributionId) => contributionId === params.matches : params.matches;
const plugins = listContributionManifestPlugins(params);
return normalizeSortedUniqueStringEntries(plugins.flatMap((plugin) => listPluginManifestContributionIds(plugin, params.contribution).some(matcher) ? [plugin.id] : []));
}
function resolveManifestContractPluginIds(params) {
return loadManifestContractRecords(params).filter((plugin) => (!params.origin || plugin.origin === params.origin) && (plugin.contracts?.[params.contract]?.length ?? 0) > 0).map((plugin) => plugin.id).toSorted((left, right) => left.localeCompare(right));
}
function resolveManifestContractOwnerPluginId(params) {
const normalizedValue = (params.value ?? "").trim().toLowerCase();
if (!normalizedValue) return;
return loadManifestContractRecords(params).find((plugin) => (!params.origin || plugin.origin === params.origin) && plugin.contracts?.[params.contract]?.some((candidate) => candidate.trim().toLowerCase() === normalizedValue))?.id;
}
//#endregion
export { resolveManifestContractPluginIds as a, resolveManifestContractOwnerPluginId as i, loadPluginManifestRegistryForPluginRegistry as n, resolvePluginContributionOwners as o, normalizePluginsConfigWithRegistry as r, listPluginContributionIds as t };