@mastra/core 1.24.0-alpha.1 → 1.24.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.
Files changed (124) hide show
  1. package/CHANGELOG.md +75 -0
  2. package/dist/agent/index.cjs +8 -8
  3. package/dist/agent/index.js +1 -1
  4. package/dist/browser/index.cjs +2 -2
  5. package/dist/browser/index.js +1 -1
  6. package/dist/channels/index.cjs +4 -4
  7. package/dist/channels/index.js +1 -1
  8. package/dist/{chunk-GAW7WFCY.js → chunk-3P6XSZUF.js} +3 -3
  9. package/dist/{chunk-GAW7WFCY.js.map → chunk-3P6XSZUF.js.map} +1 -1
  10. package/dist/{chunk-SUEVJYTA.cjs → chunk-4BKNCJU7.cjs} +185 -185
  11. package/dist/{chunk-SUEVJYTA.cjs.map → chunk-4BKNCJU7.cjs.map} +1 -1
  12. package/dist/{chunk-365PDOQ4.cjs → chunk-5FMGGMTA.cjs} +9 -9
  13. package/dist/{chunk-365PDOQ4.cjs.map → chunk-5FMGGMTA.cjs.map} +1 -1
  14. package/dist/{chunk-JBFAGOAG.js → chunk-6XE5DGL4.js} +9 -9
  15. package/dist/{chunk-JBFAGOAG.js.map → chunk-6XE5DGL4.js.map} +1 -1
  16. package/dist/{chunk-IKUMKFM4.js → chunk-6ZHFLCZD.js} +4 -4
  17. package/dist/{chunk-IKUMKFM4.js.map → chunk-6ZHFLCZD.js.map} +1 -1
  18. package/dist/{chunk-V657RNGK.js → chunk-7YGIQZZU.js} +6618 -6680
  19. package/dist/chunk-7YGIQZZU.js.map +1 -0
  20. package/dist/{chunk-EJ62D3QH.js → chunk-ADPPBTVG.js} +6 -6
  21. package/dist/{chunk-EJ62D3QH.js.map → chunk-ADPPBTVG.js.map} +1 -1
  22. package/dist/{chunk-CY4AMNDV.cjs → chunk-AQXJ6EOF.cjs} +7 -7
  23. package/dist/{chunk-CY4AMNDV.cjs.map → chunk-AQXJ6EOF.cjs.map} +1 -1
  24. package/dist/{chunk-MK5IF24D.js → chunk-B5643WMN.js} +3 -3
  25. package/dist/{chunk-MK5IF24D.js.map → chunk-B5643WMN.js.map} +1 -1
  26. package/dist/{chunk-PQKSETS5.js → chunk-BRLXMVIG.js} +3 -3
  27. package/dist/{chunk-PQKSETS5.js.map → chunk-BRLXMVIG.js.map} +1 -1
  28. package/dist/{chunk-BFOZOAU2.cjs → chunk-F3P6BFYU.cjs} +6630 -6692
  29. package/dist/chunk-F3P6BFYU.cjs.map +1 -0
  30. package/dist/{chunk-EAQQP6OK.cjs → chunk-IZQ4UPH5.cjs} +48 -48
  31. package/dist/{chunk-EAQQP6OK.cjs.map → chunk-IZQ4UPH5.cjs.map} +1 -1
  32. package/dist/{chunk-B2FQ6L2I.cjs → chunk-KDLCZTD3.cjs} +5 -5
  33. package/dist/{chunk-B2FQ6L2I.cjs.map → chunk-KDLCZTD3.cjs.map} +1 -1
  34. package/dist/{chunk-L73KZFX6.cjs → chunk-MJJVDIL7.cjs} +6 -6
  35. package/dist/{chunk-L73KZFX6.cjs.map → chunk-MJJVDIL7.cjs.map} +1 -1
  36. package/dist/{chunk-D64ZY3NT.cjs → chunk-N7S3MTPO.cjs} +17 -17
  37. package/dist/{chunk-D64ZY3NT.cjs.map → chunk-N7S3MTPO.cjs.map} +1 -1
  38. package/dist/{chunk-3RI7ILBW.js → chunk-PN7CBIVV.js} +3 -3
  39. package/dist/{chunk-3RI7ILBW.js.map → chunk-PN7CBIVV.js.map} +1 -1
  40. package/dist/{chunk-XEDVYHBK.cjs → chunk-SDH6X2XL.cjs} +3 -3
  41. package/dist/chunk-SDH6X2XL.cjs.map +1 -0
  42. package/dist/{chunk-PCHML5XO.js → chunk-SE7ST47S.js} +5 -5
  43. package/dist/{chunk-PCHML5XO.js.map → chunk-SE7ST47S.js.map} +1 -1
  44. package/dist/{chunk-CN6AFOVV.js → chunk-TAJYHQ4N.js} +4 -4
  45. package/dist/{chunk-CN6AFOVV.js.map → chunk-TAJYHQ4N.js.map} +1 -1
  46. package/dist/{chunk-LUEXY2QV.js → chunk-TKMPRHAK.js} +3 -3
  47. package/dist/chunk-TKMPRHAK.js.map +1 -0
  48. package/dist/{chunk-SYH64AGV.cjs → chunk-V7H57YBW.cjs} +15 -15
  49. package/dist/{chunk-SYH64AGV.cjs.map → chunk-V7H57YBW.cjs.map} +1 -1
  50. package/dist/{chunk-FCW225T4.cjs → chunk-XQKBUR5Q.cjs} +77 -77
  51. package/dist/{chunk-FCW225T4.cjs.map → chunk-XQKBUR5Q.cjs.map} +1 -1
  52. package/dist/datasets/index.cjs +11 -11
  53. package/dist/datasets/index.js +1 -1
  54. package/dist/docs/SKILL.md +5 -1
  55. package/dist/docs/assets/SOURCE_MAP.json +133 -133
  56. package/dist/docs/references/docs-editor-overview.md +155 -0
  57. package/dist/docs/references/docs-editor-prompts.md +71 -0
  58. package/dist/docs/references/docs-editor-tools.md +152 -0
  59. package/dist/docs/references/docs-studio-overview.md +2 -0
  60. package/dist/docs/references/reference-client-js-agents.md +136 -0
  61. package/dist/docs/references/reference-editor-mastra-editor.md +90 -0
  62. package/dist/docs/references/reference.md +2 -0
  63. package/dist/evals/index.cjs +5 -5
  64. package/dist/evals/index.js +2 -2
  65. package/dist/evals/scoreTraces/index.cjs +3 -3
  66. package/dist/evals/scoreTraces/index.js +1 -1
  67. package/dist/harness/index.cjs +7 -7
  68. package/dist/harness/index.js +5 -5
  69. package/dist/index.cjs +2 -2
  70. package/dist/index.js +1 -1
  71. package/dist/llm/index.cjs +20 -20
  72. package/dist/llm/index.js +5 -5
  73. package/dist/llm/model/provider-types.generated.d.ts +3129 -3159
  74. package/dist/loop/index.cjs +14 -14
  75. package/dist/loop/index.js +1 -1
  76. package/dist/mastra/index.cjs +2 -2
  77. package/dist/mastra/index.js +1 -1
  78. package/dist/mastra-JEGLT2N7.js +3 -0
  79. package/dist/{mastra-5YHFXAJO.js.map → mastra-JEGLT2N7.js.map} +1 -1
  80. package/dist/mastra-JVY5NHTL.cjs +12 -0
  81. package/dist/{mastra-7CFH7DGM.cjs.map → mastra-JVY5NHTL.cjs.map} +1 -1
  82. package/dist/memory/index.cjs +19 -19
  83. package/dist/memory/index.js +1 -1
  84. package/dist/models-dev-2VN4JSFK.js +3 -0
  85. package/dist/{models-dev-ZXC3IYLG.js.map → models-dev-2VN4JSFK.js.map} +1 -1
  86. package/dist/models-dev-IKQIKFSM.cjs +12 -0
  87. package/dist/{models-dev-X2MWNPAU.cjs.map → models-dev-IKQIKFSM.cjs.map} +1 -1
  88. package/dist/netlify-JEENQP7S.cjs +12 -0
  89. package/dist/{netlify-GOILLTQO.cjs.map → netlify-JEENQP7S.cjs.map} +1 -1
  90. package/dist/netlify-Z6K3THHN.js +3 -0
  91. package/dist/{netlify-HJL7EXHY.js.map → netlify-Z6K3THHN.js.map} +1 -1
  92. package/dist/processor-provider/index.cjs +10 -10
  93. package/dist/processor-provider/index.js +1 -1
  94. package/dist/processors/index.cjs +44 -44
  95. package/dist/processors/index.js +1 -1
  96. package/dist/provider-registry-2RFGIGU5.cjs +44 -0
  97. package/dist/{provider-registry-25ELOB67.cjs.map → provider-registry-2RFGIGU5.cjs.map} +1 -1
  98. package/dist/provider-registry-DVP23DC2.js +3 -0
  99. package/dist/{provider-registry-UWTCPEFF.js.map → provider-registry-DVP23DC2.js.map} +1 -1
  100. package/dist/provider-registry.json +6610 -6672
  101. package/dist/relevance/index.cjs +3 -3
  102. package/dist/relevance/index.js +1 -1
  103. package/dist/stream/index.cjs +8 -8
  104. package/dist/stream/index.js +1 -1
  105. package/dist/tool-loop-agent/index.cjs +4 -4
  106. package/dist/tool-loop-agent/index.js +1 -1
  107. package/dist/workflows/evented/index.cjs +10 -10
  108. package/dist/workflows/evented/index.js +1 -1
  109. package/dist/workflows/index.cjs +24 -24
  110. package/dist/workflows/index.js +1 -1
  111. package/package.json +9 -9
  112. package/src/llm/model/provider-types.generated.d.ts +3129 -3159
  113. package/dist/chunk-BFOZOAU2.cjs.map +0 -1
  114. package/dist/chunk-LUEXY2QV.js.map +0 -1
  115. package/dist/chunk-V657RNGK.js.map +0 -1
  116. package/dist/chunk-XEDVYHBK.cjs.map +0 -1
  117. package/dist/mastra-5YHFXAJO.js +0 -3
  118. package/dist/mastra-7CFH7DGM.cjs +0 -12
  119. package/dist/models-dev-X2MWNPAU.cjs +0 -12
  120. package/dist/models-dev-ZXC3IYLG.js +0 -3
  121. package/dist/netlify-GOILLTQO.cjs +0 -12
  122. package/dist/netlify-HJL7EXHY.js +0 -3
  123. package/dist/provider-registry-25ELOB67.cjs +0 -44
  124. package/dist/provider-registry-UWTCPEFF.js +0 -3
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkSYH64AGV_cjs = require('./chunk-SYH64AGV.cjs');
3
+ var chunkV7H57YBW_cjs = require('./chunk-V7H57YBW.cjs');
4
4
  var chunkP5C4HEAB_cjs = require('./chunk-P5C4HEAB.cjs');
5
5
  var chunk4FFOOHE5_cjs = require('./chunk-4FFOOHE5.cjs');
6
6
  var chunkL56725IW_cjs = require('./chunk-L56725IW.cjs');
@@ -355,7 +355,7 @@ async function runEvals(config) {
355
355
  };
356
356
  }
357
357
  function isWorkflow(target) {
358
- return target instanceof chunkSYH64AGV_cjs.Workflow;
358
+ return target instanceof chunkV7H57YBW_cjs.Workflow;
359
359
  }
