refactor: move memory engine behind plugin adapters

This commit is contained in:
Peter Steinberger
2026-03-27 00:40:45 +00:00
parent aed6283faa
commit dbf78de7c6
142 changed files with 1610 additions and 966 deletions

View File

@@ -0,0 +1,49 @@
import { afterEach, describe, expect, it } from "vitest";
import {
clearMemoryEmbeddingProviders,
getMemoryEmbeddingProvider,
listMemoryEmbeddingProviders,
registerMemoryEmbeddingProvider,
restoreMemoryEmbeddingProviders,
type MemoryEmbeddingProviderAdapter,
} from "./memory-embedding-providers.js";
function createAdapter(id: string): MemoryEmbeddingProviderAdapter {
return {
id,
create: async () => ({ provider: null }),
};
}
afterEach(() => {
clearMemoryEmbeddingProviders();
});
describe("memory embedding provider registry", () => {
it("registers and lists adapters in insertion order", () => {
registerMemoryEmbeddingProvider(createAdapter("alpha"));
registerMemoryEmbeddingProvider(createAdapter("beta"));
expect(getMemoryEmbeddingProvider("alpha")?.id).toBe("alpha");
expect(listMemoryEmbeddingProviders().map((adapter) => adapter.id)).toEqual(["alpha", "beta"]);
});
it("restores a previous snapshot", () => {
const alpha = createAdapter("alpha");
const beta = createAdapter("beta");
registerMemoryEmbeddingProvider(alpha);
restoreMemoryEmbeddingProviders([beta]);
expect(getMemoryEmbeddingProvider("alpha")).toBeUndefined();
expect(getMemoryEmbeddingProvider("beta")).toBe(beta);
});
it("clears the registry", () => {
registerMemoryEmbeddingProvider(createAdapter("alpha"));
clearMemoryEmbeddingProviders();
expect(listMemoryEmbeddingProviders()).toEqual([]);
});
});