fix: adding skills config and updating the plugin the config (#4958)

This commit is contained in:
Kartik
2026-04-29 22:19:40 +05:30
committed by GitHub
parent 594b4e65d6
commit ebb9bb2b15
20 changed files with 585 additions and 176 deletions
+46 -2
View File
@@ -7,6 +7,7 @@ import {
buildOssLlmConfig,
buildOssEmbedderConfig,
buildOssVectorConfig,
collectionNameForDims,
validateOssFlags,
checkQdrantConnectivity,
checkOllamaConnectivity,
@@ -90,9 +91,9 @@ describe("buildOssEmbedderConfig", () => {
expect(result.dims).toBe(768);
});
it("returns unknown dims for custom model", () => {
it("falls back to provider default dims for custom model", () => {
const result = buildOssEmbedderConfig("ollama", { model: "custom-embed" });
expect(result.dims).toBeUndefined();
expect(result.dims).toBe(768);
});
});
@@ -147,6 +148,49 @@ describe("buildOssVectorConfig", () => {
});
});
describe("collectionNameForDims", () => {
it("generates dimension-based collection name", () => {
expect(collectionNameForDims(1536)).toBe("mem0_1536d");
expect(collectionNameForDims(768)).toBe("mem0_768d");
expect(collectionNameForDims(384)).toBe("mem0_384d");
});
});
describe("buildOssVectorConfig dimension safety", () => {
it("sets both dimension and embeddingModelDims when dims provided", () => {
const result = buildOssVectorConfig("qdrant", { dims: 768 });
expect(result.config.dimension).toBe(768);
expect(result.config.embeddingModelDims).toBe(768);
});
it("sets collectionName based on dims", () => {
const result = buildOssVectorConfig("qdrant", { dims: 768 });
expect(result.config.collectionName).toBe("mem0_768d");
});
it("uses different collection names for different dims", () => {
const r1 = buildOssVectorConfig("qdrant", { dims: 1536 });
const r2 = buildOssVectorConfig("qdrant", { dims: 768 });
expect(r1.config.collectionName).not.toBe(r2.config.collectionName);
});
it("omits dimension fields when dims not provided", () => {
const result = buildOssVectorConfig("qdrant", {});
expect(result.config.dimension).toBeUndefined();
expect(result.config.embeddingModelDims).toBeUndefined();
expect(result.config.collectionName).toBeUndefined();
});
it("works with pgvector too", () => {
const result = buildOssVectorConfig("pgvector", {
host: "localhost", port: "5432", user: "me", password: "pw", dbname: "test", dims: 768,
});
expect(result.config.dimension).toBe(768);
expect(result.config.embeddingModelDims).toBe(768);
expect(result.config.collectionName).toBe("mem0_768d");
});
});
describe("checkQdrantConnectivity", () => {
it("returns error for unreachable host", async () => {
const result = await checkQdrantConnectivity("http://localhost:19999");