openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
31 lines (30 loc) • 1.56 kB
JavaScript
import { c as normalizeOptionalLowercaseString } from "./string-coerce-CIXf7egm.js";
import { t as isBlockedObjectKey } from "./prototype-keys-CuYw53fZ.js";
import { r as normalizeProviderId } from "./provider-id-DMd-TDFp.js";
//#region src/plugins/provider-registry-shared.ts
/** Normalizes provider ids used by capability-provider registries. */
function normalizeCapabilityProviderId(providerId) {
const normalized = normalizeOptionalLowercaseString(providerId);
return normalized && !isBlockedObjectKey(normalized) ? normalized : void 0;
}
function matchesProviderPluginRef(provider, providerId) {
const normalized = normalizeProviderId(providerId);
return Boolean(normalized && (normalizeProviderId(provider.id) === normalized || [...provider.aliases ?? [], ...provider.hookAliases ?? []].some((alias) => normalizeProviderId(alias) === normalized)));
}
/** Preserves ordered alias overrides, including aliases of replaced canonical entries. */
function buildCapabilityProviderIndex(providers, mode) {
const index = /* @__PURE__ */ new Map();
for (const provider of providers) {
const id = normalizeCapabilityProviderId(provider.id);
if (!id) continue;
index.set(id, provider);
if (mode === "canonical") continue;
for (const alias of provider.aliases ?? []) {
const normalizedAlias = normalizeCapabilityProviderId(alias);
if (normalizedAlias) index.set(normalizedAlias, provider);
}
}
return index;
}
//#endregion
export { matchesProviderPluginRef as n, normalizeCapabilityProviderId as r, buildCapabilityProviderIndex as t };