@mastra/server 0.0.0-break-rename-vnext-legacy-20251002212351 → 0.0.0-bundle-recursion-20251030002519

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 (199) hide show
  1. package/CHANGELOG.md +341 -4
  2. package/dist/{chunk-SZUAJANR.js → chunk-2P4VRXBT.js} +90 -108
  3. package/dist/chunk-2P4VRXBT.js.map +1 -0
  4. package/dist/{chunk-PPYGWINI.cjs → chunk-2PLXW4ZX.cjs} +74 -74
  5. package/dist/{chunk-PPYGWINI.cjs.map → chunk-2PLXW4ZX.cjs.map} +1 -1
  6. package/dist/{chunk-52UP7DFT.cjs → chunk-2S4IMB6E.cjs} +4 -4
  7. package/dist/{chunk-52UP7DFT.cjs.map → chunk-2S4IMB6E.cjs.map} +1 -1
  8. package/dist/{chunk-HRG5HN4U.js → chunk-3PXWQX3J.js} +189 -130
  9. package/dist/chunk-3PXWQX3J.js.map +1 -0
  10. package/dist/{chunk-NLWACBE7.cjs → chunk-3SNGNFUJ.cjs} +4 -4
  11. package/dist/{chunk-NLWACBE7.cjs.map → chunk-3SNGNFUJ.cjs.map} +1 -1
  12. package/dist/{chunk-AX5SCBJL.js → chunk-4AKQUEI2.js} +86 -48
  13. package/dist/chunk-4AKQUEI2.js.map +1 -0
  14. package/dist/{chunk-FYZHFAFB.cjs → chunk-4APSL4XM.cjs} +191 -130
  15. package/dist/chunk-4APSL4XM.cjs.map +1 -0
  16. package/dist/{chunk-A3AL7EWJ.js → chunk-ABRFV4XP.js} +3 -3
  17. package/dist/{chunk-A3AL7EWJ.js.map → chunk-ABRFV4XP.js.map} +1 -1
  18. package/dist/{chunk-YWOK4F5A.js → chunk-AQCEVRZV.js} +3 -4
  19. package/dist/chunk-AQCEVRZV.js.map +1 -0
  20. package/dist/{chunk-XJOYGRTN.js → chunk-AW5BU3RQ.js} +7 -4
  21. package/dist/chunk-AW5BU3RQ.js.map +1 -0
  22. package/dist/{chunk-WUJLVNLU.js → chunk-BATEJLED.js} +3 -3
  23. package/dist/{chunk-WUJLVNLU.js.map → chunk-BATEJLED.js.map} +1 -1
  24. package/dist/{chunk-T3TIA3O6.cjs → chunk-EP3JQDPD.cjs} +4 -4
  25. package/dist/{chunk-T3TIA3O6.cjs.map → chunk-EP3JQDPD.cjs.map} +1 -1
  26. package/dist/{chunk-TTHEEIZ3.js → chunk-EVI5NLZG.js} +4 -4
  27. package/dist/{chunk-TTHEEIZ3.js.map → chunk-EVI5NLZG.js.map} +1 -1
  28. package/dist/{chunk-QDPOVUS4.js → chunk-FTBY7JHX.js} +2948 -1475
  29. package/dist/chunk-FTBY7JHX.js.map +1 -0
  30. package/dist/{chunk-LHGBI76Y.cjs → chunk-GDUKGVFI.cjs} +91 -109
  31. package/dist/chunk-GDUKGVFI.cjs.map +1 -0
  32. package/dist/{chunk-LF2ZLOFP.js → chunk-GQRJOUV7.js} +64 -34
  33. package/dist/chunk-GQRJOUV7.js.map +1 -0
  34. package/dist/{chunk-JOXMWFM6.cjs → chunk-HQYKLJHG.cjs} +2837 -1359
  35. package/dist/chunk-HQYKLJHG.cjs.map +1 -0
  36. package/dist/{chunk-VY4ENABS.cjs → chunk-KIHM7IDM.cjs} +13 -14
  37. package/dist/chunk-KIHM7IDM.cjs.map +1 -0
  38. package/dist/{chunk-SIGXR3JT.cjs → chunk-LPM6BBAX.cjs} +5 -5
  39. package/dist/{chunk-SIGXR3JT.cjs.map → chunk-LPM6BBAX.cjs.map} +1 -1
  40. package/dist/{chunk-GU4EWMZB.cjs → chunk-LZKJT7QP.cjs} +64 -34
  41. package/dist/chunk-LZKJT7QP.cjs.map +1 -0
  42. package/dist/{chunk-WHN4VX55.js → chunk-MYR4PVGN.js} +3 -3
  43. package/dist/{chunk-WHN4VX55.js.map → chunk-MYR4PVGN.js.map} +1 -1
  44. package/dist/{chunk-EMMSS5I5.cjs → chunk-O7I5CWRX.cjs} +10 -3
  45. package/dist/{chunk-EMMSS5I5.cjs.map → chunk-O7I5CWRX.cjs.map} +1 -1
  46. package/dist/{chunk-G3PMV62Z.js → chunk-PR4QN5HX.js} +10 -4
  47. package/dist/{chunk-G3PMV62Z.js.map → chunk-PR4QN5HX.js.map} +1 -1
  48. package/dist/{chunk-JRDEOHAJ.js → chunk-QQXMIP6C.js} +3 -3
  49. package/dist/{chunk-JRDEOHAJ.js.map → chunk-QQXMIP6C.js.map} +1 -1
  50. package/dist/chunk-QU6N55W6.cjs +256 -0
  51. package/dist/chunk-QU6N55W6.cjs.map +1 -0
  52. package/dist/{chunk-KM7EJKXV.js → chunk-RC5UZM7H.js} +4 -4
  53. package/dist/{chunk-KM7EJKXV.js.map → chunk-RC5UZM7H.js.map} +1 -1
  54. package/dist/{chunk-NG5IVLEZ.js → chunk-RQK4FQUD.js} +3 -3
  55. package/dist/{chunk-NG5IVLEZ.js.map → chunk-RQK4FQUD.js.map} +1 -1
  56. package/dist/chunk-SHWNNZBL.js +254 -0
  57. package/dist/chunk-SHWNNZBL.js.map +1 -0
  58. package/dist/{chunk-BKCWZLEL.cjs → chunk-SPRRK3P7.cjs} +8 -5
  59. package/dist/chunk-SPRRK3P7.cjs.map +1 -0
  60. package/dist/{chunk-6IJWRJZE.js → chunk-THWIEXQQ.js} +4 -4
  61. package/dist/{chunk-6IJWRJZE.js.map → chunk-THWIEXQQ.js.map} +1 -1
  62. package/dist/chunk-TOCYBDP2.js +46 -0
  63. package/dist/chunk-TOCYBDP2.js.map +1 -0
  64. package/dist/{chunk-OPI3FZYH.cjs → chunk-X3G3KC47.cjs} +6 -6
  65. package/dist/{chunk-OPI3FZYH.cjs.map → chunk-X3G3KC47.cjs.map} +1 -1
  66. package/dist/chunk-X6C7BUWN.cjs +48 -0
  67. package/dist/chunk-X6C7BUWN.cjs.map +1 -0
  68. package/dist/{chunk-SPLSYTYW.cjs → chunk-XN74I6VW.cjs} +4 -4
  69. package/dist/{chunk-SPLSYTYW.cjs.map → chunk-XN74I6VW.cjs.map} +1 -1
  70. package/dist/{chunk-4HS3I2TI.cjs → chunk-XUOE3PBE.cjs} +91 -51
  71. package/dist/chunk-XUOE3PBE.cjs.map +1 -0
  72. package/dist/{chunk-KNGXRN26.cjs → chunk-YAYIYIMS.cjs} +11 -11
  73. package/dist/{chunk-KNGXRN26.cjs.map → chunk-YAYIYIMS.cjs.map} +1 -1
  74. package/dist/{chunk-LJFAAEU7.cjs → chunk-YYXITBYY.cjs} +11 -11
  75. package/dist/{chunk-LJFAAEU7.cjs.map → chunk-YYXITBYY.cjs.map} +1 -1
  76. package/dist/{chunk-6GMFZ5LK.js → chunk-ZULZ2752.js} +3 -3
  77. package/dist/{chunk-6GMFZ5LK.js.map → chunk-ZULZ2752.js.map} +1 -1
  78. package/dist/{dist-R3L5J3LL.cjs → dist-4MVGNSRL.cjs} +20 -20
  79. package/dist/{dist-R3L5J3LL.cjs.map → dist-4MVGNSRL.cjs.map} +1 -1
  80. package/dist/{dist-OC4J73ML.cjs → dist-FZYCV3VB.cjs} +26 -26
  81. package/dist/{dist-OC4J73ML.cjs.map → dist-FZYCV3VB.cjs.map} +1 -1
  82. package/dist/{dist-N6P7NYGX.cjs → dist-G2BYZJOC.cjs} +28 -28
  83. package/dist/{dist-N6P7NYGX.cjs.map → dist-G2BYZJOC.cjs.map} +1 -1
  84. package/dist/dist-P4MXBQ3U.cjs +16 -0
  85. package/dist/{dist-EZZMMMNT.cjs.map → dist-P4MXBQ3U.cjs.map} +1 -1
  86. package/dist/{dist-LKU3RRT2.js → dist-PQZUVLPC.js} +3 -3
  87. package/dist/{dist-LKU3RRT2.js.map → dist-PQZUVLPC.js.map} +1 -1
  88. package/dist/{dist-ZHCN47XA.js → dist-R7WYX6LC.js} +3 -3
  89. package/dist/{dist-ZHCN47XA.js.map → dist-R7WYX6LC.js.map} +1 -1
  90. package/dist/{dist-QI7RYOYQ.cjs → dist-RFMYFILX.cjs} +30 -30
  91. package/dist/{dist-QI7RYOYQ.cjs.map → dist-RFMYFILX.cjs.map} +1 -1
  92. package/dist/{dist-JNIWWFE5.js → dist-X7XR3M3Z.js} +3 -3
  93. package/dist/{dist-JNIWWFE5.js.map → dist-X7XR3M3Z.js.map} +1 -1
  94. package/dist/{dist-COC6WFAX.js → dist-XVBSOGFK.js} +3 -3
  95. package/dist/{dist-COC6WFAX.js.map → dist-XVBSOGFK.js.map} +1 -1
  96. package/dist/dist-YREX2TJT.js +3 -0
  97. package/dist/{dist-26HWEQY6.js.map → dist-YREX2TJT.js.map} +1 -1
  98. package/dist/server/handlers/a2a.cjs +7 -7
  99. package/dist/server/handlers/a2a.js +1 -1
  100. package/dist/server/handlers/agent-builder.cjs +36 -16
  101. package/dist/server/handlers/agent-builder.d.ts +20 -4
  102. package/dist/server/handlers/agent-builder.d.ts.map +1 -1
  103. package/dist/server/handlers/agent-builder.js +1 -1
  104. package/dist/server/handlers/agents.cjs +26 -18
  105. package/dist/server/handlers/agents.d.ts +57 -47
  106. package/dist/server/handlers/agents.d.ts.map +1 -1
  107. package/dist/server/handlers/agents.js +1 -1
  108. package/dist/server/handlers/legacyWorkflows.cjs +11 -11
  109. package/dist/server/handlers/legacyWorkflows.js +1 -1
  110. package/dist/server/handlers/logs.cjs +4 -4
  111. package/dist/server/handlers/logs.js +1 -1
  112. package/dist/server/handlers/memory.cjs +16 -16
  113. package/dist/server/handlers/memory.d.ts +3 -2
  114. package/dist/server/handlers/memory.d.ts.map +1 -1
  115. package/dist/server/handlers/memory.js +1 -1
  116. package/dist/server/handlers/observability.cjs +5 -5
  117. package/dist/server/handlers/observability.js +1 -1
  118. package/dist/server/handlers/scores.cjs +7 -7
  119. package/dist/server/handlers/scores.d.ts +9 -108
  120. package/dist/server/handlers/scores.d.ts.map +1 -1
  121. package/dist/server/handlers/scores.js +1 -1
  122. package/dist/server/handlers/tools.cjs +6 -6
  123. package/dist/server/handlers/tools.js +1 -1
  124. package/dist/server/handlers/vector.cjs +7 -7
  125. package/dist/server/handlers/vector.js +1 -1
  126. package/dist/server/handlers/voice.cjs +5 -5
  127. package/dist/server/handlers/voice.js +1 -1
  128. package/dist/server/handlers/workflows.cjs +27 -19
  129. package/dist/server/handlers/workflows.d.ts +13 -7
  130. package/dist/server/handlers/workflows.d.ts.map +1 -1
  131. package/dist/server/handlers/workflows.js +1 -1
  132. package/dist/server/handlers.cjs +27 -32
  133. package/dist/server/handlers.d.ts +0 -1
  134. package/dist/server/handlers.d.ts.map +1 -1
  135. package/dist/server/handlers.js +12 -13
  136. package/dist/server/utils.d.ts.map +1 -1
  137. package/dist/token-375W3LEI.cjs +64 -0
  138. package/dist/token-375W3LEI.cjs.map +1 -0
  139. package/dist/token-C3IMNCC4.js +62 -0
  140. package/dist/token-C3IMNCC4.js.map +1 -0
  141. package/dist/token-util-CV3RRG6K.cjs +9 -0
  142. package/dist/token-util-CV3RRG6K.cjs.map +1 -0
  143. package/dist/token-util-E5QO2RCL.js +7 -0
  144. package/dist/token-util-E5QO2RCL.js.map +1 -0
  145. package/package.json +9 -9
  146. package/dist/chunk-4HS3I2TI.cjs.map +0 -1
  147. package/dist/chunk-4RRMWXQ2.js +0 -3522
  148. package/dist/chunk-4RRMWXQ2.js.map +0 -1
  149. package/dist/chunk-AX5SCBJL.js.map +0 -1
  150. package/dist/chunk-BKCWZLEL.cjs.map +0 -1
  151. package/dist/chunk-FALVL2VV.cjs +0 -3525
  152. package/dist/chunk-FALVL2VV.cjs.map +0 -1
  153. package/dist/chunk-FYZHFAFB.cjs.map +0 -1
  154. package/dist/chunk-GU4EWMZB.cjs.map +0 -1
  155. package/dist/chunk-HRG5HN4U.js.map +0 -1
  156. package/dist/chunk-HVBBFCDH.cjs +0 -2321
  157. package/dist/chunk-HVBBFCDH.cjs.map +0 -1
  158. package/dist/chunk-JOXMWFM6.cjs.map +0 -1
  159. package/dist/chunk-KV6VHX4V.js +0 -160
  160. package/dist/chunk-KV6VHX4V.js.map +0 -1
  161. package/dist/chunk-LF2ZLOFP.js.map +0 -1
  162. package/dist/chunk-LHGBI76Y.cjs.map +0 -1
  163. package/dist/chunk-N7F33WAD.js +0 -2290
  164. package/dist/chunk-N7F33WAD.js.map +0 -1
  165. package/dist/chunk-PWTXZZTR.cjs +0 -165
  166. package/dist/chunk-PWTXZZTR.cjs.map +0 -1
  167. package/dist/chunk-QDPOVUS4.js.map +0 -1
  168. package/dist/chunk-SZUAJANR.js.map +0 -1
  169. package/dist/chunk-VY4ENABS.cjs.map +0 -1
  170. package/dist/chunk-XJOYGRTN.js.map +0 -1
  171. package/dist/chunk-YWOK4F5A.js.map +0 -1
  172. package/dist/dist-26HWEQY6.js +0 -3
  173. package/dist/dist-3DRD6USP.cjs +0 -1411
  174. package/dist/dist-3DRD6USP.cjs.map +0 -1
  175. package/dist/dist-7GVM5ZCS.js +0 -845
  176. package/dist/dist-7GVM5ZCS.js.map +0 -1
  177. package/dist/dist-CCDXEZDR.js +0 -1408
  178. package/dist/dist-CCDXEZDR.js.map +0 -1
  179. package/dist/dist-EZZMMMNT.cjs +0 -16
  180. package/dist/dist-H64VX6DE.js +0 -3
  181. package/dist/dist-H64VX6DE.js.map +0 -1
  182. package/dist/dist-H7RR3EXL.js +0 -2006
  183. package/dist/dist-H7RR3EXL.js.map +0 -1
  184. package/dist/dist-L76NFIWM.cjs +0 -934
  185. package/dist/dist-L76NFIWM.cjs.map +0 -1
  186. package/dist/dist-MQUZENT7.js +0 -931
  187. package/dist/dist-MQUZENT7.js.map +0 -1
  188. package/dist/dist-S3ILRJUH.cjs +0 -2013
  189. package/dist/dist-S3ILRJUH.cjs.map +0 -1
  190. package/dist/dist-WKYB3LTJ.cjs +0 -16
  191. package/dist/dist-WKYB3LTJ.cjs.map +0 -1
  192. package/dist/dist-WY4WSW7C.cjs +0 -849
  193. package/dist/dist-WY4WSW7C.cjs.map +0 -1
  194. package/dist/server/handlers/telemetry.cjs +0 -20
  195. package/dist/server/handlers/telemetry.cjs.map +0 -1
  196. package/dist/server/handlers/telemetry.d.ts +0 -33
  197. package/dist/server/handlers/telemetry.d.ts.map +0 -1
  198. package/dist/server/handlers/telemetry.js +0 -3
  199. package/dist/server/handlers/telemetry.js.map +0 -1
