@mastra/server 1.21.0-alpha.1 → 1.21.0
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/CHANGELOG.md +96 -0
- package/dist/_types/@internal_core/dist/index.d.ts +12 -12
- package/dist/{chunk-FGXFUFWK.cjs → chunk-JMOCVI6W.cjs} +29 -29
- package/dist/{chunk-FGXFUFWK.cjs.map → chunk-JMOCVI6W.cjs.map} +1 -1
- package/dist/{chunk-WO7BJJIB.js → chunk-M7MFCJT4.js} +4 -4
- package/dist/chunk-M7MFCJT4.js.map +1 -0
- package/dist/{chunk-OBR4SMSZ.js → chunk-PKONZNTB.js} +3 -3
- package/dist/{chunk-OBR4SMSZ.js.map → chunk-PKONZNTB.js.map} +1 -1
- package/dist/{chunk-GLB2TK6A.cjs → chunk-VUW7PJZC.cjs} +4 -4
- package/dist/chunk-VUW7PJZC.cjs.map +1 -0
- package/dist/docs/SKILL.md +1 -1
- package/dist/docs/assets/SOURCE_MAP.json +1 -1
- package/dist/server/handlers/observability-new-endpoints.cjs +27 -27
- package/dist/server/handlers/observability-new-endpoints.d.ts +16 -16
- package/dist/server/handlers/observability-new-endpoints.js +1 -1
- package/dist/server/handlers/observability.cjs +32 -32
- package/dist/server/handlers/observability.js +2 -2
- package/dist/server/handlers.cjs +2 -2
- package/dist/server/handlers.js +1 -1
- package/dist/server/server-adapter/index.cjs +31 -31
- package/dist/server/server-adapter/index.js +2 -2
- package/dist/server/server-adapter/routes/observability.d.ts +8 -8
- package/package.json +7 -7
- package/dist/chunk-GLB2TK6A.cjs.map +0 -1
- package/dist/chunk-WO7BJJIB.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,101 @@
|
|
|
1
1
|
# @mastra/server
|
|
2
2
|
|
|
3
|
+
## 1.21.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- **Added Responses API support for local Mastra apps** ([#14339](https://github.com/mastra-ai/mastra/pull/14339))
|
|
8
|
+
|
|
9
|
+
You can now call Mastra through a Responses API flow and continue stored turns with
|
|
10
|
+
`previous_response_id`, while keeping `model` as a Mastra model string and using
|
|
11
|
+
`agent_id` to target the registered Mastra agent that handles the request. This API acts as an agent-backed
|
|
12
|
+
adapter layer on top of Mastra memory and storage. Advanced provider-native settings can
|
|
13
|
+
also be passed through with `providerOptions`, and provider-returned continuation state
|
|
14
|
+
is surfaced back on the response under the same `providerOptions` field. Stored
|
|
15
|
+
response IDs now map directly to the persisted assistant turn ID in Mastra memory.
|
|
16
|
+
Configured tool definitions are returned under `tools`, while executed tool activity
|
|
17
|
+
is surfaced through `output` items such as `function_call`, `function_call_output`,
|
|
18
|
+
and the final assistant message. Stored responses also return `conversation_id`, which
|
|
19
|
+
maps directly to the underlying Mastra memory thread ID. You can create a conversation
|
|
20
|
+
explicitly with `client.conversations.create()` or let the first stored response create
|
|
21
|
+
it implicitly, inspect the stored item history with `client.conversations.items.list()`,
|
|
22
|
+
retrieve the conversation with `client.conversations.retrieve()`, or remove it with
|
|
23
|
+
`client.conversations.delete()`. Responses requests also support
|
|
24
|
+
`text.format`, including `json_object` for JSON mode and `json_schema` for
|
|
25
|
+
schema-constrained structured output, through the same agent-backed route.
|
|
26
|
+
|
|
27
|
+
```ts
|
|
28
|
+
import { MastraClient } from '@mastra/client-js';
|
|
29
|
+
|
|
30
|
+
const client = new MastraClient({
|
|
31
|
+
baseUrl: 'http://localhost:4111',
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
const first = await client.responses.create({
|
|
35
|
+
model: 'openai/gpt-5',
|
|
36
|
+
agent_id: 'support-agent',
|
|
37
|
+
input: 'Write a short bedtime story.',
|
|
38
|
+
store: true,
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
const second = await client.responses.create({
|
|
42
|
+
model: 'openai/gpt-5',
|
|
43
|
+
agent_id: 'support-agent',
|
|
44
|
+
input: 'Make it funnier.',
|
|
45
|
+
store: true,
|
|
46
|
+
previous_response_id: first.id,
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
const items = await client.conversations.items.list(first.conversation_id!);
|
|
50
|
+
|
|
51
|
+
const jsonResponse = await client.responses.create({
|
|
52
|
+
model: 'openai/gpt-5',
|
|
53
|
+
agent_id: 'support-agent',
|
|
54
|
+
input: 'Return a JSON object with a title and summary.',
|
|
55
|
+
text: {
|
|
56
|
+
format: {
|
|
57
|
+
type: 'json_object',
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
const structuredResponse = await client.responses.create({
|
|
63
|
+
model: 'openai/gpt-5',
|
|
64
|
+
agent_id: 'support-agent',
|
|
65
|
+
input: 'Return a structured support ticket summary.',
|
|
66
|
+
text: {
|
|
67
|
+
format: {
|
|
68
|
+
type: 'json_schema',
|
|
69
|
+
name: 'ticket_summary',
|
|
70
|
+
strict: true,
|
|
71
|
+
schema: {
|
|
72
|
+
type: 'object',
|
|
73
|
+
properties: {
|
|
74
|
+
summary: { type: 'string' },
|
|
75
|
+
priority: { type: 'string' },
|
|
76
|
+
},
|
|
77
|
+
required: ['summary', 'priority'],
|
|
78
|
+
additionalProperties: false,
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
},
|
|
82
|
+
});
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### Patch Changes
|
|
86
|
+
|
|
87
|
+
- Fixed OpenAI Responses API json_object mode so agent-backed responses return JSON output correctly. ([#14935](https://github.com/mastra-ai/mastra/pull/14935))
|
|
88
|
+
|
|
89
|
+
- Updated dependencies [[`9a43b47`](https://github.com/mastra-ai/mastra/commit/9a43b476465e86c9aca381c2831066b5c33c999a), [`ec5c319`](https://github.com/mastra-ai/mastra/commit/ec5c3197a50d034cb8e9cc494eebfddc684b5d81), [`6517789`](https://github.com/mastra-ai/mastra/commit/65177895b74b5471fe2245c7292f0176d9b3385d), [`13f4327`](https://github.com/mastra-ai/mastra/commit/13f4327f052faebe199cefbe906d33bf90238767), [`9ad6aa6`](https://github.com/mastra-ai/mastra/commit/9ad6aa6dfe858afc6955d1df5f3f78c40bb96b9c), [`2862127`](https://github.com/mastra-ai/mastra/commit/2862127d0a7cbd28523120ad64fea067a95838e6), [`3d16814`](https://github.com/mastra-ai/mastra/commit/3d16814c395931373543728994ff45ac98093074), [`7f498d0`](https://github.com/mastra-ai/mastra/commit/7f498d099eacef64fd43ee412e3bd6f87965a8a6), [`8cf8a67`](https://github.com/mastra-ai/mastra/commit/8cf8a67b061b737cb06d501fb8c1967a98bbf3cb), [`d7827e3`](https://github.com/mastra-ai/mastra/commit/d7827e393937c6cb0c7a744dde4d31538cb542b7)]:
|
|
90
|
+
- @mastra/core@1.21.0
|
|
91
|
+
|
|
92
|
+
## 1.21.0-alpha.2
|
|
93
|
+
|
|
94
|
+
### Patch Changes
|
|
95
|
+
|
|
96
|
+
- Updated dependencies [[`ec5c319`](https://github.com/mastra-ai/mastra/commit/ec5c3197a50d034cb8e9cc494eebfddc684b5d81), [`6517789`](https://github.com/mastra-ai/mastra/commit/65177895b74b5471fe2245c7292f0176d9b3385d), [`9ad6aa6`](https://github.com/mastra-ai/mastra/commit/9ad6aa6dfe858afc6955d1df5f3f78c40bb96b9c), [`2862127`](https://github.com/mastra-ai/mastra/commit/2862127d0a7cbd28523120ad64fea067a95838e6), [`3d16814`](https://github.com/mastra-ai/mastra/commit/3d16814c395931373543728994ff45ac98093074), [`7f498d0`](https://github.com/mastra-ai/mastra/commit/7f498d099eacef64fd43ee412e3bd6f87965a8a6), [`8cf8a67`](https://github.com/mastra-ai/mastra/commit/8cf8a67b061b737cb06d501fb8c1967a98bbf3cb), [`d7827e3`](https://github.com/mastra-ai/mastra/commit/d7827e393937c6cb0c7a744dde4d31538cb542b7)]:
|
|
97
|
+
- @mastra/core@1.21.0-alpha.2
|
|
98
|
+
|
|
3
99
|
## 1.21.0-alpha.1
|
|
4
100
|
|
|
5
101
|
### Patch Changes
|
|
@@ -585,7 +585,7 @@ declare const scoreRecordSchema: z.ZodObject<{
|
|
|
585
585
|
scope: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
586
586
|
experimentId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
587
587
|
timestamp: z.ZodDate;
|
|
588
|
-
traceId: z.ZodString
|
|
588
|
+
traceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
589
589
|
spanId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
590
590
|
scorerId: z.ZodString;
|
|
591
591
|
scorerName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
@@ -643,7 +643,7 @@ declare const createScoreRecordSchema: z.ZodObject<{
|
|
|
643
643
|
scope: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
644
644
|
experimentId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
645
645
|
timestamp: z.ZodDate;
|
|
646
|
-
traceId: z.ZodString
|
|
646
|
+
traceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
647
647
|
spanId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
648
648
|
scorerId: z.ZodString;
|
|
649
649
|
scorerName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
@@ -683,7 +683,7 @@ declare const createScoreArgsSchema: z.ZodObject<{
|
|
|
683
683
|
scope: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
684
684
|
experimentId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
685
685
|
timestamp: z.ZodDate;
|
|
686
|
-
traceId: z.ZodString
|
|
686
|
+
traceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
687
687
|
spanId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
688
688
|
scorerId: z.ZodString;
|
|
689
689
|
scorerName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
@@ -699,7 +699,7 @@ type CreateScoreArgs = z.infer<typeof createScoreArgsSchema>;
|
|
|
699
699
|
/** Schema for createScore operation body in client/server */
|
|
700
700
|
declare const createScoreBodySchema: z.ZodObject<{
|
|
701
701
|
score: z.ZodObject<{
|
|
702
|
-
traceId: z.ZodString
|
|
702
|
+
traceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
703
703
|
spanId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
704
704
|
source: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
705
705
|
metadata: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
@@ -770,7 +770,7 @@ declare const batchCreateScoresArgsSchema: z.ZodObject<{
|
|
|
770
770
|
scope: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
771
771
|
experimentId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
772
772
|
timestamp: z.ZodDate;
|
|
773
|
-
traceId: z.ZodString
|
|
773
|
+
traceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
774
774
|
spanId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
775
775
|
scorerId: z.ZodString;
|
|
776
776
|
scorerName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
@@ -917,7 +917,7 @@ declare const listScoresResponseSchema: z.ZodObject<{
|
|
|
917
917
|
scope: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
918
918
|
experimentId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
919
919
|
timestamp: z.ZodDate;
|
|
920
|
-
traceId: z.ZodString
|
|
920
|
+
traceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
921
921
|
spanId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
922
922
|
scorerId: z.ZodString;
|
|
923
923
|
scorerName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
@@ -1180,7 +1180,7 @@ declare const feedbackRecordSchema: z.ZodObject<{
|
|
|
1180
1180
|
scope: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
1181
1181
|
experimentId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1182
1182
|
timestamp: z.ZodDate;
|
|
1183
|
-
traceId: z.ZodString
|
|
1183
|
+
traceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1184
1184
|
spanId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1185
1185
|
feedbackSource: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1186
1186
|
source: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
@@ -1232,7 +1232,7 @@ declare const createFeedbackRecordSchema: z.ZodObject<{
|
|
|
1232
1232
|
scope: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
1233
1233
|
experimentId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1234
1234
|
timestamp: z.ZodDate;
|
|
1235
|
-
traceId: z.ZodString
|
|
1235
|
+
traceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1236
1236
|
spanId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1237
1237
|
feedbackSource: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1238
1238
|
source: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
@@ -1271,7 +1271,7 @@ declare const createFeedbackArgsSchema: z.ZodObject<{
|
|
|
1271
1271
|
scope: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
1272
1272
|
experimentId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1273
1273
|
timestamp: z.ZodDate;
|
|
1274
|
-
traceId: z.ZodString
|
|
1274
|
+
traceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1275
1275
|
spanId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1276
1276
|
feedbackSource: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1277
1277
|
source: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
@@ -1287,7 +1287,7 @@ type CreateFeedbackArgs = z.infer<typeof createFeedbackArgsSchema>;
|
|
|
1287
1287
|
declare const createFeedbackBodySchema: z.ZodObject<{
|
|
1288
1288
|
feedback: z.ZodObject<{
|
|
1289
1289
|
value: z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>;
|
|
1290
|
-
traceId: z.ZodString
|
|
1290
|
+
traceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1291
1291
|
spanId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1292
1292
|
source: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1293
1293
|
metadata: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
@@ -1356,7 +1356,7 @@ declare const batchCreateFeedbackArgsSchema: z.ZodObject<{
|
|
|
1356
1356
|
scope: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
1357
1357
|
experimentId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1358
1358
|
timestamp: z.ZodDate;
|
|
1359
|
-
traceId: z.ZodString
|
|
1359
|
+
traceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1360
1360
|
spanId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1361
1361
|
feedbackSource: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1362
1362
|
source: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
@@ -1500,7 +1500,7 @@ declare const listFeedbackResponseSchema: z.ZodObject<{
|
|
|
1500
1500
|
scope: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
1501
1501
|
experimentId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1502
1502
|
timestamp: z.ZodDate;
|
|
1503
|
-
traceId: z.ZodString
|
|
1503
|
+
traceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1504
1504
|
spanId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1505
1505
|
feedbackSource: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
1506
1506
|
source: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkVUW7PJZC_cjs = require('./chunk-VUW7PJZC.cjs');
|
|
4
4
|
var chunkTU7U5XUE_cjs = require('./chunk-TU7U5XUE.cjs');
|
|
5
5
|
var chunkB34S64RC_cjs = require('./chunk-B34S64RC.cjs');
|
|
6
6
|
var chunkEGSCXVMR_cjs = require('./chunk-EGSCXVMR.cjs');
|
|
@@ -14,35 +14,35 @@ var v4 = require('zod/v4');
|
|
|
14
14
|
// src/server/handlers/observability.ts
|
|
15
15
|
var observability_exports = {};
|
|
16
16
|
chunkO7I5CWRX_cjs.__export(observability_exports, {
|
|
17
|
-
CREATE_FEEDBACK: () =>
|
|
18
|
-
CREATE_SCORE: () =>
|
|
19
|
-
GET_ENTITY_NAMES: () =>
|
|
20
|
-
GET_ENTITY_TYPES: () =>
|
|
21
|
-
GET_ENVIRONMENTS: () =>
|
|
22
|
-
GET_FEEDBACK_AGGREGATE: () =>
|
|
23
|
-
GET_FEEDBACK_BREAKDOWN: () =>
|
|
24
|
-
GET_FEEDBACK_PERCENTILES: () =>
|
|
25
|
-
GET_FEEDBACK_TIME_SERIES: () =>
|
|
26
|
-
GET_METRIC_AGGREGATE: () =>
|
|
27
|
-
GET_METRIC_BREAKDOWN: () =>
|
|
28
|
-
GET_METRIC_LABEL_KEYS: () =>
|
|
29
|
-
GET_METRIC_LABEL_VALUES: () =>
|
|
30
|
-
GET_METRIC_NAMES: () =>
|
|
31
|
-
GET_METRIC_PERCENTILES: () =>
|
|
32
|
-
GET_METRIC_TIME_SERIES: () =>
|
|
33
|
-
GET_SCORE_AGGREGATE: () =>
|
|
34
|
-
GET_SCORE_BREAKDOWN: () =>
|
|
35
|
-
GET_SCORE_PERCENTILES: () =>
|
|
36
|
-
GET_SCORE_TIME_SERIES: () =>
|
|
37
|
-
GET_SERVICE_NAMES: () =>
|
|
38
|
-
GET_TAGS: () =>
|
|
17
|
+
CREATE_FEEDBACK: () => chunkVUW7PJZC_cjs.CREATE_FEEDBACK,
|
|
18
|
+
CREATE_SCORE: () => chunkVUW7PJZC_cjs.CREATE_SCORE,
|
|
19
|
+
GET_ENTITY_NAMES: () => chunkVUW7PJZC_cjs.GET_ENTITY_NAMES,
|
|
20
|
+
GET_ENTITY_TYPES: () => chunkVUW7PJZC_cjs.GET_ENTITY_TYPES,
|
|
21
|
+
GET_ENVIRONMENTS: () => chunkVUW7PJZC_cjs.GET_ENVIRONMENTS,
|
|
22
|
+
GET_FEEDBACK_AGGREGATE: () => chunkVUW7PJZC_cjs.GET_FEEDBACK_AGGREGATE,
|
|
23
|
+
GET_FEEDBACK_BREAKDOWN: () => chunkVUW7PJZC_cjs.GET_FEEDBACK_BREAKDOWN,
|
|
24
|
+
GET_FEEDBACK_PERCENTILES: () => chunkVUW7PJZC_cjs.GET_FEEDBACK_PERCENTILES,
|
|
25
|
+
GET_FEEDBACK_TIME_SERIES: () => chunkVUW7PJZC_cjs.GET_FEEDBACK_TIME_SERIES,
|
|
26
|
+
GET_METRIC_AGGREGATE: () => chunkVUW7PJZC_cjs.GET_METRIC_AGGREGATE,
|
|
27
|
+
GET_METRIC_BREAKDOWN: () => chunkVUW7PJZC_cjs.GET_METRIC_BREAKDOWN,
|
|
28
|
+
GET_METRIC_LABEL_KEYS: () => chunkVUW7PJZC_cjs.GET_METRIC_LABEL_KEYS,
|
|
29
|
+
GET_METRIC_LABEL_VALUES: () => chunkVUW7PJZC_cjs.GET_METRIC_LABEL_VALUES,
|
|
30
|
+
GET_METRIC_NAMES: () => chunkVUW7PJZC_cjs.GET_METRIC_NAMES,
|
|
31
|
+
GET_METRIC_PERCENTILES: () => chunkVUW7PJZC_cjs.GET_METRIC_PERCENTILES,
|
|
32
|
+
GET_METRIC_TIME_SERIES: () => chunkVUW7PJZC_cjs.GET_METRIC_TIME_SERIES,
|
|
33
|
+
GET_SCORE_AGGREGATE: () => chunkVUW7PJZC_cjs.GET_SCORE_AGGREGATE,
|
|
34
|
+
GET_SCORE_BREAKDOWN: () => chunkVUW7PJZC_cjs.GET_SCORE_BREAKDOWN,
|
|
35
|
+
GET_SCORE_PERCENTILES: () => chunkVUW7PJZC_cjs.GET_SCORE_PERCENTILES,
|
|
36
|
+
GET_SCORE_TIME_SERIES: () => chunkVUW7PJZC_cjs.GET_SCORE_TIME_SERIES,
|
|
37
|
+
GET_SERVICE_NAMES: () => chunkVUW7PJZC_cjs.GET_SERVICE_NAMES,
|
|
38
|
+
GET_TAGS: () => chunkVUW7PJZC_cjs.GET_TAGS,
|
|
39
39
|
GET_TRACE_ROUTE: () => GET_TRACE_ROUTE,
|
|
40
|
-
LIST_FEEDBACK: () =>
|
|
41
|
-
LIST_LOGS: () =>
|
|
42
|
-
LIST_SCORES: () =>
|
|
40
|
+
LIST_FEEDBACK: () => chunkVUW7PJZC_cjs.LIST_FEEDBACK,
|
|
41
|
+
LIST_LOGS: () => chunkVUW7PJZC_cjs.LIST_LOGS,
|
|
42
|
+
LIST_SCORES: () => chunkVUW7PJZC_cjs.LIST_SCORES,
|
|
43
43
|
LIST_SCORES_BY_SPAN_ROUTE: () => LIST_SCORES_BY_SPAN_ROUTE,
|
|
44
44
|
LIST_TRACES_ROUTE: () => LIST_TRACES_ROUTE,
|
|
45
|
-
NEW_ROUTES: () =>
|
|
45
|
+
NEW_ROUTES: () => chunkVUW7PJZC_cjs.NEW_ROUTES,
|
|
46
46
|
SCORE_TRACES_ROUTE: () => SCORE_TRACES_ROUTE
|
|
47
47
|
});
|
|
48
48
|
var legacyQueryParamsSchema = v4.z.object({
|
|
@@ -200,5 +200,5 @@ exports.LIST_SCORES_BY_SPAN_ROUTE = LIST_SCORES_BY_SPAN_ROUTE;
|
|
|
200
200
|
exports.LIST_TRACES_ROUTE = LIST_TRACES_ROUTE;
|
|
201
201
|
exports.SCORE_TRACES_ROUTE = SCORE_TRACES_ROUTE;
|
|
202
202
|
exports.observability_exports = observability_exports;
|
|
203
|
-
//# sourceMappingURL=chunk-
|
|
204
|
-
//# sourceMappingURL=chunk-
|
|
203
|
+
//# sourceMappingURL=chunk-JMOCVI6W.cjs.map
|
|
204
|
+
//# sourceMappingURL=chunk-JMOCVI6W.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/server/handlers/observability.ts"],"names":["__export","CREATE_FEEDBACK","CREATE_SCORE","GET_ENTITY_NAMES","GET_ENTITY_TYPES","GET_ENVIRONMENTS","GET_FEEDBACK_AGGREGATE","GET_FEEDBACK_BREAKDOWN","GET_FEEDBACK_PERCENTILES","GET_FEEDBACK_TIME_SERIES","GET_METRIC_AGGREGATE","GET_METRIC_BREAKDOWN","GET_METRIC_LABEL_KEYS","GET_METRIC_LABEL_VALUES","GET_METRIC_NAMES","GET_METRIC_PERCENTILES","GET_METRIC_TIME_SERIES","GET_SCORE_AGGREGATE","GET_SCORE_BREAKDOWN","GET_SCORE_PERCENTILES","GET_SCORE_TIME_SERIES","GET_SERVICE_NAMES","GET_TAGS","LIST_FEEDBACK","LIST_LOGS","LIST_SCORES","NEW_ROUTES","z","dateRangeSchema","getStorage","HTTPException","createRoute","wrapSchemaForQueryParams","tracesFilterSchema","paginationArgsSchema","tracesOrderBySchema","listTracesResponseSchema","pickParams","getObservabilityStore","handleError","getTraceArgsSchema","getTraceResponseSchema","scoreTracesRequestSchema","scoreTracesResponseSchema","scoreTraces","spanIdsSchema","listScoresResponseSchema"],"mappings":"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","file":"chunk-FGXFUFWK.cjs","sourcesContent":["import type { Mastra } from '@mastra/core';\nimport { listScoresResponseSchema } from '@mastra/core/evals';\nimport { scoreTraces } from '@mastra/core/evals/scoreTraces';\nimport type { ScoresStorage } from '@mastra/core/storage';\nimport {\n tracesFilterSchema,\n tracesOrderBySchema,\n paginationArgsSchema,\n spanIdsSchema,\n listTracesResponseSchema,\n scoreTracesRequestSchema,\n scoreTracesResponseSchema,\n getTraceArgsSchema,\n getTraceResponseSchema,\n dateRangeSchema,\n} from '@mastra/core/storage';\nimport { z } from 'zod/v4';\nimport { HTTPException } from '../http-exception';\nimport { createRoute, pickParams, wrapSchemaForQueryParams } from '../server-adapter/routes/route-builder';\nimport { handleError } from './error';\nimport { getObservabilityStore, getStorage } from './observability-shared';\n\nexport * from './observability-new-endpoints';\n\n// ============================================================================\n// Legacy Parameter Support (backward compatibility with main branch API)\n// ============================================================================\n\n/**\n * Legacy query parameters from the old API (main branch).\n * These are accepted for backward compatibility and transformed to new format.\n */\nconst legacyQueryParamsSchema = z.object({\n // Old: dateRange was in pagination, now it's startedAt in filters\n dateRange: dateRangeSchema.optional(),\n // Old: name matched span names like \"agent run: 'myAgent'\"\n name: z.string().optional(),\n // entityType needs preprocessing to handle legacy 'workflow' value\n entityType: z.preprocess(val => (val === 'workflow' ? 'workflow_run' : val), z.string().optional()),\n});\n\n/**\n * Transforms legacy query parameters to the new format.\n * - dateRange -> startedAt (if startedAt not already set)\n * - name=\"agent run: 'x'\" -> entityId='x', entityType='agent'\n * - name=\"workflow run: 'x'\" -> entityId='x', entityType='workflow_run'\n * - entityType='workflow' -> entityType='workflow_run' (enum value fix)\n */\nfunction transformLegacyParams(params: Record<string, unknown>): Record<string, unknown> {\n const result = { ...params };\n\n // Transform old entityType='workflow' -> 'workflow_run' to support direct handler usage in tests\n if (result.entityType === 'workflow') {\n result.entityType = 'workflow_run';\n }\n\n // Transform old dateRange -> new startedAt\n if (params.dateRange && !params.startedAt) {\n result.startedAt = params.dateRange;\n delete result.dateRange;\n }\n\n // Transform old name -> entityId + entityType\n // Old format: name matched span names like \"agent run: 'myAgent'\" or \"workflow run: 'myWorkflow'\"\n if (typeof params.name === 'string' && !params.entityId) {\n const agentMatch = params.name.match(/^agent run: '([^']+)'$/);\n const workflowMatch = params.name.match(/^workflow run: '([^']+)'$/);\n\n if (agentMatch) {\n result.entityId = agentMatch[1];\n result.entityType = 'agent';\n } else if (workflowMatch) {\n result.entityId = workflowMatch[1];\n result.entityType = 'workflow_run';\n }\n delete result.name;\n }\n\n return result;\n}\n\n// ============================================================================\n// Route Definitions (new pattern - handlers defined inline with createRoute)\n// ============================================================================\n\nasync function getScoresStore(mastra: Mastra): Promise<ScoresStorage> {\n const storage = getStorage(mastra);\n const scores = await storage.getStore('scores');\n if (!scores) {\n throw new HTTPException(500, { message: 'Scores storage domain is not available' });\n }\n return scores;\n}\n\n/** Route: GET /observability/traces - paginated trace listing with filtering and sorting. */\nexport const LIST_TRACES_ROUTE = createRoute({\n method: 'GET',\n path: '/observability/traces',\n responseType: 'json',\n queryParamSchema: wrapSchemaForQueryParams(\n tracesFilterSchema\n .extend(paginationArgsSchema.shape)\n .extend(tracesOrderBySchema.shape)\n .extend(legacyQueryParamsSchema.shape) // Accept legacy params for backward compatibility\n .partial(),\n ),\n responseSchema: listTracesResponseSchema,\n summary: 'List traces',\n description: 'Returns a paginated list of traces with optional filtering and sorting',\n tags: ['Observability'],\n requiresAuth: true,\n handler: async ({ mastra, ...params }) => {\n try {\n // Transform legacy params to new format before processing\n const transformedParams = transformLegacyParams(params);\n\n const filters = pickParams(tracesFilterSchema, transformedParams);\n const pagination = pickParams(paginationArgsSchema, transformedParams);\n const orderBy = pickParams(tracesOrderBySchema, transformedParams);\n\n const observabilityStore = await getObservabilityStore(mastra);\n return await observabilityStore.listTraces({ filters, pagination, orderBy });\n } catch (error) {\n return handleError(error, 'Error listing traces');\n }\n },\n});\n\n/** Route: GET /observability/traces/:traceId - retrieve a single trace with all spans. */\nexport const GET_TRACE_ROUTE = createRoute({\n method: 'GET',\n path: '/observability/traces/:traceId',\n responseType: 'json',\n pathParamSchema: getTraceArgsSchema,\n responseSchema: getTraceResponseSchema,\n summary: 'Get AI trace by ID',\n description: 'Returns a complete AI trace with all spans by trace ID',\n tags: ['Observability'],\n requiresAuth: true,\n handler: async ({ mastra, traceId }) => {\n try {\n const observabilityStore = await getObservabilityStore(mastra);\n const trace = await observabilityStore.getTrace({ traceId });\n\n if (!trace) {\n throw new HTTPException(404, { message: `Trace with ID '${traceId}' not found` });\n }\n\n return trace;\n } catch (error) {\n return handleError(error, 'Error getting trace');\n }\n },\n});\n\n/** Route: POST /observability/traces/score - score traces using a specified scorer (fire-and-forget). */\nexport const SCORE_TRACES_ROUTE = createRoute({\n method: 'POST',\n path: '/observability/traces/score',\n responseType: 'json',\n bodySchema: scoreTracesRequestSchema,\n responseSchema: scoreTracesResponseSchema,\n summary: 'Score traces',\n description: 'Scores one or more traces using a specified scorer (fire-and-forget)',\n tags: ['Observability'],\n requiresAuth: true,\n handler: async ({ mastra, ...params }) => {\n try {\n // Validate storage exists before starting background task\n getStorage(mastra);\n\n const { scorerName, targets } = params;\n\n const scorer = mastra.getScorerById(scorerName);\n if (!scorer) {\n throw new HTTPException(404, { message: `Scorer '${scorerName}' not found` });\n }\n\n scoreTraces({\n scorerId: scorer.config.id || scorer.config.name,\n targets,\n mastra,\n }).catch(error => {\n const logger = mastra.getLogger();\n logger?.error(`Background trace scoring failed: ${error.message}`, error);\n });\n\n return {\n status: 'success',\n message: `Scoring started for ${targets.length} ${targets.length === 1 ? 'trace' : 'traces'}`,\n traceCount: targets.length,\n };\n } catch (error) {\n return handleError(error, 'Error processing trace scoring');\n }\n },\n});\n\nexport const LIST_SCORES_BY_SPAN_ROUTE = createRoute({\n method: 'GET',\n path: '/observability/traces/:traceId/:spanId/scores',\n responseType: 'json',\n pathParamSchema: spanIdsSchema,\n // List endpoints accept optional query params; use partial() to allow empty queries.\n queryParamSchema: wrapSchemaForQueryParams(paginationArgsSchema.partial()),\n responseSchema: listScoresResponseSchema,\n summary: 'List scores by span',\n description: 'Returns all scores for a specific span within a trace',\n tags: ['Observability'],\n requiresAuth: true,\n handler: async ({ mastra, ...params }) => {\n try {\n const pagination = pickParams(paginationArgsSchema, params);\n const spanIds = pickParams(spanIdsSchema, params);\n\n const scoresStore = await getScoresStore(mastra);\n\n return await scoresStore.listScoresBySpan({\n ...spanIds,\n pagination,\n });\n } catch (error) {\n return handleError(error, 'Error getting scores by span');\n }\n },\n});\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/server/handlers/observability.ts"],"names":["__export","CREATE_FEEDBACK","CREATE_SCORE","GET_ENTITY_NAMES","GET_ENTITY_TYPES","GET_ENVIRONMENTS","GET_FEEDBACK_AGGREGATE","GET_FEEDBACK_BREAKDOWN","GET_FEEDBACK_PERCENTILES","GET_FEEDBACK_TIME_SERIES","GET_METRIC_AGGREGATE","GET_METRIC_BREAKDOWN","GET_METRIC_LABEL_KEYS","GET_METRIC_LABEL_VALUES","GET_METRIC_NAMES","GET_METRIC_PERCENTILES","GET_METRIC_TIME_SERIES","GET_SCORE_AGGREGATE","GET_SCORE_BREAKDOWN","GET_SCORE_PERCENTILES","GET_SCORE_TIME_SERIES","GET_SERVICE_NAMES","GET_TAGS","LIST_FEEDBACK","LIST_LOGS","LIST_SCORES","NEW_ROUTES","z","dateRangeSchema","getStorage","HTTPException","createRoute","wrapSchemaForQueryParams","tracesFilterSchema","paginationArgsSchema","tracesOrderBySchema","listTracesResponseSchema","pickParams","getObservabilityStore","handleError","getTraceArgsSchema","getTraceResponseSchema","scoreTracesRequestSchema","scoreTracesResponseSchema","scoreTraces","spanIdsSchema","listScoresResponseSchema"],"mappings":"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","file":"chunk-JMOCVI6W.cjs","sourcesContent":["import type { Mastra } from '@mastra/core';\nimport { listScoresResponseSchema } from '@mastra/core/evals';\nimport { scoreTraces } from '@mastra/core/evals/scoreTraces';\nimport type { ScoresStorage } from '@mastra/core/storage';\nimport {\n tracesFilterSchema,\n tracesOrderBySchema,\n paginationArgsSchema,\n spanIdsSchema,\n listTracesResponseSchema,\n scoreTracesRequestSchema,\n scoreTracesResponseSchema,\n getTraceArgsSchema,\n getTraceResponseSchema,\n dateRangeSchema,\n} from '@mastra/core/storage';\nimport { z } from 'zod/v4';\nimport { HTTPException } from '../http-exception';\nimport { createRoute, pickParams, wrapSchemaForQueryParams } from '../server-adapter/routes/route-builder';\nimport { handleError } from './error';\nimport { getObservabilityStore, getStorage } from './observability-shared';\n\nexport * from './observability-new-endpoints';\n\n// ============================================================================\n// Legacy Parameter Support (backward compatibility with main branch API)\n// ============================================================================\n\n/**\n * Legacy query parameters from the old API (main branch).\n * These are accepted for backward compatibility and transformed to new format.\n */\nconst legacyQueryParamsSchema = z.object({\n // Old: dateRange was in pagination, now it's startedAt in filters\n dateRange: dateRangeSchema.optional(),\n // Old: name matched span names like \"agent run: 'myAgent'\"\n name: z.string().optional(),\n // entityType needs preprocessing to handle legacy 'workflow' value\n entityType: z.preprocess(val => (val === 'workflow' ? 'workflow_run' : val), z.string().optional()),\n});\n\n/**\n * Transforms legacy query parameters to the new format.\n * - dateRange -> startedAt (if startedAt not already set)\n * - name=\"agent run: 'x'\" -> entityId='x', entityType='agent'\n * - name=\"workflow run: 'x'\" -> entityId='x', entityType='workflow_run'\n * - entityType='workflow' -> entityType='workflow_run' (enum value fix)\n */\nfunction transformLegacyParams(params: Record<string, unknown>): Record<string, unknown> {\n const result = { ...params };\n\n // Transform old entityType='workflow' -> 'workflow_run' to support direct handler usage in tests\n if (result.entityType === 'workflow') {\n result.entityType = 'workflow_run';\n }\n\n // Transform old dateRange -> new startedAt\n if (params.dateRange && !params.startedAt) {\n result.startedAt = params.dateRange;\n delete result.dateRange;\n }\n\n // Transform old name -> entityId + entityType\n // Old format: name matched span names like \"agent run: 'myAgent'\" or \"workflow run: 'myWorkflow'\"\n if (typeof params.name === 'string' && !params.entityId) {\n const agentMatch = params.name.match(/^agent run: '([^']+)'$/);\n const workflowMatch = params.name.match(/^workflow run: '([^']+)'$/);\n\n if (agentMatch) {\n result.entityId = agentMatch[1];\n result.entityType = 'agent';\n } else if (workflowMatch) {\n result.entityId = workflowMatch[1];\n result.entityType = 'workflow_run';\n }\n delete result.name;\n }\n\n return result;\n}\n\n// ============================================================================\n// Route Definitions (new pattern - handlers defined inline with createRoute)\n// ============================================================================\n\nasync function getScoresStore(mastra: Mastra): Promise<ScoresStorage> {\n const storage = getStorage(mastra);\n const scores = await storage.getStore('scores');\n if (!scores) {\n throw new HTTPException(500, { message: 'Scores storage domain is not available' });\n }\n return scores;\n}\n\n/** Route: GET /observability/traces - paginated trace listing with filtering and sorting. */\nexport const LIST_TRACES_ROUTE = createRoute({\n method: 'GET',\n path: '/observability/traces',\n responseType: 'json',\n queryParamSchema: wrapSchemaForQueryParams(\n tracesFilterSchema\n .extend(paginationArgsSchema.shape)\n .extend(tracesOrderBySchema.shape)\n .extend(legacyQueryParamsSchema.shape) // Accept legacy params for backward compatibility\n .partial(),\n ),\n responseSchema: listTracesResponseSchema,\n summary: 'List traces',\n description: 'Returns a paginated list of traces with optional filtering and sorting',\n tags: ['Observability'],\n requiresAuth: true,\n handler: async ({ mastra, ...params }) => {\n try {\n // Transform legacy params to new format before processing\n const transformedParams = transformLegacyParams(params);\n\n const filters = pickParams(tracesFilterSchema, transformedParams);\n const pagination = pickParams(paginationArgsSchema, transformedParams);\n const orderBy = pickParams(tracesOrderBySchema, transformedParams);\n\n const observabilityStore = await getObservabilityStore(mastra);\n return await observabilityStore.listTraces({ filters, pagination, orderBy });\n } catch (error) {\n return handleError(error, 'Error listing traces');\n }\n },\n});\n\n/** Route: GET /observability/traces/:traceId - retrieve a single trace with all spans. */\nexport const GET_TRACE_ROUTE = createRoute({\n method: 'GET',\n path: '/observability/traces/:traceId',\n responseType: 'json',\n pathParamSchema: getTraceArgsSchema,\n responseSchema: getTraceResponseSchema,\n summary: 'Get AI trace by ID',\n description: 'Returns a complete AI trace with all spans by trace ID',\n tags: ['Observability'],\n requiresAuth: true,\n handler: async ({ mastra, traceId }) => {\n try {\n const observabilityStore = await getObservabilityStore(mastra);\n const trace = await observabilityStore.getTrace({ traceId });\n\n if (!trace) {\n throw new HTTPException(404, { message: `Trace with ID '${traceId}' not found` });\n }\n\n return trace;\n } catch (error) {\n return handleError(error, 'Error getting trace');\n }\n },\n});\n\n/** Route: POST /observability/traces/score - score traces using a specified scorer (fire-and-forget). */\nexport const SCORE_TRACES_ROUTE = createRoute({\n method: 'POST',\n path: '/observability/traces/score',\n responseType: 'json',\n bodySchema: scoreTracesRequestSchema,\n responseSchema: scoreTracesResponseSchema,\n summary: 'Score traces',\n description: 'Scores one or more traces using a specified scorer (fire-and-forget)',\n tags: ['Observability'],\n requiresAuth: true,\n handler: async ({ mastra, ...params }) => {\n try {\n // Validate storage exists before starting background task\n getStorage(mastra);\n\n const { scorerName, targets } = params;\n\n const scorer = mastra.getScorerById(scorerName);\n if (!scorer) {\n throw new HTTPException(404, { message: `Scorer '${scorerName}' not found` });\n }\n\n scoreTraces({\n scorerId: scorer.config.id || scorer.config.name,\n targets,\n mastra,\n }).catch(error => {\n const logger = mastra.getLogger();\n logger?.error(`Background trace scoring failed: ${error.message}`, error);\n });\n\n return {\n status: 'success',\n message: `Scoring started for ${targets.length} ${targets.length === 1 ? 'trace' : 'traces'}`,\n traceCount: targets.length,\n };\n } catch (error) {\n return handleError(error, 'Error processing trace scoring');\n }\n },\n});\n\nexport const LIST_SCORES_BY_SPAN_ROUTE = createRoute({\n method: 'GET',\n path: '/observability/traces/:traceId/:spanId/scores',\n responseType: 'json',\n pathParamSchema: spanIdsSchema,\n // List endpoints accept optional query params; use partial() to allow empty queries.\n queryParamSchema: wrapSchemaForQueryParams(paginationArgsSchema.partial()),\n responseSchema: listScoresResponseSchema,\n summary: 'List scores by span',\n description: 'Returns all scores for a specific span within a trace',\n tags: ['Observability'],\n requiresAuth: true,\n handler: async ({ mastra, ...params }) => {\n try {\n const pagination = pickParams(paginationArgsSchema, params);\n const spanIds = pickParams(spanIdsSchema, params);\n\n const scoresStore = await getScoresStore(mastra);\n\n return await scoresStore.listScoresBySpan({\n ...spanIds,\n pagination,\n });\n } catch (error) {\n return handleError(error, 'Error getting scores by span');\n }\n },\n});\n"]}
|
|
@@ -202,7 +202,7 @@ var scoreReasonField = z.string().describe("Explanation for the score");
|
|
|
202
202
|
var scoreRecordSchema = z.object({
|
|
203
203
|
timestamp: z.date().describe("When the score was recorded"),
|
|
204
204
|
// Target
|
|
205
|
-
traceId: traceIdField,
|
|
205
|
+
traceId: traceIdField.nullish().describe("Trace that anchors the scored target when available"),
|
|
206
206
|
spanId: spanIdField.nullish().describe("Span ID this score applies to"),
|
|
207
207
|
// Score data
|
|
208
208
|
scorerId: scorerIdField,
|
|
@@ -356,7 +356,7 @@ function normalizeLegacyFeedbackActor(input) {
|
|
|
356
356
|
var feedbackRecordObjectSchema = z.object({
|
|
357
357
|
timestamp: z.date().describe("When the feedback was recorded"),
|
|
358
358
|
// Target
|
|
359
|
-
traceId: traceIdField,
|
|
359
|
+
traceId: traceIdField.nullish().describe("Trace that anchors the feedback target when available"),
|
|
360
360
|
spanId: spanIdField.nullish().describe("Span ID this feedback applies to"),
|
|
361
361
|
// Feedback data
|
|
362
362
|
feedbackSource: feedbackSourceField.nullish(),
|
|
@@ -978,5 +978,5 @@ var NEW_ROUTES = {
|
|
|
978
978
|
};
|
|
979
979
|
|
|
980
980
|
export { CREATE_FEEDBACK, CREATE_SCORE, GET_ENTITY_NAMES, GET_ENTITY_TYPES, GET_ENVIRONMENTS, GET_FEEDBACK_AGGREGATE, GET_FEEDBACK_BREAKDOWN, GET_FEEDBACK_PERCENTILES, GET_FEEDBACK_TIME_SERIES, GET_METRIC_AGGREGATE, GET_METRIC_BREAKDOWN, GET_METRIC_LABEL_KEYS, GET_METRIC_LABEL_VALUES, GET_METRIC_NAMES, GET_METRIC_PERCENTILES, GET_METRIC_TIME_SERIES, GET_SCORE_AGGREGATE, GET_SCORE_BREAKDOWN, GET_SCORE_PERCENTILES, GET_SCORE_TIME_SERIES, GET_SERVICE_NAMES, GET_TAGS, LIST_FEEDBACK, LIST_LOGS, LIST_SCORES, NEW_ROUTES };
|
|
981
|
-
//# sourceMappingURL=chunk-
|
|
982
|
-
//# sourceMappingURL=chunk-
|
|
981
|
+
//# sourceMappingURL=chunk-M7MFCJT4.js.map
|
|
982
|
+
//# sourceMappingURL=chunk-M7MFCJT4.js.map
|