@easynet/agent-memory 1.0.56 → 1.0.58
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/test/integration/real-memory-features.test.js +144 -146
- package/dist/test/integration/real-memory-features.test.js.map +1 -1
- package/dist/test/integration/vlm-llm-live.test.js +88 -90
- package/dist/test/integration/vlm-llm-live.test.js.map +1 -1
- package/dist/test/unit/core/agent-memory.test.d.ts.map +1 -0
- package/dist/test/unit/core/agent-memory.test.js +175 -0
- package/dist/test/unit/core/agent-memory.test.js.map +1 -0
- package/dist/test/unit/core/config.test.d.ts.map +1 -0
- package/dist/test/unit/core/config.test.js +292 -0
- package/dist/test/unit/core/config.test.js.map +1 -0
- package/dist/test/unit/core/observability.test.d.ts.map +1 -0
- package/dist/test/{core → unit/core}/observability.test.js +1 -1
- package/dist/test/unit/core/observability.test.js.map +1 -0
- package/dist/test/unit/core/policy.test.d.ts.map +1 -0
- package/dist/test/{core → unit/core}/policy.test.js +1 -1
- package/dist/test/unit/core/policy.test.js.map +1 -0
- package/dist/test/unit/core/privacy.test.d.ts.map +1 -0
- package/dist/test/{core → unit/core}/privacy.test.js +1 -1
- package/dist/test/unit/core/privacy.test.js.map +1 -0
- package/dist/test/unit/core/router.test.d.ts.map +1 -0
- package/dist/test/unit/core/router.test.js +138 -0
- package/dist/test/unit/core/router.test.js.map +1 -0
- package/dist/test/unit/create-agent-memory.test.d.ts.map +1 -0
- package/dist/test/unit/create-agent-memory.test.js +369 -0
- package/dist/test/unit/create-agent-memory.test.js.map +1 -0
- package/dist/test/unit/ingest/url-ingest.test.d.ts.map +1 -0
- package/dist/test/unit/ingest/url-ingest.test.js +135 -0
- package/dist/test/unit/ingest/url-ingest.test.js.map +1 -0
- package/dist/test/unit/providers/in-memory-store.test.d.ts.map +1 -0
- package/dist/test/{providers → unit/providers}/in-memory-store.test.js +1 -1
- package/dist/test/unit/providers/in-memory-store.test.js.map +1 -0
- package/dist/test/unit/providers/mem0-provider.test.d.ts.map +1 -0
- package/dist/test/{providers → unit/providers}/mem0-provider.test.js +1 -1
- package/dist/test/unit/providers/mem0-provider.test.js.map +1 -0
- package/dist/test/unit/providers/rag-provider.test.d.ts.map +1 -0
- package/dist/test/unit/providers/rag-provider.test.js +106 -0
- package/dist/test/unit/providers/rag-provider.test.js.map +1 -0
- package/dist/test/unit/providers/sqlite-store.test.d.ts.map +1 -0
- package/dist/test/unit/providers/sqlite-store.test.js +113 -0
- package/dist/test/unit/providers/sqlite-store.test.js.map +1 -0
- package/package.json +8 -8
- package/dist/test/core/agent-memory.test.d.ts.map +0 -1
- package/dist/test/core/agent-memory.test.js +0 -177
- package/dist/test/core/agent-memory.test.js.map +0 -1
- package/dist/test/core/config.test.d.ts.map +0 -1
- package/dist/test/core/config.test.js +0 -294
- package/dist/test/core/config.test.js.map +0 -1
- package/dist/test/core/observability.test.d.ts.map +0 -1
- package/dist/test/core/observability.test.js.map +0 -1
- package/dist/test/core/policy.test.d.ts.map +0 -1
- package/dist/test/core/policy.test.js.map +0 -1
- package/dist/test/core/privacy.test.d.ts.map +0 -1
- package/dist/test/core/privacy.test.js.map +0 -1
- package/dist/test/core/router.test.d.ts.map +0 -1
- package/dist/test/core/router.test.js +0 -140
- package/dist/test/core/router.test.js.map +0 -1
- package/dist/test/create-agent-memory.test.d.ts.map +0 -1
- package/dist/test/create-agent-memory.test.js +0 -371
- package/dist/test/create-agent-memory.test.js.map +0 -1
- package/dist/test/ingest/url-ingest.test.d.ts.map +0 -1
- package/dist/test/ingest/url-ingest.test.js +0 -137
- package/dist/test/ingest/url-ingest.test.js.map +0 -1
- package/dist/test/providers/in-memory-store.test.d.ts.map +0 -1
- package/dist/test/providers/in-memory-store.test.js.map +0 -1
- package/dist/test/providers/mem0-provider.test.d.ts.map +0 -1
- package/dist/test/providers/mem0-provider.test.js.map +0 -1
- package/dist/test/providers/rag-provider.test.d.ts.map +0 -1
- package/dist/test/providers/rag-provider.test.js +0 -108
- package/dist/test/providers/rag-provider.test.js.map +0 -1
- package/dist/test/providers/sqlite-store.test.d.ts.map +0 -1
- package/dist/test/providers/sqlite-store.test.js +0 -115
- package/dist/test/providers/sqlite-store.test.js.map +0 -1
- /package/dist/test/{core → unit/core}/agent-memory.test.d.ts +0 -0
- /package/dist/test/{core → unit/core}/config.test.d.ts +0 -0
- /package/dist/test/{core → unit/core}/observability.test.d.ts +0 -0
- /package/dist/test/{core → unit/core}/policy.test.d.ts +0 -0
- /package/dist/test/{core → unit/core}/privacy.test.d.ts +0 -0
- /package/dist/test/{core → unit/core}/router.test.d.ts +0 -0
- /package/dist/test/{create-agent-memory.test.d.ts → unit/create-agent-memory.test.d.ts} +0 -0
- /package/dist/test/{ingest → unit/ingest}/url-ingest.test.d.ts +0 -0
- /package/dist/test/{providers → unit/providers}/in-memory-store.test.d.ts +0 -0
- /package/dist/test/{providers → unit/providers}/mem0-provider.test.d.ts +0 -0
- /package/dist/test/{providers → unit/providers}/rag-provider.test.d.ts +0 -0
- /package/dist/test/{providers → unit/providers}/sqlite-store.test.d.ts +0 -0
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { it } from "node:test";
|
|
2
|
+
import assert from "node:assert";
|
|
3
|
+
import { join } from "node:path";
|
|
4
|
+
import { writeFile, mkdir, rm } from "node:fs/promises";
|
|
5
|
+
import { tmpdir } from "node:os";
|
|
6
|
+
import { randomUUID } from "node:crypto";
|
|
7
|
+
import { AgentMemory } from "../../../src/core/agent-memory.js";
|
|
8
|
+
import { MemoryRouter } from "../../../src/core/router.js";
|
|
9
|
+
import { InMemoryStoreProvider } from "../../../src/providers/in-memory-store.js";
|
|
10
|
+
import { ingestUrlToMemory } from "../../../src/ingest/url-ingest.js";
|
|
11
|
+
function makeTestMemory() {
|
|
12
|
+
const provider = new InMemoryStoreProvider();
|
|
13
|
+
const router = new MemoryRouter({
|
|
14
|
+
providers: new Map([["default", provider]]),
|
|
15
|
+
defaultProviderId: "default",
|
|
16
|
+
});
|
|
17
|
+
return new AgentMemory({ router });
|
|
18
|
+
}
|
|
19
|
+
it("ingests local txt file and memorizes chunks", async () => {
|
|
20
|
+
const dir = join(tmpdir(), `agent-memory-ingest-${randomUUID()}`);
|
|
21
|
+
await mkdir(dir, { recursive: true });
|
|
22
|
+
const filePath = join(dir, "doc.txt");
|
|
23
|
+
const content = "First paragraph.\n\nSecond paragraph.\n\nThird.";
|
|
24
|
+
await writeFile(filePath, content, "utf-8");
|
|
25
|
+
const memory = makeTestMemory();
|
|
26
|
+
try {
|
|
27
|
+
const { count, firstItem } = await ingestUrlToMemory(memory, {
|
|
28
|
+
url: filePath,
|
|
29
|
+
namespace: "test",
|
|
30
|
+
chunkSize: 50,
|
|
31
|
+
});
|
|
32
|
+
assert.ok(count >= 1);
|
|
33
|
+
assert.ok(firstItem?.id);
|
|
34
|
+
assert.strictEqual(firstItem?.type, "knowledge");
|
|
35
|
+
const result = await memory.recall({
|
|
36
|
+
namespace: "test",
|
|
37
|
+
query: "paragraph",
|
|
38
|
+
topK: 10,
|
|
39
|
+
});
|
|
40
|
+
assert.ok(result.items.length >= 1);
|
|
41
|
+
}
|
|
42
|
+
finally {
|
|
43
|
+
await rm(dir, { recursive: true, force: true }).catch(() => { });
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
it("ingests HTML and strips tags", async () => {
|
|
47
|
+
const dir = join(tmpdir(), `agent-memory-html-${randomUUID()}`);
|
|
48
|
+
await mkdir(dir, { recursive: true });
|
|
49
|
+
const filePath = join(dir, "page.html");
|
|
50
|
+
await writeFile(filePath, "<html><body><script>ignore</script><p>Visible text</p></body></html>", "utf-8");
|
|
51
|
+
const memory = makeTestMemory();
|
|
52
|
+
try {
|
|
53
|
+
const { count, firstItem } = await ingestUrlToMemory(memory, {
|
|
54
|
+
url: filePath,
|
|
55
|
+
namespace: "test",
|
|
56
|
+
chunkSize: 500,
|
|
57
|
+
});
|
|
58
|
+
assert.ok(count >= 1);
|
|
59
|
+
assert.ok(firstItem);
|
|
60
|
+
const result = await memory.recall({
|
|
61
|
+
namespace: "test",
|
|
62
|
+
query: "Visible",
|
|
63
|
+
topK: 5,
|
|
64
|
+
});
|
|
65
|
+
assert.strictEqual(result.items.length, 1);
|
|
66
|
+
assert.ok(result.items[0].content.includes("Visible text"));
|
|
67
|
+
assert.ok(!result.items[0].content.includes("<script>"));
|
|
68
|
+
}
|
|
69
|
+
finally {
|
|
70
|
+
await rm(dir, { recursive: true, force: true }).catch(() => { });
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
it("uses captionFn for image when provided", async () => {
|
|
74
|
+
const dir = join(tmpdir(), `agent-memory-img-${randomUUID()}`);
|
|
75
|
+
await mkdir(dir, { recursive: true });
|
|
76
|
+
const filePath = join(dir, "fake.png");
|
|
77
|
+
await writeFile(filePath, "not a real png", "utf-8");
|
|
78
|
+
const memory = makeTestMemory();
|
|
79
|
+
const captionFn = async (_buffer) => "Caption for image";
|
|
80
|
+
try {
|
|
81
|
+
const { count, firstItem } = await ingestUrlToMemory(memory, {
|
|
82
|
+
url: filePath,
|
|
83
|
+
namespace: "test",
|
|
84
|
+
captionFn,
|
|
85
|
+
chunkSize: 500,
|
|
86
|
+
});
|
|
87
|
+
assert.ok(count >= 1);
|
|
88
|
+
assert.strictEqual(firstItem?.content, "Caption for image");
|
|
89
|
+
}
|
|
90
|
+
finally {
|
|
91
|
+
await rm(dir, { recursive: true, force: true }).catch(() => { });
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
it("uses placeholder when image and no captionFn", async () => {
|
|
95
|
+
const dir = join(tmpdir(), `agent-memory-img2-${randomUUID()}`);
|
|
96
|
+
await mkdir(dir, { recursive: true });
|
|
97
|
+
const filePath = join(dir, "x.png");
|
|
98
|
+
await writeFile(filePath, "x", "utf-8");
|
|
99
|
+
const memory = makeTestMemory();
|
|
100
|
+
try {
|
|
101
|
+
const { count, firstItem } = await ingestUrlToMemory(memory, {
|
|
102
|
+
url: filePath,
|
|
103
|
+
namespace: "test",
|
|
104
|
+
chunkSize: 500,
|
|
105
|
+
});
|
|
106
|
+
assert.ok(count >= 1);
|
|
107
|
+
assert.ok(firstItem?.content.startsWith("(image:"));
|
|
108
|
+
}
|
|
109
|
+
finally {
|
|
110
|
+
await rm(dir, { recursive: true, force: true }).catch(() => { });
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
it("detects image by magic bytes when path has no extension (e.g. upload temp file)", async () => {
|
|
114
|
+
const dir = join(tmpdir(), `agent-memory-img3-${randomUUID()}`);
|
|
115
|
+
await mkdir(dir, { recursive: true });
|
|
116
|
+
const minimalPng = Buffer.from("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z8BQDwAEhQGAhKmMIQAAAABJRU5ErkJggg==", "base64");
|
|
117
|
+
const filePath = join(dir, "upload-temp-no-ext");
|
|
118
|
+
await writeFile(filePath, minimalPng);
|
|
119
|
+
const captionFn = async (_buffer) => "Caption for image";
|
|
120
|
+
const memory = makeTestMemory();
|
|
121
|
+
try {
|
|
122
|
+
const { count, firstItem } = await ingestUrlToMemory(memory, {
|
|
123
|
+
url: filePath,
|
|
124
|
+
namespace: "test",
|
|
125
|
+
chunkSize: 500,
|
|
126
|
+
captionFn,
|
|
127
|
+
});
|
|
128
|
+
assert.strictEqual(count, 1, "image should produce exactly one caption, not many chunks");
|
|
129
|
+
assert.strictEqual(firstItem?.content, "Caption for image");
|
|
130
|
+
}
|
|
131
|
+
finally {
|
|
132
|
+
await rm(dir, { recursive: true, force: true }).catch(() => { });
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
//# sourceMappingURL=url-ingest.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"url-ingest.test.js","sourceRoot":"","sources":["../../../../test/unit/ingest/url-ingest.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"in-memory-store.test.d.ts","sourceRoot":"","sources":["../../../../test/unit/providers/in-memory-store.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { describe, it } from "node:test";
|
|
2
2
|
import assert from "node:assert";
|
|
3
|
-
import { InMemoryStoreProvider } from "
|
|
3
|
+
import { InMemoryStoreProvider } from "../../../src/providers/in-memory-store.js";
|
|
4
4
|
describe("InMemoryStoreProvider", () => {
|
|
5
5
|
it("write and query", async () => {
|
|
6
6
|
const provider = new InMemoryStoreProvider();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"in-memory-store.test.js","sourceRoot":"","sources":["../../../../test/unit/providers/in-memory-store.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,qBAAqB,EAAE,MAAM,2CAA2C,CAAC;AAElF,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,EAAE,CAAC,iBAAiB,EAAE,KAAK,IAAI,EAAE;QAC/B,MAAM,QAAQ,GAAG,IAAI,qBAAqB,EAAE,CAAC;QAC7C,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC;YAChC,SAAS,EAAE,QAAQ;YACnB,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,mBAAmB;SAC7B,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnB,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QAC9C,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;QAEtD,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC;YACjC,SAAS,EAAE,QAAQ;YACnB,KAAK,EAAE,kBAAkB;YACzB,IAAI,EAAE,CAAC;SACR,CAAC,CAAC;QACH,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACpC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;QACxC,MAAM,QAAQ,GAAG,IAAI,qBAAqB,EAAE,CAAC;QAC7C,MAAM,QAAQ,CAAC,KAAK,CAAC;YACnB,SAAS,EAAE,WAAW;YACtB,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,cAAc;YACvB,QAAQ,EAAE,EAAE,GAAG,EAAE,mBAAmB,EAAE;SACvC,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,QAAS,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC;QACzE,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QACjB,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QAElD,MAAM,QAAQ,CAAC,WAAY,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC;QAC9D,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,QAAS,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC;QACzE,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mem0-provider.test.d.ts","sourceRoot":"","sources":["../../../../test/unit/providers/mem0-provider.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { describe, it } from "node:test";
|
|
2
2
|
import assert from "node:assert";
|
|
3
|
-
import { Mem0Provider } from "
|
|
3
|
+
import { Mem0Provider } from "../../../src/providers/mem0-provider.js";
|
|
4
4
|
function createMem0Mock() {
|
|
5
5
|
const rows = [];
|
|
6
6
|
let seq = 0;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mem0-provider.test.js","sourceRoot":"","sources":["../../../../test/unit/providers/mem0-provider.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rag-provider.test.d.ts","sourceRoot":"","sources":["../../../../test/unit/providers/rag-provider.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { it } from "node:test";
|
|
2
|
+
import assert from "node:assert";
|
|
3
|
+
import { RAGProvider } from "../../../src/providers/rag-provider.js";
|
|
4
|
+
it("write and query without embed or search", async () => {
|
|
5
|
+
const provider = new RAGProvider();
|
|
6
|
+
const item = await provider.write({
|
|
7
|
+
namespace: "user:1",
|
|
8
|
+
type: "knowledge",
|
|
9
|
+
content: "Doc about API.",
|
|
10
|
+
});
|
|
11
|
+
assert.ok(item.id);
|
|
12
|
+
assert.strictEqual(item.type, "knowledge");
|
|
13
|
+
assert.strictEqual(item.content, "Doc about API.");
|
|
14
|
+
const items = await provider.query({
|
|
15
|
+
namespace: "user:1",
|
|
16
|
+
query: "API",
|
|
17
|
+
topK: 5,
|
|
18
|
+
});
|
|
19
|
+
assert.strictEqual(items.length, 1);
|
|
20
|
+
assert.strictEqual(items[0].content, "Doc about API.");
|
|
21
|
+
});
|
|
22
|
+
it("write with embed stores embedding", async () => {
|
|
23
|
+
const embed = async (text) => text.split("").map((_, i) => (i % 2) * 0.5);
|
|
24
|
+
const provider = new RAGProvider({ embed });
|
|
25
|
+
const item = await provider.write({
|
|
26
|
+
namespace: "ns",
|
|
27
|
+
type: "knowledge",
|
|
28
|
+
content: "hello",
|
|
29
|
+
});
|
|
30
|
+
assert.ok(item.embedding);
|
|
31
|
+
assert.ok(Array.isArray(item.embedding));
|
|
32
|
+
});
|
|
33
|
+
it("query with custom search uses search results", async () => {
|
|
34
|
+
const provider = new RAGProvider({
|
|
35
|
+
search: async (namespace, _query, topK) => {
|
|
36
|
+
return [
|
|
37
|
+
{
|
|
38
|
+
item: {
|
|
39
|
+
id: "s1",
|
|
40
|
+
type: "knowledge",
|
|
41
|
+
namespace,
|
|
42
|
+
scope: "global",
|
|
43
|
+
content: "search result",
|
|
44
|
+
metadata: { created_at: "", updated_at: "" },
|
|
45
|
+
},
|
|
46
|
+
score: 0.9,
|
|
47
|
+
},
|
|
48
|
+
].slice(0, topK);
|
|
49
|
+
},
|
|
50
|
+
});
|
|
51
|
+
await provider.write({
|
|
52
|
+
namespace: "ns",
|
|
53
|
+
type: "knowledge",
|
|
54
|
+
content: "stored",
|
|
55
|
+
});
|
|
56
|
+
const items = await provider.query({
|
|
57
|
+
namespace: "ns",
|
|
58
|
+
query: "q",
|
|
59
|
+
topK: 3,
|
|
60
|
+
});
|
|
61
|
+
assert.strictEqual(items.length, 1);
|
|
62
|
+
assert.strictEqual(items[0].content, "search result");
|
|
63
|
+
});
|
|
64
|
+
it("delete removes item", async () => {
|
|
65
|
+
const provider = new RAGProvider();
|
|
66
|
+
const item = await provider.write({
|
|
67
|
+
namespace: "ns",
|
|
68
|
+
type: "knowledge",
|
|
69
|
+
content: "to delete",
|
|
70
|
+
});
|
|
71
|
+
const before = await provider.query({
|
|
72
|
+
namespace: "ns",
|
|
73
|
+
query: "x",
|
|
74
|
+
topK: 10,
|
|
75
|
+
});
|
|
76
|
+
assert.strictEqual(before.length, 1);
|
|
77
|
+
await provider.delete(item.id, "ns");
|
|
78
|
+
const after = await provider.query({
|
|
79
|
+
namespace: "ns",
|
|
80
|
+
query: "x",
|
|
81
|
+
topK: 10,
|
|
82
|
+
});
|
|
83
|
+
assert.strictEqual(after.length, 0);
|
|
84
|
+
});
|
|
85
|
+
it("query filters by types", async () => {
|
|
86
|
+
const provider = new RAGProvider();
|
|
87
|
+
await provider.write({
|
|
88
|
+
namespace: "ns",
|
|
89
|
+
type: "knowledge",
|
|
90
|
+
content: "doc",
|
|
91
|
+
});
|
|
92
|
+
await provider.write({
|
|
93
|
+
namespace: "ns",
|
|
94
|
+
type: "cross_thread",
|
|
95
|
+
content: "pref",
|
|
96
|
+
});
|
|
97
|
+
const items = await provider.query({
|
|
98
|
+
namespace: "ns",
|
|
99
|
+
query: "x",
|
|
100
|
+
topK: 5,
|
|
101
|
+
types: ["knowledge"],
|
|
102
|
+
});
|
|
103
|
+
assert.strictEqual(items.length, 1);
|
|
104
|
+
assert.strictEqual(items[0].type, "knowledge");
|
|
105
|
+
});
|
|
106
|
+
//# sourceMappingURL=rag-provider.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rag-provider.test.js","sourceRoot":"","sources":["../../../../test/unit/providers/rag-provider.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqlite-store.test.d.ts","sourceRoot":"","sources":["../../../../test/unit/providers/sqlite-store.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { it } from "node:test";
|
|
2
|
+
import assert from "node:assert";
|
|
3
|
+
import { SqliteStoreProvider } from "../../../src/providers/sqlite-store.js";
|
|
4
|
+
const hasSqlite = (() => {
|
|
5
|
+
try {
|
|
6
|
+
const probe = new SqliteStoreProvider({ dbPath: ":memory:" });
|
|
7
|
+
void probe;
|
|
8
|
+
return true;
|
|
9
|
+
}
|
|
10
|
+
catch {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
})();
|
|
14
|
+
it("write and query without embed", async () => {
|
|
15
|
+
const provider = new SqliteStoreProvider({ dbPath: ":memory:" });
|
|
16
|
+
const item = await provider.write({
|
|
17
|
+
namespace: "user:1",
|
|
18
|
+
type: "cross_thread",
|
|
19
|
+
content: "Prefer dark mode.",
|
|
20
|
+
});
|
|
21
|
+
assert.ok(item.id);
|
|
22
|
+
assert.strictEqual(item.type, "cross_thread");
|
|
23
|
+
assert.strictEqual(item.content, "Prefer dark mode.");
|
|
24
|
+
const items = await provider.query({
|
|
25
|
+
namespace: "user:1",
|
|
26
|
+
query: "user preferences",
|
|
27
|
+
topK: 5,
|
|
28
|
+
});
|
|
29
|
+
assert.strictEqual(items.length, 1);
|
|
30
|
+
assert.strictEqual(items[0].content, "Prefer dark mode.");
|
|
31
|
+
});
|
|
32
|
+
it("write and query with embed", async () => {
|
|
33
|
+
const embed = async (text) => text.split("").map((_, i) => (i % 3) * 0.1);
|
|
34
|
+
const provider = new SqliteStoreProvider({
|
|
35
|
+
dbPath: ":memory:",
|
|
36
|
+
embed,
|
|
37
|
+
});
|
|
38
|
+
await provider.write({
|
|
39
|
+
namespace: "ns",
|
|
40
|
+
type: "knowledge",
|
|
41
|
+
content: "alpha",
|
|
42
|
+
});
|
|
43
|
+
await provider.write({
|
|
44
|
+
namespace: "ns",
|
|
45
|
+
type: "knowledge",
|
|
46
|
+
content: "beta",
|
|
47
|
+
});
|
|
48
|
+
const items = await provider.query({
|
|
49
|
+
namespace: "ns",
|
|
50
|
+
query: "alpha",
|
|
51
|
+
topK: 2,
|
|
52
|
+
});
|
|
53
|
+
assert.strictEqual(items.length, 2);
|
|
54
|
+
assert.strictEqual(items[0].content, "alpha");
|
|
55
|
+
});
|
|
56
|
+
it("getByKey and deleteByKey", async () => {
|
|
57
|
+
const provider = new SqliteStoreProvider({ dbPath: ":memory:" });
|
|
58
|
+
await provider.write({
|
|
59
|
+
namespace: "memory:fs",
|
|
60
|
+
type: "cross_thread",
|
|
61
|
+
content: "file content",
|
|
62
|
+
metadata: { key: "/memories/foo.txt" },
|
|
63
|
+
});
|
|
64
|
+
const found = await provider.getByKey("memory:fs", "/memories/foo.txt");
|
|
65
|
+
assert.ok(found);
|
|
66
|
+
assert.strictEqual(found.content, "file content");
|
|
67
|
+
await provider.deleteByKey("memory:fs", "/memories/foo.txt");
|
|
68
|
+
const after = await provider.getByKey("memory:fs", "/memories/foo.txt");
|
|
69
|
+
assert.strictEqual(after, null);
|
|
70
|
+
});
|
|
71
|
+
it("delete by id", async () => {
|
|
72
|
+
const provider = new SqliteStoreProvider({ dbPath: ":memory:" });
|
|
73
|
+
const item = await provider.write({
|
|
74
|
+
namespace: "user:1",
|
|
75
|
+
type: "thread",
|
|
76
|
+
content: "to delete",
|
|
77
|
+
});
|
|
78
|
+
const before = await provider.query({
|
|
79
|
+
namespace: "user:1",
|
|
80
|
+
query: "any",
|
|
81
|
+
topK: 10,
|
|
82
|
+
});
|
|
83
|
+
assert.strictEqual(before.length, 1);
|
|
84
|
+
await provider.delete(item.id, "user:1");
|
|
85
|
+
const after = await provider.query({
|
|
86
|
+
namespace: "user:1",
|
|
87
|
+
query: "any",
|
|
88
|
+
topK: 10,
|
|
89
|
+
});
|
|
90
|
+
assert.strictEqual(after.length, 0);
|
|
91
|
+
});
|
|
92
|
+
it("query with types filter", async () => {
|
|
93
|
+
const provider = new SqliteStoreProvider({ dbPath: ":memory:" });
|
|
94
|
+
await provider.write({
|
|
95
|
+
namespace: "ns",
|
|
96
|
+
type: "knowledge",
|
|
97
|
+
content: "doc",
|
|
98
|
+
});
|
|
99
|
+
await provider.write({
|
|
100
|
+
namespace: "ns",
|
|
101
|
+
type: "cross_thread",
|
|
102
|
+
content: "pref",
|
|
103
|
+
});
|
|
104
|
+
const items = await provider.query({
|
|
105
|
+
namespace: "ns",
|
|
106
|
+
query: "x",
|
|
107
|
+
topK: 5,
|
|
108
|
+
types: ["knowledge"],
|
|
109
|
+
});
|
|
110
|
+
assert.strictEqual(items.length, 1);
|
|
111
|
+
assert.strictEqual(items[0].type, "knowledge");
|
|
112
|
+
});
|
|
113
|
+
//# sourceMappingURL=sqlite-store.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqlite-store.test.js","sourceRoot":"","sources":["../../../../test/unit/providers/sqlite-store.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@easynet/agent-memory",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.58",
|
|
4
4
|
"description": "Unified memory layer for LangChain / LangGraph / DeepAgents",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/src/index.js",
|
|
@@ -15,13 +15,13 @@
|
|
|
15
15
|
"preinstall": "node -e \"const fs=require('fs'); const {execSync}=require('child_process'); if (fs.existsSync('scripts/resolve-deps.js')) { execSync('node scripts/resolve-deps.js', { stdio: 'inherit' }); } else { console.log('Skipping resolve-deps for published package'); }\"",
|
|
16
16
|
"build": "tsc",
|
|
17
17
|
"pretest": "pnpm run build",
|
|
18
|
-
"test": "node --test dist/test/*.test.js dist/test/core/*.test.js dist/test/providers/*.test.js dist/test/ingest/*.test.js dist/test/integration/*.test.js",
|
|
19
|
-
"test:unit": "node --test dist/test/core/*.js dist/test/providers/*.js dist/test/ingest/*.js dist/test/create-agent-memory.test.js",
|
|
20
|
-
"test:unit:ci": "node --test dist/test/core/*.js dist/test/ingest/*.js dist/test/create-agent-memory.test.js dist/test/providers/in-memory-store.test.js dist/test/providers/rag-provider.test.js dist/test/providers/mem0-provider.test.js",
|
|
18
|
+
"test": "node --test dist/test/unit/*.test.js dist/test/unit/core/*.test.js dist/test/unit/providers/*.test.js dist/test/unit/ingest/*.test.js dist/test/integration/*.test.js",
|
|
19
|
+
"test:unit": "node --test dist/test/unit/core/*.js dist/test/unit/providers/*.js dist/test/unit/ingest/*.js dist/test/unit/create-agent-memory.test.js",
|
|
20
|
+
"test:unit:ci": "node --test dist/test/unit/core/*.js dist/test/unit/ingest/*.js dist/test/unit/create-agent-memory.test.js dist/test/unit/providers/in-memory-store.test.js dist/test/unit/providers/rag-provider.test.js dist/test/unit/providers/mem0-provider.test.js",
|
|
21
21
|
"test:integration": "node --test dist/test/integration/*.test.js",
|
|
22
22
|
"test:integration:real": "RUN_REAL_MEMORY_INTEGRATION=1 node --test dist/test/integration/real-memory-features.test.js",
|
|
23
23
|
"test:integration:live": "RUN_LIVE_INTEGRATION=1 node --test dist/test/integration/*.test.js",
|
|
24
|
-
"test:full": "RUN_LIVE_INTEGRATION=1 node --test dist/test/*.test.js dist/test/core/*.test.js dist/test/providers/*.test.js dist/test/ingest/*.test.js dist/test/integration/*.test.js",
|
|
24
|
+
"test:full": "RUN_LIVE_INTEGRATION=1 node --test dist/test/unit/*.test.js dist/test/unit/core/*.test.js dist/test/unit/providers/*.test.js dist/test/unit/ingest/*.test.js dist/test/integration/*.test.js",
|
|
25
25
|
"lint": "tsc --noEmit",
|
|
26
26
|
"typecheck": "tsc --noEmit",
|
|
27
27
|
"release": "semantic-release"
|
|
@@ -30,12 +30,12 @@
|
|
|
30
30
|
"@easynet/agent-common": "latest"
|
|
31
31
|
},
|
|
32
32
|
"peerDependencies": {
|
|
33
|
-
"@langchain/langgraph": "1.
|
|
33
|
+
"@langchain/langgraph": "1.2.0",
|
|
34
34
|
"@langchain/langgraph-checkpoint": "1.0.0",
|
|
35
35
|
"better-sqlite3": "^12.6.2",
|
|
36
36
|
"cheerio": "*",
|
|
37
|
-
"deepagents": "1.8.
|
|
38
|
-
"langchain": "1.2.
|
|
37
|
+
"deepagents": "1.8.1",
|
|
38
|
+
"langchain": "1.2.30",
|
|
39
39
|
"mem0ai": ">=1.0.0",
|
|
40
40
|
"pdf-parse": "*"
|
|
41
41
|
},
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agent-memory.test.d.ts","sourceRoot":"","sources":["../../../test/core/agent-memory.test.ts"],"names":[],"mappings":""}
|