@easynet/agent-memory 1.0.0 → 1.0.2
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/README.md +97 -87
- package/dist/src/create-agent-memory.d.ts +28 -13
- package/dist/src/create-agent-memory.d.ts.map +1 -1
- package/dist/src/create-agent-memory.js.map +1 -1
- package/dist/src/index.d.ts +4 -18
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +3 -41
- package/dist/src/index.js.map +1 -1
- package/dist/src/ingest/common-ingest.d.ts +14 -0
- package/dist/src/ingest/common-ingest.d.ts.map +1 -0
- package/dist/src/ingest/common-ingest.js +30 -0
- package/dist/src/ingest/common-ingest.js.map +1 -0
- package/dist/src/ingest/pdf-ingest.d.ts +0 -13
- package/dist/src/ingest/pdf-ingest.d.ts.map +1 -1
- package/dist/src/ingest/pdf-ingest.js +13 -81
- package/dist/src/ingest/pdf-ingest.js.map +1 -1
- package/dist/src/ingest/url-ingest.d.ts +0 -12
- package/dist/src/ingest/url-ingest.d.ts.map +1 -1
- package/dist/src/ingest/url-ingest.js +15 -294
- package/dist/src/ingest/url-ingest.js.map +1 -1
- package/dist/src/providers/in-memory-store.d.ts +4 -3
- package/dist/src/providers/in-memory-store.d.ts.map +1 -1
- package/dist/src/providers/in-memory-store.js +36 -21
- package/dist/src/providers/in-memory-store.js.map +1 -1
- package/dist/src/providers/mem0-provider.d.ts +6 -5
- package/dist/src/providers/mem0-provider.d.ts.map +1 -1
- package/dist/src/providers/mem0-provider.js +61 -51
- package/dist/src/providers/mem0-provider.js.map +1 -1
- package/package.json +8 -7
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
* Use with an initialized Memory instance from mem0ai/oss.
|
|
3
|
+
* Adapter: reuse agent-common mem0 long-term provider via public memory factory.
|
|
5
4
|
*/
|
|
6
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
6
|
exports.Mem0Provider = void 0;
|
|
8
7
|
const defaultNamespaceToUserId = (namespace) => namespace;
|
|
8
|
+
const AGENT_COMMON_MEMORY_ERROR = "Mem0Provider requires @easynet/agent-common with memory exports. Please upgrade @easynet/agent-common.";
|
|
9
9
|
class Mem0Provider {
|
|
10
10
|
mem0;
|
|
11
|
+
universal;
|
|
11
12
|
namespaceToUserId;
|
|
12
13
|
constructor(options) {
|
|
13
14
|
if (!options.memory) {
|
|
@@ -15,78 +16,87 @@ class Mem0Provider {
|
|
|
15
16
|
}
|
|
16
17
|
this.mem0 = options.memory;
|
|
17
18
|
this.namespaceToUserId = options.namespaceToUserId ?? defaultNamespaceToUserId;
|
|
19
|
+
this.universal = (async () => {
|
|
20
|
+
const common = (await import("@easynet/agent-common"));
|
|
21
|
+
if (typeof common.createUniversalMemoryFromConfig !== "function") {
|
|
22
|
+
throw new Error(AGENT_COMMON_MEMORY_ERROR);
|
|
23
|
+
}
|
|
24
|
+
return common.createUniversalMemoryFromConfig({
|
|
25
|
+
config: { longTerm: { type: "mem0" } },
|
|
26
|
+
overrides: {
|
|
27
|
+
mem0Memory: {
|
|
28
|
+
add: (messages, opts) => this.mem0.add(messages, {
|
|
29
|
+
...opts,
|
|
30
|
+
userId: opts?.userId ? this.namespaceToUserId(opts.userId) : opts?.userId,
|
|
31
|
+
}),
|
|
32
|
+
search: (query, opts) => this.mem0.search(query, {
|
|
33
|
+
...opts,
|
|
34
|
+
userId: opts?.userId ? this.namespaceToUserId(opts.userId) : opts?.userId,
|
|
35
|
+
}),
|
|
36
|
+
delete: (memoryId) => this.mem0.delete(memoryId),
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
});
|
|
40
|
+
})();
|
|
41
|
+
}
|
|
42
|
+
toMemoryItem(namespace, record, now) {
|
|
43
|
+
const type = record.metadata?.type ?? "cross_thread";
|
|
44
|
+
return {
|
|
45
|
+
id: record.id,
|
|
46
|
+
type,
|
|
47
|
+
namespace,
|
|
48
|
+
scope: (record.metadata?.scope ?? "global"),
|
|
49
|
+
content: record.content,
|
|
50
|
+
metadata: {
|
|
51
|
+
...(record.metadata ?? {}),
|
|
52
|
+
created_at: now,
|
|
53
|
+
updated_at: now,
|
|
54
|
+
},
|
|
55
|
+
};
|
|
18
56
|
}
|
|
19
57
|
async write(req) {
|
|
20
|
-
const
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
|
|
58
|
+
const universal = await this.universal;
|
|
59
|
+
const record = await universal.memorize({
|
|
60
|
+
kind: "long_term",
|
|
61
|
+
namespace: req.namespace,
|
|
62
|
+
content: req.content,
|
|
24
63
|
metadata: {
|
|
25
64
|
...req.metadata,
|
|
26
65
|
type: req.type,
|
|
27
66
|
scope: req.scope,
|
|
28
67
|
},
|
|
29
68
|
});
|
|
30
|
-
const search = await this.mem0.search(req.content, {
|
|
31
|
-
userId,
|
|
32
|
-
limit: 1,
|
|
33
|
-
});
|
|
34
|
-
const first = search.results?.[0];
|
|
35
69
|
const now = new Date().toISOString();
|
|
36
|
-
if (first) {
|
|
37
|
-
return {
|
|
38
|
-
id: first.id,
|
|
39
|
-
type: req.type,
|
|
40
|
-
namespace: req.namespace,
|
|
41
|
-
scope: req.scope ?? "global",
|
|
42
|
-
content: first.memory,
|
|
43
|
-
metadata: {
|
|
44
|
-
...req.metadata,
|
|
45
|
-
...first.metadata,
|
|
46
|
-
created_at: now,
|
|
47
|
-
updated_at: now,
|
|
48
|
-
},
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
const id = `mem0-${Date.now()}-${Math.random().toString(36).slice(2, 9)}`;
|
|
52
70
|
return {
|
|
53
|
-
id,
|
|
71
|
+
id: record.id,
|
|
54
72
|
type: req.type,
|
|
55
73
|
namespace: req.namespace,
|
|
56
74
|
scope: req.scope ?? "global",
|
|
57
|
-
content:
|
|
75
|
+
content: record.content,
|
|
58
76
|
metadata: {
|
|
59
|
-
...
|
|
77
|
+
...(record.metadata ?? {}),
|
|
60
78
|
created_at: now,
|
|
61
79
|
updated_at: now,
|
|
62
80
|
},
|
|
63
81
|
};
|
|
64
82
|
}
|
|
65
83
|
async query(req) {
|
|
66
|
-
const
|
|
67
|
-
const
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
84
|
+
const universal = await this.universal;
|
|
85
|
+
const records = await universal.recall({
|
|
86
|
+
kind: "long_term",
|
|
87
|
+
namespace: req.namespace,
|
|
88
|
+
query: req.query,
|
|
89
|
+
topK: req.topK ?? 10,
|
|
90
|
+
filters: req.filters,
|
|
72
91
|
});
|
|
73
|
-
const results = search.results ?? [];
|
|
74
92
|
const now = new Date().toISOString();
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
namespace: req.namespace,
|
|
79
|
-
scope: "global",
|
|
80
|
-
content: r.memory,
|
|
81
|
-
metadata: {
|
|
82
|
-
...r.metadata,
|
|
83
|
-
created_at: now,
|
|
84
|
-
updated_at: now,
|
|
85
|
-
},
|
|
86
|
-
}));
|
|
93
|
+
const mapped = records.map((record) => this.toMemoryItem(req.namespace, record, now));
|
|
94
|
+
const types = req.types;
|
|
95
|
+
return types ? mapped.filter((item) => types.includes(item.type)) : mapped;
|
|
87
96
|
}
|
|
88
|
-
async delete(id,
|
|
89
|
-
await this.
|
|
97
|
+
async delete(id, namespace) {
|
|
98
|
+
const universal = await this.universal;
|
|
99
|
+
await universal.forget({ kind: "long_term", namespace, id });
|
|
90
100
|
}
|
|
91
101
|
async deleteAllForNamespace(namespace) {
|
|
92
102
|
const userId = this.namespaceToUserId(namespace);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mem0-provider.js","sourceRoot":"","sources":["../../../src/providers/mem0-provider.ts"],"names":[],"mappings":";AAAA;;;
|
|
1
|
+
{"version":3,"file":"mem0-provider.js","sourceRoot":"","sources":["../../../src/providers/mem0-provider.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@easynet/agent-memory",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"description": "Unified memory layer for LangChain / LangGraph / DeepAgents",
|
|
5
5
|
"main": "dist/src/index.js",
|
|
6
6
|
"types": "dist/src/index.d.ts",
|
|
7
7
|
"scripts": {
|
|
8
8
|
"build": "tsc",
|
|
9
|
-
"pretest": "
|
|
9
|
+
"pretest": "pnpm run build",
|
|
10
10
|
"test": "node --test dist/test/",
|
|
11
11
|
"test:unit": "node --test dist/test/core dist/test/providers dist/test/ingest dist/test/create-agent-memory.test.js",
|
|
12
|
+
"test:unit:ci": "node --test dist/test/core dist/test/ingest dist/test/create-agent-memory.test.js dist/test/providers/in-memory-store.test.js dist/test/providers/rag-provider.test.js",
|
|
12
13
|
"test:integration": "node --test dist/test/integration",
|
|
13
14
|
"test:integration:live": "RUN_LIVE_INTEGRATION=1 node --test dist/test/integration",
|
|
14
15
|
"test:full": "RUN_LIVE_INTEGRATION=1 node --test dist/test/",
|
|
@@ -56,16 +57,16 @@
|
|
|
56
57
|
}
|
|
57
58
|
},
|
|
58
59
|
"devDependencies": {
|
|
59
|
-
"@types/node": "^22.0.0",
|
|
60
|
-
"better-sqlite3": "^11.0.0",
|
|
61
|
-
"cheerio": "^1.0.0",
|
|
62
|
-
"typescript": "~5.6.0",
|
|
63
60
|
"@semantic-release/commit-analyzer": "^13.0.0",
|
|
64
61
|
"@semantic-release/git": "^10.0.1",
|
|
65
62
|
"@semantic-release/github": "^11.0.0",
|
|
66
63
|
"@semantic-release/npm": "^12.0.0",
|
|
67
64
|
"@semantic-release/release-notes-generator": "^14.0.0",
|
|
68
|
-
"
|
|
65
|
+
"@types/node": "^22.0.0",
|
|
66
|
+
"better-sqlite3": "^11.0.0",
|
|
67
|
+
"cheerio": "^1.0.0",
|
|
68
|
+
"semantic-release": "^24.2.0",
|
|
69
|
+
"typescript": "~5.6.0"
|
|
69
70
|
},
|
|
70
71
|
"files": [
|
|
71
72
|
"dist"
|