darwin-agents 0.4.8 → 0.4.9
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/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,86 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.4.9] — 2026-05-22
|
|
4
|
+
|
|
5
|
+
Polish on top of v0.4.8. Adds spec-compliance, error classification,
|
|
6
|
+
per-call timeouts, and a Mem0 preset — all derived from a deep read of
|
|
7
|
+
the MCP TypeScript SDK + MCP spec 2025-11-25 + Mem0 MCP server source
|
|
8
|
+
(`mem0ai/mem0-mcp`).
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- **`McpBridgeError` / `McpBridgeProtocolError` / `McpBridgeTransportError`** —
|
|
13
|
+
exported error classes that discriminate JSON-RPC server errors
|
|
14
|
+
(`kind: 'protocol'`, numeric `code`) from local transport errors
|
|
15
|
+
(`kind: 'transport'`, stable string `code` ∈ `timeout` / `closed` /
|
|
16
|
+
`transient` / `child_exit` / `spawn_failed` / `http_status`). Callers
|
|
17
|
+
can `instanceof`-check to decide retry vs fail-loud without parsing
|
|
18
|
+
message text. Mirrors the `ProtocolError` vs `SdkError` split that
|
|
19
|
+
the MCP TypeScript SDK v2 uses internally; we keep our own classes to
|
|
20
|
+
preserve the zero-hard-deps policy.
|
|
21
|
+
|
|
22
|
+
- **Per-call `timeoutMs` override** on `save()` and `fetchRelevant()`.
|
|
23
|
+
Mirrors `client.callTool(..., { timeout })` from the MCP SDK. Useful
|
|
24
|
+
for one-off slow operations (large embedding searches) without
|
|
25
|
+
cranking the bridge-wide `requestTimeoutMs`.
|
|
26
|
+
|
|
27
|
+
```ts
|
|
28
|
+
await memory.fetchRelevant({ query: 'X', limit: 5, timeoutMs: 30_000 });
|
|
29
|
+
await memory.save(record, { timeoutMs: 5_000 });
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
- **`mem0Preset()`** — drop-in `Partial<McpMemoryConfig>` that wires
|
|
33
|
+
Darwin to the official `mem0ai/mem0-mcp` server with the right tool
|
|
34
|
+
names (`add_memory` + `search_memories` — NOT the `mem0_add` /
|
|
35
|
+
`mem0_search` guess from earlier docs) and arg shapes. Handles
|
|
36
|
+
user/agent/run scoping, default metadata, and the `memory` field in
|
|
37
|
+
result rows.
|
|
38
|
+
|
|
39
|
+
```ts
|
|
40
|
+
const memory = remoteMemory('https://api.mem0.ai/mcp', {
|
|
41
|
+
authHeader: `Bearer ${process.env.MEM0_KEY}`,
|
|
42
|
+
...mem0Preset({ userId: 'darwin-agent', defaultMetadata: { project: 'darwin' } }),
|
|
43
|
+
});
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### Fixed
|
|
47
|
+
|
|
48
|
+
- **MCP-Protocol-Version HTTP header** is now sent on every HTTP request,
|
|
49
|
+
per MCP spec 2025-11-25 §"HTTP Protocol Versioning". Without it,
|
|
50
|
+
strict servers MAY respond `400 Bad Request`. Previously the bridge
|
|
51
|
+
only carried the version inside the `initialize` payload, which left
|
|
52
|
+
every subsequent `tools/call` un-versioned at the transport layer.
|
|
53
|
+
The version defaults to `2025-11-25` and is honored when overridden
|
|
54
|
+
via `protocolVersion` in the bridge config.
|
|
55
|
+
|
|
56
|
+
- Internal raw `Error` throws in `rpcStdio` / `rpcHttp` / `onChildExit`
|
|
57
|
+
/ `ensureReady` / `close()` are now wrapped in the typed bridge error
|
|
58
|
+
classes above. Existing message-substring regex tests still pass.
|
|
59
|
+
|
|
60
|
+
### Changed
|
|
61
|
+
|
|
62
|
+
- `McpMemoryBridge.save(record, opts?)` accepts an optional second
|
|
63
|
+
argument with `{ timeoutMs }`. This is a structural super-type of
|
|
64
|
+
`FeedbackStore.save(record)` — callers using the base interface keep
|
|
65
|
+
working unchanged; the typed Darwin path now gets the extra knob.
|
|
66
|
+
|
|
67
|
+
### Tests
|
|
68
|
+
|
|
69
|
+
225/225 pass (was 211, +14). New coverage:
|
|
70
|
+
- HTTP header presence on initialize + tools/call (2 tests).
|
|
71
|
+
- Error-class discrimination — protocol vs http-status vs closed-bridge (3 tests).
|
|
72
|
+
- Per-call timeout precedence over bridge-level timeout, on both stdio
|
|
73
|
+
and http transports (2 tests).
|
|
74
|
+
- `mem0Preset()` — tool names, write-arg shape, scope alternatives,
|
|
75
|
+
read-result parsing (Mem0 `memory` field), structuredContent
|
|
76
|
+
shortcut, unknown-shape tolerance, end-to-end spread integration with
|
|
77
|
+
a mock Mem0 server (7 tests).
|
|
78
|
+
|
|
79
|
+
### Recommendation
|
|
80
|
+
|
|
81
|
+
Upgrade from v0.4.8 to v0.4.9 (`npm install darwin-agents@latest`). No
|
|
82
|
+
breaking changes to existing callers — all additions are opt-in.
|
|
83
|
+
|
|
3
84
|
## [0.4.8] — 2026-05-22
|
|
4
85
|
|
|
5
86
|
Hotfix on top of v0.4.7. Path resolution in the `exports` map pointed at
|
package/README.md
CHANGED
|
@@ -161,12 +161,11 @@ const memory = localMemory();
|
|
|
161
161
|
// Or any remote MCP-Memory server
|
|
162
162
|
// const memory = remoteMemory('https://your-mcp.example.com/mcp', { authHeader: `Bearer ${KEY}` });
|
|
163
163
|
|
|
164
|
-
// Or Mem0 with
|
|
164
|
+
// Or Mem0 with the built-in preset — handles tool names + arg shape for you
|
|
165
|
+
// import { mem0Preset } from 'darwin-agents/memory/bridge';
|
|
165
166
|
// const memory = remoteMemory('https://api.mem0.ai/mcp', {
|
|
166
167
|
// authHeader: `Bearer ${process.env.MEM0_KEY}`,
|
|
167
|
-
//
|
|
168
|
-
// readTool: 'mem0_search',
|
|
169
|
-
// mapWriteArgs: (rec) => ({ messages: [{ role: 'user', content: rec.content }], metadata: { tags: rec.tags } }),
|
|
168
|
+
// ...mem0Preset({ userId: 'darwin-agent', defaultMetadata: { project: 'darwin' } }),
|
|
170
169
|
// });
|
|
171
170
|
|
|
172
171
|
const result = await runClosedLoopTurn(
|
|
@@ -182,7 +181,7 @@ const result = await runClosedLoopTurn(
|
|
|
182
181
|
|---|---|---|---|
|
|
183
182
|
| **`@studiomeyer/local-memory-mcp`** (default) | `memory_learn` | `memory_search` | zero-config, single SQLite file, no cloud |
|
|
184
183
|
| Any self-hosted MCP-Memory server | `memory_learn` | `memory_search` | same wire, remote endpoint |
|
|
185
|
-
| Mem0 MCP | `
|
|
184
|
+
| **Mem0 MCP** (`mem0ai/mem0-mcp`) | `add_memory` | `search_memories` | use `...mem0Preset({ userId })` — handles tool names + arg shape + the `memory` field in result rows |
|
|
186
185
|
| Zep MCP | `zep_add` | `zep_search` | optional `mapWriteArgs` for `group_id` |
|
|
187
186
|
| Letta MCP | `archival_insert` | `archival_search` | optional `mapReadResult` for their envelope |
|
|
188
187
|
| Cognee MCP | `cognee_add` | `cognee_search` | optional mappers |
|
|
@@ -192,6 +191,50 @@ and arg shapes vary. One bridge, one reconnect path, one timeout policy.
|
|
|
192
191
|
The pattern matches the [MCP Bridge proxy paper (arXiv 2504.08999)](https://arxiv.org/html/2504.08999v2)
|
|
193
192
|
but stays inside the Darwin process — no extra service to deploy.
|
|
194
193
|
|
|
194
|
+
### v0.4.9 polish (2026-05-22)
|
|
195
|
+
|
|
196
|
+
- **Spec-compliant transport.** Every HTTP request now carries the
|
|
197
|
+
`MCP-Protocol-Version: 2025-11-25` header, per MCP spec 2025-11-25
|
|
198
|
+
§"HTTP Protocol Versioning". Strict servers MAY return `400` without
|
|
199
|
+
it; pre-v0.4.9 only sent the version inside the `initialize` payload.
|
|
200
|
+
|
|
201
|
+
- **Typed errors.** Bridge errors are now instances of
|
|
202
|
+
`McpBridgeProtocolError` (JSON-RPC errors from the server, numeric
|
|
203
|
+
`code`) or `McpBridgeTransportError` (local timeouts, EPIPE, network
|
|
204
|
+
resets, child exits — stable string `code`). Branch on `instanceof`
|
|
205
|
+
to decide retry vs fail-loud without parsing message text.
|
|
206
|
+
|
|
207
|
+
```typescript
|
|
208
|
+
import {
|
|
209
|
+
McpBridgeProtocolError,
|
|
210
|
+
McpBridgeTransportError,
|
|
211
|
+
} from 'darwin-agents/memory/bridge';
|
|
212
|
+
|
|
213
|
+
try {
|
|
214
|
+
await memory.save(record);
|
|
215
|
+
} catch (err) {
|
|
216
|
+
if (err instanceof McpBridgeTransportError && err.code === 'timeout') {
|
|
217
|
+
// local timeout — safe to retry
|
|
218
|
+
} else if (err instanceof McpBridgeProtocolError && err.code === -32602) {
|
|
219
|
+
// server said our args are invalid — fail loud, don't retry
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
- **Per-call timeouts.** `save()` and `fetchRelevant()` accept a
|
|
225
|
+
`timeoutMs` override that beats the bridge-level default, mirroring
|
|
226
|
+
the MCP SDK's `client.callTool(..., { timeout })`. Useful for one-off
|
|
227
|
+
slow embedding searches without raising `requestTimeoutMs` globally.
|
|
228
|
+
|
|
229
|
+
```typescript
|
|
230
|
+
await memory.fetchRelevant({ query: 'audit', limit: 5, timeoutMs: 30_000 });
|
|
231
|
+
await memory.save(record, { timeoutMs: 5_000 });
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
- **Mem0 preset.** `...mem0Preset({ userId })` wires the right tool
|
|
235
|
+
names (`add_memory` + `search_memories`) and arg shapes for the
|
|
236
|
+
official `mem0ai/mem0-mcp` server. See the example above.
|
|
237
|
+
|
|
195
238
|
See [`examples/memory-darwin-integration.ts`](examples/memory-darwin-integration.ts)
|
|
196
239
|
for the full closed-loop pattern: fetch relevant lessons → render them as
|
|
197
240
|
prompt context → run the agent → persist critic findings → next run sees
|
|
@@ -40,6 +40,20 @@ export interface FetchRelevantOptions {
|
|
|
40
40
|
limit?: number;
|
|
41
41
|
/** Optional tag filter — passed through to the read tool if it honours it. */
|
|
42
42
|
tags?: string[];
|
|
43
|
+
/**
|
|
44
|
+
* Per-call timeout override in ms. Falls back to `requestTimeoutMs` from
|
|
45
|
+
* the bridge config (default 10 000 ms). Useful for slow embedding-backed
|
|
46
|
+
* stores or when a particular query is known to be expensive.
|
|
47
|
+
*/
|
|
48
|
+
timeoutMs?: number;
|
|
49
|
+
}
|
|
50
|
+
/** Options bag for `save()`. Mirrors the per-call timeout knob on read. */
|
|
51
|
+
export interface SaveOptions {
|
|
52
|
+
/**
|
|
53
|
+
* Per-call timeout override in ms. Falls back to `requestTimeoutMs` from
|
|
54
|
+
* the bridge config (default 10 000 ms).
|
|
55
|
+
*/
|
|
56
|
+
timeoutMs?: number;
|
|
43
57
|
}
|
|
44
58
|
/** Darwin-side store contract extended with retrieval + lifecycle. */
|
|
45
59
|
export interface RetrievableFeedbackStore extends FeedbackStore {
|
|
@@ -87,6 +101,52 @@ export interface McpMemoryConfig {
|
|
|
87
101
|
debug?: (msg: string) => void;
|
|
88
102
|
};
|
|
89
103
|
}
|
|
104
|
+
/**
|
|
105
|
+
* Base class for bridge errors. Discriminates protocol-level (server-side
|
|
106
|
+
* JSON-RPC error responses) from transport-level (local timeouts, network
|
|
107
|
+
* resets, EPIPE, child process exits). Callers can branch on `kind` to
|
|
108
|
+
* decide retry-vs-fail-loud without parsing the message text.
|
|
109
|
+
*
|
|
110
|
+
* Mirrors the split MCP TypeScript SDK v2 uses internally (`ProtocolError`
|
|
111
|
+
* vs `SdkError`). We keep our own classes to preserve the bridge's
|
|
112
|
+
* zero-hard-dep policy.
|
|
113
|
+
*/
|
|
114
|
+
export declare class McpBridgeError extends Error {
|
|
115
|
+
/** 'protocol' = JSON-RPC error from the server, 'transport' = local. */
|
|
116
|
+
readonly kind: 'protocol' | 'transport';
|
|
117
|
+
/** JSON-RPC error code for protocol errors, or a stable string for transport errors. */
|
|
118
|
+
readonly code: number | string;
|
|
119
|
+
/** Which transport produced the error. */
|
|
120
|
+
readonly transport: 'stdio' | 'http';
|
|
121
|
+
constructor(opts: {
|
|
122
|
+
message: string;
|
|
123
|
+
kind: 'protocol' | 'transport';
|
|
124
|
+
code: number | string;
|
|
125
|
+
transport: 'stdio' | 'http';
|
|
126
|
+
cause?: unknown;
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
/** JSON-RPC error from the server. `code` is the numeric JSON-RPC code. */
|
|
130
|
+
export declare class McpBridgeProtocolError extends McpBridgeError {
|
|
131
|
+
constructor(opts: {
|
|
132
|
+
code: number;
|
|
133
|
+
serverMessage: string;
|
|
134
|
+
transport: 'stdio' | 'http';
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Local transport-layer error (timeout, EPIPE, network reset, child exit,
|
|
139
|
+
* abort, DNS). `code` is a short stable string for branching:
|
|
140
|
+
* 'timeout' | 'closed' | 'transient' | 'child_exit' | 'spawn_failed' | 'http_status'
|
|
141
|
+
*/
|
|
142
|
+
export declare class McpBridgeTransportError extends McpBridgeError {
|
|
143
|
+
constructor(opts: {
|
|
144
|
+
message: string;
|
|
145
|
+
code: 'timeout' | 'closed' | 'transient' | 'child_exit' | 'spawn_failed' | 'http_status';
|
|
146
|
+
transport: 'stdio' | 'http';
|
|
147
|
+
cause?: unknown;
|
|
148
|
+
});
|
|
149
|
+
}
|
|
90
150
|
/** Default mapping for `memory_learn` shape (local-memory-mcp, mcp-nex). */
|
|
91
151
|
export declare function defaultMapWriteArgs(rec: FeedbackRecord): Record<string, unknown>;
|
|
92
152
|
/**
|
|
@@ -120,7 +180,13 @@ export declare class McpMemoryBridge implements RetrievableFeedbackStore {
|
|
|
120
180
|
private initInFlight;
|
|
121
181
|
private closed;
|
|
122
182
|
constructor(config: McpMemoryConfig);
|
|
123
|
-
|
|
183
|
+
/**
|
|
184
|
+
* Persist a feedback record. Accepts an optional second arg for per-call
|
|
185
|
+
* overrides (currently `timeoutMs`). The signature stays a structural
|
|
186
|
+
* super-type of `FeedbackStore.save(record)`, so callers using the base
|
|
187
|
+
* interface keep working unchanged.
|
|
188
|
+
*/
|
|
189
|
+
save(record: FeedbackRecord, opts?: SaveOptions): Promise<void>;
|
|
124
190
|
fetchRelevant(queryOrOpts: string | FetchRelevantOptions, legacyLimit?: number): Promise<Lesson[]>;
|
|
125
191
|
close(): Promise<void>;
|
|
126
192
|
private ensureReady;
|
|
@@ -136,14 +202,24 @@ export declare class McpMemoryBridge implements RetrievableFeedbackStore {
|
|
|
136
202
|
* F1: no inline respawn — ensureReady/initialize is the only path that
|
|
137
203
|
* spawns. This avoids the double-spawn race where rpc() and ensureReady()
|
|
138
204
|
* both spawn children competing for `this.child`.
|
|
205
|
+
*
|
|
206
|
+
* `timeoutMs` overrides the bridge-level `requestTimeoutMs` for this call.
|
|
139
207
|
*/
|
|
140
208
|
private rpc;
|
|
141
209
|
private rpcStdio;
|
|
142
210
|
/**
|
|
143
211
|
* HTTP transport with bounded retries on 5xx + transient network errors.
|
|
144
212
|
* Per-attempt timeout via AbortController. Honors `httpMaxRetries`.
|
|
213
|
+
*
|
|
214
|
+
* Sends the `MCP-Protocol-Version` HTTP header per MCP spec 2025-11-25
|
|
215
|
+
* §"HTTP Protocol Versioning". Strict servers MAY return 400 if it is
|
|
216
|
+
* missing or unsupported.
|
|
145
217
|
*/
|
|
146
218
|
private rpcHttp;
|
|
219
|
+
/**
|
|
220
|
+
* Invoke a tool. Accepts a per-call `opts.timeoutMs` override that takes
|
|
221
|
+
* precedence over the bridge-level `requestTimeoutMs` config.
|
|
222
|
+
*/
|
|
147
223
|
private callTool;
|
|
148
224
|
}
|
|
149
225
|
/**
|
|
@@ -171,13 +247,50 @@ export declare function localMemory(overrides?: Partial<McpMemoryConfig>): McpMe
|
|
|
171
247
|
* Example: connect to your hosted memory.studiomeyer.io endpoint
|
|
172
248
|
* remoteMemory('https://memory.studiomeyer.io/mcp', { authHeader: `Bearer ${KEY}` })
|
|
173
249
|
*
|
|
174
|
-
* Example: Mem0 with tool-name + arg aliasing
|
|
175
|
-
*
|
|
176
|
-
* authHeader: `Bearer ${process.env.MEM0_KEY}`,
|
|
177
|
-
* writeTool: 'mem0_add',
|
|
178
|
-
* readTool: 'mem0_search',
|
|
179
|
-
* mapWriteArgs: (rec) => ({ content: rec.content, metadata: { tags: rec.tags } }),
|
|
180
|
-
* })
|
|
250
|
+
* Example: Mem0 with tool-name + arg aliasing — see `mem0Preset()` below
|
|
251
|
+
* for a one-line spread that handles all of this for you.
|
|
181
252
|
*/
|
|
182
253
|
export declare function remoteMemory(url: string, overrides?: Partial<McpMemoryConfig>): McpMemoryBridge;
|
|
254
|
+
/**
|
|
255
|
+
* Mem0 MCP server preset — drop-in overrides that match the exact tool
|
|
256
|
+
* names + arg shapes the `mem0ai/mem0-mcp` server expects.
|
|
257
|
+
*
|
|
258
|
+
* Reference: github.com/mem0ai/mem0-mcp — tools are `add_memory` (NOT
|
|
259
|
+
* `mem0_add` or `add_memories`) and `search_memories` (NOT `search_memory`).
|
|
260
|
+
* Add-args require one of `text`/`messages` + at least one of
|
|
261
|
+
* `user_id`/`agent_id`/`run_id`. Search-result rows expose the lesson
|
|
262
|
+
* text under `memory` (not `content`/`body`/`text`).
|
|
263
|
+
*
|
|
264
|
+
* Usage with the hosted Mem0 platform:
|
|
265
|
+
* \`\`\`ts
|
|
266
|
+
* const memory = remoteMemory('https://api.mem0.ai/mcp', {
|
|
267
|
+
* authHeader: `Bearer ${process.env.MEM0_KEY}`,
|
|
268
|
+
* ...mem0Preset({ userId: 'darwin-agent' }),
|
|
269
|
+
* });
|
|
270
|
+
* \`\`\`
|
|
271
|
+
*
|
|
272
|
+
* Usage with a locally spawned mem0-mcp server (stdio):
|
|
273
|
+
* \`\`\`ts
|
|
274
|
+
* const memory = new McpMemoryBridge({
|
|
275
|
+
* transport: 'stdio',
|
|
276
|
+
* endpoint: ['uvx', 'mem0-mcp'],
|
|
277
|
+
* ...mem0Preset({ userId: 'darwin-agent' }),
|
|
278
|
+
* });
|
|
279
|
+
* \`\`\`
|
|
280
|
+
*
|
|
281
|
+
* Spread order matters: put `...mem0Preset(...)` AFTER other overrides if
|
|
282
|
+
* you want the preset to win, or BEFORE if you want to override the
|
|
283
|
+
* preset's defaults yourself.
|
|
284
|
+
*/
|
|
285
|
+
export declare function mem0Preset(opts?: {
|
|
286
|
+
/**
|
|
287
|
+
* Mem0 scope identifier. Required because `add_memory` rejects writes
|
|
288
|
+
* without at least one of user_id / agent_id / run_id.
|
|
289
|
+
*/
|
|
290
|
+
userId?: string;
|
|
291
|
+
agentId?: string;
|
|
292
|
+
runId?: string;
|
|
293
|
+
/** Extra metadata merged into every write under the `metadata` key. */
|
|
294
|
+
defaultMetadata?: Record<string, unknown>;
|
|
295
|
+
}): Partial<McpMemoryConfig>;
|
|
183
296
|
//# sourceMappingURL=mcp-memory-bridge.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-memory-bridge.d.ts","sourceRoot":"","sources":["../../examples/mcp-memory-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAI/E,0FAA0F;AAC1F,MAAM,WAAW,MAAM;IACrB,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAC;IAChB,iDAAiD;IACjD,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,sEAAsE;IACtE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,0EAA0E;AAC1E,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8EAA8E;IAC9E,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"mcp-memory-bridge.d.ts","sourceRoot":"","sources":["../../examples/mcp-memory-bridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,6 +32,63 @@ const DEFAULT_REQUEST_TIMEOUT_MS = 10_000;
|
|
|
32
32
|
const DEFAULT_MAX_RESPAWN = 1;
|
|
33
33
|
const DEFAULT_HTTP_MAX_RETRIES = 2;
|
|
34
34
|
const DEFAULT_PROTOCOL_VERSION = '2025-11-25';
|
|
35
|
+
// ─── Errors ──────────────────────────────────────────
|
|
36
|
+
/**
|
|
37
|
+
* Base class for bridge errors. Discriminates protocol-level (server-side
|
|
38
|
+
* JSON-RPC error responses) from transport-level (local timeouts, network
|
|
39
|
+
* resets, EPIPE, child process exits). Callers can branch on `kind` to
|
|
40
|
+
* decide retry-vs-fail-loud without parsing the message text.
|
|
41
|
+
*
|
|
42
|
+
* Mirrors the split MCP TypeScript SDK v2 uses internally (`ProtocolError`
|
|
43
|
+
* vs `SdkError`). We keep our own classes to preserve the bridge's
|
|
44
|
+
* zero-hard-dep policy.
|
|
45
|
+
*/
|
|
46
|
+
export class McpBridgeError extends Error {
|
|
47
|
+
/** 'protocol' = JSON-RPC error from the server, 'transport' = local. */
|
|
48
|
+
kind;
|
|
49
|
+
/** JSON-RPC error code for protocol errors, or a stable string for transport errors. */
|
|
50
|
+
code;
|
|
51
|
+
/** Which transport produced the error. */
|
|
52
|
+
transport;
|
|
53
|
+
constructor(opts) {
|
|
54
|
+
super(opts.message);
|
|
55
|
+
this.name = 'McpBridgeError';
|
|
56
|
+
this.kind = opts.kind;
|
|
57
|
+
this.code = opts.code;
|
|
58
|
+
this.transport = opts.transport;
|
|
59
|
+
if (opts.cause !== undefined)
|
|
60
|
+
this.cause = opts.cause;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/** JSON-RPC error from the server. `code` is the numeric JSON-RPC code. */
|
|
64
|
+
export class McpBridgeProtocolError extends McpBridgeError {
|
|
65
|
+
constructor(opts) {
|
|
66
|
+
super({
|
|
67
|
+
message: `mcp error ${opts.code}: ${opts.serverMessage}`,
|
|
68
|
+
kind: 'protocol',
|
|
69
|
+
code: opts.code,
|
|
70
|
+
transport: opts.transport,
|
|
71
|
+
});
|
|
72
|
+
this.name = 'McpBridgeProtocolError';
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Local transport-layer error (timeout, EPIPE, network reset, child exit,
|
|
77
|
+
* abort, DNS). `code` is a short stable string for branching:
|
|
78
|
+
* 'timeout' | 'closed' | 'transient' | 'child_exit' | 'spawn_failed' | 'http_status'
|
|
79
|
+
*/
|
|
80
|
+
export class McpBridgeTransportError extends McpBridgeError {
|
|
81
|
+
constructor(opts) {
|
|
82
|
+
super({
|
|
83
|
+
message: opts.message,
|
|
84
|
+
kind: 'transport',
|
|
85
|
+
code: opts.code,
|
|
86
|
+
transport: opts.transport,
|
|
87
|
+
cause: opts.cause,
|
|
88
|
+
});
|
|
89
|
+
this.name = 'McpBridgeTransportError';
|
|
90
|
+
}
|
|
91
|
+
}
|
|
35
92
|
/** Default mapping for `memory_learn` shape (local-memory-mcp, mcp-nex). */
|
|
36
93
|
export function defaultMapWriteArgs(rec) {
|
|
37
94
|
return {
|
|
@@ -149,8 +206,16 @@ export class McpMemoryBridge {
|
|
|
149
206
|
};
|
|
150
207
|
}
|
|
151
208
|
// ── FeedbackStore.save ─────────────────────────────
|
|
152
|
-
|
|
153
|
-
|
|
209
|
+
/**
|
|
210
|
+
* Persist a feedback record. Accepts an optional second arg for per-call
|
|
211
|
+
* overrides (currently `timeoutMs`). The signature stays a structural
|
|
212
|
+
* super-type of `FeedbackStore.save(record)`, so callers using the base
|
|
213
|
+
* interface keep working unchanged.
|
|
214
|
+
*/
|
|
215
|
+
async save(record, opts = {}) {
|
|
216
|
+
await this.callTool(this.config.writeTool, this.config.mapWriteArgs(record), {
|
|
217
|
+
timeoutMs: opts.timeoutMs,
|
|
218
|
+
});
|
|
154
219
|
}
|
|
155
220
|
// ── RetrievableFeedbackStore.fetchRelevant ─────────
|
|
156
221
|
async fetchRelevant(queryOrOpts, legacyLimit) {
|
|
@@ -160,7 +225,9 @@ export class McpMemoryBridge {
|
|
|
160
225
|
const args = { query: opts.query, limit: opts.limit ?? 5 };
|
|
161
226
|
if (opts.tags && opts.tags.length > 0)
|
|
162
227
|
args.tags = opts.tags;
|
|
163
|
-
const result = await this.callTool(this.config.readTool, args
|
|
228
|
+
const result = await this.callTool(this.config.readTool, args, {
|
|
229
|
+
timeoutMs: opts.timeoutMs,
|
|
230
|
+
});
|
|
164
231
|
return this.config.mapReadResult(result);
|
|
165
232
|
}
|
|
166
233
|
// ── Lifecycle ──────────────────────────────────────
|
|
@@ -181,14 +248,23 @@ export class McpMemoryBridge {
|
|
|
181
248
|
}
|
|
182
249
|
for (const [, p] of this.pending) {
|
|
183
250
|
clearTimeout(p.timer);
|
|
184
|
-
p.reject(new
|
|
251
|
+
p.reject(new McpBridgeTransportError({
|
|
252
|
+
message: 'bridge closed',
|
|
253
|
+
code: 'closed',
|
|
254
|
+
transport: this.config.transport,
|
|
255
|
+
}));
|
|
185
256
|
}
|
|
186
257
|
this.pending.clear();
|
|
187
258
|
}
|
|
188
259
|
// ── Internals ──────────────────────────────────────
|
|
189
260
|
async ensureReady() {
|
|
190
|
-
if (this.closed)
|
|
191
|
-
throw new
|
|
261
|
+
if (this.closed) {
|
|
262
|
+
throw new McpBridgeTransportError({
|
|
263
|
+
message: 'bridge is closed',
|
|
264
|
+
code: 'closed',
|
|
265
|
+
transport: this.config.transport,
|
|
266
|
+
});
|
|
267
|
+
}
|
|
192
268
|
if (this.initialized)
|
|
193
269
|
return;
|
|
194
270
|
if (!this.initInFlight) {
|
|
@@ -272,7 +348,11 @@ export class McpMemoryBridge {
|
|
|
272
348
|
const reason = `child exited (code=${code}, signal=${signal})`;
|
|
273
349
|
for (const [, p] of this.pending) {
|
|
274
350
|
clearTimeout(p.timer);
|
|
275
|
-
p.reject(new
|
|
351
|
+
p.reject(new McpBridgeTransportError({
|
|
352
|
+
message: reason,
|
|
353
|
+
code: 'child_exit',
|
|
354
|
+
transport: 'stdio',
|
|
355
|
+
}));
|
|
276
356
|
}
|
|
277
357
|
this.pending.clear();
|
|
278
358
|
if (this.closed)
|
|
@@ -317,7 +397,11 @@ export class McpMemoryBridge {
|
|
|
317
397
|
clearTimeout(pending.timer);
|
|
318
398
|
if (msg.error) {
|
|
319
399
|
const err = msg.error;
|
|
320
|
-
pending.reject(new
|
|
400
|
+
pending.reject(new McpBridgeProtocolError({
|
|
401
|
+
code: typeof err.code === 'number' ? err.code : -32603,
|
|
402
|
+
serverMessage: err.message ?? 'unknown',
|
|
403
|
+
transport: this.config.transport,
|
|
404
|
+
}));
|
|
321
405
|
return;
|
|
322
406
|
}
|
|
323
407
|
pending.resolve(msg.result);
|
|
@@ -340,20 +424,27 @@ export class McpMemoryBridge {
|
|
|
340
424
|
* F1: no inline respawn — ensureReady/initialize is the only path that
|
|
341
425
|
* spawns. This avoids the double-spawn race where rpc() and ensureReady()
|
|
342
426
|
* both spawn children competing for `this.child`.
|
|
427
|
+
*
|
|
428
|
+
* `timeoutMs` overrides the bridge-level `requestTimeoutMs` for this call.
|
|
343
429
|
*/
|
|
344
|
-
async rpc(method, params) {
|
|
430
|
+
async rpc(method, params, timeoutMs) {
|
|
345
431
|
if (this.config.transport === 'http') {
|
|
346
|
-
return this.rpcHttp(method, params);
|
|
432
|
+
return this.rpcHttp(method, params, timeoutMs);
|
|
347
433
|
}
|
|
348
|
-
return this.rpcStdio(method, params);
|
|
434
|
+
return this.rpcStdio(method, params, timeoutMs);
|
|
349
435
|
}
|
|
350
|
-
rpcStdio(method, params) {
|
|
436
|
+
rpcStdio(method, params, timeoutMs) {
|
|
437
|
+
const effectiveTimeout = timeoutMs ?? this.config.requestTimeoutMs;
|
|
351
438
|
return new Promise((resolve, reject) => {
|
|
352
439
|
const id = this.nextId++;
|
|
353
440
|
const timer = setTimeout(() => {
|
|
354
441
|
this.pending.delete(id);
|
|
355
|
-
reject(new
|
|
356
|
-
|
|
442
|
+
reject(new McpBridgeTransportError({
|
|
443
|
+
message: `rpc ${method} timed out after ${effectiveTimeout}ms`,
|
|
444
|
+
code: 'timeout',
|
|
445
|
+
transport: 'stdio',
|
|
446
|
+
}));
|
|
447
|
+
}, effectiveTimeout);
|
|
357
448
|
this.pending.set(id, { resolve, reject, timer });
|
|
358
449
|
try {
|
|
359
450
|
this.sendStdio({ jsonrpc: '2.0', id, method, params });
|
|
@@ -361,27 +452,43 @@ export class McpMemoryBridge {
|
|
|
361
452
|
catch (err) {
|
|
362
453
|
this.pending.delete(id);
|
|
363
454
|
clearTimeout(timer);
|
|
364
|
-
|
|
455
|
+
// EPIPE / ERR_STREAM_DESTROYED on a dying child.
|
|
456
|
+
reject(new McpBridgeTransportError({
|
|
457
|
+
message: `stdio write failed: ${err.message}`,
|
|
458
|
+
code: 'child_exit',
|
|
459
|
+
transport: 'stdio',
|
|
460
|
+
cause: err,
|
|
461
|
+
}));
|
|
365
462
|
}
|
|
366
463
|
});
|
|
367
464
|
}
|
|
368
465
|
/**
|
|
369
466
|
* HTTP transport with bounded retries on 5xx + transient network errors.
|
|
370
467
|
* Per-attempt timeout via AbortController. Honors `httpMaxRetries`.
|
|
468
|
+
*
|
|
469
|
+
* Sends the `MCP-Protocol-Version` HTTP header per MCP spec 2025-11-25
|
|
470
|
+
* §"HTTP Protocol Versioning". Strict servers MAY return 400 if it is
|
|
471
|
+
* missing or unsupported.
|
|
371
472
|
*/
|
|
372
|
-
async rpcHttp(method, params) {
|
|
473
|
+
async rpcHttp(method, params, timeoutMs) {
|
|
373
474
|
const url = typeof this.config.endpoint === 'string'
|
|
374
475
|
? this.config.endpoint
|
|
375
476
|
: this.config.endpoint.join('');
|
|
376
477
|
const headers = {
|
|
377
478
|
'content-type': 'application/json',
|
|
378
479
|
accept: 'application/json, text/event-stream',
|
|
480
|
+
// MCP spec 2025-11-25: clients MUST include MCP-Protocol-Version on
|
|
481
|
+
// every request so the server can negotiate. Without it some servers
|
|
482
|
+
// respond 400. We use lowercase per fetch spec recommendation;
|
|
483
|
+
// header matching is case-insensitive per RFC 9110 §5.1.
|
|
484
|
+
'mcp-protocol-version': this.config.protocolVersion,
|
|
379
485
|
};
|
|
380
486
|
if (this.config.authHeader)
|
|
381
487
|
headers.authorization = this.config.authHeader;
|
|
382
488
|
const id = this.nextId++;
|
|
383
489
|
const payload = JSON.stringify({ jsonrpc: '2.0', id, method, params });
|
|
384
490
|
const maxAttempts = this.config.httpMaxRetries + 1;
|
|
491
|
+
const effectiveTimeout = timeoutMs ?? this.config.requestTimeoutMs;
|
|
385
492
|
let lastErr = null;
|
|
386
493
|
for (let attempt = 0; attempt < maxAttempts; attempt++) {
|
|
387
494
|
if (attempt > 0) {
|
|
@@ -389,7 +496,7 @@ export class McpMemoryBridge {
|
|
|
389
496
|
await delay(backoffMs);
|
|
390
497
|
}
|
|
391
498
|
const controller = new AbortController();
|
|
392
|
-
const timer = setTimeout(() => controller.abort(),
|
|
499
|
+
const timer = setTimeout(() => controller.abort(), effectiveTimeout);
|
|
393
500
|
try {
|
|
394
501
|
const res = await fetch(url, {
|
|
395
502
|
method: 'POST',
|
|
@@ -400,11 +507,19 @@ export class McpMemoryBridge {
|
|
|
400
507
|
// 4xx is the server saying "your request is bad" — do not retry.
|
|
401
508
|
if (res.status >= 400 && res.status < 500) {
|
|
402
509
|
const text = await res.text().catch(() => '');
|
|
403
|
-
throw new
|
|
510
|
+
throw new McpBridgeTransportError({
|
|
511
|
+
message: `http ${res.status} ${res.statusText}: ${text.slice(0, 200)}`,
|
|
512
|
+
code: 'http_status',
|
|
513
|
+
transport: 'http',
|
|
514
|
+
});
|
|
404
515
|
}
|
|
405
516
|
// 5xx → retry
|
|
406
517
|
if (res.status >= 500) {
|
|
407
|
-
lastErr = new
|
|
518
|
+
lastErr = new McpBridgeTransportError({
|
|
519
|
+
message: `http ${res.status} ${res.statusText}`,
|
|
520
|
+
code: 'http_status',
|
|
521
|
+
transport: 'http',
|
|
522
|
+
});
|
|
408
523
|
this.config.logger.warn(`${lastErr.message} (attempt ${attempt + 1}/${maxAttempts})`);
|
|
409
524
|
continue;
|
|
410
525
|
}
|
|
@@ -420,31 +535,69 @@ export class McpMemoryBridge {
|
|
|
420
535
|
}
|
|
421
536
|
if (body.error) {
|
|
422
537
|
const err = body.error;
|
|
423
|
-
throw new
|
|
538
|
+
throw new McpBridgeProtocolError({
|
|
539
|
+
code: typeof err.code === 'number' ? err.code : -32603,
|
|
540
|
+
serverMessage: err.message ?? 'unknown',
|
|
541
|
+
transport: 'http',
|
|
542
|
+
});
|
|
424
543
|
}
|
|
425
544
|
return body.result;
|
|
426
545
|
}
|
|
427
546
|
catch (err) {
|
|
547
|
+
// Protocol errors are non-retryable — bubble immediately.
|
|
548
|
+
if (err instanceof McpBridgeProtocolError)
|
|
549
|
+
throw err;
|
|
428
550
|
const e = err;
|
|
429
551
|
// Abort due to timeout, network reset, or DNS failure → retry
|
|
430
|
-
const
|
|
431
|
-
|
|
552
|
+
const isTimeout = e.name === 'AbortError';
|
|
553
|
+
const isTransientNet = /ECONNRESET|ETIMEDOUT|ENOTFOUND|EAI_AGAIN|fetch failed/i.test(e.message ?? '');
|
|
554
|
+
const isTransient = isTimeout || isTransientNet;
|
|
432
555
|
if (isTransient && attempt < maxAttempts - 1) {
|
|
433
|
-
lastErr =
|
|
434
|
-
|
|
556
|
+
lastErr = new McpBridgeTransportError({
|
|
557
|
+
message: `transient http error: ${e.message}`,
|
|
558
|
+
code: isTimeout ? 'timeout' : 'transient',
|
|
559
|
+
transport: 'http',
|
|
560
|
+
cause: err,
|
|
561
|
+
});
|
|
562
|
+
this.config.logger.warn(`${lastErr.message} (attempt ${attempt + 1}/${maxAttempts})`);
|
|
435
563
|
continue;
|
|
436
564
|
}
|
|
437
|
-
|
|
565
|
+
// Re-wrap raw errors so callers always see a McpBridge* instance.
|
|
566
|
+
if (err instanceof McpBridgeError)
|
|
567
|
+
throw err;
|
|
568
|
+
if (isTimeout) {
|
|
569
|
+
throw new McpBridgeTransportError({
|
|
570
|
+
message: `rpc ${method} timed out after ${effectiveTimeout}ms`,
|
|
571
|
+
code: 'timeout',
|
|
572
|
+
transport: 'http',
|
|
573
|
+
cause: err,
|
|
574
|
+
});
|
|
575
|
+
}
|
|
576
|
+
throw new McpBridgeTransportError({
|
|
577
|
+
message: e.message,
|
|
578
|
+
code: 'transient',
|
|
579
|
+
transport: 'http',
|
|
580
|
+
cause: err,
|
|
581
|
+
});
|
|
438
582
|
}
|
|
439
583
|
finally {
|
|
440
584
|
clearTimeout(timer);
|
|
441
585
|
}
|
|
442
586
|
}
|
|
443
|
-
throw lastErr ??
|
|
587
|
+
throw (lastErr ??
|
|
588
|
+
new McpBridgeTransportError({
|
|
589
|
+
message: 'rpcHttp exhausted retries',
|
|
590
|
+
code: 'transient',
|
|
591
|
+
transport: 'http',
|
|
592
|
+
}));
|
|
444
593
|
}
|
|
445
|
-
|
|
594
|
+
/**
|
|
595
|
+
* Invoke a tool. Accepts a per-call `opts.timeoutMs` override that takes
|
|
596
|
+
* precedence over the bridge-level `requestTimeoutMs` config.
|
|
597
|
+
*/
|
|
598
|
+
async callTool(name, args, opts = {}) {
|
|
446
599
|
await this.ensureReady();
|
|
447
|
-
return this.rpc('tools/call', { name, arguments: args });
|
|
600
|
+
return this.rpc('tools/call', { name, arguments: args }, opts.timeoutMs);
|
|
448
601
|
}
|
|
449
602
|
}
|
|
450
603
|
/**
|
|
@@ -502,13 +655,8 @@ export function localMemory(overrides = {}) {
|
|
|
502
655
|
* Example: connect to your hosted memory.studiomeyer.io endpoint
|
|
503
656
|
* remoteMemory('https://memory.studiomeyer.io/mcp', { authHeader: `Bearer ${KEY}` })
|
|
504
657
|
*
|
|
505
|
-
* Example: Mem0 with tool-name + arg aliasing
|
|
506
|
-
*
|
|
507
|
-
* authHeader: `Bearer ${process.env.MEM0_KEY}`,
|
|
508
|
-
* writeTool: 'mem0_add',
|
|
509
|
-
* readTool: 'mem0_search',
|
|
510
|
-
* mapWriteArgs: (rec) => ({ content: rec.content, metadata: { tags: rec.tags } }),
|
|
511
|
-
* })
|
|
658
|
+
* Example: Mem0 with tool-name + arg aliasing — see `mem0Preset()` below
|
|
659
|
+
* for a one-line spread that handles all of this for you.
|
|
512
660
|
*/
|
|
513
661
|
export function remoteMemory(url, overrides = {}) {
|
|
514
662
|
return new McpMemoryBridge({
|
|
@@ -517,6 +665,120 @@ export function remoteMemory(url, overrides = {}) {
|
|
|
517
665
|
...overrides,
|
|
518
666
|
});
|
|
519
667
|
}
|
|
668
|
+
// ─── Provider presets ────────────────────────────────
|
|
669
|
+
/**
|
|
670
|
+
* Mem0 MCP server preset — drop-in overrides that match the exact tool
|
|
671
|
+
* names + arg shapes the `mem0ai/mem0-mcp` server expects.
|
|
672
|
+
*
|
|
673
|
+
* Reference: github.com/mem0ai/mem0-mcp — tools are `add_memory` (NOT
|
|
674
|
+
* `mem0_add` or `add_memories`) and `search_memories` (NOT `search_memory`).
|
|
675
|
+
* Add-args require one of `text`/`messages` + at least one of
|
|
676
|
+
* `user_id`/`agent_id`/`run_id`. Search-result rows expose the lesson
|
|
677
|
+
* text under `memory` (not `content`/`body`/`text`).
|
|
678
|
+
*
|
|
679
|
+
* Usage with the hosted Mem0 platform:
|
|
680
|
+
* \`\`\`ts
|
|
681
|
+
* const memory = remoteMemory('https://api.mem0.ai/mcp', {
|
|
682
|
+
* authHeader: `Bearer ${process.env.MEM0_KEY}`,
|
|
683
|
+
* ...mem0Preset({ userId: 'darwin-agent' }),
|
|
684
|
+
* });
|
|
685
|
+
* \`\`\`
|
|
686
|
+
*
|
|
687
|
+
* Usage with a locally spawned mem0-mcp server (stdio):
|
|
688
|
+
* \`\`\`ts
|
|
689
|
+
* const memory = new McpMemoryBridge({
|
|
690
|
+
* transport: 'stdio',
|
|
691
|
+
* endpoint: ['uvx', 'mem0-mcp'],
|
|
692
|
+
* ...mem0Preset({ userId: 'darwin-agent' }),
|
|
693
|
+
* });
|
|
694
|
+
* \`\`\`
|
|
695
|
+
*
|
|
696
|
+
* Spread order matters: put `...mem0Preset(...)` AFTER other overrides if
|
|
697
|
+
* you want the preset to win, or BEFORE if you want to override the
|
|
698
|
+
* preset's defaults yourself.
|
|
699
|
+
*/
|
|
700
|
+
export function mem0Preset(opts = {}) {
|
|
701
|
+
const scope = {};
|
|
702
|
+
if (opts.userId)
|
|
703
|
+
scope.user_id = opts.userId;
|
|
704
|
+
if (opts.agentId)
|
|
705
|
+
scope.agent_id = opts.agentId;
|
|
706
|
+
if (opts.runId)
|
|
707
|
+
scope.run_id = opts.runId;
|
|
708
|
+
return {
|
|
709
|
+
writeTool: 'add_memory',
|
|
710
|
+
readTool: 'search_memories',
|
|
711
|
+
mapWriteArgs: (rec) => ({
|
|
712
|
+
text: rec.content,
|
|
713
|
+
metadata: {
|
|
714
|
+
polarity: rec.polarity,
|
|
715
|
+
confidence: rec.confidence,
|
|
716
|
+
tags: rec.tags,
|
|
717
|
+
...(opts.defaultMetadata ?? {}),
|
|
718
|
+
},
|
|
719
|
+
...scope,
|
|
720
|
+
}),
|
|
721
|
+
mapReadResult: (raw) => {
|
|
722
|
+
// Mem0 responses come back as a JSON string inside content[0].text.
|
|
723
|
+
// Pull it via the same extractor used by the default mapper.
|
|
724
|
+
const parsed = mem0ExtractStructured(raw);
|
|
725
|
+
if (!parsed || typeof parsed !== 'object')
|
|
726
|
+
return [];
|
|
727
|
+
// Mem0 search returns `{ results: [{ id, memory, metadata, score? }] }`
|
|
728
|
+
// (sometimes wrapped in another envelope when the platform queues async).
|
|
729
|
+
const envelope = parsed;
|
|
730
|
+
const results = (envelope.results ?? envelope.data ?? envelope);
|
|
731
|
+
if (!Array.isArray(results))
|
|
732
|
+
return [];
|
|
733
|
+
const out = [];
|
|
734
|
+
for (const item of results) {
|
|
735
|
+
if (!item || typeof item !== 'object')
|
|
736
|
+
continue;
|
|
737
|
+
const row = item;
|
|
738
|
+
// The lesson text lives under `memory` in Mem0 (vs `content`/`body`
|
|
739
|
+
// in mcp-nex / local-memory-mcp). Fall back to `content` for safety
|
|
740
|
+
// in case a custom Mem0 build returns the older shape.
|
|
741
|
+
const content = typeof row.memory === 'string'
|
|
742
|
+
? row.memory
|
|
743
|
+
: typeof row.content === 'string'
|
|
744
|
+
? row.content
|
|
745
|
+
: null;
|
|
746
|
+
if (!content)
|
|
747
|
+
continue;
|
|
748
|
+
// Mem0 stores tags inside `metadata.tags` rather than top-level.
|
|
749
|
+
const meta = row.metadata;
|
|
750
|
+
const tagsFromMeta = meta && Array.isArray(meta.tags) ? meta.tags : [];
|
|
751
|
+
const tagsFromTop = Array.isArray(row.tags) ? row.tags : [];
|
|
752
|
+
const tags = [...tagsFromMeta, ...tagsFromTop].filter((t) => typeof t === 'string');
|
|
753
|
+
const scoreRaw = row.score ?? row.rank;
|
|
754
|
+
const score = typeof scoreRaw === 'number' && Number.isFinite(scoreRaw) ? scoreRaw : undefined;
|
|
755
|
+
out.push({ content, tags, score });
|
|
756
|
+
}
|
|
757
|
+
return out;
|
|
758
|
+
},
|
|
759
|
+
};
|
|
760
|
+
}
|
|
761
|
+
/** Local copy of extractStructured for the preset's own mapper. */
|
|
762
|
+
function mem0ExtractStructured(raw) {
|
|
763
|
+
if (raw == null || typeof raw !== 'object')
|
|
764
|
+
return raw;
|
|
765
|
+
const r = raw;
|
|
766
|
+
if (Array.isArray(r.content)) {
|
|
767
|
+
for (const block of r.content) {
|
|
768
|
+
if (block?.type === 'text' && typeof block.text === 'string') {
|
|
769
|
+
try {
|
|
770
|
+
return JSON.parse(block.text);
|
|
771
|
+
}
|
|
772
|
+
catch {
|
|
773
|
+
return block.text;
|
|
774
|
+
}
|
|
775
|
+
}
|
|
776
|
+
}
|
|
777
|
+
}
|
|
778
|
+
if ('structuredContent' in r && r.structuredContent != null)
|
|
779
|
+
return r.structuredContent;
|
|
780
|
+
return raw;
|
|
781
|
+
}
|
|
520
782
|
// ─── Demo ────────────────────────────────────────────
|
|
521
783
|
if (import.meta.url === `file://${process.argv[1]}`) {
|
|
522
784
|
const memory = localMemory();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-memory-bridge.js","sourceRoot":"","sources":["../../examples/mcp-memory-bridge.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mcp-memory-bridge.js","sourceRoot":"","sources":["../../examples/mcp-memory-bridge.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED