darwin-langgraph 0.3.0-alpha.1 → 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.
Files changed (39) hide show
  1. package/CHANGELOG.md +267 -0
  2. package/README.md +30 -6
  3. package/dist/create-darwin-node.d.ts +55 -0
  4. package/dist/create-darwin-node.d.ts.map +1 -1
  5. package/dist/create-darwin-node.js +56 -1
  6. package/dist/create-darwin-node.js.map +1 -1
  7. package/dist/darwin-accumulating-annotation.d.ts +81 -0
  8. package/dist/darwin-accumulating-annotation.d.ts.map +1 -0
  9. package/dist/darwin-accumulating-annotation.js +144 -0
  10. package/dist/darwin-accumulating-annotation.js.map +1 -0
  11. package/dist/darwin-callback-handler.d.ts +131 -1
  12. package/dist/darwin-callback-handler.d.ts.map +1 -1
  13. package/dist/darwin-callback-handler.js +360 -18
  14. package/dist/darwin-callback-handler.js.map +1 -1
  15. package/dist/errors.d.ts +16 -0
  16. package/dist/errors.d.ts.map +1 -1
  17. package/dist/errors.js +19 -0
  18. package/dist/errors.js.map +1 -1
  19. package/dist/index.d.ts +7 -3
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +11 -3
  22. package/dist/index.js.map +1 -1
  23. package/dist/to-otel-attributes.d.ts +49 -0
  24. package/dist/to-otel-attributes.d.ts.map +1 -1
  25. package/dist/to-otel-attributes.js +38 -2
  26. package/dist/to-otel-attributes.js.map +1 -1
  27. package/dist/to-w3c-trace-context.d.ts +81 -0
  28. package/dist/to-w3c-trace-context.d.ts.map +1 -0
  29. package/dist/to-w3c-trace-context.js +134 -0
  30. package/dist/to-w3c-trace-context.js.map +1 -0
  31. package/dist/token-budget.d.ts +141 -0
  32. package/dist/token-budget.d.ts.map +1 -0
  33. package/dist/token-budget.js +225 -0
  34. package/dist/token-budget.js.map +1 -0
  35. package/dist/with-darwin-evolution.d.ts +16 -0
  36. package/dist/with-darwin-evolution.d.ts.map +1 -1
  37. package/dist/with-darwin-evolution.js +9 -1
  38. package/dist/with-darwin-evolution.js.map +1 -1
  39. package/package.json +5 -5
@@ -51,8 +51,26 @@
51
51
  */
52
52
  import { BaseCallbackHandler } from "@langchain/core/callbacks/base";
53
53
  import { DarwinEvolutionHookError } from "./errors.js";
54
+ /**
55
+ * Highest `ExecutionTrace.version` this handler natively understands.
56
+ * The forward-compat guard in {@link isExecutionTrace} warns once for
57
+ * higher versions but still emits them (structural shape covers the
58
+ * required fields) so a Darwin upgrade ahead of the adapter doesn't
59
+ * silently drop trajectories.
60
+ *
61
+ * NEW V0.4 (S1235).
62
+ */
63
+ export const MAX_KNOWN_TRACE_VERSION = 1;
54
64
  /** Default cap. Aligned with reasonable LangGraph fan-out (~1k nodes / minute). */
55
65
  const DEFAULT_MAX_IN_FLIGHT_RUNS = 1024;
