@easynet/agent-memory 0.0.2 → 1.0.0

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 (298) hide show
  1. package/README.md +89 -224
  2. package/dist/src/core/agent-memory.d.ts +41 -0
  3. package/dist/src/core/agent-memory.d.ts.map +1 -0
  4. package/dist/src/core/agent-memory.js +127 -0
  5. package/dist/src/core/agent-memory.js.map +1 -0
  6. package/dist/src/core/config.d.ts +78 -0
  7. package/dist/src/core/config.d.ts.map +1 -0
  8. package/dist/src/core/config.js +41 -0
  9. package/dist/src/core/config.js.map +1 -0
  10. package/dist/src/core/observability.d.ts +22 -0
  11. package/dist/src/core/observability.d.ts.map +1 -0
  12. package/dist/src/core/observability.js +33 -0
  13. package/dist/src/core/observability.js.map +1 -0
  14. package/dist/src/core/policy.d.ts +47 -0
  15. package/dist/src/core/policy.d.ts.map +1 -0
  16. package/dist/src/core/policy.js +73 -0
  17. package/dist/src/core/policy.js.map +1 -0
  18. package/dist/src/core/privacy.d.ts +23 -0
  19. package/dist/src/core/privacy.d.ts.map +1 -0
  20. package/dist/src/core/privacy.js +45 -0
  21. package/dist/src/core/privacy.js.map +1 -0
  22. package/dist/src/core/router.d.ts +35 -0
  23. package/dist/src/core/router.d.ts.map +1 -0
  24. package/dist/src/core/router.js +86 -0
  25. package/dist/src/core/router.js.map +1 -0
  26. package/dist/src/core/types.d.ts +82 -0
  27. package/dist/src/core/types.d.ts.map +1 -0
  28. package/dist/src/core/types.js +7 -0
  29. package/dist/{adapters → src/core}/types.js.map +1 -1
  30. package/dist/src/create-agent-memory.d.ts +47 -0
  31. package/dist/src/create-agent-memory.d.ts.map +1 -0
  32. package/dist/src/create-agent-memory.js +148 -0
  33. package/dist/src/create-agent-memory.js.map +1 -0
  34. package/dist/src/index.d.ts +22 -0
  35. package/dist/src/index.d.ts.map +1 -0
  36. package/dist/src/index.js +51 -0
  37. package/dist/src/index.js.map +1 -0
  38. package/dist/src/ingest/pdf-ingest.d.ts +27 -0
  39. package/dist/src/ingest/pdf-ingest.d.ts.map +1 -0
  40. package/dist/src/ingest/pdf-ingest.js +89 -0
  41. package/dist/src/ingest/pdf-ingest.js.map +1 -0
  42. package/dist/src/ingest/url-ingest.d.ts +27 -0
  43. package/dist/src/ingest/url-ingest.d.ts.map +1 -0
  44. package/dist/src/ingest/url-ingest.js +301 -0
  45. package/dist/src/ingest/url-ingest.js.map +1 -0
  46. package/dist/src/integrations/deepagents-adapter.d.ts +42 -0
  47. package/dist/src/integrations/deepagents-adapter.d.ts.map +1 -0
  48. package/dist/src/integrations/deepagents-adapter.js +146 -0
  49. package/dist/src/integrations/deepagents-adapter.js.map +1 -0
  50. package/dist/src/integrations/langchain.d.ts +27 -0
  51. package/dist/src/integrations/langchain.d.ts.map +1 -0
  52. package/dist/src/integrations/langchain.js +28 -0
  53. package/dist/src/integrations/langchain.js.map +1 -0
  54. package/dist/src/integrations/langgraph.d.ts +23 -0
  55. package/dist/src/integrations/langgraph.d.ts.map +1 -0
  56. package/dist/src/integrations/langgraph.js +30 -0
  57. package/dist/src/integrations/langgraph.js.map +1 -0
  58. package/dist/src/providers/in-memory-store.d.ts +15 -0
  59. package/dist/src/providers/in-memory-store.d.ts.map +1 -0
  60. package/dist/src/providers/in-memory-store.js +62 -0
  61. package/dist/src/providers/in-memory-store.js.map +1 -0
  62. package/dist/src/providers/mem0-provider.d.ts +47 -0
  63. package/dist/src/providers/mem0-provider.d.ts.map +1 -0
  64. package/dist/src/providers/mem0-provider.js +99 -0
  65. package/dist/src/providers/mem0-provider.js.map +1 -0
  66. package/dist/src/providers/rag-provider.d.ts +27 -0
  67. package/dist/src/providers/rag-provider.d.ts.map +1 -0
  68. package/dist/src/providers/rag-provider.js +58 -0
  69. package/dist/src/providers/rag-provider.js.map +1 -0
  70. package/dist/src/providers/sqlite-store.d.ts +21 -0
  71. package/dist/src/providers/sqlite-store.d.ts.map +1 -0
  72. package/dist/src/providers/sqlite-store.js +142 -0
  73. package/dist/src/providers/sqlite-store.js.map +1 -0
  74. package/dist/test/core/agent-memory.test.d.ts +2 -0
  75. package/dist/test/core/agent-memory.test.d.ts.map +1 -0
  76. package/dist/test/core/agent-memory.test.js +119 -0
  77. package/dist/test/core/agent-memory.test.js.map +1 -0
  78. package/dist/test/core/config.test.d.ts +2 -0
  79. package/dist/test/core/config.test.d.ts.map +1 -0
  80. package/dist/test/core/config.test.js +48 -0
  81. package/dist/test/core/config.test.js.map +1 -0
  82. package/dist/test/core/observability.test.d.ts +2 -0
  83. package/dist/test/core/observability.test.d.ts.map +1 -0
  84. package/dist/test/core/observability.test.js +53 -0
  85. package/dist/test/core/observability.test.js.map +1 -0
  86. package/dist/test/core/policy.test.d.ts +2 -0
  87. package/dist/test/core/policy.test.d.ts.map +1 -0
  88. package/dist/test/core/policy.test.js +42 -0
  89. package/dist/test/core/policy.test.js.map +1 -0
  90. package/dist/test/core/privacy.test.d.ts +2 -0
  91. package/dist/test/core/privacy.test.d.ts.map +1 -0
  92. package/dist/test/core/privacy.test.js +44 -0
  93. package/dist/test/core/privacy.test.js.map +1 -0
  94. package/dist/test/core/router.test.d.ts +2 -0
  95. package/dist/test/core/router.test.d.ts.map +1 -0
  96. package/dist/test/core/router.test.js +118 -0
  97. package/dist/test/core/router.test.js.map +1 -0
  98. package/dist/test/create-agent-memory.test.d.ts +2 -0
  99. package/dist/test/create-agent-memory.test.d.ts.map +1 -0
  100. package/dist/test/create-agent-memory.test.js +122 -0
  101. package/dist/test/create-agent-memory.test.js.map +1 -0
  102. package/dist/test/ingest/url-ingest.test.d.ts +2 -0
  103. package/dist/test/ingest/url-ingest.test.d.ts.map +1 -0
  104. package/dist/test/ingest/url-ingest.test.js +142 -0
  105. package/dist/test/ingest/url-ingest.test.js.map +1 -0
  106. package/dist/test/integration/agent-memory-flow.test.d.ts +5 -0
  107. package/dist/test/integration/agent-memory-flow.test.d.ts.map +1 -0
  108. package/dist/test/integration/agent-memory-flow.test.js +80 -0
  109. package/dist/test/integration/agent-memory-flow.test.js.map +1 -0
  110. package/dist/test/integration/helpers/ollama-live.d.ts +16 -0
  111. package/dist/test/integration/helpers/ollama-live.d.ts.map +1 -0
  112. package/dist/test/integration/helpers/ollama-live.js +101 -0
  113. package/dist/test/integration/helpers/ollama-live.js.map +1 -0
  114. package/dist/test/integration/url-ingest-flow.test.d.ts +5 -0
  115. package/dist/test/integration/url-ingest-flow.test.d.ts.map +1 -0
  116. package/dist/test/integration/url-ingest-flow.test.js +50 -0
  117. package/dist/test/integration/url-ingest-flow.test.js.map +1 -0
  118. package/dist/test/integration/vlm-llm-live.test.d.ts +9 -0
  119. package/dist/test/integration/vlm-llm-live.test.d.ts.map +1 -0
  120. package/dist/test/integration/vlm-llm-live.test.js +141 -0
  121. package/dist/test/integration/vlm-llm-live.test.js.map +1 -0
  122. package/dist/test/providers/in-memory-store.test.d.ts +2 -0
  123. package/dist/test/providers/in-memory-store.test.d.ts.map +1 -0
  124. package/dist/test/providers/in-memory-store.test.js +44 -0
  125. package/dist/test/providers/in-memory-store.test.js.map +1 -0
  126. package/dist/test/providers/rag-provider.test.d.ts +2 -0
  127. package/dist/test/providers/rag-provider.test.d.ts.map +1 -0
  128. package/dist/test/providers/rag-provider.test.js +113 -0
  129. package/dist/test/providers/rag-provider.test.js.map +1 -0
  130. package/dist/test/providers/sqlite-store.test.d.ts +2 -0
  131. package/dist/test/providers/sqlite-store.test.d.ts.map +1 -0
  132. package/dist/test/providers/sqlite-store.test.js +119 -0
  133. package/dist/test/providers/sqlite-store.test.js.map +1 -0
  134. package/package.json +79 -39
  135. package/bin/chat +0 -11
  136. package/dist/adapters/index.d.ts +0 -8
  137. package/dist/adapters/index.d.ts.map +0 -1
  138. package/dist/adapters/index.js +0 -29
  139. package/dist/adapters/index.js.map +0 -1
  140. package/dist/adapters/mem0/mem0-store.d.ts +0 -29
  141. package/dist/adapters/mem0/mem0-store.d.ts.map +0 -1
  142. package/dist/adapters/mem0/mem0-store.js +0 -174
  143. package/dist/adapters/mem0/mem0-store.js.map +0 -1
  144. package/dist/adapters/rag-http/rag-http-retriever.d.ts +0 -18
  145. package/dist/adapters/rag-http/rag-http-retriever.d.ts.map +0 -1
  146. package/dist/adapters/rag-http/rag-http-retriever.js +0 -71
  147. package/dist/adapters/rag-http/rag-http-retriever.js.map +0 -1
  148. package/dist/adapters/types.d.ts +0 -25
  149. package/dist/adapters/types.d.ts.map +0 -1
  150. package/dist/adapters/types.js +0 -6
  151. package/dist/boot/boot-rebuilder.d.ts +0 -26
  152. package/dist/boot/boot-rebuilder.d.ts.map +0 -1
  153. package/dist/boot/boot-rebuilder.js +0 -112
  154. package/dist/boot/boot-rebuilder.js.map +0 -1
  155. package/dist/boot/index.d.ts +0 -3
  156. package/dist/boot/index.d.ts.map +0 -1
  157. package/dist/boot/index.js +0 -6
  158. package/dist/boot/index.js.map +0 -1
  159. package/dist/cli/chat-split.d.ts +0 -22
  160. package/dist/cli/chat-split.d.ts.map +0 -1
  161. package/dist/cli/chat-split.js +0 -187
  162. package/dist/cli/chat-split.js.map +0 -1
  163. package/dist/cli/chat.d.ts +0 -19
  164. package/dist/cli/chat.d.ts.map +0 -1
  165. package/dist/cli/chat.js +0 -266
  166. package/dist/cli/chat.js.map +0 -1
  167. package/dist/cli/commands/command-handler.d.ts +0 -32
  168. package/dist/cli/commands/command-handler.d.ts.map +0 -1
  169. package/dist/cli/commands/command-handler.js +0 -143
  170. package/dist/cli/commands/command-handler.js.map +0 -1
  171. package/dist/cli/index.d.ts +0 -3
  172. package/dist/cli/index.d.ts.map +0 -1
  173. package/dist/cli/index.js +0 -8
  174. package/dist/cli/index.js.map +0 -1
  175. package/dist/cli/ui/display-manager.d.ts +0 -18
  176. package/dist/cli/ui/display-manager.d.ts.map +0 -1
  177. package/dist/cli/ui/display-manager.js +0 -69
  178. package/dist/cli/ui/display-manager.js.map +0 -1
  179. package/dist/cli/ui/screen-layout.d.ts +0 -12
  180. package/dist/cli/ui/screen-layout.d.ts.map +0 -1
  181. package/dist/cli/ui/screen-layout.js +0 -125
  182. package/dist/cli/ui/screen-layout.js.map +0 -1
  183. package/dist/config/index.d.ts +0 -2
  184. package/dist/config/index.d.ts.map +0 -1
  185. package/dist/config/index.js +0 -6
  186. package/dist/config/index.js.map +0 -1
  187. package/dist/config/loader.d.ts +0 -9
  188. package/dist/config/loader.d.ts.map +0 -1
  189. package/dist/config/loader.js +0 -107
  190. package/dist/config/loader.js.map +0 -1
  191. package/dist/context/context-builder.d.ts +0 -18
  192. package/dist/context/context-builder.d.ts.map +0 -1
  193. package/dist/context/context-builder.js +0 -91
  194. package/dist/context/context-builder.js.map +0 -1
  195. package/dist/core/agent-memory.d.ts +0 -50
  196. package/dist/core/agent-memory.d.ts.map +0 -1
  197. package/dist/core/agent-memory.js +0 -297
  198. package/dist/core/agent-memory.js.map +0 -1
  199. package/dist/embedding/embedder.d.ts +0 -49
  200. package/dist/embedding/embedder.d.ts.map +0 -1
  201. package/dist/embedding/embedder.js +0 -146
  202. package/dist/embedding/embedder.js.map +0 -1
  203. package/dist/embedding/index.d.ts +0 -3
  204. package/dist/embedding/index.d.ts.map +0 -1
  205. package/dist/embedding/index.js +0 -8
  206. package/dist/embedding/index.js.map +0 -1
  207. package/dist/gate/deduplicator.d.ts +0 -22
  208. package/dist/gate/deduplicator.d.ts.map +0 -1
  209. package/dist/gate/deduplicator.js +0 -74
  210. package/dist/gate/deduplicator.js.map +0 -1
  211. package/dist/gate/extractor.d.ts +0 -33
  212. package/dist/gate/extractor.d.ts.map +0 -1
  213. package/dist/gate/extractor.js +0 -122
  214. package/dist/gate/extractor.js.map +0 -1
  215. package/dist/gate/index.d.ts +0 -3
  216. package/dist/gate/index.d.ts.map +0 -1
  217. package/dist/gate/index.js +0 -6
  218. package/dist/gate/index.js.map +0 -1
  219. package/dist/gate/memory-gate.d.ts +0 -27
  220. package/dist/gate/memory-gate.d.ts.map +0 -1
  221. package/dist/gate/memory-gate.js +0 -86
  222. package/dist/gate/memory-gate.js.map +0 -1
  223. package/dist/gate/redactor.d.ts +0 -14
  224. package/dist/gate/redactor.d.ts.map +0 -1
  225. package/dist/gate/redactor.js +0 -24
  226. package/dist/gate/redactor.js.map +0 -1
  227. package/dist/index.d.ts +0 -6
  228. package/dist/index.d.ts.map +0 -1
  229. package/dist/index.js +0 -24
  230. package/dist/index.js.map +0 -1
  231. package/dist/indexing/in-memory-index.d.ts +0 -67
  232. package/dist/indexing/in-memory-index.d.ts.map +0 -1
  233. package/dist/indexing/in-memory-index.js +0 -135
  234. package/dist/indexing/in-memory-index.js.map +0 -1
  235. package/dist/indexing/index.d.ts +0 -3
  236. package/dist/indexing/index.d.ts.map +0 -1
  237. package/dist/indexing/index.js +0 -6
  238. package/dist/indexing/index.js.map +0 -1
  239. package/dist/persistence/database/schema.d.ts +0 -6
  240. package/dist/persistence/database/schema.d.ts.map +0 -1
  241. package/dist/persistence/database/schema.js +0 -75
  242. package/dist/persistence/database/schema.js.map +0 -1
  243. package/dist/persistence/index.d.ts +0 -3
  244. package/dist/persistence/index.d.ts.map +0 -1
  245. package/dist/persistence/index.js +0 -6
  246. package/dist/persistence/index.js.map +0 -1
  247. package/dist/persistence/repository/embedding-operations.d.ts +0 -17
  248. package/dist/persistence/repository/embedding-operations.d.ts.map +0 -1
  249. package/dist/persistence/repository/embedding-operations.js +0 -58
  250. package/dist/persistence/repository/embedding-operations.js.map +0 -1
  251. package/dist/persistence/repository/memory-operations.d.ts +0 -28
  252. package/dist/persistence/repository/memory-operations.d.ts.map +0 -1
  253. package/dist/persistence/repository/memory-operations.js +0 -87
  254. package/dist/persistence/repository/memory-operations.js.map +0 -1
  255. package/dist/persistence/repository/meta-operations.d.ts +0 -15
  256. package/dist/persistence/repository/meta-operations.d.ts.map +0 -1
  257. package/dist/persistence/repository/meta-operations.js +0 -20
  258. package/dist/persistence/repository/meta-operations.js.map +0 -1
  259. package/dist/persistence/sqlite-repo.d.ts +0 -58
  260. package/dist/persistence/sqlite-repo.d.ts.map +0 -1
  261. package/dist/persistence/sqlite-repo.js +0 -81
  262. package/dist/persistence/sqlite-repo.js.map +0 -1
  263. package/dist/persistence/utils/hash.d.ts +0 -8
  264. package/dist/persistence/utils/hash.d.ts.map +0 -1
  265. package/dist/persistence/utils/hash.js +0 -48
  266. package/dist/persistence/utils/hash.js.map +0 -1
  267. package/dist/persistence/utils/serialization.d.ts +0 -33
  268. package/dist/persistence/utils/serialization.d.ts.map +0 -1
  269. package/dist/persistence/utils/serialization.js +0 -85
  270. package/dist/persistence/utils/serialization.js.map +0 -1
  271. package/dist/processing/document/document-processor.d.ts +0 -30
  272. package/dist/processing/document/document-processor.d.ts.map +0 -1
  273. package/dist/processing/document/document-processor.js +0 -158
  274. package/dist/processing/document/document-processor.js.map +0 -1
  275. package/dist/processing/document/index.d.ts +0 -3
  276. package/dist/processing/document/index.d.ts.map +0 -1
  277. package/dist/processing/document/index.js +0 -6
  278. package/dist/processing/document/index.js.map +0 -1
  279. package/dist/ranker/ranker.d.ts +0 -26
  280. package/dist/ranker/ranker.d.ts.map +0 -1
  281. package/dist/ranker/ranker.js +0 -40
  282. package/dist/ranker/ranker.js.map +0 -1
  283. package/dist/recall/recall-engine.d.ts +0 -19
  284. package/dist/recall/recall-engine.d.ts.map +0 -1
  285. package/dist/recall/recall-engine.js +0 -79
  286. package/dist/recall/recall-engine.js.map +0 -1
  287. package/dist/types/config.d.ts +0 -821
  288. package/dist/types/config.d.ts.map +0 -1
  289. package/dist/types/config.js +0 -128
  290. package/dist/types/config.js.map +0 -1
  291. package/dist/types/document.d.ts +0 -37
  292. package/dist/types/document.d.ts.map +0 -1
  293. package/dist/types/document.js +0 -6
  294. package/dist/types/document.js.map +0 -1
  295. package/dist/types/index.d.ts +0 -86
  296. package/dist/types/index.d.ts.map +0 -1
  297. package/dist/types/index.js +0 -6
  298. package/dist/types/index.js.map +0 -1
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const node_test_1 = require("node:test");
7
+ const node_assert_1 = __importDefault(require("node:assert"));
8
+ const in_memory_store_js_1 = require("../../src/providers/in-memory-store.js");
9
+ (0, node_test_1.describe)("InMemoryStoreProvider", () => {
10
+ (0, node_test_1.it)("write and query", async () => {
11
+ const provider = new in_memory_store_js_1.InMemoryStoreProvider();
12
+ const item = await provider.write({
13
+ namespace: "user:1",
14
+ type: "cross_thread",
15
+ content: "Prefer dark mode.",
16
+ });
17
+ node_assert_1.default.ok(item.id);
18
+ node_assert_1.default.strictEqual(item.type, "cross_thread");
19
+ node_assert_1.default.strictEqual(item.content, "Prefer dark mode.");
20
+ const items = await provider.query({
21
+ namespace: "user:1",
22
+ query: "user preferences",
23
+ topK: 5,
24
+ });
25
+ node_assert_1.default.strictEqual(items.length, 1);
26
+ node_assert_1.default.strictEqual(items[0].content, "Prefer dark mode.");
27
+ });
28
+ (0, node_test_1.it)("getByKey and deleteByKey", async () => {
29
+ const provider = new in_memory_store_js_1.InMemoryStoreProvider();
30
+ await provider.write({
31
+ namespace: "memory:fs",
32
+ type: "cross_thread",
33
+ content: "file content",
34
+ metadata: { path: "/memories/foo.txt" },
35
+ });
36
+ const found = await provider.getByKey("memory:fs", "/memories/foo.txt");
37
+ node_assert_1.default.ok(found);
38
+ node_assert_1.default.strictEqual(found.content, "file content");
39
+ await provider.deleteByKey("memory:fs", "/memories/foo.txt");
40
+ const after = await provider.getByKey("memory:fs", "/memories/foo.txt");
41
+ node_assert_1.default.strictEqual(after, null);
42
+ });
43
+ });
44
+ //# sourceMappingURL=in-memory-store.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"in-memory-store.test.js","sourceRoot":"","sources":["../../../test/providers/in-memory-store.test.ts"],"names":[],"mappings":";;;;;AAAA,yCAAyC;AACzC,8DAAiC;AACjC,+EAA+E;AAE/E,IAAA,oBAAQ,EAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,IAAA,cAAE,EAAC,iBAAiB,EAAE,KAAK,IAAI,EAAE;QAC/B,MAAM,QAAQ,GAAG,IAAI,0CAAqB,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,qBAAM,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnB,qBAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QAC9C,qBAAM,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,qBAAM,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACpC,qBAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,IAAA,cAAE,EAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;QACxC,MAAM,QAAQ,GAAG,IAAI,0CAAqB,EAAE,CAAC;QAC7C,MAAM,QAAQ,CAAC,KAAK,CAAC;YACnB,SAAS,EAAE,WAAW;YACtB,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,cAAc;YACvB,QAAQ,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE;SACxC,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,QAAS,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC;QACzE,qBAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QACjB,qBAAM,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,qBAAM,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=rag-provider.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rag-provider.test.d.ts","sourceRoot":"","sources":["../../../test/providers/rag-provider.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const node_test_1 = require("node:test");
7
+ const node_assert_1 = __importDefault(require("node:assert"));
8
+ const rag_provider_js_1 = require("../../src/providers/rag-provider.js");
9
+ (0, node_test_1.describe)("RAGProvider", () => {
10
+ (0, node_test_1.it)("write and query without embed or search", async () => {
11
+ const provider = new rag_provider_js_1.RAGProvider();
12
+ const item = await provider.write({
13
+ namespace: "user:1",
14
+ type: "knowledge",
15
+ content: "Doc about API.",
16
+ });
17
+ node_assert_1.default.ok(item.id);
18
+ node_assert_1.default.strictEqual(item.type, "knowledge");
19
+ node_assert_1.default.strictEqual(item.content, "Doc about API.");
20
+ const items = await provider.query({
21
+ namespace: "user:1",
22
+ query: "API",
23
+ topK: 5,
24
+ });
25
+ node_assert_1.default.strictEqual(items.length, 1);
26
+ node_assert_1.default.strictEqual(items[0].content, "Doc about API.");
27
+ });
28
+ (0, node_test_1.it)("write with embed stores embedding", async () => {
29
+ const embed = async (text) => text.split("").map((_, i) => (i % 2) * 0.5);
30
+ const provider = new rag_provider_js_1.RAGProvider({ embed });
31
+ const item = await provider.write({
32
+ namespace: "ns",
33
+ type: "knowledge",
34
+ content: "hello",
35
+ });
36
+ node_assert_1.default.ok(item.embedding);
37
+ node_assert_1.default.ok(Array.isArray(item.embedding));
38
+ });
39
+ (0, node_test_1.it)("query with custom search uses search results", async () => {
40
+ const provider = new rag_provider_js_1.RAGProvider({
41
+ search: async (namespace, _query, topK) => {
42
+ return [
43
+ {
44
+ item: {
45
+ id: "s1",
46
+ type: "knowledge",
47
+ namespace,
48
+ scope: "global",
49
+ content: "search result",
50
+ metadata: { created_at: "", updated_at: "" },
51
+ },
52
+ score: 0.9,
53
+ },
54
+ ].slice(0, topK);
55
+ },
56
+ });
57
+ await provider.write({
58
+ namespace: "ns",
59
+ type: "knowledge",
60
+ content: "stored",
61
+ });
62
+ const items = await provider.query({
63
+ namespace: "ns",
64
+ query: "q",
65
+ topK: 3,
66
+ });
67
+ node_assert_1.default.strictEqual(items.length, 1);
68
+ node_assert_1.default.strictEqual(items[0].content, "search result");
69
+ });
70
+ (0, node_test_1.it)("delete removes item", async () => {
71
+ const provider = new rag_provider_js_1.RAGProvider();
72
+ const item = await provider.write({
73
+ namespace: "ns",
74
+ type: "knowledge",
75
+ content: "to delete",
76
+ });
77
+ const before = await provider.query({
78
+ namespace: "ns",
79
+ query: "x",
80
+ topK: 10,
81
+ });
82
+ node_assert_1.default.strictEqual(before.length, 1);
83
+ await provider.delete(item.id, "ns");
84
+ const after = await provider.query({
85
+ namespace: "ns",
86
+ query: "x",
87
+ topK: 10,
88
+ });
89
+ node_assert_1.default.strictEqual(after.length, 0);
90
+ });
91
+ (0, node_test_1.it)("query filters by types", async () => {
92
+ const provider = new rag_provider_js_1.RAGProvider();
93
+ await provider.write({
94
+ namespace: "ns",
95
+ type: "knowledge",
96
+ content: "doc",
97
+ });
98
+ await provider.write({
99
+ namespace: "ns",
100
+ type: "cross_thread",
101
+ content: "pref",
102
+ });
103
+ const items = await provider.query({
104
+ namespace: "ns",
105
+ query: "x",
106
+ topK: 5,
107
+ types: ["knowledge"],
108
+ });
109
+ node_assert_1.default.strictEqual(items.length, 1);
110
+ node_assert_1.default.strictEqual(items[0].type, "knowledge");
111
+ });
112
+ });
113
+ //# sourceMappingURL=rag-provider.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rag-provider.test.js","sourceRoot":"","sources":["../../../test/providers/rag-provider.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=sqlite-store.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqlite-store.test.d.ts","sourceRoot":"","sources":["../../../test/providers/sqlite-store.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const node_test_1 = require("node:test");
7
+ const node_assert_1 = __importDefault(require("node:assert"));
8
+ const sqlite_store_js_1 = require("../../src/providers/sqlite-store.js");
9
+ const hasSqlite = (() => {
10
+ try {
11
+ require("better-sqlite3");
12
+ return true;
13
+ }
14
+ catch {
15
+ return false;
16
+ }
17
+ })();
18
+ (0, node_test_1.describe)("SqliteStoreProvider", { skip: !hasSqlite }, () => {
19
+ (0, node_test_1.it)("write and query without embed", async () => {
20
+ const provider = new sqlite_store_js_1.SqliteStoreProvider({ dbPath: ":memory:" });
21
+ const item = await provider.write({
22
+ namespace: "user:1",
23
+ type: "cross_thread",
24
+ content: "Prefer dark mode.",
25
+ });
26
+ node_assert_1.default.ok(item.id);
27
+ node_assert_1.default.strictEqual(item.type, "cross_thread");
28
+ node_assert_1.default.strictEqual(item.content, "Prefer dark mode.");
29
+ const items = await provider.query({
30
+ namespace: "user:1",
31
+ query: "user preferences",
32
+ topK: 5,
33
+ });
34
+ node_assert_1.default.strictEqual(items.length, 1);
35
+ node_assert_1.default.strictEqual(items[0].content, "Prefer dark mode.");
36
+ });
37
+ (0, node_test_1.it)("write and query with embed", async () => {
38
+ const embed = async (text) => text.split("").map((_, i) => (i % 3) * 0.1);
39
+ const provider = new sqlite_store_js_1.SqliteStoreProvider({
40
+ dbPath: ":memory:",
41
+ embed,
42
+ });
43
+ await provider.write({
44
+ namespace: "ns",
45
+ type: "knowledge",
46
+ content: "alpha",
47
+ });
48
+ await provider.write({
49
+ namespace: "ns",
50
+ type: "knowledge",
51
+ content: "beta",
52
+ });
53
+ const items = await provider.query({
54
+ namespace: "ns",
55
+ query: "alpha",
56
+ topK: 2,
57
+ });
58
+ node_assert_1.default.strictEqual(items.length, 2);
59
+ node_assert_1.default.strictEqual(items[0].content, "alpha");
60
+ });
61
+ (0, node_test_1.it)("getByKey and deleteByKey", async () => {
62
+ const provider = new sqlite_store_js_1.SqliteStoreProvider({ dbPath: ":memory:" });
63
+ await provider.write({
64
+ namespace: "memory:fs",
65
+ type: "cross_thread",
66
+ content: "file content",
67
+ metadata: { path: "/memories/foo.txt" },
68
+ });
69
+ const found = await provider.getByKey("memory:fs", "/memories/foo.txt");
70
+ node_assert_1.default.ok(found);
71
+ node_assert_1.default.strictEqual(found.content, "file content");
72
+ await provider.deleteByKey("memory:fs", "/memories/foo.txt");
73
+ const after = await provider.getByKey("memory:fs", "/memories/foo.txt");
74
+ node_assert_1.default.strictEqual(after, null);
75
+ });
76
+ (0, node_test_1.it)("delete by id", async () => {
77
+ const provider = new sqlite_store_js_1.SqliteStoreProvider({ dbPath: ":memory:" });
78
+ const item = await provider.write({
79
+ namespace: "user:1",
80
+ type: "thread",
81
+ content: "to delete",
82
+ });
83
+ const before = await provider.query({
84
+ namespace: "user:1",
85
+ query: "any",
86
+ topK: 10,
87
+ });
88
+ node_assert_1.default.strictEqual(before.length, 1);
89
+ await provider.delete(item.id, "user:1");
90
+ const after = await provider.query({
91
+ namespace: "user:1",
92
+ query: "any",
93
+ topK: 10,
94
+ });
95
+ node_assert_1.default.strictEqual(after.length, 0);
96
+ });
97
+ (0, node_test_1.it)("query with types filter", async () => {
98
+ const provider = new sqlite_store_js_1.SqliteStoreProvider({ dbPath: ":memory:" });
99
+ await provider.write({
100
+ namespace: "ns",
101
+ type: "knowledge",
102
+ content: "doc",
103
+ });
104
+ await provider.write({
105
+ namespace: "ns",
106
+ type: "cross_thread",
107
+ content: "pref",
108
+ });
109
+ const items = await provider.query({
110
+ namespace: "ns",
111
+ query: "x",
112
+ topK: 5,
113
+ types: ["knowledge"],
114
+ });
115
+ node_assert_1.default.strictEqual(items.length, 1);
116
+ node_assert_1.default.strictEqual(items[0].type, "knowledge");
117
+ });
118
+ });
119
+ //# sourceMappingURL=sqlite-store.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqlite-store.test.js","sourceRoot":"","sources":["../../../test/providers/sqlite-store.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,53 +1,93 @@
1
1
  {
2
2
  "name": "@easynet/agent-memory",
3
- "version": "0.0.2",
4
- "description": "Agent Memory SDK - Simple, YAML-driven memory layer for AI agents",
5
- "main": "dist/index.js",
6
- "types": "dist/index.d.ts",
3
+ "version": "1.0.0",
4
+ "description": "Unified memory layer for LangChain / LangGraph / DeepAgents",
5
+ "main": "dist/src/index.js",
6
+ "types": "dist/src/index.d.ts",
7
7
  "scripts": {
8
8
  "build": "tsc",
9
- "test": "jest",
10
- "test:watch": "jest --watch",
11
- "prepublishOnly": "npm run build",
12
- "chat": "ts-node src/cli/chat.ts",
13
- "chat:dist": "node dist/cli/chat.js",
14
- "chat:split": "ts-node src/cli/chat-split.ts",
15
- "chat:split:dist": "node dist/cli/chat-split.js"
9
+ "pretest": "npm run build",
10
+ "test": "node --test dist/test/",
11
+ "test:unit": "node --test dist/test/core dist/test/providers dist/test/ingest dist/test/create-agent-memory.test.js",
12
+ "test:integration": "node --test dist/test/integration",
13
+ "test:integration:live": "RUN_LIVE_INTEGRATION=1 node --test dist/test/integration",
14
+ "test:full": "RUN_LIVE_INTEGRATION=1 node --test dist/test/",
15
+ "lint": "tsc --noEmit",
16
+ "typecheck": "tsc --noEmit",
17
+ "release": "semantic-release"
16
18
  },
17
- "bin": {
18
- "agent-memory-chat": "./bin/chat"
19
+ "dependencies": {
20
+ "@easynet/agent-common": "latest"
21
+ },
22
+ "peerDependencies": {
23
+ "@langchain/langgraph": "*",
24
+ "@langchain/langgraph-checkpoint": "*",
25
+ "better-sqlite3": ">=9.0.0",
26
+ "cheerio": "*",
27
+ "deepagents": "1.6.x",
28
+ "langchain": "1.2.x",
29
+ "mem0ai": ">=1.0.0",
30
+ "pdf-parse": "*"
19
31
  },
32
+ "peerDependenciesMeta": {
33
+ "@langchain/langgraph": {
34
+ "optional": true
35
+ },
36
+ "@langchain/langgraph-checkpoint": {
37
+ "optional": true
38
+ },
39
+ "better-sqlite3": {
40
+ "optional": true
41
+ },
42
+ "cheerio": {
43
+ "optional": true
44
+ },
45
+ "deepagents": {
46
+ "optional": true
47
+ },
48
+ "langchain": {
49
+ "optional": true
50
+ },
51
+ "mem0ai": {
52
+ "optional": true
53
+ },
54
+ "pdf-parse": {
55
+ "optional": true
56
+ }
57
+ },
58
+ "devDependencies": {
59
+ "@types/node": "^22.0.0",
60
+ "better-sqlite3": "^11.0.0",
61
+ "cheerio": "^1.0.0",
62
+ "typescript": "~5.6.0",
63
+ "@semantic-release/commit-analyzer": "^13.0.0",
64
+ "@semantic-release/git": "^10.0.1",
65
+ "@semantic-release/github": "^11.0.0",
66
+ "@semantic-release/npm": "^12.0.0",
67
+ "@semantic-release/release-notes-generator": "^14.0.0",
68
+ "semantic-release": "^24.2.0"
69
+ },
70
+ "files": [
71
+ "dist"
72
+ ],
20
73
  "keywords": [
21
74
  "agent",
22
75
  "memory",
23
- "rag",
24
- "llm",
25
- "ai"
76
+ "langchain",
77
+ "langgraph",
78
+ "deepagents",
79
+ "rag"
26
80
  ],
27
- "author": "",
28
81
  "license": "MIT",
29
- "publishConfig": {
30
- "access": "public"
31
- },
32
- "dependencies": {
33
- "@types/blessed": "^0.1.27",
34
- "better-sqlite3": "^9.2.2",
35
- "blessed": "^0.1.81",
36
- "js-yaml": "^4.1.0",
37
- "zod": "^3.22.4"
82
+ "engines": {
83
+ "node": ">=18"
38
84
  },
39
- "devDependencies": {
40
- "@types/better-sqlite3": "^7.6.8",
41
- "@types/jest": "^29.5.11",
42
- "@types/js-yaml": "^4.0.9",
43
- "@types/node": "^20.10.0",
44
- "jest": "^29.7.0",
45
- "ts-jest": "^29.1.1",
46
- "ts-node": "^10.9.2",
47
- "typescript": "^5.3.3"
85
+ "repository": {
86
+ "type": "git",
87
+ "url": "git@github.com:easynet-world/agent-memory.git"
48
88
  },
49
- "files": [
50
- "dist",
51
- "README.md"
52
- ]
89
+ "publishConfig": {
90
+ "access": "public",
91
+ "registry": "https://registry.npmjs.org/"
92
+ }
53
93
  }
package/bin/chat DELETED
@@ -1,11 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- /**
4
- * Chat Console entry point
5
- * Usage: node bin/chat [config-path]
6
- */
7
-
8
- const path = require("path");
9
- const chatModule = require(path.join(__dirname, "../dist/cli/chat.js"));
10
-
11
- // The main function is already called in chat.ts when executed directly
@@ -1,8 +0,0 @@
1
- /**
2
- * Adapter factory
3
- */
4
- import { MemoryStore, DocRetriever } from "./types";
5
- import { Config } from "../types/config";
6
- export declare function createMemoryStore(config: Config): MemoryStore;
7
- export declare function createDocRetriever(config: Config): DocRetriever | null;
8
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAIzC,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAO7D;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAWtE"}
@@ -1,29 +0,0 @@
1
- "use strict";
2
- /**
3
- * Adapter factory
4
- */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.createMemoryStore = createMemoryStore;
7
- exports.createDocRetriever = createDocRetriever;
8
- const mem0_store_1 = require("./mem0/mem0-store");
9
- const rag_http_retriever_1 = require("./rag-http/rag-http-retriever");
10
- function createMemoryStore(config) {
11
- switch (config.store.provider) {
12
- case "mem0":
13
- return new mem0_store_1.Mem0Store(config);
14
- default:
15
- throw new Error(`Unsupported memory store provider: ${config.store.provider}`);
16
- }
17
- }
18
- function createDocRetriever(config) {
19
- if (!config.docs?.enabled) {
20
- return null;
21
- }
22
- switch (config.docs.retriever) {
23
- case "rag_http":
24
- return new rag_http_retriever_1.RagHttpRetriever(config);
25
- default:
26
- throw new Error(`Unsupported doc retriever: ${config.docs.retriever}`);
27
- }
28
- }
29
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAOH,8CAOC;AAED,gDAWC;AAvBD,kDAA8C;AAC9C,sEAAiE;AAEjE,SAAgB,iBAAiB,CAAC,MAAc;IAC9C,QAAQ,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC9B,KAAK,MAAM;YACT,OAAO,IAAI,sBAAS,CAAC,MAAM,CAAC,CAAC;QAC/B;YACE,MAAM,IAAI,KAAK,CAAC,sCAAsC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IACnF,CAAC;AACH,CAAC;AAED,SAAgB,kBAAkB,CAAC,MAAc;IAC/C,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,QAAQ,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QAC9B,KAAK,UAAU;YACb,OAAO,IAAI,qCAAgB,CAAC,MAAM,CAAC,CAAC;QACtC;YACE,MAAM,IAAI,KAAK,CAAC,8BAA8B,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IAC3E,CAAC;AACH,CAAC"}
@@ -1,29 +0,0 @@
1
- /**
2
- * Mem0 Platform Store Adapter
3
- */
4
- import { MemoryStore } from "../types";
5
- import { MemoryItem, Actor, Scope } from "../../types";
6
- import { Config } from "../../types/config";
7
- export declare class Mem0Store implements MemoryStore {
8
- private apiKey;
9
- private baseUrl;
10
- private namespaceConfig?;
11
- constructor(config: Config);
12
- /**
13
- * Build namespace from scope and actor
14
- */
15
- private buildNamespace;
16
- add(items: MemoryItem[], opts: {
17
- actor?: Actor;
18
- scope?: Scope;
19
- }): Promise<void>;
20
- search(query: string, opts: {
21
- actor?: Actor;
22
- scope?: Scope;
23
- topK?: number;
24
- filters?: any;
25
- }): Promise<MemoryItem[]>;
26
- delete(id: string): Promise<void>;
27
- updateUtility(id: string, delta: number): Promise<void>;
28
- }
29
- //# sourceMappingURL=mem0-store.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mem0-store.d.ts","sourceRoot":"","sources":["../../../src/adapters/mem0/mem0-store.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,qBAAa,SAAU,YAAW,WAAW;IAC3C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,eAAe,CAAC,CAItB;gBAEU,MAAM,EAAE,MAAM;IAU1B;;OAEG;IACH,OAAO,CAAC,cAAc;IAyChB,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE;QAAE,KAAK,CAAC,EAAE,KAAK,CAAC;QAAC,KAAK,CAAC,EAAE,KAAK,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAiD/E,MAAM,CACV,KAAK,EAAE,MAAM,EACb,IAAI,EAAE;QAAE,KAAK,CAAC,EAAE,KAAK,CAAC;QAAC,KAAK,CAAC,EAAE,KAAK,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,GAAG,CAAA;KAAE,GACnE,OAAO,CAAC,UAAU,EAAE,CAAC;IAkDlB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBjC,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAK9D"}