@easynet/agent-memory 1.0.18 → 1.0.19

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.
Files changed (82) hide show
  1. package/README.md +5 -1
  2. package/dist/src/core/agent-memory.d.ts +23 -9
  3. package/dist/src/core/agent-memory.d.ts.map +1 -1
  4. package/dist/src/core/agent-memory.js +113 -14
  5. package/dist/src/core/agent-memory.js.map +1 -1
  6. package/dist/src/core/config.d.ts +48 -18
  7. package/dist/src/core/config.d.ts.map +1 -1
  8. package/dist/src/core/config.js +212 -36
  9. package/dist/src/core/config.js.map +1 -1
  10. package/dist/src/core/policy.d.ts +1 -1
  11. package/dist/src/core/policy.d.ts.map +1 -1
  12. package/dist/src/core/policy.js +2 -1
  13. package/dist/src/core/policy.js.map +1 -1
  14. package/dist/src/core/router.d.ts +6 -6
  15. package/dist/src/core/router.d.ts.map +1 -1
  16. package/dist/src/core/router.js +10 -3
  17. package/dist/src/core/router.js.map +1 -1
  18. package/dist/src/core/types.d.ts +22 -10
  19. package/dist/src/core/types.d.ts.map +1 -1
  20. package/dist/src/core/types.js +41 -0
  21. package/dist/src/core/types.js.map +1 -1
  22. package/dist/src/create-agent-memory.d.ts +28 -18
  23. package/dist/src/create-agent-memory.d.ts.map +1 -1
  24. package/dist/src/create-agent-memory.js +145 -28
  25. package/dist/src/create-agent-memory.js.map +1 -1
  26. package/dist/src/index.d.ts +2 -4
  27. package/dist/src/index.d.ts.map +1 -1
  28. package/dist/src/index.js +3 -6
  29. package/dist/src/index.js.map +1 -1
  30. package/dist/src/integrations/deepagents-adapter.d.ts +2 -3
  31. package/dist/src/integrations/deepagents-adapter.d.ts.map +1 -1
  32. package/dist/src/integrations/deepagents-adapter.js +6 -11
  33. package/dist/src/integrations/deepagents-adapter.js.map +1 -1
  34. package/dist/src/integrations/langgraph.d.ts +2 -2
  35. package/dist/src/integrations/langgraph.d.ts.map +1 -1
  36. package/dist/src/integrations/langgraph.js.map +1 -1
  37. package/dist/src/providers/in-memory-store.d.ts +3 -3
  38. package/dist/src/providers/in-memory-store.d.ts.map +1 -1
  39. package/dist/src/providers/in-memory-store.js +1 -1
  40. package/dist/src/providers/in-memory-store.js.map +1 -1
  41. package/dist/src/providers/mem0-provider.d.ts +6 -7
  42. package/dist/src/providers/mem0-provider.d.ts.map +1 -1
  43. package/dist/src/providers/mem0-provider.js +47 -50
  44. package/dist/src/providers/mem0-provider.js.map +1 -1
  45. package/dist/src/providers/rag-provider.d.ts +3 -3
  46. package/dist/src/providers/rag-provider.d.ts.map +1 -1
  47. package/dist/src/providers/rag-provider.js.map +1 -1
  48. package/dist/src/providers/sqlite-store.d.ts +3 -3
  49. package/dist/src/providers/sqlite-store.d.ts.map +1 -1
  50. package/dist/src/providers/sqlite-store.js +3 -2
  51. package/dist/src/providers/sqlite-store.js.map +1 -1
  52. package/dist/test/core/agent-memory.test.js +33 -6
  53. package/dist/test/core/agent-memory.test.js.map +1 -1
  54. package/dist/test/core/config.test.js +231 -16
  55. package/dist/test/core/config.test.js.map +1 -1
  56. package/dist/test/core/router.test.js +27 -0
  57. package/dist/test/core/router.test.js.map +1 -1
  58. package/dist/test/create-agent-memory.test.js +116 -37
  59. package/dist/test/create-agent-memory.test.js.map +1 -1
  60. package/dist/test/integration/agent-memory-flow.test.js +9 -21
  61. package/dist/test/integration/agent-memory-flow.test.js.map +1 -1
  62. package/dist/test/integration/real-memory-features.test.d.ts +11 -0
  63. package/dist/test/integration/real-memory-features.test.d.ts.map +1 -0
  64. package/dist/test/integration/real-memory-features.test.js +198 -0
  65. package/dist/test/integration/real-memory-features.test.js.map +1 -0
  66. package/dist/test/integration/url-ingest-flow.test.js +3 -5
  67. package/dist/test/integration/url-ingest-flow.test.js.map +1 -1
  68. package/dist/test/integration/vlm-llm-live.test.js +9 -20
  69. package/dist/test/integration/vlm-llm-live.test.js.map +1 -1
  70. package/dist/test/providers/in-memory-store.test.js +1 -1
  71. package/dist/test/providers/in-memory-store.test.js.map +1 -1
  72. package/dist/test/providers/mem0-provider.test.d.ts +2 -0
  73. package/dist/test/providers/mem0-provider.test.d.ts.map +1 -0
  74. package/dist/test/providers/mem0-provider.test.js +110 -0
  75. package/dist/test/providers/mem0-provider.test.js.map +1 -0
  76. package/dist/test/providers/sqlite-store.test.js +1 -1
  77. package/dist/test/providers/sqlite-store.test.js.map +1 -1
  78. package/package.json +3 -14
  79. package/dist/src/integrations/langchain.d.ts +0 -27
  80. package/dist/src/integrations/langchain.d.ts.map +0 -1
  81. package/dist/src/integrations/langchain.js +0 -28
  82. package/dist/src/integrations/langchain.js.map +0 -1
