@mastra/server 1.77.0-alpha.0 → 1.77.0-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.
Files changed (32) hide show
  1. package/dist/{datasets-C2aXB8At.cjs → datasets-BdD8JWhx.cjs} +64 -7
  2. package/dist/datasets-BdD8JWhx.cjs.map +1 -0
  3. package/dist/{datasets-CDQDQxos.js → datasets-CKwh-k4I.js} +53 -8
  4. package/dist/datasets-CKwh-k4I.js.map +1 -0
  5. package/dist/{dist-BmwOhJTG.js → dist-B6B4Cxda.js} +25 -6
  6. package/dist/dist-B6B4Cxda.js.map +1 -0
  7. package/dist/{dist-BOW7V2e6.cjs → dist-BGfXR4Xj.cjs} +25 -6
  8. package/dist/dist-BGfXR4Xj.cjs.map +1 -0
  9. package/dist/docs/SKILL.md +1 -1
  10. package/dist/docs/assets/SOURCE_MAP.json +1 -1
  11. package/dist/docs/references/docs-server-custom-adapters.md +1 -1
  12. package/dist/docs/references/reference-server-create-route.md +1 -1
  13. package/dist/docs/references/reference-server-routes.md +1 -1
  14. package/dist/server/handlers/agent-builder.cjs +1 -1
  15. package/dist/server/handlers/agent-builder.js +1 -1
  16. package/dist/server/handlers/datasets.cjs +27 -15
  17. package/dist/server/handlers/datasets.cjs.map +1 -1
  18. package/dist/server/handlers/datasets.d.ts +1032 -38
  19. package/dist/server/handlers/datasets.d.ts.map +1 -1
  20. package/dist/server/handlers/datasets.js +27 -15
  21. package/dist/server/handlers/datasets.js.map +1 -1
  22. package/dist/server/schemas/datasets.d.ts +430 -11
  23. package/dist/server/schemas/datasets.d.ts.map +1 -1
  24. package/dist/server/schemas/index.cjs +3 -1
  25. package/dist/server/schemas/index.js +2 -2
  26. package/dist/server/server-adapter/routes/datasets.d.ts +1032 -38
  27. package/dist/server/server-adapter/routes/datasets.d.ts.map +1 -1
  28. package/package.json +6 -6
  29. package/dist/datasets-C2aXB8At.cjs.map +0 -1
  30. package/dist/datasets-CDQDQxos.js.map +0 -1
  31. package/dist/dist-BOW7V2e6.cjs.map +0 -1
  32. package/dist/dist-BmwOhJTG.js.map +0 -1
@@ -3,7 +3,7 @@ name: mastra-server
3
3
  description: Documentation for @mastra/server. Use when working with @mastra/server APIs, configuration, or implementation.
4
4
  metadata:
5
5
  package: "@mastra/server"
6
- version: "1.77.0-alpha.0"
6
+ version: "1.77.0-alpha.1"
7
7
  ---
8
8
 
9
9
  ## When to use
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.77.0-alpha.0",
2
+ "version": "1.77.0-alpha.1",
3
3
  "package": "@mastra/server",
4
4
  "exports": {},
5
5
  "modules": {}
