@amaster.ai/pi-memory-mem0 0.1.2-beta.30 → 0.1.2-beta.32

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 CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  ![pi-memory-mem0 preview](https://raw.githubusercontent.com/TGYD-helige/pi/master/packages/pi-memory-mem0/preview.png)
4
4
 
5
- Passive semantic memory extension powered by [Mem0](https://mem0.ai) — supports both Platform (cloud) and Open-Source (local SQLite) modes.
5
+ Passive semantic memory extension powered by [Mem0](https://mem0.ai) — supports both Platform (cloud) and Open-Source (local) modes.
6
6
 
7
7
  ## How It Works
8
8
 
@@ -12,10 +12,23 @@ After each conversation turn, user + assistant messages are automatically sent t
12
12
 
13
13
  ## Two Modes
14
14
 
15
- | Mode | Storage | Dependencies | Use Case |
16
- |------|---------|--------------|----------|
17
- | `platform` | Mem0 Cloud | `MEM0_API_KEY` | Quick start, multi-device sync |
18
- | `open-source` | Local SQLite (`~/.pi/agent/memories/mem0.db`) | LLM + Embedding API | Data privacy, no external services |
15
+ | Mode | Vector Store | Persistence | Dependencies | Use Case |
16
+ |------|-------------|-------------|--------------|----------|
17
+ | `platform` | Mem0 Cloud | Cloud-managed | `MEM0_API_KEY` | Quick start, multi-device sync |
18
+ | `open-source` | In-memory | SQLite snapshot | LLM + Embedding API | Data privacy, no external services |
19
+
20
+ ## Architecture (Open-Source Mode)
21
+
22
+ ```
23
+ User ←→ Agent ←→ Mem0 Memory (in-memory vector search)
24
+
25
+ SQLite Snapshot Store (disk persistence)
26
+ ```
27
+
28
+ - **Vector search**: `mem0ai` OSS `MemoryVectorStore` (in-memory cosine similarity)
29
+ - **LLM extraction**: Configured provider extracts facts from conversations
30
+ - **Persistence**: After each `add()`, all memories are asynchronously snapshotted to SQLite. On restart, memories are restored from the snapshot.
31
+ - **Provider mapping**: Custom providers are automatically mapped to mem0-compatible providers (e.g. `openai`) via the pi model registry's `api` field.
19
32
 
20
33
  ## Quick Start
21
34
 
@@ -33,7 +46,7 @@ After each conversation turn, user + assistant messages are automatically sent t
33
46
 
34
47
  ### Open-Source Mode (Recommended)
35
48
 
36
- Reuses API keys from pi's configured model providers by default — **no extra environment variables needed**.
49
+ Reuses API keys and base URLs from pi's configured model providers — **no extra environment variables needed**.
37
50
 
38
51
  ```json
39
52
  {
@@ -44,29 +57,35 @@ Reuses API keys from pi's configured model providers by default — **no extra e
44
57
  }
45
58
  ```
46
59
 
47
- Defaults to OpenAI `text-embedding-3-small` (embedding) + `gpt-4.1-nano` (extraction). API keys are automatically resolved from pi's model registry.
60
+ Defaults to OpenAI `text-embedding-3-small` (embedding) + `gpt-4.1-nano` (extraction). API keys and base URLs are automatically resolved from pi's model registry.
61
+
62
+ ### Custom Provider
48
63
 
49
- ### Custom LLM / Embedding
64
+ When your model registry defines a custom provider with `api: "openai-completions"`, you can use it directly:
50
65
 
51
66
  ```json
52
67
  {
53
68
  "pi-memory-mem0": {
54
69
  "mode": "open-source",
55
- "userId": "${USER}",
56
70
  "oss": {
57
71
  "llm": {
58
- "provider": "deepseek",
59
- "config": { "model": "deepseek-chat" }
72
+ "provider": "my-provider",
73
+ "config": { "model": "deepseek-v4-pro" }
60
74
  },
61
75
  "embedder": {
62
- "provider": "openai",
63
- "config": { "model": "text-embedding-3-small" }
76
+ "provider": "my-provider",
77
+ "config": { "model": "text-embedding-v4" }
64
78
  }
65
79
  }
66
80
  }
67
81
  }
68
82
  ```
69
83
 
84
+ The extension automatically:
85
+ 1. Resolves API key from the model registry
86
+ 2. Injects `baseUrl` from the registry
87
+ 3. Maps `api: "openai-completions"` → mem0 provider `"openai"`
88
+
70
89
  ### Fully Local (Ollama)
71
90
 
72
91
  ```json
@@ -89,6 +108,28 @@ Defaults to OpenAI `text-embedding-3-small` (embedding) + `gpt-4.1-nano` (extrac
89
108
  }
90
109
  ```
91
110
 
111
+ ### External Vector Store (e.g. Qdrant)
112
+
113
+ For production workloads that need a dedicated vector database:
114
+
115
+ ```json
116
+ {
117
+ "pi-memory-mem0": {
118
+ "mode": "open-source",
119
+ "oss": {
120
+ "vectorStore": {
121
+ "provider": "qdrant",
122
+ "config": { "url": "http://localhost:6333" }
123
+ }
124
+ }
125
+ }
126
+ }
127
+ ```
128
+
129
+ Supported vector store providers: `memory` (default), `qdrant`, `redis`, `pgvector`, `supabase`.
130
+
131
+ When using an external vector store, the SQLite snapshot is not needed (the vector store handles its own persistence).
132
+
92
133
  ## Configuration Reference
93
134
 
94
135
  | Field | Type | Default | Description |
@@ -101,71 +142,50 @@ Defaults to OpenAI `text-embedding-3-small` (embedding) + `gpt-4.1-nano` (extrac
101
142
  | `useRegistryKeys` | boolean | `true` | Whether OSS mode resolves keys from pi registry |
102
143
  | `oss.llm` | object | OpenAI gpt-4.1-nano | OSS extraction model |
103
144
  | `oss.embedder` | object | OpenAI text-embedding-3-small | OSS embedding model |
104
- | `oss.vectorStore` | object | SQLite (default) | Custom vector store |
105
- | `oss.disableHistory` | boolean | `false` | Disable operation history |
145
+ | `oss.vectorStore` | object | `memory` (in-memory) | Custom vector store config |
146
+ | `oss.snapshotDbPath` | string | `<home>/memories/mem0-snapshot.db` | SQLite snapshot file path |
147
+ | `oss.disableHistory` | boolean | `false` | Disable mem0 operation history |
106
148
 
107
- ## Installation Notes
149
+ ## Data Storage
108
150
 
109
- Open-Source mode depends on `better-sqlite3` (native addon, transitive dependency of `mem0ai`).
151
+ | Mode | Vector Data | Snapshot | History |
152
+ |------|-------------|----------|---------|
153
+ | Platform | Mem0 Cloud | N/A | Cloud-managed |
154
+ | Open-Source (default) | In-memory | `<home>/memories/mem0-snapshot.db` | `~/.mem0/history.db` |
155
+ | Open-Source (qdrant) | Qdrant server | Not used | `~/.mem0/history.db` |
110
156
 
111
- **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.
157
+ The `home` directory is resolved by the host application and passed via `CreateProviderOptions.homeDir`.
112
158
 
113
- **For standalone users**: If your project's pnpm config blocks build scripts, add to your root `package.json`:
159
+ ## Provider Mapping
114
160
 
115
- ```json
116
- {
117
- "pnpm": {
118
- "onlyBuiltDependencies": ["better-sqlite3"]
119
- }
120
- }
121
- ```
161
+ When a provider name doesn't match mem0's built-in list, the extension uses the model registry's `api` field to map it:
122
162
 
123
- Or run `pnpm approve-builds` to approve manually.
163
+ | Registry `api` field | Mapped to mem0 provider |
164
+ |---------------------|------------------------|
165
+ | `openai-completions`, `openai-responses` | `openai` |
166
+ | `anthropic-messages` | `anthropic` |
167
+ | `azure-*` | `azure_openai` |
168
+ | `google-*`, `gemini-*` | `gemini` |
124
169
 
125
- **System requirements**: Node.js >= 22, build toolchain (macOS: Xcode CLI Tools, Linux: `build-essential`, Windows: `windows-build-tools`). In most cases, `better-sqlite3` downloads a prebuilt binary and does not require local compilation.
170
+ This happens transparently just configure the provider name as it appears in your `models.json`.
126
171
 
127
- ## Data Storage Location
128
-
129
- | Mode | Location |
130
- |------|----------|
131
- | Platform | Mem0 Cloud (api.mem0.ai) |
132
- | Open-Source | `~/.pi/agent/memories/mem0.db` (SQLite, alongside pi-memory's MEMORY.md/USER.md) |
133
-
134
- Customizable via `oss.vectorStore.config.dbPath`. The `PI_AGENT_HOME` environment variable changes the default directory.
135
-
136
- ## API Key Resolution (OSS Mode)
137
-
138
- LLM and Embedder API keys are **resolved independently**, in this order:
139
-
140
- 1. Explicit config in `oss.llm.config.apiKey` / `oss.embedder.config.apiKey`
141
- 2. Pi model registry key for the corresponding provider (when `useRegistryKeys: true`)
142
- 3. Environment variables (`OPENAI_API_KEY`, `DEEPSEEK_API_KEY`, etc. — read by mem0 SDK internally)
172
+ ## Installation Notes
143
173
 
144
- For example, `"llm": { "provider": "deepseek" }` + `"embedder": { "provider": "openai" }` resolves the deepseek key for LLM and the openai key for embedder, each from pi's registry.
174
+ Open-Source mode depends on `better-sqlite3` (native addon, transitive dependency of `mem0ai`) for history and snapshot persistence.
145
175
 
146
- ### Proxy API Calls (e.g. amaster)
176
+ **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.
147
177
 
148
- If your embedding/LLM goes through a unified proxy (like amaster credits), configure `baseUrl` forwarding:
178
+ **For standalone users**: If your project's pnpm config blocks build scripts, add to your root `package.json`:
149
179
 
150
180
  ```json
151
181
  {
152
- "pi-memory-mem0": {
153
- "mode": "open-source",
154
- "oss": {
155
- "llm": {
156
- "provider": "openai",
157
- "config": { "model": "deepseek-v4", "baseUrl": "https://credits.amaster.ai/v1" }
158
- },
159
- "embedder": {
160
- "provider": "openai",
161
- "config": { "model": "text-embedding-3-small", "baseUrl": "https://credits.amaster.ai/v1" }
162
- }
163
- }
182
+ "pnpm": {
183
+ "onlyBuiltDependencies": ["better-sqlite3"]
164
184
  }
165
185
  }
166
186
  ```
167
187
 
168
- Keys resolve from pi registry's `openai` provider, but requests are sent to the amaster endpoint.
188
+ **Graceful degradation**: If `better-sqlite3` fails to load (e.g. Node version mismatch in Electron), the extension still works — history and snapshot are automatically disabled, running in pure in-memory mode.
169
189
 
170
190
  ## Tools
171
191
 
@@ -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;AA2BpE,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CAkI5D"}
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,CAwK5D"}
package/dist/index.js CHANGED
@@ -8,10 +8,9 @@
8
8
  * Configuration via settings.json key "pi-memory-mem0".
9
9
  * Supports ${ENV_VAR:-fallback} in all string values.
10
10
  */
11
- import { loadPiSettings } from '@amaster.ai/pi-shared/settings';
11
+ import { loadPiSettings, resolveHome } from '@amaster.ai/pi-shared/settings';
12
12
  import { Prefetch } from './prefetch.js';
13
13
  import { createMem0Provider } from './provider.js';
14
- import { TurnSync } from './sync.js';
15
14
  import { createMem0Tools } from './tools.js';
16
15
  const SETTINGS_KEY = 'pi-memory-mem0';
17
16
  const STATUS_KEY = 'mem0';
@@ -36,8 +35,10 @@ function resolveUserId(configUserId) {
36
35
  }
37
36
  export default function mem0Extension(pi) {
38
37
  let provider;
39
- let sync;
40
38
  let prefetch;
39
+ let userId = '';
40
+ let lastUserText = '';
41
+ let syncing = false;
41
42
  pi.on('session_start', async (_event, ctx) => {
42
43
  const config = loadConfig(ctx.cwd);
43
44
  const mode = config.mode ?? 'platform';
@@ -49,12 +50,26 @@ export default function mem0Extension(pi) {
49
50
  try {
50
51
  provider = await createMem0Provider({
51
52
  config,
52
- resolveKey: async (providerName) => {
53
+ homeDir: resolveHome(),
54
+ resolveProvider: async (providerName) => {
53
55
  const registry = ctx.modelRegistry;
54
- if (registry.getApiKeyForProvider) {
55
- return registry.getApiKeyForProvider(providerName);
56
+ if (!registry.getApiKeyForProvider)
57
+ return undefined;
58
+ let model;
59
+ if (registry.getAll) {
60
+ model = registry.getAll().find((m) => m.provider === providerName);
56
61
  }
57
- return undefined;
62
+ const apiKey = await registry.getApiKeyForProvider(providerName);
63
+ if (!apiKey && !model)
64
+ return undefined;
65
+ const result = {};
66
+ if (apiKey)
67
+ result.apiKey = apiKey;
68
+ if (model?.baseUrl)
69
+ result.baseUrl = model.baseUrl;
70
+ if (model?.api)
71
+ result.api = model.api;
72
+ return result;
58
73
  },
59
74
  });
60
75
  }
@@ -63,8 +78,7 @@ export default function mem0Extension(pi) {
63
78
  ctx.ui.notify(`Mem0 init failed: ${err instanceof Error ? err.message : String(err)}`, 'error');
64
79
  return;
65
80
  }
66
- const userId = resolveUserId(config.userId);
67
- sync = new TurnSync(provider, userId);
81
+ userId = resolveUserId(config.userId);
68
82
  prefetch = new Prefetch(provider, userId, {
69
83
  topK: config.topK ?? 5,
70
84
  });
@@ -73,18 +87,36 @@ export default function mem0Extension(pi) {
73
87
  pi.registerTool(tool);
74
88
  }
75
89
  });
90
+ pi.on('input', async (event) => {
91
+ if (!prefetch)
92
+ return;
93
+ const text = event.text ?? '';
94
+ if (text) {
95
+ prefetch.queue(text);
96
+ lastUserText = text;
97
+ }
98
+ });
76
99
  pi.on('turn_end', async (event) => {
77
- if (!sync || !prefetch)
100
+ if (!provider || !lastUserText)
78
101
  return;
79
102
  const msg = event.message;
80
103
  const text = extractText(msg);
81
- if (!text)
104
+ if (!text || msg.role !== 'assistant')
82
105
  return;
83
- if (msg.role === 'user') {
84
- prefetch.queue(text);
106
+ if (!syncing) {
107
+ syncing = true;
108
+ const userText = lastUserText;
109
+ lastUserText = '';
110
+ provider
111
+ .add([
112
+ { role: 'user', content: userText },
113
+ { role: 'assistant', content: text },
114
+ ], { userId })
115
+ .catch(() => { })
116
+ .finally(() => {
117
+ syncing = false;
118
+ });
85
119
  }
86
- // Buffer messages for paired sync
87
- sync.onMessage(msg.role ?? '', text);
88
120
  });
89
121
  pi.on('before_agent_start', async (event) => {
90
122
  if (!prefetch)
@@ -98,8 +130,9 @@ export default function mem0Extension(pi) {
98
130
  });
99
131
  pi.on('session_shutdown', async () => {
100
132
  provider = undefined;
101
- sync = undefined;
102
133
  prefetch = undefined;
134
+ lastUserText = '';
135
+ syncing = false;
103
136
  });
104
137
  pi.registerCommand('mem0', {
105
138
  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":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -3,7 +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: local SQLite vector store + LLM extraction via configured provider
6
+ * - OSS mode: in-memory vector store + LLM extraction via configured provider
7
+ *
8
+ * In OSS mode, a SQLite snapshot layer persists memories to disk so they survive
9
+ * process restarts. On init, memories are restored from SQLite into the in-memory
10
+ * vector store. After each add(), a full snapshot is asynchronously written back.
7
11
  */
8
12
  import type { AddResult, Mem0ExtensionConfig, MemoryItem } from './types.js';
9
13
  export interface Mem0Provider {
@@ -22,12 +26,51 @@ export interface Mem0Provider {
22
26
  userId: string;
23
27
  }): Promise<MemoryItem[]>;
24
28
  }
29
+ export declare class SqliteSnapshotStore {
30
+ private db;
31
+ constructor(dbPath: string);
32
+ loadAll(userId: string): Array<{
33
+ id: string;
34
+ memory: string;
35
+ created_at?: string;
36
+ updated_at?: string;
37
+ }>;
38
+ loadAllUsers(): Array<{
39
+ userId: string;
40
+ items: Array<{
41
+ id: string;
42
+ memory: string;
43
+ }>;
44
+ }>;
45
+ replaceAll(userId: string, items: MemoryItem[]): void;
46
+ close(): void;
47
+ static tryCreate(dbPath: string): SqliteSnapshotStore | null;
48
+ }
25
49
  /** Optional key resolver — pulls API keys from pi's model registry. */
26
50
  export type KeyResolver = (provider: string) => Promise<string | undefined>;
51
+ /** Resolved provider info from the model registry. */
52
+ export interface ResolvedProviderInfo {
53
+ apiKey?: string;
54
+ baseUrl?: string;
55
+ /** API type from model registry, e.g. "openai-completions", "anthropic-messages" */
56
+ api?: string;
57
+ }
58
+ /** Full provider resolver — returns key, baseUrl, and api type from the model registry. */
59
+ export type ProviderResolver = (provider: string) => Promise<ResolvedProviderInfo | undefined>;
60
+ /**
61
+ * Maps a pi model registry `api` field to a mem0-compatible provider name.
62
+ * mem0ai supports: openai, ollama, lmstudio, google/gemini, azure_openai, langchain (embedder)
63
+ * openai, anthropic, groq, ollama, lmstudio, google/gemini, azure_openai, mistral, deepseek, langchain (llm)
64
+ */
65
+ export declare function mapApiToMem0Provider(api: string | undefined, fallback: string): string;
27
66
  export interface CreateProviderOptions {
28
67
  config: Mem0ExtensionConfig;
29
- /** Resolve API key from pi model registry by provider name. */
68
+ /** Resolve API key from pi model registry by provider name. @deprecated Use resolveProvider instead. */
30
69
  resolveKey?: KeyResolver;
70
+ /** Full provider resolver — returns key, baseUrl, and api type from the model registry. */
71
+ resolveProvider?: ProviderResolver;
72
+ /** Home directory for default snapshot db path. Falls back to ~/.amaster */
73
+ homeDir?: string;
31
74
  }
32
75
  export declare function createMem0Provider(opts: CreateProviderOptions): Promise<Mem0Provider>;
33
76
  //# sourceMappingURL=provider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,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,CAAA;KAAE,GACxC,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;CACzD;AA8FD,uEAAuE;AACvE,MAAM,MAAM,WAAW,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;AA8G5E,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,mBAAmB,CAAC;IAC5B,+DAA+D;IAC/D,UAAU,CAAC,EAAE,WAAW,CAAC;CAC1B;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,YAAY,CAAC,CAe3F"}
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,CAAA;KAAE,GACxC,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;CACzD;AAyGD,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,EAAE,CAAiB;gBAEf,MAAM,EAAE,MAAM;IAmB1B,OAAO,CACL,MAAM,EAAE,MAAM,GACb,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAMlF,YAAY,IAAI,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC;IAgBvF,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,IAAI;IAcrD,KAAK,IAAI,IAAI;IAQb,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI;CAO7D;AAMD,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;AA0MD,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,mBAAmB,CAAC;IAC5B,wGAAwG;IACxG,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB,2FAA2F;IAC3F,eAAe,CAAC,EAAE,gBAAgB,CAAC;IACnC,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,YAAY,CAAC,CAuB3F"}
package/dist/provider.js CHANGED
@@ -3,10 +3,15 @@
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: local SQLite vector store + LLM extraction via configured provider
6
+ * - OSS mode: in-memory vector store + LLM extraction via configured provider
7
+ *
8
+ * In OSS mode, a SQLite snapshot layer persists memories to disk so they survive
9
+ * process restarts. On init, memories are restored from SQLite into the in-memory
10
+ * vector store. After each add(), a full snapshot is asynchronously written back.
7
11
  */
8
- import { join } from 'node:path';
9
- import { resolveHome } from '@amaster.ai/pi-shared/settings';
12
+ import { mkdirSync } from 'node:fs';
13
+ import { createRequire } from 'node:module';
14
+ import { dirname, join } from 'node:path';
10
15
  // ---------------------------------------------------------------------------
11
16
  // Normalizers
12
17
  // ---------------------------------------------------------------------------
@@ -84,14 +89,106 @@ class PlatformProvider {
84
89
  return normalizeResults(results);
85
90
  }
86
91
  }
92
+ export class SqliteSnapshotStore {
93
+ db;
94
+ constructor(dbPath) {
95
+ mkdirSync(dirname(dbPath), { recursive: true });
96
+ const req = createRequire(import.meta.url);
97
+ const mem0OssPath = req.resolve('mem0ai/oss');
98
+ const reqFromMem0 = createRequire(mem0OssPath);
99
+ const BS3 = reqFromMem0('better-sqlite3');
100
+ this.db = new BS3(dbPath);
101
+ this.db.pragma('journal_mode = WAL');
102
+ this.db.exec(`
103
+ CREATE TABLE IF NOT EXISTS memories (
104
+ id TEXT PRIMARY KEY,
105
+ user_id TEXT NOT NULL,
106
+ memory TEXT NOT NULL,
107
+ created_at TEXT,
108
+ updated_at TEXT
109
+ )
110
+ `);
111
+ }
112
+ loadAll(userId) {
113
+ return this.db
114
+ .prepare('SELECT id, memory, created_at, updated_at FROM memories WHERE user_id = ?')
115
+ .all(userId);
116
+ }
117
+ loadAllUsers() {
118
+ const rows = this.db
119
+ .prepare('SELECT user_id, id, memory FROM memories')
120
+ .all();
121
+ const grouped = new Map();
122
+ for (const row of rows) {
123
+ let list = grouped.get(row.user_id);
124
+ if (!list) {
125
+ list = [];
126
+ grouped.set(row.user_id, list);
127
+ }
128
+ list.push({ id: row.id, memory: row.memory });
129
+ }
130
+ return Array.from(grouped.entries()).map(([userId, items]) => ({ userId, items }));
131
+ }
132
+ replaceAll(userId, items) {
133
+ const del = this.db.prepare('DELETE FROM memories WHERE user_id = ?');
134
+ const ins = this.db.prepare('INSERT OR REPLACE INTO memories (id, user_id, memory, created_at, updated_at) VALUES (?, ?, ?, ?, ?)');
135
+ const tx = this.db.transaction(() => {
136
+ del.run(userId);
137
+ for (const item of items) {
138
+ ins.run(item.id, userId, item.memory, item.created_at ?? null, item.updated_at ?? null);
139
+ }
140
+ });
141
+ tx();
142
+ }
143
+ close() {
144
+ try {
145
+ this.db.close();
146
+ }
147
+ catch {
148
+ /* ignore */
149
+ }
150
+ }
151
+ static tryCreate(dbPath) {
152
+ try {
153
+ return new SqliteSnapshotStore(dbPath);
154
+ }
155
+ catch {
156
+ return null;
157
+ }
158
+ }
159
+ }
160
+ /**
161
+ * Maps a pi model registry `api` field to a mem0-compatible provider name.
162
+ * mem0ai supports: openai, ollama, lmstudio, google/gemini, azure_openai, langchain (embedder)
163
+ * openai, anthropic, groq, ollama, lmstudio, google/gemini, azure_openai, mistral, deepseek, langchain (llm)
164
+ */
165
+ export function mapApiToMem0Provider(api, fallback) {
166
+ if (!api)
167
+ return fallback;
168
+ if (api.startsWith('openai'))
169
+ return 'openai';
170
+ if (api.startsWith('anthropic'))
171
+ return 'anthropic';
172
+ if (api.startsWith('azure'))
173
+ return 'azure_openai';
174
+ if (api.startsWith('google') || api.startsWith('gemini'))
175
+ return 'gemini';
176
+ return fallback;
177
+ }
87
178
  class OSSProvider {
88
179
  ossConfig;
89
180
  resolveKey;
181
+ resolveProvider;
182
+ snapshotDbPath;
90
183
  memory;
91
184
  initPromise = null;
92
- constructor(ossConfig, resolveKey) {
185
+ snapshot = null;
186
+ syncingSnapshot = false;
187
+ constructor(ossConfig, resolveKey, resolveProvider, snapshotDbPath) {
93
188
  this.ossConfig = ossConfig;
94
189
  this.resolveKey = resolveKey;
190
+ this.resolveProvider = resolveProvider;
191
+ this.snapshotDbPath = snapshotDbPath;
95
192
  }
96
193
  async ensureMemory() {
97
194
  if (this.memory)
@@ -105,18 +202,41 @@ class OSSProvider {
105
202
  const config = {};
106
203
  const defaultEmbedder = { provider: 'openai', config: { model: 'text-embedding-3-small' } };
107
204
  const defaultLlm = { provider: 'openai', config: { model: 'gpt-4.1-nano' } };
108
- const embedderProvider = this.ossConfig?.embedder?.provider || defaultEmbedder.provider;
205
+ let embedderProvider = this.ossConfig?.embedder?.provider || defaultEmbedder.provider;
109
206
  const embedderCfg = {
110
207
  ...defaultEmbedder.config,
111
208
  ...(this.ossConfig?.embedder?.config ?? {}),
112
209
  };
113
- const llmProvider = this.ossConfig?.llm?.provider || defaultLlm.provider;
210
+ let llmProvider = this.ossConfig?.llm?.provider || defaultLlm.provider;
114
211
  const llmCfg = {
115
212
  ...defaultLlm.config,
116
213
  ...(this.ossConfig?.llm?.config ?? {}),
117
214
  };
118
- // Resolve API keys from pi model registry if not explicitly set
119
- if (this.resolveKey) {
215
+ // Resolve provider info (apiKey + baseUrl + api) from pi model registry
216
+ if (this.resolveProvider) {
217
+ if (!embedderCfg.apiKey && !embedderCfg.api_key) {
218
+ const info = await this.resolveProvider(embedderProvider);
219
+ if (info) {
220
+ if (info.apiKey)
221
+ embedderCfg.apiKey = info.apiKey;
222
+ if (info.baseUrl)
223
+ embedderCfg.baseURL = info.baseUrl;
224
+ embedderProvider = mapApiToMem0Provider(info.api, embedderProvider);
225
+ }
226
+ }
227
+ if (!llmCfg.apiKey && !llmCfg.api_key) {
228
+ const info = await this.resolveProvider(llmProvider);
229
+ if (info) {
230
+ if (info.apiKey)
231
+ llmCfg.apiKey = info.apiKey;
232
+ if (info.baseUrl)
233
+ llmCfg.baseURL = info.baseUrl;
234
+ llmProvider = mapApiToMem0Provider(info.api, llmProvider);
235
+ }
236
+ }
237
+ }
238
+ else if (this.resolveKey) {
239
+ // Legacy fallback: only resolve API keys
120
240
  if (!embedderCfg.apiKey && !embedderCfg.api_key) {
121
241
  const key = await this.resolveKey(embedderProvider);
122
242
  if (key)
@@ -134,10 +254,9 @@ class OSSProvider {
134
254
  config.vectorStore = this.ossConfig.vectorStore;
135
255
  }
136
256
  else {
137
- // Default: SQLite in <PI_AGENT_HOME>/memories/mem0.db (alongside pi-memory's files)
138
257
  config.vectorStore = {
139
- provider: 'sqlite',
140
- config: { dbPath: join(resolveHome(), 'memories', 'mem0.db') },
258
+ provider: 'memory',
259
+ config: { collectionName: 'pi_mem0' },
141
260
  };
142
261
  }
143
262
  if (this.ossConfig?.disableHistory) {
@@ -148,9 +267,77 @@ class OSSProvider {
148
267
  async _init() {
149
268
  const mod = await import('mem0ai/oss');
150
269
  const Memory = mod.Memory ?? mod.default;
270
+ // Detect broken better-sqlite3 (Node version mismatch) — disable history if so
271
+ let sqliteOk = true;
272
+ if (!this.ossConfig?.disableHistory) {
273
+ try {
274
+ const req = createRequire(import.meta.url);
275
+ const mem0OssPath = req.resolve('mem0ai/oss');
276
+ const reqFromMem0 = createRequire(mem0OssPath);
277
+ const BS3 = reqFromMem0('better-sqlite3');
278
+ const testDb = new BS3(':memory:');
279
+ testDb.close();
280
+ }
281
+ catch {
282
+ sqliteOk = false;
283
+ }
284
+ }
151
285
  const builtConfig = await this._buildConfig();
152
- this.memory = new Memory(builtConfig);
153
- await this.memory.getAll({ filters: { user_id: '__warmup__' } });
286
+ if (!sqliteOk)
287
+ builtConfig.disableHistory = true;
288
+ let mem;
289
+ try {
290
+ mem = new Memory(builtConfig);
291
+ }
292
+ catch (err) {
293
+ if (sqliteOk && !this.ossConfig?.disableHistory) {
294
+ builtConfig.disableHistory = true;
295
+ mem = new Memory(builtConfig);
296
+ }
297
+ else {
298
+ throw err;
299
+ }
300
+ }
301
+ this.memory = mem;
302
+ // Initialize SQLite snapshot store for persistence
303
+ if (this.snapshotDbPath && sqliteOk) {
304
+ this.snapshot = SqliteSnapshotStore.tryCreate(this.snapshotDbPath);
305
+ }
306
+ // Restore memories from snapshot into the in-memory vector store
307
+ if (this.snapshot) {
308
+ const allUsers = this.snapshot.loadAllUsers();
309
+ let totalRestored = 0;
310
+ for (const { userId: uid, items } of allUsers) {
311
+ for (const item of items) {
312
+ try {
313
+ await mem.add([{ role: 'user', content: item.memory }], { userId: uid, infer: false });
314
+ totalRestored++;
315
+ }
316
+ catch {
317
+ /* skip failed restores */
318
+ }
319
+ }
320
+ }
321
+ if (totalRestored > 0) {
322
+ console.log(`[mem0] restored ${totalRestored} memories from snapshot`);
323
+ }
324
+ }
325
+ await mem.getAll({ filters: { user_id: '__warmup__' } });
326
+ }
327
+ asyncSnapshotSync(userId) {
328
+ if (!this.snapshot || this.syncingSnapshot)
329
+ return;
330
+ this.syncingSnapshot = true;
331
+ this.memory
332
+ .getAll({ filters: { user_id: userId } })
333
+ .then((results) => {
334
+ const items = normalizeResults(results);
335
+ this.snapshot.replaceAll(userId, items);
336
+ })
337
+ .catch(() => { })
338
+ .finally(() => {
339
+ this.syncingSnapshot = false;
340
+ });
154
341
  }
155
342
  async add(messages, opts) {
156
343
  await this.ensureMemory();
@@ -158,6 +345,7 @@ class OSSProvider {
158
345
  if (opts.infer === false)
159
346
  addOpts.infer = false;
160
347
  const result = await this.memory.add(messages, addOpts);
348
+ this.asyncSnapshotSync(opts.userId);
161
349
  return result;
162
350
  }
163
351
  async search(query, opts) {
@@ -179,11 +367,13 @@ class OSSProvider {
179
367
  }
180
368
  }
181
369
  export async function createMem0Provider(opts) {
182
- const { config, resolveKey } = opts;
370
+ const { config, resolveKey, resolveProvider, homeDir } = opts;
183
371
  const mode = config.mode ?? 'platform';
184
372
  if (mode === 'open-source') {
185
373
  const useRegistry = config.useRegistryKeys !== false;
186
- const provider = new OSSProvider(config.oss, useRegistry ? resolveKey : undefined);
374
+ const snapshotDbPath = config.oss?.snapshotDbPath ??
375
+ (homeDir ? join(homeDir, 'memories', 'mem0-snapshot.db') : undefined);
376
+ const provider = new OSSProvider(config.oss, useRegistry ? resolveKey : undefined, useRegistry ? resolveProvider : undefined, snapshotDbPath);
187
377
  await provider.ensureMemory();
188
378
  return provider;
189
379
  }
@@ -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":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAkB1C,8EAA8E;AAC9E,cAAc;AACd,8EAA8E;AAE9E,SAAS,mBAAmB,CAAC,GAA4B;IACvD,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC;QACzC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;QAC3D,KAAK,EAAE,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;QAC5D,OAAO,EAAE,GAAG,CAAC,OAA6B;QAC1C,UAAU,EAAE,CAAC,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,SAAS,CAAuB;QACnE,UAAU,EAAE,CAAC,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,SAAS,CAAuB;KACpE,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAY;IACpC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QACpB,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAA+B,CAAC,CAAC,CAAC;IACjF,IACE,GAAG;QACH,OAAO,GAAG,KAAK,QAAQ;QACvB,SAAS,IAAI,GAAG;QAChB,KAAK,CAAC,OAAO,CAAE,GAA4B,CAAC,OAAO,CAAC,EACpD,CAAC;QACD,OAAQ,GAA8B,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAC1D,mBAAmB,CAAC,IAA+B,CAAC,CACrD,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,8EAA8E;AAC9E,oBAAoB;AACpB,8EAA8E;AAE9E,MAAM,gBAAgB;IAKD;IACA;IALX,MAAM,CAAU;IAChB,WAAW,GAAyB,IAAI,CAAC;IAEjD,YACmB,MAAc,EACd,OAAgB;QADhB,WAAM,GAAN,MAAM,CAAQ;QACd,YAAO,GAAP,OAAO,CAAS;IAChC,CAAC;IAEI,KAAK,CAAC,YAAY;QACxB,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QACxB,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC,WAAW,CAAC;QAC9C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAEO,KAAK,CAAC,KAAK;QACjB,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,IAAI,GAA4B,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;QAC9D,IAAI,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC;QAC3C,IAAI,CAAC,MAAM,GAAG,IAAI,YAAY,CAAC,IAAa,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,GAAG,CACP,QAAkD,EAClD,IAAyC;QAEzC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1B,MAAM,OAAO,GAA4B,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;QACjE,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK;YAAE,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;QAChD,MAAM,MAAM,GAAG,MAAO,IAAI,CAAC,MAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACjE,OAAO,MAAmB,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAa,EAAE,IAAuC;QACjE,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1B,MAAM,UAAU,GAA4B;YAC1C,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE;SAClC,CAAC;QACF,IAAI,IAAI,CAAC,IAAI;YAAE,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAC3C,MAAM,OAAO,GAAG,MAAO,IAAI,CAAC,MAAc,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QACrE,OAAO,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAwB;QACnC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,MAAO,IAAI,CAAC,MAAc,CAAC,MAAM,CAAC;YAChD,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE;SAClC,CAAC,CAAC;QACH,OAAO,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;CACF;AAiBD,MAAM,OAAO,mBAAmB;IACtB,EAAE,CAAiB;IAE3B,YAAY,MAAc;QACxB,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3C,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAC9C,MAAM,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;QAC/C,MAAM,GAAG,GAAG,WAAW,CAAC,gBAAgB,CAAC,CAAC;QAC1C,IAAI,CAAC,EAAE,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;QAC1B,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;QACrC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;;;;;;;;KAQZ,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CACL,MAAc;QAEd,OAAO,IAAI,CAAC,EAAE;aACX,OAAO,CAAC,2EAA2E,CAAC;aACpF,GAAG,CAAC,MAAM,CAAC,CAAC;IACjB,CAAC;IAED,YAAY;QACV,MAAM,IAAI,GAA2D,IAAI,CAAC,EAAE;aACzE,OAAO,CAAC,0CAA0C,CAAC;aACnD,GAAG,EAAE,CAAC;QACT,MAAM,OAAO,GAAG,IAAI,GAAG,EAAiD,CAAC;QACzE,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACpC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,IAAI,GAAG,EAAE,CAAC;gBACV,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACjC,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QAChD,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IACrF,CAAC;IAED,UAAU,CAAC,MAAc,EAAE,KAAmB;QAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC;QACtE,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CACzB,sGAAsG,CACvG,CAAC;QACF,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;YAClC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAChB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC;YAC1F,CAAC;QACH,CAAC,CAAC,CAAC;QACH,EAAE,EAAE,CAAC;IACP,CAAC;IAED,KAAK;QACH,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;QAClB,CAAC;QAAC,MAAM,CAAC;YACP,YAAY;QACd,CAAC;IACH,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,MAAc;QAC7B,IAAI,CAAC;YACH,OAAO,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAC;QACzC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;CACF;AAoBD;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAAuB,EAAE,QAAgB;IAC5E,IAAI,CAAC,GAAG;QAAE,OAAO,QAAQ,CAAC;IAC1B,IAAI,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC9C,IAAI,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC;QAAE,OAAO,WAAW,CAAC;IACpD,IAAI,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,cAAc,CAAC;IACnD,IAAI,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC1E,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,WAAW;IAOI;IACA;IACA;IACA;IATX,MAAM,CAAU;IAChB,WAAW,GAAyB,IAAI,CAAC;IACzC,QAAQ,GAA+B,IAAI,CAAC;IAC5C,eAAe,GAAG,KAAK,CAAC;IAEhC,YACmB,SAAiD,EACjD,UAAwB,EACxB,eAAkC,EAClC,cAAuB;QAHvB,cAAS,GAAT,SAAS,CAAwC;QACjD,eAAU,GAAV,UAAU,CAAc;QACxB,oBAAe,GAAf,eAAe,CAAmB;QAClC,mBAAc,GAAd,cAAc,CAAS;IACvC,CAAC;IAEI,KAAK,CAAC,YAAY;QACxB,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QACxB,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC,WAAW,CAAC;QAC9C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAEO,KAAK,CAAC,YAAY;QACxB,MAAM,MAAM,GAA4B,EAAE,CAAC;QAE3C,MAAM,eAAe,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,wBAAwB,EAAE,EAAE,CAAC;QAC5F,MAAM,UAAU,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,CAAC;QAE7E,IAAI,gBAAgB,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,IAAI,eAAe,CAAC,QAAQ,CAAC;QACtF,MAAM,WAAW,GAA4B;YAC3C,GAAG,eAAe,CAAC,MAAM;YACzB,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,IAAI,EAAE,CAAC;SAC5C,CAAC;QAEF,IAAI,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,QAAQ,IAAI,UAAU,CAAC,QAAQ,CAAC;QACvE,MAAM,MAAM,GAA4B;YACtC,GAAG,UAAU,CAAC,MAAM;YACpB,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,MAAM,IAAI,EAAE,CAAC;SACvC,CAAC;QAEF,wEAAwE;QACxE,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;gBAChD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;gBAC1D,IAAI,IAAI,EAAE,CAAC;oBACT,IAAI,IAAI,CAAC,MAAM;wBAAE,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;oBAClD,IAAI,IAAI,CAAC,OAAO;wBAAE,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;oBACrD,gBAAgB,GAAG,oBAAoB,CAAC,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;gBACtE,CAAC;YACH,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACtC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;gBACrD,IAAI,IAAI,EAAE,CAAC;oBACT,IAAI,IAAI,CAAC,MAAM;wBAAE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;oBAC7C,IAAI,IAAI,CAAC,OAAO;wBAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;oBAChD,WAAW,GAAG,oBAAoB,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;gBAC5D,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAC3B,yCAAyC;YACzC,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;gBAChD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;gBACpD,IAAI,GAAG;oBAAE,WAAW,CAAC,MAAM,GAAG,GAAG,CAAC;YACpC,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACtC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;gBAC/C,IAAI,GAAG;oBAAE,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC;YAC/B,CAAC;QACH,CAAC;QAED,MAAM,CAAC,QAAQ,GAAG,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;QACtE,MAAM,CAAC,GAAG,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAEvD,IAAI,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,CAAC;YAChC,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;QAClD,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,WAAW,GAAG;gBACnB,QAAQ,EAAE,QAAQ;gBAClB,MAAM,EAAE,EAAE,cAAc,EAAE,SAAS,EAAE;aACtC,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,EAAE,cAAc,EAAE,CAAC;YACnC,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC;QAC/B,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,KAAK;QACjB,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;QACvC,MAAM,MAAM,GAAI,GAAW,CAAC,MAAM,IAAK,GAAW,CAAC,OAAO,CAAC;QAE3D,+EAA+E;QAC/E,IAAI,QAAQ,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,EAAE,CAAC;YACpC,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC3C,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;gBAC9C,MAAM,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;gBAC/C,MAAM,GAAG,GAAG,WAAW,CAAC,gBAAgB,CAAC,CAAC;gBAC1C,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;gBACnC,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,CAAC;YAAC,MAAM,CAAC;gBACP,QAAQ,GAAG,KAAK,CAAC;YACnB,CAAC;QACH,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC9C,IAAI,CAAC,QAAQ;YAAE,WAAW,CAAC,cAAc,GAAG,IAAI,CAAC;QAEjD,IAAI,GAAQ,CAAC;QACb,IAAI,CAAC;YACH,GAAG,GAAG,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,EAAE,CAAC;gBAChD,WAAW,CAAC,cAAc,GAAG,IAAI,CAAC;gBAClC,GAAG,GAAG,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC;YAChC,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;QAElB,mDAAmD;QACnD,IAAI,IAAI,CAAC,cAAc,IAAI,QAAQ,EAAE,CAAC;YACpC,IAAI,CAAC,QAAQ,GAAG,mBAAmB,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACrE,CAAC;QAED,iEAAiE;QACjE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;YAC9C,IAAI,aAAa,GAAG,CAAC,CAAC;YACtB,KAAK,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,QAAQ,EAAE,CAAC;gBAC9C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,IAAI,CAAC;wBACH,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;wBACvF,aAAa,EAAE,CAAC;oBAClB,CAAC;oBAAC,MAAM,CAAC;wBACP,0BAA0B;oBAC5B,CAAC;gBACH,CAAC;YACH,CAAC;YACD,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;gBACtB,OAAO,CAAC,GAAG,CAAC,mBAAmB,aAAa,yBAAyB,CAAC,CAAC;YACzE,CAAC;QACH,CAAC;QAED,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;IAC3D,CAAC;IAEO,iBAAiB,CAAC,MAAc;QACtC,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,eAAe;YAAE,OAAO;QACnD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,MAAc;aACjB,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC;aACxC,IAAI,CAAC,CAAC,OAAgB,EAAE,EAAE;YACzB,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;YACxC,IAAI,CAAC,QAAS,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC3C,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;aACf,OAAO,CAAC,GAAG,EAAE;YACZ,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC/B,CAAC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,GAAG,CACP,QAAkD,EAClD,IAAyC;QAEzC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1B,MAAM,OAAO,GAA4B,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;QACjE,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK;YAAE,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;QAChD,MAAM,MAAM,GAAG,MAAO,IAAI,CAAC,MAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACjE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpC,OAAO,MAAmB,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAa,EAAE,IAAuC;QACjE,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1B,MAAM,UAAU,GAA4B;YAC1C,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE;SAClC,CAAC;QACF,IAAI,IAAI,CAAC,IAAI;YAAE,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAC3C,MAAM,OAAO,GAAG,MAAO,IAAI,CAAC,MAAc,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QACrE,OAAO,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAwB;QACnC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,MAAO,IAAI,CAAC,MAAc,CAAC,MAAM,CAAC;YAChD,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE;SAClC,CAAC,CAAC;QACH,OAAO,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;CACF;AAgBD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAA2B;IAClE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAC9D,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,UAAU,CAAC;IAEvC,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;QAC3B,MAAM,WAAW,GAAG,MAAM,CAAC,eAAe,KAAK,KAAK,CAAC;QACrD,MAAM,cAAc,GAClB,MAAM,CAAC,GAAG,EAAE,cAAc;YAC1B,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACxE,MAAM,QAAQ,GAAG,IAAI,WAAW,CAC9B,MAAM,CAAC,GAAG,EACV,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,EACpC,WAAW,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,EACzC,cAAc,CACf,CAAC;QACF,MAAO,QAAgB,CAAC,YAAY,EAAE,CAAC;QACvC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,IAAI,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AAC5E,CAAC"}
package/dist/types.d.ts CHANGED
@@ -22,6 +22,8 @@ export interface Mem0ExtensionConfig {
22
22
  provider: string;
23
23
  config?: Record<string, unknown>;
24
24
  };
25
+ /** Path to SQLite file for memory snapshot persistence. Default: <home>/memories/mem0-snapshot.db */
26
+ snapshotDbPath?: string;
25
27
  disableHistory?: boolean;
26
28
  };
27
29
  /** User identifier for memory scoping. Supports ${USER}. */
@@ -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,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"}
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,qGAAqG;QACrG,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,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.2-beta.30",
3
+ "version": "0.1.2-beta.32",
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",
@@ -50,7 +50,7 @@
50
50
  },
51
51
  "dependencies": {
52
52
  "mem0ai": "^3.0.6",
53
- "@amaster.ai/pi-shared": "0.1.2-beta.30"
53
+ "@amaster.ai/pi-shared": "0.1.2-beta.32"
54
54
  },
55
55
  "peerDependencies": {
56
56
  "@earendil-works/pi-coding-agent": ">=0.74.0",
package/dist/sync.d.ts DELETED
@@ -1,16 +0,0 @@
1
- /**
2
- * Passive turn sync — sends conversation pairs to Mem0 for server-side extraction.
3
- * Buffers user and assistant messages, syncs as pairs.
4
- */
5
- import type { Mem0Provider } from './provider.js';
6
- export declare class TurnSync {
7
- private readonly provider;
8
- private readonly userId;
9
- private inflight;
10
- private lastUserText;
11
- constructor(provider: Mem0Provider, userId: string);
12
- /** Buffer a message. When we have a user+assistant pair, sync it. */
13
- onMessage(role: string, text: string): void;
14
- private sync;
15
- }
16
- //# sourceMappingURL=sync.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../src/sync.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,YAAY,CAAM;gBAEd,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM;IAKlD,qEAAqE;IACrE,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAY3C,OAAO,CAAC,IAAI;CAiBb"}
package/dist/sync.js DELETED
@@ -1,40 +0,0 @@
1
- /**
2
- * Passive turn sync — sends conversation pairs to Mem0 for server-side extraction.
3
- * Buffers user and assistant messages, syncs as pairs.
4
- */
5
- export class TurnSync {
6
- provider;
7
- userId;
8
- inflight = false;
9
- lastUserText = '';
10
- constructor(provider, userId) {
11
- this.provider = provider;
12
- this.userId = userId;
13
- }
14
- /** Buffer a message. When we have a user+assistant pair, sync it. */
15
- onMessage(role, text) {
16
- if (role === 'user') {
17
- this.lastUserText = text;
18
- return;
19
- }
20
- if (role === 'assistant' && text && this.lastUserText) {
21
- this.sync(this.lastUserText, text);
22
- this.lastUserText = '';
23
- }
24
- }
25
- sync(userContent, assistantContent) {
26
- if (this.inflight)
27
- return;
28
- this.inflight = true;
29
- this.provider
30
- .add([
31
- { role: 'user', content: userContent },
32
- { role: 'assistant', content: assistantContent },
33
- ], { userId: this.userId })
34
- .catch(() => { })
35
- .finally(() => {
36
- this.inflight = false;
37
- });
38
- }
39
- }
40
- //# sourceMappingURL=sync.js.map
package/dist/sync.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"sync.js","sourceRoot":"","sources":["../src/sync.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,OAAO,QAAQ;IACF,QAAQ,CAAe;IACvB,MAAM,CAAS;IACxB,QAAQ,GAAG,KAAK,CAAC;IACjB,YAAY,GAAG,EAAE,CAAC;IAE1B,YAAY,QAAsB,EAAE,MAAc;QAChD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,qEAAqE;IACrE,SAAS,CAAC,IAAY,EAAE,IAAY;QAClC,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACpB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,OAAO;QACT,CAAC;QAED,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtD,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;YACnC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;IAEO,IAAI,CAAC,WAAmB,EAAE,gBAAwB;QACxD,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAE1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,QAAQ;aACV,GAAG,CACF;YACE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE;YACtC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,gBAAgB,EAAE;SACjD,EACD,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CACxB;aACA,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;aACf,OAAO,CAAC,GAAG,EAAE;YACZ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACxB,CAAC,CAAC,CAAC;IACP,CAAC;CACF"}