openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
53 lines (52 loc) • 2.26 kB
JavaScript
import { g as sortUniqueStrings } from "./string-normalization-WNUDCpXX.js";
import { n as isInstalledPluginEnabled } from "./installed-plugin-index-BSYm7o5l.js";
import { a as resolvePluginMetadataSnapshot } from "./plugin-metadata-snapshot-Ctk9Oarq.js";
//#region src/plugins/manifest-contract-eligibility.ts
function isManifestPluginAvailableForControlPlane(params) {
if (params.plugin.origin === "bundled") return true;
return isInstalledPluginEnabled(params.snapshot.index, params.plugin.id, params.config);
}
function hasManifestContractValue(params) {
const values = params.plugin.contracts?.[params.contract] ?? [];
return values.length > 0 && (!params.value || values.includes(params.value));
}
function listAvailableManifestContractPlugins(params) {
return params.snapshot.plugins.filter((plugin) => hasManifestContractValue({
plugin,
contract: params.contract,
value: params.value
}) && isManifestPluginAvailableForControlPlane({
snapshot: params.snapshot,
plugin,
config: params.config
}));
}
function listAvailableManifestContractValues(params) {
const values = /* @__PURE__ */ new Set();
for (const plugin of listAvailableManifestContractPlugins(params)) for (const value of plugin.contracts?.[params.contract] ?? []) values.add(value);
return sortUniqueStrings(values);
}
function loadManifestContractSnapshot(params) {
const snapshot = loadManifestMetadataSnapshot(params);
return {
index: snapshot.index,
plugins: snapshot.plugins
};
}
function loadManifestMetadataRegistry(params) {
const snapshot = loadManifestMetadataSnapshot(params);
return {
index: snapshot.index,
manifestRegistry: snapshot.manifestRegistry
};
}
function loadManifestMetadataSnapshot(params) {
return resolvePluginMetadataSnapshot({
config: params.config ?? {},
env: params.env ?? process.env,
...params.workspaceDir ? { workspaceDir: params.workspaceDir } : {},
allowWorkspaceScopedCurrent: params.workspaceDir === void 0
});
}
//#endregion
export { loadManifestContractSnapshot as a, listAvailableManifestContractValues as i, isManifestPluginAvailableForControlPlane as n, loadManifestMetadataRegistry as o, listAvailableManifestContractPlugins as r, loadManifestMetadataSnapshot as s, hasManifestContractValue as t };