@@ -11,34 +11,35 @@ const promises_1 = require("node:fs/promises");
11
11
  (0, node_test_1.describe)("loadConfigFromYaml", () => {
12
12
  (0, node_test_1.it)("returns default config when file does not exist", async () => {
13
13
  const config = await (0, config_js_1.loadConfigFromYaml)((0, node_path_1.join)(process.cwd(), "nonexistent-agent-memory-12345.yaml"));
14
- node_assert_1.default.strictEqual(config.providers.length, 1);
15
- node_assert_1.default.strictEqual(config.providers[0].type, "in_memory");
16
- node_assert_1.default.strictEqual(config.defaultProvider, "default");
14
+ node_assert_1.default.strictEqual(config.stores.length, 1);
15
+ node_assert_1.default.strictEqual(config.stores[0].type, "in_memory");
16
+ node_assert_1.default.strictEqual(config.defaultStore, "default");
17
17
  node_assert_1.default.strictEqual(config.router.defaultProvider, "default");
18
18
  node_assert_1.default.strictEqual(config.router.rules?.length, 3);
19
+ node_assert_1.default.strictEqual(config.sessionCompaction.enabled, false);
19
20
  });
20
- (0, node_test_1.it)("loads yaml and derives router from memoryTypes", async () => {
21
+ (0, node_test_1.it)("loads yaml and derives router from memory", async () => {
21
22
  const dir = (0, node_path_1.join)(process.cwd(), "tmp-config-test");
22
23
  const file = (0, node_path_1.join)(dir, "memory.yaml");
23
24
  await (0, promises_1.mkdir)(dir, { recursive: true }).catch(() => { });
24
25
  await (0, promises_1.writeFile)(file, `
25
- providers:
26
+ stores:
26
27
  - id: default
27
28
  type: sqlite
28
29
  options:
29
30
  dbPath: ./data/test.db
30
31
  - id: rag
31
32
  type: in_memory
32
- defaultProvider: default
33
- memoryTypes:
33
+ defaultStore: default
34
+ memory:
34
35
  knowledge:
35
- providerId: rag
36
+ storeId: rag
36
37
  `, "utf-8");
37
38
  try {
38
39
  const config = await (0, config_js_1.loadConfigFromYaml)(file);
39
- node_assert_1.default.strictEqual(config.providers.length, 2);
40
- node_assert_1.default.strictEqual(config.providers[0].type, "sqlite");
41
- node_assert_1.default.strictEqual(config.providers[0].options?.dbPath, "./data/test.db");
40
+ node_assert_1.default.strictEqual(config.stores.length, 2);
41
+ node_assert_1.default.strictEqual(config.stores[0].type, "sqlite");
42
+ node_assert_1.default.strictEqual(config.stores[0].options?.dbPath, "./data/test.db");
42
43
  const knowledgeRule = config.router.rules?.find((r) => r.types?.includes("knowledge"));
43
44
  node_assert_1.default.strictEqual(knowledgeRule?.providerId, "rag");
44
45
  }
@@ -46,22 +47,22 @@ memoryTypes:
46
47
  await (0, promises_1.rm)(dir, { recursive: true, force: true }).catch(() => { });
47
48
  }
48
49
  });
49
- (0, node_test_1.it)("supports memoryTypes layered config and derives policy", async () => {
50
+ (0, node_test_1.it)("supports memory layered config and derives policy", async () => {
50
51
  const dir = (0, node_path_1.join)(process.cwd(), "tmp-config-layered-test");
51
52
  const file = (0, node_path_1.join)(dir, "memory.yaml");
52
53
  await (0, promises_1.mkdir)(dir, { recursive: true }).catch(() => { });
53
54
  await (0, promises_1.writeFile)(file, `
54
- providers:
55
+ stores:
55
56
  - id: default
56
57
  type: in_memory
57
58
  - id: docs
58
59
  type: in_memory
59
- defaultProvider: default
60
- memoryTypes:
60
+ defaultStore: default
61
+ memory:
61
62
  thread:
62
63
  allowWrite: false
63
64
  knowledge:
64
- providerId: docs
65
+ storeId: docs
65
66
  maxItems: 3
66
67
  budgetTokens: 240
67
68
  `, "utf-8");
@@ -80,5 +81,219 @@ memoryTypes:
80
81
  await (0, promises_1.rm)(dir, { recursive: true, force: true }).catch(() => { });
81
82
  }
82
83
  });
84
+ (0, node_test_1.it)("loads sessionCompaction from yaml", async () => {
85
+ const dir = (0, node_path_1.join)(process.cwd(), "tmp-config-compaction-test");
86
+ const file = (0, node_path_1.join)(dir, "memory.yaml");
87
+ await (0, promises_1.mkdir)(dir, { recursive: true }).catch(() => { });
88
+ await (0, promises_1.writeFile)(file, `
89
+ stores:
90
+ - id: default
91
+ type: in_memory
92
+ memory:
93
+ thread:
94
+ sessionCompaction:
95
+ enabled: true
96
+ maxTokens: 800
97
+ keepRecentTurns: 6
98
+ summaryKey: "__summary__"
99
+ checkEveryTurns: 2
100
+ `, "utf-8");
101
+ try {
102
+ const config = await (0, config_js_1.loadConfigFromYaml)(file);
103
+ node_assert_1.default.strictEqual(config.sessionCompaction.enabled, true);
104
+ node_assert_1.default.strictEqual(config.sessionCompaction.maxTokens, 800);
105
+ node_assert_1.default.strictEqual(config.sessionCompaction.keepRecentTurns, 6);
106
+ node_assert_1.default.strictEqual(config.sessionCompaction.summaryKey, "__summary__");
107
+ node_assert_1.default.strictEqual(config.sessionCompaction.checkEveryTurns, 2);
108
+ }
109
+ finally {
110
+ await (0, promises_1.rm)(dir, { recursive: true, force: true }).catch(() => { });
111
+ }
112
+ });
113
+ (0, node_test_1.it)("rejects assigning mem0 store to non-cross_thread memory type", async () => {
114
+ const dir = (0, node_path_1.join)(process.cwd(), "tmp-config-mem0-type-test");
115
+ const file = (0, node_path_1.join)(dir, "memory.yaml");
116
+ await (0, promises_1.mkdir)(dir, { recursive: true }).catch(() => { });
117
+ await (0, promises_1.writeFile)(file, `
118
+ stores:
119
+ - id: mem0
120
+ type: mem0
121
+ defaultStore: mem0
122
+ memory:
123
+ knowledge:
124
+ storeId: mem0
125
+ `, "utf-8");
126
+ try {
127
+ await node_assert_1.default.rejects(() => (0, config_js_1.loadConfigFromYaml)(file), /mem0.*cross_thread/);
128
+ }
129
+ finally {
130
+ await (0, promises_1.rm)(dir, { recursive: true, force: true }).catch(() => { });
131
+ }
132
+ });
133
+ (0, node_test_1.it)("supports stores grouped by memory type", async () => {
134
+ const dir = (0, node_path_1.join)(process.cwd(), "tmp-config-stores-by-type-test");
135
+ const file = (0, node_path_1.join)(dir, "memory.yaml");
136
+ await (0, promises_1.mkdir)(dir, { recursive: true }).catch(() => { });
137
+ await (0, promises_1.writeFile)(file, `
138
+ stores:
139
+ thread:
140
+ type: in_memory
141
+ cross_thread:
142
+ id: longterm
143
+ type: mem0
144
+ options:
145
+ vectorStore:
146
+ type: qdrant
147
+ config:
148
+ host: localhost
149
+ port: 6333
150
+ knowledge:
151
+ type: llamaindex
152
+ `, "utf-8");
153
+ try {
154
+ const config = await (0, config_js_1.loadConfigFromYaml)(file);
155
+ node_assert_1.default.strictEqual(config.memory.thread.storeId, "thread");
156
+ node_assert_1.default.strictEqual(config.memory.cross_thread.storeId, "longterm");
157
+ node_assert_1.default.strictEqual(config.memory.knowledge.storeId, "knowledge");
158
+ node_assert_1.default.strictEqual(config.stores.length, 3);
159
+ node_assert_1.default.strictEqual(config.stores.find((p) => p.id === "longterm")?.type, "mem0");
160
+ }
161
+ finally {
162
+ await (0, promises_1.rm)(dir, { recursive: true, force: true }).catch(() => { });
163
+ }
164
+ });
165
+ (0, node_test_1.it)("supports multiple stores under one memory type", async () => {
166
+ const dir = (0, node_path_1.join)(process.cwd(), "tmp-config-stores-multi-test");
167
+ const file = (0, node_path_1.join)(dir, "memory.yaml");
168
+ await (0, promises_1.mkdir)(dir, { recursive: true }).catch(() => { });
169
+ await (0, promises_1.writeFile)(file, `
170
+ stores:
171
+ cross_thread:
172
+ - id: longterm_mem0
173
+ type: mem0
174
+ - id: longterm_sqlite
175
+ type: sqlite
176
+ options:
177
+ dbPath: ":memory:"
178
+ `, "utf-8");
179
+ try {
180
+ const config = await (0, config_js_1.loadConfigFromYaml)(file);
181
+ node_assert_1.default.deepStrictEqual(config.memory.cross_thread.storeIds, ["longterm_mem0", "longterm_sqlite"]);
182
+ node_assert_1.default.strictEqual(config.memory.cross_thread.storeId, "longterm_mem0");
183
+ const crossRules = config.router.rules?.filter((r) => r.types?.includes("cross_thread")) ?? [];
184
+ node_assert_1.default.strictEqual(crossRules.length, 2);
185
+ }
186
+ finally {
187
+ await (0, promises_1.rm)(dir, { recursive: true, force: true }).catch(() => { });
188
+ }
189
+ });
190
+ (0, node_test_1.it)("supports merged memory config with inline store per type", async () => {
191
+ const dir = (0, node_path_1.join)(process.cwd(), "tmp-config-memory-inline-store-test");
192
+ const file = (0, node_path_1.join)(dir, "memory.yaml");
193
+ await (0, promises_1.mkdir)(dir, { recursive: true }).catch(() => { });
194
+ await (0, promises_1.writeFile)(file, `
195
+ memory:
196
+ thread:
197
+ store:
198
+ id: thread_sqlite
199
+ type: sqlite
200
+ options:
201
+ dbPath: ":memory:"
202
+ cross_thread:
203
+ store:
204
+ id: mem0
205
+ type: mem0
206
+ knowledge:
207
+ store:
208
+ id: llamaindex
209
+ type: llamaindex
210
+ `, "utf-8");
211
+ try {
212
+ const config = await (0, config_js_1.loadConfigFromYaml)(file);
213
+ node_assert_1.default.strictEqual(config.memory.thread.storeId, "thread_sqlite");
214
+ node_assert_1.default.strictEqual(config.memory.cross_thread.storeId, "mem0");
215
+ node_assert_1.default.strictEqual(config.memory.knowledge.storeId, "llamaindex");
216
+ node_assert_1.default.strictEqual(config.stores.length, 3);
217
+ node_assert_1.default.strictEqual(config.stores.find((s) => s.id === "llamaindex")?.type, "llamaindex");
218
+ }
219
+ finally {
220
+ await (0, promises_1.rm)(dir, { recursive: true, force: true }).catch(() => { });
221
+ }
222
+ });
223
+ (0, node_test_1.it)("uses memory type as default store id when inline store.id is omitted", async () => {
224
+ const dir = (0, node_path_1.join)(process.cwd(), "tmp-config-memory-inline-no-id-test");
225
+ const file = (0, node_path_1.join)(dir, "memory.yaml");
226
+ await (0, promises_1.mkdir)(dir, { recursive: true }).catch(() => { });
227
+ await (0, promises_1.writeFile)(file, `
228
+ memory:
229
+ thread:
230
+ store:
231
+ type: sqlite
232
+ options:
233
+ dbPath: ":memory:"
234
+ cross_thread:
235
+ store:
236
+ type: mem0
237
+ knowledge:
238
+ store:
239
+ type: llamaindex
240
+ `, "utf-8");
241
+ try {
242
+ const config = await (0, config_js_1.loadConfigFromYaml)(file);
243
+ node_assert_1.default.strictEqual(config.memory.thread.storeId, "thread");
244
+ node_assert_1.default.strictEqual(config.memory.cross_thread.storeId, "cross_thread");
245
+ node_assert_1.default.strictEqual(config.memory.knowledge.storeId, "knowledge");
246
+ node_assert_1.default.strictEqual(config.stores.find((s) => s.id === "thread")?.type, "sqlite");
247
+ node_assert_1.default.strictEqual(config.stores.find((s) => s.id === "cross_thread")?.type, "mem0");
248
+ node_assert_1.default.strictEqual(config.stores.find((s) => s.id === "knowledge")?.type, "llamaindex");
249
+ }
250
+ finally {
251
+ await (0, promises_1.rm)(dir, { recursive: true, force: true }).catch(() => { });
252
+ }
253
+ });
254
+ (0, node_test_1.it)("supports store.config as alias of store.options", async () => {
255
+ const dir = (0, node_path_1.join)(process.cwd(), "tmp-config-store-config-key-test");
256
+ const file = (0, node_path_1.join)(dir, "memory.yaml");
257
+ await (0, promises_1.mkdir)(dir, { recursive: true }).catch(() => { });
258
+ await (0, promises_1.writeFile)(file, `
259
+ memory:
260
+ thread:
261
+ store:
262
+ type: sqlite
263
+ config:
264
+ dbPath: ":memory:"
265
+ cross_thread:
266
+ store:
267
+ type: mem0
268
+ config:
269
+ vectorStore:
270
+ type: qdrant
271
+ config:
272
+ host: localhost
273
+ port: 6333
274
+ knowledge:
275
+ store:
276
+ type: llamaindex
277
+ config:
278
+ vectorStore:
279
+ type: sqlite_vec
280
+ config:
281
+ dbPath: ./data/knowledge.sqlite
282
+ dimensions: 1024
283
+ `, "utf-8");
284
+ try {
285
+ const config = await (0, config_js_1.loadConfigFromYaml)(file);
286
+ const cross = config.stores.find((s) => s.id === "cross_thread");
287
+ node_assert_1.default.ok(cross);
288
+ const vectorStore = (cross?.config ?? {}).vectorStore;
289
+ node_assert_1.default.strictEqual(vectorStore?.type, "qdrant");
290
+ node_assert_1.default.strictEqual(config.memory.thread.storeId, "thread");
291
+ node_assert_1.default.strictEqual(config.memory.cross_thread.storeId, "cross_thread");
292
+ node_assert_1.default.strictEqual(config.memory.knowledge.storeId, "knowledge");
293
+ }
294
+ finally {
295
+ await (0, promises_1.rm)(dir, { recursive: true, force: true }).catch(() => { });
296
+ }
297
+ });
83
298
  });
84
299
  //# sourceMappingURL=config.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.test.js","sourceRoot":"","sources":["../../../test/core/config.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.test.js","sourceRoot":"","sources":["../../../test/core/config.test.ts"],"names":[],"mappings":"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"}
@@ -114,5 +114,32 @@ function makeProvider(id) {
114
114
  node_assert_1.default.strictEqual(items.length, 1);
115
115
  node_assert_1.default.strictEqual(items[0].content, "hello");
116
116
  });
117
+ (0, node_test_1.it)("write fans out to multiple providers for one type", async () => {
118
+ const p1 = makeProvider("p1");
119
+ const p2 = makeProvider("p2");
120
+ const router = new router_js_1.MemoryRouter({
121
+ providers: new Map([
122
+ ["p1", p1],
123
+ ["p2", p2],
124
+ ]),
125
+ defaultProviderId: "p1",
126
+ rules: [
127
+ { types: ["cross_thread"], providerId: "p1" },
128
+ { types: ["cross_thread"], providerId: "p2" },
129
+ ],
130
+ });
131
+ await router.write({
132
+ namespace: "user:multi",
133
+ type: "cross_thread",
134
+ content: "fanout write",
135
+ });
136
+ const items = await router.query({
137
+ namespace: "user:multi",
138
+ query: "fanout",
139
+ types: ["cross_thread"],
140
+ topK: 10,
141
+ });
142
+ node_assert_1.default.strictEqual(items.length, 2);
143
+ });
117
144
  });
