@easynet/agent-memory 0.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.
Files changed (167) hide show
  1. package/README.md +260 -0
  2. package/bin/chat +11 -0
  3. package/dist/adapters/index.d.ts +8 -0
  4. package/dist/adapters/index.d.ts.map +1 -0
  5. package/dist/adapters/index.js +29 -0
  6. package/dist/adapters/index.js.map +1 -0
  7. package/dist/adapters/mem0/mem0-store.d.ts +29 -0
  8. package/dist/adapters/mem0/mem0-store.d.ts.map +1 -0
  9. package/dist/adapters/mem0/mem0-store.js +174 -0
  10. package/dist/adapters/mem0/mem0-store.js.map +1 -0
  11. package/dist/adapters/rag-http/rag-http-retriever.d.ts +18 -0
  12. package/dist/adapters/rag-http/rag-http-retriever.d.ts.map +1 -0
  13. package/dist/adapters/rag-http/rag-http-retriever.js +71 -0
  14. package/dist/adapters/rag-http/rag-http-retriever.js.map +1 -0
  15. package/dist/adapters/types.d.ts +25 -0
  16. package/dist/adapters/types.d.ts.map +1 -0
  17. package/dist/adapters/types.js +6 -0
  18. package/dist/adapters/types.js.map +1 -0
  19. package/dist/boot/boot-rebuilder.d.ts +26 -0
  20. package/dist/boot/boot-rebuilder.d.ts.map +1 -0
  21. package/dist/boot/boot-rebuilder.js +112 -0
  22. package/dist/boot/boot-rebuilder.js.map +1 -0
  23. package/dist/boot/index.d.ts +3 -0
  24. package/dist/boot/index.d.ts.map +1 -0
  25. package/dist/boot/index.js +6 -0
  26. package/dist/boot/index.js.map +1 -0
  27. package/dist/cli/chat-split.d.ts +22 -0
  28. package/dist/cli/chat-split.d.ts.map +1 -0
  29. package/dist/cli/chat-split.js +187 -0
  30. package/dist/cli/chat-split.js.map +1 -0
  31. package/dist/cli/chat.d.ts +19 -0
  32. package/dist/cli/chat.d.ts.map +1 -0
  33. package/dist/cli/chat.js +266 -0
  34. package/dist/cli/chat.js.map +1 -0
  35. package/dist/cli/commands/command-handler.d.ts +32 -0
  36. package/dist/cli/commands/command-handler.d.ts.map +1 -0
  37. package/dist/cli/commands/command-handler.js +143 -0
  38. package/dist/cli/commands/command-handler.js.map +1 -0
  39. package/dist/cli/index.d.ts +3 -0
  40. package/dist/cli/index.d.ts.map +1 -0
  41. package/dist/cli/index.js +8 -0
  42. package/dist/cli/index.js.map +1 -0
  43. package/dist/cli/ui/display-manager.d.ts +18 -0
  44. package/dist/cli/ui/display-manager.d.ts.map +1 -0
  45. package/dist/cli/ui/display-manager.js +69 -0
  46. package/dist/cli/ui/display-manager.js.map +1 -0
  47. package/dist/cli/ui/screen-layout.d.ts +12 -0
  48. package/dist/cli/ui/screen-layout.d.ts.map +1 -0
  49. package/dist/cli/ui/screen-layout.js +125 -0
  50. package/dist/cli/ui/screen-layout.js.map +1 -0
  51. package/dist/config/index.d.ts +2 -0
  52. package/dist/config/index.d.ts.map +1 -0
  53. package/dist/config/index.js +6 -0
  54. package/dist/config/index.js.map +1 -0
  55. package/dist/config/loader.d.ts +9 -0
  56. package/dist/config/loader.d.ts.map +1 -0
  57. package/dist/config/loader.js +107 -0
  58. package/dist/config/loader.js.map +1 -0
  59. package/dist/context/context-builder.d.ts +18 -0
  60. package/dist/context/context-builder.d.ts.map +1 -0
  61. package/dist/context/context-builder.js +91 -0
  62. package/dist/context/context-builder.js.map +1 -0
  63. package/dist/core/agent-memory.d.ts +50 -0
  64. package/dist/core/agent-memory.d.ts.map +1 -0
  65. package/dist/core/agent-memory.js +297 -0
  66. package/dist/core/agent-memory.js.map +1 -0
  67. package/dist/embedding/embedder.d.ts +49 -0
  68. package/dist/embedding/embedder.d.ts.map +1 -0
  69. package/dist/embedding/embedder.js +146 -0
  70. package/dist/embedding/embedder.js.map +1 -0
  71. package/dist/embedding/index.d.ts +3 -0
  72. package/dist/embedding/index.d.ts.map +1 -0
  73. package/dist/embedding/index.js +8 -0
  74. package/dist/embedding/index.js.map +1 -0
  75. package/dist/gate/deduplicator.d.ts +22 -0
  76. package/dist/gate/deduplicator.d.ts.map +1 -0
  77. package/dist/gate/deduplicator.js +74 -0
  78. package/dist/gate/deduplicator.js.map +1 -0
  79. package/dist/gate/extractor.d.ts +33 -0
  80. package/dist/gate/extractor.d.ts.map +1 -0
  81. package/dist/gate/extractor.js +122 -0
  82. package/dist/gate/extractor.js.map +1 -0
  83. package/dist/gate/index.d.ts +3 -0
  84. package/dist/gate/index.d.ts.map +1 -0
  85. package/dist/gate/index.js +6 -0
  86. package/dist/gate/index.js.map +1 -0
  87. package/dist/gate/memory-gate.d.ts +27 -0
  88. package/dist/gate/memory-gate.d.ts.map +1 -0
  89. package/dist/gate/memory-gate.js +86 -0
  90. package/dist/gate/memory-gate.js.map +1 -0
  91. package/dist/gate/redactor.d.ts +14 -0
  92. package/dist/gate/redactor.d.ts.map +1 -0
  93. package/dist/gate/redactor.js +24 -0
  94. package/dist/gate/redactor.js.map +1 -0
  95. package/dist/index.d.ts +6 -0
  96. package/dist/index.d.ts.map +1 -0
  97. package/dist/index.js +24 -0
  98. package/dist/index.js.map +1 -0
  99. package/dist/indexing/in-memory-index.d.ts +67 -0
  100. package/dist/indexing/in-memory-index.d.ts.map +1 -0
  101. package/dist/indexing/in-memory-index.js +135 -0
  102. package/dist/indexing/in-memory-index.js.map +1 -0
  103. package/dist/indexing/index.d.ts +3 -0
  104. package/dist/indexing/index.d.ts.map +1 -0
  105. package/dist/indexing/index.js +6 -0
  106. package/dist/indexing/index.js.map +1 -0
  107. package/dist/persistence/database/schema.d.ts +6 -0
  108. package/dist/persistence/database/schema.d.ts.map +1 -0
  109. package/dist/persistence/database/schema.js +75 -0
  110. package/dist/persistence/database/schema.js.map +1 -0
  111. package/dist/persistence/index.d.ts +3 -0
  112. package/dist/persistence/index.d.ts.map +1 -0
  113. package/dist/persistence/index.js +6 -0
  114. package/dist/persistence/index.js.map +1 -0
  115. package/dist/persistence/repository/embedding-operations.d.ts +17 -0
  116. package/dist/persistence/repository/embedding-operations.d.ts.map +1 -0
  117. package/dist/persistence/repository/embedding-operations.js +58 -0
  118. package/dist/persistence/repository/embedding-operations.js.map +1 -0
  119. package/dist/persistence/repository/memory-operations.d.ts +28 -0
  120. package/dist/persistence/repository/memory-operations.d.ts.map +1 -0
  121. package/dist/persistence/repository/memory-operations.js +87 -0
  122. package/dist/persistence/repository/memory-operations.js.map +1 -0
  123. package/dist/persistence/repository/meta-operations.d.ts +15 -0
  124. package/dist/persistence/repository/meta-operations.d.ts.map +1 -0
  125. package/dist/persistence/repository/meta-operations.js +20 -0
  126. package/dist/persistence/repository/meta-operations.js.map +1 -0
  127. package/dist/persistence/sqlite-repo.d.ts +58 -0
  128. package/dist/persistence/sqlite-repo.d.ts.map +1 -0
  129. package/dist/persistence/sqlite-repo.js +81 -0
  130. package/dist/persistence/sqlite-repo.js.map +1 -0
  131. package/dist/persistence/utils/hash.d.ts +8 -0
  132. package/dist/persistence/utils/hash.d.ts.map +1 -0
  133. package/dist/persistence/utils/hash.js +48 -0
  134. package/dist/persistence/utils/hash.js.map +1 -0
  135. package/dist/persistence/utils/serialization.d.ts +33 -0
  136. package/dist/persistence/utils/serialization.d.ts.map +1 -0
  137. package/dist/persistence/utils/serialization.js +85 -0
  138. package/dist/persistence/utils/serialization.js.map +1 -0
  139. package/dist/processing/document/document-processor.d.ts +30 -0
  140. package/dist/processing/document/document-processor.d.ts.map +1 -0
  141. package/dist/processing/document/document-processor.js +158 -0
  142. package/dist/processing/document/document-processor.js.map +1 -0
  143. package/dist/processing/document/index.d.ts +3 -0
  144. package/dist/processing/document/index.d.ts.map +1 -0
  145. package/dist/processing/document/index.js +6 -0
  146. package/dist/processing/document/index.js.map +1 -0
  147. package/dist/ranker/ranker.d.ts +26 -0
  148. package/dist/ranker/ranker.d.ts.map +1 -0
  149. package/dist/ranker/ranker.js +40 -0
  150. package/dist/ranker/ranker.js.map +1 -0
  151. package/dist/recall/recall-engine.d.ts +19 -0
  152. package/dist/recall/recall-engine.d.ts.map +1 -0
  153. package/dist/recall/recall-engine.js +79 -0
  154. package/dist/recall/recall-engine.js.map +1 -0
  155. package/dist/types/config.d.ts +821 -0
  156. package/dist/types/config.d.ts.map +1 -0
  157. package/dist/types/config.js +128 -0
  158. package/dist/types/config.js.map +1 -0
  159. package/dist/types/document.d.ts +37 -0
  160. package/dist/types/document.d.ts.map +1 -0
  161. package/dist/types/document.js +6 -0
  162. package/dist/types/document.js.map +1 -0
  163. package/dist/types/index.d.ts +86 -0
  164. package/dist/types/index.d.ts.map +1 -0
  165. package/dist/types/index.js +6 -0
  166. package/dist/types/index.js.map +1 -0
  167. package/package.json +53 -0
package/README.md ADDED
@@ -0,0 +1,260 @@
1
+ # agent-memory
2
+
3
+ 一个简单易用的 Agent 记忆管理 SDK,支持长期记忆存储、文档记忆和多模态文档处理。
4
+
5
+ ## 快速开始
6
+
7
+ ```bash
8
+ npm install agent-memory
9
+ ```
10
+
11
+ ```typescript
12
+ import { AgentMemory } from "agent-memory";
13
+
14
+ const am = await AgentMemory.fromYaml("./agent-memory.yaml");
15
+
16
+ // 记忆对话
17
+ await am.remember({
18
+ messages: [
19
+ { role: "user", content: "发布流程:先 dc-dev-testing,再 dc-prod" }
20
+ ],
21
+ actor: { id: "U123", type: "user" },
22
+ scope: { projectId: "bds" },
23
+ });
24
+
25
+ // 记忆文档(支持多模态)
26
+ await am.rememberDocument({
27
+ document: {
28
+ id: "doc_001",
29
+ type: "pdf",
30
+ text: "PDF提取的文本内容...",
31
+ metadata: { title: "技术文档", path: "/docs/tech.pdf" },
32
+ },
33
+ actor: { id: "system", type: "system" },
34
+ scope: { projectId: "main-project" },
35
+ });
36
+
37
+ // 召回
38
+ const result = await am.recall({
39
+ query: "发布流程是什么?",
40
+ scope: { projectId: "bds" },
41
+ });
42
+
43
+ console.log(result.context);
44
+ ```
45
+
46
+ ## 主要特性
47
+
48
+ - ✅ **双模式支持**:Platform API 模式 和 In-Memory 模式(SQLite + 向量索引)
49
+ - ✅ **文档记忆**:支持文本、PDF、图片、Markdown、HTML、代码等多种文档类型
50
+ - ✅ **多模态支持**:图片OCR文本、PDF分页、代码文档等
51
+ - ✅ **自动分块**:大文档自动分块,支持重叠窗口
52
+ - ✅ **MemoryGate**:脱敏、抽取、过滤、去重
53
+ - ✅ **向量检索**:基于 Embedding 的语义搜索
54
+ - ✅ **YAML配置**:简单易用的配置文件
55
+
56
+ ## 文档记忆
57
+
58
+ 支持多种文档类型:
59
+
60
+ - `text` - 纯文本
61
+ - `pdf` - PDF文档(支持分页)
62
+ - `image` - 图片(支持OCR文本)
63
+ - `markdown` - Markdown文档
64
+ - `html` - HTML文档
65
+ - `code` - 代码文件
66
+
67
+ ```typescript
68
+ // 记忆PDF文档(自动分块)
69
+ await am.rememberDocument({
70
+ document: {
71
+ id: "pdf_001",
72
+ type: "pdf",
73
+ text: "PDF内容...",
74
+ page: 1,
75
+ metadata: { title: "文档", pageCount: 50 },
76
+ },
77
+ autoChunk: true,
78
+ chunkSize: 1000,
79
+ extractMetadata: true,
80
+ });
81
+
82
+ // 记忆图片(带OCR)
83
+ await am.rememberDocument({
84
+ document: {
85
+ id: "img_001",
86
+ type: "image",
87
+ text: "图片描述",
88
+ extractedText: "OCR提取的文字",
89
+ imageUrl: "https://example.com/image.png",
90
+ },
91
+ });
92
+ ```
93
+
94
+ 详细文档请参考 [docs/DOCUMENT_MEMORY.md](./docs/DOCUMENT_MEMORY.md)
95
+
96
+ ## 配置
97
+
98
+ 创建 `agent-memory.yaml`:
99
+
100
+ ```yaml
101
+ store:
102
+ mem0:
103
+ mode: in_memory # 或 platform
104
+
105
+ persistence:
106
+ sqlite:
107
+ path: ./data/memory.db
108
+
109
+ embedding:
110
+ provider: ollama
111
+ model: embedding-gemma:latest
112
+
113
+ memory:
114
+ gate:
115
+ enabled: true
116
+ redact:
117
+ enabled: true
118
+ dedupe:
119
+ enabled: true
120
+ similarity_threshold: 0.92
121
+ ```
122
+
123
+ ## 两种运行模式
124
+
125
+ ### 1. Platform 模式(Mem0 Platform API)
126
+
127
+ 使用 Mem0 Platform 作为后端:
128
+
129
+ ```yaml
130
+ store:
131
+ mem0:
132
+ mode: platform
133
+ api_key: ${MEM0_API_KEY}
134
+ base_url: https://api.mem0.ai
135
+ ```
136
+
137
+ ### 2. In-Memory 模式(本地SQLite + 向量索引)
138
+
139
+ 完全本地运行,使用 SQLite 存储和内存向量索引:
140
+
141
+ ```yaml
142
+ store:
143
+ mem0:
144
+ mode: in_memory
145
+
146
+ persistence:
147
+ sqlite:
148
+ path: ./data/memory.db
149
+
150
+ embedding:
151
+ provider: ollama
152
+ model: embedding-gemma:latest
153
+ ```
154
+
155
+ ## API
156
+
157
+ ### remember()
158
+
159
+ 记忆对话或文本:
160
+
161
+ ```typescript
162
+ await am.remember({
163
+ messages: [{ role: "user", content: "..." }],
164
+ // 或
165
+ text: "...",
166
+ actor: { id: "U123", type: "user" },
167
+ scope: { projectId: "bds" },
168
+ hint: { types: ["policy", "episodic"] },
169
+ });
170
+ ```
171
+
172
+ ### rememberDocument()
173
+
174
+ 记忆文档(支持多模态):
175
+
176
+ ```typescript
177
+ await am.rememberDocument({
178
+ document: DocumentChunk | DocumentChunk[],
179
+ actor?: Actor,
180
+ scope?: Scope,
181
+ autoChunk?: boolean,
182
+ chunkSize?: number,
183
+ extractMetadata?: boolean,
184
+ tags?: string[],
185
+ });
186
+ ```
187
+
188
+ ### recall()
189
+
190
+ 召回记忆和文档:
191
+
192
+ ```typescript
193
+ const result = await am.recall({
194
+ query: "发布流程是什么?",
195
+ actor: { id: "U123", type: "user" },
196
+ scope: { projectId: "bds" },
197
+ topK: 10,
198
+ includeMemory: true,
199
+ includeDocs: true,
200
+ });
201
+ ```
202
+
203
+ ## 项目结构
204
+
205
+ ```
206
+ src/
207
+ ├── core/ # 核心类
208
+ │ └── agent-memory.ts # 主类
209
+ ├── adapters/ # 适配器(Mem0, RAG HTTP)
210
+ ├── storage/
211
+ │ ├── persistence/ # SQLite持久化
212
+ │ └── indexing/ # In-Memory向量索引
213
+ ├── processing/
214
+ │ ├── gate/ # MemoryGate
215
+ │ ├── embedding/ # Embedding计算
216
+ │ ├── recall/ # 召回引擎
217
+ │ ├── ranker/ # 排序器
218
+ │ ├── context/ # Context构建
219
+ │ └── document/ # 文档处理
220
+ ├── boot/ # 启动回灌
221
+ ├── config/ # 配置加载
222
+ ├── types/ # 类型定义
223
+ └── cli/ # Chat Console
224
+
225
+ test-configs/ # 测试配置文件
226
+ ```
227
+
228
+ **代码规范**:
229
+ - ✅ 所有文件不超过 500 行
230
+ - ✅ 文件命名使用 kebab-case
231
+ - ✅ 清晰的模块职责分离
232
+
233
+ 详细结构说明请参考 [PROJECT_STRUCTURE.md](./PROJECT_STRUCTURE.md)
234
+
235
+ ## 开发
236
+
237
+ ```bash
238
+ # 安装依赖
239
+ npm install
240
+
241
+ # 构建
242
+ npm run build
243
+
244
+ # 测试
245
+ npm test
246
+
247
+ # Chat Console
248
+ npm run chat
249
+ npm run chat:split
250
+ ```
251
+
252
+ ## 示例
253
+
254
+ - `examples/basic-usage.ts` - 基本用法
255
+ - `examples/document-memory.ts` - 文档记忆示例
256
+ - `examples/chat-example.ts` - Chat Console 示例
257
+
258
+ ## License
259
+
260
+ MIT
package/bin/chat ADDED
@@ -0,0 +1,11 @@
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
@@ -0,0 +1,8 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,29 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,29 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,174 @@
1
+ "use strict";
2
+ /**
3
+ * Mem0 Platform Store Adapter
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Mem0Store = void 0;
7
+ class Mem0Store {
8
+ constructor(config) {
9
+ const mem0Config = config.store.mem0;
10
+ if (!mem0Config.api_key) {
11
+ throw new Error("Mem0 API key is required for platform mode");
12
+ }
13
+ this.apiKey = mem0Config.api_key;
14
+ this.baseUrl = mem0Config.base_url || "https://api.mem0.ai";
15
+ this.namespaceConfig = mem0Config.namespace;
16
+ }
17
+ /**
18
+ * Build namespace from scope and actor
19
+ */
20
+ buildNamespace(actor, scope) {
21
+ const namespace = {};
22
+ if (this.namespaceConfig) {
23
+ if (this.namespaceConfig.project_from && scope?.projectId) {
24
+ namespace.project = scope.projectId;
25
+ }
26
+ if (this.namespaceConfig.run_from) {
27
+ // Support patterns like "scope.channelId:scope.threadId"
28
+ const parts = this.namespaceConfig.run_from.split(":");
29
+ const runParts = [];
30
+ for (const part of parts) {
31
+ if (part.startsWith("scope.")) {
32
+ const key = part.replace("scope.", "");
33
+ if (scope?.[key]) {
34
+ runParts.push(scope[key]);
35
+ }
36
+ }
37
+ }
38
+ if (runParts.length > 0) {
39
+ namespace.run = runParts.join(":");
40
+ }
41
+ }
42
+ if (this.namespaceConfig.user_from && actor?.id) {
43
+ // Support patterns like "actor.id"
44
+ if (this.namespaceConfig.user_from.startsWith("actor.")) {
45
+ const key = this.namespaceConfig.user_from.replace("actor.", "");
46
+ if (actor[key]) {
47
+ namespace.user = String(actor[key]);
48
+ }
49
+ }
50
+ else {
51
+ namespace.user = actor.id;
52
+ }
53
+ }
54
+ }
55
+ return namespace;
56
+ }
57
+ async add(items, opts) {
58
+ const namespace = this.buildNamespace(opts.actor, opts.scope);
59
+ for (const item of items) {
60
+ try {
61
+ const response = await fetch(`${this.baseUrl}/v1/memories`, {
62
+ method: "POST",
63
+ headers: {
64
+ "Authorization": `Bearer ${this.apiKey}`,
65
+ "Content-Type": "application/json",
66
+ },
67
+ body: JSON.stringify({
68
+ messages: [
69
+ {
70
+ role: "user",
71
+ content: item.content,
72
+ }
73
+ ],
74
+ agent_id: namespace.user || "default",
75
+ user_id: namespace.user || "default",
76
+ metadata: {
77
+ type: item.type,
78
+ tags: item.tags || [],
79
+ confidence: item.confidence,
80
+ utility: item.utility,
81
+ source: item.source,
82
+ scope: opts.scope,
83
+ ...namespace,
84
+ },
85
+ }),
86
+ });
87
+ if (!response.ok) {
88
+ const error = await response.text();
89
+ throw new Error(`Mem0 API error: ${response.status} ${error}`);
90
+ }
91
+ const result = await response.json();
92
+ // Update item.id with the returned memory ID if available
93
+ if (result.id) {
94
+ item.id = result.id;
95
+ }
96
+ }
97
+ catch (error) {
98
+ console.error(`Failed to add memory item: ${item.content.substring(0, 50)}...`, error);
99
+ throw error;
100
+ }
101
+ }
102
+ }
103
+ async search(query, opts) {
104
+ const namespace = this.buildNamespace(opts.actor, opts.scope);
105
+ const topK = opts.topK || 10;
106
+ try {
107
+ const response = await fetch(`${this.baseUrl}/v1/memories/search`, {
108
+ method: "POST",
109
+ headers: {
110
+ "Authorization": `Bearer ${this.apiKey}`,
111
+ "Content-Type": "application/json",
112
+ },
113
+ body: JSON.stringify({
114
+ query,
115
+ agent_id: namespace.user || "default",
116
+ user_id: namespace.user || "default",
117
+ limit: topK,
118
+ metadata: {
119
+ ...namespace,
120
+ ...opts.filters,
121
+ },
122
+ }),
123
+ });
124
+ if (!response.ok) {
125
+ const error = await response.text();
126
+ throw new Error(`Mem0 API error: ${response.status} ${error}`);
127
+ }
128
+ const result = await response.json();
129
+ // Transform Mem0 response to MemoryItem[]
130
+ return (result.results || []).map((mem) => ({
131
+ id: mem.id || mem.memory_id || String(Date.now()),
132
+ type: (mem.metadata?.type || "episodic"),
133
+ content: mem.memory || mem.content || "",
134
+ actor: opts.actor,
135
+ scope: opts.scope,
136
+ tags: mem.metadata?.tags || [],
137
+ confidence: mem.score || mem.metadata?.confidence,
138
+ utility: mem.metadata?.utility,
139
+ source: mem.metadata?.source,
140
+ createdAt: mem.created_at || new Date().toISOString(),
141
+ updatedAt: mem.updated_at,
142
+ }));
143
+ }
144
+ catch (error) {
145
+ console.error("Failed to search memories:", error);
146
+ throw error;
147
+ }
148
+ }
149
+ async delete(id) {
150
+ try {
151
+ const response = await fetch(`${this.baseUrl}/v1/memories/${id}`, {
152
+ method: "DELETE",
153
+ headers: {
154
+ "Authorization": `Bearer ${this.apiKey}`,
155
+ },
156
+ });
157
+ if (!response.ok) {
158
+ const error = await response.text();
159
+ throw new Error(`Mem0 API error: ${response.status} ${error}`);
160
+ }
161
+ }
162
+ catch (error) {
163
+ console.error(`Failed to delete memory ${id}:`, error);
164
+ throw error;
165
+ }
166
+ }
167
+ async updateUtility(id, delta) {
168
+ // Mem0 may not support utility updates directly
169
+ // This could be implemented via metadata updates if supported
170
+ console.warn("updateUtility not fully implemented for Mem0Store");
171
+ }
172
+ }
173
+ exports.Mem0Store = Mem0Store;
174
+ //# sourceMappingURL=mem0-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mem0-store.js","sourceRoot":"","sources":["../../../src/adapters/mem0/mem0-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * RAG HTTP Retriever Adapter
3
+ */
4
+ import { DocRetriever } from "../types";
5
+ import { DocChunk, Scope } from "../../types";
6
+ import { Config } from "../../types/config";
7
+ export declare class RagHttpRetriever implements DocRetriever {
8
+ private baseUrl;
9
+ private searchEndpoint;
10
+ private timeoutMs;
11
+ private defaultTopK;
12
+ constructor(config: Config);
13
+ search(query: string, opts: {
14
+ scope?: Scope;
15
+ topK?: number;
16
+ }): Promise<DocChunk[]>;
17
+ }
18
+ //# sourceMappingURL=rag-http-retriever.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rag-http-retriever.d.ts","sourceRoot":"","sources":["../../../src/adapters/rag-http/rag-http-retriever.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,qBAAa,gBAAiB,YAAW,YAAY;IACnD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,WAAW,CAAS;gBAEhB,MAAM,EAAE,MAAM;IAepB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE;QAAE,KAAK,CAAC,EAAE,KAAK,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;CAsDzF"}
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ /**
3
+ * RAG HTTP Retriever Adapter
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.RagHttpRetriever = void 0;
7
+ class RagHttpRetriever {
8
+ constructor(config) {
9
+ if (!config.docs?.enabled) {
10
+ throw new Error("docs.enabled must be true to use RagHttpRetriever");
11
+ }
12
+ const ragConfig = config.docs.rag_http;
13
+ if (!ragConfig) {
14
+ throw new Error("rag_http configuration is required when docs.enabled is true");
15
+ }
16
+ this.baseUrl = ragConfig.base_url;
17
+ this.searchEndpoint = ragConfig.endpoints?.search || "/search";
18
+ this.timeoutMs = ragConfig.timeout_ms || 8000;
19
+ this.defaultTopK = ragConfig.top_k || 6;
20
+ }
21
+ async search(query, opts) {
22
+ const topK = opts.topK || this.defaultTopK;
23
+ try {
24
+ const controller = new AbortController();
25
+ const timeoutId = setTimeout(() => controller.abort(), this.timeoutMs);
26
+ const response = await fetch(`${this.baseUrl}${this.searchEndpoint}`, {
27
+ method: "POST",
28
+ headers: {
29
+ "Content-Type": "application/json",
30
+ },
31
+ body: JSON.stringify({
32
+ query,
33
+ topK,
34
+ scope: opts.scope,
35
+ }),
36
+ signal: controller.signal,
37
+ });
38
+ clearTimeout(timeoutId);
39
+ if (!response.ok) {
40
+ const error = await response.text();
41
+ throw new Error(`RAG HTTP error: ${response.status} ${error}`);
42
+ }
43
+ const result = await response.json();
44
+ // Transform response to DocChunk[]
45
+ // Expected format: { chunks: DocChunk[] } or DocChunk[]
46
+ const chunks = result.chunks || result || [];
47
+ return chunks.map((chunk, index) => ({
48
+ id: chunk.id || `doc_${Date.now()}_${index}`,
49
+ text: chunk.text || chunk.content || "",
50
+ score: chunk.score || chunk.similarity,
51
+ source: chunk.source || {
52
+ title: chunk.title,
53
+ url: chunk.url,
54
+ path: chunk.path,
55
+ page: chunk.page,
56
+ section: chunk.section,
57
+ },
58
+ citations: chunk.citations,
59
+ }));
60
+ }
61
+ catch (error) {
62
+ if (error instanceof Error && error.name === "AbortError") {
63
+ throw new Error(`RAG HTTP request timeout after ${this.timeoutMs}ms`);
64
+ }
65
+ console.error("Failed to search documents:", error);
66
+ throw error;
67
+ }
68
+ }
69
+ }
70
+ exports.RagHttpRetriever = RagHttpRetriever;
71
+ //# sourceMappingURL=rag-http-retriever.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rag-http-retriever.js","sourceRoot":"","sources":["../../../src/adapters/rag-http/rag-http-retriever.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Adapter interfaces
3
+ */
4
+ import { MemoryItem, DocChunk, Actor, Scope } from "../types";
5
+ export interface MemoryStore {
6
+ add(items: MemoryItem[], opts: {
7
+ actor?: Actor;
8
+ scope?: Scope;
9
+ }): Promise<void>;
10
+ search(query: string, opts: {
11
+ actor?: Actor;
12
+ scope?: Scope;
13
+ topK?: number;
14
+ filters?: any;
15
+ }): Promise<MemoryItem[]>;
16
+ delete?(id: string): Promise<void>;
17
+ updateUtility?(id: string, delta: number): Promise<void>;
18
+ }
19
+ export interface DocRetriever {
20
+ search(query: string, opts: {
21
+ scope?: Scope;
22
+ topK?: number;
23
+ }): Promise<DocChunk[]>;
24
+ }
25
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/adapters/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAE9D,MAAM,WAAW,WAAW;IAC1B,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,CAAC;IAChF,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,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,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IACnH,MAAM,CAAC,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,aAAa,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1D;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE;QAAE,KAAK,CAAC,EAAE,KAAK,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;CACpF"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ /**
3
+ * Adapter interfaces
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ //# sourceMappingURL=types.js.map