openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
64 lines (63 loc) • 3.5 kB
JavaScript
import { c as findActiveDegradedSecretOwner, n as SecretSurfaceUnavailableError } from "./runtime-degraded-state-D5EZZ925.js";
import { n as normalizeMediaProviderId } from "./provider-id-DSbuCFIb.js";
//#region src/media-understanding/entry-capabilities.ts
const MEDIA_CAPABILITIES = [
"audio",
"image",
"video"
];
function isMediaCapability(value) {
return typeof value === "string" && MEDIA_CAPABILITIES.includes(value);
}
function resolveEntryType(entry) {
return entry.type ?? (entry.command ? "cli" : "provider");
}
/** Returns valid explicit capability tags from a media model entry. */
function resolveConfiguredMediaEntryCapabilities(entry) {
if (!Array.isArray(entry.capabilities)) return;
const capabilities = entry.capabilities.filter(isMediaCapability);
return capabilities.length > 0 ? capabilities : void 0;
}
/** Resolves the capability set for an entry, inferring shared provider entries from metadata. */
function resolveEffectiveMediaEntryCapabilities(params) {
const configured = resolveConfiguredMediaEntryCapabilities(params.entry);
if (configured) return configured;
if (params.source !== "shared") return;
if (resolveEntryType(params.entry) === "cli") return;
const providerId = normalizeMediaProviderId(params.entry.provider ?? "");
if (!providerId) return;
return params.providerRegistry.get(providerId)?.capabilities;
}
/** Tests whether an entry should be considered for a requested media capability. */
function matchesMediaEntryCapability(params) {
const capabilities = resolveEffectiveMediaEntryCapabilities(params);
if (!capabilities || capabilities.length === 0) return params.source === "capability";
return capabilities.includes(params.capability);
}
//#endregion
//#region src/secrets/runtime-media-secret-owner.ts
/** Runtime owner for one configured media-understanding model entry. */
function runtimeMediaModelSecretOwnerId(params) {
return params.source === "shared" ? `media-model:shared:${params.index}` : `media-model:${params.capability}:${params.index}`;
}
/** Runtime owner for request defaults inherited by one media capability. */
function runtimeMediaRequestSecretOwnerId(capability) {
return `media-model:${capability}:request`;
}
function modelRequestOverridesPath(entry, path) {
const request = entry.request;
const requestPath = path.split(".request.")[1];
if (!request || !requestPath) return false;
if (requestPath.startsWith("auth.")) return request.auth !== void 0;
if (requestPath.startsWith("tls.")) return request.tls !== void 0;
if (requestPath.startsWith("proxy.")) return request.proxy !== void 0;
const headerName = requestPath.startsWith("headers.") ? requestPath.slice(8).toLowerCase() : void 0;
return Boolean(headerName && Object.keys(request.headers ?? {}).some((key) => key.toLowerCase() === headerName));
}
/** Rejects a cold capability request only when the model still inherits its failed field. */
function assertRuntimeMediaRequestSecretOwnerAvailable(params) {
const owner = findActiveDegradedSecretOwner("capability", runtimeMediaRequestSecretOwnerId(params.capability));
if (owner && owner.paths.some((path) => !modelRequestOverridesPath(params.entry, path))) throw new SecretSurfaceUnavailableError(owner);
}
//#endregion
export { resolveConfiguredMediaEntryCapabilities as a, matchesMediaEntryCapability as i, runtimeMediaModelSecretOwnerId as n, resolveEffectiveMediaEntryCapabilities as o, runtimeMediaRequestSecretOwnerId as r, assertRuntimeMediaRequestSecretOwnerAvailable as t };