darwin-agents 0.4.7 → 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,110 @@
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
+
84
+ ## [0.4.8] — 2026-05-22
85
+
86
+ Hotfix on top of v0.4.7. Path resolution in the `exports` map pointed at
87
+ `./dist/*` but the v0.4.7 build emitted into `./dist/src/*` (because
88
+ `tsconfig` `rootDir` was widened to `./` so examples could compile into
89
+ `./dist/examples/`). The pre-existing entrypoints (`darwin-agents`,
90
+ `darwin-agents/providers`, `darwin-agents/memory`, `darwin-agents/agents`)
91
+ were therefore unreachable from v0.4.7 — only the new `./memory/bridge`
92
+ and `./memory/closed-loop` subpaths resolved correctly.
93
+
94
+ ### Fixed
95
+
96
+ - `main`, `types`, `bin`, and every `./dist/*` entry in `exports` now
97
+ point at `./dist/src/*` to match the actual build output layout.
98
+ - `./memory/bridge` and `./memory/closed-loop` continue to resolve to
99
+ `./dist/examples/mcp-memory-bridge.js` / `memory-darwin-integration.js`
100
+ unchanged — those paths were already correct.
101
+
102
+ ### Recommendation
103
+
104
+ Upgrade from v0.4.7 to v0.4.8 (`npm install darwin-agents@latest`).
105
+ v0.4.7 is functional only via the two new `./memory/*` subpaths; the
106
+ core API and CLI are unreachable in that release.
107
+
3
108
  ## [0.4.7] — 2026-05-22
4
109
 
5
110
  Generic MCP-Memory bridge — Darwin's closed loop now plugs into any
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 tool-name + arg aliasing
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
- // writeTool: 'mem0_add',
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 | `mem0_add` | `mem0_search` | needs `mapWriteArgs` for the `messages` shape |
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
- save(record: FeedbackRecord): Promise<void>;
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
- * remoteMemory('https://api.mem0.ai/mcp', {
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":"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"}
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
- async save(record) {
153
- await this.callTool(this.config.writeTool, this.config.mapWriteArgs(record));
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 Error('bridge closed'));
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 Error('bridge is closed');
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 Error(reason));
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 Error(`mcp error ${err.code ?? '?'}: ${err.message ?? 'unknown'}`));
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 Error(`rpc ${method} timed out after ${this.config.requestTimeoutMs}ms`));
356
- }, this.config.requestTimeoutMs);
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
- reject(err);
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(), this.config.requestTimeoutMs);
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 Error(`http ${res.status} ${res.statusText}: ${text.slice(0, 200)}`);
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 Error(`http ${res.status} ${res.statusText}`);
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 Error(`mcp error ${err.code ?? '?'}: ${err.message ?? 'unknown'}`);
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 isTransient = e.name === 'AbortError' ||
431
- /ECONNRESET|ETIMEDOUT|ENOTFOUND|EAI_AGAIN|fetch failed/i.test(e.message ?? '');
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 = e;
434
- this.config.logger.warn(`transient http error: ${e.message} (attempt ${attempt + 1}/${maxAttempts})`);
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
- throw err;
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 ?? new Error('rpcHttp exhausted retries');
587
+ throw (lastErr ??
588
+ new McpBridgeTransportError({
589
+ message: 'rpcHttp exhausted retries',
590
+ code: 'transient',
591
+ transport: 'http',
592
+ }));
444
593
  }
445
- async callTool(name, args) {
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
- * remoteMemory('https://api.mem0.ai/mcp', {
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
@@ -1,29 +1,29 @@
1
1
  {
2
2
  "name": "darwin-agents",
3
- "version": "0.4.7",
3
+ "version": "0.4.9",
4
4
  "description": "AI agents that improve themselves. Self-evolving prompts via A/B testing, multi-model critics, safety gates, and pattern detection.",
5
5
  "type": "module",
6
6
  "bin": {
7
- "darwin": "./dist/cli/index.js"
7
+ "darwin": "./dist/src/cli/index.js"
8
8
  },
9
- "main": "./dist/index.js",
10
- "types": "./dist/index.d.ts",
9
+ "main": "./dist/src/index.js",
10
+ "types": "./dist/src/index.d.ts",
11
11
  "exports": {
12
12
  ".": {
13
- "import": "./dist/index.js",
14
- "types": "./dist/index.d.ts"
13
+ "import": "./dist/src/index.js",
14
+ "types": "./dist/src/index.d.ts"
15
15
  },
16
16
  "./providers": {
17
- "import": "./dist/providers/index.js",
18
- "types": "./dist/providers/index.d.ts"
17
+ "import": "./dist/src/providers/index.js",
18
+ "types": "./dist/src/providers/index.d.ts"
19
19
  },
20
20
  "./memory": {
21
- "import": "./dist/memory/index.js",
22
- "types": "./dist/memory/index.d.ts"
21
+ "import": "./dist/src/memory/index.js",
22
+ "types": "./dist/src/memory/index.d.ts"
23
23
  },
24
24
  "./agents": {
25
- "import": "./dist/agents/index.js",
26
- "types": "./dist/agents/index.d.ts"
25
+ "import": "./dist/src/agents/index.js",
26
+ "types": "./dist/src/agents/index.d.ts"
27
27
  },
28
28
  "./examples/*": {
29
29
  "import": "./dist/examples/*.js",