mem-os-python 1.6.27__py3-none-any.whl

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 (253) hide show
  1. mem_os_python-1.6.27.dist-info/METADATA +1032 -0
  2. mem_os_python-1.6.27.dist-info/RECORD +253 -0
  3. mem_os_python-1.6.27.dist-info/WHEEL +4 -0
  4. mem_os_python-1.6.27.dist-info/entry_points.txt +2 -0
  5. mem_os_python-1.6.27.dist-info/licenses/LICENSE +21 -0
  6. memos/__init__.py +16 -0
  7. memos/_js/adapters/anthropic.d.ts +279 -0
  8. memos/_js/adapters/anthropic.d.ts.map +1 -0
  9. memos/_js/adapters/anthropic.js +348 -0
  10. memos/_js/adapters/anthropic.js.map +1 -0
  11. memos/_js/adapters/base.d.ts +10 -0
  12. memos/_js/adapters/base.d.ts.map +1 -0
  13. memos/_js/adapters/base.js +2 -0
  14. memos/_js/adapters/base.js.map +1 -0
  15. memos/_js/adapters/openai.d.ts +264 -0
  16. memos/_js/adapters/openai.d.ts.map +1 -0
  17. memos/_js/adapters/openai.js +342 -0
  18. memos/_js/adapters/openai.js.map +1 -0
  19. memos/_js/apps/explorer.d.ts +244 -0
  20. memos/_js/apps/explorer.d.ts.map +1 -0
  21. memos/_js/apps/explorer.js +738 -0
  22. memos/_js/apps/explorer.js.map +1 -0
  23. memos/_js/citations.d.ts +65 -0
  24. memos/_js/citations.d.ts.map +1 -0
  25. memos/_js/citations.js +143 -0
  26. memos/_js/citations.js.map +1 -0
  27. memos/_js/cli-browse.d.ts +3 -0
  28. memos/_js/cli-browse.d.ts.map +1 -0
  29. memos/_js/cli-browse.js +129 -0
  30. memos/_js/cli-browse.js.map +1 -0
  31. memos/_js/cli-completion.d.ts +31 -0
  32. memos/_js/cli-completion.d.ts.map +1 -0
  33. memos/_js/cli-completion.js +340 -0
  34. memos/_js/cli-completion.js.map +1 -0
  35. memos/_js/cli-help.d.ts +18 -0
  36. memos/_js/cli-help.d.ts.map +1 -0
  37. memos/_js/cli-help.js +357 -0
  38. memos/_js/cli-help.js.map +1 -0
  39. memos/_js/cli.d.ts +28 -0
  40. memos/_js/cli.d.ts.map +1 -0
  41. memos/_js/cli.js +2880 -0
  42. memos/_js/cli.js.map +1 -0
  43. memos/_js/compression.d.ts +25 -0
  44. memos/_js/compression.d.ts.map +1 -0
  45. memos/_js/compression.js +319 -0
  46. memos/_js/compression.js.map +1 -0
  47. memos/_js/confidence-machine.d.ts +99 -0
  48. memos/_js/confidence-machine.d.ts.map +1 -0
  49. memos/_js/confidence-machine.js +222 -0
  50. memos/_js/confidence-machine.js.map +1 -0
  51. memos/_js/context-pack.d.ts +506 -0
  52. memos/_js/context-pack.d.ts.map +1 -0
  53. memos/_js/context-pack.js +1435 -0
  54. memos/_js/context-pack.js.map +1 -0
  55. memos/_js/contradictions.d.ts +160 -0
  56. memos/_js/contradictions.d.ts.map +1 -0
  57. memos/_js/contradictions.js +255 -0
  58. memos/_js/contradictions.js.map +1 -0
  59. memos/_js/dashboard.d.ts +30 -0
  60. memos/_js/dashboard.d.ts.map +1 -0
  61. memos/_js/dashboard.js +302 -0
  62. memos/_js/dashboard.js.map +1 -0
  63. memos/_js/ebbinghaus.d.ts +29 -0
  64. memos/_js/ebbinghaus.d.ts.map +1 -0
  65. memos/_js/ebbinghaus.js +32 -0
  66. memos/_js/ebbinghaus.js.map +1 -0
  67. memos/_js/embedding-queue.d.ts +190 -0
  68. memos/_js/embedding-queue.d.ts.map +1 -0
  69. memos/_js/embedding-queue.js +316 -0
  70. memos/_js/embedding-queue.js.map +1 -0
  71. memos/_js/embeddings.d.ts +187 -0
  72. memos/_js/embeddings.d.ts.map +1 -0
  73. memos/_js/embeddings.js +633 -0
  74. memos/_js/embeddings.js.map +1 -0
  75. memos/_js/entity-extraction.d.ts +54 -0
  76. memos/_js/entity-extraction.d.ts.map +1 -0
  77. memos/_js/entity-extraction.js +325 -0
  78. memos/_js/entity-extraction.js.map +1 -0
  79. memos/_js/entity-index.d.ts +93 -0
  80. memos/_js/entity-index.d.ts.map +1 -0
  81. memos/_js/entity-index.js +165 -0
  82. memos/_js/entity-index.js.map +1 -0
  83. memos/_js/event-memory.d.ts +147 -0
  84. memos/_js/event-memory.d.ts.map +1 -0
  85. memos/_js/event-memory.js +290 -0
  86. memos/_js/event-memory.js.map +1 -0
  87. memos/_js/external-import.d.ts +98 -0
  88. memos/_js/external-import.d.ts.map +1 -0
  89. memos/_js/external-import.js +669 -0
  90. memos/_js/external-import.js.map +1 -0
  91. memos/_js/fidelity.d.ts +367 -0
  92. memos/_js/fidelity.d.ts.map +1 -0
  93. memos/_js/fidelity.js +911 -0
  94. memos/_js/fidelity.js.map +1 -0
  95. memos/_js/graph-expansion.d.ts +119 -0
  96. memos/_js/graph-expansion.d.ts.map +1 -0
  97. memos/_js/graph-expansion.js +213 -0
  98. memos/_js/graph-expansion.js.map +1 -0
  99. memos/_js/graph-mermaid.d.ts +13 -0
  100. memos/_js/graph-mermaid.d.ts.map +1 -0
  101. memos/_js/graph-mermaid.js +32 -0
  102. memos/_js/graph-mermaid.js.map +1 -0
  103. memos/_js/graph.d.ts +170 -0
  104. memos/_js/graph.d.ts.map +1 -0
  105. memos/_js/graph.js +482 -0
  106. memos/_js/graph.js.map +1 -0
  107. memos/_js/harness.d.ts +63 -0
  108. memos/_js/harness.d.ts.map +1 -0
  109. memos/_js/harness.js +93 -0
  110. memos/_js/harness.js.map +1 -0
  111. memos/_js/importance.d.ts +118 -0
  112. memos/_js/importance.d.ts.map +1 -0
  113. memos/_js/importance.js +144 -0
  114. memos/_js/importance.js.map +1 -0
  115. memos/_js/index.d.ts +51 -0
  116. memos/_js/index.d.ts.map +1 -0
  117. memos/_js/index.js +53 -0
  118. memos/_js/index.js.map +1 -0
  119. memos/_js/mcp.d.ts +58 -0
  120. memos/_js/mcp.d.ts.map +1 -0
  121. memos/_js/mcp.js +1853 -0
  122. memos/_js/mcp.js.map +1 -0
  123. memos/_js/memory.d.ts +1762 -0
  124. memos/_js/memory.d.ts.map +1 -0
  125. memos/_js/memory.js +6283 -0
  126. memos/_js/memory.js.map +1 -0
  127. memos/_js/procedural.d.ts +74 -0
  128. memos/_js/procedural.d.ts.map +1 -0
  129. memos/_js/procedural.js +125 -0
  130. memos/_js/procedural.js.map +1 -0
  131. memos/_js/project-config.d.ts +68 -0
  132. memos/_js/project-config.d.ts.map +1 -0
  133. memos/_js/project-config.js +59 -0
  134. memos/_js/project-config.js.map +1 -0
  135. memos/_js/proof-of-forgetting.d.ts +57 -0
  136. memos/_js/proof-of-forgetting.d.ts.map +1 -0
  137. memos/_js/proof-of-forgetting.js +80 -0
  138. memos/_js/proof-of-forgetting.js.map +1 -0
  139. memos/_js/provenance.d.ts +122 -0
  140. memos/_js/provenance.d.ts.map +1 -0
  141. memos/_js/provenance.js +182 -0
  142. memos/_js/provenance.js.map +1 -0
  143. memos/_js/quarantine-commands.d.ts +23 -0
  144. memos/_js/quarantine-commands.d.ts.map +1 -0
  145. memos/_js/quarantine-commands.js +42 -0
  146. memos/_js/quarantine-commands.js.map +1 -0
  147. memos/_js/quarantine.d.ts +120 -0
  148. memos/_js/quarantine.d.ts.map +1 -0
  149. memos/_js/quarantine.js +873 -0
  150. memos/_js/quarantine.js.map +1 -0
  151. memos/_js/redact.d.ts +12 -0
  152. memos/_js/redact.d.ts.map +1 -0
  153. memos/_js/redact.js +26 -0
  154. memos/_js/redact.js.map +1 -0
  155. memos/_js/repl.d.ts +57 -0
  156. memos/_js/repl.d.ts.map +1 -0
  157. memos/_js/repl.js +295 -0
  158. memos/_js/repl.js.map +1 -0
  159. memos/_js/rerank-local.d.ts +61 -0
  160. memos/_js/rerank-local.d.ts.map +1 -0
  161. memos/_js/rerank-local.js +210 -0
  162. memos/_js/rerank-local.js.map +1 -0
  163. memos/_js/retain-filter.d.ts +98 -0
  164. memos/_js/retain-filter.d.ts.map +1 -0
  165. memos/_js/retain-filter.js +232 -0
  166. memos/_js/retain-filter.js.map +1 -0
  167. memos/_js/retrieval.d.ts +265 -0
  168. memos/_js/retrieval.d.ts.map +1 -0
  169. memos/_js/retrieval.js +1018 -0
  170. memos/_js/retrieval.js.map +1 -0
  171. memos/_js/revert.d.ts +77 -0
  172. memos/_js/revert.d.ts.map +1 -0
  173. memos/_js/revert.js +252 -0
  174. memos/_js/revert.js.map +1 -0
  175. memos/_js/scope.d.ts +30 -0
  176. memos/_js/scope.d.ts.map +1 -0
  177. memos/_js/scope.js +71 -0
  178. memos/_js/scope.js.map +1 -0
  179. memos/_js/semantic-screen.d.ts +152 -0
  180. memos/_js/semantic-screen.d.ts.map +1 -0
  181. memos/_js/semantic-screen.js +290 -0
  182. memos/_js/semantic-screen.js.map +1 -0
  183. memos/_js/session-hooks.d.ts +127 -0
  184. memos/_js/session-hooks.d.ts.map +1 -0
  185. memos/_js/session-hooks.js +482 -0
  186. memos/_js/session-hooks.js.map +1 -0
  187. memos/_js/storage/sqlite.d.ts +427 -0
  188. memos/_js/storage/sqlite.d.ts.map +1 -0
  189. memos/_js/storage/sqlite.js +2428 -0
  190. memos/_js/storage/sqlite.js.map +1 -0
  191. memos/_js/sync.d.ts +213 -0
  192. memos/_js/sync.d.ts.map +1 -0
  193. memos/_js/sync.js +389 -0
  194. memos/_js/sync.js.map +1 -0
  195. memos/_js/tamper-log.d.ts +98 -0
  196. memos/_js/tamper-log.d.ts.map +1 -0
  197. memos/_js/tamper-log.js +327 -0
  198. memos/_js/tamper-log.js.map +1 -0
  199. memos/_js/temporal.d.ts +92 -0
  200. memos/_js/temporal.d.ts.map +1 -0
  201. memos/_js/temporal.js +536 -0
  202. memos/_js/temporal.js.map +1 -0
  203. memos/_js/time-travel.d.ts +38 -0
  204. memos/_js/time-travel.d.ts.map +1 -0
  205. memos/_js/time-travel.js +46 -0
  206. memos/_js/time-travel.js.map +1 -0
  207. memos/_js/timestamp-format.d.ts +18 -0
  208. memos/_js/timestamp-format.d.ts.map +1 -0
  209. memos/_js/timestamp-format.js +52 -0
  210. memos/_js/timestamp-format.js.map +1 -0
  211. memos/_js/triple-extraction.d.ts +31 -0
  212. memos/_js/triple-extraction.d.ts.map +1 -0
  213. memos/_js/triple-extraction.js +116 -0
  214. memos/_js/triple-extraction.js.map +1 -0
  215. memos/_js/types.d.ts +2474 -0
  216. memos/_js/types.d.ts.map +1 -0
  217. memos/_js/types.js +20 -0
  218. memos/_js/types.js.map +1 -0
  219. memos/_js/updater.d.ts +95 -0
  220. memos/_js/updater.d.ts.map +1 -0
  221. memos/_js/updater.js +268 -0
  222. memos/_js/updater.js.map +1 -0
  223. memos/_js/version.d.ts +17 -0
  224. memos/_js/version.d.ts.map +1 -0
  225. memos/_js/version.js +34 -0
  226. memos/_js/version.js.map +1 -0
  227. memos/_js/vision/clip-query-cache.d.ts +58 -0
  228. memos/_js/vision/clip-query-cache.d.ts.map +1 -0
  229. memos/_js/vision/clip-query-cache.js +79 -0
  230. memos/_js/vision/clip-query-cache.js.map +1 -0
  231. memos/_js/vision/clip.d.ts +113 -0
  232. memos/_js/vision/clip.d.ts.map +1 -0
  233. memos/_js/vision/clip.js +224 -0
  234. memos/_js/vision/clip.js.map +1 -0
  235. memos/_js/vision/fake-clip.d.ts +55 -0
  236. memos/_js/vision/fake-clip.d.ts.map +1 -0
  237. memos/_js/vision/fake-clip.js +122 -0
  238. memos/_js/vision/fake-clip.js.map +1 -0
  239. memos/_js/vision/index.d.ts +15 -0
  240. memos/_js/vision/index.d.ts.map +1 -0
  241. memos/_js/vision/index.js +13 -0
  242. memos/_js/vision/index.js.map +1 -0
  243. memos/_js/vision/store.d.ts +137 -0
  244. memos/_js/vision/store.d.ts.map +1 -0
  245. memos/_js/vision/store.js +383 -0
  246. memos/_js/vision/store.js.map +1 -0
  247. memos/adapters/__init__.py +0 -0
  248. memos/adapters/crewai.py +385 -0
  249. memos/adapters/langchain.py +301 -0
  250. memos/adapters/ollama.py +396 -0
  251. memos/server/__init__.py +0 -0
  252. memos/server/main.py +547 -0
  253. memos/server/routes.py +360 -0
