@mastra/core 1.6.0 → 1.7.0-alpha.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 (452) hide show
  1. package/CHANGELOG.md +117 -0
  2. package/dist/agent/agent.d.ts +6 -0
  3. package/dist/agent/agent.d.ts.map +1 -1
  4. package/dist/agent/index.cjs +8 -8
  5. package/dist/agent/index.js +1 -1
  6. package/dist/{chunk-IHDE4CJV.js → chunk-6NRSTTAS.js} +80 -11
  7. package/dist/chunk-6NRSTTAS.js.map +1 -0
  8. package/dist/{chunk-4WG5K4CK.js → chunk-6RTFK6XW.js} +7 -7
  9. package/dist/{chunk-4WG5K4CK.js.map → chunk-6RTFK6XW.js.map} +1 -1
  10. package/dist/{chunk-AYHSPIT6.cjs → chunk-7UAJ6LMR.cjs} +820 -259
  11. package/dist/chunk-7UAJ6LMR.cjs.map +1 -0
  12. package/dist/{chunk-EEU5NHHU.js → chunk-DFCRXDVK.js} +3 -3
  13. package/dist/{chunk-EEU5NHHU.js.map → chunk-DFCRXDVK.js.map} +1 -1
  14. package/dist/{chunk-5K45E5VE.js → chunk-GPJGPARM.js} +3 -2
  15. package/dist/chunk-GPJGPARM.js.map +1 -0
  16. package/dist/{chunk-VJWRJWSC.cjs → chunk-HYU6AULN.cjs} +85 -15
  17. package/dist/chunk-HYU6AULN.cjs.map +1 -0
  18. package/dist/{chunk-DGS2KGDI.js → chunk-HZ33YLNC.js} +6 -5
  19. package/dist/chunk-HZ33YLNC.js.map +1 -0
  20. package/dist/{chunk-3U3XFMGJ.cjs → chunk-N435UBEN.cjs} +13 -8
  21. package/dist/chunk-N435UBEN.cjs.map +1 -0
  22. package/dist/{chunk-5VQPSWPG.cjs → chunk-NAUBU4SI.cjs} +48 -48
  23. package/dist/{chunk-5VQPSWPG.cjs.map → chunk-NAUBU4SI.cjs.map} +1 -1
  24. package/dist/{chunk-MWGGSA5Q.js → chunk-NHYSIYTD.js} +10 -5
  25. package/dist/chunk-NHYSIYTD.js.map +1 -0
  26. package/dist/{chunk-RZNHRIM7.cjs → chunk-OL4P6TXG.cjs} +5 -5
  27. package/dist/{chunk-RZNHRIM7.cjs.map → chunk-OL4P6TXG.cjs.map} +1 -1
  28. package/dist/{chunk-XWZAKKFT.cjs → chunk-S3JIVN4S.cjs} +14 -14
  29. package/dist/{chunk-XWZAKKFT.cjs.map → chunk-S3JIVN4S.cjs.map} +1 -1
  30. package/dist/{chunk-TVPANHLE.cjs → chunk-SBOHDNIZ.cjs} +3 -2
  31. package/dist/chunk-SBOHDNIZ.cjs.map +1 -0
  32. package/dist/{chunk-LNKS4TJ6.cjs → chunk-T4KRCLC3.cjs} +8 -7
  33. package/dist/chunk-T4KRCLC3.cjs.map +1 -0
  34. package/dist/{chunk-RHKNKJNM.js → chunk-WBVBORCZ.js} +4 -4
  35. package/dist/{chunk-RHKNKJNM.js.map → chunk-WBVBORCZ.js.map} +1 -1
  36. package/dist/{chunk-YM6245EM.js → chunk-WR5RUKVK.js} +3 -3
  37. package/dist/{chunk-YM6245EM.js.map → chunk-WR5RUKVK.js.map} +1 -1
  38. package/dist/{chunk-TL2TTA4X.cjs → chunk-YQG7NBPR.cjs} +9 -9
  39. package/dist/{chunk-TL2TTA4X.cjs.map → chunk-YQG7NBPR.cjs.map} +1 -1
  40. package/dist/{chunk-XB3DA67Q.js → chunk-ZSBM2SVU.js} +818 -259
  41. package/dist/chunk-ZSBM2SVU.js.map +1 -0
  42. package/dist/datasets/experiment/scorer.d.ts.map +1 -1
  43. package/dist/datasets/index.cjs +17 -17
  44. package/dist/datasets/index.js +2 -2
  45. package/dist/evals/index.cjs +20 -20
  46. package/dist/evals/index.js +3 -3
  47. package/dist/evals/scoreTraces/index.cjs +7 -6
  48. package/dist/evals/scoreTraces/index.cjs.map +1 -1
  49. package/dist/evals/scoreTraces/index.js +4 -3
  50. package/dist/evals/scoreTraces/index.js.map +1 -1
  51. package/dist/evals/scoreTraces/scoreTracesWorkflow.d.ts.map +1 -1
  52. package/dist/harness/harness.d.ts +21 -1
  53. package/dist/harness/harness.d.ts.map +1 -1
  54. package/dist/harness/index.cjs +422 -5
  55. package/dist/harness/index.cjs.map +1 -1
  56. package/dist/harness/index.d.ts +2 -1
  57. package/dist/harness/index.d.ts.map +1 -1
  58. package/dist/harness/index.js +418 -3
  59. package/dist/harness/index.js.map +1 -1
  60. package/dist/harness/types.d.ts +151 -0
  61. package/dist/harness/types.d.ts.map +1 -1
  62. package/dist/index.cjs +2 -2
  63. package/dist/index.js +1 -1
  64. package/dist/loop/index.cjs +12 -12
  65. package/dist/loop/index.js +1 -1
  66. package/dist/loop/test-utils/tools.d.ts.map +1 -1
  67. package/dist/loop/workflows/agentic-loop/index.d.ts.map +1 -1
  68. package/dist/mastra/hooks.d.ts.map +1 -1
  69. package/dist/mastra/index.cjs +2 -2
  70. package/dist/mastra/index.js +1 -1
  71. package/dist/memory/index.cjs +14 -14
  72. package/dist/memory/index.js +1 -1
  73. package/dist/processor-provider/index.cjs +10 -10
  74. package/dist/processor-provider/index.js +1 -1
  75. package/dist/processors/index.cjs +45 -41
  76. package/dist/processors/index.js +1 -1
  77. package/dist/processors/processors/index.d.ts +1 -0
  78. package/dist/processors/processors/index.d.ts.map +1 -1
  79. package/dist/processors/processors/workspace-instructions.d.ts +50 -0
  80. package/dist/processors/processors/workspace-instructions.d.ts.map +1 -0
  81. package/dist/relevance/index.cjs +3 -3
  82. package/dist/relevance/index.js +1 -1
  83. package/dist/storage/constants.cjs +56 -56
  84. package/dist/storage/constants.d.ts.map +1 -1
  85. package/dist/storage/constants.js +1 -1
  86. package/dist/storage/index.cjs +160 -160
  87. package/dist/storage/index.js +2 -2
  88. package/dist/storage/types.d.ts +2 -0
  89. package/dist/storage/types.d.ts.map +1 -1
  90. package/dist/stream/aisdk/v5/compat/prepare-tools.d.ts.map +1 -1
  91. package/dist/stream/index.cjs +8 -8
  92. package/dist/stream/index.js +1 -1
  93. package/dist/tool-loop-agent/index.cjs +4 -4
  94. package/dist/tool-loop-agent/index.js +1 -1
  95. package/dist/vector/index.cjs +7 -7
  96. package/dist/vector/index.js +1 -1
  97. package/dist/workflows/evented/index.cjs +10 -10
  98. package/dist/workflows/evented/index.js +1 -1
  99. package/dist/workflows/index.cjs +25 -25
  100. package/dist/workflows/index.js +1 -1
  101. package/dist/workspace/constants/index.d.ts +2 -0
  102. package/dist/workspace/constants/index.d.ts.map +1 -1
  103. package/dist/workspace/errors.d.ts +1 -1
  104. package/dist/workspace/errors.d.ts.map +1 -1
  105. package/dist/workspace/filesystem/composite-filesystem.d.ts +4 -1
  106. package/dist/workspace/filesystem/composite-filesystem.d.ts.map +1 -1
  107. package/dist/workspace/filesystem/file-write-lock.d.ts +35 -0
  108. package/dist/workspace/filesystem/file-write-lock.d.ts.map +1 -0
  109. package/dist/workspace/filesystem/filesystem.d.ts +5 -1
  110. package/dist/workspace/filesystem/filesystem.d.ts.map +1 -1
  111. package/dist/workspace/filesystem/index.d.ts +1 -0
  112. package/dist/workspace/filesystem/index.d.ts.map +1 -1
  113. package/dist/workspace/filesystem/local-filesystem.d.ts +17 -1
  114. package/dist/workspace/filesystem/local-filesystem.d.ts.map +1 -1
  115. package/dist/workspace/index.cjs +72 -64
  116. package/dist/workspace/index.d.ts +3 -2
  117. package/dist/workspace/index.d.ts.map +1 -1
  118. package/dist/workspace/index.js +1 -1
  119. package/dist/workspace/lifecycle.d.ts +1 -9
  120. package/dist/workspace/lifecycle.d.ts.map +1 -1
  121. package/dist/workspace/sandbox/index.d.ts +2 -0
  122. package/dist/workspace/sandbox/index.d.ts.map +1 -1
  123. package/dist/workspace/sandbox/local-process-manager.d.ts +18 -0
  124. package/dist/workspace/sandbox/local-process-manager.d.ts.map +1 -0
  125. package/dist/workspace/sandbox/local-sandbox.d.ts +49 -35
  126. package/dist/workspace/sandbox/local-sandbox.d.ts.map +1 -1
  127. package/dist/workspace/sandbox/mastra-sandbox.d.ts +45 -11
  128. package/dist/workspace/sandbox/mastra-sandbox.d.ts.map +1 -1
  129. package/dist/workspace/sandbox/native-sandbox/bubblewrap.d.ts +2 -3
  130. package/dist/workspace/sandbox/native-sandbox/bubblewrap.d.ts.map +1 -1
  131. package/dist/workspace/sandbox/native-sandbox/seatbelt.d.ts +2 -3
  132. package/dist/workspace/sandbox/native-sandbox/seatbelt.d.ts.map +1 -1
  133. package/dist/workspace/sandbox/native-sandbox/wrapper.d.ts +4 -5
  134. package/dist/workspace/sandbox/native-sandbox/wrapper.d.ts.map +1 -1
  135. package/dist/workspace/sandbox/process-manager/index.d.ts +4 -0
  136. package/dist/workspace/sandbox/process-manager/index.d.ts.map +1 -0
  137. package/dist/workspace/sandbox/process-manager/process-handle.d.ts +107 -0
  138. package/dist/workspace/sandbox/process-manager/process-handle.d.ts.map +1 -0
  139. package/dist/workspace/sandbox/process-manager/process-manager.d.ts +59 -0
  140. package/dist/workspace/sandbox/process-manager/process-manager.d.ts.map +1 -0
  141. package/dist/workspace/sandbox/process-manager/types.d.ts +24 -0
  142. package/dist/workspace/sandbox/process-manager/types.d.ts.map +1 -0
  143. package/dist/workspace/sandbox/sandbox.d.ts +38 -2
  144. package/dist/workspace/sandbox/sandbox.d.ts.map +1 -1
  145. package/dist/workspace/sandbox/types.d.ts +9 -2
  146. package/dist/workspace/sandbox/types.d.ts.map +1 -1
  147. package/dist/workspace/sandbox/utils.d.ts +7 -0
  148. package/dist/workspace/sandbox/utils.d.ts.map +1 -0
  149. package/dist/workspace/tools/execute-command.d.ts +53 -2
  150. package/dist/workspace/tools/execute-command.d.ts.map +1 -1
  151. package/dist/workspace/tools/get-process-output.d.ts +6 -0
  152. package/dist/workspace/tools/get-process-output.d.ts.map +1 -0
  153. package/dist/workspace/tools/index.d.ts +4 -1
  154. package/dist/workspace/tools/index.d.ts.map +1 -1
  155. package/dist/workspace/tools/kill-process.d.ts +4 -0
  156. package/dist/workspace/tools/kill-process.d.ts.map +1 -0
  157. package/dist/workspace/tools/output-helpers.d.ts +21 -0
  158. package/dist/workspace/tools/output-helpers.d.ts.map +1 -0
  159. package/dist/workspace/tools/tools.d.ts.map +1 -1
  160. package/dist/workspace/types.d.ts +31 -0
  161. package/dist/workspace/types.d.ts.map +1 -1
  162. package/dist/workspace/utils.d.ts +11 -0
  163. package/dist/workspace/utils.d.ts.map +1 -0
  164. package/dist/workspace/workspace.d.ts +36 -0
  165. package/dist/workspace/workspace.d.ts.map +1 -1
  166. package/package.json +2 -2
  167. package/dist/chunk-3U3XFMGJ.cjs.map +0 -1
  168. package/dist/chunk-5K45E5VE.js.map +0 -1
  169. package/dist/chunk-AYHSPIT6.cjs.map +0 -1
  170. package/dist/chunk-DGS2KGDI.js.map +0 -1
  171. package/dist/chunk-IHDE4CJV.js.map +0 -1
  172. package/dist/chunk-LNKS4TJ6.cjs.map +0 -1
  173. package/dist/chunk-MWGGSA5Q.js.map +0 -1
  174. package/dist/chunk-TVPANHLE.cjs.map +0 -1
  175. package/dist/chunk-VJWRJWSC.cjs.map +0 -1
  176. package/dist/chunk-XB3DA67Q.js.map +0 -1
  177. package/dist/docs/SKILL.md +0 -301
  178. package/dist/docs/assets/SOURCE_MAP.json +0 -1413
  179. package/dist/docs/references/docs-agents-adding-voice.md +0 -353
  180. package/dist/docs/references/docs-agents-agent-approval.md +0 -377
  181. package/dist/docs/references/docs-agents-agent-memory.md +0 -212
  182. package/dist/docs/references/docs-agents-guardrails.md +0 -382
  183. package/dist/docs/references/docs-agents-network-approval.md +0 -275
  184. package/dist/docs/references/docs-agents-networks.md +0 -290
  185. package/dist/docs/references/docs-agents-overview.md +0 -309
  186. package/dist/docs/references/docs-agents-processors.md +0 -632
  187. package/dist/docs/references/docs-agents-structured-output.md +0 -271
  188. package/dist/docs/references/docs-agents-using-tools.md +0 -214
  189. package/dist/docs/references/docs-evals-custom-scorers.md +0 -519
  190. package/dist/docs/references/docs-evals-overview.md +0 -146
  191. package/dist/docs/references/docs-evals-running-in-ci.md +0 -106
  192. package/dist/docs/references/docs-mcp-overview.md +0 -370
  193. package/dist/docs/references/docs-mcp-publishing-mcp-server.md +0 -95
  194. package/dist/docs/references/docs-memory-memory-processors.md +0 -316
  195. package/dist/docs/references/docs-memory-observational-memory.md +0 -246
  196. package/dist/docs/references/docs-memory-overview.md +0 -45
  197. package/dist/docs/references/docs-memory-semantic-recall.md +0 -272
  198. package/dist/docs/references/docs-memory-storage.md +0 -261
  199. package/dist/docs/references/docs-memory-working-memory.md +0 -400
  200. package/dist/docs/references/docs-observability-datasets-overview.md +0 -188
  201. package/dist/docs/references/docs-observability-datasets-running-experiments.md +0 -266
  202. package/dist/docs/references/docs-observability-logging.md +0 -99
  203. package/dist/docs/references/docs-observability-overview.md +0 -70
  204. package/dist/docs/references/docs-observability-tracing-bridges-otel.md +0 -209
  205. package/dist/docs/references/docs-observability-tracing-exporters-arize.md +0 -274
  206. package/dist/docs/references/docs-observability-tracing-exporters-braintrust.md +0 -111
  207. package/dist/docs/references/docs-observability-tracing-exporters-cloud.md +0 -129
  208. package/dist/docs/references/docs-observability-tracing-exporters-datadog.md +0 -187
  209. package/dist/docs/references/docs-observability-tracing-exporters-default.md +0 -211
  210. package/dist/docs/references/docs-observability-tracing-exporters-laminar.md +0 -100
  211. package/dist/docs/references/docs-observability-tracing-exporters-langfuse.md +0 -217
  212. package/dist/docs/references/docs-observability-tracing-exporters-langsmith.md +0 -202
  213. package/dist/docs/references/docs-observability-tracing-exporters-otel.md +0 -479
  214. package/dist/docs/references/docs-observability-tracing-exporters-posthog.md +0 -148
  215. package/dist/docs/references/docs-observability-tracing-overview.md +0 -1114
  216. package/dist/docs/references/docs-rag-chunking-and-embedding.md +0 -183
  217. package/dist/docs/references/docs-rag-graph-rag.md +0 -215
  218. package/dist/docs/references/docs-rag-overview.md +0 -72
  219. package/dist/docs/references/docs-rag-retrieval.md +0 -521
  220. package/dist/docs/references/docs-rag-vector-databases.md +0 -648
  221. package/dist/docs/references/docs-server-auth-auth0.md +0 -222
  222. package/dist/docs/references/docs-server-auth-clerk.md +0 -132
  223. package/dist/docs/references/docs-server-auth-composite-auth.md +0 -234
  224. package/dist/docs/references/docs-server-auth-custom-auth-provider.md +0 -513
  225. package/dist/docs/references/docs-server-auth-firebase.md +0 -272
  226. package/dist/docs/references/docs-server-auth-jwt.md +0 -110
  227. package/dist/docs/references/docs-server-auth-simple-auth.md +0 -178
  228. package/dist/docs/references/docs-server-auth-supabase.md +0 -117
  229. package/dist/docs/references/docs-server-auth-workos.md +0 -190
  230. package/dist/docs/references/docs-server-custom-adapters.md +0 -374
  231. package/dist/docs/references/docs-server-custom-api-routes.md +0 -267
  232. package/dist/docs/references/docs-server-mastra-client.md +0 -243
  233. package/dist/docs/references/docs-server-mastra-server.md +0 -71
  234. package/dist/docs/references/docs-server-middleware.md +0 -228
  235. package/dist/docs/references/docs-server-request-context.md +0 -478
  236. package/dist/docs/references/docs-streaming-events.md +0 -247
  237. package/dist/docs/references/docs-streaming-tool-streaming.md +0 -178
  238. package/dist/docs/references/docs-streaming-workflow-streaming.md +0 -109
  239. package/dist/docs/references/docs-voice-overview.md +0 -979
  240. package/dist/docs/references/docs-voice-speech-to-speech.md +0 -103
  241. package/dist/docs/references/docs-voice-speech-to-text.md +0 -80
  242. package/dist/docs/references/docs-voice-text-to-speech.md +0 -84
  243. package/dist/docs/references/docs-workflows-agents-and-tools.md +0 -170
  244. package/dist/docs/references/docs-workflows-control-flow.md +0 -823
  245. package/dist/docs/references/docs-workflows-error-handling.md +0 -360
  246. package/dist/docs/references/docs-workflows-human-in-the-loop.md +0 -213
  247. package/dist/docs/references/docs-workflows-overview.md +0 -372
  248. package/dist/docs/references/docs-workflows-snapshots.md +0 -238
  249. package/dist/docs/references/docs-workflows-suspend-and-resume.md +0 -205
  250. package/dist/docs/references/docs-workflows-time-travel.md +0 -309
  251. package/dist/docs/references/docs-workflows-workflow-state.md +0 -181
  252. package/dist/docs/references/docs-workspace-filesystem.md +0 -162
  253. package/dist/docs/references/docs-workspace-overview.md +0 -239
  254. package/dist/docs/references/docs-workspace-sandbox.md +0 -63
  255. package/dist/docs/references/docs-workspace-search.md +0 -219
  256. package/dist/docs/references/docs-workspace-skills.md +0 -126
  257. package/dist/docs/references/guides-agent-frameworks-ai-sdk.md +0 -140
  258. package/dist/docs/references/reference-agents-agent.md +0 -142
  259. package/dist/docs/references/reference-agents-generate.md +0 -174
  260. package/dist/docs/references/reference-agents-generateLegacy.md +0 -176
  261. package/dist/docs/references/reference-agents-getDefaultGenerateOptions.md +0 -36
  262. package/dist/docs/references/reference-agents-getDefaultOptions.md +0 -34
  263. package/dist/docs/references/reference-agents-getDefaultStreamOptions.md +0 -36
  264. package/dist/docs/references/reference-agents-getDescription.md +0 -21
  265. package/dist/docs/references/reference-agents-getInstructions.md +0 -34
  266. package/dist/docs/references/reference-agents-getLLM.md +0 -37
  267. package/dist/docs/references/reference-agents-getMemory.md +0 -34
  268. package/dist/docs/references/reference-agents-getModel.md +0 -34
  269. package/dist/docs/references/reference-agents-getTools.md +0 -29
  270. package/dist/docs/references/reference-agents-getVoice.md +0 -34
  271. package/dist/docs/references/reference-agents-listAgents.md +0 -35
  272. package/dist/docs/references/reference-agents-listScorers.md +0 -34
  273. package/dist/docs/references/reference-agents-listTools.md +0 -34
  274. package/dist/docs/references/reference-agents-listWorkflows.md +0 -34
  275. package/dist/docs/references/reference-agents-network.md +0 -134
  276. package/dist/docs/references/reference-ai-sdk-chat-route.md +0 -82
  277. package/dist/docs/references/reference-ai-sdk-network-route.md +0 -74
  278. package/dist/docs/references/reference-ai-sdk-to-ai-sdk-stream.md +0 -232
  279. package/dist/docs/references/reference-ai-sdk-with-mastra.md +0 -59
  280. package/dist/docs/references/reference-ai-sdk-workflow-route.md +0 -79
  281. package/dist/docs/references/reference-auth-auth0.md +0 -73
  282. package/dist/docs/references/reference-auth-clerk.md +0 -36
  283. package/dist/docs/references/reference-auth-firebase.md +0 -80
  284. package/dist/docs/references/reference-auth-jwt.md +0 -26
  285. package/dist/docs/references/reference-auth-supabase.md +0 -33
  286. package/dist/docs/references/reference-auth-workos.md +0 -84
  287. package/dist/docs/references/reference-client-js-agents.md +0 -438
  288. package/dist/docs/references/reference-configuration.md +0 -749
  289. package/dist/docs/references/reference-core-addGateway.md +0 -42
  290. package/dist/docs/references/reference-core-getAgent.md +0 -21
  291. package/dist/docs/references/reference-core-getAgentById.md +0 -21
  292. package/dist/docs/references/reference-core-getDeployer.md +0 -22
  293. package/dist/docs/references/reference-core-getGateway.md +0 -38
  294. package/dist/docs/references/reference-core-getGatewayById.md +0 -41
  295. package/dist/docs/references/reference-core-getLogger.md +0 -22
  296. package/dist/docs/references/reference-core-getMCPServer.md +0 -45
  297. package/dist/docs/references/reference-core-getMCPServerById.md +0 -53
  298. package/dist/docs/references/reference-core-getMemory.md +0 -50
  299. package/dist/docs/references/reference-core-getScorer.md +0 -54
  300. package/dist/docs/references/reference-core-getScorerById.md +0 -54
  301. package/dist/docs/references/reference-core-getServer.md +0 -22
  302. package/dist/docs/references/reference-core-getStorage.md +0 -22
  303. package/dist/docs/references/reference-core-getStoredAgentById.md +0 -89
  304. package/dist/docs/references/reference-core-getTelemetry.md +0 -22
  305. package/dist/docs/references/reference-core-getVector.md +0 -22
  306. package/dist/docs/references/reference-core-getWorkflow.md +0 -40
  307. package/dist/docs/references/reference-core-listAgents.md +0 -21
  308. package/dist/docs/references/reference-core-listGateways.md +0 -40
  309. package/dist/docs/references/reference-core-listLogs.md +0 -38
  310. package/dist/docs/references/reference-core-listLogsByRunId.md +0 -36
  311. package/dist/docs/references/reference-core-listMCPServers.md +0 -51
  312. package/dist/docs/references/reference-core-listMemory.md +0 -56
  313. package/dist/docs/references/reference-core-listScorers.md +0 -29
  314. package/dist/docs/references/reference-core-listStoredAgents.md +0 -93
  315. package/dist/docs/references/reference-core-listVectors.md +0 -22
  316. package/dist/docs/references/reference-core-listWorkflows.md +0 -21
  317. package/dist/docs/references/reference-core-mastra-class.md +0 -66
  318. package/dist/docs/references/reference-core-mastra-model-gateway.md +0 -153
  319. package/dist/docs/references/reference-core-setLogger.md +0 -26
  320. package/dist/docs/references/reference-core-setStorage.md +0 -27
  321. package/dist/docs/references/reference-datasets-addItem.md +0 -35
  322. package/dist/docs/references/reference-datasets-addItems.md +0 -33
  323. package/dist/docs/references/reference-datasets-compareExperiments.md +0 -48
  324. package/dist/docs/references/reference-datasets-create.md +0 -49
  325. package/dist/docs/references/reference-datasets-dataset.md +0 -78
  326. package/dist/docs/references/reference-datasets-datasets-manager.md +0 -84
  327. package/dist/docs/references/reference-datasets-delete.md +0 -23
  328. package/dist/docs/references/reference-datasets-deleteExperiment.md +0 -25
  329. package/dist/docs/references/reference-datasets-deleteItem.md +0 -25
  330. package/dist/docs/references/reference-datasets-deleteItems.md +0 -27
  331. package/dist/docs/references/reference-datasets-get.md +0 -29
  332. package/dist/docs/references/reference-datasets-getDetails.md +0 -45
  333. package/dist/docs/references/reference-datasets-getExperiment.md +0 -28
  334. package/dist/docs/references/reference-datasets-getItem.md +0 -31
  335. package/dist/docs/references/reference-datasets-getItemHistory.md +0 -29
  336. package/dist/docs/references/reference-datasets-list.md +0 -29
  337. package/dist/docs/references/reference-datasets-listExperimentResults.md +0 -37
  338. package/dist/docs/references/reference-datasets-listExperiments.md +0 -31
  339. package/dist/docs/references/reference-datasets-listItems.md +0 -44
  340. package/dist/docs/references/reference-datasets-listVersions.md +0 -31
  341. package/dist/docs/references/reference-datasets-startExperiment.md +0 -60
  342. package/dist/docs/references/reference-datasets-startExperimentAsync.md +0 -41
  343. package/dist/docs/references/reference-datasets-update.md +0 -46
  344. package/dist/docs/references/reference-datasets-updateItem.md +0 -36
  345. package/dist/docs/references/reference-evals-answer-relevancy.md +0 -105
  346. package/dist/docs/references/reference-evals-answer-similarity.md +0 -99
  347. package/dist/docs/references/reference-evals-bias.md +0 -120
  348. package/dist/docs/references/reference-evals-completeness.md +0 -137
  349. package/dist/docs/references/reference-evals-content-similarity.md +0 -101
  350. package/dist/docs/references/reference-evals-context-precision.md +0 -196
  351. package/dist/docs/references/reference-evals-create-scorer.md +0 -270
  352. package/dist/docs/references/reference-evals-faithfulness.md +0 -114
  353. package/dist/docs/references/reference-evals-hallucination.md +0 -220
  354. package/dist/docs/references/reference-evals-keyword-coverage.md +0 -128
  355. package/dist/docs/references/reference-evals-mastra-scorer.md +0 -123
  356. package/dist/docs/references/reference-evals-run-evals.md +0 -138
  357. package/dist/docs/references/reference-evals-scorer-utils.md +0 -330
  358. package/dist/docs/references/reference-evals-textual-difference.md +0 -113
  359. package/dist/docs/references/reference-evals-tone-consistency.md +0 -119
  360. package/dist/docs/references/reference-evals-toxicity.md +0 -123
  361. package/dist/docs/references/reference-harness-harness-class.md +0 -645
  362. package/dist/docs/references/reference-logging-pino-logger.md +0 -117
  363. package/dist/docs/references/reference-memory-deleteMessages.md +0 -40
  364. package/dist/docs/references/reference-memory-memory-class.md +0 -147
  365. package/dist/docs/references/reference-memory-observational-memory.md +0 -565
  366. package/dist/docs/references/reference-observability-tracing-bridges-otel.md +0 -131
  367. package/dist/docs/references/reference-observability-tracing-configuration.md +0 -178
  368. package/dist/docs/references/reference-observability-tracing-exporters-console-exporter.md +0 -138
  369. package/dist/docs/references/reference-observability-tracing-exporters-datadog.md +0 -116
  370. package/dist/docs/references/reference-observability-tracing-instances.md +0 -109
  371. package/dist/docs/references/reference-observability-tracing-interfaces.md +0 -749
  372. package/dist/docs/references/reference-observability-tracing-processors-sensitive-data-filter.md +0 -144
  373. package/dist/docs/references/reference-observability-tracing-spans.md +0 -224
  374. package/dist/docs/references/reference-processors-batch-parts-processor.md +0 -61
  375. package/dist/docs/references/reference-processors-language-detector.md +0 -81
  376. package/dist/docs/references/reference-processors-message-history-processor.md +0 -85
  377. package/dist/docs/references/reference-processors-moderation-processor.md +0 -104
  378. package/dist/docs/references/reference-processors-pii-detector.md +0 -107
  379. package/dist/docs/references/reference-processors-processor-interface.md +0 -525
  380. package/dist/docs/references/reference-processors-prompt-injection-detector.md +0 -71
  381. package/dist/docs/references/reference-processors-semantic-recall-processor.md +0 -123
  382. package/dist/docs/references/reference-processors-system-prompt-scrubber.md +0 -80
  383. package/dist/docs/references/reference-processors-token-limiter-processor.md +0 -113
  384. package/dist/docs/references/reference-processors-tool-call-filter.md +0 -85
  385. package/dist/docs/references/reference-processors-tool-search-processor.md +0 -113
  386. package/dist/docs/references/reference-processors-unicode-normalizer.md +0 -62
  387. package/dist/docs/references/reference-processors-working-memory-processor.md +0 -154
  388. package/dist/docs/references/reference-rag-database-config.md +0 -264
  389. package/dist/docs/references/reference-rag-embeddings.md +0 -92
  390. package/dist/docs/references/reference-server-mastra-server.md +0 -298
  391. package/dist/docs/references/reference-server-register-api-route.md +0 -249
  392. package/dist/docs/references/reference-storage-cloudflare-d1.md +0 -218
  393. package/dist/docs/references/reference-storage-composite.md +0 -235
  394. package/dist/docs/references/reference-storage-lance.md +0 -131
  395. package/dist/docs/references/reference-storage-libsql.md +0 -135
  396. package/dist/docs/references/reference-storage-mongodb.md +0 -262
  397. package/dist/docs/references/reference-storage-mssql.md +0 -155
  398. package/dist/docs/references/reference-storage-overview.md +0 -121
  399. package/dist/docs/references/reference-storage-postgresql.md +0 -529
  400. package/dist/docs/references/reference-storage-upstash.md +0 -160
  401. package/dist/docs/references/reference-streaming-ChunkType.md +0 -292
  402. package/dist/docs/references/reference-streaming-agents-MastraModelOutput.md +0 -182
  403. package/dist/docs/references/reference-streaming-agents-streamLegacy.md +0 -142
  404. package/dist/docs/references/reference-streaming-workflows-observeStream.md +0 -42
  405. package/dist/docs/references/reference-streaming-workflows-resumeStream.md +0 -61
  406. package/dist/docs/references/reference-streaming-workflows-stream.md +0 -88
  407. package/dist/docs/references/reference-streaming-workflows-timeTravelStream.md +0 -142
  408. package/dist/docs/references/reference-templates-overview.md +0 -194
  409. package/dist/docs/references/reference-tools-create-tool.md +0 -237
  410. package/dist/docs/references/reference-tools-graph-rag-tool.md +0 -185
  411. package/dist/docs/references/reference-tools-mcp-client.md +0 -962
  412. package/dist/docs/references/reference-tools-mcp-server.md +0 -1275
  413. package/dist/docs/references/reference-tools-vector-query-tool.md +0 -459
  414. package/dist/docs/references/reference-vectors-libsql.md +0 -305
  415. package/dist/docs/references/reference-vectors-mongodb.md +0 -295
  416. package/dist/docs/references/reference-vectors-pg.md +0 -408
  417. package/dist/docs/references/reference-vectors-upstash.md +0 -294
  418. package/dist/docs/references/reference-voice-composite-voice.md +0 -121
  419. package/dist/docs/references/reference-voice-mastra-voice.md +0 -313
  420. package/dist/docs/references/reference-voice-voice.addInstructions.md +0 -56
  421. package/dist/docs/references/reference-voice-voice.addTools.md +0 -67
  422. package/dist/docs/references/reference-voice-voice.connect.md +0 -94
  423. package/dist/docs/references/reference-voice-voice.events.md +0 -37
  424. package/dist/docs/references/reference-voice-voice.listen.md +0 -164
  425. package/dist/docs/references/reference-voice-voice.on.md +0 -111
  426. package/dist/docs/references/reference-voice-voice.speak.md +0 -157
  427. package/dist/docs/references/reference-workflows-run-methods-cancel.md +0 -86
  428. package/dist/docs/references/reference-workflows-run-methods-restart.md +0 -33
  429. package/dist/docs/references/reference-workflows-run-methods-resume.md +0 -59
  430. package/dist/docs/references/reference-workflows-run-methods-start.md +0 -58
  431. package/dist/docs/references/reference-workflows-run-methods-startAsync.md +0 -67
  432. package/dist/docs/references/reference-workflows-run-methods-timeTravel.md +0 -142
  433. package/dist/docs/references/reference-workflows-run.md +0 -59
  434. package/dist/docs/references/reference-workflows-step.md +0 -119
  435. package/dist/docs/references/reference-workflows-workflow-methods-branch.md +0 -25
  436. package/dist/docs/references/reference-workflows-workflow-methods-commit.md +0 -17
  437. package/dist/docs/references/reference-workflows-workflow-methods-create-run.md +0 -63
  438. package/dist/docs/references/reference-workflows-workflow-methods-dountil.md +0 -25
  439. package/dist/docs/references/reference-workflows-workflow-methods-dowhile.md +0 -25
  440. package/dist/docs/references/reference-workflows-workflow-methods-foreach.md +0 -118
  441. package/dist/docs/references/reference-workflows-workflow-methods-map.md +0 -93
  442. package/dist/docs/references/reference-workflows-workflow-methods-parallel.md +0 -21
  443. package/dist/docs/references/reference-workflows-workflow-methods-sleep.md +0 -35
  444. package/dist/docs/references/reference-workflows-workflow-methods-sleepUntil.md +0 -35
  445. package/dist/docs/references/reference-workflows-workflow-methods-then.md +0 -21
  446. package/dist/docs/references/reference-workflows-workflow.md +0 -157
  447. package/dist/docs/references/reference-workspace-filesystem.md +0 -202
  448. package/dist/docs/references/reference-workspace-local-filesystem.md +0 -327
  449. package/dist/docs/references/reference-workspace-local-sandbox.md +0 -285
  450. package/dist/docs/references/reference-workspace-sandbox.md +0 -81
  451. package/dist/docs/references/reference-workspace-workspace-class.md +0 -226
  452. package/dist/docs/references/reference.md +0 -276
