@mastra/server 0.0.0-fix-model-router-machine-cache-20251021232825 → 0.0.0-fix-memory-search-fetch-20251027160505

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 (67) hide show
  1. package/CHANGELOG.md +112 -3
  2. package/dist/{chunk-XDAYZS6N.js → chunk-6VPAV4ZV.js} +69 -59
  3. package/dist/chunk-6VPAV4ZV.js.map +1 -0
  4. package/dist/{chunk-ZKSVHRWS.js → chunk-ABCBHBR7.js} +44 -18
  5. package/dist/chunk-ABCBHBR7.js.map +1 -0
  6. package/dist/{chunk-KA6P5BNS.cjs → chunk-B7QWVGQQ.cjs} +33 -12
  7. package/dist/chunk-B7QWVGQQ.cjs.map +1 -0
  8. package/dist/{chunk-VY4ENABS.cjs → chunk-CJFKRVED.cjs} +2 -3
  9. package/dist/chunk-CJFKRVED.cjs.map +1 -0
  10. package/dist/{chunk-6APHVRA5.cjs → chunk-EGLGMBWW.cjs} +62 -36
  11. package/dist/chunk-EGLGMBWW.cjs.map +1 -0
  12. package/dist/{chunk-TOP25AIO.cjs → chunk-K5T5A3AL.cjs} +4 -4
  13. package/dist/{chunk-TOP25AIO.cjs.map → chunk-K5T5A3AL.cjs.map} +1 -1
  14. package/dist/{chunk-YWOK4F5A.js → chunk-KSFLUEWV.js} +2 -3
  15. package/dist/chunk-KSFLUEWV.js.map +1 -0
  16. package/dist/{chunk-HPXAM2PG.js → chunk-MN2TZQ7I.js} +3 -3
  17. package/dist/{chunk-HPXAM2PG.js.map → chunk-MN2TZQ7I.js.map} +1 -1
  18. package/dist/{chunk-CO4OYKRH.js → chunk-OGK26QPW.js} +58 -104
  19. package/dist/chunk-OGK26QPW.js.map +1 -0
  20. package/dist/{chunk-ZEDPVPID.cjs → chunk-Y7SH5ZKM.cjs} +58 -104
  21. package/dist/chunk-Y7SH5ZKM.cjs.map +1 -0
  22. package/dist/{chunk-FHSOPERI.cjs → chunk-YSHNCC6F.cjs} +69 -58
  23. package/dist/chunk-YSHNCC6F.cjs.map +1 -0
  24. package/dist/{chunk-7IG6734E.js → chunk-ZLBL4NQC.js} +29 -10
  25. package/dist/chunk-ZLBL4NQC.js.map +1 -0
  26. package/dist/server/handlers/a2a.cjs +7 -7
  27. package/dist/server/handlers/a2a.js +1 -1
  28. package/dist/server/handlers/agent-builder.cjs +16 -16
  29. package/dist/server/handlers/agent-builder.d.ts.map +1 -1
  30. package/dist/server/handlers/agent-builder.js +1 -1
  31. package/dist/server/handlers/agents.cjs +23 -19
  32. package/dist/server/handlers/agents.d.ts +4 -0
  33. package/dist/server/handlers/agents.d.ts.map +1 -1
  34. package/dist/server/handlers/agents.js +1 -1
  35. package/dist/server/handlers/memory.cjs +16 -16
  36. package/dist/server/handlers/memory.d.ts.map +1 -1
  37. package/dist/server/handlers/memory.js +1 -1
  38. package/dist/server/handlers/workflows.cjs +27 -19
  39. package/dist/server/handlers/workflows.d.ts +8 -2
  40. package/dist/server/handlers/workflows.d.ts.map +1 -1
  41. package/dist/server/handlers/workflows.js +1 -1
  42. package/dist/server/handlers.cjs +15 -20
  43. package/dist/server/handlers.d.ts +0 -1
  44. package/dist/server/handlers.d.ts.map +1 -1
  45. package/dist/server/handlers.js +6 -7
  46. package/dist/server/utils.d.ts.map +1 -1
  47. package/package.json +7 -7
  48. package/dist/chunk-67GYDFSB.js +0 -160
  49. package/dist/chunk-67GYDFSB.js.map +0 -1
  50. package/dist/chunk-6APHVRA5.cjs.map +0 -1
  51. package/dist/chunk-6ZR275MD.cjs +0 -165
  52. package/dist/chunk-6ZR275MD.cjs.map +0 -1
  53. package/dist/chunk-7IG6734E.js.map +0 -1
  54. package/dist/chunk-CO4OYKRH.js.map +0 -1
  55. package/dist/chunk-FHSOPERI.cjs.map +0 -1
  56. package/dist/chunk-KA6P5BNS.cjs.map +0 -1
  57. package/dist/chunk-VY4ENABS.cjs.map +0 -1
  58. package/dist/chunk-XDAYZS6N.js.map +0 -1
  59. package/dist/chunk-YWOK4F5A.js.map +0 -1
  60. package/dist/chunk-ZEDPVPID.cjs.map +0 -1
  61. package/dist/chunk-ZKSVHRWS.js.map +0 -1
  62. package/dist/server/handlers/telemetry.cjs +0 -20
  63. package/dist/server/handlers/telemetry.cjs.map +0 -1
  64. package/dist/server/handlers/telemetry.d.ts +0 -33
  65. package/dist/server/handlers/telemetry.d.ts.map +0 -1
  66. package/dist/server/handlers/telemetry.js +0 -3
  67. package/dist/server/handlers/telemetry.js.map +0 -1