118
145
  //# sourceMappingURL=router.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"router.test.js","sourceRoot":"","sources":["../../../test/core/router.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"router.test.js","sourceRoot":"","sources":["../../../test/core/router.test.ts"],"names":[],"mappings":"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"}
@@ -9,19 +9,16 @@ const node_path_1 = require("node:path");
9
9
  const promises_1 = require("node:fs/promises");
10
10
  const node_os_1 = require("node:os");
11
11
  const node_crypto_1 = require("node:crypto");
12
+ const node_url_1 = require("node:url");
12
13
  const create_agent_memory_js_1 = require("../src/create-agent-memory.js");
13
14
  (0, node_test_1.describe)("createAgentMemory", () => {
14
15
  (0, node_test_1.it)("memorize with content and type delegates to core memory", async () => {
15
16
  const memory = await (0, create_agent_memory_js_1.createAgentMemory)({
16
17
  config: {
17
- providers: [{ id: "default", type: "in_memory" }],
18
+ stores: [{ id: "default", type: "in_memory" }],
18
19
  },
19
20
  });
20
- const item = await memory.memorize({
21
- namespace: "user:1",
22
- type: "cross_thread",
23
- content: "User likes cats.",
24
- });
21
+ const item = await memory.memorize("user:1", "cross_thread", "User likes cats.");
25
22
  node_assert_1.default.ok(item.id);
26
23
  node_assert_1.default.strictEqual(item.content, "User likes cats.");
27
24
  node_assert_1.default.strictEqual(item.type, "cross_thread");
@@ -32,6 +29,17 @@ const create_agent_memory_js_1 = require("../src/create-agent-memory.js");
32
29
  });
33
30
  node_assert_1.default.strictEqual(result.items.length, 1);
34
31
  });
