@mastra/core 0.17.0-alpha.3 → 0.17.0-alpha.4

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 (149) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/agent/agent.d.ts.map +1 -1
  3. package/dist/agent/index.cjs +11 -11
  4. package/dist/agent/index.js +2 -2
  5. package/dist/agent/input-processor/index.cjs +6 -6
  6. package/dist/agent/input-processor/index.js +1 -1
  7. package/dist/agent/message-list/index.d.ts +1 -1
  8. package/dist/agent/message-list/index.d.ts.map +1 -1
  9. package/dist/agent/types.d.ts +5 -1
  10. package/dist/agent/types.d.ts.map +1 -1
  11. package/dist/ai-tracing/exporters/default.d.ts +1 -0
  12. package/dist/ai-tracing/exporters/default.d.ts.map +1 -1
  13. package/dist/ai-tracing/index.cjs +35 -31
  14. package/dist/ai-tracing/index.js +1 -1
  15. package/dist/ai-tracing/spans/base.d.ts +2 -1
  16. package/dist/ai-tracing/spans/base.d.ts.map +1 -1
  17. package/dist/ai-tracing/types.d.ts +35 -4
  18. package/dist/ai-tracing/types.d.ts.map +1 -1
  19. package/dist/ai-tracing/utils.d.ts +3 -2
  20. package/dist/ai-tracing/utils.d.ts.map +1 -1
  21. package/dist/{chunk-MEAE636Z.js → chunk-4OT7CXAS.js} +17 -4
  22. package/dist/chunk-4OT7CXAS.js.map +1 -0
  23. package/dist/{chunk-6DGBFJVJ.js → chunk-4VHC2F5H.js} +10 -8
  24. package/dist/chunk-4VHC2F5H.js.map +1 -0
  25. package/dist/{chunk-DFG5DYBU.cjs → chunk-6MDSS7WL.cjs} +4 -4
  26. package/dist/{chunk-DFG5DYBU.cjs.map → chunk-6MDSS7WL.cjs.map} +1 -1
  27. package/dist/{chunk-NHXCRP73.cjs → chunk-BGAJ72HJ.cjs} +92 -79
  28. package/dist/chunk-BGAJ72HJ.cjs.map +1 -0
  29. package/dist/{chunk-O5ZQXW2Z.js → chunk-BY37WSX5.js} +5 -5
  30. package/dist/{chunk-O5ZQXW2Z.js.map → chunk-BY37WSX5.js.map} +1 -1
  31. package/dist/{chunk-CUL4XPO7.cjs → chunk-CP4TZ4HO.cjs} +119 -46
  32. package/dist/chunk-CP4TZ4HO.cjs.map +1 -0
  33. package/dist/{chunk-FJRTJO6A.cjs → chunk-F3XF7MEZ.cjs} +12 -12
  34. package/dist/{chunk-FJRTJO6A.cjs.map → chunk-F3XF7MEZ.cjs.map} +1 -1
  35. package/dist/{chunk-7GC52IJO.cjs → chunk-HBQSSMAD.cjs} +13 -11
  36. package/dist/chunk-HBQSSMAD.cjs.map +1 -0
  37. package/dist/{chunk-VFSLYB2P.cjs → chunk-HZGYVRVN.cjs} +21 -8
  38. package/dist/chunk-HZGYVRVN.cjs.map +1 -0
  39. package/dist/{chunk-AZW77RIZ.cjs → chunk-MRZHPP3G.cjs} +103 -5
  40. package/dist/chunk-MRZHPP3G.cjs.map +1 -0
  41. package/dist/{chunk-UIOXAMCE.js → chunk-PL3B3FZM.js} +119 -47
  42. package/dist/chunk-PL3B3FZM.js.map +1 -0
  43. package/dist/{chunk-PGJPVLDZ.cjs → chunk-RNJ4GD7U.cjs} +6 -6
  44. package/dist/{chunk-PGJPVLDZ.cjs.map → chunk-RNJ4GD7U.cjs.map} +1 -1
  45. package/dist/{chunk-HN446TOQ.js → chunk-TUXCO343.js} +17 -6
  46. package/dist/chunk-TUXCO343.js.map +1 -0
  47. package/dist/{chunk-6ER2C5KK.js → chunk-UWUM3F3X.js} +72 -59
  48. package/dist/chunk-UWUM3F3X.js.map +1 -0
  49. package/dist/{chunk-YUSC7Q6Y.js → chunk-VXJFKEON.js} +4 -4
  50. package/dist/{chunk-YUSC7Q6Y.js.map → chunk-VXJFKEON.js.map} +1 -1
  51. package/dist/{chunk-4UUBZNVD.cjs → chunk-X3MOJJYH.cjs} +20 -9
  52. package/dist/chunk-X3MOJJYH.cjs.map +1 -0
  53. package/dist/{chunk-RYRLZO4M.js → chunk-XKVDOO2O.js} +3 -3
  54. package/dist/{chunk-RYRLZO4M.js.map → chunk-XKVDOO2O.js.map} +1 -1
  55. package/dist/{chunk-A6DPQCNR.js → chunk-XRJDA7BI.js} +102 -4
  56. package/dist/chunk-XRJDA7BI.js.map +1 -0
  57. package/dist/index.cjs +38 -38
  58. package/dist/index.js +7 -7
  59. package/dist/llm/model/model.d.ts +3 -1
  60. package/dist/llm/model/model.d.ts.map +1 -1
  61. package/dist/llm/model/model.loop.d.ts +3 -1
  62. package/dist/llm/model/model.loop.d.ts.map +1 -1
  63. package/dist/llm/model/shared.types.d.ts +4 -0
  64. package/dist/llm/model/shared.types.d.ts.map +1 -1
  65. package/dist/loop/index.cjs +2 -2
  66. package/dist/loop/index.js +1 -1
  67. package/dist/loop/test-utils/options.d.ts.map +1 -1
  68. package/dist/loop/workflows/agentic-execution/index.d.ts +836 -0
  69. package/dist/loop/workflows/agentic-execution/index.d.ts.map +1 -0
  70. package/dist/loop/workflows/agentic-execution/llm-execution-step.d.ts +559 -0
  71. package/dist/loop/workflows/agentic-execution/llm-execution-step.d.ts.map +1 -0
  72. package/dist/loop/workflows/agentic-execution/llm-mapping-step.d.ts +311 -0
  73. package/dist/loop/workflows/agentic-execution/llm-mapping-step.d.ts.map +1 -0
  74. package/dist/loop/{workflow → workflows/agentic-execution}/tool-call-step.d.ts +16 -16
  75. package/dist/loop/workflows/agentic-execution/tool-call-step.d.ts.map +1 -0
  76. package/dist/loop/workflows/agentic-loop/index.d.ts +842 -0
  77. package/dist/loop/workflows/agentic-loop/index.d.ts.map +1 -0
  78. package/dist/loop/workflows/run-state.d.ts.map +1 -0
  79. package/dist/loop/workflows/schema.d.ts +439 -0
  80. package/dist/loop/workflows/schema.d.ts.map +1 -0
  81. package/dist/loop/{workflow → workflows}/stream.d.ts +1 -1
  82. package/dist/loop/workflows/stream.d.ts.map +1 -0
  83. package/dist/mastra/index.cjs +2 -2
  84. package/dist/mastra/index.js +1 -1
  85. package/dist/memory/index.cjs +4 -4
  86. package/dist/memory/index.js +1 -1
  87. package/dist/network/index.cjs +2 -2
  88. package/dist/network/index.js +1 -1
  89. package/dist/network/vNext/index.cjs +34 -34
  90. package/dist/network/vNext/index.cjs.map +1 -1
  91. package/dist/network/vNext/index.js +7 -7
  92. package/dist/network/vNext/index.js.map +1 -1
  93. package/dist/processors/index.cjs +8 -8
  94. package/dist/processors/index.js +2 -2
  95. package/dist/relevance/index.cjs +4 -4
  96. package/dist/relevance/index.js +1 -1
  97. package/dist/scores/base.d.ts.map +1 -1
  98. package/dist/scores/index.cjs +8 -8
  99. package/dist/scores/index.js +1 -1
  100. package/dist/storage/index.cjs +3 -3
  101. package/dist/storage/index.js +1 -1
  102. package/dist/stream/base/output.d.ts.map +1 -1
  103. package/dist/stream/index.cjs +3 -3
  104. package/dist/stream/index.js +1 -1
  105. package/dist/stream/types.d.ts +1 -1
  106. package/dist/stream/types.d.ts.map +1 -1
  107. package/dist/test-utils/llm-mock.cjs +2 -2
  108. package/dist/test-utils/llm-mock.js +1 -1
  109. package/dist/utils.cjs +17 -17
  110. package/dist/utils.d.ts +2 -1
  111. package/dist/utils.d.ts.map +1 -1
  112. package/dist/utils.js +1 -1
  113. package/dist/workflows/default.d.ts.map +1 -1
  114. package/dist/workflows/evented/index.cjs +10 -10
  115. package/dist/workflows/evented/index.js +1 -1
  116. package/dist/workflows/evented/workflow.d.ts.map +1 -1
  117. package/dist/workflows/execution-engine.d.ts +7 -2
  118. package/dist/workflows/execution-engine.d.ts.map +1 -1
  119. package/dist/workflows/index.cjs +10 -10
  120. package/dist/workflows/index.js +1 -1
  121. package/dist/workflows/legacy/index.cjs +22 -22
  122. package/dist/workflows/legacy/index.js +1 -1
  123. package/dist/workflows/types.d.ts +6 -1
  124. package/dist/workflows/types.d.ts.map +1 -1
  125. package/dist/workflows/workflow.d.ts +12 -10
  126. package/dist/workflows/workflow.d.ts.map +1 -1
  127. package/package.json +1 -1
  128. package/dist/chunk-4UUBZNVD.cjs.map +0 -1
  129. package/dist/chunk-6DGBFJVJ.js.map +0 -1
  130. package/dist/chunk-6ER2C5KK.js.map +0 -1
  131. package/dist/chunk-7GC52IJO.cjs.map +0 -1
  132. package/dist/chunk-A6DPQCNR.js.map +0 -1
  133. package/dist/chunk-AZW77RIZ.cjs.map +0 -1
  134. package/dist/chunk-CUL4XPO7.cjs.map +0 -1
  135. package/dist/chunk-HN446TOQ.js.map +0 -1
  136. package/dist/chunk-MEAE636Z.js.map +0 -1
  137. package/dist/chunk-NHXCRP73.cjs.map +0 -1
  138. package/dist/chunk-UIOXAMCE.js.map +0 -1
  139. package/dist/chunk-VFSLYB2P.cjs.map +0 -1
  140. package/dist/loop/workflow/llm-execution.d.ts +0 -81
  141. package/dist/loop/workflow/llm-execution.d.ts.map +0 -1
  142. package/dist/loop/workflow/outer-llm-step.d.ts +0 -44
  143. package/dist/loop/workflow/outer-llm-step.d.ts.map +0 -1
  144. package/dist/loop/workflow/run-state.d.ts.map +0 -1
  145. package/dist/loop/workflow/schema.d.ts +0 -92
  146. package/dist/loop/workflow/schema.d.ts.map +0 -1
  147. package/dist/loop/workflow/stream.d.ts.map +0 -1
  148. package/dist/loop/workflow/tool-call-step.d.ts.map +0 -1
  149. /package/dist/loop/{workflow → workflows}/run-state.d.ts +0 -0