@@ -0,0 +1,348 @@
1
+ /**
2
+ * MemOS Anthropic Adapter — first-class memory integration for the
3
+ * Anthropic SDK (Claude).
4
+ *
5
+ * Wraps a MemOS instance and exposes helpers that map cleanly onto the
6
+ * Anthropic Messages API: a memory-backed tool definition, system-prompt
7
+ * context injection, automatic fact extraction from conversations, and
8
+ * simple store/forget helpers.
9
+ *
10
+ * The adapter has **zero hard dependencies** on the `@anthropic-ai/sdk`
11
+ * package. Every exported message/tool/content-block shape is structurally
12
+ * compatible with the corresponding SDK types, so they can be passed
13
+ * straight into `client.messages.create(...)` with no glue layer. Install
14
+ * `@anthropic-ai/sdk` only if you want to call the model; the adapter
15
+ * itself only needs MemOS.
16
+ *
17
+ * @example
18
+ * ```ts
19
+ * import Anthropic from "@anthropic-ai/sdk";
20
+ * import { createAnthropicMemory } from "@mem-os/sdk/anthropic";
21
+ *
22
+ * const { plugin } = await createAnthropicMemory({ dbPath: "./my-app.db" });
23
+ * const client = new Anthropic();
24
+ *
25
+ * const message = await client.messages.create({
26
+ * model: "claude-3-5-sonnet-20241022",
27
+ * max_tokens: 1024,
28
+ * system: "You are a helpful assistant.",
29
+ * messages: [{ role: "user", content: "What theme do I like?" }],
30
+ * tools: [plugin.memoryTool],
31
+ * });
32
+ * ```
33
+ *
34
+ * @module @memos/adapters/anthropic
35
+ */
36
+ import { MemOS } from "../index.js";
37
+ // ---------------------------------------------------------------------------
38
+ // Plugin
39
+ // ---------------------------------------------------------------------------
40
+ /**
41
+ * Anthropic SDK memory plugin backed by MemOS.
42
+ *
43
+ * Wrap an existing MemOS instance, or use {@link createAnthropicMemory} to
44
+ * construct both in one call. The plugin does not call the Anthropic API
45
+ * itself — it prepares memories (as tools, tool-result blocks, and
46
+ * system-prompt strings) for you to feed into your own
47
+ * `client.messages.create` calls.
48
+ */
49
+ export class MemOSAnthropicPlugin {
50
+ /** The wrapped MemOS instance. */
51
+ memos;
52
+ opts;
53
+ /**
54
+ * Create a new Anthropic memory plugin.
55
+ *
56
+ * @param memos - An initialised MemOS instance.
57
+ * @param opts - Plugin options. All fields optional with sensible defaults.
58
+ */
59
+ constructor(memos, opts = {}) {
60
+ this.memos = memos;
61
+ this.opts = {
62
+ maxContextMemories: opts.maxContextMemories ?? 5,
63
+ autoExtractFacts: opts.autoExtractFacts ?? true,
64
+ minMessageLength: opts.minMessageLength ?? 15,
65
+ source: opts.source ?? "user_input",
66
+ minConfidence: opts.minConfidence ?? 0.6,
67
+ namespace: opts.namespace ?? "default",
68
+ };
69
+ }
70
+ /**
71
+ * Anthropic tool definition that lets the model search the user's memory.
72
+ * Pass it via the `tools` parameter of `client.messages.create`.
73
+ *
74
+ * When the model invokes it (a `tool_use` content block), call
75
+ * {@link searchMemories} and return the `tool_result` block (built via
76
+ * the result's `toToolResult(toolUseId)`) as a `user` message.
77
+ */
78
+ get memoryTool() {
79
+ return {
80
+ name: "search_memories",
81
+ description: "Search the user's persistent MemOS memory for relevant facts, " +
82
+ "preferences, and context. Call this before answering personal or " +
83
+ "preference questions, or when prior context seems relevant.",
84
+ input_schema: {
85
+ type: "object",
86
+ properties: {
87
+ query: {
88
+ type: "string",
89
+ description: "Natural-language search query.",
90
+ },
91
+ limit: {
92
+ type: "number",
93
+ description: "Maximum number of memories to return.",
94
+ default: 5,
95
+ },
96
+ },
97
+ required: ["query"],
98
+ },
99
+ };
100
+ }
101
+ /**
102
+ * Extract facts from a conversation and store them in MemOS.
103
+ *
104
+ * Runs MemOS' local rule-based fact extractor over the conversation,
105
+ * persisting any candidate facts whose confidence meets the configured
106
+ * `minConfidence` threshold. Near-duplicates are skipped automatically
107
+ * when embeddings are available.
108
+ *
109
+ * @param conversation - The messages to extract facts from.
110
+ * @returns The extraction result (candidate facts, stored ids, dup count).
111
+ */
112
+ async addMessages(conversation) {
113
+ const candidates = conversation.filter((m) => m.content.trim().length >= this.opts.minMessageLength);
114
+ if (candidates.length === 0) {
115
+ return { facts: [], storedIds: [], duplicates: 0 };
116
+ }
117
+ return this.memos.extractFacts(candidates, {
118
+ autoStore: true,
119
+ minConfidence: this.opts.minConfidence,
120
+ namespace: this.opts.namespace,
121
+ dedupe: true,
122
+ });
123
+ }
124
+ /**
125
+ * Search memories and format the results for Anthropic tool use.
126
+ *
127
+ * @param query - Natural-language search query.
128
+ * @param opts - Search options (limit, type, namespace).
129
+ * @returns An object containing the ranked memory entries, a JSON string,
130
+ * and a `toToolResult(toolUseId)` factory that builds a `tool_result`
131
+ * content block ready to send back as a `user` message.
132
+ */
133
+ async searchMemories(query, opts = {}) {
134
+ const filter = {
135
+ query,
136
+ limit: opts.limit ?? this.opts.maxContextMemories,
137
+ };
138
+ if (opts.type)
139
+ filter.type = opts.type;
140
+ if (opts.namespace)
141
+ filter.namespace = opts.namespace;
142
+ const results = await this.memos.search(filter);
143
+ const memories = results.map((r) => this.toEntry(r));
144
+ const content = memories.length > 0
145
+ ? JSON.stringify(memories, null, 2)
146
+ : "No relevant memories found.";
147
+ return {
148
+ query,
149
+ memories,
150
+ content,
151
+ toToolResult: (toolUseId) => ({
152
+ type: "tool_result",
153
+ tool_use_id: toolUseId,
154
+ content,
155
+ }),
156
+ };
157
+ }
158
+ /**
159
+ * Build a system-prompt string of relevant memories for injection.
160
+ *
161
+ * Optionally extracts & stores facts from the recent `messages` first,
162
+ * then searches MemOS using the most recent user message and returns the
163
+ * matches as a formatted block ready to pass as the top-level `system`
164
+ * parameter of `client.messages.create`.
165
+ *
166
+ * @param messages - Recent conversation messages.
167
+ * @param opts - Context options (limit, whether to extract).
168
+ * @returns A memory-context string, or `""` if nothing relevant was found.
169
+ */
170
+ async getMemoryContext(messages, opts = {}) {
171
+ const shouldExtract = opts.extract ?? this.opts.autoExtractFacts;
172
+ if (shouldExtract && messages.length > 0) {
173
+ await this.addMessages(messages);
174
+ }
175
+ const lastUser = [...messages].reverse().find((m) => m.role === "user");
176
+ const query = lastUser?.content.trim() ?? "";
177
+ if (!query)
178
+ return "";
179
+ const results = await this.memos.search({
180
+ query,
181
+ limit: opts.limit ?? this.opts.maxContextMemories,
182
+ });
183
+ if (results.length === 0)
184
+ return "";
185
+ const lines = ["Relevant memories from prior conversations:"];
186
+ results.forEach((m, i) => {
187
+ lines.push(` ${i + 1}. [${m.node.type}] ${m.node.content}`);
188
+ });
189
+ return lines.join("\n");
190
+ }
191
+ /**
192
+ * Manually store a memory.
193
+ *
194
+ * @param content - Text to remember.
195
+ * @param opts - Additional memory parameters (type, tags, importance…).
196
+ * @returns The created memory node.
197
+ */
198
+ async remember(content, opts = {}) {
199
+ const { node } = await this.memos.store(content, {
200
+ ...opts,
201
+ source: opts.source ?? this.opts.source,
202
+ namespace: opts.namespace ?? this.opts.namespace,
203
+ });
204
+ return node;
205
+ }
206
+ /**
207
+ * Search for relevant memories.
208
+ *
209
+ * @param query - Search query.
210
+ * @param limit - Maximum number of results. @default 5
211
+ * @returns Scored memory nodes.
212
+ */
213
+ async recall(query, limit = 5) {
214
+ return this.memos.search({ query, limit });
215
+ }
216
+ /**
217
+ * Permanently forget a memory.
218
+ *
219
+ * @param memoryId - ID of the memory to delete.
220
+ * @returns `true` if the memory existed and was deleted.
221
+ */
222
+ async forget(memoryId) {
223
+ return this.memos.forget(memoryId);
224
+ }
225
+ /**
226
+ * Remove all memories and edges from the underlying MemOS instance.
227
+ *
228
+ * This is destructive and cannot be undone.
229
+ */
230
+ async clearMemories() {
231
+ await this.memos.clear();
232
+ }
233
+ /**
234
+ * Return the total number of stored memories.
235
+ *
236
+ * @returns The current memory count.
237
+ */
238
+ getMemoryCount() {
239
+ return this.memos.count;
240
+ }
241
+ /** Convert a scored memory into a JSON-friendly entry. */
242
+ toEntry(scored) {
243
+ return {
244
+ id: scored.node.id,
245
+ content: scored.node.content,
246
+ summary: scored.node.summary,
247
+ type: scored.node.type,
248
+ score: scored.score,
249
+ tags: scored.node.tags,
250
+ trustScore: scored.node.trustScore,
251
+ };
252
+ }
253
+ }
254
+ // ---------------------------------------------------------------------------
255
+ // Convenience constructor
256
+ // ---------------------------------------------------------------------------
257
+ /**
258
+ * Create a MemOS instance and an Anthropic memory plugin in one call.
259
+ *
260
+ * The MemOS instance is created with `config`, initialised, and wrapped in a
261
+ * {@link MemOSAnthropicPlugin}. Plugin-level options go under `config.plugin`.
262
+ *
263
+ * @param config - MemOS config plus optional `plugin` options.
264
+ * @returns The initialised `memos` instance and bound `plugin`.
265
+ *
266
+ * @example
267
+ * ```ts
268
+ * const { memos, plugin } = await createAnthropicMemory({
269
+ * dbPath: "./my-app.db",
270
+ * plugin: { maxContextMemories: 8 },
271
+ * });
272
+ * ```
273
+ */
274
+ export async function createAnthropicMemory(config = {}) {
275
+ const { plugin: pluginOpts, ...memosConfig } = config;
276
+ const memos = new MemOS(memosConfig);
277
+ await memos.init();
278
+ const plugin = new MemOSAnthropicPlugin(memos, pluginOpts);
279
+ return { memos, plugin };
280
+ }
281
+ // ---------------------------------------------------------------------------
282
+ // Usage example
283
+ // ---------------------------------------------------------------------------
284
+ /*
285
+ * End-to-end example using the official `@anthropic-ai/sdk`.
286
+ *
287
+ * npm install @anthropic-ai/sdk
288
+ *
289
+ * import Anthropic from "@anthropic-ai/sdk";
290
+ * import { createAnthropicMemory } from "@mem-os/sdk/anthropic";
291
+ *
292
+ * // 1. Boot MemOS + the plugin.
293
+ * const { memos, plugin } = await createAnthropicMemory({
294
+ * dbPath: "./my-app.db",
295
+ * plugin: { maxContextMemories: 6 },
296
+ * });
297
+ *
298
+ * const client = new Anthropic();
299
+ *
300
+ * // 2. Teach it something. addMessages() extracts & stores facts.
301
+ * await plugin.addMessages([
302
+ * { role: "user", content: "I prefer dark mode in all my apps." },
303
+ * { role: "assistant", content: "Got it — dark mode it is." },
304
+ * ]);
305
+ *
306
+ * // 3a. Context-injection style: fold memories into the system prompt.
307
+ * // Anthropic takes `system` as a top-level param, not a message role.
308
+ * const systemCtx = await plugin.getMemoryContext([
309
+ * { role: "user", content: "What theme do I like?" },
310
+ * ]);
311
+ * const a = await client.messages.create({
312
+ * model: "claude-3-5-sonnet-20241022",
313
+ * max_tokens: 1024,
314
+ * system: `You are a helpful assistant.\n\n${systemCtx}`,
315
+ * messages: [{ role: "user", content: "What theme do I like?" }],
316
+ * });
317
+ * console.log(a.content[0]); // → "dark mode"
318
+ *
319
+ * // 3b. Tool style: let the model call search_memories itself.
320
+ * const tools = [plugin.memoryTool];
321
+ * const res = await client.messages.create({
322
+ * model: "claude-3-5-sonnet-20241022",
323
+ * max_tokens: 1024,
324
+ * messages: [{ role: "user", content: "What theme do I like?" }],
325
+ * tools,
326
+ * });
327
+ * const toolUse = res.content.find((b) => b.type === "tool_use");
328
+ * if (toolUse && toolUse.name === "search_memories") {
329
+ * const { query } = toolUse.input as { query: string };
330
+ * const { toToolResult } = await plugin.searchMemories(query);
331
+ * const followUp = await client.messages.create({
332
+ * model: "claude-3-5-sonnet-20241022",
333
+ * max_tokens: 1024,
334
+ * messages: [
335
+ * { role: "user", content: "What theme do I like?" },
336
+ * { role: "assistant", content: res.content },
337
+ * { role: "user", content: [toToolResult(toolUse.id)] },
338
+ * ],
339
+ * tools,
340
+ * });
341
+ * console.log(followUp.content[0]); // → "dark mode"
342
+ * }
343
+ *
344
+ * // 4. Housekeeping helpers.
345
+ * console.log(plugin.getMemoryCount()); // number of stored memories
346
+ * await plugin.clearMemories(); // wipe everything
347
+ */
348
+ //# sourceMappingURL=anthropic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/adapters/anthropic.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Storage adapter base interface.
3
+ *
4
+ * Re-exports the {@link StorageAdapter} contract from `types.ts` so that
5
+ * backend implementations can import from `@memos/adapters/base`.
6
+ *
7
+ * @module @memos/adapters/base
8
+ */
9
+ export type { StorageAdapter } from "../types.js";
10
+ //# sourceMappingURL=base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/adapters/base.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/adapters/base.ts"],"names":[],"mappings":""}
@@ -0,0 +1,264 @@
1
+ /**
2
+ * MemOS OpenAI Adapter — first-class memory integration for the OpenAI SDK.
3
+ *
4
+ * Wraps a MemOS instance and exposes helpers that map cleanly onto the
5
+ * OpenAI Chat Completions API: a memory-backed function tool, system-prompt
6
+ * context injection, automatic fact extraction from conversations, and
7
+ * simple store/forget helpers.
8
+ *
9
+ * The adapter has **zero hard dependencies** on the `openai` package. Every
10
+ * exported message/tool shape is structurally compatible with the
11
+ * corresponding `openai` types (`ChatCompletionMessageParam`,
12
+ * `ChatCompletionTool`, `ChatCompletionToolMessageParam`), so they can be
13
+ * passed straight into `openai.chat.completions.create(...)` with no glue
14
+ * layer. Install `openai` only if you want to call the model; the adapter
15
+ * itself only needs MemOS.
16
+ *
17
+ * @example
18
+ * ```ts
19
+ * import OpenAI from "openai";
20
+ * import { createOpenAIMemory } from "@mem-os/sdk/openai";
21
+ *
22
+ * const { plugin } = await createOpenAIMemory({ dbPath: "./my-app.db" });
23
+ * const openai = new OpenAI();
24
+ *
25
+ * const completion = await openai.chat.completions.create({
26
+ * model: "gpt-4o",
27
+ * messages: [{ role: "user", content: "What theme do I like?" }],
28
+ * tools: [plugin.memoryTool],
29
+ * });
30
+ * ```
31
+ *
32
+ * @module @memos/adapters/openai
33
+ */
34
+ import { MemOS } from "../index.js";
35
+ import type { ConversationMessage, CreateMemoryInput, ExtractFactsResult, MemoryNode, MemorySource, MemoryType, MemOSConfig, ScoredMemory } from "../index.js";
36
+ /** Chat message role, compatible with the OpenAI Chat Completions API. */
37
+ export type OpenAIRole = "system" | "user" | "assistant" | "tool";
38
+ /**
39
+ * Minimal OpenAI-compatible chat message.
40
+ *
41
+ * Structurally compatible with `openai.ChatCompletionMessageParam` for the
42
+ * plain-text cases this adapter produces and consumes.
43
+ */
44
+ export interface OpenAIChatMessage {
45
+ role: OpenAIRole;
46
+ content: string;
47
+ name?: string;
48
+ tool_call_id?: string;
49
+ }
50
+ /**
51
+ * A `tool`-role message returned to the model after a tool call.
52
+ * Compatible with `openai.ChatCompletionToolMessageParam`.
53
+ *
54
+ * Note: `tool_call_id` is left optional here; set it to the id of the
55
+ * `tool_call` you are responding to before sending.
56
+ */
57
+ export interface OpenAIToolMessage {
58
+ role: "tool";
59
+ content: string;
60
+ tool_call_id?: string;
61
+ }
62
+ /**
63
+ * A function-tool definition registrable via the `tools` parameter of
64
+ * `openai.chat.completions.create`. Compatible with
65
+ * `openai.ChatCompletionTool`.
66
+ */
67
+ export interface OpenAIToolDefinition {
68
+ type: "function";
69
+ function: {
70
+ name: string;
71
+ description: string;
72
+ /** A JSON Schema object describing the function parameters. */
73
+ parameters: Record<string, unknown>;
74
+ };
75
+ }
76
+ /**
77
+ * A single memory rendered as a plain JSON object, suitable for returning
78
+ * as a tool result.
79
+ */
80
+ export interface OpenAIMemoryEntry {
81
+ id: string;
82
+ content: string;
83
+ summary: string;
84
+ type: MemoryType;
85
+ /** Relevance score from the search. */
86
+ score: number;
87
+ tags: string[];
88
+ trustScore: number;
89
+ }
90
+ /** Options for {@link MemOSOpenAIPlugin.searchMemories}. */
91
+ export interface OpenAISearchMemoriesOptions {
92
+ /** Maximum number of memories to return. @default 5 */
93
+ limit?: number;
94
+ /** Restrict results to a memory type. */
95
+ type?: MemoryType;
96
+ /** Restrict results to a namespace. */
97
+ namespace?: string;
98
+ }
99
+ /** Options for {@link MemOSOpenAIPlugin.getMemoryContext}. */
100
+ export interface OpenAIGetMemoryContextOptions {
101
+ /** Maximum memories to inject. @default 5 */
102
+ limit?: number;
103
+ /** Whether to extract & store facts from `messages` first. @default true */
104
+ extract?: boolean;
105
+ }
106
+ /** Result returned by {@link MemOSOpenAIPlugin.searchMemories}. */
107
+ export interface OpenAIMemorySearchResult {
108
+ /** The query that was searched. */
109
+ query: string;
110
+ /** Ranked memory entries. */
111
+ memories: OpenAIMemoryEntry[];
112
+ /** A ready-to-send `tool` message containing the JSON-encoded memories. */
113
+ toolMessage: OpenAIToolMessage;
114
+ }
115
+ /** Options for {@link MemOSOpenAIPlugin}. */
116
+ export interface MemOSOpenAIPluginOptions {
117
+ /** Maximum memories to inject into context / return from a search. @default 5 */
118
+ maxContextMemories?: number;
119
+ /**
120
+ * Automatically extract & store facts when `addMessages` or
121
+ * `getMemoryContext` are called. @default true
122
+ */
123
+ autoExtractFacts?: boolean;
124
+ /** Minimum message length (chars) to consider for fact extraction. @default 15 */
125
+ minMessageLength?: number;
126
+ /** Provenance source tag for memories created by this adapter. @default "user_input" */
127
+ source?: MemorySource;
128
+ /** Minimum confidence for an extracted fact to be stored. @default 0.6 */
129
+ minConfidence?: number;
130
+ /** Namespace to store/search memories in (experimental). @default "default" */
131
+ namespace?: string;
132
+ }
133
+ /** Configuration for {@link createOpenAIMemory}. */
134
+ export interface OpenAIMemoryConfig extends MemOSConfig {
135
+ /** Plugin-level options. */
136
+ plugin?: MemOSOpenAIPluginOptions;
137
+ }
138
+ /** Result of {@link createOpenAIMemory}. */
139
+ export interface CreateOpenAIMemoryResult {
140
+ /** The initialised MemOS instance. */
141
+ memos: MemOS;
142
+ /** The OpenAI memory plugin bound to that instance. */
143
+ plugin: MemOSOpenAIPlugin;
144
+ }
145
+ /**
146
+ * OpenAI SDK memory plugin backed by MemOS.
147
+ *
148
+ * Wrap an existing MemOS instance, or use {@link createOpenAIMemory} to
149
+ * construct both in one call. The plugin does not call the OpenAI API
150
+ * itself — it prepares memories (as tools, tool messages, and system-prompt
151
+ * strings) for you to feed into your own `openai.chat.completions` calls.
152
+ */
153
+ export declare class MemOSOpenAIPlugin {
154
+ /** The wrapped MemOS instance. */
155
+ readonly memos: MemOS;
156
+ private readonly opts;
157
+ /**
158
+ * Create a new OpenAI memory plugin.
159
+ *
160
+ * @param memos - An initialised MemOS instance.
161
+ * @param opts - Plugin options. All fields optional with sensible defaults.
162
+ */
163
+ constructor(memos: MemOS, opts?: MemOSOpenAIPluginOptions);
164
+ /**
165
+ * OpenAI function-tool definition that lets the model search the user's
166
+ * memory. Pass it via the `tools` parameter of
167
+ * `openai.chat.completions.create`.
168
+ *
169
+ * When the model invokes it, call {@link searchMemories} and return the
170
+ * `toolMessage` field (after setting `tool_call_id`) as a tool message.
171
+ */
172
+ get memoryTool(): OpenAIToolDefinition;
173
+ /**
174
+ * Extract facts from a conversation and store them in MemOS.
175
+ *
176
+ * Runs MemOS' local rule-based fact extractor over the conversation,
177
+ * persisting any candidate facts whose confidence meets the configured
178
+ * `minConfidence` threshold. Near-duplicates are skipped automatically
179
+ * when embeddings are available.
180
+ *
181
+ * @param conversation - The messages to extract facts from.
182
+ * @returns The extraction result (candidate facts, stored ids, dup count).
183
+ */
184
+ addMessages(conversation: ConversationMessage[]): Promise<ExtractFactsResult>;
185
+ /**
186
+ * Search memories and format the results for OpenAI tool use.
187
+ *
188
+ * @param query - Natural-language search query.
189
+ * @param opts - Search options (limit, type, namespace).
190
+ * @returns An object containing the ranked memory entries and a
191
+ * ready-to-send `tool` message (JSON-encoded memories). Set
192
+ * `toolMessage.tool_call_id` to the model's `tool_call` id before
193
+ * returning it.
194
+ */
195
+ searchMemories(query: string, opts?: OpenAISearchMemoriesOptions): Promise<OpenAIMemorySearchResult>;
196
+ /**
197
+ * Build a system-prompt string of relevant memories for injection.
198
+ *
199
+ * Optionally extracts & stores facts from the recent `messages` first,
200
+ * then searches MemOS using the most recent user message and returns the
201
+ * matches as a formatted block ready to prepend to the `system` prompt.
202
+ *
203
+ * @param messages - Recent conversation messages.
204
+ * @param opts - Context options (limit, whether to extract).
205
+ * @returns A memory-context string, or `""` if nothing relevant was found.
206
+ */
207
+ getMemoryContext(messages: ConversationMessage[], opts?: OpenAIGetMemoryContextOptions): Promise<string>;
208
+ /**
209
+ * Manually store a memory.
210
+ *
211
+ * @param content - Text to remember.
212
+ * @param opts - Additional memory parameters (type, tags, importance…).
213
+ * @returns The created memory node.
214
+ */
215
+ remember(content: string, opts?: Omit<CreateMemoryInput, "content">): Promise<MemoryNode>;
216
+ /**
217
+ * Search for relevant memories.
218
+ *
219
+ * @param query - Search query.
220
+ * @param limit - Maximum number of results. @default 5
221
+ * @returns Scored memory nodes.
222
+ */
223
+ recall(query: string, limit?: number): Promise<ScoredMemory[]>;
224
+ /**
225
+ * Permanently forget a memory.
226
+ *
227
+ * @param memoryId - ID of the memory to delete.
228
+ * @returns `true` if the memory existed and was deleted.
229
+ */
230
+ forget(memoryId: string): Promise<boolean>;
231
+ /**
232
+ * Remove all memories and edges from the underlying MemOS instance.
233
+ *
234
+ * This is destructive and cannot be undone.
235
+ */
236
+ clearMemories(): Promise<void>;
237
+ /**
238
+ * Return the total number of stored memories.
239
+ *
240
+ * @returns The current memory count.
241
+ */
242
+ getMemoryCount(): number;
243
+ /** Convert a scored memory into a JSON-friendly entry. */
244
+ private toEntry;
245
+ }
246
+ /**
247
+ * Create a MemOS instance and an OpenAI memory plugin in one call.
248
+ *
249
+ * The MemOS instance is created with `config`, initialised, and wrapped in a
250
+ * {@link MemOSOpenAIPlugin}. Plugin-level options go under `config.plugin`.
251
+ *
252
+ * @param config - MemOS config plus optional `plugin` options.
253
+ * @returns The initialised `memos` instance and bound `plugin`.
254
+ *
255
+ * @example
256
+ * ```ts
257
+ * const { memos, plugin } = await createOpenAIMemory({
258
+ * dbPath: "./my-app.db",
259
+ * plugin: { maxContextMemories: 8 },
260
+ * });
261
+ * ```
262
+ */
263
+ export declare function createOpenAIMemory(config?: OpenAIMemoryConfig): Promise<CreateOpenAIMemoryResult>;
264
+ //# sourceMappingURL=openai.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/adapters/openai.ts"],"names":[],"mappings":"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"}