360
360
  function isWorkflowScorerConfig(scorers) {
361
361
  return typeof scorers === "object" && !Array.isArray(scorers) && ("workflow" in scorers || "steps" in scorers || "trajectory" in scorers && !("agent" in scorers));
@@ -472,7 +472,7 @@ async function executeWorkflow(target, item, targetOptions) {
472
472
  async function executeAgent(agent, item, targetOptions) {
473
473
  const observabilityContext = chunk4FFOOHE5_cjs.resolveObservabilityContext(item);
474
474
  const model = await agent.getModel();
475
- if (chunkSYH64AGV_cjs.isSupportedLanguageModel(model)) {
475
+ if (chunkV7H57YBW_cjs.isSupportedLanguageModel(model)) {
476
476
  const { structuredOutput, ...restOptions } = targetOptions ?? {};
477
477
  const baseOptions = {
478
478
  ...restOptions,
@@ -898,5 +898,5 @@ async function saveSingleScore({
898
898
  exports.createOnScorerHook = createOnScorerHook;
899
899
  exports.runEvals = runEvals;
900
900
  exports.validateAndSaveScore = validateAndSaveScore;
901
- //# sourceMappingURL=chunk-B2FQ6L2I.cjs.map
902
- //# sourceMappingURL=chunk-B2FQ6L2I.cjs.map
901
+ //# sourceMappingURL=chunk-KDLCZTD3.cjs.map
902
+ //# sourceMappingURL=chunk-KDLCZTD3.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/mastra/hooks.ts","../src/evals/run/scorerAccumulator.ts","../src/evals/run/index.ts"],"names":["EntityType","MastraError","pMap","saveScorePayloadSchema","Workflow","resolveObservabilityContext","isSupportedLanguageModel","extractTrajectoryFromTrace","extractTrajectory","extractWorkflowTrajectory"],"mappings":"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","file":"chunk-B2FQ6L2I.cjs","sourcesContent":["import pMap from 'p-map';\nimport { ErrorCategory, ErrorDomain, MastraError } from '../error';\nimport { saveScorePayloadSchema } from '../evals';\nimport type { ScoringHookInput } from '../evals/types';\nimport type { Mastra } from '../mastra';\nimport { EntityType } from '../observability';\nimport type { MastraStorage } from '../storage';\n\nfunction toScorerTargetEntityType(entityType: string): EntityType | undefined {\n switch (entityType) {\n case 'AGENT':\n return EntityType.AGENT;\n case 'WORKFLOW':\n return EntityType.WORKFLOW_RUN;\n default:\n return undefined;\n }\n}\n\nexport function createOnScorerHook(mastra: Mastra) {\n return async (hookData: ScoringHookInput) => {\n const storage = mastra.getStorage();\n\n if (!storage) {\n mastra.getLogger()?.warn('Storage not found, skipping score validation and saving');\n return;\n }\n\n const entityId = hookData.entity.id as string;\n const entityType = hookData.entityType;\n const scorer = hookData.scorer;\n const scorerId = scorer.id as string;\n\n if (!scorerId) {\n mastra.getLogger()?.warn('Scorer ID not found, skipping score validation and saving');\n return;\n }\n\n try {\n const scorerToUse = await findScorer(mastra, entityId, entityType, scorerId);\n\n if (!scorerToUse) {\n throw new MastraError({\n id: 'MASTRA_SCORER_NOT_FOUND',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: `Scorer with ID ${scorerId} not found`,\n });\n }\n\n let input = hookData.input;\n let output = hookData.output;\n\n const { structuredOutput, ...rest } = hookData;\n\n const currentSpan = hookData.tracingContext?.currentSpan;\n const traceId = currentSpan?.isValid ? currentSpan.traceId : undefined;\n const spanId = currentSpan?.isValid ? currentSpan.id : undefined;\n const targetCorrelationContext = currentSpan?.isValid ? currentSpan.getCorrelationContext?.() : undefined;\n const targetMetadata = currentSpan?.isValid && currentSpan.metadata ? { ...currentSpan.metadata } : undefined;\n const runResult = (await scorerToUse.scorer.run({\n ...rest,\n input,\n output,\n scoreSource: 'live',\n targetScope: 'span',\n targetEntityType: toScorerTargetEntityType(entityType),\n targetTraceId: traceId,\n targetSpanId: spanId,\n targetCorrelationContext,\n targetMetadata,\n } as any)) as Record<string, unknown>;\n\n const payload = {\n ...rest,\n ...runResult,\n entityId,\n scorerId: scorerId,\n spanId,\n traceId,\n scorer: {\n ...rest.scorer,\n hasJudge: !!scorerToUse.scorer.judge,\n },\n metadata: {\n structuredOutput: !!structuredOutput,\n },\n };\n // Legacy score-store emission. This path is being deprecated.\n await validateAndSaveScore(storage, payload);\n\n if (currentSpan && spanId && traceId) {\n await pMap(\n currentSpan.observabilityInstance.getExporters(),\n async exporter => {\n if (exporter.addScoreToTrace) {\n try {\n await exporter.addScoreToTrace({\n traceId: traceId,\n spanId: spanId,\n score: runResult.score as number,\n reason: runResult.reason as string,\n scorerName: scorerToUse.scorer.id,\n metadata: {\n ...(currentSpan.metadata ?? {}),\n },\n });\n } catch (error) {\n // Log error but don't fail the hook if exporter fails\n mastra.getLogger()?.error(`Failed to add score to trace via exporter: ${error}`);\n }\n }\n },\n { concurrency: 3 },\n );\n }\n } catch (error) {\n const mastraError = new MastraError(\n {\n id: 'MASTRA_SCORER_FAILED_TO_RUN_HOOK',\n domain: ErrorDomain.SCORER,\n category: ErrorCategory.USER,\n details: {\n scorerId,\n entityId,\n entityType,\n },\n },\n error,\n );\n\n mastra.getLogger()?.trackException(mastraError);\n }\n };\n}\n\n/**\n * @deprecated Legacy scores-store path. New score emission should use `mastra.observability.addScore()`.\n */\nexport async function validateAndSaveScore(storage: MastraStorage, payload: unknown) {\n const scoresStore = await storage.getStore('scores');\n if (!scoresStore) {\n throw new MastraError({\n id: 'MASTRA_SCORES_STORAGE_NOT_AVAILABLE',\n domain: ErrorDomain.STORAGE,\n category: ErrorCategory.SYSTEM,\n text: 'Scores storage domain is not available',\n });\n }\n const payloadToSave = saveScorePayloadSchema.parse(payload);\n await scoresStore.saveScore(payloadToSave);\n}\n\nasync function findScorer(mastra: Mastra, entityId: string, entityType: string, scorerId: string) {\n let scorerToUse;\n if (entityType === 'AGENT') {\n // Try code-defined agents first\n try {\n const agent = mastra.getAgentById(entityId);\n const scorers = await agent.listScorers();\n for (const [_, scorer] of Object.entries(scorers)) {\n if (scorer.scorer.id === scorerId) {\n scorerToUse = scorer;\n break;\n }\n }\n } catch {\n // Agent not found in code-defined agents, try stored agents via editor\n try {\n const storedAgent = (await mastra.getEditor()?.agent.getById(entityId)) ?? null;\n if (storedAgent) {\n const scorers = await storedAgent.listScorers();\n for (const [_, scorer] of Object.entries(scorers) as [string, any][]) {\n if (scorer.scorer.id === scorerId) {\n scorerToUse = scorer;\n break;\n }\n }\n }\n } catch {\n // Stored agent also not found, will fall back to mastra-registered scorer\n }\n }\n } else if (entityType === 'WORKFLOW') {\n const scorers = await mastra.getWorkflowById(entityId).listScorers();\n for (const [_, scorer] of Object.entries(scorers)) {\n if (scorer.scorer.id === scorerId) {\n scorerToUse = scorer;\n break;\n }\n }\n }\n\n // Fallback to mastra-registered scorer\n if (!scorerToUse) {\n const mastraRegisteredScorer = mastra.getScorerById(scorerId);\n scorerToUse = mastraRegisteredScorer ? { scorer: mastraRegisteredScorer } : undefined;\n }\n\n return scorerToUse;\n}\n","export class ScoreAccumulator {\n private flatScores: Record<string, number[]> = {};\n private workflowScores: Record<string, number[]> = {};\n private stepScores: Record<string, Record<string, number[]>> = {};\n private agentScores: Record<string, number[]> = {};\n private trajectoryScores: Record<string, number[]> = {};\n\n addScores(scorerResults: Record<string, any>) {\n const isWorkflowScores = 'steps' in scorerResults || 'workflow' in scorerResults;\n const isAgentScores = 'agent' in scorerResults;\n const hasTrajectory = 'trajectory' in scorerResults;\n\n // Routing priority: workflow configs take precedence (they may also include\n // trajectory scores), then agent configs (agent or trajectory-only), then\n // flat scores for simple scorer arrays.\n if (isWorkflowScores) {\n this.addWorkflowScores(scorerResults);\n } else if (isAgentScores || hasTrajectory) {\n this.addAgentScores(scorerResults);\n } else {\n this.addFlatScores(scorerResults);\n }\n }\n\n private addFlatScores(scorerResults: Record<string, any>) {\n for (const [scorerName, result] of Object.entries(scorerResults)) {\n if (!this.flatScores[scorerName]) {\n this.flatScores[scorerName] = [];\n }\n this.flatScores[scorerName].push((result as { score: number }).score);\n }\n }\n\n private addWorkflowScores(scorerResults: Record<string, any>) {\n if ('workflow' in scorerResults && scorerResults.workflow) {\n for (const [scorerName, result] of Object.entries(scorerResults.workflow)) {\n if (!this.workflowScores[scorerName]) {\n this.workflowScores[scorerName] = [];\n }\n this.workflowScores[scorerName].push((result as { score: number }).score);\n }\n }\n\n if ('steps' in scorerResults && scorerResults.steps) {\n for (const [stepId, stepResults] of Object.entries(scorerResults.steps)) {\n if (!this.stepScores[stepId]) {\n this.stepScores[stepId] = {};\n }\n for (const [scorerName, result] of Object.entries(stepResults as Record<string, any>)) {\n if (!this.stepScores[stepId][scorerName]) {\n this.stepScores[stepId][scorerName] = [];\n }\n this.stepScores[stepId][scorerName].push((result as { score: number }).score);\n }\n }\n }\n\n // Trajectory scores can come from workflow scorer configs too\n if ('trajectory' in scorerResults && scorerResults.trajectory) {\n for (const [scorerName, result] of Object.entries(scorerResults.trajectory)) {\n if (!this.trajectoryScores[scorerName]) {\n this.trajectoryScores[scorerName] = [];\n }\n this.trajectoryScores[scorerName].push((result as { score: number }).score);\n }\n }\n }\n\n private addAgentScores(scorerResults: Record<string, any>) {\n if ('agent' in scorerResults && scorerResults.agent) {\n for (const [scorerName, result] of Object.entries(scorerResults.agent)) {\n if (!this.agentScores[scorerName]) {\n this.agentScores[scorerName] = [];\n }\n this.agentScores[scorerName].push((result as { score: number }).score);\n }\n }\n\n if ('trajectory' in scorerResults && scorerResults.trajectory) {\n for (const [scorerName, result] of Object.entries(scorerResults.trajectory)) {\n if (!this.trajectoryScores[scorerName]) {\n this.trajectoryScores[scorerName] = [];\n }\n this.trajectoryScores[scorerName].push((result as { score: number }).score);\n }\n }\n }\n\n addStepScores(stepScorerResults: Record<string, Record<string, any>>) {\n for (const [stepId, stepResults] of Object.entries(stepScorerResults)) {\n if (!this.stepScores[stepId]) {\n this.stepScores[stepId] = {};\n }\n for (const [scorerName, result] of Object.entries(stepResults)) {\n if (!this.stepScores[stepId][scorerName]) {\n this.stepScores[stepId][scorerName] = [];\n }\n this.stepScores[stepId][scorerName].push((result as { score: number }).score);\n }\n }\n }\n\n getAverageScores(): Record<string, any> {\n const result: Record<string, any> = {};\n\n for (const [scorerName, scoreArray] of Object.entries(this.flatScores)) {\n result[scorerName] = this.getAverageScore(scoreArray);\n }\n\n // Add workflow scores\n if (Object.keys(this.workflowScores).length > 0) {\n result.workflow = {};\n for (const [scorerName, scoreArray] of Object.entries(this.workflowScores)) {\n result.workflow[scorerName] = this.getAverageScore(scoreArray);\n }\n }\n\n if (Object.keys(this.stepScores).length > 0) {\n result.steps = {};\n for (const [stepId, stepScorers] of Object.entries(this.stepScores)) {\n result.steps[stepId] = {};\n for (const [scorerName, scoreArray] of Object.entries(stepScorers)) {\n result.steps[stepId][scorerName] = this.getAverageScore(scoreArray);\n }\n }\n }\n\n // Add agent scores\n if (Object.keys(this.agentScores).length > 0) {\n result.agent = {};\n for (const [scorerName, scoreArray] of Object.entries(this.agentScores)) {\n result.agent[scorerName] = this.getAverageScore(scoreArray);\n }\n }\n\n // Add trajectory scores\n if (Object.keys(this.trajectoryScores).length > 0) {\n result.trajectory = {};\n for (const [scorerName, scoreArray] of Object.entries(this.trajectoryScores)) {\n result.trajectory[scorerName] = this.getAverageScore(scoreArray);\n }\n }\n\n return result;\n }\n\n private getAverageScore(scoreArray: number[]): number {\n if (scoreArray.length > 0) {\n return scoreArray.reduce((a, b) => a + b, 0) / scoreArray.length;\n } else {\n return 0;\n }\n }\n}\n","import type { CoreMessage } from '@internal/ai-sdk-v4';\nimport type { Agent, AgentExecutionOptions, AiMessageType, UIMessageWithMetadata } from '../../agent';\nimport { isSupportedLanguageModel } from '../../agent';\nimport { MastraError } from '../../error';\nimport { validateAndSaveScore } from '../../mastra/hooks';\nimport type { ObservabilityContext } from '../../observability';\nimport { EntityType, resolveObservabilityContext } from '../../observability';\nimport type { RequestContext } from '../../request-context';\nimport type { MastraCompositeStore } from '../../storage';\nimport { Workflow } from '../../workflows';\nimport type { AnyWorkflow, WorkflowResult, WorkflowRunStartOptions, StepResult } from '../../workflows';\nimport type { MastraScorer } from '../base';\nimport { extractTrajectory, extractTrajectoryFromTrace, extractWorkflowTrajectory } from '../types';\nimport { ScoreAccumulator } from './scorerAccumulator';\n\ntype WorkflowRunOptions = WorkflowRunStartOptions & {\n initialState?: any;\n};\n\ntype RunEvalsDataItem<TTarget = unknown> = {\n input: TTarget extends Workflow<any, any>\n ? any\n : TTarget extends Agent\n ? string | string[] | CoreMessage[] | AiMessageType[] | UIMessageWithMetadata[]\n : unknown;\n groundTruth?: any;\n expectedTrajectory?: any;\n requestContext?: RequestContext;\n startOptions?: WorkflowRunOptions;\n} & Partial<ObservabilityContext>;\n\nexport type WorkflowScorerConfig = {\n /** Scorers that evaluate the overall workflow input/output */\n workflow?: MastraScorer<any, any, any, any>[];\n /** Scorers that evaluate individual workflow steps by step ID */\n steps?: Record<string, MastraScorer<any, any, any, any>[]>;\n /** Scorers that evaluate the workflow's step execution trajectory */\n trajectory?: MastraScorer<any, any, any, any>[];\n};\n\nexport type AgentScorerConfig = {\n /** Scorers that evaluate the full agent input/output */\n agent?: MastraScorer<any, any, any, any>[];\n /** Scorers that evaluate the agent's tool call trajectory */\n trajectory?: MastraScorer<any, any, any, any>[];\n};\n\ntype RunEvalsResult = {\n scores: Record<string, any>;\n summary: {\n totalItems: number;\n };\n};\n\n// Agent with scorers array\nexport function runEvals<TAgent extends Agent>(config: {\n data: RunEvalsDataItem<TAgent>[];\n scorers: MastraScorer<any, any, any, any>[];\n target: TAgent;\n targetOptions?: Omit<AgentExecutionOptions<any>, 'scorers' | 'returnScorerData' | 'requestContext'>;\n onItemComplete?: (params: {\n item: RunEvalsDataItem<TAgent>;\n targetResult: Awaited<ReturnType<Agent['generate']>>;\n scorerResults: Record<string, any>; // Flat structure: { scorerName: result }\n }) => void | Promise<void>;\n concurrency?: number;\n}): Promise<RunEvalsResult>;\n\n// Workflow with scorers array\nexport function runEvals<TWorkflow extends AnyWorkflow>(config: {\n data: RunEvalsDataItem<TWorkflow>[];\n scorers: MastraScorer<any, any, any, any>[];\n target: TWorkflow;\n targetOptions?: WorkflowRunOptions;\n onItemComplete?: (params: {\n item: RunEvalsDataItem<TWorkflow>;\n targetResult: WorkflowResult<any, any, any, any>;\n scorerResults: Record<string, any>; // Flat structure: { scorerName: result }\n }) => void | Promise<void>;\n concurrency?: number;\n}): Promise<RunEvalsResult>;\n\n// Workflow with workflow configuration\nexport function runEvals<TWorkflow extends AnyWorkflow>(config: {\n data: RunEvalsDataItem<TWorkflow>[];\n scorers: WorkflowScorerConfig;\n target: TWorkflow;\n targetOptions?: WorkflowRunOptions;\n onItemComplete?: (params: {\n item: RunEvalsDataItem<TWorkflow>;\n targetResult: WorkflowResult<any, any, any, any>;\n scorerResults: {\n workflow?: Record<string, any>;\n steps?: Record<string, Record<string, any>>;\n trajectory?: Record<string, any>;\n };\n }) => void | Promise<void>;\n concurrency?: number;\n}): Promise<RunEvalsResult>;\n\n// Agent with agent scorer configuration (agent-level + trajectory scorers)\nexport function runEvals<TAgent extends Agent>(config: {\n data: RunEvalsDataItem<TAgent>[];\n scorers: AgentScorerConfig;\n target: TAgent;\n targetOptions?: Omit<AgentExecutionOptions<any>, 'scorers' | 'returnScorerData' | 'requestContext'>;\n onItemComplete?: (params: {\n item: RunEvalsDataItem<TAgent>;\n targetResult: Awaited<ReturnType<Agent['generate']>>;\n scorerResults: {\n agent?: Record<string, any>;\n trajectory?: Record<string, any>;\n };\n }) => void | Promise<void>;\n concurrency?: number;\n}): Promise<RunEvalsResult>;\n\nexport async function runEvals(config: {\n data: RunEvalsDataItem<any>[];\n scorers: MastraScorer<any, any, any, any>[] | WorkflowScorerConfig | AgentScorerConfig;\n target: Agent | Workflow;\n targetOptions?:\n | Omit<AgentExecutionOptions<any>, 'scorers' | 'returnScorerData' | 'requestContext'>\n | WorkflowRunOptions;\n onItemComplete?: (params: {\n item: RunEvalsDataItem<any>;\n targetResult: any;\n scorerResults: any;\n }) => void | Promise<void>;\n concurrency?: number;\n}): Promise<RunEvalsResult> {\n const { data, scorers, target, targetOptions, onItemComplete, concurrency = 1 } = config;\n\n validateEvalsInputs(data, scorers, target);\n\n let totalItems = 0;\n const scoreAccumulator = new ScoreAccumulator();\n\n // Get storage from target's Mastra instance if available\n // Agent uses getMastraInstance(), Workflow uses .mastra getter\n const mastra = (target as any).getMastraInstance?.() || (target as any).mastra;\n const storage = mastra?.getStorage();\n\n const pMap = (await import('p-map')).default;\n await pMap(\n data,\n async (item: RunEvalsDataItem<any>) => {\n const targetResult = await executeTarget(target, item, targetOptions);\n const scorerResults = await runScorers(scorers, targetResult, item, storage);\n scoreAccumulator.addScores(scorerResults);\n\n // Save scores to storage if available\n if (storage) {\n await saveScoresToStorage({\n storage,\n scorerResults,\n target,\n item,\n mastra,\n });\n }\n\n if (onItemComplete) {\n await onItemComplete({\n item,\n targetResult: targetResult as any,\n scorerResults: scorerResults as any,\n });\n }\n\n totalItems++;\n },\n { concurrency },\n );\n\n return {\n scores: scoreAccumulator.getAverageScores(),\n summary: {\n totalItems,\n },\n };\n}\n\nfunction isWorkflow(target: Agent | Workflow): target is Workflow {\n return target instanceof Workflow;\n}\n\nfunction isWorkflowScorerConfig(scorers: any): scorers is WorkflowScorerConfig {\n return (\n typeof scorers === 'object' &&\n !Array.isArray(scorers) &&\n ('workflow' in scorers || 'steps' in scorers || ('trajectory' in scorers && !('agent' in scorers)))\n );\n}\n\nfunction isAgentScorerConfig(scorers: any): scorers is AgentScorerConfig {\n return (\n typeof scorers === 'object' &&\n !Array.isArray(scorers) &&\n ('agent' in scorers || ('trajectory' in scorers && !('workflow' in scorers) && !('steps' in scorers)))\n );\n}\n\nfunction validateEvalsInputs(\n data: RunEvalsDataItem<any>[],\n scorers: MastraScorer<any, any, any, any>[] | WorkflowScorerConfig | AgentScorerConfig,\n target: Agent | Workflow,\n): void {\n if (data.length === 0) {\n throw new MastraError({\n domain: 'SCORER',\n id: 'RUN_EXPERIMENT_FAILED_NO_DATA_PROVIDED',\n category: 'USER',\n text: 'Failed to run experiment: Data array is empty',\n });\n }\n\n for (let i = 0; i < data.length; i++) {\n const item = data[i];\n if (!item || typeof item !== 'object' || !('input' in item)) {\n throw new MastraError({\n domain: 'SCORER',\n id: 'INVALID_DATA_ITEM',\n category: 'USER',\n text: `Invalid data item at index ${i}: must have 'input' properties`,\n });\n }\n }\n\n // Validate scorers\n if (Array.isArray(scorers)) {\n if (scorers.length === 0) {\n throw new MastraError({\n domain: 'SCORER',\n id: 'NO_SCORERS_PROVIDED',\n category: 'USER',\n text: 'At least one scorer must be provided',\n });\n }\n } else if (isWorkflow(target) && isWorkflowScorerConfig(scorers)) {\n const hasScorers =\n (scorers.workflow && scorers.workflow.length > 0) ||\n (scorers.steps && Object.keys(scorers.steps).length > 0) ||\n (scorers.trajectory && scorers.trajectory.length > 0);\n\n if (!hasScorers) {\n throw new MastraError({\n domain: 'SCORER',\n id: 'NO_SCORERS_PROVIDED',\n category: 'USER',\n text: 'At least one workflow, step, or trajectory scorer must be provided',\n });\n }\n } else if (!isWorkflow(target) && isAgentScorerConfig(scorers)) {\n const hasScorers =\n (scorers.agent && scorers.agent.length > 0) || (scorers.trajectory && scorers.trajectory.length > 0);\n\n if (!hasScorers) {\n throw new MastraError({\n domain: 'SCORER',\n id: 'NO_SCORERS_PROVIDED',\n category: 'USER',\n text: 'At least one agent or trajectory scorer must be provided',\n });\n }\n } else if (!isWorkflow(target) && !Array.isArray(scorers) && !isAgentScorerConfig(scorers)) {\n throw new MastraError({\n domain: 'SCORER',\n id: 'INVALID_AGENT_SCORERS',\n category: 'USER',\n text: 'Agent scorers must be an array of scorers or an AgentScorerConfig',\n });\n }\n}\n\nasync function executeTarget(\n target: Agent | Workflow,\n item: RunEvalsDataItem<any>,\n targetOptions?:\n | Omit<AgentExecutionOptions<any>, 'scorers' | 'returnScorerData' | 'requestContext'>\n | WorkflowRunOptions,\n) {\n try {\n if (isWorkflow(target)) {\n return await executeWorkflow(target, item, targetOptions as WorkflowRunOptions);\n } else {\n return await executeAgent(\n target,\n item,\n targetOptions as Omit<AgentExecutionOptions<any>, 'scorers' | 'returnScorerData' | 'requestContext'>,\n );\n }\n } catch (error) {\n throw new MastraError(\n {\n domain: 'SCORER',\n id: 'RUN_EXPERIMENT_TARGET_FAILED_TO_GENERATE_RESULT',\n category: 'USER',\n text: 'Failed to run experiment: Error generating result from target',\n details: {\n item: JSON.stringify(item),\n },\n },\n error,\n );\n }\n}\n\nasync function executeWorkflow(target: Workflow, item: RunEvalsDataItem<any>, targetOptions?: WorkflowRunOptions) {\n const observabilityContext = resolveObservabilityContext(item);\n const run = await target.createRun({ disableScorers: true });\n const workflowResult = await run.start({\n ...targetOptions,\n ...item.startOptions,\n inputData: item.input,\n requestContext: item.requestContext,\n ...observabilityContext,\n });\n\n return {\n traceId: workflowResult.traceId,\n spanId: workflowResult.spanId,\n entityType: EntityType.WORKFLOW_RUN,\n scoringData: {\n input: item.input,\n output: workflowResult.status === 'success' ? workflowResult.result : undefined,\n stepResults: workflowResult.steps as Record<string, StepResult<any, any, any, any>>,\n stepExecutionPath: workflowResult.stepExecutionPath,\n },\n };\n}\n\nasync function executeAgent(\n agent: Agent,\n item: RunEvalsDataItem<any>,\n targetOptions?: Omit<AgentExecutionOptions<any>, 'scorers' | 'returnScorerData' | 'requestContext'>,\n) {\n const observabilityContext = resolveObservabilityContext(item);\n const model = await agent.getModel();\n if (isSupportedLanguageModel(model)) {\n const { structuredOutput, ...restOptions } = targetOptions ?? {};\n const baseOptions = {\n ...restOptions,\n ...observabilityContext,\n scorers: {},\n returnScorerData: true,\n requestContext: item.requestContext,\n };\n const result = structuredOutput\n ? await agent.generate(item.input, { ...baseOptions, structuredOutput })\n : await agent.generate(item.input, baseOptions);\n\n return {\n ...result,\n entityType: EntityType.AGENT,\n };\n } else {\n const result = await agent.generateLegacy(item.input, {\n scorers: {},\n returnScorerData: true,\n requestContext: item.requestContext,\n ...observabilityContext,\n });\n return {\n ...result,\n entityType: EntityType.AGENT,\n };\n }\n}\n\n/**\n * Attempts to extract a hierarchical trajectory from observability traces.\n * Falls back to undefined if storage is not available or trace cannot be fetched.\n */\nasync function extractTrajectoryFromTraceStore(\n storage: MastraCompositeStore | undefined,\n traceId: string | undefined,\n spanId: string | undefined,\n): Promise<ReturnType<typeof extractTrajectoryFromTrace> | undefined> {\n if (!storage || !traceId) return undefined;\n\n try {\n const observabilityStore = await storage.getStore('observability');\n if (!observabilityStore) return undefined;\n\n const trace = await observabilityStore.getTrace({ traceId });\n if (!trace?.spans?.length) return undefined;\n\n return extractTrajectoryFromTrace(trace.spans, spanId);\n } catch {\n // Trace-based extraction is best-effort; fall back to existing extraction\n return undefined;\n }\n}\n\n//TODO: Ideally this would run on trace data instead of targetResult data\nasync function runScorers(\n scorers: MastraScorer<any, any, any, any>[] | WorkflowScorerConfig | AgentScorerConfig,\n targetResult: any,\n item: RunEvalsDataItem<any>,\n storage?: MastraCompositeStore,\n): Promise<Record<string, any>> {\n const scorerResults: Record<string, any> = {};\n const targetTraceId = targetResult.traceId;\n const targetEntityType: EntityType = targetResult.entityType;\n\n if (Array.isArray(scorers)) {\n for (const scorer of scorers) {\n try {\n const score = await scorer.run({\n input: targetResult.scoringData?.input,\n output: targetResult.scoringData?.output,\n groundTruth: item.groundTruth,\n requestContext: item.requestContext,\n scoreSource: 'experiment',\n targetScope: 'span',\n targetEntityType,\n targetTraceId,\n targetSpanId: targetResult.spanId,\n });\n\n scorerResults[scorer.id] = score;\n } catch (error) {\n throw new MastraError(\n {\n domain: 'SCORER',\n id: 'RUN_EXPERIMENT_SCORER_FAILED_TO_SCORE_RESULT',\n category: 'USER',\n text: `Failed to run experiment: Error running scorer ${scorer.id}`,\n details: {\n scorerId: scorer.id,\n item: JSON.stringify(item),\n },\n },\n error,\n );\n }\n }\n } else if (isAgentScorerConfig(scorers)) {\n // Handle agent scorer config (agent-level + trajectory scorers)\n if (scorers.agent) {\n const agentScorerResults: Record<string, any> = {};\n for (const scorer of scorers.agent) {\n try {\n const score = await scorer.run({\n input: targetResult.scoringData?.input,\n output: targetResult.scoringData?.output,\n groundTruth: item.groundTruth,\n requestContext: item.requestContext,\n scoreSource: 'experiment',\n targetScope: 'span',\n targetEntityType,\n targetTraceId,\n targetSpanId: targetResult.spanId,\n });\n agentScorerResults[scorer.id] = score;\n } catch (error) {\n throw new MastraError(\n {\n domain: 'SCORER',\n id: 'RUN_EXPERIMENT_SCORER_FAILED_TO_SCORE_RESULT',\n category: 'USER',\n text: `Failed to run experiment: Error running agent scorer ${scorer.id}`,\n details: {\n scorerId: scorer.id,\n item: JSON.stringify(item),\n },\n },\n error,\n );\n }\n }\n if (Object.keys(agentScorerResults).length > 0) {\n scorerResults.agent = agentScorerResults;\n }\n }\n\n if (scorers.trajectory) {\n const trajectoryScorerResults: Record<string, any> = {};\n\n // Prefer hierarchical trace-based extraction when storage + traceId are available\n const traceTrajectory = await extractTrajectoryFromTraceStore(storage, targetResult.traceId, targetResult.spanId);\n\n // Fall back to flat extraction from MastraDBMessage[] tool invocations\n const rawOutput = targetResult.scoringData?.output;\n const trajectory = traceTrajectory ?? (rawOutput ? extractTrajectory(rawOutput) : { steps: [] });\n\n for (const scorer of scorers.trajectory) {\n try {\n const score = await scorer.run({\n input: targetResult.scoringData?.input,\n output: trajectory,\n groundTruth: item.groundTruth,\n expectedTrajectory: item.expectedTrajectory,\n requestContext: item.requestContext,\n scoreSource: 'experiment',\n targetScope: 'trajectory',\n targetEntityType,\n targetTraceId,\n targetSpanId: targetResult.spanId,\n });\n trajectoryScorerResults[scorer.id] = score;\n } catch (error) {\n throw new MastraError(\n {\n domain: 'SCORER',\n id: 'RUN_EXPERIMENT_SCORER_FAILED_TO_SCORE_TRAJECTORY',\n category: 'USER',\n text: `Failed to run experiment: Error running trajectory scorer ${scorer.id}`,\n details: {\n scorerId: scorer.id,\n item: JSON.stringify(item),\n },\n },\n error,\n );\n }\n }\n if (Object.keys(trajectoryScorerResults).length > 0) {\n scorerResults.trajectory = trajectoryScorerResults;\n }\n }\n } else {\n // Handle workflow scorer config\n if (scorers.workflow) {\n const workflowScorerResults: Record<string, any> = {};\n for (const scorer of scorers.workflow) {\n const score = await scorer.run({\n input: targetResult.scoringData.input,\n output: targetResult.scoringData.output,\n groundTruth: item.groundTruth,\n requestContext: item.requestContext,\n scoreSource: 'experiment',\n targetScope: 'span',\n targetEntityType,\n targetTraceId,\n targetSpanId: targetResult.spanId,\n });\n workflowScorerResults[scorer.id] = score;\n }\n if (Object.keys(workflowScorerResults).length > 0) {\n scorerResults.workflow = workflowScorerResults;\n }\n }\n\n if (scorers.steps) {\n const stepScorerResults: Record<string, any> = {};\n for (const [stepId, stepScorers] of Object.entries(scorers.steps)) {\n const stepResult = targetResult.scoringData.stepResults?.[stepId];\n // TODO : Ideally this would run on the trace.WORKFLOW_STEP span...\n // then we could directly add the score to that span\n if (stepResult?.status === 'success' && stepResult.output !== undefined) {\n const stepResults: Record<string, any> = {};\n for (const scorer of stepScorers) {\n try {\n const score = await scorer.run({\n input: stepResult.payload !== undefined ? stepResult.payload : targetResult.scoringData.input,\n output: stepResult.output,\n groundTruth: item.groundTruth,\n requestContext: item.requestContext,\n scoreSource: 'experiment',\n targetScope: 'span',\n targetEntityType: EntityType.WORKFLOW_STEP,\n targetTraceId,\n });\n stepResults[scorer.id] = score;\n } catch (error) {\n throw new MastraError(\n {\n domain: 'SCORER',\n id: 'RUN_EXPERIMENT_SCORER_FAILED_TO_SCORE_STEP_RESULT',\n category: 'USER',\n text: `Failed to run experiment: Error running scorer ${scorer.id} on step ${stepId}`,\n details: {\n scorerId: scorer.id,\n stepId,\n },\n },\n error,\n );\n }\n }\n if (Object.keys(stepResults).length > 0) {\n stepScorerResults[stepId] = stepResults;\n }\n }\n }\n if (Object.keys(stepScorerResults).length > 0) {\n scorerResults.steps = stepScorerResults;\n }\n }\n\n if (scorers.trajectory) {\n const trajectoryScorerResults: Record<string, any> = {};\n\n // Prefer hierarchical trace-based extraction when storage + traceId are available\n const traceTrajectory = await extractTrajectoryFromTraceStore(storage, targetResult.traceId, targetResult.spanId);\n\n // Fall back to flat extraction from step results\n let trajectory = traceTrajectory;\n if (!trajectory) {\n const stepResults = targetResult.scoringData?.stepResults;\n const stepExecutionPath = targetResult.scoringData?.stepExecutionPath;\n trajectory = stepResults ? extractWorkflowTrajectory(stepResults, stepExecutionPath) : { steps: [] };\n }\n\n for (const scorer of scorers.trajectory) {\n try {\n const score = await scorer.run({\n input: targetResult.scoringData?.input,\n output: trajectory,\n groundTruth: item.groundTruth,\n expectedTrajectory: item.expectedTrajectory,\n requestContext: item.requestContext,\n scoreSource: 'experiment',\n targetScope: 'trajectory',\n targetEntityType: EntityType.TRAJECTORY,\n targetTraceId,\n targetSpanId: targetResult.spanId,\n });\n trajectoryScorerResults[scorer.id] = score;\n } catch (error) {\n throw new MastraError(\n {\n domain: 'SCORER',\n id: 'RUN_EXPERIMENT_SCORER_FAILED_TO_SCORE_WORKFLOW_TRAJECTORY',\n category: 'USER',\n text: `Failed to run experiment: Error running workflow trajectory scorer ${scorer.id}`,\n details: {\n scorerId: scorer.id,\n item: JSON.stringify(item),\n },\n },\n error,\n );\n }\n }\n if (Object.keys(trajectoryScorerResults).length > 0) {\n scorerResults.trajectory = trajectoryScorerResults;\n }\n }\n }\n\n return scorerResults;\n}\n\n/**\n * Saves scorer results to storage when running evaluations.\n * This makes scores visible in Studio's observability section.\n *\n * @deprecated Legacy scores-store path. New score emission should use `mastra.observability.addScore().\n */\nasync function saveScoresToStorage({\n storage,\n scorerResults,\n target,\n item,\n mastra,\n}: {\n storage: any;\n scorerResults: Record<string, any>;\n target: Agent | Workflow;\n item: RunEvalsDataItem<any>;\n mastra: any;\n}): Promise<void> {\n const entityId = target.id;\n const entityType = isWorkflow(target) ? 'WORKFLOW' : 'AGENT';\n\n const isStructuredWorkflowResult = 'workflow' in scorerResults || 'steps' in scorerResults;\n const isStructuredAgentResult = 'agent' in scorerResults || 'trajectory' in scorerResults;\n\n if (!isStructuredWorkflowResult && !isStructuredAgentResult) {\n // Handle flat scorer results (simple array of scorers for agents or workflows)\n for (const [scorerId, scoreResult] of Object.entries(scorerResults)) {\n if (scoreResult && typeof scoreResult === 'object' && 'score' in scoreResult) {\n await saveSingleScore({\n storage,\n scoreResult,\n scorerId,\n entityId,\n entityType,\n mastra,\n target,\n item,\n });\n }\n }\n } else if (isStructuredAgentResult) {\n // Handle agent scorer config with agent-level and trajectory scorers\n if (scorerResults.agent) {\n for (const [scorerId, scoreResult] of Object.entries(scorerResults.agent)) {\n if (scoreResult && typeof scoreResult === 'object' && 'score' in scoreResult) {\n await saveSingleScore({\n storage,\n scoreResult,\n scorerId,\n entityId,\n entityType: 'AGENT',\n mastra,\n target,\n item,\n });\n }\n }\n }\n\n if (scorerResults.trajectory) {\n for (const [scorerId, scoreResult] of Object.entries(scorerResults.trajectory)) {\n if (scoreResult && typeof scoreResult === 'object' && 'score' in scoreResult) {\n await saveSingleScore({\n storage,\n scoreResult,\n scorerId,\n entityId,\n entityType: 'TRAJECTORY',\n mastra,\n target,\n item,\n });\n }\n }\n }\n } else {\n // Handle workflow scorer config with workflow and step scorers\n if (scorerResults.workflow) {\n for (const [scorerId, scoreResult] of Object.entries(scorerResults.workflow)) {\n if (scoreResult && typeof scoreResult === 'object' && 'score' in scoreResult) {\n await saveSingleScore({\n storage,\n scoreResult,\n scorerId,\n entityId,\n entityType: 'WORKFLOW',\n mastra,\n target,\n item,\n });\n }\n }\n }\n\n if (scorerResults.steps) {\n for (const [stepId, stepScorers] of Object.entries(scorerResults.steps)) {\n for (const [scorerId, scoreResult] of Object.entries(stepScorers as Record<string, any>)) {\n if (scoreResult && typeof scoreResult === 'object' && 'score' in scoreResult) {\n await saveSingleScore({\n storage,\n scoreResult,\n scorerId,\n entityId: stepId,\n entityType: 'STEP',\n mastra,\n target,\n item,\n });\n }\n }\n }\n }\n }\n}\n\n/**\n * Saves a single scorer result to storage\n */\nasync function saveSingleScore({\n storage,\n scoreResult,\n scorerId,\n entityId,\n entityType,\n mastra,\n target,\n item,\n}: {\n storage: any;\n scoreResult: any;\n scorerId: string;\n entityId: string;\n entityType: string;\n mastra: any;\n target: Agent | Workflow;\n item: RunEvalsDataItem<any>;\n}): Promise<void> {\n try {\n // Get scorer information\n let scorer = mastra?.getScorerById?.(scorerId);\n\n if (!scorer) {\n // Try to get from target's scorers\n const targetScorers = await (target as any).listScorers?.();\n if (targetScorers) {\n for (const [_, scorerEntry] of Object.entries(targetScorers)) {\n if ((scorerEntry as any).scorer?.id === scorerId) {\n scorer = (scorerEntry as any).scorer;\n break;\n }\n }\n }\n }\n\n // Extract tracing context if available\n let traceId: string | undefined;\n let spanId: string | undefined;\n if (item.tracingContext?.currentSpan && item.tracingContext.currentSpan.isValid) {\n spanId = item.tracingContext.currentSpan.id;\n traceId = item.tracingContext.currentSpan.traceId;\n }\n\n // Build additional context with groundTruth if available\n const additionalContext: Record<string, any> = {};\n if (item.groundTruth !== undefined) {\n additionalContext.groundTruth = item.groundTruth;\n }\n\n const payload = {\n ...scoreResult,\n scorerId,\n entityId,\n entityType,\n source: 'TEST' as const,\n scorer: {\n id: scorer?.id || scorerId,\n name: scorer?.name || scorerId,\n description: scorer?.description || '',\n type: scorer?.type || 'unknown',\n ...(scorer ? { hasJudge: !!scorer.judge } : {}),\n },\n entity: {\n id: target.id,\n name: (target as any).name || target.id,\n },\n // Include requestContext from item\n requestContext: item.requestContext ? Object.fromEntries(item.requestContext.entries()) : undefined,\n // Include additionalContext with groundTruth\n additionalContext: Object.keys(additionalContext).length > 0 ? additionalContext : undefined,\n // Include tracing information\n traceId,\n spanId,\n };\n\n // Legacy score-store emission. This path is being deprecated.\n await validateAndSaveScore(storage, payload);\n } catch (error) {\n // Log error but don't fail the evaluation\n mastra?.getLogger?.()?.warn?.(`Failed to save score for scorer ${scorerId}:`, error);\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/mastra/hooks.ts","../src/evals/run/scorerAccumulator.ts","../src/evals/run/index.ts"],"names":["EntityType","MastraError","pMap","saveScorePayloadSchema","Workflow","resolveObservabilityContext","isSupportedLanguageModel","extractTrajectoryFromTrace","extractTrajectory","extractWorkflowTrajectory"],"mappings":"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","file":"chunk-KDLCZTD3.cjs","sourcesContent":["import pMap from 'p-map';\nimport { ErrorCategory, ErrorDomain, MastraError } from '../error';\nimport { saveScorePayloadSchema } from '../evals';\nimport type { ScoringHookInput } from '../evals/types';\nimport type { Mastra } from '../mastra';\nimport { EntityType } from '../observability';\nimport type { MastraStorage } from '../storage';\n\nfunction toScorerTargetEntityType(entityType: string): EntityType | undefined {\n switch (entityType) {\n case 'AGENT':\n return EntityType.AGENT;\n case 'WORKFLOW':\n return EntityType.WORKFLOW_RUN;\n default:\n return undefined;\n }\n}\n\nexport function createOnScorerHook(mastra: Mastra) {\n return async (hookData: ScoringHookInput) => {\n const storage = mastra.getStorage();\n\n if (!storage) {\n mastra.getLogger()?.warn('Storage not found, skipping score validation and saving');\n return;\n }\n\n const entityId = hookData.entity.id as string;\n const entityType = hookData.entityType;\n const scorer = hookData.scorer;\n const scorerId = scorer.id as string;\n\n if (!scorerId) {\n mastra.getLogger()?.warn('Scorer ID not found, skipping score validation and saving');\n return;\n }\n\n try {\n const scorerToUse = await findScorer(mastra, entityId, entityType, scorerId);\n\n if (!scorerToUse) {\n throw new MastraError({\n id: 'MASTRA_SCORER_NOT_FOUND',\n domain: ErrorDomain.MASTRA,\n category: ErrorCategory.USER,\n text: `Scorer with ID ${scorerId} not found`,\n });\n }\n\n let input = hookData.input;\n let output = hookData.output;\n\n const { structuredOutput, ...rest } = hookData;\n\n const currentSpan = hookData.tracingContext?.currentSpan;\n const traceId = currentSpan?.isValid ? currentSpan.traceId : undefined;\n const spanId = currentSpan?.isValid ? currentSpan.id : undefined;\n const targetCorrelationContext = currentSpan?.isValid ? currentSpan.getCorrelationContext?.() : undefined;\n const targetMetadata = currentSpan?.isValid && currentSpan.metadata ? { ...currentSpan.metadata } : undefined;\n const runResult = (await scorerToUse.scorer.run({\n ...rest,\n input,\n output,\n scoreSource: 'live',\n targetScope: 'span',\n targetEntityType: toScorerTargetEntityType(entityType),\n targetTraceId: traceId,\n targetSpanId: spanId,\n targetCorrelationContext,\n targetMetadata,\n } as any)) as Record<string, unknown>;\n\n const payload = {\n ...rest,\n ...runResult,\n entityId,\n scorerId: scorerId,\n spanId,\n traceId,\n scorer: {\n ...rest.scorer,\n hasJudge: !!scorerToUse.scorer.judge,\n },\n metadata: {\n structuredOutput: !!structuredOutput,\n },\n };\n // Legacy score-store emission. This path is being deprecated.\n await validateAndSaveScore(storage, payload);\n\n if (currentSpan && spanId && traceId) {\n await pMap(\n currentSpan.observabilityInstance.getExporters(),\n async exporter => {\n if (exporter.addScoreToTrace) {\n try {\n await exporter.addScoreToTrace({\n traceId: traceId,\n spanId: spanId,\n score: runResult.score as number,\n reason: runResult.reason as string,\n scorerName: scorerToUse.scorer.id,\n metadata: {\n ...(currentSpan.metadata ?? {}),\n },\n });\n } catch (error) {\n // Log error but don't fail the hook if exporter fails\n mastra.getLogger()?.error(`Failed to add score to trace via exporter: ${error}`);\n }\n }\n },\n { concurrency: 3 },\n );\n }\n } catch (error) {\n const mastraError = new MastraError(\n {\n id: 'MASTRA_SCORER_FAILED_TO_RUN_HOOK',\n domain: ErrorDomain.SCORER,\n category: ErrorCategory.USER,\n details: {\n scorerId,\n entityId,\n entityType,\n },\n },\n error,\n );\n\n mastra.getLogger()?.trackException(mastraError);\n }\n };\n}\n\n/**\n * @deprecated Legacy scores-store path. New score emission should use `mastra.observability.addScore()`.\n */\nexport async function validateAndSaveScore(storage: MastraStorage, payload: unknown) {\n const scoresStore = await storage.getStore('scores');\n if (!scoresStore) {\n throw new MastraError({\n id: 'MASTRA_SCORES_STORAGE_NOT_AVAILABLE',\n domain: ErrorDomain.STORAGE,\n category: ErrorCategory.SYSTEM,\n text: 'Scores storage domain is not available',\n });\n }\n const payloadToSave = saveScorePayloadSchema.parse(payload);\n await scoresStore.saveScore(payloadToSave);\n}\n\nasync function findScorer(mastra: Mastra, entityId: string, entityType: string, scorerId: string) {\n let scorerToUse;\n if (entityType === 'AGENT') {\n // Try code-defined agents first\n try {\n const agent = mastra.getAgentById(entityId);\n const scorers = await agent.listScorers();\n for (const [_, scorer] of Object.entries(scorers)) {\n if (scorer.scorer.id === scorerId) {\n scorerToUse = scorer;\n break;\n }\n }\n } catch {\n // Agent not found in code-defined agents, try stored agents via editor\n try {\n const storedAgent = (await mastra.getEditor()?.agent.getById(entityId)) ?? null;\n if (storedAgent) {\n const scorers = await storedAgent.listScorers();\n for (const [_, scorer] of Object.entries(scorers) as [string, any][]) {\n if (scorer.scorer.id === scorerId) {\n scorerToUse = scorer;\n break;\n }\n }\n }\n } catch {\n // Stored agent also not found, will fall back to mastra-registered scorer\n }\n }\n } else if (entityType === 'WORKFLOW') {\n const scorers = await mastra.getWorkflowById(entityId).listScorers();\n for (const [_, scorer] of Object.entries(scorers)) {\n if (scorer.scorer.id === scorerId) {\n scorerToUse = scorer;\n break;\n }\n }\n }\n\n // Fallback to mastra-registered scorer\n if (!scorerToUse) {\n const mastraRegisteredScorer = mastra.getScorerById(scorerId);\n scorerToUse = mastraRegisteredScorer ? { scorer: mastraRegisteredScorer } : undefined;\n }\n\n return scorerToUse;\n}\n","export class ScoreAccumulator {\n private flatScores: Record<string, number[]> = {};\n private workflowScores: Record<string, number[]> = {};\n private stepScores: Record<string, Record<string, number[]>> = {};\n private agentScores: Record<string, number[]> = {};\n private trajectoryScores: Record<string, number[]> = {};\n\n addScores(scorerResults: Record<string, any>) {\n const isWorkflowScores = 'steps' in scorerResults || 'workflow' in scorerResults;\n const isAgentScores = 'agent' in scorerResults;\n const hasTrajectory = 'trajectory' in scorerResults;\n\n // Routing priority: workflow configs take precedence (they may also include\n // trajectory scores), then agent configs (agent or trajectory-only), then\n // flat scores for simple scorer arrays.\n if (isWorkflowScores) {\n this.addWorkflowScores(scorerResults);\n } else if (isAgentScores || hasTrajectory) {\n this.addAgentScores(scorerResults);\n } else {\n this.addFlatScores(scorerResults);\n }\n }\n\n private addFlatScores(scorerResults: Record<string, any>) {\n for (const [scorerName, result] of Object.entries(scorerResults)) {\n if (!this.flatScores[scorerName]) {\n this.flatScores[scorerName] = [];\n }\n this.flatScores[scorerName].push((result as { score: number }).score);\n }\n }\n\n private addWorkflowScores(scorerResults: Record<string, any>) {\n if ('workflow' in scorerResults && scorerResults.workflow) {\n for (const [scorerName, result] of Object.entries(scorerResults.workflow)) {\n if (!this.workflowScores[scorerName]) {\n this.workflowScores[scorerName] = [];\n }\n this.workflowScores[scorerName].push((result as { score: number }).score);\n }\n }\n\n if ('steps' in scorerResults && scorerResults.steps) {\n for (const [stepId, stepResults] of Object.entries(scorerResults.steps)) {\n if (!this.stepScores[stepId]) {\n this.stepScores[stepId] = {};\n }\n for (const [scorerName, result] of Object.entries(stepResults as Record<string, any>)) {\n if (!this.stepScores[stepId][scorerName]) {\n this.stepScores[stepId][scorerName] = [];\n }\n this.stepScores[stepId][scorerName].push((result as { score: number }).score);\n }\n }\n }\n\n // Trajectory scores can come from workflow scorer configs too\n if ('trajectory' in scorerResults && scorerResults.trajectory) {\n for (const [scorerName, result] of Object.entries(scorerResults.trajectory)) {\n if (!this.trajectoryScores[scorerName]) {\n this.trajectoryScores[scorerName] = [];\n }\n this.trajectoryScores[scorerName].push((result as { score: number }).score);\n }\n }\n }\n\n private addAgentScores(scorerResults: Record<string, any>) {\n if ('agent' in scorerResults && scorerResults.agent) {\n for (const [scorerName, result] of Object.entries(scorerResults.agent)) {\n if (!this.agentScores[scorerName]) {\n this.agentScores[scorerName] = [];\n }\n this.agentScores[scorerName].push((result as { score: number }).score);\n }\n }\n\n if ('trajectory' in scorerResults && scorerResults.trajectory) {\n for (const [scorerName, result] of Object.entries(scorerResults.trajectory)) {\n if (!this.trajectoryScores[scorerName]) {\n this.trajectoryScores[scorerName] = [];\n }\n this.trajectoryScores[scorerName].push((result as { score: number }).score);\n }\n }\n }\n\n addStepScores(stepScorerResults: Record<string, Record<string, any>>) {\n for (const [stepId, stepResults] of Object.entries(stepScorerResults)) {\n if (!this.stepScores[stepId]) {\n this.stepScores[stepId] = {};\n }\n for (const [scorerName, result] of Object.entries(stepResults)) {\n if (!this.stepScores[stepId][scorerName]) {\n this.stepScores[stepId][scorerName] = [];\n }\n this.stepScores[stepId][scorerName].push((result as { score: number }).score);\n }\n }\n }\n\n getAverageScores(): Record<string, any> {\n const result: Record<string, any> = {};\n\n for (const [scorerName, scoreArray] of Object.entries(this.flatScores)) {\n result[scorerName] = this.getAverageScore(scoreArray);\n }\n\n // Add workflow scores\n if (Object.keys(this.workflowScores).length > 0) {\n result.workflow = {};\n for (const [scorerName, scoreArray] of Object.entries(this.workflowScores)) {\n result.workflow[scorerName] = this.getAverageScore(scoreArray);\n }\n }\n\n if (Object.keys(this.stepScores).length > 0) {\n result.steps = {};\n for (const [stepId, stepScorers] of Object.entries(this.stepScores)) {\n result.steps[stepId] = {};\n for (const [scorerName, scoreArray] of Object.entries(stepScorers)) {\n result.steps[stepId][scorerName] = this.getAverageScore(scoreArray);\n }\n }\n }\n\n // Add agent scores\n if (Object.keys(this.agentScores).length > 0) {\n result.agent = {};\n for (const [scorerName, scoreArray] of Object.entries(this.agentScores)) {\n result.agent[scorerName] = this.getAverageScore(scoreArray);\n }\n }\n\n // Add trajectory scores\n if (Object.keys(this.trajectoryScores).length > 0) {\n result.trajectory = {};\n for (const [scorerName, scoreArray] of Object.entries(this.trajectoryScores)) {\n result.trajectory[scorerName] = this.getAverageScore(scoreArray);\n }\n }\n\n return result;\n }\n\n private getAverageScore(scoreArray: number[]): number {\n if (scoreArray.length > 0) {\n return scoreArray.reduce((a, b) => a + b, 0) / scoreArray.length;\n } else {\n return 0;\n }\n }\n}\n","import type { CoreMessage } from '@internal/ai-sdk-v4';\nimport type { Agent, AgentExecutionOptions, AiMessageType, UIMessageWithMetadata } from '../../agent';\nimport { isSupportedLanguageModel } from '../../agent';\nimport { MastraError } from '../../error';\nimport { validateAndSaveScore } from '../../mastra/hooks';\nimport type { ObservabilityContext } from '../../observability';\nimport { EntityType, resolveObservabilityContext } from '../../observability';\nimport type { RequestContext } from '../../request-context';\nimport type { MastraCompositeStore } from '../../storage';\nimport { Workflow } from '../../workflows';\nimport type { AnyWorkflow, WorkflowResult, WorkflowRunStartOptions, StepResult } from '../../workflows';\nimport type { MastraScorer } from '../base';\nimport { extractTrajectory, extractTrajectoryFromTrace, extractWorkflowTrajectory } from '../types';\nimport { ScoreAccumulator } from './scorerAccumulator';\n\ntype WorkflowRunOptions = WorkflowRunStartOptions & {\n initialState?: any;\n};\n\ntype RunEvalsDataItem<TTarget = unknown> = {\n input: TTarget extends Workflow<any, any>\n ? any\n : TTarget extends Agent\n ? string | string[] | CoreMessage[] | AiMessageType[] | UIMessageWithMetadata[]\n : unknown;\n groundTruth?: any;\n expectedTrajectory?: any;\n requestContext?: RequestContext;\n startOptions?: WorkflowRunOptions;\n} & Partial<ObservabilityContext>;\n\nexport type WorkflowScorerConfig = {\n /** Scorers that evaluate the overall workflow input/output */\n workflow?: MastraScorer<any, any, any, any>[];\n /** Scorers that evaluate individual workflow steps by step ID */\n steps?: Record<string, MastraScorer<any, any, any, any>[]>;\n /** Scorers that evaluate the workflow's step execution trajectory */\n trajectory?: MastraScorer<any, any, any, any>[];\n};\n\nexport type AgentScorerConfig = {\n /** Scorers that evaluate the full agent input/output */\n agent?: MastraScorer<any, any, any, any>[];\n /** Scorers that evaluate the agent's tool call trajectory */\n trajectory?: MastraScorer<any, any, any, any>[];\n};\n\ntype RunEvalsResult = {\n scores: Record<string, any>;\n summary: {\n totalItems: number;\n };\n};\n\n// Agent with scorers array\nexport function runEvals<TAgent extends Agent>(config: {\n data: RunEvalsDataItem<TAgent>[];\n scorers: MastraScorer<any, any, any, any>[];\n target: TAgent;\n targetOptions?: Omit<AgentExecutionOptions<any>, 'scorers' | 'returnScorerData' | 'requestContext'>;\n onItemComplete?: (params: {\n item: RunEvalsDataItem<TAgent>;\n targetResult: Awaited<ReturnType<Agent['generate']>>;\n scorerResults: Record<string, any>; // Flat structure: { scorerName: result }\n }) => void | Promise<void>;\n concurrency?: number;\n}): Promise<RunEvalsResult>;\n\n// Workflow with scorers array\nexport function runEvals<TWorkflow extends AnyWorkflow>(config: {\n data: RunEvalsDataItem<TWorkflow>[];\n scorers: MastraScorer<any, any, any, any>[];\n target: TWorkflow;\n targetOptions?: WorkflowRunOptions;\n onItemComplete?: (params: {\n item: RunEvalsDataItem<TWorkflow>;\n targetResult: WorkflowResult<any, any, any, any>;\n scorerResults: Record<string, any>; // Flat structure: { scorerName: result }\n }) => void | Promise<void>;\n concurrency?: number;\n}): Promise<RunEvalsResult>;\n\n// Workflow with workflow configuration\nexport function runEvals<TWorkflow extends AnyWorkflow>(config: {\n data: RunEvalsDataItem<TWorkflow>[];\n scorers: WorkflowScorerConfig;\n target: TWorkflow;\n targetOptions?: WorkflowRunOptions;\n onItemComplete?: (params: {\n item: RunEvalsDataItem<TWorkflow>;\n targetResult: WorkflowResult<any, any, any, any>;\n scorerResults: {\n workflow?: Record<string, any>;\n steps?: Record<string, Record<string, any>>;\n trajectory?: Record<string, any>;\n };\n }) => void | Promise<void>;\n concurrency?: number;\n}): Promise<RunEvalsResult>;\n\n// Agent with agent scorer configuration (agent-level + trajectory scorers)\nexport function runEvals<TAgent extends Agent>(config: {\n data: RunEvalsDataItem<TAgent>[];\n scorers: AgentScorerConfig;\n target: TAgent;\n targetOptions?: Omit<AgentExecutionOptions<any>, 'scorers' | 'returnScorerData' | 'requestContext'>;\n onItemComplete?: (params: {\n item: RunEvalsDataItem<TAgent>;\n targetResult: Awaited<ReturnType<Agent['generate']>>;\n scorerResults: {\n agent?: Record<string, any>;\n trajectory?: Record<string, any>;\n };\n }) => void | Promise<void>;\n concurrency?: number;\n}): Promise<RunEvalsResult>;\n\nexport async function runEvals(config: {\n data: RunEvalsDataItem<any>[];\n scorers: MastraScorer<any, any, any, any>[] | WorkflowScorerConfig | AgentScorerConfig;\n target: Agent | Workflow;\n targetOptions?:\n | Omit<AgentExecutionOptions<any>, 'scorers' | 'returnScorerData' | 'requestContext'>\n | WorkflowRunOptions;\n onItemComplete?: (params: {\n item: RunEvalsDataItem<any>;\n targetResult: any;\n scorerResults: any;\n }) => void | Promise<void>;\n concurrency?: number;\n}): Promise<RunEvalsResult> {\n const { data, scorers, target, targetOptions, onItemComplete, concurrency = 1 } = config;\n\n validateEvalsInputs(data, scorers, target);\n\n let totalItems = 0;\n const scoreAccumulator = new ScoreAccumulator();\n\n // Get storage from target's Mastra instance if available\n // Agent uses getMastraInstance(), Workflow uses .mastra getter\n const mastra = (target as any).getMastraInstance?.() || (target as any).mastra;\n const storage = mastra?.getStorage();\n\n const pMap = (await import('p-map')).default;\n await pMap(\n data,\n async (item: RunEvalsDataItem<any>) => {\n const targetResult = await executeTarget(target, item, targetOptions);\n const scorerResults = await runScorers(scorers, targetResult, item, storage);\n scoreAccumulator.addScores(scorerResults);\n\n // Save scores to storage if available\n if (storage) {\n await saveScoresToStorage({\n storage,\n scorerResults,\n target,\n item,\n mastra,\n });\n }\n\n if (onItemComplete) {\n await onItemComplete({\n item,\n targetResult: targetResult as any,\n scorerResults: scorerResults as any,\n });\n }\n\n totalItems++;\n },\n { concurrency },\n );\n\n return {\n scores: scoreAccumulator.getAverageScores(),\n summary: {\n totalItems,\n },\n };\n}\n\nfunction isWorkflow(target: Agent | Workflow): target is Workflow {\n return target instanceof Workflow;\n}\n\nfunction isWorkflowScorerConfig(scorers: any): scorers is WorkflowScorerConfig {\n return (\n typeof scorers === 'object' &&\n !Array.isArray(scorers) &&\n ('workflow' in scorers || 'steps' in scorers || ('trajectory' in scorers && !('agent' in scorers)))\n );\n}\n\nfunction isAgentScorerConfig(scorers: any): scorers is AgentScorerConfig {\n return (\n typeof scorers === 'object' &&\n !Array.isArray(scorers) &&\n ('agent' in scorers || ('trajectory' in scorers && !('workflow' in scorers) && !('steps' in scorers)))\n );\n}\n\nfunction validateEvalsInputs(\n data: RunEvalsDataItem<any>[],\n scorers: MastraScorer<any, any, any, any>[] | WorkflowScorerConfig | AgentScorerConfig,\n target: Agent | Workflow,\n): void {\n if (data.length === 0) {\n throw new MastraError({\n domain: 'SCORER',\n id: 'RUN_EXPERIMENT_FAILED_NO_DATA_PROVIDED',\n category: 'USER',\n text: 'Failed to run experiment: Data array is empty',\n });\n }\n\n for (let i = 0; i < data.length; i++) {\n const item = data[i];\n if (!item || typeof item !== 'object' || !('input' in item)) {\n throw new MastraError({\n domain: 'SCORER',\n id: 'INVALID_DATA_ITEM',\n category: 'USER',\n text: `Invalid data item at index ${i}: must have 'input' properties`,\n });\n }\n }\n\n // Validate scorers\n if (Array.isArray(scorers)) {\n if (scorers.length === 0) {\n throw new MastraError({\n domain: 'SCORER',\n id: 'NO_SCORERS_PROVIDED',\n category: 'USER',\n text: 'At least one scorer must be provided',\n });\n }\n } else if (isWorkflow(target) && isWorkflowScorerConfig(scorers)) {\n const hasScorers =\n (scorers.workflow && scorers.workflow.length > 0) ||\n (scorers.steps && Object.keys(scorers.steps).length > 0) ||\n (scorers.trajectory && scorers.trajectory.length > 0);\n\n if (!hasScorers) {\n throw new MastraError({\n domain: 'SCORER',\n id: 'NO_SCORERS_PROVIDED',\n category: 'USER',\n text: 'At least one workflow, step, or trajectory scorer must be provided',\n });\n }\n } else if (!isWorkflow(target) && isAgentScorerConfig(scorers)) {\n const hasScorers =\n (scorers.agent && scorers.agent.length > 0) || (scorers.trajectory && scorers.trajectory.length > 0);\n\n if (!hasScorers) {\n throw new MastraError({\n domain: 'SCORER',\n id: 'NO_SCORERS_PROVIDED',\n category: 'USER',\n text: 'At least one agent or trajectory scorer must be provided',\n });\n }\n } else if (!isWorkflow(target) && !Array.isArray(scorers) && !isAgentScorerConfig(scorers)) {\n throw new MastraError({\n domain: 'SCORER',\n id: 'INVALID_AGENT_SCORERS',\n category: 'USER',\n text: 'Agent scorers must be an array of scorers or an AgentScorerConfig',\n });\n }\n}\n\nasync function executeTarget(\n target: Agent | Workflow,\n item: RunEvalsDataItem<any>,\n targetOptions?:\n | Omit<AgentExecutionOptions<any>, 'scorers' | 'returnScorerData' | 'requestContext'>\n | WorkflowRunOptions,\n) {\n try {\n if (isWorkflow(target)) {\n return await executeWorkflow(target, item, targetOptions as WorkflowRunOptions);\n } else {\n return await executeAgent(\n target,\n item,\n targetOptions as Omit<AgentExecutionOptions<any>, 'scorers' | 'returnScorerData' | 'requestContext'>,\n );\n }\n } catch (error) {\n throw new MastraError(\n {\n domain: 'SCORER',\n id: 'RUN_EXPERIMENT_TARGET_FAILED_TO_GENERATE_RESULT',\n category: 'USER',\n text: 'Failed to run experiment: Error generating result from target',\n details: {\n item: JSON.stringify(item),\n },\n },\n error,\n );\n }\n}\n\nasync function executeWorkflow(target: Workflow, item: RunEvalsDataItem<any>, targetOptions?: WorkflowRunOptions) {\n const observabilityContext = resolveObservabilityContext(item);\n const run = await target.createRun({ disableScorers: true });\n const workflowResult = await run.start({\n ...targetOptions,\n ...item.startOptions,\n inputData: item.input,\n requestContext: item.requestContext,\n ...observabilityContext,\n });\n\n return {\n traceId: workflowResult.traceId,\n spanId: workflowResult.spanId,\n entityType: EntityType.WORKFLOW_RUN,\n scoringData: {\n input: item.input,\n output: workflowResult.status === 'success' ? workflowResult.result : undefined,\n stepResults: workflowResult.steps as Record<string, StepResult<any, any, any, any>>,\n stepExecutionPath: workflowResult.stepExecutionPath,\n },\n };\n}\n\nasync function executeAgent(\n agent: Agent,\n item: RunEvalsDataItem<any>,\n targetOptions?: Omit<AgentExecutionOptions<any>, 'scorers' | 'returnScorerData' | 'requestContext'>,\n) {\n const observabilityContext = resolveObservabilityContext(item);\n const model = await agent.getModel();\n if (isSupportedLanguageModel(model)) {\n const { structuredOutput, ...restOptions } = targetOptions ?? {};\n const baseOptions = {\n ...restOptions,\n ...observabilityContext,\n scorers: {},\n returnScorerData: true,\n requestContext: item.requestContext,\n };\n const result = structuredOutput\n ? await agent.generate(item.input, { ...baseOptions, structuredOutput })\n : await agent.generate(item.input, baseOptions);\n\n return {\n ...result,\n entityType: EntityType.AGENT,\n };\n } else {\n const result = await agent.generateLegacy(item.input, {\n scorers: {},\n returnScorerData: true,\n requestContext: item.requestContext,\n ...observabilityContext,\n });\n return {\n ...result,\n entityType: EntityType.AGENT,\n };\n }\n}\n\n/**\n * Attempts to extract a hierarchical trajectory from observability traces.\n * Falls back to undefined if storage is not available or trace cannot be fetched.\n */\nasync function extractTrajectoryFromTraceStore(\n storage: MastraCompositeStore | undefined,\n traceId: string | undefined,\n spanId: string | undefined,\n): Promise<ReturnType<typeof extractTrajectoryFromTrace> | undefined> {\n if (!storage || !traceId) return undefined;\n\n try {\n const observabilityStore = await storage.getStore('observability');\n if (!observabilityStore) return undefined;\n\n const trace = await observabilityStore.getTrace({ traceId });\n if (!trace?.spans?.length) return undefined;\n\n return extractTrajectoryFromTrace(trace.spans, spanId);\n } catch {\n // Trace-based extraction is best-effort; fall back to existing extraction\n return undefined;\n }\n}\n\n//TODO: Ideally this would run on trace data instead of targetResult data\nasync function runScorers(\n scorers: MastraScorer<any, any, any, any>[] | WorkflowScorerConfig | AgentScorerConfig,\n targetResult: any,\n item: RunEvalsDataItem<any>,\n storage?: MastraCompositeStore,\n): Promise<Record<string, any>> {\n const scorerResults: Record<string, any> = {};\n const targetTraceId = targetResult.traceId;\n const targetEntityType: EntityType = targetResult.entityType;\n\n if (Array.isArray(scorers)) {\n for (const scorer of scorers) {\n try {\n const score = await scorer.run({\n input: targetResult.scoringData?.input,\n output: targetResult.scoringData?.output,\n groundTruth: item.groundTruth,\n requestContext: item.requestContext,\n scoreSource: 'experiment',\n targetScope: 'span',\n targetEntityType,\n targetTraceId,\n targetSpanId: targetResult.spanId,\n });\n\n scorerResults[scorer.id] = score;\n } catch (error) {\n throw new MastraError(\n {\n domain: 'SCORER',\n id: 'RUN_EXPERIMENT_SCORER_FAILED_TO_SCORE_RESULT',\n category: 'USER',\n text: `Failed to run experiment: Error running scorer ${scorer.id}`,\n details: {\n scorerId: scorer.id,\n item: JSON.stringify(item),\n },\n },\n error,\n );\n }\n }\n } else if (isAgentScorerConfig(scorers)) {\n // Handle agent scorer config (agent-level + trajectory scorers)\n if (scorers.agent) {\n const agentScorerResults: Record<string, any> = {};\n for (const scorer of scorers.agent) {\n try {\n const score = await scorer.run({\n input: targetResult.scoringData?.input,\n output: targetResult.scoringData?.output,\n groundTruth: item.groundTruth,\n requestContext: item.requestContext,\n scoreSource: 'experiment',\n targetScope: 'span',\n targetEntityType,\n targetTraceId,\n targetSpanId: targetResult.spanId,\n });\n agentScorerResults[scorer.id] = score;\n } catch (error) {\n throw new MastraError(\n {\n domain: 'SCORER',\n id: 'RUN_EXPERIMENT_SCORER_FAILED_TO_SCORE_RESULT',\n category: 'USER',\n text: `Failed to run experiment: Error running agent scorer ${scorer.id}`,\n details: {\n scorerId: scorer.id,\n item: JSON.stringify(item),\n },\n },\n error,\n );\n }\n }\n if (Object.keys(agentScorerResults).length > 0) {\n scorerResults.agent = agentScorerResults;\n }\n }\n\n if (scorers.trajectory) {\n const trajectoryScorerResults: Record<string, any> = {};\n\n // Prefer hierarchical trace-based extraction when storage + traceId are available\n const traceTrajectory = await extractTrajectoryFromTraceStore(storage, targetResult.traceId, targetResult.spanId);\n\n // Fall back to flat extraction from MastraDBMessage[] tool invocations\n const rawOutput = targetResult.scoringData?.output;\n const trajectory = traceTrajectory ?? (rawOutput ? extractTrajectory(rawOutput) : { steps: [] });\n\n for (const scorer of scorers.trajectory) {\n try {\n const score = await scorer.run({\n input: targetResult.scoringData?.input,\n output: trajectory,\n groundTruth: item.groundTruth,\n expectedTrajectory: item.expectedTrajectory,\n requestContext: item.requestContext,\n scoreSource: 'experiment',\n targetScope: 'trajectory',\n targetEntityType,\n targetTraceId,\n targetSpanId: targetResult.spanId,\n });\n trajectoryScorerResults[scorer.id] = score;\n } catch (error) {\n throw new MastraError(\n {\n domain: 'SCORER',\n id: 'RUN_EXPERIMENT_SCORER_FAILED_TO_SCORE_TRAJECTORY',\n category: 'USER',\n text: `Failed to run experiment: Error running trajectory scorer ${scorer.id}`,\n details: {\n scorerId: scorer.id,\n item: JSON.stringify(item),\n },\n },\n error,\n );\n }\n }\n if (Object.keys(trajectoryScorerResults).length > 0) {\n scorerResults.trajectory = trajectoryScorerResults;\n }\n }\n } else {\n // Handle workflow scorer config\n if (scorers.workflow) {\n const workflowScorerResults: Record<string, any> = {};\n for (const scorer of scorers.workflow) {\n const score = await scorer.run({\n input: targetResult.scoringData.input,\n output: targetResult.scoringData.output,\n groundTruth: item.groundTruth,\n requestContext: item.requestContext,\n scoreSource: 'experiment',\n targetScope: 'span',\n targetEntityType,\n targetTraceId,\n targetSpanId: targetResult.spanId,\n });\n workflowScorerResults[scorer.id] = score;\n }\n if (Object.keys(workflowScorerResults).length > 0) {\n scorerResults.workflow = workflowScorerResults;\n }\n }\n\n if (scorers.steps) {\n const stepScorerResults: Record<string, any> = {};\n for (const [stepId, stepScorers] of Object.entries(scorers.steps)) {\n const stepResult = targetResult.scoringData.stepResults?.[stepId];\n // TODO : Ideally this would run on the trace.WORKFLOW_STEP span...\n // then we could directly add the score to that span\n if (stepResult?.status === 'success' && stepResult.output !== undefined) {\n const stepResults: Record<string, any> = {};\n for (const scorer of stepScorers) {\n try {\n const score = await scorer.run({\n input: stepResult.payload !== undefined ? stepResult.payload : targetResult.scoringData.input,\n output: stepResult.output,\n groundTruth: item.groundTruth,\n requestContext: item.requestContext,\n scoreSource: 'experiment',\n targetScope: 'span',\n targetEntityType: EntityType.WORKFLOW_STEP,\n targetTraceId,\n });\n stepResults[scorer.id] = score;\n } catch (error) {\n throw new MastraError(\n {\n domain: 'SCORER',\n id: 'RUN_EXPERIMENT_SCORER_FAILED_TO_SCORE_STEP_RESULT',\n category: 'USER',\n text: `Failed to run experiment: Error running scorer ${scorer.id} on step ${stepId}`,\n details: {\n scorerId: scorer.id,\n stepId,\n },\n },\n error,\n );\n }\n }\n if (Object.keys(stepResults).length > 0) {\n stepScorerResults[stepId] = stepResults;\n }\n }\n }\n if (Object.keys(stepScorerResults).length > 0) {\n scorerResults.steps = stepScorerResults;\n }\n }\n\n if (scorers.trajectory) {\n const trajectoryScorerResults: Record<string, any> = {};\n\n // Prefer hierarchical trace-based extraction when storage + traceId are available\n const traceTrajectory = await extractTrajectoryFromTraceStore(storage, targetResult.traceId, targetResult.spanId);\n\n // Fall back to flat extraction from step results\n let trajectory = traceTrajectory;\n if (!trajectory) {\n const stepResults = targetResult.scoringData?.stepResults;\n const stepExecutionPath = targetResult.scoringData?.stepExecutionPath;\n trajectory = stepResults ? extractWorkflowTrajectory(stepResults, stepExecutionPath) : { steps: [] };\n }\n\n for (const scorer of scorers.trajectory) {\n try {\n const score = await scorer.run({\n input: targetResult.scoringData?.input,\n output: trajectory,\n groundTruth: item.groundTruth,\n expectedTrajectory: item.expectedTrajectory,\n requestContext: item.requestContext,\n scoreSource: 'experiment',\n targetScope: 'trajectory',\n targetEntityType: EntityType.TRAJECTORY,\n targetTraceId,\n targetSpanId: targetResult.spanId,\n });\n trajectoryScorerResults[scorer.id] = score;\n } catch (error) {\n throw new MastraError(\n {\n domain: 'SCORER',\n id: 'RUN_EXPERIMENT_SCORER_FAILED_TO_SCORE_WORKFLOW_TRAJECTORY',\n category: 'USER',\n text: `Failed to run experiment: Error running workflow trajectory scorer ${scorer.id}`,\n details: {\n scorerId: scorer.id,\n item: JSON.stringify(item),\n },\n },\n error,\n );\n }\n }\n if (Object.keys(trajectoryScorerResults).length > 0) {\n scorerResults.trajectory = trajectoryScorerResults;\n }\n }\n }\n\n return scorerResults;\n}\n\n/**\n * Saves scorer results to storage when running evaluations.\n * This makes scores visible in Studio's observability section.\n *\n * @deprecated Legacy scores-store path. New score emission should use `mastra.observability.addScore().\n */\nasync function saveScoresToStorage({\n storage,\n scorerResults,\n target,\n item,\n mastra,\n}: {\n storage: any;\n scorerResults: Record<string, any>;\n target: Agent | Workflow;\n item: RunEvalsDataItem<any>;\n mastra: any;\n}): Promise<void> {\n const entityId = target.id;\n const entityType = isWorkflow(target) ? 'WORKFLOW' : 'AGENT';\n\n const isStructuredWorkflowResult = 'workflow' in scorerResults || 'steps' in scorerResults;\n const isStructuredAgentResult = 'agent' in scorerResults || 'trajectory' in scorerResults;\n\n if (!isStructuredWorkflowResult && !isStructuredAgentResult) {\n // Handle flat scorer results (simple array of scorers for agents or workflows)\n for (const [scorerId, scoreResult] of Object.entries(scorerResults)) {\n if (scoreResult && typeof scoreResult === 'object' && 'score' in scoreResult) {\n await saveSingleScore({\n storage,\n scoreResult,\n scorerId,\n entityId,\n entityType,\n mastra,\n target,\n item,\n });\n }\n }\n } else if (isStructuredAgentResult) {\n // Handle agent scorer config with agent-level and trajectory scorers\n if (scorerResults.agent) {\n for (const [scorerId, scoreResult] of Object.entries(scorerResults.agent)) {\n if (scoreResult && typeof scoreResult === 'object' && 'score' in scoreResult) {\n await saveSingleScore({\n storage,\n scoreResult,\n scorerId,\n entityId,\n entityType: 'AGENT',\n mastra,\n target,\n item,\n });\n }\n }\n }\n\n if (scorerResults.trajectory) {\n for (const [scorerId, scoreResult] of Object.entries(scorerResults.trajectory)) {\n if (scoreResult && typeof scoreResult === 'object' && 'score' in scoreResult) {\n await saveSingleScore({\n storage,\n scoreResult,\n scorerId,\n entityId,\n entityType: 'TRAJECTORY',\n mastra,\n target,\n item,\n });\n }\n }\n }\n } else {\n // Handle workflow scorer config with workflow and step scorers\n if (scorerResults.workflow) {\n for (const [scorerId, scoreResult] of Object.entries(scorerResults.workflow)) {\n if (scoreResult && typeof scoreResult === 'object' && 'score' in scoreResult) {\n await saveSingleScore({\n storage,\n scoreResult,\n scorerId,\n entityId,\n entityType: 'WORKFLOW',\n mastra,\n target,\n item,\n });\n }\n }\n }\n\n if (scorerResults.steps) {\n for (const [stepId, stepScorers] of Object.entries(scorerResults.steps)) {\n for (const [scorerId, scoreResult] of Object.entries(stepScorers as Record<string, any>)) {\n if (scoreResult && typeof scoreResult === 'object' && 'score' in scoreResult) {\n await saveSingleScore({\n storage,\n scoreResult,\n scorerId,\n entityId: stepId,\n entityType: 'STEP',\n mastra,\n target,\n item,\n });\n }\n }\n }\n }\n }\n}\n\n/**\n * Saves a single scorer result to storage\n */\nasync function saveSingleScore({\n storage,\n scoreResult,\n scorerId,\n entityId,\n entityType,\n mastra,\n target,\n item,\n}: {\n storage: any;\n scoreResult: any;\n scorerId: string;\n entityId: string;\n entityType: string;\n mastra: any;\n target: Agent | Workflow;\n item: RunEvalsDataItem<any>;\n}): Promise<void> {\n try {\n // Get scorer information\n let scorer = mastra?.getScorerById?.(scorerId);\n\n if (!scorer) {\n // Try to get from target's scorers\n const targetScorers = await (target as any).listScorers?.();\n if (targetScorers) {\n for (const [_, scorerEntry] of Object.entries(targetScorers)) {\n if ((scorerEntry as any).scorer?.id === scorerId) {\n scorer = (scorerEntry as any).scorer;\n break;\n }\n }\n }\n }\n\n // Extract tracing context if available\n let traceId: string | undefined;\n let spanId: string | undefined;\n if (item.tracingContext?.currentSpan && item.tracingContext.currentSpan.isValid) {\n spanId = item.tracingContext.currentSpan.id;\n traceId = item.tracingContext.currentSpan.traceId;\n }\n\n // Build additional context with groundTruth if available\n const additionalContext: Record<string, any> = {};\n if (item.groundTruth !== undefined) {\n additionalContext.groundTruth = item.groundTruth;\n }\n\n const payload = {\n ...scoreResult,\n scorerId,\n entityId,\n entityType,\n source: 'TEST' as const,\n scorer: {\n id: scorer?.id || scorerId,\n name: scorer?.name || scorerId,\n description: scorer?.description || '',\n type: scorer?.type || 'unknown',\n ...(scorer ? { hasJudge: !!scorer.judge } : {}),\n },\n entity: {\n id: target.id,\n name: (target as any).name || target.id,\n },\n // Include requestContext from item\n requestContext: item.requestContext ? Object.fromEntries(item.requestContext.entries()) : undefined,\n // Include additionalContext with groundTruth\n additionalContext: Object.keys(additionalContext).length > 0 ? additionalContext : undefined,\n // Include tracing information\n traceId,\n spanId,\n };\n\n // Legacy score-store emission. This path is being deprecated.\n await validateAndSaveScore(storage, payload);\n } catch (error) {\n // Log error but don't fail the evaluation\n mastra?.getLogger?.()?.warn?.(`Failed to save score for scorer ${scorerId}:`, error);\n }\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var chunkB2FQ6L2I_cjs = require('./chunk-B2FQ6L2I.cjs');
4
- var chunkSYH64AGV_cjs = require('./chunk-SYH64AGV.cjs');
3
+ var chunkKDLCZTD3_cjs = require('./chunk-KDLCZTD3.cjs');
4
+ var chunkV7H57YBW_cjs = require('./chunk-V7H57YBW.cjs');
5
5
  var chunkL56725IW_cjs = require('./chunk-L56725IW.cjs');
6
6
  var chunk5WBEMKE2_cjs = require('./chunk-5WBEMKE2.cjs');
7
7
  var chunk4U7ZLI36_cjs = require('./chunk-4U7ZLI36.cjs');
@@ -98,7 +98,7 @@ async function executeAgent(agent, item, signal, requestContext) {
98
98
  const model = await agent.getModel();
99
99
  const input = item.input;
100
100
  const reqCtx = requestContext ? new chunk5WBEMKE2_cjs.RequestContext(Object.entries(requestContext)) : void 0;
101
- const rawResult = chunkSYH64AGV_cjs.isSupportedLanguageModel(model) ? await agent.generate(input, {
101
+ const rawResult = chunkV7H57YBW_cjs.isSupportedLanguageModel(model) ? await agent.generate(input, {
102
102
  scorers: {},
103
103
  returnScorerData: true,
104
104
  abortSignal: signal,
@@ -214,7 +214,7 @@ async function runScorersForItem(scorers, item, output, storage, runId, targetTy
214
214
  );
215
215
  if (storage && result.score !== null) {
216
216
  try {
217
- await chunkB2FQ6L2I_cjs.validateAndSaveScore(storage, {
217
+ await chunkKDLCZTD3_cjs.validateAndSaveScore(storage, {
218
218
  scorerId: scorer.id,
219
219
  score: result.score,
220
220
  reason: result.reason ?? void 0,
@@ -1371,5 +1371,5 @@ exports.isRegression = isRegression;
1371
1371
  exports.resolveScorers = resolveScorers;
1372
1372
  exports.runExperiment = runExperiment;
1373
1373
  exports.runScorersForItem = runScorersForItem;
1374
- //# sourceMappingURL=chunk-L73KZFX6.cjs.map
1375
- //# sourceMappingURL=chunk-L73KZFX6.cjs.map
1374
+ //# sourceMappingURL=chunk-MJJVDIL7.cjs.map
1375
+ //# sourceMappingURL=chunk-MJJVDIL7.cjs.map