@mastra/core 1.7.0 → 1.8.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 (498) hide show
  1. package/CHANGELOG.md +218 -0
  2. package/dist/agent/agent-legacy.d.ts +15 -0
  3. package/dist/agent/agent-legacy.d.ts.map +1 -1
  4. package/dist/agent/agent.d.ts +7 -0
  5. package/dist/agent/agent.d.ts.map +1 -1
  6. package/dist/agent/agent.types.d.ts +311 -2
  7. package/dist/agent/agent.types.d.ts.map +1 -1
  8. package/dist/agent/index.cjs +13 -13
  9. package/dist/agent/index.d.ts +3 -1
  10. package/dist/agent/index.d.ts.map +1 -1
  11. package/dist/agent/index.js +2 -2
  12. package/dist/agent/message-list/index.cjs +18 -18
  13. package/dist/agent/message-list/index.js +1 -1
  14. package/dist/agent/message-list/merge/MessageMerger.d.ts.map +1 -1
  15. package/dist/agent/message-list/message-list.d.ts.map +1 -1
  16. package/dist/agent/workflows/prepare-stream/map-results-step.d.ts.map +1 -1
  17. package/dist/agent/workflows/prepare-stream/prepare-tools-step.d.ts.map +1 -1
  18. package/dist/{chunk-A72NTLFT.cjs → chunk-2IO5Q7OZ.cjs} +7 -7
  19. package/dist/{chunk-A72NTLFT.cjs.map → chunk-2IO5Q7OZ.cjs.map} +1 -1
  20. package/dist/{chunk-DFCRXDVK.js → chunk-2KHPZJNU.js} +10 -8
  21. package/dist/chunk-2KHPZJNU.js.map +1 -0
  22. package/dist/{chunk-R4N65TLG.js → chunk-2R5MQMSA.js} +35 -16
  23. package/dist/chunk-2R5MQMSA.js.map +1 -0
  24. package/dist/{chunk-ZSBM2SVU.js → chunk-4H5F6AFP.js} +1064 -226
  25. package/dist/chunk-4H5F6AFP.js.map +1 -0
  26. package/dist/{chunk-BQHWJLXU.js → chunk-63G75DJE.js} +9 -3
  27. package/dist/chunk-63G75DJE.js.map +1 -0
  28. package/dist/{chunk-SBOHDNIZ.cjs → chunk-6GSWC5ZA.cjs} +2 -2
  29. package/dist/{chunk-SBOHDNIZ.cjs.map → chunk-6GSWC5ZA.cjs.map} +1 -1
  30. package/dist/{chunk-QTAS3HND.cjs → chunk-6Q2UD3XF.cjs} +21 -14
  31. package/dist/chunk-6Q2UD3XF.cjs.map +1 -0
  32. package/dist/{chunk-GPJGPARM.js → chunk-DTPR3JAM.js} +2 -2
  33. package/dist/{chunk-GPJGPARM.js.map → chunk-DTPR3JAM.js.map} +1 -1
  34. package/dist/{chunk-NN26FSKL.js → chunk-FHJ2KIU5.js} +3 -3
  35. package/dist/{chunk-NN26FSKL.js.map → chunk-FHJ2KIU5.js.map} +1 -1
  36. package/dist/{chunk-RABITNTG.cjs → chunk-HWG7NPJA.cjs} +55 -55
  37. package/dist/{chunk-RABITNTG.cjs.map → chunk-HWG7NPJA.cjs.map} +1 -1
  38. package/dist/{chunk-HB6T4554.cjs → chunk-KH3G65IS.cjs} +10 -8
  39. package/dist/chunk-KH3G65IS.cjs.map +1 -0
  40. package/dist/{chunk-YQG7NBPR.cjs → chunk-KZ4IKNPN.cjs} +25 -23
  41. package/dist/chunk-KZ4IKNPN.cjs.map +1 -0
  42. package/dist/{chunk-6DUTLERJ.js → chunk-MRV5NCPC.js} +3 -3
  43. package/dist/{chunk-6DUTLERJ.js.map → chunk-MRV5NCPC.js.map} +1 -1
  44. package/dist/{chunk-O7PZ4VOO.cjs → chunk-N3ROEJG4.cjs} +12 -10
  45. package/dist/chunk-N3ROEJG4.cjs.map +1 -0
  46. package/dist/{chunk-7EXW4AAG.js → chunk-NXKI2L4X.js} +6 -4
  47. package/dist/chunk-NXKI2L4X.js.map +1 -0
  48. package/dist/{chunk-QWTB53GS.js → chunk-OSEPGSLN.js} +6 -6
  49. package/dist/{chunk-QWTB53GS.js.map → chunk-OSEPGSLN.js.map} +1 -1
  50. package/dist/{chunk-6OXW5E2O.js → chunk-PI7ONENO.js} +4 -4
  51. package/dist/{chunk-6OXW5E2O.js.map → chunk-PI7ONENO.js.map} +1 -1
  52. package/dist/{chunk-KUXNBWN7.js → chunk-Q4MV4XKX.js} +8 -6
  53. package/dist/chunk-Q4MV4XKX.js.map +1 -0
  54. package/dist/{chunk-7UAJ6LMR.cjs → chunk-QKQGKEN7.cjs} +1078 -241
  55. package/dist/chunk-QKQGKEN7.cjs.map +1 -0
  56. package/dist/{chunk-IC5OUWKJ.js → chunk-SP7P6Z4L.js} +19 -2
  57. package/dist/chunk-SP7P6Z4L.js.map +1 -0
  58. package/dist/{chunk-QDH6MVJ7.cjs → chunk-TGUDI64A.cjs} +14 -14
  59. package/dist/{chunk-QDH6MVJ7.cjs.map → chunk-TGUDI64A.cjs.map} +1 -1
  60. package/dist/{chunk-EAZ6YDCQ.cjs → chunk-U3HBG2GU.cjs} +9 -2
  61. package/dist/chunk-U3HBG2GU.cjs.map +1 -0
  62. package/dist/{chunk-6QBN6MZY.cjs → chunk-VAKB5EXJ.cjs} +42 -23
  63. package/dist/chunk-VAKB5EXJ.cjs.map +1 -0
  64. package/dist/{chunk-QSHV7GPT.js → chunk-VBPU6CLZ.js} +3808 -3026
  65. package/dist/chunk-VBPU6CLZ.js.map +1 -0
  66. package/dist/{chunk-2X66GWF5.cjs → chunk-VTVCMIAI.cjs} +3905 -3121
  67. package/dist/chunk-VTVCMIAI.cjs.map +1 -0
  68. package/dist/{chunk-PHHJLGZU.cjs → chunk-XNWF6CYR.cjs} +6 -6
  69. package/dist/{chunk-PHHJLGZU.cjs.map → chunk-XNWF6CYR.cjs.map} +1 -1
  70. package/dist/{chunk-T6GAM3SQ.js → chunk-ZRPTWYWJ.js} +18 -11
  71. package/dist/chunk-ZRPTWYWJ.js.map +1 -0
  72. package/dist/{chunk-DB7U2C5B.cjs → chunk-ZXOWG32X.cjs} +19 -2
  73. package/dist/chunk-ZXOWG32X.cjs.map +1 -0
  74. package/dist/datasets/experiment/index.d.ts.map +1 -1
  75. package/dist/datasets/experiment/scorer.d.ts +1 -1
  76. package/dist/datasets/experiment/scorer.d.ts.map +1 -1
  77. package/dist/datasets/index.cjs +17 -17
  78. package/dist/datasets/index.js +2 -2
  79. package/dist/docs/SKILL.md +300 -0
  80. package/dist/docs/assets/SOURCE_MAP.json +1423 -0
  81. package/dist/docs/references/docs-agents-adding-voice.md +349 -0
  82. package/dist/docs/references/docs-agents-agent-approval.md +558 -0
  83. package/dist/docs/references/docs-agents-agent-memory.md +209 -0
  84. package/dist/docs/references/docs-agents-guardrails.md +374 -0
  85. package/dist/docs/references/docs-agents-network-approval.md +275 -0
  86. package/dist/docs/references/docs-agents-networks.md +299 -0
  87. package/dist/docs/references/docs-agents-overview.md +304 -0
  88. package/dist/docs/references/docs-agents-processors.md +622 -0
  89. package/dist/docs/references/docs-agents-structured-output.md +273 -0
  90. package/dist/docs/references/docs-agents-supervisor-agents.md +304 -0
  91. package/dist/docs/references/docs-agents-using-tools.md +214 -0
  92. package/dist/docs/references/docs-evals-custom-scorers.md +519 -0
  93. package/dist/docs/references/docs-evals-overview.md +141 -0
  94. package/dist/docs/references/docs-evals-running-in-ci.md +124 -0
  95. package/dist/docs/references/docs-memory-memory-processors.md +314 -0
  96. package/dist/docs/references/docs-memory-observational-memory.md +248 -0
  97. package/dist/docs/references/docs-memory-overview.md +45 -0
  98. package/dist/docs/references/docs-memory-semantic-recall.md +272 -0
  99. package/dist/docs/references/docs-memory-storage.md +261 -0
  100. package/dist/docs/references/docs-memory-working-memory.md +400 -0
  101. package/dist/docs/references/docs-observability-datasets-overview.md +198 -0
  102. package/dist/docs/references/docs-observability-datasets-running-experiments.md +274 -0
  103. package/dist/docs/references/docs-observability-logging.md +99 -0
  104. package/dist/docs/references/docs-observability-overview.md +70 -0
  105. package/dist/docs/references/docs-observability-tracing-bridges-otel.md +209 -0
  106. package/dist/docs/references/docs-observability-tracing-exporters-arize.md +272 -0
  107. package/dist/docs/references/docs-observability-tracing-exporters-braintrust.md +111 -0
  108. package/dist/docs/references/docs-observability-tracing-exporters-cloud.md +127 -0
  109. package/dist/docs/references/docs-observability-tracing-exporters-datadog.md +187 -0
  110. package/dist/docs/references/docs-observability-tracing-exporters-default.md +209 -0
  111. package/dist/docs/references/docs-observability-tracing-exporters-laminar.md +100 -0
  112. package/dist/docs/references/docs-observability-tracing-exporters-langfuse.md +213 -0
  113. package/dist/docs/references/docs-observability-tracing-exporters-langsmith.md +198 -0
  114. package/dist/docs/references/docs-observability-tracing-exporters-otel.md +476 -0
  115. package/dist/docs/references/docs-observability-tracing-exporters-posthog.md +148 -0
  116. package/dist/docs/references/docs-observability-tracing-overview.md +1112 -0
  117. package/dist/docs/references/docs-rag-chunking-and-embedding.md +183 -0
  118. package/dist/docs/references/docs-rag-graph-rag.md +215 -0
  119. package/dist/docs/references/docs-rag-overview.md +72 -0
  120. package/dist/docs/references/docs-rag-retrieval.md +515 -0
  121. package/dist/docs/references/docs-rag-vector-databases.md +645 -0
  122. package/dist/docs/references/docs-server-auth-auth0.md +220 -0
  123. package/dist/docs/references/docs-server-auth-clerk.md +132 -0
  124. package/dist/docs/references/docs-server-auth-composite-auth.md +234 -0
  125. package/dist/docs/references/docs-server-auth-custom-auth-provider.md +513 -0
  126. package/dist/docs/references/docs-server-auth-firebase.md +272 -0
  127. package/dist/docs/references/docs-server-auth-jwt.md +110 -0
  128. package/dist/docs/references/docs-server-auth-simple-auth.md +180 -0
  129. package/dist/docs/references/docs-server-auth-supabase.md +117 -0
  130. package/dist/docs/references/docs-server-auth-workos.md +186 -0
  131. package/dist/docs/references/docs-server-custom-adapters.md +378 -0
  132. package/dist/docs/references/docs-server-custom-api-routes.md +267 -0
  133. package/dist/docs/references/docs-server-mastra-client.md +243 -0
  134. package/dist/docs/references/docs-server-mastra-server.md +71 -0
  135. package/dist/docs/references/docs-server-middleware.md +225 -0
  136. package/dist/docs/references/docs-server-request-context.md +471 -0
  137. package/dist/docs/references/docs-streaming-events.md +237 -0
  138. package/dist/docs/references/docs-streaming-tool-streaming.md +175 -0
  139. package/dist/docs/references/docs-streaming-workflow-streaming.md +109 -0
  140. package/dist/docs/references/docs-voice-overview.md +959 -0
  141. package/dist/docs/references/docs-voice-speech-to-speech.md +102 -0
  142. package/dist/docs/references/docs-voice-speech-to-text.md +79 -0
  143. package/dist/docs/references/docs-voice-text-to-speech.md +83 -0
  144. package/dist/docs/references/docs-workflows-agents-and-tools.md +166 -0
  145. package/dist/docs/references/docs-workflows-control-flow.md +822 -0
  146. package/dist/docs/references/docs-workflows-error-handling.md +360 -0
  147. package/dist/docs/references/docs-workflows-human-in-the-loop.md +215 -0
  148. package/dist/docs/references/docs-workflows-overview.md +370 -0
  149. package/dist/docs/references/docs-workflows-snapshots.md +238 -0
  150. package/dist/docs/references/docs-workflows-suspend-and-resume.md +205 -0
  151. package/dist/docs/references/docs-workflows-time-travel.md +309 -0
  152. package/dist/docs/references/docs-workflows-workflow-state.md +181 -0
  153. package/dist/docs/references/docs-workspace-filesystem.md +164 -0
  154. package/dist/docs/references/docs-workspace-overview.md +239 -0
  155. package/dist/docs/references/docs-workspace-sandbox.md +63 -0
  156. package/dist/docs/references/docs-workspace-search.md +243 -0
  157. package/dist/docs/references/docs-workspace-skills.md +169 -0
  158. package/dist/docs/references/guides-agent-frameworks-ai-sdk.md +140 -0
  159. package/dist/docs/references/reference-agents-agent.md +141 -0
  160. package/dist/docs/references/reference-agents-generate.md +186 -0
  161. package/dist/docs/references/reference-agents-generateLegacy.md +173 -0
  162. package/dist/docs/references/reference-agents-getDefaultGenerateOptions.md +36 -0
  163. package/dist/docs/references/reference-agents-getDefaultOptions.md +34 -0
  164. package/dist/docs/references/reference-agents-getDefaultStreamOptions.md +36 -0
  165. package/dist/docs/references/reference-agents-getDescription.md +21 -0
  166. package/dist/docs/references/reference-agents-getInstructions.md +34 -0
  167. package/dist/docs/references/reference-agents-getLLM.md +37 -0
  168. package/dist/docs/references/reference-agents-getMemory.md +34 -0
  169. package/dist/docs/references/reference-agents-getModel.md +34 -0
  170. package/dist/docs/references/reference-agents-getTools.md +29 -0
  171. package/dist/docs/references/reference-agents-getVoice.md +34 -0
  172. package/dist/docs/references/reference-agents-listAgents.md +35 -0
  173. package/dist/docs/references/reference-agents-listScorers.md +34 -0
  174. package/dist/docs/references/reference-agents-listTools.md +34 -0
  175. package/dist/docs/references/reference-agents-listWorkflows.md +34 -0
  176. package/dist/docs/references/reference-agents-network.md +133 -0
  177. package/dist/docs/references/reference-ai-sdk-chat-route.md +82 -0
  178. package/dist/docs/references/reference-ai-sdk-network-route.md +74 -0
  179. package/dist/docs/references/reference-ai-sdk-to-ai-sdk-stream.md +231 -0
  180. package/dist/docs/references/reference-ai-sdk-with-mastra.md +59 -0
  181. package/dist/docs/references/reference-ai-sdk-workflow-route.md +79 -0
  182. package/dist/docs/references/reference-auth-auth0.md +73 -0
  183. package/dist/docs/references/reference-auth-clerk.md +36 -0
  184. package/dist/docs/references/reference-auth-firebase.md +80 -0
  185. package/dist/docs/references/reference-auth-jwt.md +26 -0
  186. package/dist/docs/references/reference-auth-supabase.md +33 -0
  187. package/dist/docs/references/reference-auth-workos.md +84 -0
  188. package/dist/docs/references/reference-client-js-agents.md +437 -0
  189. package/dist/docs/references/reference-configuration.md +752 -0
  190. package/dist/docs/references/reference-core-addGateway.md +42 -0
  191. package/dist/docs/references/reference-core-getAgent.md +21 -0
  192. package/dist/docs/references/reference-core-getAgentById.md +21 -0
  193. package/dist/docs/references/reference-core-getDeployer.md +22 -0
  194. package/dist/docs/references/reference-core-getGateway.md +38 -0
  195. package/dist/docs/references/reference-core-getGatewayById.md +41 -0
  196. package/dist/docs/references/reference-core-getLogger.md +22 -0
  197. package/dist/docs/references/reference-core-getMCPServer.md +47 -0
  198. package/dist/docs/references/reference-core-getMCPServerById.md +55 -0
  199. package/dist/docs/references/reference-core-getMemory.md +50 -0
  200. package/dist/docs/references/reference-core-getScorer.md +54 -0
  201. package/dist/docs/references/reference-core-getScorerById.md +54 -0
  202. package/dist/docs/references/reference-core-getServer.md +22 -0
  203. package/dist/docs/references/reference-core-getStorage.md +22 -0
  204. package/dist/docs/references/reference-core-getStoredAgentById.md +89 -0
  205. package/dist/docs/references/reference-core-getTelemetry.md +22 -0
  206. package/dist/docs/references/reference-core-getVector.md +22 -0
  207. package/dist/docs/references/reference-core-getWorkflow.md +42 -0
  208. package/dist/docs/references/reference-core-listAgents.md +21 -0
  209. package/dist/docs/references/reference-core-listGateways.md +40 -0
  210. package/dist/docs/references/reference-core-listLogs.md +38 -0
  211. package/dist/docs/references/reference-core-listLogsByRunId.md +36 -0
  212. package/dist/docs/references/reference-core-listMCPServers.md +55 -0
  213. package/dist/docs/references/reference-core-listMemory.md +56 -0
  214. package/dist/docs/references/reference-core-listScorers.md +29 -0
  215. package/dist/docs/references/reference-core-listStoredAgents.md +93 -0
  216. package/dist/docs/references/reference-core-listVectors.md +22 -0
  217. package/dist/docs/references/reference-core-listWorkflows.md +21 -0
  218. package/dist/docs/references/reference-core-mastra-class.md +66 -0
  219. package/dist/docs/references/reference-core-mastra-model-gateway.md +153 -0
  220. package/dist/docs/references/reference-core-setLogger.md +26 -0
  221. package/dist/docs/references/reference-core-setStorage.md +27 -0
  222. package/dist/docs/references/reference-datasets-addItem.md +37 -0
  223. package/dist/docs/references/reference-datasets-addItems.md +35 -0
  224. package/dist/docs/references/reference-datasets-compareExperiments.md +52 -0
  225. package/dist/docs/references/reference-datasets-create.md +51 -0
  226. package/dist/docs/references/reference-datasets-dataset.md +82 -0
  227. package/dist/docs/references/reference-datasets-datasets-manager.md +94 -0
  228. package/dist/docs/references/reference-datasets-delete.md +25 -0
  229. package/dist/docs/references/reference-datasets-deleteExperiment.md +27 -0
  230. package/dist/docs/references/reference-datasets-deleteItem.md +27 -0
  231. package/dist/docs/references/reference-datasets-deleteItems.md +29 -0
  232. package/dist/docs/references/reference-datasets-get.md +31 -0
  233. package/dist/docs/references/reference-datasets-getDetails.md +47 -0
  234. package/dist/docs/references/reference-datasets-getExperiment.md +30 -0
  235. package/dist/docs/references/reference-datasets-getItem.md +33 -0
  236. package/dist/docs/references/reference-datasets-getItemHistory.md +31 -0
  237. package/dist/docs/references/reference-datasets-list.md +31 -0
  238. package/dist/docs/references/reference-datasets-listExperimentResults.md +39 -0
  239. package/dist/docs/references/reference-datasets-listExperiments.md +33 -0
  240. package/dist/docs/references/reference-datasets-listItems.md +46 -0
  241. package/dist/docs/references/reference-datasets-listVersions.md +33 -0
  242. package/dist/docs/references/reference-datasets-startExperiment.md +62 -0
  243. package/dist/docs/references/reference-datasets-startExperimentAsync.md +43 -0
  244. package/dist/docs/references/reference-datasets-update.md +48 -0
  245. package/dist/docs/references/reference-datasets-updateItem.md +38 -0
  246. package/dist/docs/references/reference-evals-answer-relevancy.md +105 -0
  247. package/dist/docs/references/reference-evals-answer-similarity.md +99 -0
  248. package/dist/docs/references/reference-evals-bias.md +120 -0
  249. package/dist/docs/references/reference-evals-completeness.md +136 -0
  250. package/dist/docs/references/reference-evals-content-similarity.md +101 -0
  251. package/dist/docs/references/reference-evals-context-precision.md +196 -0
  252. package/dist/docs/references/reference-evals-create-scorer.md +270 -0
  253. package/dist/docs/references/reference-evals-faithfulness.md +114 -0
  254. package/dist/docs/references/reference-evals-hallucination.md +213 -0
  255. package/dist/docs/references/reference-evals-keyword-coverage.md +128 -0
  256. package/dist/docs/references/reference-evals-mastra-scorer.md +123 -0
  257. package/dist/docs/references/reference-evals-run-evals.md +179 -0
  258. package/dist/docs/references/reference-evals-scorer-utils.md +326 -0
  259. package/dist/docs/references/reference-evals-textual-difference.md +113 -0
  260. package/dist/docs/references/reference-evals-tone-consistency.md +119 -0
  261. package/dist/docs/references/reference-evals-toxicity.md +123 -0
  262. package/dist/docs/references/reference-harness-harness-class.md +708 -0
  263. package/dist/docs/references/reference-logging-pino-logger.md +117 -0
  264. package/dist/docs/references/reference-memory-deleteMessages.md +38 -0
  265. package/dist/docs/references/reference-memory-memory-class.md +147 -0
  266. package/dist/docs/references/reference-memory-observational-memory.md +565 -0
  267. package/dist/docs/references/reference-observability-tracing-bridges-otel.md +131 -0
  268. package/dist/docs/references/reference-observability-tracing-configuration.md +178 -0
  269. package/dist/docs/references/reference-observability-tracing-exporters-console-exporter.md +138 -0
  270. package/dist/docs/references/reference-observability-tracing-exporters-datadog.md +116 -0
  271. package/dist/docs/references/reference-observability-tracing-instances.md +107 -0
  272. package/dist/docs/references/reference-observability-tracing-interfaces.md +743 -0
  273. package/dist/docs/references/reference-observability-tracing-processors-sensitive-data-filter.md +144 -0
  274. package/dist/docs/references/reference-observability-tracing-spans.md +224 -0
  275. package/dist/docs/references/reference-processors-batch-parts-processor.md +61 -0
  276. package/dist/docs/references/reference-processors-language-detector.md +82 -0
  277. package/dist/docs/references/reference-processors-message-history-processor.md +85 -0
  278. package/dist/docs/references/reference-processors-moderation-processor.md +104 -0
  279. package/dist/docs/references/reference-processors-pii-detector.md +108 -0
  280. package/dist/docs/references/reference-processors-processor-interface.md +521 -0
  281. package/dist/docs/references/reference-processors-prompt-injection-detector.md +72 -0
  282. package/dist/docs/references/reference-processors-semantic-recall-processor.md +117 -0
  283. package/dist/docs/references/reference-processors-system-prompt-scrubber.md +80 -0
  284. package/dist/docs/references/reference-processors-token-limiter-processor.md +115 -0
  285. package/dist/docs/references/reference-processors-tool-call-filter.md +85 -0
  286. package/dist/docs/references/reference-processors-tool-search-processor.md +111 -0
  287. package/dist/docs/references/reference-processors-unicode-normalizer.md +62 -0
  288. package/dist/docs/references/reference-processors-working-memory-processor.md +152 -0
  289. package/dist/docs/references/reference-rag-database-config.md +261 -0
  290. package/dist/docs/references/reference-rag-embeddings.md +92 -0
  291. package/dist/docs/references/reference-server-mastra-server.md +298 -0
  292. package/dist/docs/references/reference-server-register-api-route.md +249 -0
  293. package/dist/docs/references/reference-storage-cloudflare-d1.md +218 -0
  294. package/dist/docs/references/reference-storage-composite.md +235 -0
  295. package/dist/docs/references/reference-storage-lance.md +131 -0
  296. package/dist/docs/references/reference-storage-libsql.md +135 -0
  297. package/dist/docs/references/reference-storage-mongodb.md +262 -0
  298. package/dist/docs/references/reference-storage-mssql.md +157 -0
  299. package/dist/docs/references/reference-storage-overview.md +121 -0
  300. package/dist/docs/references/reference-storage-postgresql.md +526 -0
  301. package/dist/docs/references/reference-storage-upstash.md +160 -0
  302. package/dist/docs/references/reference-streaming-ChunkType.md +292 -0
  303. package/dist/docs/references/reference-streaming-agents-MastraModelOutput.md +182 -0
  304. package/dist/docs/references/reference-streaming-agents-streamLegacy.md +142 -0
  305. package/dist/docs/references/reference-streaming-workflows-observeStream.md +42 -0
  306. package/dist/docs/references/reference-streaming-workflows-resumeStream.md +61 -0
  307. package/dist/docs/references/reference-streaming-workflows-stream.md +88 -0
  308. package/dist/docs/references/reference-streaming-workflows-timeTravelStream.md +142 -0
  309. package/dist/docs/references/reference-templates-overview.md +194 -0
  310. package/dist/docs/references/reference-tools-create-tool.md +237 -0
  311. package/dist/docs/references/reference-tools-graph-rag-tool.md +182 -0
  312. package/dist/docs/references/reference-tools-mcp-client.md +954 -0
  313. package/dist/docs/references/reference-tools-mcp-server.md +1271 -0
  314. package/dist/docs/references/reference-tools-vector-query-tool.md +459 -0
  315. package/dist/docs/references/reference-vectors-libsql.md +305 -0
  316. package/dist/docs/references/reference-vectors-mongodb.md +295 -0
  317. package/dist/docs/references/reference-vectors-pg.md +408 -0
  318. package/dist/docs/references/reference-vectors-upstash.md +294 -0
  319. package/dist/docs/references/reference-voice-composite-voice.md +121 -0
  320. package/dist/docs/references/reference-voice-mastra-voice.md +311 -0
  321. package/dist/docs/references/reference-voice-voice.addInstructions.md +55 -0
  322. package/dist/docs/references/reference-voice-voice.addTools.md +67 -0
  323. package/dist/docs/references/reference-voice-voice.connect.md +94 -0
  324. package/dist/docs/references/reference-voice-voice.events.md +37 -0
  325. package/dist/docs/references/reference-voice-voice.listen.md +164 -0
  326. package/dist/docs/references/reference-voice-voice.on.md +111 -0
  327. package/dist/docs/references/reference-voice-voice.speak.md +157 -0
  328. package/dist/docs/references/reference-workflows-run-methods-cancel.md +86 -0
  329. package/dist/docs/references/reference-workflows-run-methods-restart.md +33 -0
  330. package/dist/docs/references/reference-workflows-run-methods-resume.md +59 -0
  331. package/dist/docs/references/reference-workflows-run-methods-start.md +58 -0
  332. package/dist/docs/references/reference-workflows-run-methods-startAsync.md +67 -0
  333. package/dist/docs/references/reference-workflows-run-methods-timeTravel.md +142 -0
  334. package/dist/docs/references/reference-workflows-run.md +59 -0
  335. package/dist/docs/references/reference-workflows-step.md +119 -0
  336. package/dist/docs/references/reference-workflows-workflow-methods-branch.md +25 -0
  337. package/dist/docs/references/reference-workflows-workflow-methods-commit.md +17 -0
  338. package/dist/docs/references/reference-workflows-workflow-methods-create-run.md +63 -0
  339. package/dist/docs/references/reference-workflows-workflow-methods-dountil.md +25 -0
  340. package/dist/docs/references/reference-workflows-workflow-methods-dowhile.md +25 -0
  341. package/dist/docs/references/reference-workflows-workflow-methods-foreach.md +118 -0
  342. package/dist/docs/references/reference-workflows-workflow-methods-map.md +93 -0
  343. package/dist/docs/references/reference-workflows-workflow-methods-parallel.md +21 -0
  344. package/dist/docs/references/reference-workflows-workflow-methods-sleep.md +35 -0
  345. package/dist/docs/references/reference-workflows-workflow-methods-sleepUntil.md +35 -0
  346. package/dist/docs/references/reference-workflows-workflow-methods-then.md +21 -0
  347. package/dist/docs/references/reference-workflows-workflow.md +157 -0
  348. package/dist/docs/references/reference-workspace-filesystem.md +255 -0
  349. package/dist/docs/references/reference-workspace-local-filesystem.md +343 -0
  350. package/dist/docs/references/reference-workspace-local-sandbox.md +301 -0
  351. package/dist/docs/references/reference-workspace-sandbox.md +87 -0
  352. package/dist/docs/references/reference-workspace-workspace-class.md +244 -0
  353. package/dist/docs/references/reference.md +277 -0
  354. package/dist/evals/index.cjs +20 -20
  355. package/dist/evals/index.js +3 -3
  356. package/dist/evals/run/index.d.ts +9 -2
  357. package/dist/evals/run/index.d.ts.map +1 -1
  358. package/dist/evals/scoreTraces/index.cjs +5 -5
  359. package/dist/evals/scoreTraces/index.js +2 -2
  360. package/dist/harness/harness.d.ts +6 -0
  361. package/dist/harness/harness.d.ts.map +1 -1
  362. package/dist/harness/index.cjs +28 -13
  363. package/dist/harness/index.cjs.map +1 -1
  364. package/dist/harness/index.js +20 -5
  365. package/dist/harness/index.js.map +1 -1
  366. package/dist/index.cjs +2 -2
  367. package/dist/index.js +1 -1
  368. package/dist/integration/index.cjs +2 -2
  369. package/dist/integration/index.js +1 -1
  370. package/dist/llm/index.cjs +6 -6
  371. package/dist/llm/index.js +1 -1
  372. package/dist/llm/model/embedding-router.d.ts.map +1 -1
  373. package/dist/llm/model/model.loop.d.ts +1 -1
  374. package/dist/llm/model/model.loop.d.ts.map +1 -1
  375. package/dist/loop/index.cjs +20 -12
  376. package/dist/loop/index.js +1 -1
  377. package/dist/loop/network/index.d.ts.map +1 -1
  378. package/dist/loop/network/validation.d.ts +51 -0
  379. package/dist/loop/network/validation.d.ts.map +1 -1
  380. package/dist/loop/test-utils/generateText.d.ts.map +1 -1
  381. package/dist/loop/test-utils/options.d.ts.map +1 -1
  382. package/dist/loop/test-utils/streamObject.d.ts.map +1 -1
  383. package/dist/loop/types.d.ts +15 -0
  384. package/dist/loop/types.d.ts.map +1 -1
  385. package/dist/loop/workflows/agentic-execution/index.d.ts +3 -0
  386. package/dist/loop/workflows/agentic-execution/index.d.ts.map +1 -1
  387. package/dist/loop/workflows/agentic-execution/is-task-complete-step.d.ts +126 -0
  388. package/dist/loop/workflows/agentic-execution/is-task-complete-step.d.ts.map +1 -0
  389. package/dist/loop/workflows/agentic-execution/llm-execution-step.d.ts +3 -1
  390. package/dist/loop/workflows/agentic-execution/llm-execution-step.d.ts.map +1 -1
  391. package/dist/loop/workflows/agentic-execution/llm-mapping-step.d.ts +1 -0
  392. package/dist/loop/workflows/agentic-execution/llm-mapping-step.d.ts.map +1 -1
  393. package/dist/loop/workflows/agentic-execution/tool-call-step.d.ts.map +1 -1
  394. package/dist/loop/workflows/agentic-loop/index.d.ts +3 -0
  395. package/dist/loop/workflows/agentic-loop/index.d.ts.map +1 -1
  396. package/dist/loop/workflows/schema.d.ts +3 -0
  397. package/dist/loop/workflows/schema.d.ts.map +1 -1
  398. package/dist/mastra/index.cjs +2 -2
  399. package/dist/mastra/index.d.ts +9 -5
  400. package/dist/mastra/index.d.ts.map +1 -1
  401. package/dist/mastra/index.js +1 -1
  402. package/dist/memory/index.cjs +14 -14
  403. package/dist/memory/index.js +1 -1
  404. package/dist/processor-provider/index.cjs +10 -10
  405. package/dist/processor-provider/index.js +1 -1
  406. package/dist/processors/index.cjs +42 -42
  407. package/dist/processors/index.js +1 -1
  408. package/dist/processors/processors/skills.d.ts.map +1 -1
  409. package/dist/relevance/index.cjs +3 -3
  410. package/dist/relevance/index.js +1 -1
  411. package/dist/storage/constants.cjs +56 -56
  412. package/dist/storage/constants.js +1 -1
  413. package/dist/storage/domains/memory/inmemory.d.ts.map +1 -1
  414. package/dist/storage/index.cjs +160 -160
  415. package/dist/storage/index.js +2 -2
  416. package/dist/storage/types.d.ts +2 -3
  417. package/dist/storage/types.d.ts.map +1 -1
  418. package/dist/stream/aisdk/v5/compat/prepare-tools.d.ts.map +1 -1
  419. package/dist/stream/base/output.d.ts +1 -0
  420. package/dist/stream/base/output.d.ts.map +1 -1
  421. package/dist/stream/index.cjs +11 -11
  422. package/dist/stream/index.js +2 -2
  423. package/dist/stream/types.d.ts +27 -1
  424. package/dist/stream/types.d.ts.map +1 -1
  425. package/dist/test-utils/llm-mock.cjs +4 -4
  426. package/dist/test-utils/llm-mock.js +1 -1
  427. package/dist/tool-loop-agent/index.cjs +4 -4
  428. package/dist/tool-loop-agent/index.js +1 -1
  429. package/dist/tools/index.cjs +9 -5
  430. package/dist/tools/index.d.ts +1 -1
  431. package/dist/tools/index.d.ts.map +1 -1
  432. package/dist/tools/index.js +1 -1
  433. package/dist/tools/is-vercel-tool.cjs +2 -2
  434. package/dist/tools/is-vercel-tool.js +1 -1
  435. package/dist/tools/toolchecks.d.ts +10 -0
  436. package/dist/tools/toolchecks.d.ts.map +1 -1
  437. package/dist/utils.cjs +23 -23
  438. package/dist/utils.js +1 -1
  439. package/dist/vector/index.cjs +7 -7
  440. package/dist/vector/index.js +1 -1
  441. package/dist/vector/types.d.ts +9 -1
  442. package/dist/vector/types.d.ts.map +1 -1
  443. package/dist/workflows/evented/index.cjs +10 -10
  444. package/dist/workflows/evented/index.js +1 -1
  445. package/dist/workflows/index.cjs +25 -25
  446. package/dist/workflows/index.js +1 -1
  447. package/dist/workflows/types.d.ts +14 -1
  448. package/dist/workflows/types.d.ts.map +1 -1
  449. package/dist/workflows/workflow.d.ts +3 -17
  450. package/dist/workflows/workflow.d.ts.map +1 -1
  451. package/dist/workspace/filesystem/composite-filesystem.d.ts +5 -0
  452. package/dist/workspace/filesystem/composite-filesystem.d.ts.map +1 -1
  453. package/dist/workspace/filesystem/filesystem.d.ts +12 -0
  454. package/dist/workspace/filesystem/filesystem.d.ts.map +1 -1
  455. package/dist/workspace/filesystem/fs-utils.d.ts +12 -0
  456. package/dist/workspace/filesystem/fs-utils.d.ts.map +1 -1
  457. package/dist/workspace/filesystem/local-filesystem.d.ts +6 -0
  458. package/dist/workspace/filesystem/local-filesystem.d.ts.map +1 -1
  459. package/dist/workspace/index.cjs +66 -66
  460. package/dist/workspace/index.js +1 -1
  461. package/dist/workspace/lsp/client.d.ts +76 -0
  462. package/dist/workspace/lsp/client.d.ts.map +1 -0
  463. package/dist/workspace/lsp/index.d.ts +6 -0
  464. package/dist/workspace/lsp/index.d.ts.map +1 -0
  465. package/dist/workspace/lsp/language.d.ts +16 -0
  466. package/dist/workspace/lsp/language.d.ts.map +1 -0
  467. package/dist/workspace/lsp/manager.d.ts +72 -0
  468. package/dist/workspace/lsp/manager.d.ts.map +1 -0
  469. package/dist/workspace/lsp/servers.d.ts +43 -0
  470. package/dist/workspace/lsp/servers.d.ts.map +1 -0
  471. package/dist/workspace/lsp/types.d.ts +45 -0
  472. package/dist/workspace/lsp/types.d.ts.map +1 -0
  473. package/dist/workspace/tools/ast-edit.d.ts.map +1 -1
  474. package/dist/workspace/tools/edit-file.d.ts.map +1 -1
  475. package/dist/workspace/tools/helpers.d.ts +13 -0
  476. package/dist/workspace/tools/helpers.d.ts.map +1 -1
  477. package/dist/workspace/tools/write-file.d.ts.map +1 -1
  478. package/dist/workspace/workspace.d.ts +33 -0
  479. package/dist/workspace/workspace.d.ts.map +1 -1
  480. package/package.json +10 -8
  481. package/dist/chunk-2X66GWF5.cjs.map +0 -1
  482. package/dist/chunk-6QBN6MZY.cjs.map +0 -1
  483. package/dist/chunk-7EXW4AAG.js.map +0 -1
  484. package/dist/chunk-7UAJ6LMR.cjs.map +0 -1
  485. package/dist/chunk-BQHWJLXU.js.map +0 -1
  486. package/dist/chunk-DB7U2C5B.cjs.map +0 -1
  487. package/dist/chunk-DFCRXDVK.js.map +0 -1
  488. package/dist/chunk-EAZ6YDCQ.cjs.map +0 -1
  489. package/dist/chunk-HB6T4554.cjs.map +0 -1
  490. package/dist/chunk-IC5OUWKJ.js.map +0 -1
  491. package/dist/chunk-KUXNBWN7.js.map +0 -1
  492. package/dist/chunk-O7PZ4VOO.cjs.map +0 -1
  493. package/dist/chunk-QSHV7GPT.js.map +0 -1
  494. package/dist/chunk-QTAS3HND.cjs.map +0 -1
  495. package/dist/chunk-R4N65TLG.js.map +0 -1
  496. package/dist/chunk-T6GAM3SQ.js.map +0 -1
  497. package/dist/chunk-YQG7NBPR.cjs.map +0 -1
  498. package/dist/chunk-ZSBM2SVU.js.map +0 -1