32
+ (0, node_test_1.it)("memorize supports positional parameters", async () => {
33
+ const memory = await (0, create_agent_memory_js_1.createAgentMemory)({
34
+ config: {
35
+ stores: [{ id: "default", type: "in_memory" }],
36
+ },
37
+ });
38
+ const item = await memory.memorize("user:positional", "knowledge", "Positional call.");
39
+ node_assert_1.default.ok(item.id);
40
+ node_assert_1.default.strictEqual(item.type, "knowledge");
41
+ node_assert_1.default.strictEqual(item.content, "Positional call.");
42
+ });
35
43
  (0, node_test_1.it)("memorize with url ingests file and stores chunks", async () => {
36
44
  const dir = (0, node_path_1.join)((0, node_os_1.tmpdir)(), `ingest-wrapper-${(0, node_crypto_1.randomUUID)()}`);
37
45
  await (0, promises_1.mkdir)(dir, { recursive: true });
@@ -39,14 +47,11 @@ const create_agent_memory_js_1 = require("../src/create-agent-memory.js");
39
47
  await (0, promises_1.writeFile)(filePath, "Chunk one.\n\nChunk two.", "utf-8");
40
48
  const memory = await (0, create_agent_memory_js_1.createAgentMemory)({
41
49
  config: {
42
- providers: [{ id: "default", type: "in_memory" }],
50
+ stores: [{ id: "default", type: "in_memory" }],
43
51
  },
44
52
  });
45
53
  try {
46
- const item = await memory.memorize({
47
- namespace: "test",
48
- url: filePath,
49
- });
54
+ const item = await memory.memorize("test", "knowledge", (0, node_url_1.pathToFileURL)(filePath));
50
55
  node_assert_1.default.ok(item.id);
51
56
  node_assert_1.default.strictEqual(item.type, "knowledge");
52
57
  const result = await memory.recall({
@@ -63,49 +68,42 @@ const create_agent_memory_js_1 = require("../src/create-agent-memory.js");
63
68
  (0, node_test_1.it)("memorize without url and without content throws", async () => {
64
69
  const memory = await (0, create_agent_memory_js_1.createAgentMemory)({
65
70
  config: {
66
- providers: [{ id: "default", type: "in_memory" }],
71
+ stores: [{ id: "default", type: "in_memory" }],
67
72
  },
68
73
  });
69
- await node_assert_1.default.rejects(() => memory.memorize({ namespace: "test" }), /memorize requires url or content/);
74
+ await node_assert_1.default.rejects(() => memory
75
+ .memorize("test", "knowledge", new URL("http://127.0.0.1:9/not-found.txt")), /request failed|fetch failed|ECONNREFUSED|Failed to fetch/);
70
76
  });
71
- (0, node_test_1.it)("write (deprecated) delegates to extended memorize", async () => {
77
+ (0, node_test_1.it)("memorize delegates to extended memorize", async () => {
72
78
  const memory = await (0, create_agent_memory_js_1.createAgentMemory)({
73
79
  config: {
74
- providers: [{ id: "default", type: "in_memory" }],
80
+ stores: [{ id: "default", type: "in_memory" }],
75
81
  },
76
82
  });
77
- const item = await memory.write({
78
- namespace: "user:1",
79
- type: "cross_thread",
80
- content: "Written via write.",
81
- });
83
+ const item = await memory.memorize("user:1", "cross_thread", "Written via write.");
82
84
  node_assert_1.default.ok(item.id);
83
85
  node_assert_1.default.strictEqual(item.content, "Written via write.");
84
- const result = await memory.retrieveForPrompt({
86
+ const result = await memory.recall({
85
87
  namespace: "user:1",
86
88
  query: "any",
87
89
  topK: 5,
88
90
  });
89
91
  node_assert_1.default.strictEqual(result.items.length, 1);
90
92
  });
91
- (0, node_test_1.it)("recall and retrieveForPrompt delegate to underlying memory", async () => {
93
+ (0, node_test_1.it)("recall delegates to underlying memory", async () => {
92
94
  const memory = await (0, create_agent_memory_js_1.createAgentMemory)({
93
95
  config: {
94
- providers: [{ id: "default", type: "in_memory" }],
96
+ stores: [{ id: "default", type: "in_memory" }],
95
97
  },
96
98
  });
97
- await memory.memorize({
98
- namespace: "ns",
99
- type: "knowledge",
100
- content: "Delegation test.",
101
- });
99
+ await memory.memorize("ns", "knowledge", "Delegation test.");
102
100
  const recallResult = await memory.recall({
103
101
  namespace: "ns",
104
102
  query: "Delegation",
105
103
  topK: 5,
106
104
  });
107
105
  node_assert_1.default.strictEqual(recallResult.items.length, 1);
108
- const promptResult = await memory.retrieveForPrompt({
106
+ const promptResult = await memory.recall({
109
107
  namespace: "ns",
110
108
  query: "test",
111
109
  topK: 5,
@@ -147,7 +145,7 @@ export function createMemoryProvider() {
147
145
  try {
148
146
  const memory = await (0, create_agent_memory_js_1.createAgentMemory)({
149
147
  config: {
150
- providers: [
148
+ stores: [
151
149
  {
152
150
  id: "ext",
153
151
  type: "extension",
@@ -156,11 +154,7 @@ export function createMemoryProvider() {
156
154
  ],
157
155
  },
158
156
  });
159
- const item = await memory.memorize({
160
- namespace: "ext:ns",
161
- type: "knowledge",
162
- content: "Extension provider content",
163
- });
157
+ const item = await memory.memorize("ext:ns", "knowledge", "Extension provider content");
164
158
  node_assert_1.default.strictEqual(item.id, "ext-1");
165
159
  const result = await memory.recall({
166
160
  namespace: "ext:ns",
@@ -196,7 +190,7 @@ export function createMemoryProvider() {
196
190
  }
197
191
  const memory = await (0, create_agent_memory_js_1.createAgentMemory)({
198
192
  config: {
199
- providers: [{ id: "k", type: "llamaindex", options: {} }],
193
+ stores: [{ id: "k", type: "llamaindex", options: {} }],
200
194
  },
201
195
  overrides: {
202
196
  providerCtors: {
@@ -234,7 +228,7 @@ export function createMemoryProvider() {
234
228
  }
235
229
  const memory = await (0, create_agent_memory_js_1.createAgentMemory)({
236
230
  config: {
237
- providers: [{ id: "lt", type: "sqlite_vec", options: { dbPath: ":memory:", dimensions: 1024 } }],
231
+ stores: [{ id: "lt", type: "sqlite_vec", options: { dbPath: ":memory:", dimensions: 1024 } }],
238
232
  },
239
233
  overrides: {
240
234
  providerCtors: {
@@ -250,5 +244,90 @@ export function createMemoryProvider() {
250
244
  node_assert_1.default.strictEqual(result.items.length, 1);
251
245
  node_assert_1.default.strictEqual(result.items[0]?.type, "cross_thread");
252
246
  });
247
+ (0, node_test_1.it)("llamaindex provider gets VLM model from overrides into context", async () => {
248
+ class FakeKnowledgeProviderWithContext {
249
+ options;
250
+ constructor(options) {
251
+ this.options = options;
252
+ }
253
+ async remember(req) {
254
+ const context = this.options.context;
255
+ const agentModel = context?.agentModel;
256
+ const vlm = agentModel?.vlm;
257
+ return {
258
+ id: "k-vlm-1",
259
+ content: req.content ?? "",
260
+ metadata: {
261
+ ...(req.metadata ?? {}),
262
+ vlm_model_id: typeof vlm?.id === "string" ? vlm.id : undefined,
263
+ },
264
+ };
265
+ }
266
+ async recall() {
267
+ return [];
268
+ }
269
+ async forget() { }
270
+ }
271
+ const memory = await (0, create_agent_memory_js_1.createAgentMemory)({
272
+ config: {
273
+ stores: [{ id: "k", type: "llamaindex", options: {} }],
274
+ vlm: { useAgentModel: true },
275
+ },
276
+ overrides: {
277
+ agentModelVlm: { id: "vlm-demo", provider: "openai", model: "gpt-4o-mini" },
278
+ providerCtors: {
279
+ llamaindex: FakeKnowledgeProviderWithContext,
280
+ },
281
+ },
282
+ });
283
+ const item = await memory.memorize("user:vlm", "knowledge", "Image summary.");
284
+ node_assert_1.default.strictEqual(item.metadata?.vlm_model_id, "vlm-demo");
285
+ });
286
+ (0, node_test_1.it)("supports session compaction from config", async () => {
287
+ const memory = await (0, create_agent_memory_js_1.createAgentMemory)({
288
+ config: {
289
+ stores: [{ id: "default", type: "in_memory" }],
290
+ memory: {
291
+ thread: {
292
+ sessionCompaction: {
293
+ enabled: true,
294
+ maxTokens: 8,
295
+ keepRecentTurns: 1,
296
+ summaryKey: "__summary__",
297
+ checkEveryTurns: 1,
298
+ },
299
+ },
300
+ },
301
+ },
302
+ summarizeSessionTurns: async ({ oldTurns }) => `summary(${oldTurns.length})`,
303
+ });
304
+ await memory.memorize("session:demo", "thread", "A".repeat(40));
305
+ await memory.memorize("session:demo", "thread", "B".repeat(40));
306
+ const summary = await memory.getByKey("session:demo", "__summary__");
307
+ node_assert_1.default.ok(summary);
308
+ node_assert_1.default.strictEqual(summary?.type, "thread");
309
+ node_assert_1.default.strictEqual(summary?.content, "summary(1)");
310
+ });
311
+ (0, node_test_1.it)("rejects provider key in typed store config blocks", async () => {
312
+ await node_assert_1.default.rejects(() => (0, create_agent_memory_js_1.createAgentMemory)({
313
+ config: {
314
+ memory: {
315
+ thread: { store: { type: "in_memory" } },
316
+ cross_thread: {
317
+ store: {
318
+ type: "mem0",
319
+ config: {
320
+ vectorStore: {
321
+ provider: "qdrant",
322
+ config: { host: "localhost", port: 6333 },
323
+ },
324
+ },
325
+ },
326
+ },
327
+ knowledge: { store: { type: "in_memory" } },
328
+ },
329
+ },
330
+ }), /provider.*type/i);
331
+ });
253
332
  });
254
333
  //# sourceMappingURL=create-agent-memory.test.js.map