@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.
- package/dist/server/handlers/routes/observability/handlers.d.ts +4 -0
- package/dist/server/handlers/routes/observability/handlers.d.ts.map +1 -0
- package/dist/server/handlers/routes/observability/router.d.ts +3 -0
- package/dist/server/handlers/routes/observability/router.d.ts.map +1 -0
- package/dist/server/index.cjs +170 -7
- package/dist/server/index.cjs.map +1 -1
- package/dist/server/index.d.ts +1 -1
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +164 -1
- package/dist/server/index.js.map +1 -1
- package/dist/server/types.d.ts +1 -1
- package/dist/server/types.d.ts.map +1 -1
- package/package.json +8 -7
|
@@ -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 @@
|
|
|
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"}
|
package/dist/server/index.cjs
CHANGED
|
@@ -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 =
|
|
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 =
|
|
9840
|
+
const newCtx = telemetry.Telemetry.setBaggage({
|
|
9682
9841
|
"http.request_id": { value: requestId }
|
|
9683
9842
|
});
|
|
9684
9843
|
await new Promise((resolve) => {
|
|
9685
|
-
|
|
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
|
|