@amaster.ai/pi-memory-mem0 0.1.4 → 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +19 -16
- package/dist/dedup.d.ts +9 -0
- package/dist/dedup.d.ts.map +1 -1
- package/dist/dedup.js +3 -64
- package/dist/dedup.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -14
- package/dist/index.js.map +1 -1
- package/dist/provider.d.ts +20 -26
- package/dist/provider.d.ts.map +1 -1
- package/dist/provider.js +121 -139
- package/dist/provider.js.map +1 -1
- package/dist/types.d.ts +7 -2
- package/dist/types.d.ts.map +1 -1
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -15,20 +15,21 @@ After each conversation turn, user + assistant messages are automatically sent t
|
|
|
15
15
|
| Mode | Vector Store | Persistence | Dependencies | Use Case |
|
|
16
16
|
|------|-------------|-------------|--------------|----------|
|
|
17
17
|
| `platform` | Mem0 Cloud | Cloud-managed | `MEM0_API_KEY` | Quick start, multi-device sync |
|
|
18
|
-
| `open-source` |
|
|
18
|
+
| `open-source` | Mem0 OSS vector store | Vector-store managed | LLM + Embedding API | Data privacy, no Mem0 Cloud |
|
|
19
19
|
|
|
20
20
|
## Architecture (Open-Source Mode)
|
|
21
21
|
|
|
22
22
|
```
|
|
23
|
-
User ←→ Agent ←→ Mem0 Memory
|
|
23
|
+
User ←→ Agent ←→ Mem0 OSS Memory
|
|
24
24
|
↕
|
|
25
|
-
|
|
25
|
+
Mem0 OSS Vector Store (source of truth)
|
|
26
26
|
```
|
|
27
27
|
|
|
28
|
-
- **Vector search**: `mem0ai` OSS `MemoryVectorStore`
|
|
28
|
+
- **Vector search**: `mem0ai` OSS `MemoryVectorStore`. Despite the provider name `memory`, it is backed by SQLite; `dbPath` selects an in-process SQLite database or a SQLite file.
|
|
29
29
|
- **LLM extraction**: Configured provider extracts facts from conversations
|
|
30
|
-
- **Persistence**:
|
|
30
|
+
- **Persistence**: The default `dbPath` is `<home>/memories/mem0-vectors.db`, so Mem0 writes vectors and payloads directly to a durable SQLite file. No second snapshot is maintained.
|
|
31
31
|
- **Provider mapping**: Custom providers are automatically mapped to mem0-compatible providers (e.g. `openai`) via the pi model registry's `api` field.
|
|
32
|
+
- **Observation date**: `add()` accepts an optional `observedAt` (Date or string). In OSS mode it grounds mem0's extraction prompt so relative time references ("yesterday", "last week") resolve against the conversation's date rather than the system clock — important when ingesting historical conversations. Omit it and mem0 falls back to the current date (correct for live turns).
|
|
32
33
|
|
|
33
34
|
## Quick Start
|
|
34
35
|
|
|
@@ -128,7 +129,7 @@ For production workloads that need a dedicated vector database:
|
|
|
128
129
|
|
|
129
130
|
Supported vector store providers: `memory` (default), `qdrant`, `redis`, `pgvector`, `supabase`.
|
|
130
131
|
|
|
131
|
-
|
|
132
|
+
The configured vector store always owns persistence. To request an intentionally ephemeral SQLite database, set the `memory` provider's `config.dbPath` to `":memory:"`; no snapshot fallback is created.
|
|
132
133
|
|
|
133
134
|
## Configuration Reference
|
|
134
135
|
|
|
@@ -142,17 +143,19 @@ When using an external vector store, the SQLite snapshot is not needed (the vect
|
|
|
142
143
|
| `useRegistryKeys` | boolean | `true` | Whether OSS mode resolves keys from pi registry |
|
|
143
144
|
| `oss.llm` | object | OpenAI gpt-4.1-nano | OSS extraction model |
|
|
144
145
|
| `oss.embedder` | object | OpenAI text-embedding-3-small | OSS embedding model |
|
|
145
|
-
| `oss.vectorStore` | object | `memory`
|
|
146
|
-
| `oss.
|
|
146
|
+
| `oss.vectorStore` | object | `memory` at `<home>/memories/mem0-vectors.db` | Custom vector store config |
|
|
147
|
+
| `oss.historyStore` | object | SQLite at `<home>/memories/mem0-history.db` | Custom mem0 history store config |
|
|
148
|
+
| `oss.historyDbPath` | string | `<home>/memories/mem0-history.db` | Shortcut for SQLite history DB path |
|
|
147
149
|
| `oss.disableHistory` | boolean | `false` | Disable mem0 operation history |
|
|
148
150
|
|
|
149
151
|
## Data Storage
|
|
150
152
|
|
|
151
|
-
| Mode | Vector Data |
|
|
152
|
-
|
|
153
|
-
| Platform | Mem0 Cloud |
|
|
154
|
-
| Open-Source (default) |
|
|
155
|
-
| Open-Source (
|
|
153
|
+
| Mode | Vector Data | History |
|
|
154
|
+
|------|-------------|---------|
|
|
155
|
+
| Platform | Mem0 Cloud | Cloud-managed |
|
|
156
|
+
| Open-Source (default) | `<home>/memories/mem0-vectors.db` | `<home>/memories/mem0-history.db` |
|
|
157
|
+
| Open-Source (`memory`, `dbPath: ":memory:"`) | Process-local SQLite; lost on restart | `<home>/memories/mem0-history.db` |
|
|
158
|
+
| Open-Source (Qdrant) | Qdrant server | `<home>/memories/mem0-history.db` |
|
|
156
159
|
|
|
157
160
|
The `home` directory is resolved via `resolveHome()` from `@amaster.ai/pi-shared/settings` (defaults to `~/.pi/agent`).
|
|
158
161
|
|
|
@@ -171,7 +174,7 @@ This happens transparently — just configure the provider name as it appears in
|
|
|
171
174
|
|
|
172
175
|
## Installation Notes
|
|
173
176
|
|
|
174
|
-
Open-Source mode depends on `better-sqlite3` (native addon, transitive dependency of `mem0ai`) for
|
|
177
|
+
The default Open-Source mode depends on `better-sqlite3` (native addon, transitive dependency of `mem0ai`) for both the vector store and history. This remains true for `dbPath: ":memory:"`: it changes where SQLite stores pages, not which vector-store implementation is used.
|
|
175
178
|
|
|
176
179
|
**For pi-agent users**: pi-agent's `package.json` includes `better-sqlite3` in `pnpm.onlyBuiltDependencies` — it compiles automatically during `pnpm install`. No extra steps needed.
|
|
177
180
|
|
|
@@ -185,7 +188,7 @@ Open-Source mode depends on `better-sqlite3` (native addon, transitive dependenc
|
|
|
185
188
|
}
|
|
186
189
|
```
|
|
187
190
|
|
|
188
|
-
|
|
191
|
+
If `better-sqlite3` fails to load (for example, because of a Node ABI mismatch), the default `memory` vector store cannot start. An external vector store can still be used with history disabled or configured to a working provider.
|
|
189
192
|
|
|
190
193
|
## Tools
|
|
191
194
|
|
|
@@ -226,4 +229,4 @@ const result = await dedupMemories({
|
|
|
226
229
|
// result: { total: 42, duplicatesRemoved: 3 }
|
|
227
230
|
```
|
|
228
231
|
|
|
229
|
-
Normalizes entries (case-insensitive, whitespace-collapsed), identifies exact duplicates, deletes the older ones
|
|
232
|
+
Normalizes entries (case-insensitive, whitespace-collapsed), identifies exact duplicates, and deletes the older ones through the configured provider. In OSS mode those deletes go directly to the vector store.
|
package/dist/dedup.d.ts
CHANGED
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Algorithmic deduplication for pi-memory-mem0 vector store.
|
|
3
|
+
*
|
|
4
|
+
* Normalizes content, identifies exact duplicates (case-insensitive, whitespace-collapsed),
|
|
5
|
+
* deletes the older entries, and keeps only the most recently updated.
|
|
6
|
+
*
|
|
7
|
+
* Both Platform and OSS modes use the provider API. In OSS mode the configured
|
|
8
|
+
* vector store is the source of truth and its IDs remain stable across restarts.
|
|
9
|
+
*/
|
|
1
10
|
import { type ProviderResolver } from './provider.js';
|
|
2
11
|
import type { Mem0ExtensionConfig } from './types.js';
|
|
3
12
|
export interface DedupOptions {
|
package/dist/dedup.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dedup.d.ts","sourceRoot":"","sources":["../src/dedup.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dedup.d.ts","sourceRoot":"","sources":["../src/dedup.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAsB,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC1E,OAAO,KAAK,EAAE,mBAAmB,EAAc,MAAM,YAAY,CAAC;AAElE,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,mBAAmB,CAAC;IAC5B,eAAe,CAAC,EAAE,gBAAgB,CAAC;IACnC,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CA2B5E"}
|
package/dist/dedup.js
CHANGED
|
@@ -4,25 +4,11 @@
|
|
|
4
4
|
* Normalizes content, identifies exact duplicates (case-insensitive, whitespace-collapsed),
|
|
5
5
|
* deletes the older entries, and keeps only the most recently updated.
|
|
6
6
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* - OSS mode: operate directly on SqliteSnapshotStore (mem0 OSS reassigns IDs on restore)
|
|
7
|
+
* Both Platform and OSS modes use the provider API. In OSS mode the configured
|
|
8
|
+
* vector store is the source of truth and its IDs remain stable across restarts.
|
|
10
9
|
*/
|
|
11
|
-
import {
|
|
12
|
-
import { resolveHome } from '@amaster.ai/pi-shared/settings';
|
|
13
|
-
import { createMem0Provider, SqliteSnapshotStore } from './provider.js';
|
|
10
|
+
import { createMem0Provider } from './provider.js';
|
|
14
11
|
export async function dedupMemories(opts) {
|
|
15
|
-
const { config } = opts;
|
|
16
|
-
const mode = config.mode ?? 'platform';
|
|
17
|
-
if (mode === 'open-source') {
|
|
18
|
-
return dedupOss(opts);
|
|
19
|
-
}
|
|
20
|
-
return dedupPlatform(opts);
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Platform mode: use provider API (cloud IDs are stable).
|
|
24
|
-
*/
|
|
25
|
-
async function dedupPlatform(opts) {
|
|
26
12
|
const { userId, config, resolveProvider, signal } = opts;
|
|
27
13
|
const provider = await createMem0Provider({
|
|
28
14
|
config,
|
|
@@ -47,53 +33,6 @@ async function dedupPlatform(opts) {
|
|
|
47
33
|
}
|
|
48
34
|
return { total: allMemories.length, duplicatesRemoved: removed };
|
|
49
35
|
}
|
|
50
|
-
/**
|
|
51
|
-
* OSS mode: operate directly on the SQLite snapshot store.
|
|
52
|
-
* mem0 OSS reassigns internal IDs when restoring memories, so we can't
|
|
53
|
-
* rely on provider.delete(originalId). Instead, we deduplicate the snapshot
|
|
54
|
-
* in-place and write back the unique set.
|
|
55
|
-
*/
|
|
56
|
-
function dedupOss(opts) {
|
|
57
|
-
const { userId, config, signal } = opts;
|
|
58
|
-
const snapshotDbPath = config.oss?.snapshotDbPath ?? join(resolveHome(), 'memories', 'mem0-snapshot.db');
|
|
59
|
-
const snapshot = SqliteSnapshotStore.tryCreate(snapshotDbPath);
|
|
60
|
-
if (!snapshot) {
|
|
61
|
-
return { total: 0, duplicatesRemoved: 0 };
|
|
62
|
-
}
|
|
63
|
-
try {
|
|
64
|
-
const allItems = snapshot.loadAll(userId);
|
|
65
|
-
if (allItems.length === 0) {
|
|
66
|
-
return { total: 0, duplicatesRemoved: 0 };
|
|
67
|
-
}
|
|
68
|
-
const seen = new Map();
|
|
69
|
-
let duplicateCount = 0;
|
|
70
|
-
for (const item of allItems) {
|
|
71
|
-
if (signal?.aborted)
|
|
72
|
-
break;
|
|
73
|
-
const normalized = item.memory.normalize('NFC').replace(/\s+/g, ' ').trim().toLowerCase();
|
|
74
|
-
const existing = seen.get(normalized);
|
|
75
|
-
if (existing) {
|
|
76
|
-
const existingTime = existing.updated_at ? new Date(existing.updated_at).getTime() : 0;
|
|
77
|
-
const currentTime = item.updated_at ? new Date(item.updated_at).getTime() : 0;
|
|
78
|
-
if (currentTime > existingTime) {
|
|
79
|
-
seen.set(normalized, item);
|
|
80
|
-
}
|
|
81
|
-
duplicateCount++;
|
|
82
|
-
}
|
|
83
|
-
else {
|
|
84
|
-
seen.set(normalized, item);
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
if (duplicateCount > 0) {
|
|
88
|
-
const uniqueItems = [...seen.values()];
|
|
89
|
-
snapshot.replaceAll(userId, uniqueItems);
|
|
90
|
-
}
|
|
91
|
-
return { total: allItems.length, duplicatesRemoved: duplicateCount };
|
|
92
|
-
}
|
|
93
|
-
finally {
|
|
94
|
-
snapshot.close();
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
36
|
/**
|
|
98
37
|
* Shared: find IDs of duplicate entries to remove (keeps the newest).
|
|
99
38
|
*/
|
package/dist/dedup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dedup.js","sourceRoot":"","sources":["../src/dedup.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"dedup.js","sourceRoot":"","sources":["../src/dedup.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,kBAAkB,EAAyB,MAAM,eAAe,CAAC;AAe1E,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAkB;IACpD,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAEzD,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC;QACxC,MAAM;QACN,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChD,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAEtD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IAC5C,CAAC;IAED,MAAM,YAAY,GAAG,gBAAgB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAE3D,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,KAAK,MAAM,EAAE,IAAI,YAAY,EAAE,CAAC;QAC9B,IAAI,MAAM,EAAE,OAAO;YAAE,MAAM;QAC3B,IAAI,CAAC;YACH,MAAM,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC1B,OAAO,EAAE,CAAC;QACZ,CAAC;QAAC,MAAM,CAAC;YACP,cAAc;QAChB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,iBAAiB,EAAE,OAAO,EAAE,CAAC;AACnE,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,WAAyB,EAAE,MAAoB;IACvE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAsB,CAAC;IAC3C,MAAM,YAAY,GAAa,EAAE,CAAC;IAElC,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,IAAI,MAAM,EAAE,OAAO;YAAE,MAAM;QAE3B,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC1F,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAEtC,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,YAAY,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACvF,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9E,IAAI,WAAW,GAAG,YAAY,EAAE,CAAC;gBAC/B,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAC/B,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YAC7B,CAAC;iBAAM,CAAC;gBACN,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AA0BpE,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AA0BpE,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CAsK5D"}
|
package/dist/index.js
CHANGED
|
@@ -38,7 +38,7 @@ export default function mem0Extension(pi) {
|
|
|
38
38
|
let prefetch;
|
|
39
39
|
let userId = '';
|
|
40
40
|
let lastUserText = '';
|
|
41
|
-
let
|
|
41
|
+
let pendingWrite = Promise.resolve();
|
|
42
42
|
pi.on('session_start', async (_event, ctx) => {
|
|
43
43
|
const config = loadConfig(ctx.cwd);
|
|
44
44
|
const mode = config.mode ?? 'platform';
|
|
@@ -102,20 +102,18 @@ export default function mem0Extension(pi) {
|
|
|
102
102
|
const text = extractText(msg);
|
|
103
103
|
if (!text || msg.role !== 'assistant')
|
|
104
104
|
return;
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
105
|
+
const userText = lastUserText;
|
|
106
|
+
lastUserText = '';
|
|
107
|
+
const activeProvider = provider;
|
|
108
|
+
pendingWrite = pendingWrite
|
|
109
|
+
.catch(() => { })
|
|
110
|
+
.then(async () => {
|
|
111
|
+
await activeProvider.add([
|
|
111
112
|
{ role: 'user', content: userText },
|
|
112
113
|
{ role: 'assistant', content: text },
|
|
113
|
-
], { userId })
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
syncing = false;
|
|
117
|
-
});
|
|
118
|
-
}
|
|
114
|
+
], { userId });
|
|
115
|
+
})
|
|
116
|
+
.catch(() => { });
|
|
119
117
|
});
|
|
120
118
|
pi.on('before_agent_start', async (event) => {
|
|
121
119
|
if (!prefetch)
|
|
@@ -128,10 +126,11 @@ export default function mem0Extension(pi) {
|
|
|
128
126
|
};
|
|
129
127
|
});
|
|
130
128
|
pi.on('session_shutdown', async () => {
|
|
129
|
+
await pendingWrite;
|
|
131
130
|
provider = undefined;
|
|
132
131
|
prefetch = undefined;
|
|
133
132
|
lastUserText = '';
|
|
134
|
-
|
|
133
|
+
pendingWrite = Promise.resolve();
|
|
135
134
|
});
|
|
136
135
|
pi.registerCommand('mem0', {
|
|
137
136
|
description: 'Mem0 memory commands. Subcommands: status, search <query>, profile.',
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAEhE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAqB,MAAM,eAAe,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAG7C,MAAM,YAAY,GAAG,gBAAgB,CAAC;AACtC,MAAM,UAAU,GAAG,MAAM,CAAC;AAE1B,SAAS,UAAU,CAAC,GAAW;IAC7B,IAAI,CAAC;QACH,OAAO,cAAc,CAAsB,YAAY,EAAE;YACvD,GAAG;SACJ,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,YAAqB;IAC1C,IAAI,YAAY,EAAE,IAAI,EAAE;QAAE,OAAO,YAAY,CAAC,IAAI,EAAE,CAAC;IACrD,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;IAC9C,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;IACtD,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EAAgB;IACpD,IAAI,QAAkC,CAAC;IACvC,IAAI,QAA8B,CAAC;IACnC,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,YAAY,GAAG,EAAE,CAAC;IACtB,IAAI,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/provider.d.ts
CHANGED
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Uses the `mem0ai` npm SDK which handles:
|
|
5
5
|
* - Platform mode: REST API calls to api.mem0.ai
|
|
6
|
-
* - OSS mode:
|
|
6
|
+
* - OSS mode: vector storage + LLM extraction via configured providers
|
|
7
7
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
8
|
+
* The mem0 OSS `memory` vector store is itself SQLite-backed. This extension
|
|
9
|
+
* configures it with a file under Pi home by default and lets mem0 own persistence
|
|
10
|
+
* directly.
|
|
11
11
|
*/
|
|
12
12
|
import type { AddResult, Mem0ExtensionConfig, MemoryItem } from './types.js';
|
|
13
13
|
export interface Mem0Provider {
|
|
@@ -17,6 +17,7 @@ export interface Mem0Provider {
|
|
|
17
17
|
}>, opts: {
|
|
18
18
|
userId: string;
|
|
19
19
|
infer?: boolean;
|
|
20
|
+
observedAt?: Date | string;
|
|
20
21
|
}): Promise<AddResult | null>;
|
|
21
22
|
search(query: string, opts: {
|
|
22
23
|
userId: string;
|
|
@@ -26,29 +27,22 @@ export interface Mem0Provider {
|
|
|
26
27
|
userId: string;
|
|
27
28
|
}): Promise<MemoryItem[]>;
|
|
28
29
|
delete(memoryId: string): Promise<void>;
|
|
29
|
-
/** Flush any pending snapshot writes. No-op for platform mode. */
|
|
30
|
-
flushSnapshot(userId: string): Promise<void>;
|
|
31
|
-
}
|
|
32
|
-
export declare class SqliteSnapshotStore {
|
|
33
|
-
private db;
|
|
34
|
-
constructor(dbPath: string);
|
|
35
|
-
loadAll(userId: string): Array<{
|
|
36
|
-
id: string;
|
|
37
|
-
memory: string;
|
|
38
|
-
created_at?: string;
|
|
39
|
-
updated_at?: string;
|
|
40
|
-
}>;
|
|
41
|
-
loadAllUsers(): Array<{
|
|
42
|
-
userId: string;
|
|
43
|
-
items: Array<{
|
|
44
|
-
id: string;
|
|
45
|
-
memory: string;
|
|
46
|
-
}>;
|
|
47
|
-
}>;
|
|
48
|
-
replaceAll(userId: string, items: MemoryItem[]): void;
|
|
49
|
-
close(): void;
|
|
50
|
-
static tryCreate(dbPath: string): SqliteSnapshotStore | null;
|
|
51
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* Format an observedAt value as YYYY-MM-DD for mem0's Observation Date field.
|
|
33
|
+
* mem0's extraction prompt grounds relative times ("yesterday", "last week")
|
|
34
|
+
* to this date. When not supplied mem0 falls back to system now — wrong for
|
|
35
|
+
* ingesting historical conversations.
|
|
36
|
+
*/
|
|
37
|
+
export declare function formatObservedAt(v: Date | string): string;
|
|
38
|
+
/**
|
|
39
|
+
* Rewrite the "## Observation Date" and "## Current Date" sections of mem0's
|
|
40
|
+
* extraction user-prompt to a fixed date. mem0 has no public parameter for
|
|
41
|
+
* this — its own prompt documents an Observation Date it never lets callers
|
|
42
|
+
* set — so OSSProvider.add intercepts the LLM call and runs the prompt through
|
|
43
|
+
* this before forwarding. Exported for unit testing.
|
|
44
|
+
*/
|
|
45
|
+
export declare function rewriteObservationDate(content: string, dateStr: string): string;
|
|
52
46
|
/** Optional key resolver — pulls API keys from pi's model registry. */
|
|
53
47
|
export type KeyResolver = (provider: string) => Promise<string | undefined>;
|
|
54
48
|
/** Resolved provider info from the model registry. */
|
package/dist/provider.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,OAAO,KAAK,EAAE,SAAS,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAM7E,MAAM,WAAW,YAAY;IAC3B,GAAG,CACD,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,EAClD,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,IAAI,GAAG,MAAM,CAAA;KAAE,GACpE,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;IAE7B,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAEtF,MAAM,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAExD,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC;AAMD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAIzD;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAI/E;AAyGD,uEAAuE;AACvE,MAAM,MAAM,WAAW,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;AAE5E,sDAAsD;AACtD,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oFAAoF;IACpF,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,2FAA2F;AAC3F,MAAM,MAAM,gBAAgB,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC,CAAC;AAE/F;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAOtF;AA4PD,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,mBAAmB,CAAC;IAC5B,wGAAwG;IACxG,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB,2FAA2F;IAC3F,eAAe,CAAC,EAAE,gBAAgB,CAAC;CACpC;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,YAAY,CAAC,CAoB3F"}
|
package/dist/provider.js
CHANGED
|
@@ -3,19 +3,42 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Uses the `mem0ai` npm SDK which handles:
|
|
5
5
|
* - Platform mode: REST API calls to api.mem0.ai
|
|
6
|
-
* - OSS mode:
|
|
6
|
+
* - OSS mode: vector storage + LLM extraction via configured providers
|
|
7
7
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
8
|
+
* The mem0 OSS `memory` vector store is itself SQLite-backed. This extension
|
|
9
|
+
* configures it with a file under Pi home by default and lets mem0 own persistence
|
|
10
|
+
* directly.
|
|
11
11
|
*/
|
|
12
|
-
import { mkdirSync } from 'node:fs';
|
|
13
12
|
import { createRequire } from 'node:module';
|
|
14
|
-
import {
|
|
13
|
+
import { join } from 'node:path';
|
|
15
14
|
import { resolveHome } from '@amaster.ai/pi-shared/settings';
|
|
16
15
|
// ---------------------------------------------------------------------------
|
|
17
16
|
// Normalizers
|
|
18
17
|
// ---------------------------------------------------------------------------
|
|
18
|
+
/**
|
|
19
|
+
* Format an observedAt value as YYYY-MM-DD for mem0's Observation Date field.
|
|
20
|
+
* mem0's extraction prompt grounds relative times ("yesterday", "last week")
|
|
21
|
+
* to this date. When not supplied mem0 falls back to system now — wrong for
|
|
22
|
+
* ingesting historical conversations.
|
|
23
|
+
*/
|
|
24
|
+
export function formatObservedAt(v) {
|
|
25
|
+
const d = typeof v === 'string' ? new Date(v) : v;
|
|
26
|
+
if (Number.isNaN(d.getTime()))
|
|
27
|
+
return String(v);
|
|
28
|
+
return d.toISOString().slice(0, 10);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Rewrite the "## Observation Date" and "## Current Date" sections of mem0's
|
|
32
|
+
* extraction user-prompt to a fixed date. mem0 has no public parameter for
|
|
33
|
+
* this — its own prompt documents an Observation Date it never lets callers
|
|
34
|
+
* set — so OSSProvider.add intercepts the LLM call and runs the prompt through
|
|
35
|
+
* this before forwarding. Exported for unit testing.
|
|
36
|
+
*/
|
|
37
|
+
export function rewriteObservationDate(content, dateStr) {
|
|
38
|
+
let c = content.replace(/## Observation Date\n[^\n]*/, `## Observation Date\n${dateStr}`);
|
|
39
|
+
c = c.replace(/## Current Date\n[^\n]*/, `## Current Date\n${dateStr}`);
|
|
40
|
+
return c;
|
|
41
|
+
}
|
|
19
42
|
function normalizeMemoryItem(raw) {
|
|
20
43
|
return {
|
|
21
44
|
id: String(raw.id ?? raw.memory_id ?? ''),
|
|
@@ -69,6 +92,14 @@ class PlatformProvider {
|
|
|
69
92
|
const addOpts = { userId: opts.userId };
|
|
70
93
|
if (opts.infer === false)
|
|
71
94
|
addOpts.infer = false;
|
|
95
|
+
// Platform mem0 exposes a `timestamp` field on add(); pass observedAt
|
|
96
|
+
// through as an ISO string. (OSS mode honors observedAt via prompt
|
|
97
|
+
// rewriting instead — see OSSProvider.add.)
|
|
98
|
+
if (opts.observedAt) {
|
|
99
|
+
const d = new Date(opts.observedAt);
|
|
100
|
+
if (!Number.isNaN(d.getTime()))
|
|
101
|
+
addOpts.timestamp = d.toISOString();
|
|
102
|
+
}
|
|
72
103
|
// biome-ignore lint/suspicious/noExplicitAny: mem0ai/oss lacks type definitions
|
|
73
104
|
const result = await this.client.add(messages, addOpts);
|
|
74
105
|
return result;
|
|
@@ -97,77 +128,6 @@ class PlatformProvider {
|
|
|
97
128
|
// biome-ignore lint/suspicious/noExplicitAny: mem0ai/oss lacks type definitions
|
|
98
129
|
await this.client.delete(memoryId);
|
|
99
130
|
}
|
|
100
|
-
async flushSnapshot() {
|
|
101
|
-
// Platform mode persists server-side, no local snapshot to flush.
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
export class SqliteSnapshotStore {
|
|
105
|
-
db;
|
|
106
|
-
constructor(dbPath) {
|
|
107
|
-
mkdirSync(dirname(dbPath), { recursive: true });
|
|
108
|
-
const req = createRequire(import.meta.url);
|
|
109
|
-
const mem0OssPath = req.resolve('mem0ai/oss');
|
|
110
|
-
const reqFromMem0 = createRequire(mem0OssPath);
|
|
111
|
-
const BS3 = reqFromMem0('better-sqlite3');
|
|
112
|
-
this.db = new BS3(dbPath);
|
|
113
|
-
this.db.pragma('journal_mode = WAL');
|
|
114
|
-
this.db.exec(`
|
|
115
|
-
CREATE TABLE IF NOT EXISTS memories (
|
|
116
|
-
id TEXT PRIMARY KEY,
|
|
117
|
-
user_id TEXT NOT NULL,
|
|
118
|
-
memory TEXT NOT NULL,
|
|
119
|
-
created_at TEXT,
|
|
120
|
-
updated_at TEXT
|
|
121
|
-
)
|
|
122
|
-
`);
|
|
123
|
-
}
|
|
124
|
-
loadAll(userId) {
|
|
125
|
-
return this.db
|
|
126
|
-
.prepare('SELECT id, memory, created_at, updated_at FROM memories WHERE user_id = ?')
|
|
127
|
-
.all(userId);
|
|
128
|
-
}
|
|
129
|
-
loadAllUsers() {
|
|
130
|
-
const rows = this.db
|
|
131
|
-
.prepare('SELECT user_id, id, memory FROM memories')
|
|
132
|
-
.all();
|
|
133
|
-
const grouped = new Map();
|
|
134
|
-
for (const row of rows) {
|
|
135
|
-
let list = grouped.get(row.user_id);
|
|
136
|
-
if (!list) {
|
|
137
|
-
list = [];
|
|
138
|
-
grouped.set(row.user_id, list);
|
|
139
|
-
}
|
|
140
|
-
list.push({ id: row.id, memory: row.memory });
|
|
141
|
-
}
|
|
142
|
-
return Array.from(grouped.entries()).map(([userId, items]) => ({ userId, items }));
|
|
143
|
-
}
|
|
144
|
-
replaceAll(userId, items) {
|
|
145
|
-
const del = this.db.prepare('DELETE FROM memories WHERE user_id = ?');
|
|
146
|
-
const ins = this.db.prepare('INSERT OR REPLACE INTO memories (id, user_id, memory, created_at, updated_at) VALUES (?, ?, ?, ?, ?)');
|
|
147
|
-
const tx = this.db.transaction(() => {
|
|
148
|
-
del.run(userId);
|
|
149
|
-
for (const item of items) {
|
|
150
|
-
ins.run(item.id, userId, item.memory, item.created_at ?? null, item.updated_at ?? null);
|
|
151
|
-
}
|
|
152
|
-
});
|
|
153
|
-
tx();
|
|
154
|
-
}
|
|
155
|
-
close() {
|
|
156
|
-
try {
|
|
157
|
-
this.db.close();
|
|
158
|
-
}
|
|
159
|
-
catch {
|
|
160
|
-
/* ignore */
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
static tryCreate(dbPath) {
|
|
164
|
-
try {
|
|
165
|
-
return new SqliteSnapshotStore(dbPath);
|
|
166
|
-
}
|
|
167
|
-
catch {
|
|
168
|
-
return null;
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
131
|
}
|
|
172
132
|
/**
|
|
173
133
|
* Maps a pi model registry `api` field to a mem0-compatible provider name.
|
|
@@ -191,16 +151,25 @@ class OSSProvider {
|
|
|
191
151
|
ossConfig;
|
|
192
152
|
resolveKey;
|
|
193
153
|
resolveProvider;
|
|
194
|
-
snapshotDbPath;
|
|
195
154
|
memory;
|
|
196
155
|
initPromise = null;
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
156
|
+
/**
|
|
157
|
+
* mem0's Memory instance shares one LLM object across all add() calls. To
|
|
158
|
+
* honor observedAt we temporarily wrap `llm.generateResponse` (see add), and
|
|
159
|
+
* that wrapper is global state on the instance — so concurrent add()s would
|
|
160
|
+
* stomp each other's date. This mutex serializes the wrap/call/restore
|
|
161
|
+
* window.
|
|
162
|
+
*
|
|
163
|
+
* ponytail: global mutex around the ~3-10s window that includes mem0's LLM
|
|
164
|
+
* call. Callers expecting true concurrency across users will see add()s
|
|
165
|
+
* serialize when observedAt is passed. Acceptable — the alternative is one
|
|
166
|
+
* Memory instance per userId (heavy init).
|
|
167
|
+
*/
|
|
168
|
+
addMutex = Promise.resolve();
|
|
169
|
+
constructor(ossConfig, resolveKey, resolveProvider) {
|
|
200
170
|
this.ossConfig = ossConfig;
|
|
201
171
|
this.resolveKey = resolveKey;
|
|
202
172
|
this.resolveProvider = resolveProvider;
|
|
203
|
-
this.snapshotDbPath = snapshotDbPath;
|
|
204
173
|
}
|
|
205
174
|
async ensureMemory() {
|
|
206
175
|
if (this.memory)
|
|
@@ -262,15 +231,42 @@ class OSSProvider {
|
|
|
262
231
|
}
|
|
263
232
|
config.embedder = { provider: embedderProvider, config: embedderCfg };
|
|
264
233
|
config.llm = { provider: llmProvider, config: llmCfg };
|
|
265
|
-
|
|
234
|
+
const defaultVectorConfig = {
|
|
235
|
+
collectionName: 'pi_mem0',
|
|
236
|
+
dbPath: join(resolveHome(), 'memories', 'mem0-vectors.db'),
|
|
237
|
+
};
|
|
238
|
+
if (this.ossConfig?.vectorStore?.provider.toLowerCase() === 'memory') {
|
|
239
|
+
config.vectorStore = {
|
|
240
|
+
provider: this.ossConfig.vectorStore.provider,
|
|
241
|
+
config: {
|
|
242
|
+
...defaultVectorConfig,
|
|
243
|
+
...(this.ossConfig.vectorStore.config ?? {}),
|
|
244
|
+
},
|
|
245
|
+
};
|
|
246
|
+
}
|
|
247
|
+
else if (this.ossConfig?.vectorStore) {
|
|
266
248
|
config.vectorStore = this.ossConfig.vectorStore;
|
|
267
249
|
}
|
|
268
250
|
else {
|
|
269
251
|
config.vectorStore = {
|
|
270
252
|
provider: 'memory',
|
|
271
|
-
config:
|
|
253
|
+
config: defaultVectorConfig,
|
|
272
254
|
};
|
|
273
255
|
}
|
|
256
|
+
if (this.ossConfig?.historyStore) {
|
|
257
|
+
config.historyStore = this.ossConfig.historyStore;
|
|
258
|
+
}
|
|
259
|
+
else {
|
|
260
|
+
config.historyStore = {
|
|
261
|
+
provider: 'sqlite',
|
|
262
|
+
config: {
|
|
263
|
+
historyDbPath: this.ossConfig?.historyDbPath ?? join(resolveHome(), 'memories', 'mem0-history.db'),
|
|
264
|
+
},
|
|
265
|
+
};
|
|
266
|
+
}
|
|
267
|
+
if (this.ossConfig?.historyDbPath) {
|
|
268
|
+
config.historyDbPath = this.ossConfig.historyDbPath;
|
|
269
|
+
}
|
|
274
270
|
if (this.ossConfig?.disableHistory) {
|
|
275
271
|
config.disableHistory = true;
|
|
276
272
|
}
|
|
@@ -313,56 +309,53 @@ class OSSProvider {
|
|
|
313
309
|
}
|
|
314
310
|
}
|
|
315
311
|
this.memory = mem;
|
|
316
|
-
// Initialize SQLite snapshot store for persistence
|
|
317
|
-
if (this.snapshotDbPath && sqliteOk) {
|
|
318
|
-
this.snapshot = SqliteSnapshotStore.tryCreate(this.snapshotDbPath);
|
|
319
|
-
}
|
|
320
|
-
// Restore memories from snapshot into the in-memory vector store
|
|
321
|
-
if (this.snapshot) {
|
|
322
|
-
const allUsers = this.snapshot.loadAllUsers();
|
|
323
|
-
let totalRestored = 0;
|
|
324
|
-
for (const { userId: uid, items } of allUsers) {
|
|
325
|
-
for (const item of items) {
|
|
326
|
-
try {
|
|
327
|
-
await mem.add([{ role: 'user', content: item.memory }], { userId: uid, infer: false });
|
|
328
|
-
totalRestored++;
|
|
329
|
-
}
|
|
330
|
-
catch {
|
|
331
|
-
/* skip failed restores */
|
|
332
|
-
}
|
|
333
|
-
}
|
|
334
|
-
}
|
|
335
|
-
if (totalRestored > 0) {
|
|
336
|
-
console.error(`[pi-memory-mem0] restored ${totalRestored} memories from snapshot`);
|
|
337
|
-
}
|
|
338
|
-
}
|
|
339
312
|
await mem.getAll({ filters: { user_id: '__warmup__' } });
|
|
340
313
|
}
|
|
341
|
-
asyncSnapshotSync(userId) {
|
|
342
|
-
if (!this.snapshot || this.syncingSnapshot)
|
|
343
|
-
return;
|
|
344
|
-
this.syncingSnapshot = true;
|
|
345
|
-
// biome-ignore lint/suspicious/noExplicitAny: mem0ai/oss lacks type definitions
|
|
346
|
-
this.memory
|
|
347
|
-
.getAll({ filters: { user_id: userId } })
|
|
348
|
-
.then((results) => {
|
|
349
|
-
const items = normalizeResults(results);
|
|
350
|
-
this.snapshot.replaceAll(userId, items);
|
|
351
|
-
})
|
|
352
|
-
.catch(() => { })
|
|
353
|
-
.finally(() => {
|
|
354
|
-
this.syncingSnapshot = false;
|
|
355
|
-
});
|
|
356
|
-
}
|
|
357
314
|
async add(messages, opts) {
|
|
358
315
|
await this.ensureMemory();
|
|
359
316
|
const addOpts = { userId: opts.userId };
|
|
360
317
|
if (opts.infer === false)
|
|
361
318
|
addOpts.infer = false;
|
|
362
|
-
//
|
|
363
|
-
|
|
364
|
-
this.
|
|
365
|
-
|
|
319
|
+
// Serialize add() when observedAt is used. mem0 never exposes the
|
|
320
|
+
// observationDate parameter its own prompt documents — so we intercept
|
|
321
|
+
// `this.llm.generateResponse` and rewrite the "## Observation Date" line
|
|
322
|
+
// in the user prompt from today to the caller-supplied date. Parallel
|
|
323
|
+
// adds would stomp the wrapper, so we mutex.
|
|
324
|
+
const gate = this.addMutex;
|
|
325
|
+
let release = () => { };
|
|
326
|
+
this.addMutex = new Promise((res) => {
|
|
327
|
+
release = res;
|
|
328
|
+
});
|
|
329
|
+
try {
|
|
330
|
+
await gate;
|
|
331
|
+
// biome-ignore lint/suspicious/noExplicitAny: mem0ai/oss lacks type definitions
|
|
332
|
+
const mem = this.memory;
|
|
333
|
+
let restoreLlm;
|
|
334
|
+
if (opts.observedAt) {
|
|
335
|
+
const dateStr = formatObservedAt(opts.observedAt);
|
|
336
|
+
const llm = mem.llm;
|
|
337
|
+
const originalGenerate = llm.generateResponse.bind(llm);
|
|
338
|
+
llm.generateResponse = async (msgs, ...rest) => {
|
|
339
|
+
const patched = msgs.map((m) => m.role === 'user' && typeof m.content === 'string'
|
|
340
|
+
? { ...m, content: rewriteObservationDate(m.content, dateStr) }
|
|
341
|
+
: m);
|
|
342
|
+
return originalGenerate(patched, ...rest);
|
|
343
|
+
};
|
|
344
|
+
restoreLlm = () => {
|
|
345
|
+
llm.generateResponse = originalGenerate;
|
|
346
|
+
};
|
|
347
|
+
}
|
|
348
|
+
try {
|
|
349
|
+
const result = await mem.add(messages, addOpts);
|
|
350
|
+
return result;
|
|
351
|
+
}
|
|
352
|
+
finally {
|
|
353
|
+
restoreLlm?.();
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
finally {
|
|
357
|
+
release(undefined);
|
|
358
|
+
}
|
|
366
359
|
}
|
|
367
360
|
async search(query, opts) {
|
|
368
361
|
await this.ensureMemory();
|
|
@@ -388,24 +381,13 @@ class OSSProvider {
|
|
|
388
381
|
// biome-ignore lint/suspicious/noExplicitAny: mem0ai/oss lacks type definitions
|
|
389
382
|
await this.memory.delete(memoryId);
|
|
390
383
|
}
|
|
391
|
-
async flushSnapshot(userId) {
|
|
392
|
-
if (!this.snapshot)
|
|
393
|
-
return;
|
|
394
|
-
// biome-ignore lint/suspicious/noExplicitAny: mem0ai/oss lacks type definitions
|
|
395
|
-
const results = await this.memory.getAll({
|
|
396
|
-
filters: { user_id: userId },
|
|
397
|
-
});
|
|
398
|
-
const items = normalizeResults(results);
|
|
399
|
-
this.snapshot.replaceAll(userId, items);
|
|
400
|
-
}
|
|
401
384
|
}
|
|
402
385
|
export async function createMem0Provider(opts) {
|
|
403
386
|
const { config, resolveKey, resolveProvider } = opts;
|
|
404
387
|
const mode = config.mode ?? 'platform';
|
|
405
388
|
if (mode === 'open-source') {
|
|
406
389
|
const useRegistry = config.useRegistryKeys !== false;
|
|
407
|
-
const
|
|
408
|
-
const provider = new OSSProvider(config.oss, useRegistry ? resolveKey : undefined, useRegistry ? resolveProvider : undefined, snapshotDbPath);
|
|
390
|
+
const provider = new OSSProvider(config.oss, useRegistry ? resolveKey : undefined, useRegistry ? resolveProvider : undefined);
|
|
409
391
|
// biome-ignore lint/suspicious/noExplicitAny: mem0ai/oss lacks type definitions
|
|
410
392
|
await provider.ensureMemory();
|
|
411
393
|
return provider;
|
package/dist/provider.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -22,8 +22,13 @@ export interface Mem0ExtensionConfig {
|
|
|
22
22
|
provider: string;
|
|
23
23
|
config?: Record<string, unknown>;
|
|
24
24
|
};
|
|
25
|
-
/**
|
|
26
|
-
|
|
25
|
+
/** Mem0 OSS history store config. Default: sqlite at <home>/memories/mem0-history.db */
|
|
26
|
+
historyStore?: {
|
|
27
|
+
provider: string;
|
|
28
|
+
config?: Record<string, unknown>;
|
|
29
|
+
};
|
|
30
|
+
/** Shortcut for sqlite history DB path. Default: <home>/memories/mem0-history.db */
|
|
31
|
+
historyDbPath?: string;
|
|
27
32
|
disableHistory?: boolean;
|
|
28
33
|
};
|
|
29
34
|
/** User identifier for memory scoping. Supports ${USER}. */
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,QAAQ,GAAG,UAAU,GAAG,aAAa,CAAC;AAElD,MAAM,WAAW,mBAAmB;IAClC,oFAAoF;IACpF,IAAI,CAAC,EAAE,QAAQ,CAAC;IAGhB,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wDAAwD;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC;IAGjB,GAAG,CAAC,EAAE;QACJ,QAAQ,CAAC,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;SAAE,CAAC;QAClE,GAAG,CAAC,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;SAAE,CAAC;QAC7D,WAAW,CAAC,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;SAAE,CAAC;QACrE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,QAAQ,GAAG,UAAU,GAAG,aAAa,CAAC;AAElD,MAAM,WAAW,mBAAmB;IAClC,oFAAoF;IACpF,IAAI,CAAC,EAAE,QAAQ,CAAC;IAGhB,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wDAAwD;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC;IAGjB,GAAG,CAAC,EAAE;QACJ,QAAQ,CAAC,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;SAAE,CAAC;QAClE,GAAG,CAAC,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;SAAE,CAAC;QAC7D,WAAW,CAAC,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;SAAE,CAAC;QACrE,wFAAwF;QACxF,YAAY,CAAC,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;SAAE,CAAC;QACtE,oFAAoF;QACpF,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,cAAc,CAAC,EAAE,OAAO,CAAC;KAC1B,CAAC;IAGF,4DAA4D;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iDAAiD;IACjD,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChE"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@amaster.ai/pi-memory-mem0",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.6",
|
|
4
4
|
"description": "Mem0 passive memory extension for pi — dual-mode: Platform (cloud) or Open-Source (local SQLite).",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"pi-package",
|
|
@@ -53,8 +53,8 @@
|
|
|
53
53
|
"directory": "packages/pi-memory-mem0"
|
|
54
54
|
},
|
|
55
55
|
"dependencies": {
|
|
56
|
-
"mem0ai": "
|
|
57
|
-
"@amaster.ai/pi-shared": "0.1.
|
|
56
|
+
"mem0ai": "3.0.7",
|
|
57
|
+
"@amaster.ai/pi-shared": "0.1.6"
|
|
58
58
|
},
|
|
59
59
|
"peerDependencies": {
|
|
60
60
|
"@earendil-works/pi-coding-agent": ">=0.74.0",
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
}
|
|
70
70
|
},
|
|
71
71
|
"devDependencies": {
|
|
72
|
-
"@earendil-works/pi-coding-agent": "0.
|
|
72
|
+
"@earendil-works/pi-coding-agent": "0.80.10",
|
|
73
73
|
"typebox": "*",
|
|
74
74
|
"vitest": "^4.0.0"
|
|
75
75
|
},
|