Files
openclaw/src/plugins/memory-embedding-provider-runtime.ts
2026-04-17 11:37:46 -04:00

47 lines
1.4 KiB
TypeScript

import type { OpenClawConfig } from "../config/types.openclaw.js";
import {
resolvePluginCapabilityProvider,
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();
const merged = new Map(registered.map((adapter) => [adapter.id, adapter]));
for (const adapter of resolvePluginCapabilityProviders({
key: "memoryEmbeddingProviders",
cfg,
})) {
if (!merged.has(adapter.id)) {
merged.set(adapter.id, adapter);
}
}
return [...merged.values()];
}
export function getMemoryEmbeddingProvider(
id: string,
cfg?: OpenClawConfig,
): MemoryEmbeddingProviderAdapter | undefined {
const registered = getRegisteredMemoryEmbeddingProvider(id);
if (registered) {
return registered.adapter;
}
return resolvePluginCapabilityProvider({
key: "memoryEmbeddingProviders",
providerId: id,
cfg,
});
}