66
+ /** Default size cap for trajectory `onTrajectory` emission (256 KiB). */
67
+ const DEFAULT_MAX_TRAJECTORY_BYTES = 262_144;
68
+ /**
69
+ * Process-wide flag so the unknown-version warning fires once per
70
+ * process even across multiple handler instances. Exported intentionally
71
+ * undefined — re-bound via module-reload in tests.
72
+ */
73
+ let unknownTraceVersionWarned = false;
56
74
  function isExecutionTrace(value) {
57
75
  if (!value || typeof value !== "object")
58
76
  return false;
@@ -61,9 +79,61 @@ function isExecutionTrace(value) {
61
79
  // version. Downstream consumers (e.g. toOtelAttributes) read
62
80
  // `toolCalls.length` directly — a malformed trace with missing arrays
63
81
  // would crash there. Guard explicitly.
64
- return (v.version === 1 &&
65
- Array.isArray(v.toolCalls) &&
66
- Array.isArray(v.errors));
82
+ //
83
+ // V0.4 (S1235): forward-compat — accept v ≥ 1 as long as the structural
84
+ // shape `toolCalls + errors` is preserved. A future Darwin release that
85
+ // bumps the version while adding fields will still flow through; only
86
+ // structurally-incompatible payloads are dropped. We warn once per
87
+ // process when we observe a higher-than-known version so an out-of-date
88
+ // adapter dependency is loud rather than silent.
89
+ if (typeof v.version !== "number" ||
90
+ !Number.isFinite(v.version) ||
91
+ v.version < 1 ||
92
+ !Array.isArray(v.toolCalls) ||
93
+ !Array.isArray(v.errors)) {
94
+ return false;
95
+ }
96
+ if (v.version > MAX_KNOWN_TRACE_VERSION && !unknownTraceVersionWarned) {
97
+ unknownTraceVersionWarned = true;
98
+ console.warn(`[darwin-langgraph] Observed ExecutionTrace.version=${v.version} — ` +
99
+ `this adapter knows up to v${MAX_KNOWN_TRACE_VERSION}. Emitting as ` +
100
+ `compatible v${MAX_KNOWN_TRACE_VERSION}-shape; upgrade darwin-langgraph ` +
101
+ `to access any new fields. Subsequent unknown-version observations ` +
102
+ `are silent.`);
103
+ }
104
+ return true;
105
+ }
106
+ /**
107
+ * Build a structurally-compatible BUT minimal stub when a trajectory's
108
+ * serialised size exceeds the configured cap. Preserves the aggregate
109
+ * counts (turns / textBlocks / mcp invocations / errors-count via empty
110
+ * array — counts go through via the dedicated count fields) plus
111
+ * `capturedAt` for traceability. Caller-visible flag
112
+ * `trajectoryTruncated = true` is set on the event payload so consumers
113
+ * can branch on it.
114
+ */
115
+ function buildTruncatedTrace(t) {
116
+ // R1 P1-2 fix (S1235): shallow-copy `tokenUsage` instead of leaking
117
+ // the original object reference. The original trajectory may carry
118
+ // BigInt fields (some providers expose 64-bit token counts) which
119
+ // downstream JSON.stringify cannot handle — coerce them to Number
120
+ // via the explicit spread/normaliser.
121
+ const tokenUsage = t.tokenUsage
122
+ ? Object.fromEntries(Object.entries(t.tokenUsage).map(([k, v]) => [
123
+ k,
124
+ typeof v === "bigint" ? Number(v) : v,
125
+ ]))
126
+ : undefined;
127
+ return {
128
+ version: t.version,
129
+ toolCalls: [],
130
+ textBlockCount: t.textBlockCount,
131
+ turnCount: t.turnCount,
132
+ mcpInvocations: t.mcpInvocations,
133
+ errors: [],
134
+ capturedAt: t.capturedAt,
135
+ ...(tokenUsage ? { tokenUsage: tokenUsage } : {}),
136
+ };
67
137
  }
68
138
  function normaliseNodeMap(nodeMap, defaultKey) {
69
139
  const resolved = new Map();
@@ -98,15 +168,48 @@ export class DarwinCallbackHandler extends BaseCallbackHandler {
98
168
  awaitHandlers = false;
99
169
  resolved;
100
170
  onTrajectory;
171
+ onToolEvent;
101
172
  /**
102
173
  * runId → in-flight run state. Map preserves insertion order so the
103
174
  * oldest entry is always at `.keys().next().value` for LRU eviction
104
175
  * when the cap is exceeded (V0.3 hung-invoke guard).
105
176
  */
106
177
  runIdToName = new Map();
178
+ /**
179
+ * V0.4 (R1 P1-1 fix, S1235) — `toolRunId → toolName` cache populated
180
+ * from `handleToolStart` and consumed by `handleToolEnd` /
181
+ * `handleToolError`. LangChain v0.3 `handleToolEnd` does NOT reliably
182
+ * carry the tool name in its signature (the slot was repurposed
183
+ * across releases); reading `output.name` only works for some shapes
184
+ * and yields "<anonymous-tool>" for the common ToolNode case.
185
+ */
186
+ toolRunIdToName = new Map();
187
+ /**
188
+ * V0.4 (R1 P1-1 fix, S1235) — pending callbacks keyed by parent chain
189
+ * runId so we can also restore the chain's tool name at end-time even
190
+ * after the `toolRunIdToName` entry is cleaned up.
191
+ */
107
192
  maxInFlightRuns;
193
+ /** V0.4 — byte cap before trajectory replacement. */
194
+ maxTrajectoryBytes;
195
+ /**
196
+ * V0.4 (R1 P1-1 fix) — also cap the tool-name cache. Default matches
197
+ * `maxInFlightRuns` since tool runs are children of chain runs.
198
+ */
199
+ maxInFlightToolRuns;
200
+ /**
201
+ * Pending trajectory dispatches keyed by chain runId. When a chain
202
+ * ends with tools still in flight we hold the dispatch closure here
203
+ * and fire it from the LAST `handleToolEnd` / `handleToolError`.
204
+ *
205
+ * V0.4 (R1 P1-4 fix, S1235).
206
+ */
207
+ pendingTrajectoryDispatch = new Map();
108
208
  warned = false;
109
209
  evictionWarned = false;
210
+ toolWarned = false;
211
+ /** V0.4 — once-per-handler warn for trajectory size cap. */
212
+ trajectoryTruncatedWarned = false;
110
213
  constructor(opts) {
111
214
  super();
112
215
  if (!opts || !opts.nodeMap || Object.keys(opts.nodeMap).length === 0) {
@@ -115,6 +218,7 @@ export class DarwinCallbackHandler extends BaseCallbackHandler {
115
218
  const defaultKey = opts.defaultTrajectoryKey ?? "darwinTrajectory";
116
219
  this.resolved = normaliseNodeMap(opts.nodeMap, defaultKey);
117
220
  this.onTrajectory = opts.onTrajectory;
221
+ this.onToolEvent = opts.onToolEvent;
118
222
  // V0.3 (S1187): hung-invoke guard. NaN / negative / non-number falls
119
223
  // back to default. Infinity disables the cap (opt-out).
120
224
  const raw = opts.maxInFlightRuns;
@@ -127,6 +231,24 @@ export class DarwinCallbackHandler extends BaseCallbackHandler {
127
231
  else {
128
232
  this.maxInFlightRuns = DEFAULT_MAX_IN_FLIGHT_RUNS;
129
233
  }
234
+ // V0.4 (S1235): trajectory size guard. Same shape as maxInFlightRuns.
235
+ const rawBytes = opts.maxTrajectoryBytes;
236
+ if (rawBytes === Infinity) {
237
+ this.maxTrajectoryBytes = Infinity;
238
+ }
239
+ else if (typeof rawBytes === "number" &&
240
+ Number.isFinite(rawBytes) &&
241
+ rawBytes > 0) {
242
+ this.maxTrajectoryBytes = Math.floor(rawBytes);
243
+ }
244
+ else {
245
+ this.maxTrajectoryBytes = DEFAULT_MAX_TRAJECTORY_BYTES;
246
+ }
247
+ // V0.4 (R1 P1-1 fix): tool-name cache cap mirrors the chain cap.
248
+ this.maxInFlightToolRuns =
249
+ this.maxInFlightRuns === Infinity
250
+ ? Infinity
251
+ : Math.max(this.maxInFlightRuns, 1) * 4;
130
252
  }
131
253
  /**
132
254
  * Capture the run-id → node-name mapping.
@@ -181,6 +303,8 @@ export class DarwinCallbackHandler extends BaseCallbackHandler {
181
303
  this.runIdToName.set(runId, {
182
304
  nodeName,
183
305
  parentRunId: typeof parentRunId === "string" ? parentRunId : undefined,
306
+ pendingTools: 0,
307
+ finalized: false,
184
308
  });
185
309
  }
186
310
  /**
@@ -196,23 +320,65 @@ export class DarwinCallbackHandler extends BaseCallbackHandler {
196
320
  const inFlight = this.runIdToName.get(runId);
197
321
  if (!inFlight)
198
322
  return;
199
- // One-shot cleanup of the mapping so completed runs don't leak.
200
- // R1 V0.2 Critic Finding 1 (S1185): the `runIdToName.delete` here
201
- // is the ONLY dedup we need — LangGraph guarantees `handleChainEnd`
202
- // fires exactly once per `runId`, and after deletion any second
203
- // call returns early at `if (!inFlight)`. The pre-V0.2 `firedRuns`
204
- // Set was redundant AND leaked unbounded removed.
205
- this.runIdToName.delete(runId);
206
- if (!this.onTrajectory)
323
+ // V0.4 (R1 P1-4 fix, S1235): defer the chain-entry cleanup if tool
324
+ // events are still pending. Without this, `handleToolEnd` for a
325
+ // still-executing tool would see `runIdToName.get(parentRunId) ===
326
+ // undefined` and silently drop the tool event. We mark the entry
327
+ // `finalized` so subsequent `handleChainStart` for the SAME runId
328
+ // (which LangGraph never does, but defense-in-depth) is treated as
329
+ // a re-fire and ignored; and we hold the trajectory dispatch in
330
+ // `pendingTrajectoryDispatch` to fire from the last tool callback.
331
+ inFlight.finalized = true;
332
+ if (inFlight.pendingTools === 0) {
333
+ this.runIdToName.delete(runId);
334
+ }
335
+ if (!this.onTrajectory) {
336
+ if (inFlight.pendingTools === 0) {
337
+ // Already cleaned up; nothing more to do.
338
+ return;
339
+ }
340
+ // Caller does not care about the trajectory, just the tool events.
341
+ // No pending dispatch needed; the tool-callback path will clean up
342
+ // the chain entry when pending hits 0.
207
343
  return;
344
+ }
208
345
  const entry = this.resolved.get(inFlight.nodeName);
209
346
  if (!entry)
210
347
  return;
211
348
  if (outputs === null || typeof outputs !== "object")
212
349
  return;
213
- const trajectory = outputs[entry.trajectoryKey];
214
- if (!isExecutionTrace(trajectory))
350
+ const trajectoryRaw = outputs[entry.trajectoryKey];
351
+ if (!isExecutionTrace(trajectoryRaw))
215
352
  return;
353
+ // V0.4 (S1235): size-guard. Run JSON.stringify ONCE and reuse its
354
+ // length for the cap test — the result is discarded, we never log
355
+ // raw payloads. JSON.stringify can throw on circular refs / BigInt
356
+ // / Symbol values; defensive catch keeps the hook robust regardless.
357
+ let serialisedSize = 0;
358
+ try {
359
+ serialisedSize = JSON.stringify(trajectoryRaw).length;
360
+ }
361
+ catch {
362
+ // Unserialisable trajectories are themselves a signal worth
363
+ // surfacing — treat as oversized so consumers see the replacement.
364
+ serialisedSize = Number.POSITIVE_INFINITY;
365
+ }
366
+ let trajectory = trajectoryRaw;
367
+ let trajectoryTruncated = false;
368
+ if (this.maxTrajectoryBytes !== Infinity &&
369
+ serialisedSize > this.maxTrajectoryBytes) {
370
+ trajectory = buildTruncatedTrace(trajectoryRaw);
371
+ trajectoryTruncated = true;
372
+ if (!this.trajectoryTruncatedWarned) {
373
+ this.trajectoryTruncatedWarned = true;
374
+ console.warn(`[darwin-langgraph] DarwinCallbackHandler: trajectory for ` +
375
+ `"${inFlight.nodeName}" was ${serialisedSize} bytes — exceeded ` +
376
+ `${this.maxTrajectoryBytes} byte cap. Emitting structurally-` +
377
+ `compatible minimal stub with the original counts preserved. ` +
378
+ `Set DarwinCallbackHandlerOptions.maxTrajectoryBytes to raise ` +
379
+ `the cap or Infinity to opt out. Subsequent truncations are silent.`);
380
+ }
381
+ }
216
382
  const frozen = Object.freeze({ ...outputs });
217
383
  // V0.3 (S1187): propagate runId + parentRunId so OTEL exporters,
218
384
  // Langfuse, LangSmith, etc. can rebuild the span hierarchy from the
@@ -224,19 +390,187 @@ export class DarwinCallbackHandler extends BaseCallbackHandler {
224
390
  finalState: frozen,
225
391
  runId,
226
392
  ...(inFlight.parentRunId !== undefined ? { parentRunId: inFlight.parentRunId } : {}),
393
+ ...(trajectoryTruncated ? { trajectoryTruncated: true } : {}),
227
394
  };
228
- // Fire-and-forget. The handler base class supports async returns
229
- // but we don't want to block the chain end on slow user callbacks.
230
- void Promise.resolve()
231
- .then(() => this.onTrajectory(event))
232
- .catch((err) => this.swallow(err));
395
+ const dispatch = () => {
396
+ void Promise.resolve()
397
+ .then(() => this.onTrajectory(event))
398
+ .catch((err) => this.swallow(err));
399
+ };
400
+ if (inFlight.pendingTools > 0) {
401
+ // V0.4 (R1 P1-4 fix): defer the dispatch until all tool events
402
+ // have surfaced so consumers see tool spans BEFORE the agent span
403
+ // closes. The last tool callback drains this map.
404
+ this.pendingTrajectoryDispatch.set(runId, dispatch);
405
+ }
406
+ else {
407
+ dispatch();
408
+ }
233
409
  }
234
410
  /**
235
411
  * Forget the in-flight runId when a chain errors out. We don't fire
236
412
  * the hook on error — the trajectory is by definition incomplete.
237
413
  */
238
414
  handleChainError(_err, runId, _parentRunId) {
415
+ // V0.4 (R1 P1-4): on error we discard pending trajectory dispatch —
416
+ // an errored chain has no complete trajectory by definition.
239
417
  this.runIdToName.delete(runId);
418
+ this.pendingTrajectoryDispatch.delete(runId);
419
+ }
420
+ /**
421
+ * V0.4 (S1235) — tool-chain start event. LangGraph fires `handleToolStart`
422
+ * for every tool-invocation a node performs (whether via `ToolNode`,
423
+ * `createReactAgent`, or a custom tool-call dispatcher). We use the
424
+ * `parentRunId` slot to associate the tool with the tracking node and
425
+ * emit a `DarwinToolEvent` so consumers can build per-tool OTEL spans
426
+ * or progress UIs.
427
+ *
428
+ * If `parentRunId` is missing OR the parent is not a tracked node, the
429
+ * tool event is silently dropped — the handler never surfaces unmapped
430
+ * activity (consistent with the chain-side `resolved.has(nodeName)` gate).
431
+ */
432
+ handleToolStart(_tool, input, runId, parentRunId, _tags, _metadata, _runType, name) {
433
+ if (typeof parentRunId !== "string")
434
+ return;
435
+ const inFlight = this.runIdToName.get(parentRunId);
436
+ if (!inFlight)
437
+ return;
438
+ const entry = this.resolved.get(inFlight.nodeName);
439
+ if (!entry)
440
+ return;
441
+ const toolName = typeof name === "string" && name.length > 0 ? name : "<anonymous-tool>";
442
+ // V0.4 (R1 P1-1 fix): cache the tool name keyed by tool runId so
443
+ // `handleToolEnd` / `handleToolError` can recover it. The LangChain
444
+ // tool-end signature does NOT carry the name reliably across versions.
445
+ if (this.maxInFlightToolRuns !== Infinity && !this.toolRunIdToName.has(runId)) {
446
+ if (this.toolRunIdToName.size >= this.maxInFlightToolRuns) {
447
+ const oldest = this.toolRunIdToName.keys().next().value;
448
+ if (oldest !== undefined)
449
+ this.toolRunIdToName.delete(oldest);
450
+ }
451
+ }
452
+ this.toolRunIdToName.set(runId, toolName);
453
+ // V0.4 (R1 P1-4 fix): increment pending-tools counter on the chain
454
+ // so `handleChainEnd` knows to defer trajectory dispatch.
455
+ inFlight.pendingTools++;
456
+ if (!this.onToolEvent)
457
+ return;
458
+ const event = {
459
+ nodeName: inFlight.nodeName,
460
+ agentName: entry.agentName,
461
+ toolName,
462
+ phase: "start",
463
+ runId,
464
+ parentRunId,
465
+ ...(typeof input === "string" ? { input } : {}),
466
+ };
467
+ this.dispatchToolEvent(event);
468
+ }
469
+ /**
470
+ * V0.4 (S1235) — tool-chain end event.
471
+ */
472
+ handleToolEnd(output, runId, parentRunId) {
473
+ if (typeof parentRunId !== "string")
474
+ return;
475
+ const inFlight = this.runIdToName.get(parentRunId);
476
+ if (!inFlight) {
477
+ // Pending-tools counter is gone with the chain — best-effort
478
+ // cleanup of the tool-name cache only.
479
+ this.toolRunIdToName.delete(runId);
480
+ return;
481
+ }
482
+ const entry = this.resolved.get(inFlight.nodeName);
483
+ if (!entry) {
484
+ this.toolRunIdToName.delete(runId);
485
+ return;
486
+ }
487
+ // V0.4 (R1 P1-1 fix): recover the tool name from the cache populated
488
+ // at `handleToolStart`. Fall back to inspecting `output.name` for
489
+ // adversarial cases where start was missed (eg LangChain version
490
+ // mismatch). Both paths preserve the start/end name symmetry that
491
+ // older revisions broke.
492
+ let toolName = this.toolRunIdToName.get(runId);
493
+ if (!toolName) {
494
+ if (output && typeof output === "object" && "name" in output) {
495
+ const n = output.name;
496
+ if (typeof n === "string" && n.length > 0)
497
+ toolName = n;
498
+ }
499
+ if (!toolName)
500
+ toolName = "<anonymous-tool>";
501
+ }
502
+ this.toolRunIdToName.delete(runId);
503
+ if (this.onToolEvent) {
504
+ const event = {
505
+ nodeName: inFlight.nodeName,
506
+ agentName: entry.agentName,
507
+ toolName,
508
+ phase: "end",
509
+ runId,
510
+ parentRunId,
511
+ output,
512
+ };
513
+ this.dispatchToolEvent(event);
514
+ }
515
+ // V0.4 (R1 P1-4 fix): decrement pending counter and drain the
516
+ // deferred trajectory dispatch if this was the last tool AND
517
+ // handleChainEnd had already fired.
518
+ inFlight.pendingTools = Math.max(0, inFlight.pendingTools - 1);
519
+ if (inFlight.finalized && inFlight.pendingTools === 0) {
520
+ const dispatch = this.pendingTrajectoryDispatch.get(parentRunId);
521
+ if (dispatch) {
522
+ this.pendingTrajectoryDispatch.delete(parentRunId);
523
+ dispatch();
524
+ }
525
+ this.runIdToName.delete(parentRunId);
526
+ }
527
+ }
528
+ /**
529
+ * V0.4 (S1235) — tool-chain error event.
530
+ */
531
+ handleToolError(err, runId, parentRunId) {
532
+ if (typeof parentRunId !== "string")
533
+ return;
534
+ const inFlight = this.runIdToName.get(parentRunId);
535
+ if (!inFlight) {
536
+ this.toolRunIdToName.delete(runId);
537
+ return;
538
+ }
539
+ const entry = this.resolved.get(inFlight.nodeName);
540
+ if (!entry) {
541
+ this.toolRunIdToName.delete(runId);
542
+ return;
543
+ }
544
+ // V0.4 (R1 P1-1 fix): recover the tool name from the cache.
545
+ const toolName = this.toolRunIdToName.get(runId) ?? "<anonymous-tool>";
546
+ this.toolRunIdToName.delete(runId);
547
+ if (this.onToolEvent) {
548
+ const event = {
549
+ nodeName: inFlight.nodeName,
550
+ agentName: entry.agentName,
551
+ toolName,
552
+ phase: "error",
553
+ runId,
554
+ parentRunId,
555
+ error: err instanceof Error ? err : new Error(String(err)),
556
+ };
557
+ this.dispatchToolEvent(event);
558
+ }
559
+ // V0.4 (R1 P1-4 fix): mirror the pending-count drain from handleToolEnd.
560
+ inFlight.pendingTools = Math.max(0, inFlight.pendingTools - 1);
561
+ if (inFlight.finalized && inFlight.pendingTools === 0) {
562
+ const dispatch = this.pendingTrajectoryDispatch.get(parentRunId);
563
+ if (dispatch) {
564
+ this.pendingTrajectoryDispatch.delete(parentRunId);
565
+ dispatch();
566
+ }
567
+ this.runIdToName.delete(parentRunId);
568
+ }
569
+ }
570
+ dispatchToolEvent(event) {
571
+ void Promise.resolve()
572
+ .then(() => this.onToolEvent(event))
573
+ .catch((err) => this.swallowTool(err));
240
574
  }
241
575
  swallow(err) {
242
576
  // R1 V0.2 Critic Finding 5 (S1185): do NOT short-circuit on falsy
@@ -249,6 +583,14 @@ export class DarwinCallbackHandler extends BaseCallbackHandler {
249
583
  `Subsequent throws will be silent. Original error: ` +
250
584
  `${err instanceof Error ? err.message : String(err)}`);
251
585
  }
586
+ swallowTool(err) {
587
+ if (this.toolWarned)
588
+ return;
589
+ this.toolWarned = true;
590
+ console.warn(`[darwin-langgraph] DarwinCallbackHandler.onToolEvent threw — swallowed. ` +
591
+ `Subsequent throws will be silent. Original error: ` +
592
+ `${err instanceof Error ? err.message : String(err)}`);
593
+ }
252
594
  /**
253
595
  * Helper for tests + debug introspection — returns how many in-flight
254
596
  * chain runs we are currently tracking. Should be 0 between
@@ -1 +1 @@
1
- {"version":3,"file":"darwin-callback-handler.js","sourceRoot":"","sources":["../src/darwin-callback-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"darwin-callback-handler.js","sourceRoot":"","sources":["../src/darwin-callback-handler.ts"],"names":[],"mappings":"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"}
package/dist/errors.d.ts CHANGED
@@ -19,4 +19,20 @@ export declare class DarwinEvolutionHookError extends Error {
19
19
  cause?: unknown;
20
20
  });
21
21
  }
22
+ /**
23
+ * Thrown by `createTokenBudgetCallbacks` when a configured per-invocation
24
+ * token budget is exceeded. The handler attaches the cumulative tokens
25
+ * counted at the moment of the throw so consumers can log / alert.
26
+ *
27
+ * NEW V0.4 (S1235).
28
+ */
29
+ export declare class DarwinTokenBudgetExceededError extends Error {
30
+ readonly budget: number;
31
+ readonly totalTokens: number;
32
+ readonly providerHint: string | undefined;
33
+ readonly name = "DarwinTokenBudgetExceededError";
34
+ constructor(message: string, budget: number, totalTokens: number, providerHint: string | undefined, options?: {
35
+ cause?: unknown;
36
+ });
37
+ }
22
38
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,qBAAa,eAAgB,SAAQ,KAAK;aAKtB,SAAS,EAAE,MAAM;IAJnC,SAAyB,IAAI,qBAAqB;gBAGhD,OAAO,EAAE,MAAM,EACC,SAAS,EAAE,MAAM,EACjC,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CAIhC;AAED,qBAAa,wBAAyB,SAAQ,KAAK;IACjD,SAAyB,IAAI,8BAA8B;gBAE/C,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CAG3D"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,qBAAa,eAAgB,SAAQ,KAAK;aAKtB,SAAS,EAAE,MAAM;IAJnC,SAAyB,IAAI,qBAAqB;gBAGhD,OAAO,EAAE,MAAM,EACC,SAAS,EAAE,MAAM,EACjC,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CAIhC;AAED,qBAAa,wBAAyB,SAAQ,KAAK;IACjD,SAAyB,IAAI,8BAA8B;gBAE/C,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CAG3D;AAED;;;;;;GAMG;AACH,qBAAa,8BAA+B,SAAQ,KAAK;aAKrC,MAAM,EAAE,MAAM;aACd,WAAW,EAAE,MAAM;aACnB,YAAY,EAAE,MAAM,GAAG,SAAS;IANlD,SAAyB,IAAI,oCAAoC;gBAG/D,OAAO,EAAE,MAAM,EACC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,GAAG,SAAS,EAChD,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CAIhC"}
package/dist/errors.js CHANGED
@@ -20,4 +20,23 @@ export class DarwinEvolutionHookError extends Error {
20
20
  super(message, options);
21
21
  }
22
22
  }
23
+ /**
24
+ * Thrown by `createTokenBudgetCallbacks` when a configured per-invocation
25
+ * token budget is exceeded. The handler attaches the cumulative tokens
26
+ * counted at the moment of the throw so consumers can log / alert.
27
+ *
28
+ * NEW V0.4 (S1235).
29
+ */
30
+ export class DarwinTokenBudgetExceededError extends Error {
31
+ budget;
32
+ totalTokens;
33
+ providerHint;
34
+ name = "DarwinTokenBudgetExceededError";
35
+ constructor(message, budget, totalTokens, providerHint, options) {
36
+ super(message, options);
37
+ this.budget = budget;
38
+ this.totalTokens = totalTokens;
39
+ this.providerHint = providerHint;
40
+ }
41
+ }
23
42
  //# sourceMappingURL=errors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAKtB;IAJO,IAAI,GAAG,iBAAiB,CAAC;IAElD,YACE,OAAe,EACC,SAAiB,EACjC,OAA6B;QAE7B,KAAK,CAAC,OAAO,EAAE,OAAuB,CAAC,CAAC;QAHxB,cAAS,GAAT,SAAS,CAAQ;IAInC,CAAC;CACF;AAED,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IACxB,IAAI,GAAG,0BAA0B,CAAC;IAE3D,YAAY,OAAe,EAAE,OAA6B;QACxD,KAAK,CAAC,OAAO,EAAE,OAAuB,CAAC,CAAC;IAC1C,CAAC;CACF"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAKtB;IAJO,IAAI,GAAG,iBAAiB,CAAC;IAElD,YACE,OAAe,EACC,SAAiB,EACjC,OAA6B;QAE7B,KAAK,CAAC,OAAO,EAAE,OAAuB,CAAC,CAAC;QAHxB,cAAS,GAAT,SAAS,CAAQ;IAInC,CAAC;CACF;AAED,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IACxB,IAAI,GAAG,0BAA0B,CAAC;IAE3D,YAAY,OAAe,EAAE,OAA6B;QACxD,KAAK,CAAC,OAAO,EAAE,OAAuB,CAAC,CAAC;IAC1C,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,OAAO,8BAA+B,SAAQ,KAAK;IAKrC;IACA;IACA;IANO,IAAI,GAAG,gCAAgC,CAAC;IAEjE,YACE,OAAe,EACC,MAAc,EACd,WAAmB,EACnB,YAAgC,EAChD,OAA6B;QAE7B,KAAK,CAAC,OAAO,EAAE,OAAuB,CAAC,CAAC;QALxB,WAAM,GAAN,MAAM,CAAQ;QACd,gBAAW,GAAX,WAAW,CAAQ;QACnB,iBAAY,GAAZ,YAAY,CAAoB;IAIlD,CAAC;CACF"}
package/dist/index.d.ts CHANGED
@@ -40,11 +40,15 @@
40
40
  export { createDarwinNode, type CreateDarwinNodeOptions, type DarwinNodeFn, type DarwinRunOptionsPassthrough, } from "./create-darwin-node.js";
41
41
  export { darwinAnnotation, getDarwinChannelSpec, lastWriteWinsTrajectoryReducer, } from "./darwin-annotation.js";
42
42
  export { withDarwinEvolution, type DarwinEvolutionOptions, type DarwinNodeMapEntry, type DarwinTrajectoryEvent, } from "./with-darwin-evolution.js";
43
- export { DarwinCallbackHandler, type DarwinCallbackHandlerOptions, } from "./darwin-callback-handler.js";
43
+ export { DarwinCallbackHandler, MAX_KNOWN_TRACE_VERSION, type DarwinCallbackHandlerOptions, type DarwinToolEvent, } from "./darwin-callback-handler.js";
44
44
  export { toOtelAttributes, toolCallToOtelAttributes, type OtelAttributes, type ToOtelAttributesOptions, type ToolCallOtelOptions, } from "./to-otel-attributes.js";
45
45
  export { darwinMessagesAnnotation, getMessagesChannelSpec, } from "./darwin-messages-annotation.js";
46
- export { DarwinNodeError, DarwinEvolutionHookError } from "./errors.js";
46
+ export { darwinAccumulatingAnnotation, getDarwinAccumulatingChannelSpec, darwinTrajectoryAccumulatorReducer, } from "./darwin-accumulating-annotation.js";
47
+ export { TokenBudgetCallbackHandler, createTokenBudgetCallbacks, type TokenBudgetOptions, type TokenBudgetExceedInfo, type TokenBudgetTickInfo, } from "./token-budget.js";
48
+ export { toW3CTraceContext, type ToW3CTraceContextOptions, type W3CTraceContext, } from "./to-w3c-trace-context.js";
49
+ export type { DarwinNodeAttemptInfo } from "./create-darwin-node.js";
50
+ export { DarwinNodeError, DarwinEvolutionHookError, DarwinTokenBudgetExceededError, } from "./errors.js";
47
51
  export type { AgentDefinition, DarwinExperiment, ExecutionTrace, MemoryProvider, RunResult, TraceToolCall, TraceTokenUsage, TraceTurnError, } from "./types.js";
48
52
  /** Adapter version — sync with `package.json` on every release. */
49
- export declare const VERSION = "0.3.0-alpha.1";
53
+ export declare const VERSION = "0.5.0-alpha.1";
50
54
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,OAAO,EACL,gBAAgB,EAChB,KAAK,uBAAuB,EAC5B,KAAK,YAAY,EACjB,KAAK,2BAA2B,GACjC,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,8BAA8B,GAC/B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,mBAAmB,EACnB,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,GAC3B,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EACL,qBAAqB,EACrB,KAAK,4BAA4B,GAClC,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EACL,gBAAgB,EAChB,wBAAwB,EACxB,KAAK,cAAc,EACnB,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,GACzB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAExE,YAAY,EACV,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,SAAS,EACT,aAAa,EACb,eAAe,EACf,cAAc,GACf,MAAM,YAAY,CAAC;AAEpB,mEAAmE;AACnE,eAAO,MAAM,OAAO,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,OAAO,EACL,gBAAgB,EAChB,KAAK,uBAAuB,EAC5B,KAAK,YAAY,EACjB,KAAK,2BAA2B,GACjC,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,8BAA8B,GAC/B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,mBAAmB,EACnB,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,GAC3B,MAAM,4BAA4B,CAAC;AAIpC,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,KAAK,4BAA4B,EACjC,KAAK,eAAe,GACrB,MAAM,8BAA8B,CAAC;AAItC,OAAO,EACL,gBAAgB,EAChB,wBAAwB,EACxB,KAAK,cAAc,EACnB,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,GACzB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EACL,4BAA4B,EAC5B,gCAAgC,EAChC,kCAAkC,GACnC,MAAM,qCAAqC,CAAC;AAG7C,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,EAC1B,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,GACzB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,iBAAiB,EACjB,KAAK,wBAAwB,EAC7B,KAAK,eAAe,GACrB,MAAM,2BAA2B,CAAC;AAGnC,YAAY,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAErE,OAAO,EACL,eAAe,EACf,wBAAwB,EACxB,8BAA8B,GAC/B,MAAM,aAAa,CAAC;AAErB,YAAY,EACV,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,SAAS,EACT,aAAa,EACb,eAAe,EACf,cAAc,GACf,MAAM,YAAY,CAAC;AAEpB,mEAAmE;AACnE,eAAO,MAAM,OAAO,kBAAkB,CAAC"}
package/dist/index.js CHANGED
@@ -41,12 +41,20 @@ export { createDarwinNode, } from "./create-darwin-node.js";
41
41
  export { darwinAnnotation, getDarwinChannelSpec, lastWriteWinsTrajectoryReducer, } from "./darwin-annotation.js";
42
42
  export { withDarwinEvolution, } from "./with-darwin-evolution.js";
43
43
  // V0.2 — LangChain-native callback handler (preferred over `withDarwinEvolution`)
44
- export { DarwinCallbackHandler, } from "./darwin-callback-handler.js";
44
+ // V0.4 extended with onToolEvent + maxTrajectoryBytes + MAX_KNOWN_TRACE_VERSION
45
+ export { DarwinCallbackHandler, MAX_KNOWN_TRACE_VERSION, } from "./darwin-callback-handler.js";
45
46
  // V0.2 — OTEL GenAI Semantic Conventions mapping
47
+ // V0.4 — extended with langGraphNode / langGraphStep / userId / requestId
46
48
  export { toOtelAttributes, toolCallToOtelAttributes, } from "./to-otel-attributes.js";
47
49
  // V0.2 — MessagesAnnotation interop for graphs mixing createReactAgent + createDarwinNode
48
50
  export { darwinMessagesAnnotation, getMessagesChannelSpec, } from "./darwin-messages-annotation.js";
49
- export { DarwinNodeError, DarwinEvolutionHookError } from "./errors.js";
51
+ // V0.4 accumulating annotation for graphs that fan-out multiple Darwin nodes
52
+ export { darwinAccumulatingAnnotation, getDarwinAccumulatingChannelSpec, darwinTrajectoryAccumulatorReducer, } from "./darwin-accumulating-annotation.js";
53
+ // V0.4 — token-budget callbacks (production guard against runaway agents)
54
+ export { TokenBudgetCallbackHandler, createTokenBudgetCallbacks, } from "./token-budget.js";
55
+ // V0.4 — W3C Trace Context mapper for cross-process span correlation
56
+ export { toW3CTraceContext, } from "./to-w3c-trace-context.js";
57
+ export { DarwinNodeError, DarwinEvolutionHookError, DarwinTokenBudgetExceededError, } from "./errors.js";
50
58
  /** Adapter version — sync with `package.json` on every release. */
51
- export const VERSION = "0.3.0-alpha.1";
59
+ export const VERSION = "0.5.0-alpha.1";
52
60
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,OAAO,EACL,gBAAgB,GAIjB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,8BAA8B,GAC/B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,mBAAmB,GAIpB,MAAM,4BAA4B,CAAC;AAEpC,kFAAkF;AAClF,OAAO,EACL,qBAAqB,GAEtB,MAAM,8BAA8B,CAAC;AAEtC,iDAAiD;AACjD,OAAO,EACL,gBAAgB,EAChB,wBAAwB,GAIzB,MAAM,yBAAyB,CAAC;AAEjC,0FAA0F;AAC1F,OAAO,EACL,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAaxE,mEAAmE;AACnE,MAAM,CAAC,MAAM,OAAO,GAAG,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,OAAO,EACL,gBAAgB,GAIjB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,8BAA8B,GAC/B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,mBAAmB,GAIpB,MAAM,4BAA4B,CAAC;AAEpC,kFAAkF;AAClF,kFAAkF;AAClF,OAAO,EACL,qBAAqB,EACrB,uBAAuB,GAGxB,MAAM,8BAA8B,CAAC;AAEtC,iDAAiD;AACjD,0EAA0E;AAC1E,OAAO,EACL,gBAAgB,EAChB,wBAAwB,GAIzB,MAAM,yBAAyB,CAAC;AAEjC,0FAA0F;AAC1F,OAAO,EACL,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,iCAAiC,CAAC;AAEzC,+EAA+E;AAC/E,OAAO,EACL,4BAA4B,EAC5B,gCAAgC,EAChC,kCAAkC,GACnC,MAAM,qCAAqC,CAAC;AAE7C,0EAA0E;AAC1E,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,GAI3B,MAAM,mBAAmB,CAAC;AAE3B,qEAAqE;AACrE,OAAO,EACL,iBAAiB,GAGlB,MAAM,2BAA2B,CAAC;AAKnC,OAAO,EACL,eAAe,EACf,wBAAwB,EACxB,8BAA8B,GAC/B,MAAM,aAAa,CAAC;AAarB,mEAAmE;AACnE,MAAM,CAAC,MAAM,OAAO,GAAG,eAAe,CAAC"}