openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
77 lines (76 loc) • 2.96 kB
JavaScript
import { t as isBlockedObjectKey } from "./prototype-keys-D2nJOZIy.js";
import { o as normalizeProviderId } from "./model-selection-normalize-roKDxQ9_.js";
import "./model-selection-CA_65iXi.js";
import { t as parseGenerationModelRef } from "./model-ref-5Qj5R17c.js";
import { r as resolvePluginCapabilityProviders } from "./capability-provider-runtime-kNmuYvcj.js";
//#region src/music-generation/model-ref.ts
/**
* Model reference parsing for music generation.
*
* Music generation uses the same provider/model ref grammar as other media
* capabilities, but keeps this wrapper for a dedicated capability boundary.
*/
/** Parse a music generation model ref into provider and model ids. */
function parseMusicGenerationModelRef(raw) {
return parseGenerationModelRef(raw);
}
//#endregion
//#region src/music-generation/provider-registry.ts
/**
* Registry for music generation providers.
*
* Built-ins and plugin-provided capability providers share one alias map while
* rejecting unsafe object keys before they reach Maps or config-derived lookups.
*/
const BUILTIN_MUSIC_GENERATION_PROVIDERS = [];
const UNSAFE_PROVIDER_IDS = new Set([
"__proto__",
"constructor",
"prototype"
]);
function normalizeMusicGenerationProviderId(id) {
const normalized = normalizeProviderId(id ?? "");
if (!normalized || isBlockedObjectKey(normalized)) return;
return normalized;
}
function isSafeMusicGenerationProviderId(id) {
return Boolean(id && !UNSAFE_PROVIDER_IDS.has(id));
}
function resolvePluginMusicGenerationProviders(cfg) {
return resolvePluginCapabilityProviders({
key: "musicGenerationProviders",
cfg
});
}
function buildProviderMaps(cfg) {
const canonical = /* @__PURE__ */ new Map();
const aliases = /* @__PURE__ */ new Map();
const register = (provider) => {
const id = normalizeMusicGenerationProviderId(provider.id);
if (!isSafeMusicGenerationProviderId(id)) return;
canonical.set(id, provider);
aliases.set(id, provider);
for (const alias of provider.aliases ?? []) {
const normalizedAlias = normalizeMusicGenerationProviderId(alias);
if (isSafeMusicGenerationProviderId(normalizedAlias)) aliases.set(normalizedAlias, provider);
}
};
for (const provider of BUILTIN_MUSIC_GENERATION_PROVIDERS) register(provider);
for (const provider of resolvePluginMusicGenerationProviders(cfg)) register(provider);
return {
canonical,
aliases
};
}
/** List canonical music generation providers available for the current config. */
function listMusicGenerationProviders(cfg) {
return [...buildProviderMaps(cfg).canonical.values()];
}
/** Resolve a music generation provider by canonical id or alias. */
function getMusicGenerationProvider(providerId, cfg) {
const normalized = normalizeMusicGenerationProviderId(providerId);
if (!normalized) return;
return buildProviderMaps(cfg).aliases.get(normalized);
}
//#endregion
export { listMusicGenerationProviders as n, parseMusicGenerationModelRef as r, getMusicGenerationProvider as t };