@@ -15,7 +15,79 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
15
15
 
16
16
  var jsonSchemaToZod__default = /*#__PURE__*/_interopDefault(jsonSchemaToZod);
17
17
 
18
+ // src/ai-tracing/types.ts
19
+ var AISpanType = /* @__PURE__ */ ((AISpanType2) => {
20
+ AISpanType2["AGENT_RUN"] = "agent_run";
21
+ AISpanType2["GENERIC"] = "generic";
22
+ AISpanType2["LLM_GENERATION"] = "llm_generation";
23
+ AISpanType2["LLM_CHUNK"] = "llm_chunk";
24
+ AISpanType2["MCP_TOOL_CALL"] = "mcp_tool_call";
25
+ AISpanType2["TOOL_CALL"] = "tool_call";
26
+ AISpanType2["WORKFLOW_RUN"] = "workflow_run";
27
+ AISpanType2["WORKFLOW_STEP"] = "workflow_step";
28
+ AISpanType2["WORKFLOW_CONDITIONAL"] = "workflow_conditional";
29
+ AISpanType2["WORKFLOW_CONDITIONAL_EVAL"] = "workflow_conditional_eval";
30
+ AISpanType2["WORKFLOW_PARALLEL"] = "workflow_parallel";
31
+ AISpanType2["WORKFLOW_LOOP"] = "workflow_loop";
32
+ AISpanType2["WORKFLOW_SLEEP"] = "workflow_sleep";
33
+ AISpanType2["WORKFLOW_WAIT_EVENT"] = "workflow_wait_event";
34
+ return AISpanType2;
35
+ })(AISpanType || {});
36
+ var InternalSpans = /* @__PURE__ */ ((InternalSpans2) => {
37
+ InternalSpans2[InternalSpans2["NONE"] = 0] = "NONE";
38
+ InternalSpans2[InternalSpans2["WORKFLOW"] = 1] = "WORKFLOW";
39
+ InternalSpans2[InternalSpans2["AGENT"] = 2] = "AGENT";
40
+ InternalSpans2[InternalSpans2["TOOL"] = 4] = "TOOL";
41
+ InternalSpans2[InternalSpans2["LLM"] = 8] = "LLM";
42
+ InternalSpans2[InternalSpans2["ALL"] = 15] = "ALL";
43
+ return InternalSpans2;
44
+ })(InternalSpans || {});
45
+ var SamplingStrategyType = /* @__PURE__ */ ((SamplingStrategyType2) => {
46
+ SamplingStrategyType2["ALWAYS"] = "always";
47
+ SamplingStrategyType2["NEVER"] = "never";
48
+ SamplingStrategyType2["RATIO"] = "ratio";
49
+ SamplingStrategyType2["CUSTOM"] = "custom";
50
+ return SamplingStrategyType2;
51
+ })(SamplingStrategyType || {});
52
+ var AITracingEventType = /* @__PURE__ */ ((AITracingEventType2) => {
53
+ AITracingEventType2["SPAN_STARTED"] = "span_started";
54
+ AITracingEventType2["SPAN_UPDATED"] = "span_updated";
55
+ AITracingEventType2["SPAN_ENDED"] = "span_ended";
56
+ return AITracingEventType2;
57
+ })(AITracingEventType || {});
58
+
18
59
  // src/ai-tracing/spans/base.ts