@@ -1,165 +0,0 @@
1
- 'use strict';
2
-
3
- var chunkRE4RPXT2_cjs = require('./chunk-RE4RPXT2.cjs');
4
- var chunk7NADHFD2_cjs = require('./chunk-7NADHFD2.cjs');
5
- var chunkEMMSS5I5_cjs = require('./chunk-EMMSS5I5.cjs');
6
-
7
- // src/server/handlers/telemetry.ts
8
- var telemetry_exports = {};
9
- chunkEMMSS5I5_cjs.__export(telemetry_exports, {
10
- collectParentSpanIds: () => collectParentSpanIds,
11
- getTelemetryHandler: () => getTelemetryHandler,
12
- storeTelemetryHandler: () => storeTelemetryHandler
13
- });
14
- async function getTelemetryHandler({ mastra, body }) {
15
- try {
16
- const telemetry = mastra.getTelemetry();
17
- const storage = mastra.getStorage();
18
- if (!telemetry) {
19
- throw new chunk7NADHFD2_cjs.HTTPException(400, { message: "Telemetry is not initialized" });
20
- }
21
- if (!storage) {
22
- return [];
23
- }
24
- if (!body) {
25
- throw new chunk7NADHFD2_cjs.HTTPException(400, { message: "Body is required" });
26
- }
27
- const { name, scope, page, perPage, attribute, fromDate, toDate } = body;
28
- const attributes = attribute ? Object.fromEntries(
29
- (Array.isArray(attribute) ? attribute : [attribute]).map((attr) => {
30
- const [key, value] = attr.split(":");
31
- return [key, value];
32
- })
33
- ) : void 0;
34
- const traces = await storage.getTraces({
35
- name,
36
- scope,
37
- page: Number(page ?? 0),
38
- perPage: Number(perPage ?? 100),
39
- attributes,
40
- fromDate: fromDate ? new Date(fromDate) : void 0,
41
- toDate: toDate ? new Date(toDate) : void 0
42
- });
43
- return traces;
44
- } catch (error2) {
45
- return chunkRE4RPXT2_cjs.handleError(error2, "Error getting telemetry");
46
- }
47
- }
48
- async function storeTelemetryHandler({ mastra, body }) {
49
- try {
50
- const storage = mastra.getStorage();
51
- const logger = mastra.getLogger();
52
- if (!storage) {
53
- return {
54
- status: "error",
55
- message: "Storage is not initialized"
56
- };
57
- }
58
- const now = /* @__PURE__ */ new Date();
59
- const items = body?.resourceSpans?.[0]?.scopeSpans;
60
- logger.debug("[Telemetry Handler] Received spans:", {
61
- totalSpans: items?.reduce((acc, scope) => acc + scope.spans.length, 0) || 0,
62
- timestamp: now.toISOString()
63
- });
64
- if (!items?.length) {
65
- return {
66
- status: "success",
67
- message: "No spans to process",
68
- traceCount: 0
69
- };
70
- }
71
- const parentSpanIds = collectParentSpanIds(items);
72
- const allSpans = items.reduce((acc, scopedSpans) => {
73
- const { scope, spans } = scopedSpans;
74
- if (scope.name === "@opentelemetry/instrumentation-http") {
75
- return acc;
76
- }
77
- for (const span of spans) {
78
- const {
79
- spanId,
80
- parentSpanId,
81
- traceId,
82
- name,
83
- kind,
84
- attributes,
85
- status,
86
- events,
87
- links,
88
- startTimeUnixNano,
89
- endTimeUnixNano,
90
- ...rest
91
- } = span;
92
- const startTime = Number(BigInt(startTimeUnixNano) / 1000n);
93
- const endTime = Number(BigInt(endTimeUnixNano) / 1000n);
94
- acc.push({
95
- id: spanId,
96
- parentSpanId: parentSpanIds.has(parentSpanId) ? null : parentSpanId,
97
- traceId,
98
- name,
99
- scope: scope.name,
100
- kind,
101
- status: JSON.stringify(status),
102
- events: JSON.stringify(events),
103
- links: JSON.stringify(links),
104
- attributes: JSON.stringify(
105
- attributes.reduce((acc2, attr) => {
106
- const valueKey = Object.keys(attr.value)[0];
107
- if (valueKey) {
108
- acc2[attr.key] = attr.value[valueKey];
109
- }
110
- return acc2;
111
- }, {})
112
- ),
113
- startTime,
114
- endTime,
115
- other: JSON.stringify(rest),
116
- createdAt: now
117
- });
118
- }
119
- return acc;
120
- }, []);
121
- return storage.batchTraceInsert({
122
- records: allSpans
123
- }).then(() => {
124
- return {
125
- status: "success",
126
- message: "Traces received and processed successfully",
127
- traceCount: body.resourceSpans?.length || 0
128
- };
129
- }).catch(() => {
130
- return {
131
- status: "error",
132
- message: "Failed to process traces",
133
- // @ts-ignore
134
- error: error.message
135
- };
136
- });
137
- } catch (error2) {
138
- console.error("Error processing traces:", error2);
139
- return {
140
- status: "error",
141
- message: "Failed to process traces",
142
- // @ts-ignore
143
- error: error2.message
144
- };
145
- }
146
- }
147
- var collectParentSpanIds = (items) => {
148
- const result = /* @__PURE__ */ new Set();
149
- for (const { scope, spans } of items) {
150
- if (scope.name !== "@opentelemetry/instrumentation-http") {
151
- continue;
152
- }
153
- for (const span of spans) {
154
- result.add(span.spanId);
155
- }
156
- }
157
- return result;
158
- };
159
-
160
- exports.collectParentSpanIds = collectParentSpanIds;
161
- exports.getTelemetryHandler = getTelemetryHandler;
162
- exports.storeTelemetryHandler = storeTelemetryHandler;
163
- exports.telemetry_exports = telemetry_exports;
164
- //# sourceMappingURL=chunk-PWTXZZTR.cjs.map
165
- //# sourceMappingURL=chunk-PWTXZZTR.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/server/handlers/telemetry.ts"],"names":["__export","HTTPException","error","handleError","acc"],"mappings":"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","file":"chunk-PWTXZZTR.cjs","sourcesContent":["import { HTTPException } from '../http-exception';\nimport type { Context } from '../types';\n\nimport { handleError } from './error';\n\ninterface TelemetryContext extends Context {\n body?: {\n name?: string;\n scope?: string;\n page?: number;\n perPage?: number;\n attribute?: string | string[];\n fromDate?: Date;\n toDate?: Date;\n };\n}\n\nexport async function getTelemetryHandler({ mastra, body }: TelemetryContext) {\n try {\n const telemetry = mastra.getTelemetry();\n const storage = mastra.getStorage();\n\n if (!telemetry) {\n throw new HTTPException(400, { message: 'Telemetry is not initialized' });\n }\n\n if (!storage) {\n return [];\n }\n\n if (!body) {\n throw new HTTPException(400, { message: 'Body is required' });\n }\n\n const { name, scope, page, perPage, attribute, fromDate, toDate } = body;\n\n // Parse attribute query parameter if present\n const attributes = attribute\n ? Object.fromEntries(\n (Array.isArray(attribute) ? attribute : [attribute]).map(attr => {\n const [key, value] = attr.split(':');\n return [key, value];\n }),\n )\n : undefined;\n\n const traces = await storage.getTraces({\n name,\n scope,\n page: Number(page ?? 0),\n perPage: Number(perPage ?? 100),\n attributes,\n fromDate: fromDate ? new Date(fromDate) : undefined,\n toDate: toDate ? new Date(toDate) : undefined,\n });\n\n return traces;\n } catch (error) {\n return handleError(error, 'Error getting telemetry');\n }\n}\n\nexport async function storeTelemetryHandler({ mastra, body }: Context & { body: { resourceSpans: any[] } }) {\n try {\n const storage = mastra.getStorage();\n const logger = mastra.getLogger();\n\n if (!storage) {\n return {\n status: 'error',\n message: 'Storage is not initialized',\n };\n }\n\n const now = new Date();\n\n const items = body?.resourceSpans?.[0]?.scopeSpans;\n logger.debug('[Telemetry Handler] Received spans:', {\n totalSpans: items?.reduce((acc: number, scope: { spans: any[] }) => acc + scope.spans.length, 0) || 0,\n timestamp: now.toISOString(),\n });\n if (!items?.length) {\n return {\n status: 'success',\n message: 'No spans to process',\n traceCount: 0,\n };\n }\n\n const parentSpanIds = collectParentSpanIds(items);\n const allSpans: any[] = items.reduce((acc: any, scopedSpans: any) => {\n const { scope, spans } = scopedSpans;\n\n // HTTP instrumentation spans are root spans but are not useful.\n // Remove them entirely and promote their direct children to root spans.\n if (scope.name === '@opentelemetry/instrumentation-http') {\n return acc;\n }\n\n for (const span of spans) {\n const {\n spanId,\n parentSpanId,\n traceId,\n name,\n kind,\n attributes,\n status,\n events,\n links,\n startTimeUnixNano,\n endTimeUnixNano,\n ...rest\n } = span;\n\n const startTime = Number(BigInt(startTimeUnixNano) / 1000n);\n const endTime = Number(BigInt(endTimeUnixNano) / 1000n);\n\n acc.push({\n id: spanId,\n parentSpanId: parentSpanIds.has(parentSpanId) ? null : parentSpanId,\n traceId,\n name,\n scope: scope.name,\n kind,\n status: JSON.stringify(status),\n events: JSON.stringify(events),\n links: JSON.stringify(links),\n attributes: JSON.stringify(\n attributes.reduce((acc: Record<string, any>, attr: any) => {\n const valueKey = Object.keys(attr.value)[0];\n if (valueKey) {\n acc[attr.key] = attr.value[valueKey];\n }\n return acc;\n }, {}),\n ),\n startTime,\n endTime,\n other: JSON.stringify(rest),\n createdAt: now,\n });\n }\n return acc;\n }, []);\n\n return storage\n .batchTraceInsert({\n records: allSpans,\n })\n .then(() => {\n return {\n status: 'success',\n message: 'Traces received and processed successfully',\n traceCount: body.resourceSpans?.length || 0,\n };\n })\n .catch(() => {\n return {\n status: 'error',\n message: 'Failed to process traces',\n // @ts-ignore\n error: error.message,\n };\n });\n\n // Return a simple response\n } catch (error) {\n console.error('Error processing traces:', error);\n return {\n status: 'error',\n message: 'Failed to process traces',\n // @ts-ignore\n error: error.message,\n };\n }\n}\n\nexport const collectParentSpanIds = (items: any[]) => {\n const result = new Set<string>();\n for (const { scope, spans } of items) {\n if (scope.name !== '@opentelemetry/instrumentation-http') {\n continue;\n }\n\n for (const span of spans) {\n result.add(span.spanId);\n }\n }\n\n return result;\n};\n"]}