@mastra/core 0.24.0 → 1.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +484 -139
- package/README.md +2 -3
- package/agent/message-list.d.ts +1 -0
- package/dist/action/index.d.ts +0 -2
- package/dist/action/index.d.ts.map +1 -1
- package/dist/agent/__tests__/mock-model.d.ts +3 -1
- package/dist/agent/__tests__/mock-model.d.ts.map +1 -1
- package/dist/agent/agent-legacy.d.ts +176 -0
- package/dist/agent/agent-legacy.d.ts.map +1 -0
- package/dist/agent/agent.d.ts +83 -229
- package/dist/agent/agent.d.ts.map +1 -1
- package/dist/agent/agent.types.d.ts +10 -25
- package/dist/agent/agent.types.d.ts.map +1 -1
- package/dist/agent/index.cjs +10 -26
- package/dist/agent/index.d.ts +1 -2
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/index.js +2 -2
- package/dist/agent/message-list/index.cjs +16 -0
- package/dist/agent/message-list/index.d.ts +77 -87
- package/dist/agent/message-list/index.d.ts.map +1 -1
- package/dist/agent/message-list/index.js +3 -0
- package/dist/agent/message-list/prompt/attachments-to-parts.d.ts +2 -2
- package/dist/agent/message-list/prompt/attachments-to-parts.d.ts.map +1 -1
- package/dist/agent/message-list/prompt/convert-to-mastra-v1.d.ts +2 -2
- package/dist/agent/message-list/prompt/download-assets.d.ts.map +1 -1
- package/dist/agent/message-list/prompt/invalid-content-error.d.ts +1 -1
- package/dist/agent/message-list/prompt/invalid-content-error.d.ts.map +1 -1
- package/dist/agent/message-list/types.d.ts +2 -1
- package/dist/agent/message-list/types.d.ts.map +1 -1
- package/dist/agent/message-list/utils/ai-v4-v5/core-model-message.d.ts +3 -2
- package/dist/agent/message-list/utils/ai-v4-v5/core-model-message.d.ts.map +1 -1
- package/dist/agent/message-list/utils/ai-v4-v5/ui-message.d.ts +3 -2
- package/dist/agent/message-list/utils/ai-v4-v5/ui-message.d.ts.map +1 -1
- package/dist/agent/message-list/utils/ai-v5/gemini-compatibility.d.ts +1 -1
- package/dist/agent/message-list/utils/ai-v5/gemini-compatibility.d.ts.map +1 -1
- package/dist/agent/message-list/utils/convert-messages.d.ts +4 -4
- package/dist/agent/message-list/utils/convert-messages.d.ts.map +1 -1
- package/dist/agent/test-utils.d.ts +2 -79
- package/dist/agent/test-utils.d.ts.map +1 -1
- package/dist/agent/trip-wire.d.ts +1 -1
- package/dist/agent/trip-wire.d.ts.map +1 -1
- package/dist/agent/types.d.ts +23 -37
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/agent/utils.d.ts +15 -64
- package/dist/agent/utils.d.ts.map +1 -1
- package/dist/agent/workflows/prepare-stream/index.d.ts +16 -20
- package/dist/agent/workflows/prepare-stream/index.d.ts.map +1 -1
- package/dist/agent/workflows/prepare-stream/map-results-step.d.ts +5 -7
- package/dist/agent/workflows/prepare-stream/map-results-step.d.ts.map +1 -1
- package/dist/agent/workflows/prepare-stream/prepare-memory-step.d.ts +14 -18
- package/dist/agent/workflows/prepare-stream/prepare-memory-step.d.ts.map +1 -1
- package/dist/agent/workflows/prepare-stream/prepare-tools-step.d.ts +6 -6
- package/dist/agent/workflows/prepare-stream/prepare-tools-step.d.ts.map +1 -1
- package/dist/agent/workflows/prepare-stream/schema.d.ts +10 -12
- package/dist/agent/workflows/prepare-stream/schema.d.ts.map +1 -1
- package/dist/agent/workflows/prepare-stream/stream-step.d.ts +3 -7
- package/dist/agent/workflows/prepare-stream/stream-step.d.ts.map +1 -1
- package/dist/ai-sdk.types.d.ts +4705 -0
- package/dist/base.cjs +2 -2
- package/dist/base.d.ts +0 -16
- package/dist/base.d.ts.map +1 -1
- package/dist/base.js +1 -1
- package/dist/bundler/index.cjs +2 -2
- package/dist/bundler/index.d.ts +2 -1
- package/dist/bundler/index.d.ts.map +1 -1
- package/dist/bundler/index.js +1 -1
- package/dist/cache/index.cjs +3 -3
- package/dist/cache/index.js +1 -1
- package/dist/{chunk-7J3XX4AO.cjs → chunk-2ZVKF4HP.cjs} +199 -66
- package/dist/chunk-2ZVKF4HP.cjs.map +1 -0
- package/dist/chunk-4CDL2QJT.js +649 -0
- package/dist/chunk-4CDL2QJT.js.map +1 -0
- package/dist/chunk-5WRI5ZAA.js +29 -0
- package/dist/{chunk-3HXBPDKN.js.map → chunk-5WRI5ZAA.js.map} +1 -1
- package/dist/{chunk-KAEQISOW.js → chunk-76K3IYWM.js} +5 -5
- package/dist/chunk-76K3IYWM.js.map +1 -0
- package/dist/chunk-7AHYOMHJ.js +149 -0
- package/dist/chunk-7AHYOMHJ.js.map +1 -0
- package/dist/{chunk-UZKIGB7M.cjs → chunk-BMAFVZ2D.cjs} +5 -5
- package/dist/chunk-BMAFVZ2D.cjs.map +1 -0
- package/dist/chunk-CB575O6L.cjs +12432 -0
- package/dist/chunk-CB575O6L.cjs.map +1 -0
- package/dist/{chunk-6TEQIYXV.cjs → chunk-CBAB7GOD.cjs} +15 -15
- package/dist/chunk-CBAB7GOD.cjs.map +1 -0
- package/dist/{chunk-ROS5CMJS.cjs → chunk-CD56CXVE.cjs} +63 -50
- package/dist/chunk-CD56CXVE.cjs.map +1 -0
- package/dist/{chunk-Z4RIRDU3.js → chunk-CINNK34N.js} +45 -32
- package/dist/chunk-CINNK34N.js.map +1 -0
- package/dist/{chunk-77JHIM4E.cjs → chunk-DNEURYF3.cjs} +348 -424
- package/dist/chunk-DNEURYF3.cjs.map +1 -0
- package/dist/{chunk-A5KDVZDL.cjs → chunk-DSNPWVIG.cjs} +9 -9
- package/dist/chunk-DSNPWVIG.cjs.map +1 -0
- package/dist/chunk-DZUJEN5N.cjs +32 -0
- package/dist/{chunk-EBVYYC2Q.cjs.map → chunk-DZUJEN5N.cjs.map} +1 -1
- package/dist/chunk-E7K4FTLN.cjs +273 -0
- package/dist/chunk-E7K4FTLN.cjs.map +1 -0
- package/dist/{chunk-MJMID7LX.cjs → chunk-ECFXGXWO.cjs} +609 -644
- package/dist/chunk-ECFXGXWO.cjs.map +1 -0
- package/dist/chunk-ET6UOTTU.cjs +154 -0
- package/dist/chunk-ET6UOTTU.cjs.map +1 -0
- package/dist/chunk-GGYKYORQ.cjs +2060 -0
- package/dist/chunk-GGYKYORQ.cjs.map +1 -0
- package/dist/{chunk-HLRWYUFN.js → chunk-GRBGQ2GE.js} +5 -5
- package/dist/{chunk-HLRWYUFN.js.map → chunk-GRBGQ2GE.js.map} +1 -1
- package/dist/{chunk-3VXXCPKX.js → chunk-H6CZGPZD.js} +334 -410
- package/dist/chunk-H6CZGPZD.js.map +1 -0
- package/dist/chunk-HDJFSJCK.js +2237 -0
- package/dist/chunk-HDJFSJCK.js.map +1 -0
- package/dist/{chunk-34ZCWSUA.js → chunk-I4CXL4SR.js} +6 -9
- package/dist/chunk-I4CXL4SR.js.map +1 -0
- package/dist/{chunk-3JX2Y3WH.cjs → chunk-IQO7ANVS.cjs} +18 -21
- package/dist/chunk-IQO7ANVS.cjs.map +1 -0
- package/dist/{chunk-GPWMM745.cjs → chunk-J7O6WENZ.cjs} +5 -5
- package/dist/{chunk-GPWMM745.cjs.map → chunk-J7O6WENZ.cjs.map} +1 -1
- package/dist/{chunk-PZUZNPFM.js → chunk-JJ5O45LH.js} +3 -4
- package/dist/chunk-JJ5O45LH.js.map +1 -0
- package/dist/chunk-JPGVRWWL.js +12385 -0
- package/dist/chunk-JPGVRWWL.js.map +1 -0
- package/dist/chunk-JUBFO5J3.js +15761 -0
- package/dist/chunk-JUBFO5J3.js.map +1 -0
- package/dist/{chunk-E3PG7G6E.js → chunk-JV2KH24V.js} +599 -633
- package/dist/chunk-JV2KH24V.js.map +1 -0
- package/dist/chunk-KEXGB7FK.cjs +29 -0
- package/dist/chunk-KEXGB7FK.cjs.map +1 -0
- package/dist/chunk-KIZIOFZC.js +265 -0
- package/dist/chunk-KIZIOFZC.js.map +1 -0
- package/dist/{chunk-UXG7PYML.js → chunk-KJ2SW6VA.js} +9 -9
- package/dist/chunk-KJ2SW6VA.js.map +1 -0
- package/dist/{chunk-TTELJD4F.js → chunk-L54GIUCB.js} +2 -2
- package/dist/chunk-L54GIUCB.js.map +1 -0
- package/dist/chunk-LWBQ4P4N.cjs +2240 -0
- package/dist/chunk-LWBQ4P4N.cjs.map +1 -0
- package/dist/{chunk-ABZOBBLL.cjs → chunk-MA7TEM62.cjs} +735 -562
- package/dist/chunk-MA7TEM62.cjs.map +1 -0
- package/dist/{chunk-TSNDVBUU.cjs → chunk-MR7ZWBL6.cjs} +2 -2
- package/dist/chunk-MR7ZWBL6.cjs.map +1 -0
- package/dist/chunk-MSWTA73A.cjs +15825 -0
- package/dist/chunk-MSWTA73A.cjs.map +1 -0
- package/dist/chunk-MV7KHWUT.js +2031 -0
- package/dist/chunk-MV7KHWUT.js.map +1 -0
- package/dist/{chunk-3NTOFNIU.js → chunk-OJNJA5ZI.js} +3 -3
- package/dist/{chunk-3NTOFNIU.js.map → chunk-OJNJA5ZI.js.map} +1 -1
- package/dist/chunk-QM5SRDJX.js +9022 -0
- package/dist/chunk-QM5SRDJX.js.map +1 -0
- package/dist/{chunk-WBAXXG34.cjs → chunk-QUKUN6NR.cjs} +32 -66
- package/dist/chunk-QUKUN6NR.cjs.map +1 -0
- package/dist/chunk-S6URFGCZ.js +27 -0
- package/dist/chunk-S6URFGCZ.js.map +1 -0
- package/dist/chunk-SVLMF4UZ.cjs +9033 -0
- package/dist/chunk-SVLMF4UZ.cjs.map +1 -0
- package/dist/{chunk-ZMELUU72.js → chunk-TQTAMPSC.js} +3 -3
- package/dist/chunk-TQTAMPSC.js.map +1 -0
- package/dist/{chunk-5NTO7S5I.cjs → chunk-TWH4PTDG.cjs} +2 -4
- package/dist/chunk-TWH4PTDG.cjs.map +1 -0
- package/dist/{chunk-WCHE6FJ7.js → chunk-UIZSWUKP.js} +15 -50
- package/dist/chunk-UIZSWUKP.js.map +1 -0
- package/dist/{chunk-BWGXM3D4.js → chunk-VOQ3ULMT.js} +712 -541
- package/dist/chunk-VOQ3ULMT.js.map +1 -0
- package/dist/{chunk-MCASUJWY.cjs → chunk-VOY2RXOC.cjs} +36 -59
- package/dist/chunk-VOY2RXOC.cjs.map +1 -0
- package/dist/{chunk-FHVFGVIO.js → chunk-W7UH2PWL.js} +189 -56
- package/dist/chunk-W7UH2PWL.js.map +1 -0
- package/dist/chunk-WM6CK2F3.cjs +674 -0
- package/dist/chunk-WM6CK2F3.cjs.map +1 -0
- package/dist/{chunk-PFXXH2RP.js → chunk-X7JMA3IY.js} +15 -15
- package/dist/chunk-X7JMA3IY.js.map +1 -0
- package/dist/{chunk-NR77P3TK.js → chunk-XEVG546F.js} +14 -37
- package/dist/chunk-XEVG546F.js.map +1 -0
- package/dist/{chunk-QFF5JUKT.cjs → chunk-Y63IFHEZ.cjs} +4 -4
- package/dist/chunk-Y63IFHEZ.cjs.map +1 -0
- package/dist/{chunk-B7V6NYWH.cjs → chunk-Y6ROD72V.cjs} +4 -4
- package/dist/{chunk-B7V6NYWH.cjs.map → chunk-Y6ROD72V.cjs.map} +1 -1
- package/dist/deployer/index.cjs +8 -6
- package/dist/deployer/index.cjs.map +1 -1
- package/dist/deployer/index.js +10 -1
- package/dist/deployer/index.js.map +1 -1
- package/dist/di/index.cjs +3 -3
- package/dist/di/index.d.ts +1 -1
- package/dist/di/index.js +1 -1
- package/dist/error/index.cjs +6 -6
- package/dist/error/index.d.ts +0 -1
- package/dist/error/index.d.ts.map +1 -1
- package/dist/error/index.js +1 -1
- package/dist/{scores → evals}/base.d.ts +20 -18
- package/dist/evals/base.d.ts.map +1 -0
- package/dist/{scores → evals}/base.test-utils.d.ts +25 -25
- package/dist/evals/base.test-utils.d.ts.map +1 -0
- package/dist/{scores → evals}/hooks.d.ts +3 -3
- package/dist/evals/hooks.d.ts.map +1 -0
- package/dist/evals/index.cjs +37 -0
- package/dist/evals/index.d.ts +4 -0
- package/dist/evals/index.d.ts.map +1 -0
- package/dist/evals/index.js +4 -0
- package/dist/{scores/run-experiment → evals/run}/index.d.ts +18 -18
- package/dist/evals/run/index.d.ts.map +1 -0
- package/dist/evals/run/scorerAccumulator.d.ts.map +1 -0
- package/dist/{scores → evals}/scoreTraces/index.cjs +79 -99
- package/dist/evals/scoreTraces/index.cjs.map +1 -0
- package/dist/evals/scoreTraces/index.d.ts.map +1 -0
- package/dist/{scores → evals}/scoreTraces/index.js +72 -92
- package/dist/evals/scoreTraces/index.js.map +1 -0
- package/dist/{scores → evals}/scoreTraces/scoreTraces.d.ts +2 -2
- package/dist/evals/scoreTraces/scoreTraces.d.ts.map +1 -0
- package/dist/{scores → evals}/scoreTraces/scoreTracesWorkflow.d.ts +11 -11
- package/dist/evals/scoreTraces/scoreTracesWorkflow.d.ts.map +1 -0
- package/dist/{scores → evals}/scoreTraces/utils.d.ts +7 -7
- package/dist/evals/scoreTraces/utils.d.ts.map +1 -0
- package/dist/{scores → evals}/types.d.ts +22 -22
- package/dist/evals/types.d.ts.map +1 -0
- package/dist/features/index.cjs +8 -0
- package/dist/features/index.cjs.map +1 -0
- package/dist/features/index.d.ts +17 -0
- package/dist/features/index.d.ts.map +1 -0
- package/dist/features/index.js +6 -0
- package/dist/features/index.js.map +1 -0
- package/dist/hooks/index.cjs +4 -4
- package/dist/hooks/index.d.ts +1 -27
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +1 -1
- package/dist/index.cjs +2 -340
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -18
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -113
- package/dist/index.js.map +1 -1
- package/dist/integration/index.cjs +87 -10
- package/dist/integration/index.cjs.map +1 -1
- package/dist/integration/index.js +88 -1
- package/dist/integration/index.js.map +1 -1
- package/dist/integration/integration.d.ts +3 -3
- package/dist/integration/integration.d.ts.map +1 -1
- package/dist/llm/index.cjs +7 -7
- package/dist/llm/index.d.ts +5 -6
- package/dist/llm/index.d.ts.map +1 -1
- package/dist/llm/index.js +1 -1
- package/dist/llm/model/base.types.d.ts +6 -7
- package/dist/llm/model/base.types.d.ts.map +1 -1
- package/dist/llm/model/gateways/constants.d.ts.map +1 -1
- package/dist/llm/model/gateways/models-dev.d.ts.map +1 -1
- package/dist/llm/model/model.d.ts +7 -7
- package/dist/llm/model/model.d.ts.map +1 -1
- package/dist/llm/model/model.loop.d.ts +1 -1
- package/dist/llm/model/model.loop.d.ts.map +1 -1
- package/dist/llm/model/model.loop.types.d.ts +3 -3
- package/dist/llm/model/model.loop.types.d.ts.map +1 -1
- package/dist/llm/model/provider-types.generated.d.ts +80 -17
- package/dist/llm/model/resolve-model.d.ts +8 -8
- package/dist/llm/model/shared.types.d.ts +2 -2
- package/dist/llm/model/shared.types.d.ts.map +1 -1
- package/dist/logger/constants.d.ts +1 -1
- package/dist/logger/default-logger.d.ts +2 -2
- package/dist/logger/default-logger.d.ts.map +1 -1
- package/dist/logger/index.cjs +11 -11
- package/dist/logger/index.js +2 -2
- package/dist/logger/logger.d.ts +4 -4
- package/dist/logger/logger.d.ts.map +1 -1
- package/dist/logger/multi-logger.d.ts +2 -2
- package/dist/logger/multi-logger.d.ts.map +1 -1
- package/dist/logger/transport.d.ts +3 -3
- package/dist/logger/transport.d.ts.map +1 -1
- package/dist/loop/index.cjs +2 -2
- package/dist/loop/index.js +1 -1
- package/dist/loop/loop.d.ts +1 -1
- package/dist/loop/loop.d.ts.map +1 -1
- package/dist/loop/network/index.d.ts +15 -15
- package/dist/loop/network/index.d.ts.map +1 -1
- package/dist/loop/test-utils/generateText.d.ts.map +1 -1
- package/dist/loop/test-utils/options.d.ts.map +1 -1
- package/dist/loop/test-utils/resultObject.d.ts.map +1 -1
- package/dist/loop/test-utils/streamObject.d.ts.map +1 -1
- package/dist/loop/types.d.ts +4 -7
- package/dist/loop/types.d.ts.map +1 -1
- package/dist/loop/workflows/agentic-execution/index.d.ts +55 -55
- package/dist/loop/workflows/agentic-execution/index.d.ts.map +1 -1
- package/dist/loop/workflows/agentic-execution/llm-execution-step.d.ts +38 -38
- package/dist/loop/workflows/agentic-execution/llm-execution-step.d.ts.map +1 -1
- package/dist/loop/workflows/agentic-execution/llm-mapping-step.d.ts +20 -20
- package/dist/loop/workflows/agentic-execution/llm-mapping-step.d.ts.map +1 -1
- package/dist/loop/workflows/agentic-execution/tool-call-step.d.ts +2 -2
- package/dist/loop/workflows/agentic-execution/tool-call-step.d.ts.map +1 -1
- package/dist/loop/workflows/agentic-loop/index.d.ts +55 -55
- package/dist/loop/workflows/agentic-loop/index.d.ts.map +1 -1
- package/dist/loop/workflows/schema.d.ts +19 -20
- package/dist/loop/workflows/schema.d.ts.map +1 -1
- package/dist/loop/workflows/stream.d.ts +1 -1
- package/dist/loop/workflows/stream.d.ts.map +1 -1
- package/dist/mastra/hooks.d.ts +2 -2
- package/dist/mastra/hooks.d.ts.map +1 -1
- package/dist/mastra/index.cjs +2 -2
- package/dist/mastra/index.d.ts +389 -180
- package/dist/mastra/index.d.ts.map +1 -1
- package/dist/mastra/index.js +1 -1
- package/dist/mcp/index.cjs +41 -4
- package/dist/mcp/index.cjs.map +1 -1
- package/dist/mcp/index.d.ts +6 -4
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +39 -2
- package/dist/mcp/index.js.map +1 -1
- package/dist/mcp/types.d.ts +0 -15
- package/dist/mcp/types.d.ts.map +1 -1
- package/dist/memory/index.cjs +327 -13
- package/dist/memory/index.cjs.map +1 -1
- package/dist/memory/index.d.ts +1 -0
- package/dist/memory/index.d.ts.map +1 -1
- package/dist/memory/index.js +327 -1
- package/dist/memory/index.js.map +1 -1
- package/dist/memory/memory.d.ts +33 -57
- package/dist/memory/memory.d.ts.map +1 -1
- package/dist/memory/mock.d.ts +61 -0
- package/dist/memory/mock.d.ts.map +1 -0
- package/dist/memory/types.d.ts +48 -45
- package/dist/memory/types.d.ts.map +1 -1
- package/dist/models-dev-DNBKXHT4.js +3 -0
- package/dist/{models-dev-4VGIWYS3.js.map → models-dev-DNBKXHT4.js.map} +1 -1
- package/dist/models-dev-YBEEQIX6.cjs +12 -0
- package/dist/{models-dev-AXZASLL2.cjs.map → models-dev-YBEEQIX6.cjs.map} +1 -1
- package/dist/netlify-7G2L5VSH.js +3 -0
- package/dist/{netlify-VJXBII33.js.map → netlify-7G2L5VSH.js.map} +1 -1
- package/dist/netlify-GWNGSIRZ.cjs +12 -0
- package/dist/{netlify-TX6V7SJJ.cjs.map → netlify-GWNGSIRZ.cjs.map} +1 -1
- package/dist/{ai-tracing → observability}/context.d.ts +5 -5
- package/dist/observability/context.d.ts.map +1 -0
- package/dist/observability/index.cjs +36 -0
- package/dist/observability/index.d.ts +11 -0
- package/dist/observability/index.d.ts.map +1 -0
- package/dist/observability/index.js +3 -0
- package/dist/observability/no-op.d.ts +22 -0
- package/dist/observability/no-op.d.ts.map +1 -0
- package/dist/observability/types/index.d.ts +2 -0
- package/dist/observability/types/index.d.ts.map +1 -0
- package/dist/{ai-tracing/types.d.ts → observability/types/tracing.d.ts} +161 -107
- package/dist/observability/types/tracing.d.ts.map +1 -0
- package/dist/observability/utils.d.ts +12 -0
- package/dist/observability/utils.d.ts.map +1 -0
- package/dist/processors/index.cjs +11 -11
- package/dist/processors/index.d.ts +10 -9
- package/dist/processors/index.d.ts.map +1 -1
- package/dist/processors/index.js +1 -1
- package/dist/processors/processors/batch-parts.d.ts +2 -1
- package/dist/processors/processors/batch-parts.d.ts.map +1 -1
- package/dist/processors/processors/language-detector.d.ts +6 -5
- package/dist/processors/processors/language-detector.d.ts.map +1 -1
- package/dist/processors/processors/moderation.d.ts +8 -7
- package/dist/processors/processors/moderation.d.ts.map +1 -1
- package/dist/processors/processors/pii-detector.d.ts +8 -7
- package/dist/processors/processors/pii-detector.d.ts.map +1 -1
- package/dist/processors/processors/prompt-injection-detector.d.ts +6 -5
- package/dist/processors/processors/prompt-injection-detector.d.ts.map +1 -1
- package/dist/processors/processors/structured-output.d.ts +3 -2
- package/dist/processors/processors/structured-output.d.ts.map +1 -1
- package/dist/processors/processors/system-prompt-scrubber.d.ts +6 -5
- package/dist/processors/processors/system-prompt-scrubber.d.ts.map +1 -1
- package/dist/processors/processors/token-limiter.d.ts +5 -4
- package/dist/processors/processors/token-limiter.d.ts.map +1 -1
- package/dist/processors/processors/unicode-normalizer.d.ts +5 -4
- package/dist/processors/processors/unicode-normalizer.d.ts.map +1 -1
- package/dist/processors/runner.d.ts +5 -5
- package/dist/processors/runner.d.ts.map +1 -1
- package/dist/provider-registry.json +175 -42
- package/dist/{registry-generator-DXRSYYYT.js → registry-generator-H4YNODDH.js} +2 -2
- package/dist/{registry-generator-DXRSYYYT.js.map → registry-generator-H4YNODDH.js.map} +1 -1
- package/dist/{registry-generator-6WVOHM2L.cjs → registry-generator-MK63POJO.cjs} +2 -2
- package/dist/{registry-generator-6WVOHM2L.cjs.map → registry-generator-MK63POJO.cjs.map} +1 -1
- package/dist/relevance/index.cjs +47 -13
- package/dist/relevance/index.cjs.map +1 -1
- package/dist/relevance/index.d.ts +0 -1
- package/dist/relevance/index.d.ts.map +1 -1
- package/dist/relevance/index.js +49 -1
- package/dist/relevance/index.js.map +1 -1
- package/dist/relevance/mastra-agent/index.d.ts.map +1 -1
- package/dist/request-context/index.cjs +12 -0
- package/dist/{runtime-context → request-context}/index.d.ts +1 -1
- package/dist/{runtime-context → request-context}/index.d.ts.map +1 -1
- package/dist/request-context/index.js +3 -0
- package/dist/server/auth.d.ts.map +1 -1
- package/dist/server/index.cjs +9 -25
- package/dist/server/index.cjs.map +1 -1
- package/dist/server/index.js +4 -21
- package/dist/server/index.js.map +1 -1
- package/dist/server/types.d.ts +3 -3
- package/dist/server/types.d.ts.map +1 -1
- package/dist/storage/base.d.ts +75 -143
- package/dist/storage/base.d.ts.map +1 -1
- package/dist/storage/constants.d.ts +3 -4
- package/dist/storage/constants.d.ts.map +1 -1
- package/dist/storage/domains/index.d.ts +0 -2
- package/dist/storage/domains/index.d.ts.map +1 -1
- package/dist/storage/domains/memory/base.d.ts +19 -56
- package/dist/storage/domains/memory/base.d.ts.map +1 -1
- package/dist/storage/domains/memory/inmemory.d.ts +15 -35
- package/dist/storage/domains/memory/inmemory.d.ts.map +1 -1
- package/dist/storage/domains/observability/base.d.ts +24 -24
- package/dist/storage/domains/observability/base.d.ts.map +1 -1
- package/dist/storage/domains/observability/inmemory.d.ts +18 -18
- package/dist/storage/domains/observability/inmemory.d.ts.map +1 -1
- package/dist/storage/domains/operations/inmemory.d.ts.map +1 -1
- package/dist/storage/domains/scores/base.d.ts +5 -5
- package/dist/storage/domains/scores/base.d.ts.map +1 -1
- package/dist/storage/domains/scores/inmemory.d.ts +5 -5
- package/dist/storage/domains/scores/inmemory.d.ts.map +1 -1
- package/dist/storage/domains/workflows/base.d.ts +4 -11
- package/dist/storage/domains/workflows/base.d.ts.map +1 -1
- package/dist/storage/domains/workflows/inmemory.d.ts +4 -11
- package/dist/storage/domains/workflows/inmemory.d.ts.map +1 -1
- package/dist/storage/index.cjs +74 -1775
- package/dist/storage/index.cjs.map +1 -1
- package/dist/storage/index.js +1 -1744
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/mock.d.ts +35 -92
- package/dist/storage/mock.d.ts.map +1 -1
- package/dist/storage/types.d.ts +77 -75
- package/dist/storage/types.d.ts.map +1 -1
- package/dist/stream/MastraAgentNetworkStream.d.ts +4 -2
- package/dist/stream/MastraAgentNetworkStream.d.ts.map +1 -1
- package/dist/stream/MastraWorkflowStream.d.ts +1 -1
- package/dist/stream/MastraWorkflowStream.d.ts.map +1 -1
- package/dist/stream/RunOutput.d.ts +1 -0
- package/dist/stream/RunOutput.d.ts.map +1 -1
- package/dist/stream/aisdk/v4/input.d.ts +1 -1
- package/dist/stream/aisdk/v4/input.d.ts.map +1 -1
- package/dist/stream/aisdk/v5/execute.d.ts +4 -11
- package/dist/stream/aisdk/v5/execute.d.ts.map +1 -1
- package/dist/stream/aisdk/v5/output.d.ts +1 -1
- package/dist/stream/aisdk/v5/output.d.ts.map +1 -1
- package/dist/stream/base/output.d.ts +1 -1
- package/dist/stream/base/output.d.ts.map +1 -1
- package/dist/stream/index.cjs +11 -11
- package/dist/stream/index.d.ts +1 -1
- package/dist/stream/index.d.ts.map +1 -1
- package/dist/stream/index.js +2 -2
- package/dist/stream/types.d.ts +2 -6
- package/dist/stream/types.d.ts.map +1 -1
- package/dist/test-utils/llm-mock.cjs +8 -8
- package/dist/test-utils/llm-mock.cjs.map +1 -1
- package/dist/test-utils/llm-mock.d.ts +1 -1
- package/dist/test-utils/llm-mock.d.ts.map +1 -1
- package/dist/test-utils/llm-mock.js +3 -3
- package/dist/test-utils/llm-mock.js.map +1 -1
- package/dist/tools/index.cjs +4 -4
- package/dist/tools/index.js +1 -1
- package/dist/tools/is-vercel-tool.cjs +2 -2
- package/dist/tools/is-vercel-tool.js +1 -1
- package/dist/tools/tool-builder/builder.d.ts +3 -71
- package/dist/tools/tool-builder/builder.d.ts.map +1 -1
- package/dist/tools/tool.d.ts +25 -25
- package/dist/tools/tool.d.ts.map +1 -1
- package/dist/tools/types.d.ts +102 -11
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/tools/validation.d.ts +4 -3
- package/dist/tools/validation.d.ts.map +1 -1
- package/dist/tts/index.cjs +12 -6
- package/dist/tts/index.cjs.map +1 -1
- package/dist/tts/index.d.ts +0 -1
- package/dist/tts/index.d.ts.map +1 -1
- package/dist/tts/index.js +14 -1
- package/dist/tts/index.js.map +1 -1
- package/dist/types/dynamic-argument.d.ts +3 -3
- package/dist/utils/fetchWithRetry.d.ts +9 -0
- package/dist/utils/fetchWithRetry.d.ts.map +1 -0
- package/dist/utils.cjs +33 -17
- package/dist/utils.d.ts +39 -6
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +1 -1
- package/dist/vector/embed.d.ts +1 -1
- package/dist/vector/embed.d.ts.map +1 -1
- package/dist/vector/index.cjs +80 -8
- package/dist/vector/index.cjs.map +1 -1
- package/dist/vector/index.js +80 -1
- package/dist/vector/index.js.map +1 -1
- package/dist/vector/vector.d.ts +5 -2
- package/dist/vector/vector.d.ts.map +1 -1
- package/dist/voice/composite-voice.d.ts +1 -7
- package/dist/voice/composite-voice.d.ts.map +1 -1
- package/dist/voice/index.cjs +4 -4
- package/dist/voice/index.js +1 -1
- package/dist/voice/voice.d.ts +0 -1
- package/dist/voice/voice.d.ts.map +1 -1
- package/dist/workflows/default.d.ts +35 -43
- package/dist/workflows/default.d.ts.map +1 -1
- package/dist/workflows/evented/execution-engine.d.ts +5 -3
- package/dist/workflows/evented/execution-engine.d.ts.map +1 -1
- package/dist/workflows/evented/index.cjs +10 -10
- package/dist/workflows/evented/index.js +1 -1
- package/dist/workflows/evented/step-executor.d.ts +15 -13
- package/dist/workflows/evented/step-executor.d.ts.map +1 -1
- package/dist/workflows/evented/workflow-event-processor/index.d.ts +5 -5
- package/dist/workflows/evented/workflow-event-processor/index.d.ts.map +1 -1
- package/dist/workflows/evented/workflow-event-processor/loop.d.ts +3 -3
- package/dist/workflows/evented/workflow-event-processor/loop.d.ts.map +1 -1
- package/dist/workflows/evented/workflow-event-processor/parallel.d.ts +2 -2
- package/dist/workflows/evented/workflow-event-processor/sleep.d.ts +2 -2
- package/dist/workflows/evented/workflow-event-processor/utils.d.ts +2 -7
- package/dist/workflows/evented/workflow-event-processor/utils.d.ts.map +1 -1
- package/dist/workflows/evented/workflow.d.ts +11 -14
- package/dist/workflows/evented/workflow.d.ts.map +1 -1
- package/dist/workflows/execution-engine.d.ts +6 -6
- package/dist/workflows/execution-engine.d.ts.map +1 -1
- package/dist/workflows/index.cjs +22 -14
- package/dist/workflows/index.js +1 -1
- package/dist/workflows/step.d.ts +5 -5
- package/dist/workflows/step.d.ts.map +1 -1
- package/dist/workflows/types.d.ts +21 -44
- package/dist/workflows/types.d.ts.map +1 -1
- package/dist/workflows/utils.d.ts +14 -0
- package/dist/workflows/utils.d.ts.map +1 -1
- package/dist/workflows/workflow.d.ts +74 -64
- package/dist/workflows/workflow.d.ts.map +1 -1
- package/evals/scoreTraces.d.ts +1 -0
- package/evals.d.ts +1 -0
- package/features.d.ts +1 -0
- package/observability.d.ts +1 -0
- package/package.json +49 -64
- package/request-context.d.ts +1 -0
- package/src/_types/ai-sdk.types.d.ts +4705 -0
- package/src/llm/model/provider-types.generated.d.ts +80 -17
- package/agent/input-processor/processors.d.ts +0 -1
- package/ai-tracing.d.ts +0 -1
- package/dist/agent/index.warning.d.ts +0 -13
- package/dist/agent/index.warning.d.ts.map +0 -1
- package/dist/agent/input-processor/index.cjs +0 -28
- package/dist/agent/input-processor/index.d.ts +0 -10
- package/dist/agent/input-processor/index.d.ts.map +0 -1
- package/dist/agent/input-processor/index.js +0 -3
- package/dist/agent/input-processor/processors/index.d.ts +0 -6
- package/dist/agent/input-processor/processors/index.d.ts.map +0 -1
- package/dist/agent/input-processor/processors/language-detector.d.ts +0 -18
- package/dist/agent/input-processor/processors/language-detector.d.ts.map +0 -1
- package/dist/agent/input-processor/processors/moderation.d.ts +0 -18
- package/dist/agent/input-processor/processors/moderation.d.ts.map +0 -1
- package/dist/agent/input-processor/processors/pii-detector.d.ts +0 -18
- package/dist/agent/input-processor/processors/pii-detector.d.ts.map +0 -1
- package/dist/agent/input-processor/processors/prompt-injection-detector.d.ts +0 -18
- package/dist/agent/input-processor/processors/prompt-injection-detector.d.ts.map +0 -1
- package/dist/agent/input-processor/processors/unicode-normalizer.d.ts +0 -18
- package/dist/agent/input-processor/processors/unicode-normalizer.d.ts.map +0 -1
- package/dist/ai-tracing/context.d.ts.map +0 -1
- package/dist/ai-tracing/exporters/base.d.ts +0 -111
- package/dist/ai-tracing/exporters/base.d.ts.map +0 -1
- package/dist/ai-tracing/exporters/cloud.d.ts +0 -30
- package/dist/ai-tracing/exporters/cloud.d.ts.map +0 -1
- package/dist/ai-tracing/exporters/console.d.ts +0 -10
- package/dist/ai-tracing/exporters/console.d.ts.map +0 -1
- package/dist/ai-tracing/exporters/default.d.ts +0 -98
- package/dist/ai-tracing/exporters/default.d.ts.map +0 -1
- package/dist/ai-tracing/exporters/index.d.ts +0 -9
- package/dist/ai-tracing/exporters/index.d.ts.map +0 -1
- package/dist/ai-tracing/index.cjs +0 -148
- package/dist/ai-tracing/index.d.ts +0 -13
- package/dist/ai-tracing/index.d.ts.map +0 -1
- package/dist/ai-tracing/index.js +0 -3
- package/dist/ai-tracing/model-tracing.d.ts +0 -63
- package/dist/ai-tracing/model-tracing.d.ts.map +0 -1
- package/dist/ai-tracing/registry.d.ts +0 -51
- package/dist/ai-tracing/registry.d.ts.map +0 -1
- package/dist/ai-tracing/span_processors/index.d.ts +0 -5
- package/dist/ai-tracing/span_processors/index.d.ts.map +0 -1
- package/dist/ai-tracing/span_processors/sensitive-data-filter.d.ts +0 -85
- package/dist/ai-tracing/span_processors/sensitive-data-filter.d.ts.map +0 -1
- package/dist/ai-tracing/spans/base.d.ts +0 -65
- package/dist/ai-tracing/spans/base.d.ts.map +0 -1
- package/dist/ai-tracing/spans/default.d.ts +0 -13
- package/dist/ai-tracing/spans/default.d.ts.map +0 -1
- package/dist/ai-tracing/spans/index.d.ts +0 -7
- package/dist/ai-tracing/spans/index.d.ts.map +0 -1
- package/dist/ai-tracing/spans/no-op.d.ts +0 -15
- package/dist/ai-tracing/spans/no-op.d.ts.map +0 -1
- package/dist/ai-tracing/tracers/base.d.ts +0 -105
- package/dist/ai-tracing/tracers/base.d.ts.map +0 -1
- package/dist/ai-tracing/tracers/default.d.ts +0 -7
- package/dist/ai-tracing/tracers/default.d.ts.map +0 -1
- package/dist/ai-tracing/tracers/index.d.ts +0 -6
- package/dist/ai-tracing/tracers/index.d.ts.map +0 -1
- package/dist/ai-tracing/types.d.ts.map +0 -1
- package/dist/ai-tracing/utils.d.ts +0 -68
- package/dist/ai-tracing/utils.d.ts.map +0 -1
- package/dist/base.warning.d.ts +0 -9
- package/dist/base.warning.d.ts.map +0 -1
- package/dist/bundler/index.warning.d.ts +0 -9
- package/dist/bundler/index.warning.d.ts.map +0 -1
- package/dist/chunk-253FBVD4.cjs +0 -1303
- package/dist/chunk-253FBVD4.cjs.map +0 -1
- package/dist/chunk-2B3VLGTH.js +0 -87
- package/dist/chunk-2B3VLGTH.js.map +0 -1
- package/dist/chunk-34ZCWSUA.js.map +0 -1
- package/dist/chunk-3HXBPDKN.js +0 -105
- package/dist/chunk-3JX2Y3WH.cjs.map +0 -1
- package/dist/chunk-3VXXCPKX.js.map +0 -1
- package/dist/chunk-4R2TBRS7.cjs +0 -191
- package/dist/chunk-4R2TBRS7.cjs.map +0 -1
- package/dist/chunk-5NTO7S5I.cjs.map +0 -1
- package/dist/chunk-6C7VGVK4.js +0 -267
- package/dist/chunk-6C7VGVK4.js.map +0 -1
- package/dist/chunk-6KOL2B3A.cjs +0 -75
- package/dist/chunk-6KOL2B3A.cjs.map +0 -1
- package/dist/chunk-6TEQIYXV.cjs.map +0 -1
- package/dist/chunk-6VOPKVYH.cjs +0 -57
- package/dist/chunk-6VOPKVYH.cjs.map +0 -1
- package/dist/chunk-77JHIM4E.cjs.map +0 -1
- package/dist/chunk-7J3XX4AO.cjs.map +0 -1
- package/dist/chunk-A5KDVZDL.cjs.map +0 -1
- package/dist/chunk-ABZOBBLL.cjs.map +0 -1
- package/dist/chunk-AQGLVU53.cjs +0 -603
- package/dist/chunk-AQGLVU53.cjs.map +0 -1
- package/dist/chunk-BLUDYAPI.js +0 -596
- package/dist/chunk-BLUDYAPI.js.map +0 -1
- package/dist/chunk-BWGXM3D4.js.map +0 -1
- package/dist/chunk-C7OVZMPW.cjs +0 -91
- package/dist/chunk-C7OVZMPW.cjs.map +0 -1
- package/dist/chunk-DMBN72QF.cjs +0 -39
- package/dist/chunk-DMBN72QF.cjs.map +0 -1
- package/dist/chunk-DTTOVV72.js +0 -2880
- package/dist/chunk-DTTOVV72.js.map +0 -1
- package/dist/chunk-E3PG7G6E.js.map +0 -1
- package/dist/chunk-EBVYYC2Q.cjs +0 -111
- package/dist/chunk-FHVFGVIO.js.map +0 -1
- package/dist/chunk-GB5BIA4V.js +0 -167
- package/dist/chunk-GB5BIA4V.js.map +0 -1
- package/dist/chunk-HEQTUMUA.cjs +0 -271
- package/dist/chunk-HEQTUMUA.cjs.map +0 -1
- package/dist/chunk-HF3GZRFP.cjs +0 -9
- package/dist/chunk-HF3GZRFP.cjs.map +0 -1
- package/dist/chunk-JVV5LREI.js +0 -431
- package/dist/chunk-JVV5LREI.js.map +0 -1
- package/dist/chunk-KAEQISOW.js.map +0 -1
- package/dist/chunk-KDX3ZMQ2.js +0 -12
- package/dist/chunk-KDX3ZMQ2.js.map +0 -1
- package/dist/chunk-LG5B3KIW.js +0 -1215
- package/dist/chunk-LG5B3KIW.js.map +0 -1
- package/dist/chunk-LZUSZT7R.cjs +0 -170
- package/dist/chunk-LZUSZT7R.cjs.map +0 -1
- package/dist/chunk-MCASUJWY.cjs.map +0 -1
- package/dist/chunk-MJMID7LX.cjs.map +0 -1
- package/dist/chunk-MKCC5K77.js +0 -90
- package/dist/chunk-MKCC5K77.js.map +0 -1
- package/dist/chunk-NPNGPMT2.js +0 -39
- package/dist/chunk-NPNGPMT2.js.map +0 -1
- package/dist/chunk-NR77P3TK.js.map +0 -1
- package/dist/chunk-NUAURT4I.cjs +0 -82
- package/dist/chunk-NUAURT4I.cjs.map +0 -1
- package/dist/chunk-OIT3PCWA.js +0 -72
- package/dist/chunk-OIT3PCWA.js.map +0 -1
- package/dist/chunk-P35FNLTQ.cjs +0 -2936
- package/dist/chunk-P35FNLTQ.cjs.map +0 -1
- package/dist/chunk-PFXXH2RP.js.map +0 -1
- package/dist/chunk-PZUZNPFM.js.map +0 -1
- package/dist/chunk-QFF5JUKT.cjs.map +0 -1
- package/dist/chunk-RKXWLG33.js +0 -7
- package/dist/chunk-RKXWLG33.js.map +0 -1
- package/dist/chunk-ROS5CMJS.cjs.map +0 -1
- package/dist/chunk-SJMKDSRF.js +0 -179
- package/dist/chunk-SJMKDSRF.js.map +0 -1
- package/dist/chunk-SSULK22X.cjs +0 -14
- package/dist/chunk-SSULK22X.cjs.map +0 -1
- package/dist/chunk-TSNDVBUU.cjs.map +0 -1
- package/dist/chunk-TTELJD4F.js.map +0 -1
- package/dist/chunk-TX4TTPYJ.cjs +0 -436
- package/dist/chunk-TX4TTPYJ.cjs.map +0 -1
- package/dist/chunk-UXG7PYML.js.map +0 -1
- package/dist/chunk-UZKIGB7M.cjs.map +0 -1
- package/dist/chunk-VF676YCO.cjs +0 -150
- package/dist/chunk-VF676YCO.cjs.map +0 -1
- package/dist/chunk-VQASQG5D.js +0 -55
- package/dist/chunk-VQASQG5D.js.map +0 -1
- package/dist/chunk-WBAXXG34.cjs.map +0 -1
- package/dist/chunk-WCHE6FJ7.js.map +0 -1
- package/dist/chunk-WM4RO23J.js +0 -145
- package/dist/chunk-WM4RO23J.js.map +0 -1
- package/dist/chunk-Z4RIRDU3.js.map +0 -1
- package/dist/chunk-ZABG3SZ2.cjs +0 -93
- package/dist/chunk-ZABG3SZ2.cjs.map +0 -1
- package/dist/chunk-ZISECZZO.js +0 -72
- package/dist/chunk-ZISECZZO.js.map +0 -1
- package/dist/chunk-ZMELUU72.js.map +0 -1
- package/dist/deployer/index.warning.d.ts +0 -9
- package/dist/deployer/index.warning.d.ts.map +0 -1
- package/dist/eval/evaluation.d.ts +0 -14
- package/dist/eval/evaluation.d.ts.map +0 -1
- package/dist/eval/index.cjs +0 -16
- package/dist/eval/index.d.ts +0 -4
- package/dist/eval/index.d.ts.map +0 -1
- package/dist/eval/index.js +0 -3
- package/dist/eval/metric.d.ts +0 -8
- package/dist/eval/metric.d.ts.map +0 -1
- package/dist/eval/types.d.ts +0 -9
- package/dist/eval/types.d.ts.map +0 -1
- package/dist/integration/index.warning.d.ts +0 -3
- package/dist/integration/index.warning.d.ts.map +0 -1
- package/dist/integration/integration.warning.d.ts +0 -5
- package/dist/integration/integration.warning.d.ts.map +0 -1
- package/dist/integration/openapi-toolset.warning.d.ts +0 -5
- package/dist/integration/openapi-toolset.warning.d.ts.map +0 -1
- package/dist/loop/telemetry/index.d.ts +0 -36
- package/dist/loop/telemetry/index.d.ts.map +0 -1
- package/dist/loop/telemetry/noop.d.ts +0 -3
- package/dist/loop/telemetry/noop.d.ts.map +0 -1
- package/dist/loop/test-utils/mockTracer.d.ts +0 -47
- package/dist/loop/test-utils/mockTracer.d.ts.map +0 -1
- package/dist/loop/test-utils/telemetry.d.ts +0 -6
- package/dist/loop/test-utils/telemetry.d.ts.map +0 -1
- package/dist/memory/index.warning.d.ts +0 -6
- package/dist/memory/index.warning.d.ts.map +0 -1
- package/dist/models-dev-4VGIWYS3.js +0 -3
- package/dist/models-dev-AXZASLL2.cjs +0 -12
- package/dist/netlify-TX6V7SJJ.cjs +0 -12
- package/dist/netlify-VJXBII33.js +0 -3
- package/dist/relevance/cohere/index.d.ts +0 -9
- package/dist/relevance/cohere/index.d.ts.map +0 -1
- package/dist/runtime-context/index.cjs +0 -12
- package/dist/runtime-context/index.js +0 -3
- package/dist/scores/base.d.ts.map +0 -1
- package/dist/scores/base.test-utils.d.ts.map +0 -1
- package/dist/scores/hooks.d.ts.map +0 -1
- package/dist/scores/index.cjs +0 -37
- package/dist/scores/index.cjs.map +0 -1
- package/dist/scores/index.d.ts +0 -4
- package/dist/scores/index.d.ts.map +0 -1
- package/dist/scores/index.js +0 -4
- package/dist/scores/index.js.map +0 -1
- package/dist/scores/run-experiment/index.d.ts.map +0 -1
- package/dist/scores/run-experiment/scorerAccumulator.d.ts.map +0 -1
- package/dist/scores/scoreTraces/index.cjs.map +0 -1
- package/dist/scores/scoreTraces/index.d.ts.map +0 -1
- package/dist/scores/scoreTraces/index.js.map +0 -1
- package/dist/scores/scoreTraces/scoreTraces.d.ts.map +0 -1
- package/dist/scores/scoreTraces/scoreTracesWorkflow.d.ts.map +0 -1
- package/dist/scores/scoreTraces/utils.d.ts.map +0 -1
- package/dist/scores/types.d.ts.map +0 -1
- package/dist/storage/base.warning.d.ts +0 -8
- package/dist/storage/base.warning.d.ts.map +0 -1
- package/dist/storage/domains/legacy-evals/base.d.ts +0 -13
- package/dist/storage/domains/legacy-evals/base.d.ts.map +0 -1
- package/dist/storage/domains/legacy-evals/index.d.ts +0 -2
- package/dist/storage/domains/legacy-evals/index.d.ts.map +0 -1
- package/dist/storage/domains/legacy-evals/inmemory.d.ts +0 -17
- package/dist/storage/domains/legacy-evals/inmemory.d.ts.map +0 -1
- package/dist/storage/domains/traces/base.d.ts +0 -14
- package/dist/storage/domains/traces/base.d.ts.map +0 -1
- package/dist/storage/domains/traces/index.d.ts +0 -3
- package/dist/storage/domains/traces/index.d.ts.map +0 -1
- package/dist/storage/domains/traces/inmemory.d.ts +0 -22
- package/dist/storage/domains/traces/inmemory.d.ts.map +0 -1
- package/dist/storage/index.warning.d.ts +0 -3
- package/dist/storage/index.warning.d.ts.map +0 -1
- package/dist/telemetry/composite-exporter.d.ts +0 -10
- package/dist/telemetry/composite-exporter.d.ts.map +0 -1
- package/dist/telemetry/index.cjs +0 -32
- package/dist/telemetry/index.cjs.map +0 -1
- package/dist/telemetry/index.d.ts +0 -6
- package/dist/telemetry/index.d.ts.map +0 -1
- package/dist/telemetry/index.js +0 -3
- package/dist/telemetry/index.js.map +0 -1
- package/dist/telemetry/otel-vendor.cjs +0 -105
- package/dist/telemetry/otel-vendor.cjs.map +0 -1
- package/dist/telemetry/otel-vendor.d.ts +0 -11
- package/dist/telemetry/otel-vendor.d.ts.map +0 -1
- package/dist/telemetry/otel-vendor.js +0 -59
- package/dist/telemetry/otel-vendor.js.map +0 -1
- package/dist/telemetry/storage-exporter.d.ts +0 -21
- package/dist/telemetry/storage-exporter.d.ts.map +0 -1
- package/dist/telemetry/telemetry.d.ts +0 -59
- package/dist/telemetry/telemetry.d.ts.map +0 -1
- package/dist/telemetry/telemetry.decorators.d.ts +0 -15
- package/dist/telemetry/telemetry.decorators.d.ts.map +0 -1
- package/dist/telemetry/types.d.ts +0 -74
- package/dist/telemetry/types.d.ts.map +0 -1
- package/dist/telemetry/utility.d.ts +0 -15
- package/dist/telemetry/utility.d.ts.map +0 -1
- package/dist/tools/index.warning.d.ts +0 -8
- package/dist/tools/index.warning.d.ts.map +0 -1
- package/dist/tts/index.warning.d.ts +0 -7
- package/dist/tts/index.warning.d.ts.map +0 -1
- package/dist/vector/index.warning.d.ts +0 -6
- package/dist/vector/index.warning.d.ts.map +0 -1
- package/dist/workflows/index.warning.d.ts +0 -6
- package/dist/workflows/index.warning.d.ts.map +0 -1
- package/dist/workflows/legacy/index.cjs +0 -92
- package/dist/workflows/legacy/index.cjs.map +0 -1
- package/dist/workflows/legacy/index.d.ts +0 -5
- package/dist/workflows/legacy/index.d.ts.map +0 -1
- package/dist/workflows/legacy/index.js +0 -3
- package/dist/workflows/legacy/index.js.map +0 -1
- package/dist/workflows/legacy/machine.d.ts +0 -386
- package/dist/workflows/legacy/machine.d.ts.map +0 -1
- package/dist/workflows/legacy/step.d.ts +0 -15
- package/dist/workflows/legacy/step.d.ts.map +0 -1
- package/dist/workflows/legacy/types.d.ts +0 -397
- package/dist/workflows/legacy/types.d.ts.map +0 -1
- package/dist/workflows/legacy/utils.d.ts +0 -68
- package/dist/workflows/legacy/utils.d.ts.map +0 -1
- package/dist/workflows/legacy/workflow-instance.d.ts +0 -97
- package/dist/workflows/legacy/workflow-instance.d.ts.map +0 -1
- package/dist/workflows/legacy/workflow.d.ts +0 -109
- package/dist/workflows/legacy/workflow.d.ts.map +0 -1
- package/dist/workflows/workflow.warning.d.ts +0 -9
- package/dist/workflows/workflow.warning.d.ts.map +0 -1
- package/eval.d.ts +0 -1
- package/runtime-context.d.ts +0 -1
- package/scores/scoreTraces.d.ts +0 -1
- package/scores.d.ts +0 -1
- package/telemetry/otel-vendor.d.ts +0 -1
- package/telemetry.d.ts +0 -1
- package/workflows/legacy.d.ts +0 -1
- /package/dist/agent/{input-processor → message-list}/index.cjs.map +0 -0
- /package/dist/agent/{input-processor → message-list}/index.js.map +0 -0
- /package/dist/{ai-tracing → evals}/index.cjs.map +0 -0
- /package/dist/{ai-tracing → evals}/index.js.map +0 -0
- /package/dist/{scores/run-experiment → evals/run}/scorerAccumulator.d.ts +0 -0
- /package/dist/{scores → evals}/scoreTraces/index.d.ts +0 -0
- /package/dist/{eval → observability}/index.cjs.map +0 -0
- /package/dist/{eval → observability}/index.js.map +0 -0
- /package/dist/{runtime-context → request-context}/index.cjs.map +0 -0
- /package/dist/{runtime-context → request-context}/index.js.map +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { createStep, createWorkflow, Agent, tryGenerateWithJsonFallback, Workflow } from './chunk-
|
|
2
|
-
import { resolveModelConfig } from './chunk-
|
|
3
|
-
import { MastraError } from './chunk-
|
|
1
|
+
import { createStep, createWorkflow, Agent, tryGenerateWithJsonFallback, Workflow } from './chunk-JUBFO5J3.js';
|
|
2
|
+
import { resolveModelConfig } from './chunk-W7UH2PWL.js';
|
|
3
|
+
import { MastraError } from './chunk-JJ5O45LH.js';
|
|
4
4
|
import { randomUUID } from 'crypto';
|
|
5
5
|
import { z } from 'zod';
|
|
6
6
|
|
|
@@ -9,12 +9,23 @@ var MastraScorer = class _MastraScorer {
|
|
|
9
9
|
this.config = config;
|
|
10
10
|
this.steps = steps;
|
|
11
11
|
this.originalPromptObjects = originalPromptObjects;
|
|
12
|
+
if (!this.config.id) {
|
|
13
|
+
throw new MastraError({
|
|
14
|
+
id: "MASTR_SCORER_FAILED_TO_CREATE_MISSING_ID",
|
|
15
|
+
domain: "SCORER" /* SCORER */,
|
|
16
|
+
category: "USER" /* USER */,
|
|
17
|
+
text: `Scorers must have an ID field. Please provide an ID in the scorer config.`
|
|
18
|
+
});
|
|
19
|
+
}
|
|
12
20
|
}
|
|
13
21
|
get type() {
|
|
14
22
|
return this.config.type;
|
|
15
23
|
}
|
|
24
|
+
get id() {
|
|
25
|
+
return this.config.id;
|
|
26
|
+
}
|
|
16
27
|
get name() {
|
|
17
|
-
return this.config.name;
|
|
28
|
+
return this.config.name ?? this.config.id;
|
|
18
29
|
}
|
|
19
30
|
get description() {
|
|
20
31
|
return this.config.description;
|
|
@@ -109,7 +120,7 @@ var MastraScorer = class _MastraScorer {
|
|
|
109
120
|
category: "USER" /* USER */,
|
|
110
121
|
text: `Cannot execute pipeline without generateScore() step`,
|
|
111
122
|
details: {
|
|
112
|
-
scorerId: this.config.name,
|
|
123
|
+
scorerId: this.config.id ?? this.config.name,
|
|
113
124
|
steps: this.steps.map((s) => s.name).join(", ")
|
|
114
125
|
}
|
|
115
126
|
});
|
|
@@ -121,7 +132,7 @@ var MastraScorer = class _MastraScorer {
|
|
|
121
132
|
}
|
|
122
133
|
const run = { ...input, runId };
|
|
123
134
|
const workflow = this.toMastraWorkflow();
|
|
124
|
-
const workflowRun = await workflow.
|
|
135
|
+
const workflowRun = await workflow.createRun();
|
|
125
136
|
const workflowResult = await workflowRun.start({
|
|
126
137
|
inputData: {
|
|
127
138
|
run
|
|
@@ -135,7 +146,7 @@ var MastraScorer = class _MastraScorer {
|
|
|
135
146
|
category: "USER" /* USER */,
|
|
136
147
|
text: `Scorer Run Failed: ${workflowResult.error}`,
|
|
137
148
|
details: {
|
|
138
|
-
scorerId: this.config.name,
|
|
149
|
+
scorerId: this.config.id ?? this.config.name,
|
|
139
150
|
steps: this.steps.map((s) => s.name).join(", ")
|
|
140
151
|
}
|
|
141
152
|
});
|
|
@@ -192,7 +203,7 @@ var MastraScorer = class _MastraScorer {
|
|
|
192
203
|
});
|
|
193
204
|
});
|
|
194
205
|
const workflow = createWorkflow({
|
|
195
|
-
id: `scorer-${this.config.name}`,
|
|
206
|
+
id: `scorer-${this.config.id ?? this.config.name}`,
|
|
196
207
|
description: this.config.description,
|
|
197
208
|
inputSchema: z.object({
|
|
198
209
|
run: z.any()
|
|
@@ -247,13 +258,14 @@ var MastraScorer = class _MastraScorer {
|
|
|
247
258
|
category: "USER" /* USER */,
|
|
248
259
|
text: `Step "${scorerStep.name}" requires a model and instructions`,
|
|
249
260
|
details: {
|
|
250
|
-
scorerId: this.config.name,
|
|
261
|
+
scorerId: this.config.id ?? this.config.name,
|
|
251
262
|
step: scorerStep.name
|
|
252
263
|
}
|
|
253
264
|
});
|
|
254
265
|
}
|
|
255
266
|
const resolvedModel = await resolveModelConfig(modelConfig);
|
|
256
267
|
const judge = new Agent({
|
|
268
|
+
id: "judge",
|
|
257
269
|
name: "judge",
|
|
258
270
|
model: resolvedModel,
|
|
259
271
|
instructions,
|
|
@@ -325,14 +337,15 @@ var MastraScorer = class _MastraScorer {
|
|
|
325
337
|
};
|
|
326
338
|
function createScorer(config) {
|
|
327
339
|
return new MastraScorer({
|
|
328
|
-
|
|
340
|
+
id: config.id,
|
|
341
|
+
name: config.name ?? config.id,
|
|
329
342
|
description: config.description,
|
|
330
343
|
judge: config.judge,
|
|
331
344
|
type: config.type
|
|
332
345
|
});
|
|
333
346
|
}
|
|
334
347
|
|
|
335
|
-
// src/
|
|
348
|
+
// src/evals/run/scorerAccumulator.ts
|
|
336
349
|
var ScoreAccumulator = class {
|
|
337
350
|
flatScores = {};
|
|
338
351
|
workflowScores = {};
|
|
@@ -420,10 +433,10 @@ var ScoreAccumulator = class {
|
|
|
420
433
|
}
|
|
421
434
|
};
|
|
422
435
|
|
|
423
|
-
// src/
|
|
424
|
-
async function
|
|
436
|
+
// src/evals/run/index.ts
|
|
437
|
+
async function runEvals(config) {
|
|
425
438
|
const { data, scorers, target, onItemComplete, concurrency = 1 } = config;
|
|
426
|
-
|
|
439
|
+
validateEvalsInputs(data, scorers, target);
|
|
427
440
|
let totalItems = 0;
|
|
428
441
|
const scoreAccumulator = new ScoreAccumulator();
|
|
429
442
|
const pMap = (await import('p-map')).default;
|
|
@@ -457,7 +470,7 @@ function isWorkflow(target) {
|
|
|
457
470
|
function isWorkflowScorerConfig(scorers) {
|
|
458
471
|
return typeof scorers === "object" && !Array.isArray(scorers) && ("workflow" in scorers || "steps" in scorers);
|
|
459
472
|
}
|
|
460
|
-
function
|
|
473
|
+
function validateEvalsInputs(data, scorers, target) {
|
|
461
474
|
if (data.length === 0) {
|
|
462
475
|
throw new MastraError({
|
|
463
476
|
domain: "SCORER",
|
|
@@ -528,10 +541,10 @@ async function executeTarget(target, item) {
|
|
|
528
541
|
}
|
|
529
542
|
}
|
|
530
543
|
async function executeWorkflow(target, item) {
|
|
531
|
-
const run = await target.
|
|
544
|
+
const run = await target.createRun({ disableScorers: true });
|
|
532
545
|
const workflowResult = await run.start({
|
|
533
546
|
inputData: item.input,
|
|
534
|
-
|
|
547
|
+
requestContext: item.requestContext
|
|
535
548
|
});
|
|
536
549
|
return {
|
|
537
550
|
scoringData: {
|
|
@@ -547,13 +560,13 @@ async function executeAgent(agent, item) {
|
|
|
547
560
|
return await agent.generate(item.input, {
|
|
548
561
|
scorers: {},
|
|
549
562
|
returnScorerData: true,
|
|
550
|
-
|
|
563
|
+
requestContext: item.requestContext
|
|
551
564
|
});
|
|
552
565
|
} else {
|
|
553
566
|
return await agent.generateLegacy(item.input, {
|
|
554
567
|
scorers: {},
|
|
555
568
|
returnScorerData: true,
|
|
556
|
-
|
|
569
|
+
requestContext: item.requestContext
|
|
557
570
|
});
|
|
558
571
|
}
|
|
559
572
|
}
|
|
@@ -566,19 +579,19 @@ async function runScorers(scorers, targetResult, item) {
|
|
|
566
579
|
input: targetResult.scoringData?.input,
|
|
567
580
|
output: targetResult.scoringData?.output,
|
|
568
581
|
groundTruth: item.groundTruth,
|
|
569
|
-
|
|
582
|
+
requestContext: item.requestContext,
|
|
570
583
|
tracingContext: item.tracingContext
|
|
571
584
|
});
|
|
572
|
-
scorerResults[scorer.
|
|
585
|
+
scorerResults[scorer.id] = score;
|
|
573
586
|
} catch (error) {
|
|
574
587
|
throw new MastraError(
|
|
575
588
|
{
|
|
576
589
|
domain: "SCORER",
|
|
577
590
|
id: "RUN_EXPERIMENT_SCORER_FAILED_TO_SCORE_RESULT",
|
|
578
591
|
category: "USER",
|
|
579
|
-
text: `Failed to run experiment: Error running scorer ${scorer.
|
|
592
|
+
text: `Failed to run experiment: Error running scorer ${scorer.id}`,
|
|
580
593
|
details: {
|
|
581
|
-
|
|
594
|
+
scorerId: scorer.id,
|
|
582
595
|
item: JSON.stringify(item)
|
|
583
596
|
}
|
|
584
597
|
},
|
|
@@ -594,10 +607,10 @@ async function runScorers(scorers, targetResult, item) {
|
|
|
594
607
|
input: targetResult.scoringData.input,
|
|
595
608
|
output: targetResult.scoringData.output,
|
|
596
609
|
groundTruth: item.groundTruth,
|
|
597
|
-
|
|
610
|
+
requestContext: item.requestContext,
|
|
598
611
|
tracingContext: item.tracingContext
|
|
599
612
|
});
|
|
600
|
-
workflowScorerResults[scorer.
|
|
613
|
+
workflowScorerResults[scorer.id] = score;
|
|
601
614
|
}
|
|
602
615
|
if (Object.keys(workflowScorerResults).length > 0) {
|
|
603
616
|
scorerResults.workflow = workflowScorerResults;
|
|
@@ -615,19 +628,19 @@ async function runScorers(scorers, targetResult, item) {
|
|
|
615
628
|
input: stepResult.payload,
|
|
616
629
|
output: stepResult.output,
|
|
617
630
|
groundTruth: item.groundTruth,
|
|
618
|
-
|
|
631
|
+
requestContext: item.requestContext,
|
|
619
632
|
tracingContext: item.tracingContext
|
|
620
633
|
});
|
|
621
|
-
stepResults[scorer.
|
|
634
|
+
stepResults[scorer.id] = score;
|
|
622
635
|
} catch (error) {
|
|
623
636
|
throw new MastraError(
|
|
624
637
|
{
|
|
625
638
|
domain: "SCORER",
|
|
626
639
|
id: "RUN_EXPERIMENT_SCORER_FAILED_TO_SCORE_STEP_RESULT",
|
|
627
640
|
category: "USER",
|
|
628
|
-
text: `Failed to run experiment: Error running scorer ${scorer.
|
|
641
|
+
text: `Failed to run experiment: Error running scorer ${scorer.id} on step ${stepId}`,
|
|
629
642
|
details: {
|
|
630
|
-
|
|
643
|
+
scorerId: scorer.id,
|
|
631
644
|
stepId
|
|
632
645
|
}
|
|
633
646
|
},
|
|
@@ -648,6 +661,6 @@ async function runScorers(scorers, targetResult, item) {
|
|
|
648
661
|
return scorerResults;
|
|
649
662
|
}
|
|
650
663
|
|
|
651
|
-
export { MastraScorer, createScorer,
|
|
652
|
-
//# sourceMappingURL=chunk-
|
|
653
|
-
//# sourceMappingURL=chunk-
|
|
664
|
+
export { MastraScorer, createScorer, runEvals };
|
|
665
|
+
//# sourceMappingURL=chunk-CINNK34N.js.map
|
|
666
|
+
//# sourceMappingURL=chunk-CINNK34N.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/evals/base.ts","../src/evals/run/scorerAccumulator.ts","../src/evals/run/index.ts"],"names":[],"mappings":"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","file":"chunk-CINNK34N.js","sourcesContent":["import { randomUUID } from 'crypto';\nimport { z } from 'zod';\nimport { Agent } from '../agent';\nimport { tryGenerateWithJsonFallback } from '../agent/utils';\nimport { ErrorCategory, ErrorDomain, MastraError } from '../error';\nimport { resolveModelConfig } from '../llm/model/resolve-model';\nimport type { MastraModelConfig } from '../llm/model/shared.types';\nimport type { TracingContext } from '../observability';\nimport { InternalSpans } from '../observability';\nimport { createWorkflow, createStep } from '../workflows';\nimport type { ScoringSamplingConfig, ScorerRunInputForAgent, ScorerRunOutputForAgent } from './types';\n\ninterface ScorerStepDefinition {\n name: string;\n definition: any;\n isPromptObject: boolean;\n}\n\n// Predefined type shortcuts for common scorer patterns\ntype ScorerTypeShortcuts = {\n agent: {\n input: ScorerRunInputForAgent;\n output: ScorerRunOutputForAgent;\n };\n};\n\n// Pipeline scorer\n// TInput and TRunOutput establish the type contract for the entire scorer pipeline,\n// ensuring type safety flows through all steps and contexts\ninterface ScorerConfig<TID extends string, TInput = any, TRunOutput = any> {\n id: TID;\n name?: string;\n description: string;\n judge?: {\n model: MastraModelConfig;\n instructions: string;\n };\n // Optional type specification - can be enum shortcut or explicit schemas\n type?:\n | keyof ScorerTypeShortcuts\n | {\n input: z.ZodSchema<TInput>;\n output: z.ZodSchema<TRunOutput>;\n };\n}\n\n// Standardized input type for all pipelines\ninterface ScorerRun<TInput = any, TOutput = any> {\n runId?: string;\n input?: TInput;\n output: TOutput;\n groundTruth?: any;\n requestContext?: Record<string, any>;\n tracingContext?: TracingContext;\n}\n\n// Prompt object definition with conditional typing\ninterface PromptObject<\n TOutput,\n TAccumulated extends Record<string, any>,\n TStepName extends string = string,\n TInput = any,\n TRunOutput = any,\n> {\n description: string;\n outputSchema: z.ZodSchema<TOutput>;\n judge?: {\n model: MastraModelConfig;\n instructions: string;\n };\n\n // Support both sync and async createPrompt\n createPrompt: (context: PromptObjectContext<TAccumulated, TStepName, TInput, TRunOutput>) => string | Promise<string>;\n}\n\n// Helper types\ntype StepResultKey<T extends string> = `${T}StepResult`;\n\n// Simple utility type to extract resolved types from potentially async functions\ntype Awaited<T> = T extends Promise<infer U> ? U : T;\n\n// Simplified context type\ntype StepContext<TAccumulated extends Record<string, any>, TInput, TRunOutput> = {\n run: ScorerRun<TInput, TRunOutput>;\n results: TAccumulated;\n};\n\n// Simplified AccumulatedResults - don't try to resolve Promise types here\ntype AccumulatedResults<T extends Record<string, any>, K extends string, V> = T & Record<StepResultKey<K>, V>;\n\n// Special context type for generateReason that includes the score\ntype GenerateReasonContext<TAccumulated extends Record<string, any>, TInput, TRunOutput> = StepContext<\n TAccumulated,\n TInput,\n TRunOutput\n> & {\n score: TAccumulated extends Record<'generateScoreStepResult', infer TScore> ? TScore : never;\n};\n\ntype ScorerRunResult<TAccumulatedResults extends Record<string, any>, TInput, TRunOutput> = Promise<\n ScorerRun<TInput, TRunOutput> & {\n score: TAccumulatedResults extends Record<'generateScoreStepResult', infer TScore> ? TScore : never;\n reason?: TAccumulatedResults extends Record<'generateReasonStepResult', infer TReason> ? TReason : undefined;\n\n // Prompts\n preprocessPrompt?: string;\n analyzePrompt?: string;\n generateScorePrompt?: string;\n generateReasonPrompt?: string;\n\n // Results\n preprocessStepResult?: TAccumulatedResults extends Record<'preprocessStepResult', infer TPreprocess>\n ? TPreprocess\n : undefined;\n analyzeStepResult?: TAccumulatedResults extends Record<'analyzeStepResult', infer TAnalyze> ? TAnalyze : undefined;\n } & { runId: string }\n>;\n\n// Conditional type for PromptObject context\ntype PromptObjectContext<\n TAccumulated extends Record<string, any>,\n TStepName extends string,\n TInput,\n TRunOutput,\n> = TStepName extends 'generateReason'\n ? GenerateReasonContext<TAccumulated, TInput, TRunOutput>\n : StepContext<TAccumulated, TInput, TRunOutput>;\n\n// Function step types that support both sync and async\ntype FunctionStep<TAccumulated extends Record<string, any>, TInput, TRunOutput, TOutput> =\n | ((context: StepContext<TAccumulated, TInput, TRunOutput>) => TOutput)\n | ((context: StepContext<TAccumulated, TInput, TRunOutput>) => Promise<TOutput>);\n\ntype GenerateReasonFunctionStep<TAccumulated extends Record<string, any>, TInput, TRunOutput> =\n | ((context: GenerateReasonContext<TAccumulated, TInput, TRunOutput>) => any)\n | ((context: GenerateReasonContext<TAccumulated, TInput, TRunOutput>) => Promise<any>);\n\ntype GenerateScoreFunctionStep<TAccumulated extends Record<string, any>, TInput, TRunOutput> =\n | ((context: StepContext<TAccumulated, TInput, TRunOutput>) => number)\n | ((context: StepContext<TAccumulated, TInput, TRunOutput>) => Promise<number>);\n\n// Special prompt object type for generateScore that always returns a number\ninterface GenerateScorePromptObject<TAccumulated extends Record<string, any>, TInput, TRunOutput> {\n description: string;\n judge?: {\n model: MastraModelConfig;\n instructions: string;\n };\n // Support both sync and async createPrompt\n createPrompt: (context: StepContext<TAccumulated, TInput, TRunOutput>) => string | Promise<string>;\n}\n\n// Special prompt object type for generateReason that always returns a string\ninterface GenerateReasonPromptObject<TAccumulated extends Record<string, any>, TInput, TRunOutput> {\n description: string;\n judge?: {\n model: MastraModelConfig;\n instructions: string;\n };\n // Support both sync and async createPrompt\n createPrompt: (context: GenerateReasonContext<TAccumulated, TInput, TRunOutput>) => string | Promise<string>;\n}\n\n// Step definition types that support both function and prompt object steps\ntype PreprocessStepDef<TAccumulated extends Record<string, any>, TStepOutput, TInput, TRunOutput> =\n | FunctionStep<TAccumulated, TInput, TRunOutput, TStepOutput>\n | PromptObject<TStepOutput, TAccumulated, 'preprocess', TInput, TRunOutput>;\n\ntype AnalyzeStepDef<TAccumulated extends Record<string, any>, TStepOutput, TInput, TRunOutput> =\n | FunctionStep<TAccumulated, TInput, TRunOutput, TStepOutput>\n | PromptObject<TStepOutput, TAccumulated, 'analyze', TInput, TRunOutput>;\n\n// Conditional type for generateScore step definition\ntype GenerateScoreStepDef<TAccumulated extends Record<string, any>, TInput, TRunOutput> =\n | GenerateScoreFunctionStep<TAccumulated, TInput, TRunOutput>\n | GenerateScorePromptObject<TAccumulated, TInput, TRunOutput>;\n\n// Conditional type for generateReason step definition\ntype GenerateReasonStepDef<TAccumulated extends Record<string, any>, TInput, TRunOutput> =\n | GenerateReasonFunctionStep<TAccumulated, TInput, TRunOutput>\n | GenerateReasonPromptObject<TAccumulated, TInput, TRunOutput>;\n\nclass MastraScorer<\n TID extends string = string,\n TInput = any,\n TRunOutput = any,\n TAccumulatedResults extends Record<string, any> = {},\n> {\n constructor(\n public config: ScorerConfig<TID, TInput, TRunOutput>,\n private steps: Array<ScorerStepDefinition> = [],\n private originalPromptObjects: Map<\n string,\n | PromptObject<any, any, any, TInput, TRunOutput>\n | GenerateReasonPromptObject<any, TInput, TRunOutput>\n | GenerateScorePromptObject<any, TInput, TRunOutput>\n > = new Map(),\n ) {\n if (!this.config.id) {\n throw new MastraError({\n id: 'MASTR_SCORER_FAILED_TO_CREATE_MISSING_ID',\n domain: ErrorDomain.SCORER,\n category: ErrorCategory.USER,\n text: `Scorers must have an ID field. Please provide an ID in the scorer config.`,\n });\n }\n }\n\n get type() {\n return this.config.type;\n }\n\n get id(): TID {\n return this.config.id;\n }\n\n get name(): string {\n return this.config.name ?? this.config.id;\n }\n\n get description(): string {\n return this.config.description;\n }\n\n get judge() {\n return this.config.judge;\n }\n\n preprocess<TPreprocessOutput>(\n stepDef: PreprocessStepDef<TAccumulatedResults, TPreprocessOutput, TInput, TRunOutput>,\n ): MastraScorer<\n TID,\n TInput,\n TRunOutput,\n AccumulatedResults<TAccumulatedResults, 'preprocess', Awaited<TPreprocessOutput>>\n > {\n const isPromptObj = this.isPromptObject(stepDef);\n\n if (isPromptObj) {\n const promptObj = stepDef as PromptObject<\n TPreprocessOutput,\n TAccumulatedResults,\n 'preprocess',\n TInput,\n TRunOutput\n >;\n this.originalPromptObjects.set('preprocess', promptObj);\n }\n\n return new MastraScorer(\n this.config,\n [\n ...this.steps,\n {\n name: 'preprocess',\n definition: stepDef as FunctionStep<any, TInput, TRunOutput, TPreprocessOutput>,\n isPromptObject: isPromptObj,\n },\n ],\n new Map(this.originalPromptObjects),\n );\n }\n\n analyze<TAnalyzeOutput>(\n stepDef: AnalyzeStepDef<TAccumulatedResults, TAnalyzeOutput, TInput, TRunOutput>,\n ): MastraScorer<\n TID,\n TInput,\n TRunOutput,\n AccumulatedResults<TAccumulatedResults, 'analyze', Awaited<TAnalyzeOutput>>\n > {\n const isPromptObj = this.isPromptObject(stepDef);\n\n if (isPromptObj) {\n const promptObj = stepDef as PromptObject<TAnalyzeOutput, TAccumulatedResults, 'analyze', TInput, TRunOutput>;\n this.originalPromptObjects.set('analyze', promptObj);\n }\n\n return new MastraScorer(\n this.config,\n [\n ...this.steps,\n {\n name: 'analyze',\n definition: isPromptObj ? undefined : (stepDef as FunctionStep<any, TInput, TRunOutput, TAnalyzeOutput>),\n isPromptObject: isPromptObj,\n },\n ],\n new Map(this.originalPromptObjects),\n );\n }\n\n generateScore<TScoreOutput extends number = number>(\n stepDef: GenerateScoreStepDef<TAccumulatedResults, TInput, TRunOutput>,\n ): MastraScorer<\n TID,\n TInput,\n TRunOutput,\n AccumulatedResults<TAccumulatedResults, 'generateScore', Awaited<TScoreOutput>>\n > {\n const isPromptObj = this.isPromptObject(stepDef);\n\n if (isPromptObj) {\n const promptObj = stepDef as GenerateScorePromptObject<TAccumulatedResults, TInput, TRunOutput>;\n this.originalPromptObjects.set('generateScore', promptObj);\n }\n\n return new MastraScorer(\n this.config,\n [\n ...this.steps,\n {\n name: 'generateScore',\n definition: isPromptObj ? undefined : (stepDef as GenerateScoreFunctionStep<any, TInput, TRunOutput>),\n isPromptObject: isPromptObj,\n },\n ],\n new Map(this.originalPromptObjects),\n );\n }\n\n generateReason<TReasonOutput = string>(\n stepDef: GenerateReasonStepDef<TAccumulatedResults, TInput, TRunOutput>,\n ): MastraScorer<\n TID,\n TInput,\n TRunOutput,\n AccumulatedResults<TAccumulatedResults, 'generateReason', Awaited<TReasonOutput>>\n > {\n const isPromptObj = this.isPromptObject(stepDef);\n\n if (isPromptObj) {\n const promptObj = stepDef as GenerateReasonPromptObject<TAccumulatedResults, TInput, TRunOutput>;\n this.originalPromptObjects.set('generateReason', promptObj);\n }\n\n return new MastraScorer(\n this.config,\n [\n ...this.steps,\n {\n name: 'generateReason',\n definition: isPromptObj ? undefined : (stepDef as GenerateReasonFunctionStep<any, TInput, TRunOutput>),\n isPromptObject: isPromptObj,\n },\n ],\n new Map(this.originalPromptObjects),\n );\n }\n\n private get hasGenerateScore(): boolean {\n return this.steps.some(step => step.name === 'generateScore');\n }\n\n async run(input: ScorerRun<TInput, TRunOutput>): ScorerRunResult<TAccumulatedResults, TInput, TRunOutput> {\n // Runtime check: execute only allowed after generateScore\n if (!this.hasGenerateScore) {\n throw new MastraError({\n id: 'MASTR_SCORER_FAILED_TO_RUN_MISSING_GENERATE_SCORE',\n domain: ErrorDomain.SCORER,\n category: ErrorCategory.USER,\n text: `Cannot execute pipeline without generateScore() step`,\n details: {\n scorerId: this.config.id ?? this.config.name,\n steps: this.steps.map(s => s.name).join(', '),\n },\n });\n }\n\n const { tracingContext } = input;\n\n let runId = input.runId;\n if (!runId) {\n runId = randomUUID();\n }\n\n const run = { ...input, runId };\n\n const workflow = this.toMastraWorkflow();\n const workflowRun = await workflow.createRun();\n const workflowResult = await workflowRun.start({\n inputData: {\n run,\n },\n tracingContext,\n });\n\n if (workflowResult.status === 'failed') {\n throw new MastraError({\n id: 'MASTR_SCORER_FAILED_TO_RUN_WORKFLOW_FAILED',\n domain: ErrorDomain.SCORER,\n category: ErrorCategory.USER,\n text: `Scorer Run Failed: ${workflowResult.error}`,\n details: {\n scorerId: this.config.id ?? this.config.name,\n steps: this.steps.map(s => s.name).join(', '),\n },\n });\n }\n\n return this.transformToScorerResult({ workflowResult, originalInput: run });\n }\n\n private isPromptObject(stepDef: any): boolean {\n // Check if it's a generateScore prompt object (has description and createPrompt, but no outputSchema)\n if (\n typeof stepDef === 'object' &&\n 'description' in stepDef &&\n 'createPrompt' in stepDef &&\n !('outputSchema' in stepDef)\n ) {\n return true;\n }\n\n // For other steps, check for description, outputSchema, and createPrompt\n const isOtherPromptObject =\n typeof stepDef === 'object' && 'description' in stepDef && 'outputSchema' in stepDef && 'createPrompt' in stepDef;\n\n return isOtherPromptObject;\n }\n\n getSteps(): Array<{ name: string; type: 'function' | 'prompt'; description?: string }> {\n return this.steps.map(step => ({\n name: step.name,\n type: step.isPromptObject ? 'prompt' : 'function',\n description: step.definition.description,\n }));\n }\n\n private toMastraWorkflow() {\n // Convert each scorer step to a workflow step\n const workflowSteps = this.steps.map(scorerStep => {\n return createStep({\n id: scorerStep.name,\n description: `Scorer step: ${scorerStep.name}`,\n inputSchema: z.any(),\n outputSchema: z.any(),\n execute: async ({ inputData, getInitData, tracingContext }) => {\n const { accumulatedResults = {}, generatedPrompts = {} } = inputData;\n const { run } = getInitData();\n\n const context = this.createScorerContext(scorerStep.name, run, accumulatedResults);\n\n let stepResult;\n let newGeneratedPrompts = generatedPrompts;\n if (scorerStep.isPromptObject) {\n const { result, prompt } = await this.executePromptStep(scorerStep, tracingContext, context);\n stepResult = result;\n newGeneratedPrompts = {\n ...generatedPrompts,\n [`${scorerStep.name}Prompt`]: prompt,\n };\n } else {\n stepResult = await this.executeFunctionStep(scorerStep, context);\n }\n\n const newAccumulatedResults = {\n ...accumulatedResults,\n [`${scorerStep.name}StepResult`]: stepResult,\n };\n\n return {\n stepResult,\n accumulatedResults: newAccumulatedResults,\n generatedPrompts: newGeneratedPrompts,\n };\n },\n });\n });\n\n const workflow = createWorkflow({\n id: `scorer-${this.config.id ?? this.config.name}`,\n description: this.config.description,\n inputSchema: z.object({\n run: z.any(), // ScorerRun\n }),\n outputSchema: z.object({\n run: z.any(),\n score: z.number(),\n reason: z.string().optional(),\n preprocessResult: z.any().optional(),\n analyzeResult: z.any().optional(),\n preprocessPrompt: z.string().optional(),\n analyzePrompt: z.string().optional(),\n generateScorePrompt: z.string().optional(),\n generateReasonPrompt: z.string().optional(),\n }),\n options: {\n // mark all spans generated as part of the scorer workflow internal\n tracingPolicy: {\n internal: InternalSpans.ALL,\n },\n },\n });\n\n let chainedWorkflow = workflow;\n for (const step of workflowSteps) {\n // @ts-ignore - Complain about the type mismatch when we chain the steps\n chainedWorkflow = chainedWorkflow.then(step);\n }\n\n return chainedWorkflow.commit();\n }\n\n private createScorerContext(\n stepName: string,\n run: ScorerRun<TInput, TRunOutput>,\n accumulatedResults: Record<string, any>,\n ) {\n if (stepName === 'generateReason') {\n const score = accumulatedResults.generateScoreStepResult;\n return { run, results: accumulatedResults, score };\n }\n\n return { run, results: accumulatedResults };\n }\n\n private async executeFunctionStep(scorerStep: ScorerStepDefinition, context: any) {\n return await scorerStep.definition(context);\n }\n\n private async executePromptStep(scorerStep: ScorerStepDefinition, tracingContext: TracingContext, context: any) {\n const originalStep = this.originalPromptObjects.get(scorerStep.name);\n if (!originalStep) {\n throw new Error(`Step \"${scorerStep.name}\" is not a prompt object`);\n }\n\n const prompt = await originalStep.createPrompt(context);\n const modelConfig = originalStep.judge?.model ?? this.config.judge?.model;\n const instructions = originalStep.judge?.instructions ?? this.config.judge?.instructions;\n\n if (!modelConfig || !instructions) {\n throw new MastraError({\n id: 'MASTR_SCORER_FAILED_TO_RUN_MISSING_MODEL_OR_INSTRUCTIONS',\n domain: ErrorDomain.SCORER,\n category: ErrorCategory.USER,\n text: `Step \"${scorerStep.name}\" requires a model and instructions`,\n details: {\n scorerId: this.config.id ?? this.config.name,\n step: scorerStep.name,\n },\n });\n }\n\n // Resolve the model configuration to a LanguageModel instance\n const resolvedModel = await resolveModelConfig(modelConfig);\n\n const judge = new Agent({\n id: 'judge',\n name: 'judge',\n model: resolvedModel,\n instructions,\n options: { tracingPolicy: { internal: InternalSpans.ALL } },\n });\n\n // GenerateScore output must be a number\n if (scorerStep.name === 'generateScore') {\n const schema = z.object({ score: z.number() });\n let result;\n if (resolvedModel.specificationVersion === 'v2') {\n result = await tryGenerateWithJsonFallback(judge, prompt, {\n structuredOutput: {\n schema,\n },\n tracingContext,\n });\n } else {\n result = await judge.generateLegacy(prompt, {\n output: schema,\n tracingContext,\n });\n }\n return { result: result.object.score, prompt };\n\n // GenerateReason output must be a string\n } else if (scorerStep.name === 'generateReason') {\n let result;\n if (resolvedModel.specificationVersion === 'v2') {\n result = await judge.generate(prompt, { tracingContext });\n } else {\n result = await judge.generateLegacy(prompt, { tracingContext });\n }\n return { result: result.text, prompt };\n } else {\n const promptStep = originalStep as PromptObject<any, any, any, TInput, TRunOutput>;\n let result;\n if (resolvedModel.specificationVersion === 'v2') {\n result = await tryGenerateWithJsonFallback(judge, prompt, {\n structuredOutput: {\n schema: promptStep.outputSchema,\n },\n tracingContext,\n });\n } else {\n result = await judge.generateLegacy(prompt, {\n output: promptStep.outputSchema,\n tracingContext,\n });\n }\n return { result: result.object, prompt };\n }\n }\n\n private transformToScorerResult({\n workflowResult,\n originalInput,\n }: {\n workflowResult: any;\n originalInput: ScorerRun<TInput, TRunOutput> & { runId: string };\n }) {\n const finalStepResult = workflowResult.result;\n const accumulatedResults = finalStepResult?.accumulatedResults || {};\n const generatedPrompts = finalStepResult?.generatedPrompts || {};\n\n return {\n ...originalInput,\n score: accumulatedResults.generateScoreStepResult,\n generateScorePrompt: generatedPrompts.generateScorePrompt,\n reason: accumulatedResults.generateReasonStepResult,\n generateReasonPrompt: generatedPrompts.generateReasonPrompt,\n preprocessStepResult: accumulatedResults.preprocessStepResult,\n preprocessPrompt: generatedPrompts.preprocessPrompt,\n analyzeStepResult: accumulatedResults.analyzeStepResult,\n analyzePrompt: generatedPrompts.analyzePrompt,\n };\n }\n}\n\n// Overload: enum type shortcuts (e.g., type: 'agent')\nexport function createScorer<TID extends string, TType extends keyof ScorerTypeShortcuts>(\n config: Omit<ScorerConfig<TID, any, any>, 'type'> & {\n type: TType;\n },\n): MastraScorer<TID, ScorerTypeShortcuts[TType]['input'], ScorerTypeShortcuts[TType]['output'], {}>;\n\n// Overload: infer TInput/TRunOutput from provided Zod schemas in config.type\nexport function createScorer<TID extends string, TInputSchema extends z.ZodTypeAny, TOutputSchema extends z.ZodTypeAny>(\n config: Omit<ScorerConfig<TID, z.infer<TInputSchema>, z.infer<TOutputSchema>>, 'type'> & {\n type: { input: TInputSchema; output: TOutputSchema };\n },\n): MastraScorer<TID, z.infer<TInputSchema>, z.infer<TOutputSchema>, {}>;\n\n// Overload: explicit generics (backwards compatible)\nexport function createScorer<TInput = any, TRunOutput = any>(\n config: ScorerConfig<string, TInput, TRunOutput>,\n): MastraScorer<string, TInput, TRunOutput, {}>;\n\n// Implementation\nexport function createScorer(config: any): any {\n return new MastraScorer({\n id: config.id,\n name: config.name ?? config.id,\n description: config.description,\n judge: config.judge,\n type: config.type,\n });\n}\n\nexport type MastraScorerEntry = {\n scorer: MastraScorer<any, any, any, any>;\n sampling?: ScoringSamplingConfig;\n};\n\nexport type MastraScorers = Record<string, MastraScorerEntry>;\n\n// Export types and interfaces for use in test files\nexport type { ScorerConfig, ScorerRun, PromptObject };\n\nexport { MastraScorer };\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 { MastraError } from '../../error';\nimport type { TracingContext } from '../../observability';\nimport type { RequestContext } from '../../request-context';\nimport { Workflow } from '../../workflows';\nimport type { 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: 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 Workflow<any, any, any, any, any, any, any>>(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 Workflow<any, any, any, any, any, any, any>>(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 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 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 (model.specificationVersion === 'v2') {\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"]}
|