@easynet/agent-memory 1.0.57 → 1.0.59
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 +3 -1
- package/dist/test/integration/real-memory-features.test.js.map +1 -1
- package/dist/test/integration/vlm-llm-live.test.js +1 -1
- package/dist/test/integration/vlm-llm-live.test.js.map +1 -1
- package/dist/test/unit/core/agent-memory.test.js +139 -141
- package/dist/test/unit/core/agent-memory.test.js.map +1 -1
- package/dist/test/unit/core/config.test.js +162 -164
- package/dist/test/unit/core/config.test.js.map +1 -1
- package/dist/test/unit/core/router.test.js +102 -104
- package/dist/test/unit/core/router.test.js.map +1 -1
- package/dist/test/unit/create-agent-memory.test.js +296 -298
- package/dist/test/unit/create-agent-memory.test.js.map +1 -1
- package/dist/test/unit/ingest/url-ingest.test.js +116 -118
- package/dist/test/unit/ingest/url-ingest.test.js.map +1 -1
- package/dist/test/unit/providers/rag-provider.test.js +96 -98
- package/dist/test/unit/providers/rag-provider.test.js.map +1 -1
- package/dist/test/unit/providers/sqlite-store.test.js +94 -96
- package/dist/test/unit/providers/sqlite-store.test.js.map +1 -1
- package/package.json +4 -4
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { it } from "node:test";
|
|
2
2
|
import assert from "node:assert";
|
|
3
3
|
import { SqliteStoreProvider } from "../../../src/providers/sqlite-store.js";
|
|
4
4
|
const hasSqlite = (() => {
|
|
@@ -11,105 +11,103 @@ const hasSqlite = (() => {
|
|
|
11
11
|
return false;
|
|
12
12
|
}
|
|
13
13
|
})();
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
content: "Prefer dark mode.",
|
|
21
|
-
});
|
|
22
|
-
assert.ok(item.id);
|
|
23
|
-
assert.strictEqual(item.type, "cross_thread");
|
|
24
|
-
assert.strictEqual(item.content, "Prefer dark mode.");
|
|
25
|
-
const items = await provider.query({
|
|
26
|
-
namespace: "user:1",
|
|
27
|
-
query: "user preferences",
|
|
28
|
-
topK: 5,
|
|
29
|
-
});
|
|
30
|
-
assert.strictEqual(items.length, 1);
|
|
31
|
-
assert.strictEqual(items[0].content, "Prefer dark mode.");
|
|
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.",
|
|
32
20
|
});
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
namespace: "ns",
|
|
41
|
-
type: "knowledge",
|
|
42
|
-
content: "alpha",
|
|
43
|
-
});
|
|
44
|
-
await provider.write({
|
|
45
|
-
namespace: "ns",
|
|
46
|
-
type: "knowledge",
|
|
47
|
-
content: "beta",
|
|
48
|
-
});
|
|
49
|
-
const items = await provider.query({
|
|
50
|
-
namespace: "ns",
|
|
51
|
-
query: "alpha",
|
|
52
|
-
topK: 2,
|
|
53
|
-
});
|
|
54
|
-
assert.strictEqual(items.length, 2);
|
|
55
|
-
assert.strictEqual(items[0].content, "alpha");
|
|
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,
|
|
56
28
|
});
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
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",
|
|
71
98
|
});
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
type: "thread",
|
|
77
|
-
content: "to delete",
|
|
78
|
-
});
|
|
79
|
-
const before = await provider.query({
|
|
80
|
-
namespace: "user:1",
|
|
81
|
-
query: "any",
|
|
82
|
-
topK: 10,
|
|
83
|
-
});
|
|
84
|
-
assert.strictEqual(before.length, 1);
|
|
85
|
-
await provider.delete(item.id, "user:1");
|
|
86
|
-
const after = await provider.query({
|
|
87
|
-
namespace: "user:1",
|
|
88
|
-
query: "any",
|
|
89
|
-
topK: 10,
|
|
90
|
-
});
|
|
91
|
-
assert.strictEqual(after.length, 0);
|
|
99
|
+
await provider.write({
|
|
100
|
+
namespace: "ns",
|
|
101
|
+
type: "cross_thread",
|
|
102
|
+
content: "pref",
|
|
92
103
|
});
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
content: "doc",
|
|
99
|
-
});
|
|
100
|
-
await provider.write({
|
|
101
|
-
namespace: "ns",
|
|
102
|
-
type: "cross_thread",
|
|
103
|
-
content: "pref",
|
|
104
|
-
});
|
|
105
|
-
const items = await provider.query({
|
|
106
|
-
namespace: "ns",
|
|
107
|
-
query: "x",
|
|
108
|
-
topK: 5,
|
|
109
|
-
types: ["knowledge"],
|
|
110
|
-
});
|
|
111
|
-
assert.strictEqual(items.length, 1);
|
|
112
|
-
assert.strictEqual(items[0].type, "knowledge");
|
|
104
|
+
const items = await provider.query({
|
|
105
|
+
namespace: "ns",
|
|
106
|
+
query: "x",
|
|
107
|
+
topK: 5,
|
|
108
|
+
types: ["knowledge"],
|
|
113
109
|
});
|
|
110
|
+
assert.strictEqual(items.length, 1);
|
|
111
|
+
assert.strictEqual(items[0].type, "knowledge");
|
|
114
112
|
});
|
|
115
113
|
//# sourceMappingURL=sqlite-store.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite-store.test.js","sourceRoot":"","sources":["../../../../test/unit/providers/sqlite-store.test.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"sqlite-store.test.js","sourceRoot":"","sources":["../../../../test/unit/providers/sqlite-store.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,EAAE,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAE7E,MAAM,SAAS,GAAG,CAAC,GAAY,EAAE;IAC/B,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,mBAAmB,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;QAC9D,KAAK,KAAK,CAAC;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC,EAAE,CAAC;AAEH,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;IAC7C,MAAM,QAAQ,GAAG,IAAI,mBAAmB,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;IACjE,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC;QAChC,SAAS,EAAE,QAAQ;QACnB,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,mBAAmB;KAC7B,CAAC,CAAC;IACH,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnB,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IAC9C,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;IAEtD,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC;QACjC,SAAS,EAAE,QAAQ;QACnB,KAAK,EAAE,kBAAkB;QACzB,IAAI,EAAE,CAAC;KACR,CAAC,CAAC;IACH,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACpC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;AAC5D,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;IAC1C,MAAM,KAAK,GAAG,KAAK,EAAE,IAAY,EAAqB,EAAE,CACtD,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,IAAI,mBAAmB,CAAC;QACvC,MAAM,EAAE,UAAU;QAClB,KAAK;KACN,CAAC,CAAC;IACH,MAAM,QAAQ,CAAC,KAAK,CAAC;QACnB,SAAS,EAAE,IAAI;QACf,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IACH,MAAM,QAAQ,CAAC,KAAK,CAAC;QACnB,SAAS,EAAE,IAAI;QACf,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,MAAM;KAChB,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC;QACjC,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,CAAC;KACR,CAAC,CAAC;IACH,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACpC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AAChD,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;IACxC,MAAM,QAAQ,GAAG,IAAI,mBAAmB,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;IACjE,MAAM,QAAQ,CAAC,KAAK,CAAC;QACnB,SAAS,EAAE,WAAW;QACtB,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,cAAc;QACvB,QAAQ,EAAE,EAAE,GAAG,EAAE,mBAAmB,EAAE;KACvC,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,QAAS,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC;IACzE,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IACjB,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IAElD,MAAM,QAAQ,CAAC,WAAY,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC;IAC9D,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,QAAS,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC;IACzE,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAClC,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE;IAC5B,MAAM,QAAQ,GAAG,IAAI,mBAAmB,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;IACjE,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC;QAChC,SAAS,EAAE,QAAQ;QACnB,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,WAAW;KACrB,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC;QAClC,SAAS,EAAE,QAAQ;QACnB,KAAK,EAAE,KAAK;QACZ,IAAI,EAAE,EAAE;KACT,CAAC,CAAC;IACH,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACrC,MAAM,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC;QACjC,SAAS,EAAE,QAAQ;QACnB,KAAK,EAAE,KAAK;QACZ,IAAI,EAAE,EAAE;KACT,CAAC,CAAC;IACH,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AACtC,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE;IACvC,MAAM,QAAQ,GAAG,IAAI,mBAAmB,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;IACjE,MAAM,QAAQ,CAAC,KAAK,CAAC;QACnB,SAAS,EAAE,IAAI;QACf,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,KAAK;KACf,CAAC,CAAC;IACH,MAAM,QAAQ,CAAC,KAAK,CAAC;QACnB,SAAS,EAAE,IAAI;QACf,IAAI,EAAE,cAAc;QACpB,OAAO,EAAE,MAAM;KAChB,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC;QACjC,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,CAAC;QACP,KAAK,EAAE,CAAC,WAAW,CAAC;KACrB,CAAC,CAAC;IACH,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACpC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AACjD,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@easynet/agent-memory",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.59",
|
|
4
4
|
"description": "Unified memory layer for LangChain / LangGraph / DeepAgents",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/src/index.js",
|
|
@@ -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
|
},
|