@@ -162,7 +162,7 @@ async getParams(
162
162
  request: MyRequest
163
163
  ): Promise<{
164
164
  urlParams: Record<string, string>;
165
- queryParams: Record<string, string>;
165
+ queryParams: Record<string, string | string[]>; // repeated keys (?tag=a&tag=b) become arrays
166
166
  body: unknown;
167
167
  }> {
168
168
  return {
@@ -50,7 +50,7 @@ function createRoute<TPath, TQuery, TBody, TResponse, TResponseType>(
50
50
 
51
51
  **deprecated** (`boolean`): Mark route as deprecated
52
52
 
53
- **onValidationError** (`(error: ZodError, context: 'query' | 'body' | 'path') => { status: number; body: unknown } | undefined`): Custom validation error handler for this route. Overrides the server-level onValidationError hook. Return { status, body } to customize the response, or undefined to use the default.
53
+ **onValidationError** (`(error: ZodError, context: 'query' | 'body' | 'path') => { status: number; body: unknown } | undefined | void`): Custom validation error handler for this route. Overrides the server-level onValidationError hook. Return { status, body } to customize the response, or return nothing (undefined) to use the default.
54
54
 
55
55
  ## Handler parameters
56
56
 
@@ -416,7 +416,7 @@ On authenticated servers, the read routes require the `stored-workflows:read` pe
416
416
  | `PATCH` | `/api/datasets/:datasetId/experiments/:experimentId` | Update an experiment's name, description or metadata |
417
417
  | `DELETE` | `/api/datasets/:datasetId/experiments/:experimentId` | Delete an experiment that belongs to the dataset |
418
418
  | `GET` | `/api/datasets/:datasetId/experiments/:experimentId/results` | List experiment results |
419
- | `POST` | `/api/datasets/:datasetId/compare` | Compare two experiments |
419
+ | `POST` | `/api/datasets/:datasetId/compare` | Compare two to ten experiments |
420
420
 
421
421
  ### Delete an experiment
422
422
 
@@ -30,7 +30,7 @@ var agent_builder_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll
30
30
  });
31
31
  let agentBuilderWorkflowsPromise;
32
32
  async function loadAgentBuilderWorkflows() {
33
- agentBuilderWorkflowsPromise ??= Promise.resolve().then(() => require("../../dist-BOW7V2e6.cjs")).then((mod) => mod.agentBuilderWorkflows);
33
+ agentBuilderWorkflowsPromise ??= Promise.resolve().then(() => require("../../dist-BGfXR4Xj.cjs")).then((mod) => mod.agentBuilderWorkflows);
34
34
  return agentBuilderWorkflowsPromise;
35
35
  }
36
36
  async function registerAgentBuilderWorkflows(mastra) {
@@ -29,7 +29,7 @@ var agent_builder_exports = /* @__PURE__ */ __exportAll({
29
29
  });
30
30
  let agentBuilderWorkflowsPromise;
31
31
  async function loadAgentBuilderWorkflows() {
32
- agentBuilderWorkflowsPromise ??= import("../../dist-BmwOhJTG.js").then((mod) => mod.agentBuilderWorkflows);
32
+ agentBuilderWorkflowsPromise ??= import("../../dist-B6B4Cxda.js").then((mod) => mod.agentBuilderWorkflows);
33
33
  return agentBuilderWorkflowsPromise;
34
34
  }
35
35
  async function registerAgentBuilderWorkflows(mastra) {
@@ -5,7 +5,7 @@ const require_common = require("../../common-DhKNoXGp.cjs");
5
5
  const require_route_builder = require("../../route-builder-2yrD15TL.cjs");
6
6
  const require_constants = require("../../constants-6d6tCMH8.cjs");
7
7
  const require_server_handlers_error = require("./error.cjs");
8
- const require_datasets = require("../../datasets-C2aXB8At.cjs");
8
+ const require_datasets = require("../../datasets-BdD8JWhx.cjs");
9
9
  let zod = require("zod");
10
10
  let _mastra_core_agent = require("@mastra/core/agent");
11
11
  let _mastra_core_error = require("@mastra/core/error");
@@ -13,6 +13,12 @@ let _mastra_core_llm = require("@mastra/core/llm");
13
13
  let _mastra_core_request_context = require("@mastra/core/request-context");
14
14
  let _mastra_core_features = require("@mastra/core/features");
15
15
  //#region src/server/handlers/datasets.ts
16
+ function withTargetType(result, targetType) {
17
+ return {
18
+ ...result,
19
+ targetType: targetType ?? null
20
+ };
21
+ }
16
22
  function assertDatasetsAvailable() {
17
23
  if (!_mastra_core_features.coreFeatures.has("datasets")) throw new require_http_exception.HTTPException(501, { message: "Datasets require @mastra/core >= 1.4.0" });
18
24
  }
@@ -692,12 +698,17 @@ const RUN_EXPERIMENT_ITEM_ROUTE = require_route_builder.createRoute({
692
698
  try {
693
699
  const { attempt, requestContext: rawRequestContext } = params;
694
700
  const requestContext = rawRequestContext instanceof _mastra_core_request_context.RequestContext ? rawRequestContext.all : rawRequestContext;
695
- return await (await mastra.datasets.get({ id: datasetId })).runExperimentItem({
701
+ const ds = await mastra.datasets.get({ id: datasetId });
702
+ const [run, experiment] = await Promise.all([ds.runExperimentItem({
696
703
  experimentId,
697
704
  itemId,
698
705
  attempt,
699
706
  requestContext
700
- });
707
+ }), ds.getExperiment({ experimentId })]);
708
+ return {
709
+ ...run,
710
+ result: withTargetType(run.result, experiment?.targetType)
711
+ };
701
712
  } catch (error) {
702
713
  if (error instanceof _mastra_core_error.MastraError) throw new require_http_exception.HTTPException(getHttpStatusForMastraError(error.id), { message: error.message });
703
714
  return require_server_handlers_error.handleError(error, "Error running experiment item");
@@ -719,7 +730,9 @@ const SUBMIT_EXPERIMENT_RESULT_ROUTE = require_route_builder.createRoute({
719
730
  assertDatasetsAvailable();
720
731
  try {
721
732
  const { itemId, attempt, input, output, groundTruth, error, startedAt, completedAt, traceId, scores } = params;
722
- return await (await mastra.datasets.get({ id: datasetId })).submitExperimentResult({
733
+ const ds = await mastra.datasets.get({ id: datasetId });
734
+ const experiment = await ds.getExperiment({ experimentId });
735
+ return withTargetType(await ds.submitExperimentResult({
723
736
  experimentId,
724
737
  itemId,
725
738
  attempt,
@@ -731,7 +744,7 @@ const SUBMIT_EXPERIMENT_RESULT_ROUTE = require_route_builder.createRoute({
731
744
  completedAt,
732
745
  traceId,
733
746
  scores
734
- });
747
+ }), experiment?.targetType);
735
748
  } catch (error) {
736
749
  if (error instanceof _mastra_core_error.MastraError) throw new require_http_exception.HTTPException(getHttpStatusForMastraError(error.id), { message: error.message });
737
750
  return require_server_handlers_error.handleError(error, "Error submitting experiment result");
@@ -860,10 +873,10 @@ const LIST_EXPERIMENT_RESULTS_ROUTE = require_route_builder.createRoute({
860
873
  orderBy
861
874
  });
862
875
  return {
863
- results: result.results.map(({ experimentId: _eid, ...rest }) => ({
876
+ results: result.results.map(({ experimentId: _eid, ...rest }) => withTargetType({
864
877
  experimentId,
865
878
  ...rest
866
- })),
879
+ }, run.targetType)),
867
880
  pagination: result.pagination
868
881
  };
869
882
  } catch (error) {
@@ -890,13 +903,13 @@ const UPDATE_EXPERIMENT_RESULT_ROUTE = require_route_builder.createRoute({
890
903
  if (!storage) throw new require_http_exception.HTTPException(500, { message: "Storage not configured" });
891
904
  const experimentsStore = await storage.getStore("experiments");
892
905
  if (!experimentsStore) throw new require_http_exception.HTTPException(500, { message: "Experiments storage not available" });
893
- return await experimentsStore.updateExperimentResult({
906
+ return withTargetType(await experimentsStore.updateExperimentResult({
894
907
  id: resultId,
895
908
  experimentId,
896
909
  status: params.status,
897
910
  tags: params.tags,
898
911
  comment: params.comment
899
- });
912
+ }), (await experimentsStore.getExperimentById({ id: experimentId }))?.targetType);
900
913
  } catch (error) {
901
914
  if (error instanceof _mastra_core_error.MastraError) throw new require_http_exception.HTTPException(getHttpStatusForMastraError(error.id), { message: error.message });
902
915
  return require_server_handlers_error.handleError(error, "Error updating experiment result");
@@ -910,18 +923,17 @@ const COMPARE_EXPERIMENTS_ROUTE = require_route_builder.createRoute({
910
923
  pathParamSchema: require_datasets.datasetIdPathParams,
911
924
  bodySchema: require_datasets.compareExperimentsBodySchema,
912
925
  responseSchema: require_datasets.comparisonResponseSchema,
913
- summary: "Compare two experiments",
914
- description: "Compares two experiments to detect score regressions",
926
+ summary: "Compare two to ten experiments",
927
+ description: "Compares two to ten experiments item by item against a baseline experiment",
915
928
  tags: ["Datasets"],
916
929
  requiresAuth: true,
917
- handler: async ({ mastra, datasetId, ...params }) => {
930
+ handler: async ({ mastra, datasetId, experimentIds, baselineId }) => {
918
931
  assertDatasetsAvailable();
919
932
  try {
920
- const { experimentIdA, experimentIdB } = params;
921
933
  await mastra.datasets.get({ id: datasetId });
922
934
  return await mastra.datasets.compareExperiments({
923
- experimentIds: [experimentIdA, experimentIdB],
924
- baselineId: experimentIdA
935
+ experimentIds,
936
+ baselineId
925
937
  });
926
938
  } catch (error) {
927
939
  if (error instanceof _mastra_core_error.MastraError) throw new require_http_exception.HTTPException(getHttpStatusForMastraError(error.id), { message: error.message });