@mastra/deployer 0.14.2-alpha.0 → 0.14.2-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.
@@ -0,0 +1,4 @@
1
+ import type { Context } from 'hono';
2
+ export declare function getAITraceHandler(c: Context): Promise<Response>;
3
+ export declare function getAITracesPaginatedHandler(c: Context): Promise<Response>;
4
+ //# sourceMappingURL=handlers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../../../../src/server/handlers/routes/observability/handlers.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAGpC,wBAAsB,iBAAiB,CAAC,CAAC,EAAE,OAAO,qBAkBjD;AAED,wBAAsB,2BAA2B,CAAC,CAAC,EAAE,OAAO,qBAqD3D"}
@@ -0,0 +1,3 @@
1
+ import { Hono } from 'hono';
2
+ export declare function observabilityRouter(): Hono<import("hono/types").BlankEnv, import("hono/types").BlankSchema, "/">;
3
+ //# sourceMappingURL=router.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../../../../src/server/handlers/routes/observability/router.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAI5B,wBAAgB,mBAAmB,+EA8FlC"}
@@ -10,8 +10,8 @@ var mime = require('hono/utils/mime');
10
10
  var fs = require('fs');
11
11
  var path = require('path');
12
12
  var html = require('hono/html');
13
- var core = require('@mastra/core');
14
13
  var runtimeContext = require('@mastra/core/runtime-context');
14
+ var telemetry = require('@mastra/core/telemetry');
15
15
  var tools = require('@mastra/core/tools');
16
16
  var store = require('@mastra/server/a2a/store');
17
17
  var hono = require('hono');
@@ -33,8 +33,10 @@ var buffer = require('buffer');
33
33
  var memory = require('@mastra/server/handlers/memory');
34
34
  var network = require('@mastra/server/handlers/network');
35
35
  var vNextNetwork = require('@mastra/server/handlers/vNextNetwork');
36
+ var aiTracing = require('@mastra/core/ai-tracing');
37
+ var observability = require('@mastra/server/handlers/observability');
36
38
  var scores = require('@mastra/server/handlers/scores');
37
- var telemetry = require('@mastra/server/handlers/telemetry');
39
+ var telemetry$1 = require('@mastra/server/handlers/telemetry');
38
40
  var vector = require('@mastra/server/handlers/vector');
39
41
  var workflows = require('@mastra/server/handlers/workflows');
40
42
  var legacyWorkflows = require('@mastra/server/handlers/legacyWorkflows');
@@ -7487,6 +7489,163 @@ function networksRouter(bodyLimitOptions) {
7487
7489
  );
7488
7490
  return router;
7489
7491
  }
