openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
38 lines (37 loc) • 1.68 kB
JavaScript
import { n as normalizePluginsConfigWithResolverCore } from "./config-normalization-shared-DVk1kbw8.mjs";
import { r as hasKind } from "./slots-CSgIxf6O.mjs";
import { p as resolveMemorySlotDecision } from "./config-state-1t-kMQI9.mjs";
import { r as resolvePolicyPluginActivationState } from "./manifest-registry-build-DXs77261.mjs";
//#region src/plugins/plugin-root-contributions.ts
/** Select active root contributions while leaving path validation and publication to consumers. */
function* iteratePluginRootContributions(params) {
const normalizedPlugins = normalizePluginsConfigWithResolverCore(params.config?.plugins, params.metadataSnapshot.normalizePluginId);
const memorySlot = normalizedPlugins.slots.memory;
let selectedMemoryPluginId = null;
for (const record of params.metadataSnapshot.manifestRegistry.plugins) {
const roots = record[params.contribution];
if (!roots || roots.length === 0) continue;
if (!resolvePolicyPluginActivationState({
id: record.id,
origin: record.origin,
channelIds: record.channels,
config: normalizedPlugins,
rootConfig: params.config,
...params.contribution === "skills" ? { enabledByDefault: record.enabledByDefault } : {}
}).activated || params.isAvailable && !params.isAvailable(record)) continue;
const memoryDecision = resolveMemorySlotDecision({
id: record.id,
kind: record.kind,
slot: memorySlot,
selectedId: selectedMemoryPluginId
});
if (!memoryDecision.enabled) continue;
if (memoryDecision.selected && hasKind(record.kind, "memory")) selectedMemoryPluginId = record.id;
yield {
record,
roots
};
}
}
//#endregion
export { iteratePluginRootContributions as t };