@@ -0,0 +1,326 @@
1
+ # Scorer Utils
2
+
3
+ Mastra provides utility functions to help extract and process data from scorer run inputs and outputs. These utilities are particularly useful in the `preprocess` step of custom scorers.
4
+
5
+ ## Import
6
+
7
+ ```typescript
8
+ import {
9
+ getAssistantMessageFromRunOutput,
10
+ getReasoningFromRunOutput,
11
+ getUserMessageFromRunInput,
12
+ getSystemMessagesFromRunInput,
13
+ getCombinedSystemPrompt,
14
+ extractToolCalls,
15
+ extractInputMessages,
16
+ extractAgentResponseMessages,
17
+ } from '@mastra/evals/scorers/utils'
18
+ ```
19
+
20
+ ## Message Extraction
21
+
22
+ ### getAssistantMessageFromRunOutput
23
+
24
+ Extracts the text content from the first assistant message in the run output.
25
+
26
+ ```typescript
27
+ const scorer = createScorer({
28
+ id: 'my-scorer',
29
+ description: 'My scorer',
30
+ type: 'agent',
31
+ })
32
+ .preprocess(({ run }) => {
33
+ const response = getAssistantMessageFromRunOutput(run.output)
34
+ return { response }
35
+ })
36
+ .generateScore(({ results }) => {
37
+ return results.preprocessStepResult?.response ? 1 : 0
38
+ })
39
+ ```
40
+
41
+ **output?:** (`ScorerRunOutputForAgent`): The scorer run output (array of MastraDBMessage)
42
+
43
+ **Returns:** `string | undefined` - The assistant message text, or undefined if no assistant message is found.
44
+
45
+ ### getUserMessageFromRunInput
46
+
47
+ Extracts the text content from the first user message in the run input.
48
+
49
+ ```typescript
50
+ .preprocess(({ run }) => {
51
+ const userMessage = getUserMessageFromRunInput(run.input);
52
+ return { userMessage };
53
+ })
54
+ ```
55
+
56
+ **input?:** (`ScorerRunInputForAgent`): The scorer run input containing input messages
57
+
58
+ **Returns:** `string | undefined` - The user message text, or undefined if no user message is found.
59
+
60
+ ### extractInputMessages
61
+
62
+ Extracts text content from all input messages as an array.
63
+
64
+ ```typescript
65
+ .preprocess(({ run }) => {
66
+ const allUserMessages = extractInputMessages(run.input);
67
+ return { conversationHistory: allUserMessages.join("\n") };
68
+ })
69
+ ```
70
+
71
+ **Returns:** `string[]` - Array of text strings from each input message.
72
+
73
+ ### extractAgentResponseMessages
74
+
75
+ Extracts text content from all assistant response messages as an array.
76
+
77
+ ```typescript
78
+ .preprocess(({ run }) => {
79
+ const allResponses = extractAgentResponseMessages(run.output);
80
+ return { allResponses };
81
+ })
82
+ ```
83
+
84
+ **Returns:** `string[]` - Array of text strings from each assistant message.
85
+
86
+ ## Reasoning Extraction
87
+
88
+ ### getReasoningFromRunOutput
89
+
90
+ Extracts reasoning text from the run output. This is particularly useful when evaluating responses from reasoning models like `deepseek-reasoner` that produce chain-of-thought reasoning.
91
+
92
+ Reasoning can be stored in two places:
93
+
94
+ 1. `content.reasoning` - a string field on the message content
95
+ 2. `content.parts` - as parts with `type: 'reasoning'` containing `details`
96
+
97
+ ```typescript
98
+ import {
99
+ getReasoningFromRunOutput,
100
+ getAssistantMessageFromRunOutput,
101
+ } from '@mastra/evals/scorers/utils'
102
+
103
+ const reasoningQualityScorer = createScorer({
104
+ id: 'reasoning-quality',
105
+ name: 'Reasoning Quality',
106
+ description: 'Evaluates the quality of model reasoning',
107
+ type: 'agent',
108
+ })
109
+ .preprocess(({ run }) => {
110
+ const reasoning = getReasoningFromRunOutput(run.output)
111
+ const response = getAssistantMessageFromRunOutput(run.output)
112
+ return { reasoning, response }
113
+ })
114
+ .analyze(({ results }) => {
115
+ const { reasoning } = results.preprocessStepResult || {}
116
+ return {
117
+ hasReasoning: !!reasoning,
118
+ reasoningLength: reasoning?.length || 0,
119
+ hasStepByStep: reasoning?.includes('step') || false,
120
+ }
121
+ })
122
+ .generateScore(({ results }) => {
123
+ const { hasReasoning, reasoningLength } = results.analyzeStepResult || {}
124
+ if (!hasReasoning) return 0
125
+ // Score based on reasoning length (normalized to 0-1)
126
+ return Math.min(reasoningLength / 500, 1)
127
+ })
128
+ .generateReason(({ results, score }) => {
129
+ const { hasReasoning, reasoningLength } = results.analyzeStepResult || {}
130
+ if (!hasReasoning) {
131
+ return 'No reasoning was provided by the model.'
132
+ }
133
+ return `Model provided ${reasoningLength} characters of reasoning. Score: ${score}`
134
+ })
135
+ ```
136
+
137
+ **output?:** (`ScorerRunOutputForAgent`): The scorer run output (array of MastraDBMessage)
138
+
139
+ **Returns:** `string | undefined` - The reasoning text, or undefined if no reasoning is present.
140
+
141
+ ## System Message Extraction
142
+
143
+ ### getSystemMessagesFromRunInput
144
+
145
+ Extracts all system messages from the run input, including both standard system messages and tagged system messages (specialized prompts like memory instructions).
146
+
147
+ ```typescript
148
+ .preprocess(({ run }) => {
149
+ const systemMessages = getSystemMessagesFromRunInput(run.input);
150
+ return {
151
+ systemPromptCount: systemMessages.length,
152
+ systemPrompts: systemMessages
153
+ };
154
+ })
155
+ ```
156
+
157
+ **Returns:** `string[]` - Array of system message strings.
158
+
159
+ ### getCombinedSystemPrompt
160
+
161
+ Combines all system messages into a single prompt string, joined with double newlines.
162
+
163
+ ```typescript
164
+ .preprocess(({ run }) => {
165
+ const fullSystemPrompt = getCombinedSystemPrompt(run.input);
166
+ return { fullSystemPrompt };
167
+ })
168
+ ```
169
+
170
+ **Returns:** `string` - Combined system prompt string.
171
+
172
+ ## Tool Call Extraction
173
+
174
+ ### extractToolCalls
175
+
176
+ Extracts information about all tool calls from the run output, including tool names, call IDs, and their positions in the message array.
177
+
178
+ ```typescript
179
+ const toolUsageScorer = createScorer({
180
+ id: 'tool-usage',
181
+ description: 'Evaluates tool usage patterns',
182
+ type: 'agent',
183
+ })
184
+ .preprocess(({ run }) => {
185
+ const { tools, toolCallInfos } = extractToolCalls(run.output)
186
+ return {
187
+ toolsUsed: tools,
188
+ toolCount: tools.length,
189
+ toolDetails: toolCallInfos,
190
+ }
191
+ })
192
+ .generateScore(({ results }) => {
193
+ const { toolCount } = results.preprocessStepResult || {}
194
+ // Score based on appropriate tool usage
195
+ return toolCount > 0 ? 1 : 0
196
+ })
197
+ ```
198
+
199
+ **Returns:**
200
+
201
+ ```typescript
202
+ {
203
+ tools: string[]; // Array of tool names
204
+ toolCallInfos: ToolCallInfo[]; // Detailed tool call information
205
+ }
206
+ ```
207
+
208
+ Where `ToolCallInfo` is:
209
+
210
+ ```typescript
211
+ type ToolCallInfo = {
212
+ toolName: string // Name of the tool
213
+ toolCallId: string // Unique call identifier
214
+ messageIndex: number // Index in the output array
215
+ invocationIndex: number // Index within message's tool invocations
216
+ }
217
+ ```
218
+
219
+ ## Test Utilities
220
+
221
+ These utilities help create test data for scorer development.
222
+
223
+ ### createTestMessage
224
+
225
+ Creates a `MastraDBMessage` object for testing purposes.
226
+
227
+ ```typescript
228
+ import { createTestMessage } from '@mastra/evals/scorers/utils'
229
+
230
+ const userMessage = createTestMessage({
231
+ content: 'What is the weather?',
232
+ role: 'user',
233
+ })
234
+
235
+ const assistantMessage = createTestMessage({
236
+ content: 'The weather is sunny.',
237
+ role: 'assistant',
238
+ toolInvocations: [
239
+ {
240
+ toolCallId: 'call-1',
241
+ toolName: 'weatherTool',
242
+ args: { location: 'London' },
243
+ result: { temp: 20 },
244
+ state: 'result',
245
+ },
246
+ ],
247
+ })
248
+ ```
249
+
250
+ ### createAgentTestRun
251
+
252
+ Creates a complete test run object for testing scorers.
253
+
254
+ ```typescript
255
+ import { createAgentTestRun, createTestMessage } from '@mastra/evals/scorers/utils'
256
+
257
+ const testRun = createAgentTestRun({
258
+ inputMessages: [createTestMessage({ content: 'Hello', role: 'user' })],
259
+ output: [createTestMessage({ content: 'Hi there!', role: 'assistant' })],
260
+ })
261
+
262
+ // Run your scorer with the test data
263
+ const result = await myScorer.run({
264
+ input: testRun.input,
265
+ output: testRun.output,
266
+ })
267
+ ```
268
+
269
+ ## Complete Example
270
+
271
+ Here's a complete example showing how to use multiple utilities together:
272
+
273
+ ```typescript
274
+ import { createScorer } from '@mastra/core/evals'
275
+ import {
276
+ getAssistantMessageFromRunOutput,
277
+ getReasoningFromRunOutput,
278
+ getUserMessageFromRunInput,
279
+ getCombinedSystemPrompt,
280
+ extractToolCalls,
281
+ } from '@mastra/evals/scorers/utils'
282
+
283
+ const comprehensiveScorer = createScorer({
284
+ id: 'comprehensive-analysis',
285
+ name: 'Comprehensive Analysis',
286
+ description: 'Analyzes all aspects of an agent response',
287
+ type: 'agent',
288
+ })
289
+ .preprocess(({ run }) => {
290
+ // Extract all relevant data
291
+ const userMessage = getUserMessageFromRunInput(run.input)
292
+ const response = getAssistantMessageFromRunOutput(run.output)
293
+ const reasoning = getReasoningFromRunOutput(run.output)
294
+ const systemPrompt = getCombinedSystemPrompt(run.input)
295
+ const { tools, toolCallInfos } = extractToolCalls(run.output)
296
+
297
+ return {
298
+ userMessage,
299
+ response,
300
+ reasoning,
301
+ systemPrompt,
302
+ toolsUsed: tools,
303
+ toolCount: tools.length,
304
+ }
305
+ })
306
+ .generateScore(({ results }) => {
307
+ const { response, reasoning, toolCount } = results.preprocessStepResult || {}
308
+
309
+ let score = 0
310
+ if (response && response.length > 0) score += 0.4
311
+ if (reasoning) score += 0.3
312
+ if (toolCount > 0) score += 0.3
313
+
314
+ return score
315
+ })
316
+ .generateReason(({ results, score }) => {
317
+ const { response, reasoning, toolCount } = results.preprocessStepResult || {}
318
+
319
+ const parts = []
320
+ if (response) parts.push('provided a response')
321
+ if (reasoning) parts.push('included reasoning')
322
+ if (toolCount > 0) parts.push(`used ${toolCount} tool(s)`)
323
+
324
+ return `Score: ${score}. The agent ${parts.join(', ')}.`
325
+ })
326
+ ```
@@ -0,0 +1,113 @@
1
+ # Textual Difference Scorer
2
+
3
+ The `createTextualDifferenceScorer()` function uses sequence matching to measure the textual differences between two strings. It provides detailed information about changes, including the number of operations needed to transform one text into another.
4
+
5
+ ## Parameters
6
+
7
+ The `createTextualDifferenceScorer()` function does not take any options.
8
+
9
+ This function returns an instance of the MastraScorer class. See the [MastraScorer reference](https://mastra.ai/reference/evals/mastra-scorer) for details on the `.run()` method and its input/output.
10
+
11
+ ## .run() Returns
12
+
13
+ **runId:** (`string`): The id of the run (optional).
14
+
15
+ **analyzeStepResult:** (`object`): Object with difference metrics: { confidence: number, changes: number, lengthDiff: number }
16
+
17
+ **score:** (`number`): Similarity ratio (0-1) where 1 indicates identical texts.
18
+
19
+ `.run()` returns a result in the following shape:
20
+
21
+ ```typescript
22
+ {
23
+ runId: string,
24
+ analyzeStepResult: {
25
+ confidence: number,
26
+ ratio: number,
27
+ changes: number,
28
+ lengthDiff: number
29
+ },
30
+ score: number
31
+ }
32
+ ```
33
+
34
+ ## Scoring Details
35
+
36
+ The scorer calculates several measures:
37
+
38
+ - **Similarity Ratio**: Based on sequence matching between texts (0-1)
39
+ - **Changes**: Count of non-matching operations needed
40
+ - **Length Difference**: Normalized difference in text lengths
41
+ - **Confidence**: Inversely proportional to length difference
42
+
43
+ ### Scoring Process
44
+
45
+ 1. Analyzes textual differences:
46
+
47
+ - Performs sequence matching between input and output
48
+ - Counts the number of change operations required
49
+ - Measures length differences
50
+
51
+ 2. Calculates metrics:
52
+
53
+ - Computes similarity ratio
54
+ - Determines confidence score
55
+ - Combines into weighted score
56
+
57
+ Final score: `(similarity_ratio * confidence) * scale`
58
+
59
+ ### Score interpretation
60
+
61
+ A textual difference score between 0 and 1:
62
+
63
+ - **1.0**: Identical texts – no differences detected.
64
+ - **0.7–0.9**: Minor differences – few changes needed.
65
+ - **0.4–0.6**: Moderate differences – noticeable changes required.
66
+ - **0.1–0.3**: Major differences – extensive changes needed.
67
+ - **0.0**: Completely different texts.
68
+
69
+ ## Example
70
+
71
+ Measure textual differences between expected and actual agent outputs:
72
+
73
+ ```typescript
74
+ import { runEvals } from '@mastra/core/evals'
75
+ import { createTextualDifferenceScorer } from '@mastra/evals/scorers/prebuilt'
76
+ import { myAgent } from './agent'
77
+
78
+ const scorer = createTextualDifferenceScorer()
79
+
80
+ const result = await runEvals({
81
+ data: [
82
+ {
83
+ input: 'Summarize the concept of recursion',
84
+ groundTruth:
85
+ 'Recursion is when a function calls itself to solve a problem by breaking it into smaller subproblems.',
86
+ },
87
+ {
88
+ input: 'What is the capital of France?',
89
+ groundTruth: 'The capital of France is Paris.',
90
+ },
91
+ ],
92
+ scorers: [scorer],
93
+ target: myAgent,
94
+ onItemComplete: ({ scorerResults }) => {
95
+ console.log({
96
+ score: scorerResults[scorer.id].score,
97
+ groundTruth: scorerResults[scorer.id].groundTruth,
98
+ })
99
+ },
100
+ })
101
+
102
+ console.log(result.scores)
103
+ ```
104
+
105
+ For more details on `runEvals`, see the [runEvals reference](https://mastra.ai/reference/evals/run-evals).
106
+
107
+ To add this scorer to an agent, see the [Scorers overview](https://mastra.ai/docs/evals/overview) guide.
108
+
109
+ ## Related
110
+
111
+ - [Content Similarity Scorer](https://mastra.ai/reference/evals/content-similarity)
112
+ - [Completeness Scorer](https://mastra.ai/reference/evals/completeness)
113
+ - [Keyword Coverage Scorer](https://mastra.ai/reference/evals/keyword-coverage)
@@ -0,0 +1,119 @@
1
+ # Tone Consistency Scorer
2
+
3
+ The `createToneScorer()` function evaluates the text's emotional tone and sentiment consistency. It can operate in two modes: comparing tone between input/output pairs or analyzing tone stability within a single text.
4
+
5
+ ## Parameters
6
+
7
+ The `createToneScorer()` function does not take any options.
8
+
9
+ This function returns an instance of the MastraScorer class. See the [MastraScorer reference](https://mastra.ai/reference/evals/mastra-scorer) for details on the `.run()` method and its input/output.
10
+
11
+ ## .run() Returns
12
+
13
+ **runId:** (`string`): The id of the run (optional).
14
+
15
+ **analyzeStepResult:** (`object`): Object with tone metrics: { responseSentiment: number, referenceSentiment: number, difference: number } (for comparison mode) OR { avgSentiment: number, sentimentVariance: number } (for stability mode)
16
+
17
+ **score:** (`number`): Tone consistency/stability score (0-1).
18
+
19
+ `.run()` returns a result in the following shape:
20
+
21
+ ```typescript
22
+ {
23
+ runId: string,
24
+ analyzeStepResult: {
25
+ responseSentiment?: number,
26
+ referenceSentiment?: number,
27
+ difference?: number,
28
+ avgSentiment?: number,
29
+ sentimentVariance?: number,
30
+ },
31
+ score: number
32
+ }
33
+ ```
34
+
35
+ ## Scoring Details
36
+
37
+ The scorer evaluates sentiment consistency through tone pattern analysis and mode-specific scoring.
38
+
39
+ ### Scoring Process
40
+
41
+ 1. Analyzes tone patterns:
42
+
43
+ - Extracts sentiment features
44
+ - Computes sentiment scores
45
+ - Measures tone variations
46
+
47
+ 2. Calculates mode-specific score: **Tone Consistency** (input and output):
48
+
49
+ - Compares sentiment between texts
50
+ - Calculates sentiment difference
51
+ - Score = 1 - (sentiment\_difference / max\_difference) **Tone Stability** (single input):
52
+ - Analyzes sentiment across sentences
53
+ - Calculates sentiment variance
54
+ - Score = 1 - (sentiment\_variance / max\_variance)
55
+
56
+ Final score: `mode_specific_score * scale`
57
+
58
+ ### Score interpretation
59
+
60
+ (0 to scale, default 0-1)
61
+
62
+ - 1.0: Perfect tone consistency/stability
63
+ - 0.7-0.9: Strong consistency with minor variations
64
+ - 0.4-0.6: Moderate consistency with noticeable shifts
65
+ - 0.1-0.3: Poor consistency with major tone changes
66
+ - 0.0: No consistency - completely different tones
67
+
68
+ ### analyzeStepResult
69
+
70
+ Object with tone metrics:
71
+
72
+ - **responseSentiment**: Sentiment score for the response (comparison mode).
73
+ - **referenceSentiment**: Sentiment score for the input/reference (comparison mode).
74
+ - **difference**: Absolute difference between sentiment scores (comparison mode).
75
+ - **avgSentiment**: Average sentiment across sentences (stability mode).
76
+ - **sentimentVariance**: Variance of sentiment across sentences (stability mode).
77
+
78
+ ## Example
79
+
80
+ Evaluate tone consistency between related agent responses:
81
+
82
+ ```typescript
83
+ import { runEvals } from '@mastra/core/evals'
84
+ import { createToneScorer } from '@mastra/evals/scorers/prebuilt'
85
+ import { myAgent } from './agent'
86
+
87
+ const scorer = createToneScorer()
88
+
89
+ const result = await runEvals({
90
+ data: [
91
+ {
92
+ input: 'How was your experience with our service?',
93
+ groundTruth: 'The service was excellent and exceeded expectations!',
94
+ },
95
+ {
96
+ input: 'Tell me about the customer support',
97
+ groundTruth: 'The support team was friendly and very helpful.',
98
+ },
99
+ ],
100
+ scorers: [scorer],
101
+ target: myAgent,
102
+ onItemComplete: ({ scorerResults }) => {
103
+ console.log({
104
+ score: scorerResults[scorer.id].score,
105
+ })
106
+ },
107
+ })
108
+
109
+ console.log(result.scores)
110
+ ```
111
+
112
+ For more details on `runEvals`, see the [runEvals reference](https://mastra.ai/reference/evals/run-evals).
113
+
114
+ To add this scorer to an agent, see the [Scorers overview](https://mastra.ai/docs/evals/overview) guide.
115
+
116
+ ## Related
117
+
118
+ - [Content Similarity Scorer](https://mastra.ai/reference/evals/content-similarity)
119
+ - [Toxicity Scorer](https://mastra.ai/reference/evals/toxicity)
@@ -0,0 +1,123 @@
1
+ # Toxicity Scorer
2
+
3
+ The `createToxicityScorer()` function evaluates whether an LLM's output contains racist, biased, or toxic elements. It uses a judge-based system to analyze responses for various forms of toxicity including personal attacks, mockery, hate speech, dismissive statements, and threats.
4
+
5
+ ## Parameters
6
+
7
+ The `createToxicityScorer()` function accepts a single options object with the following properties:
8
+
9
+ **model:** (`LanguageModel`): Configuration for the model used to evaluate toxicity.
10
+
11
+ **scale:** (`number`): Maximum score value (default is 1). (Default: `1`)
12
+
13
+ This function returns an instance of the MastraScorer class. The `.run()` method accepts the same input as other scorers (see the [MastraScorer reference](https://mastra.ai/reference/evals/mastra-scorer)), but the return value includes LLM-specific fields as documented below.
14
+
15
+ ## .run() Returns
16
+
17
+ **runId:** (`string`): The id of the run (optional).
18
+
19
+ **analyzeStepResult:** (`object`): Object with verdicts: { verdicts: Array<{ verdict: 'yes' | 'no', reason: string }> }
20
+
21
+ **analyzePrompt:** (`string`): The prompt sent to the LLM for the analyze step (optional).
22
+
23
+ **score:** (`number`): Toxicity score (0 to scale, default 0-1).
24
+
25
+ **reason:** (`string`): Detailed explanation of the toxicity assessment.
26
+
27
+ **generateReasonPrompt:** (`string`): The prompt sent to the LLM for the generateReason step (optional).
28
+
29
+ `.run()` returns a result in the following shape:
30
+
31
+ ```typescript
32
+ {
33
+ runId: string,
34
+ analyzeStepResult: {
35
+ verdicts: Array<{ verdict: 'yes' | 'no', reason: string }>
36
+ },
37
+ analyzePrompt: string,
38
+ score: number,
39
+ reason: string,
40
+ reasonPrompt: string
41
+ }
42
+ ```
43
+
44
+ ## Scoring Details
45
+
46
+ The scorer evaluates toxicity through multiple aspects:
47
+
48
+ - Personal attacks
49
+ - Mockery or sarcasm
50
+ - Hate speech
51
+ - Dismissive statements
52
+ - Threats or intimidation
53
+
54
+ ### Scoring Process
55
+
56
+ 1. Analyzes toxic elements:
57
+
58
+ - Identifies personal attacks and mockery
59
+ - Detects hate speech and threats
60
+ - Evaluates dismissive statements
61
+ - Assesses severity levels
62
+
63
+ 2. Calculates toxicity score:
64
+
65
+ - Weighs detected elements
66
+ - Combines severity ratings
67
+ - Normalizes to scale
68
+
69
+ Final score: `(toxicity_weighted_sum / max_toxicity) * scale`
70
+
71
+ ### Score interpretation
72
+
73
+ A toxicity score between 0 and 1:
74
+
75
+ - **0.8–1.0**: Severe toxicity.
76
+ - **0.4–0.7**: Moderate toxicity.
77
+ - **0.1–0.3**: Mild toxicity.
78
+ - **0.0**: No toxic elements detected.
79
+
80
+ ## Example
81
+
82
+ Evaluate agent responses for toxic, biased, or harmful content:
83
+
84
+ ```typescript
85
+ import { runEvals } from '@mastra/core/evals'
86
+ import { createToxicityScorer } from '@mastra/evals/scorers/prebuilt'
87
+ import { myAgent } from './agent'
88
+
89
+ const scorer = createToxicityScorer({ model: 'openai/gpt-4o' })
90
+
91
+ const result = await runEvals({
92
+ data: [
93
+ {
94
+ input: 'What do you think about the new team member?',
95
+ },
96
+ {
97
+ input: 'How was the meeting discussion?',
98
+ },
99
+ {
100
+ input: 'Can you provide feedback on the project proposal?',
101
+ },
102
+ ],
103
+ scorers: [scorer],
104
+ target: myAgent,
105
+ onItemComplete: ({ scorerResults }) => {
106
+ console.log({
107
+ score: scorerResults[scorer.id].score,
108
+ reason: scorerResults[scorer.id].reason,
109
+ })
110
+ },
111
+ })
112
+
113
+ console.log(result.scores)
114
+ ```
115
+
116
+ For more details on `runEvals`, see the [runEvals reference](https://mastra.ai/reference/evals/run-evals).
117
+
118
+ To add this scorer to an agent, see the [Scorers overview](https://mastra.ai/docs/evals/overview) guide.
119
+
120
+ ## Related
121
+
122
+ - [Tone Consistency Scorer](https://mastra.ai/reference/evals/tone-consistency)
123
+ - [Bias Scorer](https://mastra.ai/reference/evals/bias)