darwin-agents 0.4.8 → 0.5.0-alpha.1
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 +213 -0
- package/README.md +48 -5
- package/dist/examples/mcp-memory-bridge.d.ts +121 -8
- package/dist/examples/mcp-memory-bridge.d.ts.map +1 -1
- package/dist/examples/mcp-memory-bridge.js +297 -35
- package/dist/examples/mcp-memory-bridge.js.map +1 -1
- package/dist/src/core/trace-capture.d.ts +107 -0
- package/dist/src/core/trace-capture.d.ts.map +1 -0
- package/dist/src/core/trace-capture.js +183 -0
- package/dist/src/core/trace-capture.js.map +1 -0
- package/dist/src/index.d.ts +3 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/memory/postgres-memory.d.ts.map +1 -1
- package/dist/src/memory/postgres-memory.js +38 -3
- package/dist/src/memory/postgres-memory.js.map +1 -1
- package/dist/src/memory/sqlite-memory.d.ts.map +1 -1
- package/dist/src/memory/sqlite-memory.js +47 -2
- package/dist/src/memory/sqlite-memory.js.map +1 -1
- package/dist/src/types.d.ts +136 -0
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/types.js.map +1 -1
- package/package.json +1 -1
|
@@ -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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"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Darwin — Execution Trace Capture (v0.5 / A1)
|
|
3
|
+
*
|
|
4
|
+
* Pure, transport-agnostic capturer. Knows nothing about Anthropic SDK,
|
|
5
|
+
* Claude CLI, OpenAI, or any specific runtime — the runtime feeds events,
|
|
6
|
+
* the capturer aggregates into an ExecutionTrace.
|
|
7
|
+
*
|
|
8
|
+
* Three event types map to the three industry-standard span types
|
|
9
|
+
* (Braintrust + Langfuse + Strands SDK + OTEL GenAI 2026):
|
|
10
|
+
* - recordToolUse / recordToolResult → Tool spans
|
|
11
|
+
* - recordTextBlock → assistant prose counter (NOT thinking-block)
|
|
12
|
+
* - recordError → Turn-level errors
|
|
13
|
+
* - addTokens → aggregated LLM token usage
|
|
14
|
+
*
|
|
15
|
+
* Pairing rule: each `recordToolUse(id, ...)` MUST be paired with a later
|
|
16
|
+
* `recordToolResult(id, ...)` to compute durationMs. Unpaired uses get
|
|
17
|
+
* `durationMs > 0` (start-to-finalize) and `outcome = 'error'` at
|
|
18
|
+
* finalize-time with errorClass = 'unpaired_call' so we never silently
|
|
19
|
+
* drop hanging tools.
|
|
20
|
+
*
|
|
21
|
+
* Privacy + size: args are passed through as-is — caller's responsibility
|
|
22
|
+
* to truncate sensitive values. resultSummary is truncated to 2000 chars
|
|
23
|
+
* at recordToolResult-time. OTEL note: `gen_ai.tool.call.arguments` is
|
|
24
|
+
* Opt-In in the GenAI spec; Darwin's "always-capture args" stance is
|
|
25
|
+
* acceptable for internal use but MUST be documented when traces touch
|
|
26
|
+
* customer data (V2 will add a Redaction-Layer).
|
|
27
|
+
*
|
|
28
|
+
* Backwards-compat: capturer is opt-in. Existing code paths that don't
|
|
29
|
+
* instantiate it produce DarwinExperiment.trajectory === undefined and
|
|
30
|
+
* the rest of the system behaves identically to pre-A1.
|
|
31
|
+
*/
|
|
32
|
+
import type { ExecutionTrace, TraceTokenUsage } from '../types.js';
|
|
33
|
+
export interface TraceCapture {
|
|
34
|
+
/**
|
|
35
|
+
* Record the start of a tool call. `id` is the SDK's correlation id
|
|
36
|
+
* (Anthropic SDK `tool_use.id`, OpenAI `tool_call.id`, etc.) — used to
|
|
37
|
+
* pair the matching recordToolResult AND persisted on the captured
|
|
38
|
+
* TraceToolCall as `id` for OTEL `gen_ai.tool.call.id` mapping.
|
|
39
|
+
*/
|
|
40
|
+
recordToolUse(id: string, tool: string, args?: Record<string, unknown>): void;
|
|
41
|
+
/**
|
|
42
|
+
* Record the result of a previously-started tool call. If `id` was never
|
|
43
|
+
* passed to recordToolUse, the result is silently dropped (defensive —
|
|
44
|
+
* some SDKs emit tool_result for system tools without tool_use).
|
|
45
|
+
*/
|
|
46
|
+
recordToolResult(id: string, outcome: 'success' | 'error', opts?: {
|
|
47
|
+
resultSummary?: string;
|
|
48
|
+
errorClass?: string;
|
|
49
|
+
errorMessage?: string;
|
|
50
|
+
retryCount?: number;
|
|
51
|
+
}): void;
|
|
52
|
+
/** Mark the start of a new agent turn (1-indexed). Default starts at turn 1. */
|
|
53
|
+
startTurn(): void;
|
|
54
|
+
/**
|
|
55
|
+
* Increment the text-block counter — one per substantial assistant
|
|
56
|
+
* text emission (>50 chars typically, but the caller decides the
|
|
57
|
+
* threshold). Renamed from `recordReasoning` after R1 review for
|
|
58
|
+
* accuracy: this counts ANY assistant prose, NOT only pre-action
|
|
59
|
+
* "thinking" blocks. Use `addTokens` for cost-of-reasoning attribution.
|
|
60
|
+
*/
|
|
61
|
+
recordTextBlock(): void;
|
|
62
|
+
/** Record a turn-level error (e.g. spawn failure, parse error, child crash). */
|
|
63
|
+
recordError(class_: string, message: string): void;
|
|
64
|
+
/**
|
|
65
|
+
* Accumulate LLM token usage into the trajectory aggregate. Call once
|
|
66
|
+
* per LLM round-trip with the usage object the SDK returned. Missing
|
|
67
|
+
* fields are treated as zero for summation. Existing aggregate fields
|
|
68
|
+
* are preserved (additive merge).
|
|
69
|
+
*/
|
|
70
|
+
addTokens(usage: TraceTokenUsage): void;
|
|
71
|
+
/**
|
|
72
|
+
* Build the final ExecutionTrace.
|
|
73
|
+
* Unpaired tool calls (recordToolUse without recordToolResult) get
|
|
74
|
+
* marked as outcome='error', errorClass='unpaired_call' so silent
|
|
75
|
+
* SDK hangs remain visible.
|
|
76
|
+
*/
|
|
77
|
+
finalize(): ExecutionTrace;
|
|
78
|
+
}
|
|
79
|
+
export interface TraceCaptureOptions {
|
|
80
|
+
/**
|
|
81
|
+
* Wallclock provider. Defaults to `Date.now`. Override for tests so
|
|
82
|
+
* durations are deterministic.
|
|
83
|
+
*/
|
|
84
|
+
now?: () => number;
|
|
85
|
+
/**
|
|
86
|
+
* Predicate that classifies a tool name as an MCP-server call (vs a
|
|
87
|
+
* built-in like Read/Bash). Default heuristic: starts with 'mcp__'.
|
|
88
|
+
* Used to populate `mcpInvocations` aggregate.
|
|
89
|
+
*/
|
|
90
|
+
isMcpTool?: (toolName: string) => boolean;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Create a fresh trace capturer.
|
|
94
|
+
*
|
|
95
|
+
* Usage:
|
|
96
|
+
* ```ts
|
|
97
|
+
* const trace = createTraceCapture();
|
|
98
|
+
* trace.startTurn();
|
|
99
|
+
* trace.recordToolUse('call_1', 'mcp__nex__search', { query: 'foo' });
|
|
100
|
+
* trace.recordToolResult('call_1', 'success', { resultSummary: '3 hits' });
|
|
101
|
+
* trace.recordTextBlock();
|
|
102
|
+
* trace.addTokens({ inputTokens: 1200, outputTokens: 340 });
|
|
103
|
+
* const trajectory = trace.finalize();
|
|
104
|
+
* ```
|
|
105
|
+
*/
|
|
106
|
+
export declare function createTraceCapture(opts?: TraceCaptureOptions): TraceCapture;
|
|
107
|
+
//# sourceMappingURL=trace-capture.d.ts.map
|