@@ -1,32 +1,27 @@
1
1
  'use strict';
2
2
 
3
- var chunk3SNGNFUJ_cjs = require('../chunk-3SNGNFUJ.cjs');
4
3
  var chunkXN74I6VW_cjs = require('../chunk-XN74I6VW.cjs');
5
- var chunkZEDPVPID_cjs = require('../chunk-ZEDPVPID.cjs');
4
+ var chunkY7SH5ZKM_cjs = require('../chunk-Y7SH5ZKM.cjs');
6
5
  var chunk2S4IMB6E_cjs = require('../chunk-2S4IMB6E.cjs');
7
6
  var chunkSPRRK3P7_cjs = require('../chunk-SPRRK3P7.cjs');
8
- var chunk6ZR275MD_cjs = require('../chunk-6ZR275MD.cjs');
9
7
  var chunkTRGAMKHX_cjs = require('../chunk-TRGAMKHX.cjs');
10
8
  var chunkEP3JQDPD_cjs = require('../chunk-EP3JQDPD.cjs');
11
- var chunkTOP25AIO_cjs = require('../chunk-TOP25AIO.cjs');
12
- var chunk6APHVRA5_cjs = require('../chunk-6APHVRA5.cjs');
13
- var chunkKA6P5BNS_cjs = require('../chunk-KA6P5BNS.cjs');
14
- var chunkFHSOPERI_cjs = require('../chunk-FHSOPERI.cjs');
9
+ var chunk3SNGNFUJ_cjs = require('../chunk-3SNGNFUJ.cjs');
10
+ var chunkK5T5A3AL_cjs = require('../chunk-K5T5A3AL.cjs');
11
+ var chunkEGLGMBWW_cjs = require('../chunk-EGLGMBWW.cjs');
12
+ var chunkB7QWVGQQ_cjs = require('../chunk-B7QWVGQQ.cjs');
13
+ var chunkYSHNCC6F_cjs = require('../chunk-YSHNCC6F.cjs');
15
14
  var chunkI3C4ODGV_cjs = require('../chunk-I3C4ODGV.cjs');
16
15
 
17
16
 
18
17
 
19
- Object.defineProperty(exports, "voice", {
20
- enumerable: true,
21
- get: function () { return chunk3SNGNFUJ_cjs.voice_exports; }
22
- });
23
18
  Object.defineProperty(exports, "logs", {
24
19
  enumerable: true,
25
20
  get: function () { return chunkXN74I6VW_cjs.logs_exports; }
26
21
  });
27
22
  Object.defineProperty(exports, "memory", {
28
23
  enumerable: true,
29
- get: function () { return chunkZEDPVPID_cjs.memory_exports; }
24
+ get: function () { return chunkY7SH5ZKM_cjs.memory_exports; }
30
25
  });
