openclaw/src/plugins/memory-embedding-provider-r...

40 lines
1.3 KiB
TypeScript

import type { OpenClawConfig } from "../config/config.js";
import { resolvePluginCapabilityProviders } from "./capability-provider-runtime.js";
import {
getRegisteredMemoryEmbeddingProvider,
listRegisteredMemoryEmbeddingProviders,
type MemoryEmbeddingProviderAdapter,
} from "./memory-embedding-providers.js";
export { listRegisteredMemoryEmbeddingProviders };
export function listRegisteredMemoryEmbeddingProviderAdapters(): MemoryEmbeddingProviderAdapter[] {
return listRegisteredMemoryEmbeddingProviders().map((entry) => entry.adapter);
}
export function listMemoryEmbeddingProviders(
cfg?: OpenClawConfig,
): MemoryEmbeddingProviderAdapter[] {
const registered = listRegisteredMemoryEmbeddingProviderAdapters();
if (registered.length > 0) {
return registered;
}
return resolvePluginCapabilityProviders({
key: "memoryEmbeddingProviders",
cfg,
});
}
export function getMemoryEmbeddingProvider(
id: string,
cfg?: OpenClawConfig,
): MemoryEmbeddingProviderAdapter | undefined {
const registered = getRegisteredMemoryEmbeddingProvider(id);
if (registered) {
return registered.adapter;
}
if (listRegisteredMemoryEmbeddingProviders().length > 0) {
return undefined;
}
return listMemoryEmbeddingProviders(cfg).find((adapter) => adapter.id === id);
}