60
+ function isSpanInternal(spanType, flags) {
61
+ if (flags === void 0 || flags === 0 /* NONE */) {
62
+ return false;
63
+ }
64
+ switch (spanType) {
65
+ // Workflow-related spans
66
+ case "workflow_run" /* WORKFLOW_RUN */:
67
+ case "workflow_step" /* WORKFLOW_STEP */:
68
+ case "workflow_conditional" /* WORKFLOW_CONDITIONAL */:
69
+ case "workflow_conditional_eval" /* WORKFLOW_CONDITIONAL_EVAL */:
70
+ case "workflow_parallel" /* WORKFLOW_PARALLEL */:
71
+ case "workflow_loop" /* WORKFLOW_LOOP */:
72
+ case "workflow_sleep" /* WORKFLOW_SLEEP */:
73
+ case "workflow_wait_event" /* WORKFLOW_WAIT_EVENT */:
74
+ return (flags & 1 /* WORKFLOW */) !== 0;
75
+ // Agent-related spans
76
+ case "agent_run" /* AGENT_RUN */:
77
+ return (flags & 2 /* AGENT */) !== 0;
78
+ // Tool-related spans
79
+ case "tool_call" /* TOOL_CALL */:
80
+ case "mcp_tool_call" /* MCP_TOOL_CALL */:
81
+ return (flags & 4 /* TOOL */) !== 0;
82
+ // LLM-related spans
83
+ case "llm_generation" /* LLM_GENERATION */:
84
+ case "llm_chunk" /* LLM_CHUNK */:
85
+ return (flags & 8 /* LLM */) !== 0;
86
+ // Default: never internal
87
+ default:
88
+ return false;
89
+ }
90
+ }
19
91
  var BaseAISpan = class {
20
92
  name;
21
93
  type;
@@ -39,7 +111,7 @@ var BaseAISpan = class {
39
111
  this.startTime = /* @__PURE__ */ new Date();
40
112
  this.aiTracing = aiTracing;
41
113
  this.isEvent = options.isEvent ?? false;
42
- this.isInternal = options.isInternal ?? false;
114
+ this.isInternal = isSpanInternal(this.type, options.tracingPolicy?.internal);
43
115
  if (this.isEvent) {
44
116
  this.output = deepClean(options.output);
45
117
  } else {
@@ -252,38 +324,6 @@ var NoOpAISpan = class extends BaseAISpan {
252
324
  }
253
325
  };
254
326
 
255
- // src/ai-tracing/types.ts
256
- var AISpanType = /* @__PURE__ */ ((AISpanType2) => {
257
- AISpanType2["AGENT_RUN"] = "agent_run";
258
- AISpanType2["GENERIC"] = "generic";
259
- AISpanType2["LLM_GENERATION"] = "llm_generation";
260
- AISpanType2["LLM_CHUNK"] = "llm_chunk";
261
- AISpanType2["MCP_TOOL_CALL"] = "mcp_tool_call";
262
- AISpanType2["TOOL_CALL"] = "tool_call";
263
- AISpanType2["WORKFLOW_RUN"] = "workflow_run";
264
- AISpanType2["WORKFLOW_STEP"] = "workflow_step";
265
- AISpanType2["WORKFLOW_CONDITIONAL"] = "workflow_conditional";
266
- AISpanType2["WORKFLOW_CONDITIONAL_EVAL"] = "workflow_conditional_eval";
267
- AISpanType2["WORKFLOW_PARALLEL"] = "workflow_parallel";
268
- AISpanType2["WORKFLOW_LOOP"] = "workflow_loop";
269
- AISpanType2["WORKFLOW_SLEEP"] = "workflow_sleep";
270
- AISpanType2["WORKFLOW_WAIT_EVENT"] = "workflow_wait_event";
271
- return AISpanType2;
272
- })(AISpanType || {});
273
- var SamplingStrategyType = /* @__PURE__ */ ((SamplingStrategyType2) => {
274
- SamplingStrategyType2["ALWAYS"] = "always";
275
- SamplingStrategyType2["NEVER"] = "never";
276
- SamplingStrategyType2["RATIO"] = "ratio";
277
- SamplingStrategyType2["CUSTOM"] = "custom";
278
- return SamplingStrategyType2;
279
- })(SamplingStrategyType || {});
280
- var AITracingEventType = /* @__PURE__ */ ((AITracingEventType2) => {
281
- AITracingEventType2["SPAN_STARTED"] = "span_started";
282
- AITracingEventType2["SPAN_UPDATED"] = "span_updated";
283
- AITracingEventType2["SPAN_ENDED"] = "span_ended";
284
- return AITracingEventType2;
285
- })(AITracingEventType || {});
286
-
287
327
  // src/ai-tracing/tracers/base.ts
288
328
  var BaseAITracing = class extends chunkKXCUCBEI_cjs.MastraBase {
289
329
  config;
@@ -600,7 +640,7 @@ var CoreToolBuilder = class extends chunkKXCUCBEI_cjs.MastraBase {
600
640
  toolDescription: options.description,
601
641
  toolType: logType || "tool"
602
642
  },
603
- isInternal: options.tracingContext?.isInternal
643
+ tracingPolicy: options.tracingPolicy
604
644
  });
605
645
  try {
606
646
  let result;
@@ -1351,6 +1391,8 @@ var DefaultExporter = class {
1351
1391
  resolvedStrategy;
1352
1392
  buffer;
1353
1393
  flushTimer = null;
1394
+ // Track all spans that have been created, persists across flushes
1395
+ allCreatedSpans = /* @__PURE__ */ new Set();
1354
1396
  constructor(config = {}, logger) {
1355
1397
  if (logger) {
1356
1398
  this.logger = logger;
@@ -1371,6 +1413,7 @@ var DefaultExporter = class {
1371
1413
  insertOnly: [],
1372
1414
  seenSpans: /* @__PURE__ */ new Set(),
1373
1415
  spanSequences: /* @__PURE__ */ new Map(),
1416
+ completedSpans: /* @__PURE__ */ new Set(),
1374
1417
  outOfOrderCount: 0,
1375
1418
  totalSize: 0
1376
1419
  };
@@ -1434,6 +1477,7 @@ var DefaultExporter = class {
1434
1477
  this.logger.warn("Out-of-order span update detected - skipping event", {
1435
1478
  spanId: event.exportedSpan.id,
1436
1479
  traceId: event.exportedSpan.traceId,
1480
+ spanName: event.exportedSpan.name,
1437
1481
  eventType: event.type
1438
1482
  });
1439
1483
  }
@@ -1457,11 +1501,12 @@ var DefaultExporter = class {
1457
1501
  };
1458
1502
  this.buffer.creates.push(createRecord);
1459
1503
  this.buffer.seenSpans.add(spanKey);
1504
+ this.allCreatedSpans.add(spanKey);
1460
1505
  }
1461
1506
  break;
1462
1507
  case "span_updated" /* SPAN_UPDATED */:
1463
1508
  if (this.resolvedStrategy === "batch-with-updates") {
1464
- if (this.buffer.seenSpans.has(spanKey)) {
1509
+ if (this.allCreatedSpans.has(spanKey)) {
1465
1510
  this.buffer.updates.push({
1466
1511
  traceId: event.exportedSpan.traceId,
1467
1512
  spanId: event.exportedSpan.id,
@@ -1479,7 +1524,7 @@ var DefaultExporter = class {
1479
1524
  break;
1480
1525
  case "span_ended" /* SPAN_ENDED */:
1481
1526
  if (this.resolvedStrategy === "batch-with-updates") {
1482
- if (this.buffer.seenSpans.has(spanKey)) {
1527
+ if (this.allCreatedSpans.has(spanKey)) {
1483
1528
  this.buffer.updates.push({
1484
1529
  traceId: event.exportedSpan.traceId,
1485
1530
  spanId: event.exportedSpan.id,
@@ -1489,6 +1534,7 @@ var DefaultExporter = class {
1489
1534
  },
1490
1535
  sequenceNumber: this.getNextSequence(spanKey)
1491
1536
  });
1537
+ this.buffer.completedSpans.add(spanKey);
1492
1538
  } else if (event.exportedSpan.isEvent) {
1493
1539
  const createRecord = {
1494
1540
  traceId: event.exportedSpan.traceId,
@@ -1499,6 +1545,8 @@ var DefaultExporter = class {
1499
1545
  };
1500
1546
  this.buffer.creates.push(createRecord);
1501
1547
  this.buffer.seenSpans.add(spanKey);
1548
+ this.allCreatedSpans.add(spanKey);
1549
+ this.buffer.completedSpans.add(spanKey);
1502
1550
  } else {
1503
1551
  this.handleOutOfOrderUpdate(event);
1504
1552
  this.buffer.outOfOrderCount++;
@@ -1512,6 +1560,8 @@ var DefaultExporter = class {
1512
1560
  updatedAt: null
1513
1561
  };
1514
1562
  this.buffer.insertOnly.push(createRecord);
1563
+ this.buffer.completedSpans.add(spanKey);
1564
+ this.allCreatedSpans.add(spanKey);
1515
1565
  }
1516
1566
  break;
1517
1567
  }
@@ -1538,15 +1588,19 @@ var DefaultExporter = class {
1538
1588
  /**
1539
1589
  * Resets the buffer after successful flush
1540
1590
  */
1541
- resetBuffer() {
1591
+ resetBuffer(completedSpansToCleanup = /* @__PURE__ */ new Set()) {
1542
1592
  this.buffer.creates = [];
1543
1593
  this.buffer.updates = [];
1544
1594
  this.buffer.insertOnly = [];
1545
1595
  this.buffer.seenSpans.clear();
1546
1596
  this.buffer.spanSequences.clear();
1597
+ this.buffer.completedSpans.clear();
1547
1598
  this.buffer.outOfOrderCount = 0;
1548
1599
  this.buffer.firstEventTime = void 0;
1549
1600
  this.buffer.totalSize = 0;
1601
+ for (const spanKey of completedSpansToCleanup) {
1602
+ this.allCreatedSpans.delete(spanKey);
1603
+ }
1550
1604
  }
1551
1605
  /**
1552
1606
  * Schedules a flush using setTimeout
@@ -1627,6 +1681,7 @@ var DefaultExporter = class {
1627
1681
  */
1628
1682
  async handleRealtimeEvent(event, storage) {
1629
1683
  const span = event.exportedSpan;
1684
+ const spanKey = this.buildSpanKey(span.traceId, span.id);
1630
1685
  if (span.isEvent) {
1631
1686
  if (event.type === "span_ended" /* SPAN_ENDED */) {
1632
1687
  await storage.createAISpan({
@@ -1649,8 +1704,18 @@ var DefaultExporter = class {
1649
1704
  createdAt: /* @__PURE__ */ new Date(),
1650
1705
  updatedAt: null
1651
1706
  });
1707
+ this.allCreatedSpans.add(spanKey);
1652
1708
  break;
1653
1709
  case "span_updated" /* SPAN_UPDATED */:
1710
+ await storage.updateAISpan({
1711
+ traceId: span.traceId,
1712
+ spanId: span.id,
1713
+ updates: {
1714
+ ...this.buildUpdateRecord(span),
1715
+ updatedAt: /* @__PURE__ */ new Date()
1716
+ }
1717
+ });
1718
+ break;
1654
1719
  case "span_ended" /* SPAN_ENDED */:
1655
1720
  await storage.updateAISpan({
1656
1721
  traceId: span.traceId,
@@ -1660,6 +1725,7 @@ var DefaultExporter = class {
1660
1725
  updatedAt: /* @__PURE__ */ new Date()
1661
1726
  }
1662
1727
  });
1728
+ this.allCreatedSpans.delete(spanKey);
1663
1729
  break;
1664
1730
  default:
1665
1731
  this.logger.warn(`Tracing event type not implemented for span spans: ${event.type}`);
@@ -1732,6 +1798,7 @@ var DefaultExporter = class {
1732
1798
  insertOnly: [...this.buffer.insertOnly],
1733
1799
  seenSpans: new Set(this.buffer.seenSpans),
1734
1800
  spanSequences: new Map(this.buffer.spanSequences),
1801
+ completedSpans: new Set(this.buffer.completedSpans),
1735
1802
  outOfOrderCount: this.buffer.outOfOrderCount,
1736
1803
  firstEventTime: this.buffer.firstEventTime,
1737
1804
  totalSize: this.buffer.totalSize
@@ -1771,6 +1838,9 @@ var DefaultExporter = class {
1771
1838
  await storage.batchCreateAISpans({ records: buffer.insertOnly });
1772
1839
  }
1773
1840
  }
1841
+ for (const spanKey of buffer.completedSpans) {
1842
+ this.allCreatedSpans.delete(spanKey);
1843
+ }
1774
1844
  } catch (error) {
1775
1845
  if (attempt < this.config.maxRetries) {
1776
1846
  const retryDelay = this.calculateRetryDelay(attempt);
@@ -1789,6 +1859,9 @@ var DefaultExporter = class {
1789
1859
  droppedBatchSize: buffer.totalSize,
1790
1860
  error: error instanceof Error ? error.message : String(error)
1791
1861
  });
1862
+ for (const spanKey of buffer.completedSpans) {
1863
+ this.allCreatedSpans.delete(spanKey);
1864
+ }
1792
1865
  }
1793
1866
  }
1794
1867
  }
@@ -2146,18 +2219,17 @@ function getValidTraceId(span) {
2146
2219
  return span?.isValid ? span.traceId : void 0;
2147
2220
  }
2148
2221
  function getOrCreateSpan(options) {
2149
- const { type, attributes, tracingContext, tracingOptions, runtimeContext, ...rest } = options;
2222
+ const { type, attributes, tracingContext, runtimeContext, ...rest } = options;
2150
2223
  const metadata = {
2151
2224
  ...rest.metadata ?? {},
2152
- ...tracingOptions?.metadata ?? {}
2225
+ ...rest.tracingOptions?.metadata ?? {}
2153
2226
  };
2154
2227
  if (tracingContext?.currentSpan) {
2155
2228
  return tracingContext.currentSpan.createChildSpan({
2156
2229
  type,
2157
2230
  attributes,
2158
2231
  ...rest,
2159
- metadata,
2160
- isInternal: tracingContext?.isInternal
2232
+ metadata
2161
2233
  });
2162
2234
  }
2163
2235
  const aiTracing = getSelectedAITracing({
@@ -2166,12 +2238,12 @@ function getOrCreateSpan(options) {
2166
2238
  return aiTracing?.startSpan({
2167
2239
  type,
2168
2240
  attributes,
2241
+ ...rest,
2242
+ metadata,
2169
2243
  customSamplerOptions: {
2170
2244
  runtimeContext,
2171
2245
  metadata
2172
- },
2173
- ...rest,
2174
- metadata
2246
+ }
2175
2247
  });
2176
2248
  }
2177
2249
 
@@ -2331,6 +2403,7 @@ exports.ConsoleExporter = ConsoleExporter;
2331
2403
  exports.DefaultAISpan = DefaultAISpan;
2332
2404
  exports.DefaultAITracing = DefaultAITracing;
2333
2405
  exports.DefaultExporter = DefaultExporter;
2406
+ exports.InternalSpans = InternalSpans;
2334
2407
  exports.NoOpAISpan = NoOpAISpan;
2335
2408
  exports.SamplingStrategyType = SamplingStrategyType;
2336
2409
  exports.SensitiveDataFilter = SensitiveDataFilter;
@@ -2368,5 +2441,5 @@ exports.setupAITracing = setupAITracing;
2368
2441
  exports.shutdownAITracingRegistry = shutdownAITracingRegistry;
2369
2442
  exports.unregisterAITracing = unregisterAITracing;
2370
2443
  exports.wrapMastra = wrapMastra;
2371
- //# sourceMappingURL=chunk-CUL4XPO7.cjs.map
2372
- //# sourceMappingURL=chunk-CUL4XPO7.cjs.map
2444
+ //# sourceMappingURL=chunk-CP4TZ4HO.cjs.map
2445
+ //# sourceMappingURL=chunk-CP4TZ4HO.cjs.map