31
26
  Object.defineProperty(exports, "observability", {
32
27
  enumerable: true,
@@ -36,10 +31,6 @@ Object.defineProperty(exports, "scores", {
36
31
  enumerable: true,
37
32
  get: function () { return chunkSPRRK3P7_cjs.scores_exports; }
38
33
  });
39
- Object.defineProperty(exports, "telemetry", {
40
- enumerable: true,
41
- get: function () { return chunk6ZR275MD_cjs.telemetry_exports; }
42
- });
43
34
  Object.defineProperty(exports, "tools", {
44
35
  enumerable: true,
45
36
  get: function () { return chunkTRGAMKHX_cjs.tools_exports; }
@@ -48,21 +39,25 @@ Object.defineProperty(exports, "vector", {
48
39
  enumerable: true,
49
40
  get: function () { return chunkEP3JQDPD_cjs.vector_exports; }
50
41
  });
42
+ Object.defineProperty(exports, "voice", {
43
+ enumerable: true,
44
+ get: function () { return chunk3SNGNFUJ_cjs.voice_exports; }
45
+ });
51
46
  Object.defineProperty(exports, "a2a", {
52
47
  enumerable: true,
53
- get: function () { return chunkTOP25AIO_cjs.a2a_exports; }
48
+ get: function () { return chunkK5T5A3AL_cjs.a2a_exports; }
54
49
  });
55
50
  Object.defineProperty(exports, "agentBuilder", {
56
51
  enumerable: true,
57
- get: function () { return chunk6APHVRA5_cjs.agent_builder_exports; }
52
+ get: function () { return chunkEGLGMBWW_cjs.agent_builder_exports; }
58
53
  });
59
54
  Object.defineProperty(exports, "workflows", {
60
55
  enumerable: true,
61
- get: function () { return chunkKA6P5BNS_cjs.workflows_exports; }
56
+ get: function () { return chunkB7QWVGQQ_cjs.workflows_exports; }
62
57
  });
63
58
  Object.defineProperty(exports, "agents", {
64
59
  enumerable: true,
65
- get: function () { return chunkFHSOPERI_cjs.agents_exports; }
60
+ get: function () { return chunkYSHNCC6F_cjs.agents_exports; }
66
61
  });
67
62
  Object.defineProperty(exports, "legacyWorkflows", {
68
63
  enumerable: true,
@@ -6,7 +6,6 @@ export * as logs from './handlers/logs.js';
6
6
  export * as memory from './handlers/memory.js';
7
7
  export * as observability from './handlers/observability.js';
8
8
  export * as scores from './handlers/scores.js';
9
- export * as telemetry from './handlers/telemetry.js';
10
9
  export * as tools from './handlers/tools.js';
11
10
  export * as vector from './handlers/vector.js';
12
11
  export * as voice from './handlers/voice.js';
@@ -1 +1 @@
1
- {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/server/handlers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,eAAe,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,aAAa,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/server/handlers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,eAAe,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,aAAa,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC"}
@@ -1,15 +1,14 @@
1
- export { voice_exports as voice } from '../chunk-QQXMIP6C.js';
2
1
  export { logs_exports as logs } from '../chunk-ABRFV4XP.js';
3
- export { memory_exports as memory } from '../chunk-CO4OYKRH.js';
2
+ export { memory_exports as memory } from '../chunk-OGK26QPW.js';
4
3
  export { observability_exports as observability } from '../chunk-BATEJLED.js';
5
4
  export { scores_exports as scores } from '../chunk-AW5BU3RQ.js';
6
- export { telemetry_exports as telemetry } from '../chunk-67GYDFSB.js';
7
5
  export { tools_exports as tools } from '../chunk-AHB4JCIQ.js';
8
6
  export { vector_exports as vector } from '../chunk-MYR4PVGN.js';
9
- export { a2a_exports as a2a } from '../chunk-HPXAM2PG.js';
10
- export { agent_builder_exports as agentBuilder } from '../chunk-ZKSVHRWS.js';
11
- export { workflows_exports as workflows } from '../chunk-7IG6734E.js';
12
- export { agents_exports as agents } from '../chunk-XDAYZS6N.js';
7
+ export { voice_exports as voice } from '../chunk-QQXMIP6C.js';
8
+ export { a2a_exports as a2a } from '../chunk-MN2TZQ7I.js';
9
+ export { agent_builder_exports as agentBuilder } from '../chunk-ABCBHBR7.js';
10
+ export { workflows_exports as workflows } from '../chunk-ZLBL4NQC.js';
11
+ export { agents_exports as agents } from '../chunk-6VPAV4ZV.js';
13
12
  export { legacyWorkflows_exports as legacyWorkflows } from '../chunk-LLUOPR3J.js';
14
13
  //# sourceMappingURL=handlers.js.map
15
14
  //# sourceMappingURL=handlers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/server/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,OAAO,KAAK,EAAqB,QAAQ,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AA0BxF,wBAAgB,eAAe,CAAC,QAAQ,EAAE,QAAQ,GAAG,YAAY,CAqBhE;AAED;;;GAGG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAgC;IAElE;;OAEG;IACH,MAAM,CAAC,yBAAyB,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAItE;;OAEG;IACH,MAAM,CAAC,0BAA0B,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,EAAE,GAAG,GAAG,IAAI;IAmB1F;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAI5D;;OAEG;IACH,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC;IAIlD;;OAEG;IACH,MAAM,CAAC,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAGzD;;OAEG;IACH,MAAM,CAAC,OAAO,IAAI,IAAI;IAKtB;;OAEG;IACH,MAAM,CAAC,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAI1D;;OAEG;IACH,MAAM,CAAC,wBAAwB,IAAI,MAAM,EAAE;CAG5C;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAwB1E"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/server/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,OAAO,KAAK,EAAqB,QAAQ,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AA0BxF,wBAAgB,eAAe,CAAC,QAAQ,EAAE,QAAQ,GAAG,YAAY,CAqBhE;AAED;;;GAGG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAgC;IAElE;;OAEG;IACH,MAAM,CAAC,yBAAyB,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAItE;;OAEG;IACH,MAAM,CAAC,0BAA0B,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,EAAE,GAAG,GAAG,IAAI;IAkB1F;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAI5D;;OAEG;IACH,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC;IAIlD;;OAEG;IACH,MAAM,CAAC,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAGzD;;OAEG;IACH,MAAM,CAAC,OAAO,IAAI,IAAI;IAKtB;;OAEG;IACH,MAAM,CAAC,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAI1D;;OAEG;IACH,MAAM,CAAC,wBAAwB,IAAI,MAAM,EAAE;CAG5C;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAwB1E"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mastra/server",
3
- "version": "0.0.0-fix-model-router-machine-cache-20251021232825",
3
+ "version": "0.0.0-fix-memory-search-fetch-20251027160505",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "files": [
@@ -57,7 +57,7 @@
57
57
  "license": "Apache-2.0",
58
58
  "peerDependencies": {
59
59
  "zod": "^3.25.0 || ^4.0.0",
60
- "@mastra/core": "0.0.0-fix-model-router-machine-cache-20251021232825"
60
+ "@mastra/core": "0.0.0-fix-memory-search-fetch-20251027160505"
61
61
  },
62
62
  "devDependencies": {
63
63
  "@ai-sdk/openai": "^1.3.24",
@@ -70,11 +70,11 @@
70
70
  "typescript": "^5.8.3",
71
71
  "vitest": "^3.2.4",
72
72
  "zod": "^3.25.76",
73
- "@internal/storage-test-utils": "0.0.46",
74
- "@internal/lint": "0.0.0-fix-model-router-machine-cache-20251021232825",
75
- "@mastra/agent-builder": "0.0.0-fix-model-router-machine-cache-20251021232825",
76
- "@mastra/core": "0.0.0-fix-model-router-machine-cache-20251021232825",
77
- "@internal/types-builder": "0.0.0-fix-model-router-machine-cache-20251021232825"
73
+ "@internal/storage-test-utils": "0.0.49",
74
+ "@internal/lint": "0.0.0-fix-memory-search-fetch-20251027160505",
75
+ "@mastra/core": "0.0.0-fix-memory-search-fetch-20251027160505",
76
+ "@mastra/agent-builder": "0.0.0-fix-memory-search-fetch-20251027160505",
77
+ "@internal/types-builder": "0.0.0-fix-memory-search-fetch-20251027160505"
78
78
  },
79
79
  "homepage": "https://mastra.ai",
80
80
  "repository": {
@@ -1,160 +0,0 @@
1
- import { handleError } from './chunk-CY4TP3FK.js';
2
- import { HTTPException } from './chunk-MMROOK5J.js';
3
- import { __export } from './chunk-PR4QN5HX.js';
4
-
5
- // src/server/handlers/telemetry.ts
6
- var telemetry_exports = {};
7
- __export(telemetry_exports, {
8
- collectParentSpanIds: () => collectParentSpanIds,
9
- getTelemetryHandler: () => getTelemetryHandler,
10
- storeTelemetryHandler: () => storeTelemetryHandler
11
- });
12
- async function getTelemetryHandler({ mastra, body }) {
13
- try {
14
- const telemetry = mastra.getTelemetry();
15
- const storage = mastra.getStorage();
16
- if (!telemetry) {
17
- throw new HTTPException(400, { message: "Telemetry is not initialized" });
18
- }
19
- if (!storage) {
20
- return [];
21
- }
22
- if (!body) {
23
- throw new HTTPException(400, { message: "Body is required" });
24
- }
25
- const { name, scope, page, perPage, attribute, fromDate, toDate } = body;
26
- const attributes = attribute ? Object.fromEntries(
27
- (Array.isArray(attribute) ? attribute : [attribute]).map((attr) => {
28
- const [key, value] = attr.split(":");
29
- return [key, value];
30
- })
31
- ) : void 0;
32
- const traces = await storage.getTraces({
33
- name,
34
- scope,
35
- page: Number(page ?? 0),
36
- perPage: Number(perPage ?? 100),
37
- attributes,
38
- fromDate: fromDate ? new Date(fromDate) : void 0,
39
- toDate: toDate ? new Date(toDate) : void 0
40
- });
41
- return traces;
42
- } catch (error2) {
43
- return handleError(error2, "Error getting telemetry");
44
- }
45
- }
46
- async function storeTelemetryHandler({ mastra, body }) {
47
- try {
48
- const storage = mastra.getStorage();
49
- const logger = mastra.getLogger();
50
- if (!storage) {
51
- return {
52
- status: "error",
53
- message: "Storage is not initialized"
54
- };
55
- }
56
- const now = /* @__PURE__ */ new Date();
57
- const items = body?.resourceSpans?.[0]?.scopeSpans;
58
- logger.debug("[Telemetry Handler] Received spans:", {
59
- totalSpans: items?.reduce((acc, scope) => acc + scope.spans.length, 0) || 0,
60
- timestamp: now.toISOString()
61
- });
62
- if (!items?.length) {
63
- return {
64
- status: "success",
65
- message: "No spans to process",
66
- traceCount: 0
67
- };
68
- }
69
- const parentSpanIds = collectParentSpanIds(items);
70
- const allSpans = items.reduce((acc, scopedSpans) => {
71
- const { scope, spans } = scopedSpans;
72
- if (scope.name === "@opentelemetry/instrumentation-http") {
73
- return acc;
74
- }
75
- for (const span of spans) {
76
- const {
77
- spanId,
78
- parentSpanId,
79
- traceId,
80
- name,
81
- kind,
82
- attributes,
83
- status,
84
- events,
85
- links,
86
- startTimeUnixNano,
87
- endTimeUnixNano,
88
- ...rest
89
- } = span;
90
- const startTime = Number(BigInt(startTimeUnixNano) / 1000n);
91
- const endTime = Number(BigInt(endTimeUnixNano) / 1000n);
92
- acc.push({
93
- id: spanId,
94
- parentSpanId: parentSpanIds.has(parentSpanId) ? null : parentSpanId,
95
- traceId,
96
- name,
97
- scope: scope.name,
98
- kind,
99
- status: JSON.stringify(status),
100
- events: JSON.stringify(events),
101
- links: JSON.stringify(links),
102
- attributes: JSON.stringify(
103
- attributes.reduce((acc2, attr) => {
104
- const valueKey = Object.keys(attr.value)[0];
105
- if (valueKey) {
106
- acc2[attr.key] = attr.value[valueKey];
107
- }
108
- return acc2;
109
- }, {})
110
- ),
111
- startTime,
112
- endTime,
113
- other: JSON.stringify(rest),
114
- createdAt: now
115
- });
116
- }
117
- return acc;
118
- }, []);
119
- return storage.batchTraceInsert({
120
- records: allSpans
121
- }).then(() => {
122
- return {
123
- status: "success",
124
- message: "Traces received and processed successfully",
125
- traceCount: body.resourceSpans?.length || 0
126
- };
127
- }).catch(() => {
128
- return {
129
- status: "error",
130
- message: "Failed to process traces",
131
- // @ts-ignore
132
- error: error.message
133
- };
134
- });
135
- } catch (error2) {
136
- console.error("Error processing traces:", error2);
137
- return {
138
- status: "error",
139
- message: "Failed to process traces",
140
- // @ts-ignore
141
- error: error2.message
142
- };
143
- }
144
- }
145
- var collectParentSpanIds = (items) => {
146
- const result = /* @__PURE__ */ new Set();
147
- for (const { scope, spans } of items) {
148
- if (scope.name !== "@opentelemetry/instrumentation-http") {
149
- continue;
150
- }
151
- for (const span of spans) {
152
- result.add(span.spanId);
153
- }
154
- }
155
- return result;
156
- };
157
-
158
- export { collectParentSpanIds, getTelemetryHandler, storeTelemetryHandler, telemetry_exports };
159
- //# sourceMappingURL=chunk-67GYDFSB.js.map
160
- //# sourceMappingURL=chunk-67GYDFSB.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/server/handlers/telemetry.ts"],"names":["error","acc"],"mappings":"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","file":"chunk-67GYDFSB.js","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"]}