7492
+ async function getAITraceHandler(c2) {
7493
+ try {
7494
+ const mastra = c2.get("mastra");
7495
+ const traceId = c2.req.param("traceId");
7496
+ if (!traceId) {
7497
+ return c2.json({ error: "Trace ID is required" }, 400);
7498
+ }
7499
+ const trace = await observability.getAITraceHandler({
7500
+ mastra,
7501
+ traceId
7502
+ });
7503
+ return c2.json(trace);
7504
+ } catch (error) {
7505
+ return handleError(error, "Error getting AI trace");
7506
+ }
7507
+ }
7508
+ async function getAITracesPaginatedHandler(c2) {
7509
+ try {
7510
+ const mastra = c2.get("mastra");
7511
+ const { page, perPage, name, spanType, start, end } = c2.req.query();
7512
+ const pagination = {
7513
+ page: parseInt(page || "0"),
7514
+ perPage: parseInt(perPage || "10")
7515
+ };
7516
+ const filters = {};
7517
+ if (name) filters.name = name;
7518
+ if (spanType) {
7519
+ if (Object.values(aiTracing.AISpanType).includes(spanType)) {
7520
+ filters.spanType = spanType;
7521
+ } else {
7522
+ return c2.json({ error: "Invalid spanType" }, 400);
7523
+ }
7524
+ }
7525
+ const dateRange = {};
7526
+ if (start) {
7527
+ try {
7528
+ dateRange.start = new Date(start);
7529
+ } catch {
7530
+ return c2.json({ error: "Invalid start date" }, 400);
7531
+ }
7532
+ }
7533
+ if (end) {
7534
+ try {
7535
+ dateRange.end = new Date(end);
7536
+ } catch {
7537
+ return c2.json({ error: "Invalid end date" }, 400);
7538
+ }
7539
+ }
7540
+ if (Object.keys(dateRange).length > 0) {
7541
+ pagination.dateRange = dateRange;
7542
+ }
7543
+ const result = await observability.getAITracesPaginatedHandler({
7544
+ mastra,
7545
+ body: {
7546
+ pagination,
7547
+ filters
7548
+ }
7549
+ });
7550
+ return c2.json(result);
7551
+ } catch (error) {
7552
+ return handleError(error, "Error getting AI traces paginated");
7553
+ }
7554
+ }
7555
+
7556
+ // src/server/handlers/routes/observability/router.ts
7557
+ function observabilityRouter() {
7558
+ const router = new hono.Hono();
7559
+ router.get(
7560
+ "/traces",
7561
+ w({
7562
+ description: "Get paginated list of AI traces",
7563
+ tags: ["observability"],
7564
+ parameters: [
7565
+ {
7566
+ name: "page",
7567
+ in: "query",
7568
+ required: false,
7569
+ schema: { type: "number" },
7570
+ description: "Page number for pagination (default: 0)"
7571
+ },
7572
+ {
7573
+ name: "perPage",
7574
+ in: "query",
7575
+ required: false,
7576
+ schema: { type: "number" },
7577
+ description: "Number of items per page (default: 10)"
7578
+ },
7579
+ {
7580
+ name: "name",
7581
+ in: "query",
7582
+ required: false,
7583
+ schema: { type: "string" },
7584
+ description: "Filter traces by name"
7585
+ },
7586
+ {
7587
+ name: "spanType",
7588
+ in: "query",
7589
+ required: false,
7590
+ schema: { type: "number" },
7591
+ description: "Filter traces by span type"
7592
+ },
7593
+ {
7594
+ name: "dateRange",
7595
+ in: "query",
7596
+ required: false,
7597
+ schema: { type: "string" },
7598
+ description: "JSON string with start and end dates for filtering"
7599
+ },
7600
+ {
7601
+ name: "attributes",
7602
+ in: "query",
7603
+ required: false,
7604
+ schema: { type: "string" },
7605
+ description: "JSON string with attributes to filter by"
7606
+ }
7607
+ ],
7608
+ responses: {
7609
+ 200: {
7610
+ description: "Paginated list of AI traces"
7611
+ },
7612
+ 400: {
7613
+ description: "Bad request - invalid parameters"
7614
+ }
7615
+ }
7616
+ }),
7617
+ getAITracesPaginatedHandler
7618
+ );
7619
+ router.get(
7620
+ "/traces/:traceId",
7621
+ w({
7622
+ description: "Get a specific AI trace by ID",
7623
+ tags: ["observability"],
7624
+ parameters: [
7625
+ {
7626
+ name: "traceId",
7627
+ in: "path",
7628
+ required: true,
7629
+ schema: { type: "string" },
7630
+ description: "The ID of the trace to retrieve"
7631
+ }
7632
+ ],
7633
+ responses: {
7634
+ 200: {
7635
+ description: "AI trace with all its spans"
7636
+ },
7637
+ 400: {
7638
+ description: "Bad request - missing trace ID"
7639
+ },
7640
+ 404: {
7641
+ description: "Trace not found"
7642
+ }
7643
+ }
7644
+ }),
7645
+ getAITraceHandler
7646
+ );
7647
+ return router;
7648
+ }
7490
7649
  async function getScorersHandler(c2) {
7491
7650
  try {
7492
7651
  const scorers = await scores.getScorersHandler({
@@ -7774,7 +7933,7 @@ async function getTelemetryHandler(c2) {
7774
7933
  const mastra = c2.get("mastra");
7775
7934
  const { name, scope, page, perPage, fromDate, toDate } = c2.req.query();
7776
7935
  const attribute = c2.req.queries("attribute");
7777
- const traces = await telemetry.getTelemetryHandler({
7936
+ const traces = await telemetry$1.getTelemetryHandler({
7778
7937
  mastra,
7779
7938
  body: {
7780
7939
  name,
@@ -7795,7 +7954,7 @@ async function storeTelemetryHandler(c2) {
7795
7954
  try {
7796
7955
  const body = await c2.req.json();
7797
7956
  const mastra = c2.get("mastra");
7798
- const result = await telemetry.storeTelemetryHandler({ mastra, body });
7957
+ const result = await telemetry$1.storeTelemetryHandler({ mastra, body });
7799
7958
  if (result.status === "error") {
7800
7959
  return c2.json(result, 500);
7801
7960
  }
@@ -9674,15 +9833,15 @@ async function createHonoServer(mastra, options = {
9674
9833
  const a2aTaskStore = new store.InMemoryTaskStore();
9675
9834
  app.use("*", async function setTelemetryInfo(c2, next) {
9676
9835
  const requestId = c2.req.header("x-request-id") ?? crypto.randomUUID();
9677
- const span = core.Telemetry.getActiveSpan();
9836
+ const span = telemetry.Telemetry.getActiveSpan();
9678
9837
  if (span) {
9679
9838
  span.setAttribute("http.request_id", requestId);
9680
9839
  span.updateName(`${c2.req.method} ${c2.req.path}`);
9681
- const newCtx = core.Telemetry.setBaggage({
9840
+ const newCtx = telemetry.Telemetry.setBaggage({
9682
9841
  "http.request_id": { value: requestId }
9683
9842
  });
9684
9843
  await new Promise((resolve) => {
9685
- core.Telemetry.withContext(newCtx, async () => {
9844
+ telemetry.Telemetry.withContext(newCtx, async () => {
9686
9845
  await next();
9687
9846
  resolve(true);
9688
9847
  });
@@ -9776,6 +9935,8 @@ async function createHonoServer(mastra, options = {
9776
9935
  app.put(route.path, ...middlewares, handler);
9777
9936
  } else if (route.method === "DELETE") {
9778
9937
  app.delete(route.path, ...middlewares, handler);
9938
+ } else if (route.method === "PATCH") {
9939
+ app.patch(route.path, ...middlewares, handler);
9779
9940
  } else if (route.method === "ALL") {
9780
9941
  app.all(route.path, ...middlewares, handler);
9781
9942
  }
@@ -9955,6 +10116,7 @@ async function createHonoServer(mastra, options = {
9955
10116
  app.route("/api/mcp", mcpRouter(bodyLimitOptions));
9956
10117
  app.route("/api/memory", memoryRoutes(bodyLimitOptions));
9957
10118
  app.route("/api/telemetry", telemetryRouter());
10119
+ app.route("/api/observability", observabilityRouter());
9958
10120
  app.route("/api/workflows", workflowsRouter(bodyLimitOptions));
9959
10121
  app.route("/api/logs", logsRouter());
9960
10122
  app.route("/api/scores", scoresRouter(bodyLimitOptions));
@@ -10070,6 +10232,7 @@ async function createNodeServer(mastra, options = { tools: {} }) {
10070
10232
  }
10071
10233
  }
10072
10234
  );
10235
+ await mastra.startEventEngine();
10073
10236
  return server;
10074
10237
  }
10075
10238