import type { OpenClawConfig } from "../config/types.js"; import { loadPluginManifestRegistry } from "../plugins/manifest-registry.js"; import { normalizeMediaProviderId } from "./provider-id.js"; import type { MediaUnderstandingProvider } from "./types.js";
export function buildMediaUnderstandingManifestMetadataRegistry(
cfg?: OpenClawConfig,
): Map<string, MediaUnderstandingProvider> { const registry = new Map<string, MediaUnderstandingProvider>(); for (const plugin of loadPluginManifestRegistry({
config: cfg,
env: process.env,
}).plugins) { const declaredProviders = new Set(
(plugin.contracts?.mediaUnderstandingProviders ?? []).map((providerId) =>
normalizeMediaProviderId(providerId),
),
); for (const [providerId, metadata] of Object.entries(
plugin.mediaUnderstandingProviderMetadata ?? {},
)) { const normalizedProviderId = normalizeMediaProviderId(providerId); if (!normalizedProviderId || !declaredProviders.has(normalizedProviderId)) { continue;
}
registry.set(normalizedProviderId, {
id: normalizedProviderId,
capabilities: metadata.capabilities,
defaultModels: metadata.defaultModels,
autoPriority: metadata.autoPriority,
nativeDocumentInputs: metadata.nativeDocumentInputs,
});
}
} return registry;
}
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.11 Sekunden
(vorverarbeitet am 2026-06-08)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.