@@ -1,5 +1,5 @@
1
- import { isSupportedLanguageModel, Workflow } from './chunk-IHDE4CJV.js';
2
- import { saveScorePayloadSchema } from './chunk-5K45E5VE.js';
1
+ import { isSupportedLanguageModel, Workflow } from './chunk-6NRSTTAS.js';
2
+ import { saveScorePayloadSchema } from './chunk-GPJGPARM.js';
3
3
  import { MastraError } from './chunk-FJEVLHJT.js';
4
4
  import pMap from 'p-map';
5
5
 
@@ -50,6 +50,10 @@ function createOnScorerHook(mastra) {
50
50
  scorerId,
51
51
  spanId,
52
52
  traceId,
53
+ scorer: {
54
+ ...rest.scorer,
55
+ hasJudge: !!scorerToUse.scorer.judge
56
+ },
53
57
  metadata: {
54
58
  structuredOutput: !!structuredOutput
55
59
  }
@@ -584,7 +588,8 @@ async function saveSingleScore({
584
588
  id: scorer?.id || scorerId,
585
589
  name: scorer?.name || scorerId,
586
590
  description: scorer?.description || "",
587
- type: scorer?.type || "unknown"
591
+ type: scorer?.type || "unknown",
592
+ ...scorer ? { hasJudge: !!scorer.judge } : {}
588
593
  },
589
594
  entity: {
590
595
  id: target.id,
@@ -605,5 +610,5 @@ async function saveSingleScore({
605
610
  }
606
611
 
607
612
  export { createOnScorerHook, runEvals, validateAndSaveScore };
608
- //# sourceMappingURL=chunk-MWGGSA5Q.js.map
609
- //# sourceMappingURL=chunk-MWGGSA5Q.js.map
613
+ //# sourceMappingURL=chunk-NHYSIYTD.js.map
614
+ //# sourceMappingURL=chunk-NHYSIYTD.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/mastra/hooks.ts","../src/evals/run/scorerAccumulator.ts","../src/evals/run/index.ts"],"names":["pMap"],"mappings":"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","file":"chunk-NHYSIYTD.js","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 type { MastraStorage } from '../storage';\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 runResult = await scorerToUse.scorer.run({\n ...rest,\n input,\n output,\n });\n\n let spanId;\n let traceId;\n const currentSpan = hookData.tracingContext?.currentSpan;\n if (currentSpan && currentSpan.isValid) {\n spanId = currentSpan.id;\n traceId = currentSpan.traceId;\n }\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 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 mastra.getLogger()?.error(mastraError.toString());\n }\n };\n}\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\n addScores(scorerResults: Record<string, any>) {\n const isTargetWorkflowAndHasStepScores = 'steps' in scorerResults;\n if (isTargetWorkflowAndHasStepScores) {\n this.addNestedScores(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 addNestedScores(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\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 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, AiMessageType, UIMessageWithMetadata } from '../../agent';\nimport { isSupportedLanguageModel } from '../../agent';\nimport { MastraError } from '../../error';\nimport { validateAndSaveScore } from '../../mastra/hooks';\nimport type { TracingContext } from '../../observability';\nimport type { RequestContext } from '../../request-context';\nimport { Workflow } from '../../workflows';\nimport type { AnyWorkflow, WorkflowResult, StepResult } from '../../workflows';\nimport type { MastraScorer } from '../base';\nimport { ScoreAccumulator } from './scorerAccumulator';\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 requestContext?: RequestContext;\n tracingContext?: TracingContext;\n};\n\ntype WorkflowScorerConfig = {\n workflow?: MastraScorer<any, any, any, any>[];\n steps?: Record<string, 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 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 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 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 };\n }) => void | Promise<void>;\n concurrency?: number;\n}): Promise<RunEvalsResult>;\nexport async function runEvals(config: {\n data: RunEvalsDataItem<any>[];\n scorers: MastraScorer<any, any, any, any>[] | WorkflowScorerConfig;\n target: Agent | Workflow;\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, 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);\n const scorerResults = await runScorers(scorers, targetResult, item);\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 typeof scorers === 'object' && !Array.isArray(scorers) && ('workflow' in scorers || 'steps' in scorers);\n}\n\nfunction validateEvalsInputs(\n data: RunEvalsDataItem<any>[],\n scorers: MastraScorer<any, any, any, any>[] | WorkflowScorerConfig,\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) || (scorers.steps && Object.keys(scorers.steps).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 or step scorer must be provided',\n });\n }\n } else if (!isWorkflow(target) && !Array.isArray(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',\n });\n }\n}\n\nasync function executeTarget(target: Agent | Workflow, item: RunEvalsDataItem<any>) {\n try {\n if (isWorkflow(target)) {\n return await executeWorkflow(target, item);\n } else {\n return await executeAgent(target, item);\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>) {\n const run = await target.createRun({ disableScorers: true });\n const workflowResult = await run.start({\n inputData: item.input,\n requestContext: item.requestContext,\n });\n\n return {\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 },\n };\n}\n\nasync function executeAgent(agent: Agent, item: RunEvalsDataItem<any>) {\n const model = await agent.getModel();\n if (isSupportedLanguageModel(model)) {\n return await agent.generate(item.input as any, {\n scorers: {},\n returnScorerData: true,\n requestContext: item.requestContext,\n });\n } else {\n return await agent.generateLegacy(item.input as any, {\n scorers: {},\n returnScorerData: true,\n requestContext: item.requestContext,\n });\n }\n}\n\nasync function runScorers(\n scorers: MastraScorer<any, any, any, any>[] | WorkflowScorerConfig,\n targetResult: any,\n item: RunEvalsDataItem<any>,\n): Promise<Record<string, any>> {\n const scorerResults: Record<string, any> = {};\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 tracingContext: item.tracingContext,\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 {\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 tracingContext: item.tracingContext,\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 if (stepResult?.status === 'success' && stepResult.payload && stepResult.output) {\n const stepResults: Record<string, any> = {};\n for (const scorer of stepScorers) {\n try {\n const score = await scorer.run({\n input: stepResult.payload,\n output: stepResult.output,\n groundTruth: item.groundTruth,\n requestContext: item.requestContext,\n tracingContext: item.tracingContext,\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\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 */\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 // Handle flat scorer results (for agents or workflow-level scorers)\n if (Array.isArray(scorerResults) || !('workflow' in scorerResults && 'steps' in scorerResults)) {\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 {\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 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,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkVJWRJWSC_cjs = require('./chunk-VJWRJWSC.cjs');
3
+ var chunkHYU6AULN_cjs = require('./chunk-HYU6AULN.cjs');
4
4
  var chunkPM3UIIBK_cjs = require('./chunk-PM3UIIBK.cjs');
5
5
  var chunkO7PZ4VOO_cjs = require('./chunk-O7PZ4VOO.cjs');
6
6
  var chunkH5S4PS44_cjs = require('./chunk-H5S4PS44.cjs');
@@ -202,7 +202,7 @@ var ToolLoopAgentProcessor = class {
202
202
  let model = args.model;
203
203
  if (currentResult.model) {
204
204
  const resolvedModel = await chunkO7PZ4VOO_cjs.resolveModelConfig(currentResult.model);
205
- if (!chunkVJWRJWSC_cjs.isSupportedLanguageModel(resolvedModel)) {
205
+ if (!chunkHYU6AULN_cjs.isSupportedLanguageModel(resolvedModel)) {
206
206
  throw new Error("prepareStep returned an unsupported model version");
207
207
  }
208
208
  model = resolvedModel;
@@ -248,7 +248,7 @@ function toolLoopAgentToMastraAgent(agent, options) {
248
248
  const processor = new ToolLoopAgentProcessor(agent);
249
249
  const agentConfig = processor.getAgentConfig();
250
250
  const id = agentConfig.id || options?.fallbackName || `tool-loop-agent-${chunkPM3UIIBK_cjs.generateId()}`;
251
- return new chunkVJWRJWSC_cjs.Agent({
251
+ return new chunkHYU6AULN_cjs.Agent({
252
252
  ...agentConfig,
253
253
  id,
254
254
  name: agentConfig.name || id,
@@ -259,5 +259,5 @@ function toolLoopAgentToMastraAgent(agent, options) {
259
259
  exports.getSettings = getSettings;
260
260
  exports.isToolLoopAgentLike = isToolLoopAgentLike;
261
261
  exports.toolLoopAgentToMastraAgent = toolLoopAgentToMastraAgent;
262
- //# sourceMappingURL=chunk-RZNHRIM7.cjs.map
263
- //# sourceMappingURL=chunk-RZNHRIM7.cjs.map
262
+ //# sourceMappingURL=chunk-OL4P6TXG.cjs.map
263
+ //# sourceMappingURL=chunk-OL4P6TXG.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/tool-loop-agent/utils.ts","../src/tool-loop-agent/tool-loop-processor.ts","../src/tool-loop-agent/index.ts"],"names":["ToolLoopAgent","resolveModelConfig","isSupportedLanguageModel","generateId","Agent"],"mappings":"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","file":"chunk-RZNHRIM7.cjs","sourcesContent":["import { ToolLoopAgent } from '@internal/ai-v6';\nimport type { ToolLoopAgentSettings } from '@internal/ai-v6';\n\n/**\n * Shape of a ToolLoopAgent-like object for runtime extraction.\n * We use this looser type because TypeScript's structural typing doesn't work\n * well with private properties across different package declarations.\n */\nexport interface ToolLoopAgentLike {\n readonly id?: string;\n readonly version?: string;\n // The settings property is private in ToolLoopAgent but accessible at runtime\n // We don't declare it here since we access it via type casting\n}\n\nexport function isToolLoopAgentLike(obj: any): obj is ToolLoopAgentLike {\n if (!obj) return false;\n if (obj instanceof ToolLoopAgent) return true;\n return (\n 'version' in obj &&\n typeof obj.version === 'string' &&\n (obj.version === 'agent-v1' || obj.version.startsWith('agent-v'))\n );\n}\n\n/**\n * Extracts the settings from a ToolLoopAgent instance.\n * ToolLoopAgent.settings is private in TypeScript but accessible at runtime.\n */\nexport function getSettings(agent: ToolLoopAgentLike): ToolLoopAgentSettings<any, any, any> {\n const settings = (agent as unknown as { settings: ToolLoopAgentSettings<any, any, any> }).settings;\n if (!settings) {\n throw new Error('Could not extract settings from ToolLoopAgent. The agent may be from an incompatible version.');\n }\n return settings;\n}\n","import type {\n ToolLoopAgent,\n AgentCallParameters,\n ModelMessage,\n StepResult,\n ToolLoopAgentSettings,\n} from '@internal/ai-v6';\nimport { isSupportedLanguageModel } from '../agent';\nimport type { AgentExecutionOptions, AgentInstructions } from '../agent';\nimport { resolveModelConfig } from '../llm/model/resolve-model';\nimport type { MastraLanguageModel } from '../llm/model/shared.types';\nimport type { ProcessInputStepArgs, ProcessInputStepResult, Processor } from '../processors';\nimport { getSettings as getToolLoopAgentSettings } from './utils';\nimport type { ToolLoopAgentLike } from './utils';\n\ntype PrepareCallInput = AgentCallParameters<never> &\n Pick<\n ToolLoopAgentSettings<never, any, any>,\n | 'model'\n | 'tools'\n | 'maxOutputTokens'\n | 'temperature'\n | 'topP'\n | 'topK'\n | 'presencePenalty'\n | 'frequencyPenalty'\n | 'stopSequences'\n | 'seed'\n | 'headers'\n | 'instructions'\n | 'stopWhen'\n | 'experimental_telemetry'\n | 'activeTools'\n | 'providerOptions'\n | 'experimental_context'\n | 'experimental_download'\n >;\n\nexport class ToolLoopAgentProcessor implements Processor<'tool-loop-agent-processor'> {\n readonly id = 'tool-loop-agent-processor';\n readonly name = 'ToolLoop to Mastra Agent Processor';\n\n private agent: ToolLoopAgentLike;\n private settings: ToolLoopAgentSettings<any, any, any>;\n private prepareCallResult?: Awaited<ReturnType<NonNullable<ToolLoopAgentSettings<any, any, any>['prepareCall']>>>;\n\n constructor(agent: ToolLoopAgentLike) {\n this.agent = agent;\n this.settings = getToolLoopAgentSettings(agent);\n }\n\n public getAgentConfig() {\n const tools = 'tools' in this.agent ? (this.agent as ToolLoopAgent).tools : undefined;\n\n // Build default options from ToolLoopAgent config params\n const defaultOptions: Omit<AgentExecutionOptions<unknown>, 'abortSignal'> = {};\n\n // AgentExecutionOptions\n if (this.settings.toolChoice) {\n defaultOptions.toolChoice = this.settings.toolChoice;\n }\n if (this.settings.providerOptions) {\n defaultOptions.providerOptions = this.settings.providerOptions;\n }\n // AgentExecutionOptions[\"modelSettings\"]\n if (this.settings.temperature !== undefined) {\n defaultOptions.modelSettings = {\n ...(defaultOptions.modelSettings ?? {}),\n temperature: this.settings.temperature,\n };\n }\n if (this.settings.topP !== undefined) {\n defaultOptions.modelSettings = { ...(defaultOptions.modelSettings ?? {}), topP: this.settings.topP };\n }\n if (this.settings.topK !== undefined) {\n defaultOptions.modelSettings = { ...(defaultOptions.modelSettings ?? {}), topK: this.settings.topK };\n }\n if (this.settings.seed !== undefined) {\n defaultOptions.modelSettings = { ...(defaultOptions.modelSettings ?? {}), seed: this.settings.seed };\n }\n if (this.settings.maxOutputTokens !== undefined) {\n defaultOptions.modelSettings = {\n ...(defaultOptions.modelSettings ?? {}),\n maxOutputTokens: this.settings.maxOutputTokens,\n };\n }\n if (this.settings.presencePenalty !== undefined) {\n defaultOptions.modelSettings = {\n ...(defaultOptions.modelSettings ?? {}),\n presencePenalty: this.settings.presencePenalty,\n };\n }\n if (this.settings.frequencyPenalty !== undefined) {\n defaultOptions.modelSettings = {\n ...(defaultOptions.modelSettings ?? {}),\n frequencyPenalty: this.settings.frequencyPenalty,\n };\n }\n if (this.settings.stopSequences !== undefined) {\n defaultOptions.modelSettings = {\n ...(defaultOptions.modelSettings ?? {}),\n stopSequences: this.settings.stopSequences,\n };\n }\n if (this.settings.stopWhen) {\n // TODO: The callback signatures differ (Types of parameters stepResult and event are incompatible)\n defaultOptions.stopWhen = this.settings.stopWhen as any;\n }\n if (this.settings.onStepFinish) {\n // TODO: The callback signatures differ (Types of parameters stepResult and event are incompatible)\n defaultOptions.onStepFinish = this.settings.onStepFinish as any;\n }\n if (this.settings.onFinish) {\n // TODO: The callback signatures differ (Types of parameters 'event' and 'event' are incompatible)\n defaultOptions.onFinish = this.settings.onFinish as any;\n }\n\n return {\n id: this.settings.id,\n name: this.settings.id,\n instructions: (this.settings.instructions as AgentInstructions) ?? '',\n model: this.settings.model,\n tools,\n maxRetries: this.settings.maxRetries,\n defaultOptions: Object.keys(defaultOptions).length > 0 ? defaultOptions : undefined,\n };\n }\n\n /**\n * Maps prepareCall or prepareStep result to ProcessInputStepResult.\n * Both hooks return similar structures that can override model, tools, activeTools, etc.\n */\n private mapToProcessInputStepResult(\n result: Awaited<ReturnType<NonNullable<ToolLoopAgentSettings<any, any, any>['prepareCall']>>> | undefined,\n ): ProcessInputStepResult {\n if (!result) {\n return {};\n }\n\n const stepResult: ProcessInputStepResult = {};\n\n // Map model (both prepareCall and prepareStep can return this)\n if (result.model) {\n stepResult.model = result.model;\n }\n\n // Map tools (prepareCall can return this)\n if ('tools' in result && result.tools) {\n stepResult.tools = result.tools as Record<string, unknown>;\n }\n\n // Map toolChoice (prepareStep can return this)\n if ('toolChoice' in result && result.toolChoice !== undefined) {\n stepResult.toolChoice = result.toolChoice as ProcessInputStepResult['toolChoice'];\n }\n\n // Map activeTools (both can return this)\n if (result.activeTools) {\n stepResult.activeTools = result.activeTools as string[];\n }\n\n // Map providerOptions (prepareCall can return this)\n if ('providerOptions' in result && result.providerOptions) {\n stepResult.providerOptions = result.providerOptions;\n }\n\n // Map model settings (prepareCall can return individual settings)\n const modelSettings: ProcessInputStepResult['modelSettings'] = {};\n if ('temperature' in result && result.temperature !== undefined) {\n modelSettings.temperature = result.temperature;\n }\n if ('topP' in result && result.topP !== undefined) {\n modelSettings.topP = result.topP;\n }\n if ('topK' in result && result.topK !== undefined) {\n modelSettings.topK = result.topK;\n }\n if ('maxOutputTokens' in result && result.maxOutputTokens !== undefined) {\n modelSettings.maxOutputTokens = result.maxOutputTokens;\n }\n if ('presencePenalty' in result && result.presencePenalty !== undefined) {\n modelSettings.presencePenalty = result.presencePenalty;\n }\n if ('frequencyPenalty' in result && result.frequencyPenalty !== undefined) {\n modelSettings.frequencyPenalty = result.frequencyPenalty;\n }\n if ('stopSequences' in result && result.stopSequences !== undefined) {\n modelSettings.stopSequences = result.stopSequences;\n }\n if ('seed' in result && result.seed !== undefined) {\n modelSettings.seed = result.seed;\n }\n\n if (Object.keys(modelSettings).length > 0) {\n stepResult.modelSettings = modelSettings;\n }\n\n // Map system/instructions to systemMessages\n // prepareCall returns 'instructions', prepareStep returns 'system'\n const systemContent =\n 'instructions' in result ? result.instructions : 'system' in result ? result.system : undefined;\n if (systemContent) {\n // Convert to CoreMessageV4 format\n if (typeof systemContent === 'string') {\n stepResult.systemMessages = [{ role: 'system', content: systemContent }];\n } else if (Array.isArray(systemContent)) {\n stepResult.systemMessages = systemContent.map(msg =>\n typeof msg === 'string' ? { role: 'system' as const, content: msg } : msg,\n );\n } else if (typeof systemContent === 'object' && 'role' in systemContent && 'content' in systemContent) {\n stepResult.systemMessages = [systemContent as { role: 'system'; content: string }];\n }\n }\n\n // Map messages if prepareStep returns them\n // Convert AI SDK ModelMessage[] to MastraDBMessage[]\n if ('messages' in result && result.messages && Array.isArray(result.messages)) {\n // AI SDK v6 ModelMessage is compatible with MessageListInput at runtime\n // stepResult.messages = convertMessages(result.messages as any).to('Mastra.V2');\n stepResult.messages = result.messages as any;\n }\n\n return stepResult;\n }\n\n private async handlePrepareCall(args: ProcessInputStepArgs) {\n if (this.settings.prepareCall) {\n const { model, messages, activeTools, providerOptions, modelSettings, tools } = args;\n // TODO: This should probably happen in processInput, currently calling in processInputStep if stepNumber === 0\n\n // Build the prepareCall input object\n // AI SDK prepareCall expects: AgentCallParameters & Pick<ToolLoopAgentSettings, ...settings>\n const prepareCallInput: PrepareCallInput = {\n // TODO: prepareCall expects messages in AI SDK format, we have them in Mastra format\n messages: messages as unknown as any,\n model,\n tools,\n instructions: this.settings.instructions,\n stopWhen: this.settings.stopWhen,\n activeTools,\n providerOptions,\n\n // Model settings\n temperature: modelSettings?.temperature,\n topP: modelSettings?.topP,\n topK: modelSettings?.topK,\n maxOutputTokens: modelSettings?.maxOutputTokens,\n presencePenalty: modelSettings?.presencePenalty,\n frequencyPenalty: modelSettings?.frequencyPenalty,\n stopSequences: modelSettings?.stopSequences,\n seed: modelSettings?.seed,\n\n // Experimental options\n // experimental_telemetry: this.settings.experimental_telemetry,\n // experimental_context: this.settings.experimental_context,\n // experimental_download: this.settings.experimental_download,\n };\n\n // Call prepareCall and apply any returned overrides\n const prepareCallResult = await this.settings.prepareCall(prepareCallInput as any); // TODO: types\n this.prepareCallResult = prepareCallResult;\n }\n }\n\n private async handlePrepareStep(args: ProcessInputStepArgs, currentResult: ProcessInputStepResult) {\n if (this.settings.prepareStep) {\n const { messages, steps, stepNumber } = args;\n\n let model = args.model;\n if (currentResult.model) {\n const resolvedModel = await resolveModelConfig(currentResult.model);\n if (!isSupportedLanguageModel(resolvedModel)) {\n throw new Error('prepareStep returned an unsupported model version');\n }\n model = resolvedModel;\n }\n\n // Use the model from currentResult if prepareCall overrode it, otherwise use args.model\n\n // Note: We pass messages and steps in Mastra format rather than converting to AI SDK format.\n // This is intentional - most prepareStep callbacks only return overrides and don't inspect\n // the message content. The type casts handle the format difference at runtime.\n const prepareStepInputArgs: {\n /**\n * The steps that have been executed so far.\n */\n steps: Array<StepResult<NoInfer<any>>>;\n /**\n * The number of the step that is being executed.\n */\n stepNumber: number;\n /**\n * The model instance that is being used for this step.\n */\n model: MastraLanguageModel;\n /**\n * The messages that will be sent to the model for the current step.\n * Note: These are in Mastra format (MastraDBMessage[]), not AI SDK ModelMessage format.\n */\n messages: Array<ModelMessage>;\n /**\n * The context passed via the experimental_context setting (experimental).\n */\n experimental_context: unknown;\n } = {\n model,\n // Messages are in Mastra format (MastraDBMessage[])\n messages: messages as any,\n // Steps may have minor type differences in usage properties (inputTokenDetails/outputTokenDetails)\n steps: steps as any,\n stepNumber,\n experimental_context: undefined,\n };\n\n const prepareStepResult = await this.settings.prepareStep(prepareStepInputArgs);\n return prepareStepResult;\n }\n }\n\n async processInputStep(args: ProcessInputStepArgs): Promise<ProcessInputStepResult | undefined | void> {\n const { stepNumber } = args;\n\n if (stepNumber === 0 && this.settings.prepareCall) {\n await this.handlePrepareCall(args);\n }\n\n let result: ProcessInputStepResult = {};\n\n // Apply prepareCall result (only on step 0, already called above)\n if (this.prepareCallResult) {\n const mappedResult = this.mapToProcessInputStepResult(this.prepareCallResult);\n if (Object.keys(mappedResult).length > 0) {\n result = { ...result, ...mappedResult };\n }\n }\n\n // Apply prepareStep result (called on every step)\n // Pass the current result so prepareStep sees any overrides from prepareCall\n if (this.settings.prepareStep) {\n const prepareStepResult = await this.handlePrepareStep(args, result);\n if (prepareStepResult) {\n const mappedResult = this.mapToProcessInputStepResult(prepareStepResult as any);\n // prepareStep overrides prepareCall for this step\n result = { ...result, ...mappedResult };\n }\n }\n\n return result;\n }\n}\n","import { generateId } from '@internal/ai-sdk-v5';\nimport { Agent } from '../agent';\nimport { ToolLoopAgentProcessor } from './tool-loop-processor';\nimport type { ToolLoopAgentLike } from './utils';\nexport { type ToolLoopAgentLike, isToolLoopAgentLike, getSettings } from './utils';\n\n/**\n * Converts an AI SDK v6 ToolLoopAgent instance into a Mastra Agent.\n *\n * This enables users to create a ToolLoopAgent using AI SDK's API\n * while gaining access to Mastra features like memory, processors, scorers, and observability.\n *\n * @example\n * ```typescript\n * import { ToolLoopAgent, tool } from 'ai';\n * import { openai } from '@ai-sdk/openai';\n * import { toolLoopAgentToMastraAgent } from '@mastra/core/tool-loop-agent';\n *\n * const toolLoopAgent = new ToolLoopAgent({\n * id: 'weather-agent',\n * model: openai('gpt-4o'),\n * instructions: 'You are a helpful weather assistant.',\n * tools: { weather: weatherTool },\n * temperature: 0.7,\n * });\n *\n * const mastraAgent = toolLoopAgentToMastraAgent(toolLoopAgent);\n *\n * const result = await mastraAgent.generate({ prompt: 'What is the weather in NYC?' });\n * ```\n *\n * @param agent - The ToolLoopAgent instance\n * @param options - Optional name fallback since Mastra Agent requires id/name but ToolLoopAgent doesn't\n * @returns A Mastra Agent instance\n */\nexport function toolLoopAgentToMastraAgent(agent: ToolLoopAgentLike, options?: { fallbackName?: string }) {\n const processor = new ToolLoopAgentProcessor(agent);\n const agentConfig = processor.getAgentConfig();\n const id = agentConfig.id || options?.fallbackName || `tool-loop-agent-${generateId()}`;\n\n return new Agent({\n ...agentConfig,\n id,\n name: agentConfig.name || id,\n inputProcessors: [processor],\n });\n}\n"]}
1
+ {"version":3,"sources":["../src/tool-loop-agent/utils.ts","../src/tool-loop-agent/tool-loop-processor.ts","../src/tool-loop-agent/index.ts"],"names":["ToolLoopAgent","resolveModelConfig","isSupportedLanguageModel","generateId","Agent"],"mappings":"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","file":"chunk-OL4P6TXG.cjs","sourcesContent":["import { ToolLoopAgent } from '@internal/ai-v6';\nimport type { ToolLoopAgentSettings } from '@internal/ai-v6';\n\n/**\n * Shape of a ToolLoopAgent-like object for runtime extraction.\n * We use this looser type because TypeScript's structural typing doesn't work\n * well with private properties across different package declarations.\n */\nexport interface ToolLoopAgentLike {\n readonly id?: string;\n readonly version?: string;\n // The settings property is private in ToolLoopAgent but accessible at runtime\n // We don't declare it here since we access it via type casting\n}\n\nexport function isToolLoopAgentLike(obj: any): obj is ToolLoopAgentLike {\n if (!obj) return false;\n if (obj instanceof ToolLoopAgent) return true;\n return (\n 'version' in obj &&\n typeof obj.version === 'string' &&\n (obj.version === 'agent-v1' || obj.version.startsWith('agent-v'))\n );\n}\n\n/**\n * Extracts the settings from a ToolLoopAgent instance.\n * ToolLoopAgent.settings is private in TypeScript but accessible at runtime.\n */\nexport function getSettings(agent: ToolLoopAgentLike): ToolLoopAgentSettings<any, any, any> {\n const settings = (agent as unknown as { settings: ToolLoopAgentSettings<any, any, any> }).settings;\n if (!settings) {\n throw new Error('Could not extract settings from ToolLoopAgent. The agent may be from an incompatible version.');\n }\n return settings;\n}\n","import type {\n ToolLoopAgent,\n AgentCallParameters,\n ModelMessage,\n StepResult,\n ToolLoopAgentSettings,\n} from '@internal/ai-v6';\nimport { isSupportedLanguageModel } from '../agent';\nimport type { AgentExecutionOptions, AgentInstructions } from '../agent';\nimport { resolveModelConfig } from '../llm/model/resolve-model';\nimport type { MastraLanguageModel } from '../llm/model/shared.types';\nimport type { ProcessInputStepArgs, ProcessInputStepResult, Processor } from '../processors';\nimport { getSettings as getToolLoopAgentSettings } from './utils';\nimport type { ToolLoopAgentLike } from './utils';\n\ntype PrepareCallInput = AgentCallParameters<never> &\n Pick<\n ToolLoopAgentSettings<never, any, any>,\n | 'model'\n | 'tools'\n | 'maxOutputTokens'\n | 'temperature'\n | 'topP'\n | 'topK'\n | 'presencePenalty'\n | 'frequencyPenalty'\n | 'stopSequences'\n | 'seed'\n | 'headers'\n | 'instructions'\n | 'stopWhen'\n | 'experimental_telemetry'\n | 'activeTools'\n | 'providerOptions'\n | 'experimental_context'\n | 'experimental_download'\n >;\n\nexport class ToolLoopAgentProcessor implements Processor<'tool-loop-agent-processor'> {\n readonly id = 'tool-loop-agent-processor';\n readonly name = 'ToolLoop to Mastra Agent Processor';\n\n private agent: ToolLoopAgentLike;\n private settings: ToolLoopAgentSettings<any, any, any>;\n private prepareCallResult?: Awaited<ReturnType<NonNullable<ToolLoopAgentSettings<any, any, any>['prepareCall']>>>;\n\n constructor(agent: ToolLoopAgentLike) {\n this.agent = agent;\n this.settings = getToolLoopAgentSettings(agent);\n }\n\n public getAgentConfig() {\n const tools = 'tools' in this.agent ? (this.agent as ToolLoopAgent).tools : undefined;\n\n // Build default options from ToolLoopAgent config params\n const defaultOptions: Omit<AgentExecutionOptions<unknown>, 'abortSignal'> = {};\n\n // AgentExecutionOptions\n if (this.settings.toolChoice) {\n defaultOptions.toolChoice = this.settings.toolChoice;\n }\n if (this.settings.providerOptions) {\n defaultOptions.providerOptions = this.settings.providerOptions;\n }\n // AgentExecutionOptions[\"modelSettings\"]\n if (this.settings.temperature !== undefined) {\n defaultOptions.modelSettings = {\n ...(defaultOptions.modelSettings ?? {}),\n temperature: this.settings.temperature,\n };\n }\n if (this.settings.topP !== undefined) {\n defaultOptions.modelSettings = { ...(defaultOptions.modelSettings ?? {}), topP: this.settings.topP };\n }\n if (this.settings.topK !== undefined) {\n defaultOptions.modelSettings = { ...(defaultOptions.modelSettings ?? {}), topK: this.settings.topK };\n }\n if (this.settings.seed !== undefined) {\n defaultOptions.modelSettings = { ...(defaultOptions.modelSettings ?? {}), seed: this.settings.seed };\n }\n if (this.settings.maxOutputTokens !== undefined) {\n defaultOptions.modelSettings = {\n ...(defaultOptions.modelSettings ?? {}),\n maxOutputTokens: this.settings.maxOutputTokens,\n };\n }\n if (this.settings.presencePenalty !== undefined) {\n defaultOptions.modelSettings = {\n ...(defaultOptions.modelSettings ?? {}),\n presencePenalty: this.settings.presencePenalty,\n };\n }\n if (this.settings.frequencyPenalty !== undefined) {\n defaultOptions.modelSettings = {\n ...(defaultOptions.modelSettings ?? {}),\n frequencyPenalty: this.settings.frequencyPenalty,\n };\n }\n if (this.settings.stopSequences !== undefined) {\n defaultOptions.modelSettings = {\n ...(defaultOptions.modelSettings ?? {}),\n stopSequences: this.settings.stopSequences,\n };\n }\n if (this.settings.stopWhen) {\n // TODO: The callback signatures differ (Types of parameters stepResult and event are incompatible)\n defaultOptions.stopWhen = this.settings.stopWhen as any;\n }\n if (this.settings.onStepFinish) {\n // TODO: The callback signatures differ (Types of parameters stepResult and event are incompatible)\n defaultOptions.onStepFinish = this.settings.onStepFinish as any;\n }\n if (this.settings.onFinish) {\n // TODO: The callback signatures differ (Types of parameters 'event' and 'event' are incompatible)\n defaultOptions.onFinish = this.settings.onFinish as any;\n }\n\n return {\n id: this.settings.id,\n name: this.settings.id,\n instructions: (this.settings.instructions as AgentInstructions) ?? '',\n model: this.settings.model,\n tools,\n maxRetries: this.settings.maxRetries,\n defaultOptions: Object.keys(defaultOptions).length > 0 ? defaultOptions : undefined,\n };\n }\n\n /**\n * Maps prepareCall or prepareStep result to ProcessInputStepResult.\n * Both hooks return similar structures that can override model, tools, activeTools, etc.\n */\n private mapToProcessInputStepResult(\n result: Awaited<ReturnType<NonNullable<ToolLoopAgentSettings<any, any, any>['prepareCall']>>> | undefined,\n ): ProcessInputStepResult {\n if (!result) {\n return {};\n }\n\n const stepResult: ProcessInputStepResult = {};\n\n // Map model (both prepareCall and prepareStep can return this)\n if (result.model) {\n stepResult.model = result.model;\n }\n\n // Map tools (prepareCall can return this)\n if ('tools' in result && result.tools) {\n stepResult.tools = result.tools as Record<string, unknown>;\n }\n\n // Map toolChoice (prepareStep can return this)\n if ('toolChoice' in result && result.toolChoice !== undefined) {\n stepResult.toolChoice = result.toolChoice as ProcessInputStepResult['toolChoice'];\n }\n\n // Map activeTools (both can return this)\n if (result.activeTools) {\n stepResult.activeTools = result.activeTools as string[];\n }\n\n // Map providerOptions (prepareCall can return this)\n if ('providerOptions' in result && result.providerOptions) {\n stepResult.providerOptions = result.providerOptions;\n }\n\n // Map model settings (prepareCall can return individual settings)\n const modelSettings: ProcessInputStepResult['modelSettings'] = {};\n if ('temperature' in result && result.temperature !== undefined) {\n modelSettings.temperature = result.temperature;\n }\n if ('topP' in result && result.topP !== undefined) {\n modelSettings.topP = result.topP;\n }\n if ('topK' in result && result.topK !== undefined) {\n modelSettings.topK = result.topK;\n }\n if ('maxOutputTokens' in result && result.maxOutputTokens !== undefined) {\n modelSettings.maxOutputTokens = result.maxOutputTokens;\n }\n if ('presencePenalty' in result && result.presencePenalty !== undefined) {\n modelSettings.presencePenalty = result.presencePenalty;\n }\n if ('frequencyPenalty' in result && result.frequencyPenalty !== undefined) {\n modelSettings.frequencyPenalty = result.frequencyPenalty;\n }\n if ('stopSequences' in result && result.stopSequences !== undefined) {\n modelSettings.stopSequences = result.stopSequences;\n }\n if ('seed' in result && result.seed !== undefined) {\n modelSettings.seed = result.seed;\n }\n\n if (Object.keys(modelSettings).length > 0) {\n stepResult.modelSettings = modelSettings;\n }\n\n // Map system/instructions to systemMessages\n // prepareCall returns 'instructions', prepareStep returns 'system'\n const systemContent =\n 'instructions' in result ? result.instructions : 'system' in result ? result.system : undefined;\n if (systemContent) {\n // Convert to CoreMessageV4 format\n if (typeof systemContent === 'string') {\n stepResult.systemMessages = [{ role: 'system', content: systemContent }];\n } else if (Array.isArray(systemContent)) {\n stepResult.systemMessages = systemContent.map(msg =>\n typeof msg === 'string' ? { role: 'system' as const, content: msg } : msg,\n );\n } else if (typeof systemContent === 'object' && 'role' in systemContent && 'content' in systemContent) {\n stepResult.systemMessages = [systemContent as { role: 'system'; content: string }];\n }\n }\n\n // Map messages if prepareStep returns them\n // Convert AI SDK ModelMessage[] to MastraDBMessage[]\n if ('messages' in result && result.messages && Array.isArray(result.messages)) {\n // AI SDK v6 ModelMessage is compatible with MessageListInput at runtime\n // stepResult.messages = convertMessages(result.messages as any).to('Mastra.V2');\n stepResult.messages = result.messages as any;\n }\n\n return stepResult;\n }\n\n private async handlePrepareCall(args: ProcessInputStepArgs) {\n if (this.settings.prepareCall) {\n const { model, messages, activeTools, providerOptions, modelSettings, tools } = args;\n // TODO: This should probably happen in processInput, currently calling in processInputStep if stepNumber === 0\n\n // Build the prepareCall input object\n // AI SDK prepareCall expects: AgentCallParameters & Pick<ToolLoopAgentSettings, ...settings>\n const prepareCallInput: PrepareCallInput = {\n // TODO: prepareCall expects messages in AI SDK format, we have them in Mastra format\n messages: messages as unknown as any,\n model,\n tools,\n instructions: this.settings.instructions,\n stopWhen: this.settings.stopWhen,\n activeTools,\n providerOptions,\n\n // Model settings\n temperature: modelSettings?.temperature,\n topP: modelSettings?.topP,\n topK: modelSettings?.topK,\n maxOutputTokens: modelSettings?.maxOutputTokens,\n presencePenalty: modelSettings?.presencePenalty,\n frequencyPenalty: modelSettings?.frequencyPenalty,\n stopSequences: modelSettings?.stopSequences,\n seed: modelSettings?.seed,\n\n // Experimental options\n // experimental_telemetry: this.settings.experimental_telemetry,\n // experimental_context: this.settings.experimental_context,\n // experimental_download: this.settings.experimental_download,\n };\n\n // Call prepareCall and apply any returned overrides\n const prepareCallResult = await this.settings.prepareCall(prepareCallInput as any); // TODO: types\n this.prepareCallResult = prepareCallResult;\n }\n }\n\n private async handlePrepareStep(args: ProcessInputStepArgs, currentResult: ProcessInputStepResult) {\n if (this.settings.prepareStep) {\n const { messages, steps, stepNumber } = args;\n\n let model = args.model;\n if (currentResult.model) {\n const resolvedModel = await resolveModelConfig(currentResult.model);\n if (!isSupportedLanguageModel(resolvedModel)) {\n throw new Error('prepareStep returned an unsupported model version');\n }\n model = resolvedModel;\n }\n\n // Use the model from currentResult if prepareCall overrode it, otherwise use args.model\n\n // Note: We pass messages and steps in Mastra format rather than converting to AI SDK format.\n // This is intentional - most prepareStep callbacks only return overrides and don't inspect\n // the message content. The type casts handle the format difference at runtime.\n const prepareStepInputArgs: {\n /**\n * The steps that have been executed so far.\n */\n steps: Array<StepResult<NoInfer<any>>>;\n /**\n * The number of the step that is being executed.\n */\n stepNumber: number;\n /**\n * The model instance that is being used for this step.\n */\n model: MastraLanguageModel;\n /**\n * The messages that will be sent to the model for the current step.\n * Note: These are in Mastra format (MastraDBMessage[]), not AI SDK ModelMessage format.\n */\n messages: Array<ModelMessage>;\n /**\n * The context passed via the experimental_context setting (experimental).\n */\n experimental_context: unknown;\n } = {\n model,\n // Messages are in Mastra format (MastraDBMessage[])\n messages: messages as any,\n // Steps may have minor type differences in usage properties (inputTokenDetails/outputTokenDetails)\n steps: steps as any,\n stepNumber,\n experimental_context: undefined,\n };\n\n const prepareStepResult = await this.settings.prepareStep(prepareStepInputArgs);\n return prepareStepResult;\n }\n }\n\n async processInputStep(args: ProcessInputStepArgs): Promise<ProcessInputStepResult | undefined | void> {\n const { stepNumber } = args;\n\n if (stepNumber === 0 && this.settings.prepareCall) {\n await this.handlePrepareCall(args);\n }\n\n let result: ProcessInputStepResult = {};\n\n // Apply prepareCall result (only on step 0, already called above)\n if (this.prepareCallResult) {\n const mappedResult = this.mapToProcessInputStepResult(this.prepareCallResult);\n if (Object.keys(mappedResult).length > 0) {\n result = { ...result, ...mappedResult };\n }\n }\n\n // Apply prepareStep result (called on every step)\n // Pass the current result so prepareStep sees any overrides from prepareCall\n if (this.settings.prepareStep) {\n const prepareStepResult = await this.handlePrepareStep(args, result);\n if (prepareStepResult) {\n const mappedResult = this.mapToProcessInputStepResult(prepareStepResult as any);\n // prepareStep overrides prepareCall for this step\n result = { ...result, ...mappedResult };\n }\n }\n\n return result;\n }\n}\n","import { generateId } from '@internal/ai-sdk-v5';\nimport { Agent } from '../agent';\nimport { ToolLoopAgentProcessor } from './tool-loop-processor';\nimport type { ToolLoopAgentLike } from './utils';\nexport { type ToolLoopAgentLike, isToolLoopAgentLike, getSettings } from './utils';\n\n/**\n * Converts an AI SDK v6 ToolLoopAgent instance into a Mastra Agent.\n *\n * This enables users to create a ToolLoopAgent using AI SDK's API\n * while gaining access to Mastra features like memory, processors, scorers, and observability.\n *\n * @example\n * ```typescript\n * import { ToolLoopAgent, tool } from 'ai';\n * import { openai } from '@ai-sdk/openai';\n * import { toolLoopAgentToMastraAgent } from '@mastra/core/tool-loop-agent';\n *\n * const toolLoopAgent = new ToolLoopAgent({\n * id: 'weather-agent',\n * model: openai('gpt-4o'),\n * instructions: 'You are a helpful weather assistant.',\n * tools: { weather: weatherTool },\n * temperature: 0.7,\n * });\n *\n * const mastraAgent = toolLoopAgentToMastraAgent(toolLoopAgent);\n *\n * const result = await mastraAgent.generate({ prompt: 'What is the weather in NYC?' });\n * ```\n *\n * @param agent - The ToolLoopAgent instance\n * @param options - Optional name fallback since Mastra Agent requires id/name but ToolLoopAgent doesn't\n * @returns A Mastra Agent instance\n */\nexport function toolLoopAgentToMastraAgent(agent: ToolLoopAgentLike, options?: { fallbackName?: string }) {\n const processor = new ToolLoopAgentProcessor(agent);\n const agentConfig = processor.getAgentConfig();\n const id = agentConfig.id || options?.fallbackName || `tool-loop-agent-${generateId()}`;\n\n return new Agent({\n ...agentConfig,\n id,\n name: agentConfig.name || id,\n inputProcessors: [processor],\n });\n}\n"]}
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
- var chunk5VQPSWPG_cjs = require('./chunk-5VQPSWPG.cjs');
4
- var chunkRZNHRIM7_cjs = require('./chunk-RZNHRIM7.cjs');
5
- var chunkLNKS4TJ6_cjs = require('./chunk-LNKS4TJ6.cjs');
6
- var chunk3U3XFMGJ_cjs = require('./chunk-3U3XFMGJ.cjs');
7
- var chunkVJWRJWSC_cjs = require('./chunk-VJWRJWSC.cjs');
3
+ var chunkNAUBU4SI_cjs = require('./chunk-NAUBU4SI.cjs');
4
+ var chunkOL4P6TXG_cjs = require('./chunk-OL4P6TXG.cjs');
5
+ var chunkT4KRCLC3_cjs = require('./chunk-T4KRCLC3.cjs');
6
+ var chunkN435UBEN_cjs = require('./chunk-N435UBEN.cjs');
7
+ var chunkHYU6AULN_cjs = require('./chunk-HYU6AULN.cjs');
8
8
  var chunkMR7ZWBL6_cjs = require('./chunk-MR7ZWBL6.cjs');
9
9
  var chunk6BJ7XHRH_cjs = require('./chunk-6BJ7XHRH.cjs');
10
10
  var chunkOQDRPRKM_cjs = require('./chunk-OQDRPRKM.cjs');
@@ -67,7 +67,7 @@ var Mastra = class {
67
67
  }
68
68
  get datasets() {
69
69
  if (!this.#datasets) {
70
- this.#datasets = new chunkLNKS4TJ6_cjs.DatasetsManager(this);
70
+ this.#datasets = new chunkT4KRCLC3_cjs.DatasetsManager(this);
71
71
  }
72
72
  return this.#datasets;
73
73
  }
@@ -222,7 +222,7 @@ var Mastra = class {
222
222
  this.#events[topic] = config?.events?.[topic] ?? [];
223
223
  }
224
224
  }
225
- const workflowEventProcessor = new chunk5VQPSWPG_cjs.WorkflowEventProcessor({ mastra: this });
225
+ const workflowEventProcessor = new chunkNAUBU4SI_cjs.WorkflowEventProcessor({ mastra: this });
226
226
  const workflowEventCb = async (event, cb) => {
227
227
  try {
228
228
  await workflowEventProcessor.process(event, cb);
@@ -250,7 +250,7 @@ var Mastra = class {
250
250
  this.#idGenerator = config?.idGenerator;
251
251
  let storage = config?.storage;
252
252
  if (storage) {
253
- storage = chunkVJWRJWSC_cjs.augmentWithInit(storage);
253
+ storage = chunkHYU6AULN_cjs.augmentWithInit(storage);
254
254
  }
255
255
  if (config?.observability) {
256
256
  if (typeof config.observability.getDefaultInstance === "function") {
@@ -353,7 +353,7 @@ var Mastra = class {
353
353
  if (config?.server) {
354
354
  this.#server = config.server;
355
355
  }
356
- chunkMR7ZWBL6_cjs.registerHook("onScorerRun" /* ON_SCORER_RUN */, chunk3U3XFMGJ_cjs.createOnScorerHook(this));
356
+ chunkMR7ZWBL6_cjs.registerHook("onScorerRun" /* ON_SCORER_RUN */, chunkN435UBEN_cjs.createOnScorerHook(this));
357
357
  this.#observability.setMastraContext({ mastra: this });
358
358
  this.setLogger({ logger });
359
359
  }
@@ -497,8 +497,8 @@ var Mastra = class {
497
497
  throw createUndefinedPrimitiveError("agent", agent, key);
498
498
  }
499
499
  let mastraAgent;
500
- if (chunkRZNHRIM7_cjs.isToolLoopAgentLike(agent)) {
501
- mastraAgent = chunkRZNHRIM7_cjs.toolLoopAgentToMastraAgent(agent, { fallbackName: key });
500
+ if (chunkOL4P6TXG_cjs.isToolLoopAgentLike(agent)) {
501
+ mastraAgent = chunkOL4P6TXG_cjs.toolLoopAgentToMastraAgent(agent, { fallbackName: key });
502
502
  } else {
503
503
  mastraAgent = agent;
504
504
  }
@@ -1823,7 +1823,7 @@ var Mastra = class {
1823
1823
  * ```
1824
1824
  */
1825
1825
  setStorage(storage) {
1826
- this.#storage = chunkVJWRJWSC_cjs.augmentWithInit(storage);
1826
+ this.#storage = chunkHYU6AULN_cjs.augmentWithInit(storage);
1827
1827
  }
1828
1828
  setLogger({ logger }) {
1829
1829
  this.#logger = logger;
@@ -2552,5 +2552,5 @@ var Mastra = class {
2552
2552
  };
2553
2553
 
2554
2554
  exports.Mastra = Mastra;
2555
- //# sourceMappingURL=chunk-XWZAKKFT.cjs.map
2556
- //# sourceMappingURL=chunk-XWZAKKFT.cjs.map
2555
+ //# sourceMappingURL=chunk-S3JIVN4S.cjs.map
2556
+ //# sourceMappingURL=chunk-S3JIVN4S.cjs.map