@mastra/core 1.0.0-beta.13 → 1.0.0-beta.15
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 +477 -0
- package/dist/agent/agent-legacy.d.ts.map +1 -1
- package/dist/agent/agent.d.ts +2 -2
- package/dist/agent/agent.d.ts.map +1 -1
- package/dist/agent/agent.types.d.ts +6 -7
- package/dist/agent/agent.types.d.ts.map +1 -1
- package/dist/agent/index.cjs +17 -9
- package/dist/agent/index.d.ts +1 -1
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/index.js +2 -2
- package/dist/agent/message-list/index.cjs +3 -3
- package/dist/agent/message-list/index.d.ts +1 -1
- package/dist/agent/message-list/index.d.ts.map +1 -1
- package/dist/agent/message-list/index.js +1 -1
- package/dist/agent/message-list/prompt/attachments-to-parts.d.ts.map +1 -1
- package/dist/agent/trip-wire.d.ts +2 -2
- package/dist/agent/trip-wire.d.ts.map +1 -1
- package/dist/agent/utils.d.ts +4 -1
- package/dist/agent/utils.d.ts.map +1 -1
- package/dist/agent/workflows/prepare-stream/index.d.ts +3 -3
- package/dist/agent/workflows/prepare-stream/index.d.ts.map +1 -1
- package/dist/agent/workflows/prepare-stream/map-results-step.d.ts +3 -3
- 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 +3 -3
- 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 +3 -3
- package/dist/agent/workflows/prepare-stream/prepare-tools-step.d.ts.map +1 -1
- package/dist/bundler/types.d.ts +1 -0
- package/dist/bundler/types.d.ts.map +1 -1
- package/dist/chunk-2AU5ZHBL.js +79 -0
- package/dist/chunk-2AU5ZHBL.js.map +1 -0
- package/dist/{chunk-7HEAVZRS.cjs → chunk-2OOMJRXZ.cjs} +15 -15
- package/dist/{chunk-7HEAVZRS.cjs.map → chunk-2OOMJRXZ.cjs.map} +1 -1
- package/dist/chunk-37YWZMBX.js +27 -0
- package/dist/chunk-37YWZMBX.js.map +1 -0
- package/dist/{chunk-VETAQUW3.js → chunk-3HDRO3GG.js} +790 -1206
- package/dist/chunk-3HDRO3GG.js.map +1 -0
- package/dist/{chunk-MRRFTNF4.js → chunk-4DFWV4IR.js} +3 -4
- package/dist/chunk-4DFWV4IR.js.map +1 -0
- package/dist/{chunk-373OC54J.js → chunk-4HP7CS6L.js} +7 -6
- package/dist/chunk-4HP7CS6L.js.map +1 -0
- package/dist/{chunk-62Q7K656.js → chunk-4J4M2Q5R.js} +125 -121
- package/dist/chunk-4J4M2Q5R.js.map +1 -0
- package/dist/{chunk-HWMMIRIF.cjs → chunk-4U7ZLI36.cjs} +3 -2
- package/dist/chunk-4U7ZLI36.cjs.map +1 -0
- package/dist/{chunk-Z55SJVEC.cjs → chunk-6HJFCSJ4.cjs} +7 -6
- package/dist/chunk-6HJFCSJ4.cjs.map +1 -0
- package/dist/{chunk-Y7MZ5LJT.cjs → chunk-AAX7ZOM7.cjs} +101 -102
- package/dist/chunk-AAX7ZOM7.cjs.map +1 -0
- package/dist/{chunk-WPTTKULS.js → chunk-AR5CF3IN.js} +4 -4
- package/dist/{chunk-WPTTKULS.js.map → chunk-AR5CF3IN.js.map} +1 -1
- package/dist/{chunk-5VZGJTPR.js → chunk-BAZHNX5P.js} +57 -11
- package/dist/chunk-BAZHNX5P.js.map +1 -0
- package/dist/{chunk-MLKE7HRS.cjs → chunk-BC2VKOH4.cjs} +43 -21
- package/dist/chunk-BC2VKOH4.cjs.map +1 -0
- package/dist/{chunk-2IU4RGU5.js → chunk-BCUKD2XG.js} +59 -19
- package/dist/chunk-BCUKD2XG.js.map +1 -0
- package/dist/{chunk-WYGUWVTF.js → chunk-CBQ6WDUJ.js} +9 -9
- package/dist/chunk-CBQ6WDUJ.js.map +1 -0
- package/dist/chunk-CBVHOGXX.cjs +674 -0
- package/dist/chunk-CBVHOGXX.cjs.map +1 -0
- package/dist/{chunk-PJAK4U6R.cjs → chunk-CBY37FTP.cjs} +28 -28
- package/dist/chunk-CBY37FTP.cjs.map +1 -0
- package/dist/{chunk-BQDZIQ3G.js → chunk-D2IFWD7A.js} +365 -137
- package/dist/chunk-D2IFWD7A.js.map +1 -0
- package/dist/{chunk-R5AJGM55.cjs → chunk-DDK3URK2.cjs} +987 -519
- package/dist/chunk-DDK3URK2.cjs.map +1 -0
- package/dist/chunk-DRJTNGI4.cjs +263 -0
- package/dist/chunk-DRJTNGI4.cjs.map +1 -0
- package/dist/{chunk-X6IBA7FP.cjs → chunk-EMLEZXTQ.cjs} +22 -120
- package/dist/chunk-EMLEZXTQ.cjs.map +1 -0
- package/dist/{chunk-OWIEOL55.cjs → chunk-F75EQ574.cjs} +695 -254
- package/dist/chunk-F75EQ574.cjs.map +1 -0
- package/dist/{chunk-YPLZDWG7.js → chunk-FJEVLHJT.js} +3 -2
- package/dist/chunk-FJEVLHJT.js.map +1 -0
- package/dist/chunk-GVAPYQRO.cjs +252 -0
- package/dist/chunk-GVAPYQRO.cjs.map +1 -0
- package/dist/{chunk-MXBVP7HX.cjs → chunk-GXMJ5URG.cjs} +227 -181
- package/dist/chunk-GXMJ5URG.cjs.map +1 -0
- package/dist/chunk-H2NHG7QL.cjs +32 -0
- package/dist/chunk-H2NHG7QL.cjs.map +1 -0
- package/dist/chunk-HAYBGFPA.js +259 -0
- package/dist/chunk-HAYBGFPA.js.map +1 -0
- package/dist/{chunk-GIWC35YQ.js → chunk-IHISDRFV.js} +299 -49
- package/dist/chunk-IHISDRFV.js.map +1 -0
- package/dist/{chunk-VEPP75C4.cjs → chunk-IRTICXRZ.cjs} +101 -61
- package/dist/chunk-IRTICXRZ.cjs.map +1 -0
- package/dist/{chunk-ARAQIW6E.js → chunk-K66U47VL.js} +617 -188
- package/dist/chunk-K66U47VL.js.map +1 -0
- package/dist/{chunk-LGB4VNZI.cjs → chunk-LOV5NNGK.cjs} +811 -1235
- package/dist/chunk-LOV5NNGK.cjs.map +1 -0
- package/dist/{chunk-E5BQRAJK.js → chunk-NGWTSHNA.js} +823 -362
- package/dist/chunk-NGWTSHNA.js.map +1 -0
- package/dist/{chunk-72YCRTEX.cjs → chunk-O2CAMK4A.cjs} +13 -2
- package/dist/chunk-O2CAMK4A.cjs.map +1 -0
- package/dist/{chunk-4BC5FUAO.js → chunk-O7M7DR4E.js} +6 -5
- package/dist/chunk-O7M7DR4E.js.map +1 -0
- package/dist/chunk-OTIGV7CL.js +10215 -0
- package/dist/chunk-OTIGV7CL.js.map +1 -0
- package/dist/{chunk-WYWRMIQC.js → chunk-QXL3F3T2.js} +9 -105
- package/dist/chunk-QXL3F3T2.js.map +1 -0
- package/dist/{chunk-U4CSOY6T.cjs → chunk-RA2CHJCY.cjs} +399 -171
- package/dist/chunk-RA2CHJCY.cjs.map +1 -0
- package/dist/chunk-RMV5HJM7.cjs +10237 -0
- package/dist/chunk-RMV5HJM7.cjs.map +1 -0
- package/dist/{chunk-AGHLXC4I.cjs → chunk-S23TNDXG.cjs} +300 -50
- package/dist/chunk-S23TNDXG.cjs.map +1 -0
- package/dist/{chunk-H4VUIOWU.cjs → chunk-SSB4AVHU.cjs} +20 -19
- package/dist/chunk-SSB4AVHU.cjs.map +1 -0
- package/dist/chunk-ST7NBF4H.cjs +84 -0
- package/dist/chunk-ST7NBF4H.cjs.map +1 -0
- package/dist/{chunk-SZYSDJTN.cjs → chunk-T2LVULCK.cjs} +142 -137
- package/dist/chunk-T2LVULCK.cjs.map +1 -0
- package/dist/chunk-VE6HQ7H6.js +250 -0
- package/dist/chunk-VE6HQ7H6.js.map +1 -0
- package/dist/{chunk-RCJLMMTO.js → chunk-XJB7J4UT.js} +30 -8
- package/dist/chunk-XJB7J4UT.js.map +1 -0
- package/dist/chunk-YV43YEZ6.js +598 -0
- package/dist/chunk-YV43YEZ6.js.map +1 -0
- package/dist/{chunk-Y36Y5MTD.js → chunk-ZGIVAQRI.js} +13 -3
- package/dist/chunk-ZGIVAQRI.js.map +1 -0
- package/dist/error/index.cjs +6 -6
- package/dist/error/index.d.ts +1 -0
- package/dist/error/index.d.ts.map +1 -1
- package/dist/error/index.js +1 -1
- package/dist/evals/index.cjs +49 -9
- package/dist/evals/index.js +2 -2
- package/dist/evals/run/index.d.ts.map +1 -1
- package/dist/evals/scoreTraces/index.cjs +70 -22
- package/dist/evals/scoreTraces/index.cjs.map +1 -1
- package/dist/evals/scoreTraces/index.js +63 -15
- package/dist/evals/scoreTraces/index.js.map +1 -1
- package/dist/evals/scoreTraces/scoreTracesWorkflow.d.ts.map +1 -1
- package/dist/evals/scoreTraces/utils.d.ts.map +1 -1
- package/dist/evals/types.d.ts +568 -116
- package/dist/evals/types.d.ts.map +1 -1
- package/dist/index.cjs +2 -2
- package/dist/index.js +1 -1
- package/dist/integration/index.cjs +2 -2
- package/dist/integration/index.js +1 -1
- package/dist/llm/index.cjs +21 -21
- package/dist/llm/index.js +5 -5
- package/dist/llm/model/aisdk/generate-to-stream.d.ts +20 -0
- package/dist/llm/model/aisdk/generate-to-stream.d.ts.map +1 -0
- package/dist/llm/model/aisdk/v5/model.d.ts +4 -0
- package/dist/llm/model/aisdk/v5/model.d.ts.map +1 -1
- package/dist/llm/model/aisdk/v6/model.d.ts +43 -0
- package/dist/llm/model/aisdk/v6/model.d.ts.map +1 -0
- package/dist/llm/model/embedding-router.d.ts +1 -1
- 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/provider-options.d.ts +2 -1
- package/dist/llm/model/provider-options.d.ts.map +1 -1
- package/dist/llm/model/provider-types.generated.d.ts +126 -17
- package/dist/llm/model/resolve-model.d.ts +2 -2
- package/dist/llm/model/resolve-model.d.ts.map +1 -1
- package/dist/llm/model/shared.types.d.ts +18 -7
- package/dist/llm/model/shared.types.d.ts.map +1 -1
- package/dist/loop/index.cjs +2 -2
- package/dist/loop/index.js +1 -1
- package/dist/loop/network/index.d.ts +8 -8
- package/dist/loop/network/index.d.ts.map +1 -1
- package/dist/loop/test-utils/MastraLanguageModelV2Mock.d.ts +1 -1
- package/dist/loop/test-utils/MastraLanguageModelV2Mock.d.ts.map +1 -1
- package/dist/loop/test-utils/MastraLanguageModelV3Mock.d.ts +29 -0
- package/dist/loop/test-utils/MastraLanguageModelV3Mock.d.ts.map +1 -0
- package/dist/loop/test-utils/fullStream.d.ts +2 -1
- package/dist/loop/test-utils/fullStream.d.ts.map +1 -1
- package/dist/loop/test-utils/resultObject.d.ts +2 -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/test-utils/utils-v3.d.ts +55 -0
- package/dist/loop/test-utils/utils-v3.d.ts.map +1 -0
- package/dist/loop/types.d.ts +10 -8
- package/dist/loop/types.d.ts.map +1 -1
- package/dist/loop/workflows/agentic-execution/index.d.ts +36 -36
- package/dist/loop/workflows/agentic-execution/llm-execution-step.d.ts +25 -25
- 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 +12 -12
- package/dist/loop/workflows/agentic-execution/tool-call-step.d.ts.map +1 -1
- package/dist/loop/workflows/agentic-loop/index.d.ts +36 -36
- package/dist/loop/workflows/agentic-loop/index.d.ts.map +1 -1
- package/dist/loop/workflows/run-state.d.ts +2 -2
- package/dist/loop/workflows/run-state.d.ts.map +1 -1
- package/dist/loop/workflows/schema.d.ts +12 -12
- package/dist/mastra/hooks.d.ts.map +1 -1
- package/dist/mastra/index.cjs +2 -2
- package/dist/mastra/index.d.ts +7 -2
- package/dist/mastra/index.d.ts.map +1 -1
- package/dist/mastra/index.js +1 -1
- package/dist/mcp/index.cjs +4 -4
- package/dist/mcp/index.js +1 -1
- package/dist/memory/index.cjs +26 -6
- package/dist/memory/index.d.ts +1 -0
- package/dist/memory/index.d.ts.map +1 -1
- package/dist/memory/index.js +1 -1
- package/dist/memory/memory.d.ts +9 -8
- package/dist/memory/memory.d.ts.map +1 -1
- package/dist/memory/mock.d.ts +2 -1
- package/dist/memory/mock.d.ts.map +1 -1
- package/dist/memory/types.d.ts +3 -4
- package/dist/memory/types.d.ts.map +1 -1
- package/dist/memory/working-memory-utils.d.ts +20 -0
- package/dist/memory/working-memory-utils.d.ts.map +1 -0
- package/dist/models-dev-26XLUKVK.cjs +12 -0
- package/dist/{models-dev-D3EKFGAO.cjs.map → models-dev-26XLUKVK.cjs.map} +1 -1
- package/dist/models-dev-HUFLQFPB.js +3 -0
- package/dist/{models-dev-EO22XOXQ.js.map → models-dev-HUFLQFPB.js.map} +1 -1
- package/dist/netlify-CUYK2MZ2.cjs +12 -0
- package/dist/{netlify-WE42TZIT.cjs.map → netlify-CUYK2MZ2.cjs.map} +1 -1
- package/dist/netlify-J4QPOROO.js +3 -0
- package/dist/{netlify-AE4LNCAI.js.map → netlify-J4QPOROO.js.map} +1 -1
- package/dist/observability/index.cjs +14 -10
- package/dist/observability/index.js +1 -1
- package/dist/observability/types/tracing.d.ts +32 -19
- package/dist/observability/types/tracing.d.ts.map +1 -1
- package/dist/processors/index.cjs +37 -37
- package/dist/processors/index.d.ts +9 -7
- package/dist/processors/index.d.ts.map +1 -1
- package/dist/processors/index.js +1 -1
- package/dist/processors/memory/message-history.d.ts +7 -1
- package/dist/processors/memory/message-history.d.ts.map +1 -1
- package/dist/processors/processors/language-detector.d.ts.map +1 -1
- package/dist/processors/processors/moderation.d.ts.map +1 -1
- package/dist/processors/processors/pii-detector.d.ts.map +1 -1
- package/dist/processors/processors/prompt-injection-detector.d.ts.map +1 -1
- package/dist/processors/processors/token-limiter.d.ts +5 -2
- package/dist/processors/processors/token-limiter.d.ts.map +1 -1
- package/dist/processors/runner.d.ts +2 -0
- package/dist/processors/runner.d.ts.map +1 -1
- package/dist/processors/step-schema.d.ts +26 -26
- package/dist/processors/step-schema.d.ts.map +1 -1
- package/dist/provider-registry-6CIGRQVZ.js +3 -0
- package/dist/{provider-registry-6LF3NGC5.js.map → provider-registry-6CIGRQVZ.js.map} +1 -1
- package/dist/provider-registry-7O7FJ4BS.cjs +40 -0
- package/dist/{provider-registry-73FKMXJV.cjs.map → provider-registry-7O7FJ4BS.cjs.map} +1 -1
- package/dist/provider-registry.json +295 -45
- package/dist/relevance/index.cjs +3 -3
- package/dist/relevance/index.cjs.map +1 -1
- package/dist/relevance/index.js +2 -2
- package/dist/relevance/index.js.map +1 -1
- package/dist/server/index.cjs +5 -5
- package/dist/server/index.js +1 -1
- package/dist/storage/base.d.ts +40 -292
- package/dist/storage/base.d.ts.map +1 -1
- package/dist/storage/constants.cjs +60 -0
- package/dist/storage/constants.cjs.map +1 -0
- package/dist/storage/constants.d.ts +6 -1
- package/dist/storage/constants.d.ts.map +1 -1
- package/dist/storage/constants.js +3 -0
- package/dist/storage/constants.js.map +1 -0
- package/dist/storage/domains/agents/base.d.ts +2 -2
- package/dist/storage/domains/agents/base.d.ts.map +1 -1
- package/dist/storage/domains/agents/inmemory.d.ts +5 -4
- package/dist/storage/domains/agents/inmemory.d.ts.map +1 -1
- package/dist/storage/domains/base.d.ts +20 -0
- package/dist/storage/domains/base.d.ts.map +1 -0
- package/dist/storage/domains/index.d.ts +3 -0
- package/dist/storage/domains/index.d.ts.map +1 -1
- package/dist/storage/domains/inmemory-db.d.ts +57 -0
- package/dist/storage/domains/inmemory-db.d.ts.map +1 -0
- package/dist/storage/domains/memory/base.d.ts +2 -2
- package/dist/storage/domains/memory/base.d.ts.map +1 -1
- package/dist/storage/domains/memory/inmemory.d.ts +5 -13
- package/dist/storage/domains/memory/inmemory.d.ts.map +1 -1
- package/dist/storage/domains/observability/base.d.ts +24 -29
- package/dist/storage/domains/observability/base.d.ts.map +1 -1
- package/dist/storage/domains/observability/index.d.ts +1 -0
- package/dist/storage/domains/observability/index.d.ts.map +1 -1
- package/dist/storage/domains/observability/inmemory.d.ts +46 -35
- package/dist/storage/domains/observability/inmemory.d.ts.map +1 -1
- package/dist/storage/domains/observability/types.d.ts +2365 -0
- package/dist/storage/domains/observability/types.d.ts.map +1 -0
- package/dist/storage/domains/scores/base.d.ts +9 -20
- package/dist/storage/domains/scores/base.d.ts.map +1 -1
- package/dist/storage/domains/scores/inmemory.d.ts +11 -22
- package/dist/storage/domains/scores/inmemory.d.ts.map +1 -1
- package/dist/storage/domains/shared.d.ts +76 -0
- package/dist/storage/domains/shared.d.ts.map +1 -0
- package/dist/storage/domains/workflows/base.d.ts +4 -2
- package/dist/storage/domains/workflows/base.d.ts.map +1 -1
- package/dist/storage/domains/workflows/inmemory.d.ts +10 -9
- package/dist/storage/domains/workflows/inmemory.d.ts.map +1 -1
- package/dist/storage/index.cjs +272 -59
- package/dist/storage/index.js +2 -1
- package/dist/storage/mock.d.ts +28 -174
- package/dist/storage/mock.d.ts.map +1 -1
- package/dist/storage/types.d.ts +39 -44
- package/dist/storage/types.d.ts.map +1 -1
- package/dist/storage/utils.d.ts +5 -0
- package/dist/storage/utils.d.ts.map +1 -1
- package/dist/stream/MastraAgentNetworkStream.d.ts +1 -1
- 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.map +1 -1
- package/dist/stream/aisdk/v5/execute.d.ts +4 -4
- package/dist/stream/aisdk/v5/execute.d.ts.map +1 -1
- package/dist/stream/aisdk/v5/output.d.ts +2 -2
- package/dist/stream/aisdk/v5/output.d.ts.map +1 -1
- package/dist/stream/aisdk/v5/transform.d.ts.map +1 -1
- package/dist/stream/base/output.d.ts +7 -5
- package/dist/stream/base/output.d.ts.map +1 -1
- package/dist/stream/index.cjs +12 -12
- package/dist/stream/index.js +2 -2
- package/dist/stream/types.d.ts +32 -21
- package/dist/stream/types.d.ts.map +1 -1
- package/dist/test-utils/llm-mock.cjs +4 -4
- package/dist/test-utils/llm-mock.cjs.map +1 -1
- package/dist/test-utils/llm-mock.js +1 -1
- package/dist/test-utils/llm-mock.js.map +1 -1
- package/dist/token-6GSAFR2W-LTZ7QQUP.js +61 -0
- package/dist/token-6GSAFR2W-LTZ7QQUP.js.map +1 -0
- package/dist/token-6GSAFR2W-UEEINYAN.cjs +63 -0
- package/dist/token-6GSAFR2W-UEEINYAN.cjs.map +1 -0
- package/dist/token-util-NEHG7TUY-QTFZ26EN.js +8 -0
- package/dist/token-util-NEHG7TUY-QTFZ26EN.js.map +1 -0
- package/dist/token-util-NEHG7TUY-WZL2DNCG.cjs +10 -0
- package/dist/token-util-NEHG7TUY-WZL2DNCG.cjs.map +1 -0
- package/dist/tool-loop-agent/index.cjs +20 -0
- package/dist/tool-loop-agent/index.cjs.map +1 -0
- package/dist/tool-loop-agent/index.d.ts +36 -0
- package/dist/tool-loop-agent/index.d.ts.map +1 -0
- package/dist/tool-loop-agent/index.js +3 -0
- package/dist/tool-loop-agent/index.js.map +1 -0
- package/dist/tool-loop-agent/tool-loop-processor.d.ts +30 -0
- package/dist/tool-loop-agent/tool-loop-processor.d.ts.map +1 -0
- package/dist/tool-loop-agent/utils.d.ts +17 -0
- package/dist/tool-loop-agent/utils.d.ts.map +1 -0
- 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.map +1 -1
- package/dist/tools/toolchecks.d.ts +1 -1
- package/dist/tools/toolchecks.d.ts.map +1 -1
- package/dist/tools/validation.d.ts +1 -1
- package/dist/tools/validation.d.ts.map +1 -1
- package/dist/utils/zod-utils.d.ts +34 -0
- package/dist/utils/zod-utils.d.ts.map +1 -0
- package/dist/utils.cjs +39 -22
- package/dist/utils.d.ts +3 -3
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +2 -1
- package/dist/vector/embed.d.ts +1 -0
- package/dist/vector/embed.d.ts.map +1 -1
- package/dist/vector/index.cjs +18 -5
- package/dist/vector/index.cjs.map +1 -1
- package/dist/vector/index.js +9 -2
- package/dist/vector/index.js.map +1 -1
- package/dist/vector/vector.d.ts +26 -3
- package/dist/vector/vector.d.ts.map +1 -1
- package/dist/voice/composite-voice.d.ts.map +1 -1
- package/dist/voice/index.cjs +6 -6
- package/dist/voice/index.js +1 -1
- package/dist/workflows/default.d.ts +2 -0
- package/dist/workflows/default.d.ts.map +1 -1
- package/dist/workflows/evented/execution-engine.d.ts +1 -0
- 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 +5 -0
- package/dist/workflows/evented/step-executor.d.ts.map +1 -1
- package/dist/workflows/evented/workflow-event-processor/index.d.ts +20 -4
- package/dist/workflows/evented/workflow-event-processor/index.d.ts.map +1 -1
- package/dist/workflows/evented/workflow-event-processor/loop.d.ts +2 -2
- 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/parallel.d.ts.map +1 -1
- package/dist/workflows/evented/workflow-event-processor/sleep.d.ts +2 -2
- package/dist/workflows/evented/workflow-event-processor/sleep.d.ts.map +1 -1
- package/dist/workflows/evented/workflow.d.ts +10 -2
- package/dist/workflows/evented/workflow.d.ts.map +1 -1
- package/dist/workflows/execution-engine.d.ts +1 -0
- package/dist/workflows/execution-engine.d.ts.map +1 -1
- package/dist/workflows/handlers/control-flow.d.ts +4 -0
- package/dist/workflows/handlers/control-flow.d.ts.map +1 -1
- package/dist/workflows/handlers/entry.d.ts +3 -2
- package/dist/workflows/handlers/entry.d.ts.map +1 -1
- package/dist/workflows/handlers/step.d.ts +1 -0
- package/dist/workflows/handlers/step.d.ts.map +1 -1
- package/dist/workflows/index.cjs +23 -23
- package/dist/workflows/index.js +1 -1
- package/dist/workflows/types.d.ts +23 -3
- package/dist/workflows/types.d.ts.map +1 -1
- package/dist/workflows/utils.d.ts +1 -0
- package/dist/workflows/utils.d.ts.map +1 -1
- package/dist/workflows/workflow.d.ts +26 -9
- package/dist/workflows/workflow.d.ts.map +1 -1
- package/package.json +20 -12
- package/src/llm/model/provider-types.generated.d.ts +126 -17
- package/storage/constants.d.ts +1 -0
- package/tool-loop-agent.d.ts +1 -0
- package/dist/chunk-2IU4RGU5.js.map +0 -1
- package/dist/chunk-373OC54J.js.map +0 -1
- package/dist/chunk-4BC5FUAO.js.map +0 -1
- package/dist/chunk-5VZGJTPR.js.map +0 -1
- package/dist/chunk-62Q7K656.js.map +0 -1
- package/dist/chunk-72YCRTEX.cjs.map +0 -1
- package/dist/chunk-ADADLFDR.js +0 -42
- package/dist/chunk-ADADLFDR.js.map +0 -1
- package/dist/chunk-AGHLXC4I.cjs.map +0 -1
- package/dist/chunk-ARAQIW6E.js.map +0 -1
- package/dist/chunk-BQDZIQ3G.js.map +0 -1
- package/dist/chunk-E5BQRAJK.js.map +0 -1
- package/dist/chunk-GIWC35YQ.js.map +0 -1
- package/dist/chunk-H4VUIOWU.cjs.map +0 -1
- package/dist/chunk-HWMMIRIF.cjs.map +0 -1
- package/dist/chunk-IXZ2T2QX.cjs +0 -448
- package/dist/chunk-IXZ2T2QX.cjs.map +0 -1
- package/dist/chunk-LGB4VNZI.cjs.map +0 -1
- package/dist/chunk-MLKE7HRS.cjs.map +0 -1
- package/dist/chunk-MRRFTNF4.js.map +0 -1
- package/dist/chunk-MXBVP7HX.cjs.map +0 -1
- package/dist/chunk-OWIEOL55.cjs.map +0 -1
- package/dist/chunk-PJAK4U6R.cjs.map +0 -1
- package/dist/chunk-R5AJGM55.cjs.map +0 -1
- package/dist/chunk-RCJLMMTO.js.map +0 -1
- package/dist/chunk-SZYSDJTN.cjs.map +0 -1
- package/dist/chunk-T2VLUFGG.cjs +0 -47
- package/dist/chunk-T2VLUFGG.cjs.map +0 -1
- package/dist/chunk-U4CSOY6T.cjs.map +0 -1
- package/dist/chunk-UBSPZTQX.js +0 -434
- package/dist/chunk-UBSPZTQX.js.map +0 -1
- package/dist/chunk-VEPP75C4.cjs.map +0 -1
- package/dist/chunk-VETAQUW3.js.map +0 -1
- package/dist/chunk-WYGUWVTF.js.map +0 -1
- package/dist/chunk-WYWRMIQC.js.map +0 -1
- package/dist/chunk-X6IBA7FP.cjs.map +0 -1
- package/dist/chunk-Y36Y5MTD.js.map +0 -1
- package/dist/chunk-Y7MZ5LJT.cjs.map +0 -1
- package/dist/chunk-YPLZDWG7.js.map +0 -1
- package/dist/chunk-Z55SJVEC.cjs.map +0 -1
- package/dist/llm/model/is-v2-model.d.ts +0 -3
- package/dist/llm/model/is-v2-model.d.ts.map +0 -1
- package/dist/models-dev-D3EKFGAO.cjs +0 -12
- package/dist/models-dev-EO22XOXQ.js +0 -3
- package/dist/netlify-AE4LNCAI.js +0 -3
- package/dist/netlify-WE42TZIT.cjs +0 -12
- package/dist/provider-registry-6LF3NGC5.js +0 -3
- package/dist/provider-registry-73FKMXJV.cjs +0 -40
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/storage/domains/shared.ts","../src/evals/types.ts","../src/storage/domains/observability/types.ts","../src/storage/types.ts","../src/storage/constants.ts"],"names":["z","EntityType","SpanType","TraceStatus","getZodTypeName"],"mappings":"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","file":"chunk-CBVHOGXX.cjs","sourcesContent":["import { z } from 'zod';\nimport { EntityType } from '../../observability';\n\n/**\n * Common DB fields\n */\nexport const createdAtField = z.date().describe('Database record creation time');\n\nexport const updatedAtField = z.date().describe('Database record last update time');\n\nexport const dbTimestamps = {\n createdAt: createdAtField,\n updatedAt: updatedAtField.nullable(),\n} as const satisfies z.ZodRawShape;\n\n/**\n * Pagination arguments for list queries (page and perPage only)\n * Uses z.coerce to handle string → number conversion from query params\n */\nexport const paginationArgsSchema = z\n .object({\n page: z.coerce.number().int().min(0).optional().default(0).describe('Zero-indexed page number'),\n perPage: z.coerce.number().int().min(1).max(100).optional().default(10).describe('Number of items per page'),\n })\n .describe('Pagination options for list queries');\n\nexport type PaginationArgs = z.input<typeof paginationArgsSchema>;\n\n/**\n * Pagination response info\n * Used across all paginated endpoints\n */\nexport const paginationInfoSchema = z.object({\n total: z.number().describe('Total number of items available'),\n page: z.number().describe('Current page'),\n perPage: z\n .union([z.number(), z.literal(false)])\n .describe('Number of items per page, or false if pagination is disabled'),\n hasMore: z.boolean().describe('True if more pages are available'),\n});\n\n/**\n * Date range for filtering by time\n * Uses z.coerce to handle ISO string → Date conversion from query params\n */\nexport const dateRangeSchema = z\n .object({\n start: z.coerce.date().optional().describe('Start of date range (inclusive)'),\n end: z.coerce.date().optional().describe('End of date range (inclusive)'),\n })\n .describe('Date range filter for timestamps');\n\nexport type DateRange = z.infer<typeof dateRangeSchema>;\n\nexport const sortDirectionSchema = z.enum(['ASC', 'DESC']).describe(\"Sort direction: 'ASC' | 'DESC'\");\n\nexport const entityTypeField = z\n .nativeEnum(EntityType)\n .describe(`Entity type (e.g., 'agent' | 'processor' | 'tool' | 'workflow')`);\n\nexport const entityIdField = z.string().describe('ID of the entity (e.g., \"weatherAgent\", \"orderWorkflow\")');\n\nexport const entityNameField = z.string().describe('Name of the entity');\n\nexport const userIdField = z.string().describe('Human end-user who triggered execution');\n\nexport const organizationIdField = z.string().describe('Multi-tenant organization/account');\n\nexport const resourceIdField = z.string().describe('Broader resource context (Mastra memory compatibility)');\n\nexport const runIdField = z.string().describe('Unique execution run identifier');\n\nexport const sessionIdField = z.string().describe('Session identifier for grouping traces');\n\nexport const threadIdField = z.string().describe('Conversation thread identifier');\n\nexport const requestIdField = z.string().describe('HTTP request ID for log correlation');\n\nexport const environmentField = z.string().describe(`Environment (e.g., \"production\" | \"staging\" | \"development\")`);\n\nexport const sourceField = z.string().describe(`Source of execution (e.g., \"local\" | \"cloud\" | \"ci\")`);\n\nexport const serviceNameField = z.string().describe('Name of the service');\n","import type { CoreMessage, CoreSystemMessage } from '@internal/ai-sdk-v4';\nimport { z } from 'zod';\nimport type { MastraDBMessage } from '../agent';\nimport { SpanType } from '../observability';\nimport type { TracingContext } from '../observability';\nimport { dbTimestamps, paginationInfoSchema } from '../storage/domains/shared';\n\n// ============================================================================\n// Sampling Config\n// ============================================================================\n\nexport type ScoringSamplingConfig = { type: 'none' } | { type: 'ratio'; rate: number };\n\n// ============================================================================\n// Scoring Source & Entity Type\n// ============================================================================\n\nexport const scoringSourceSchema = z.enum(['LIVE', 'TEST']);\n\nexport type ScoringSource = z.infer<typeof scoringSourceSchema>;\n\nexport const scoringEntityTypeSchema = z.enum(['AGENT', 'WORKFLOW', ...Object.values(SpanType)] as [\n string,\n string,\n ...string[],\n]);\n\nexport type ScoringEntityType = z.infer<typeof scoringEntityTypeSchema>;\n\n// ============================================================================\n// Scoring Prompts\n// ============================================================================\n\nexport const scoringPromptsSchema = z.object({\n description: z.string(),\n prompt: z.string(),\n});\n\nexport type ScoringPrompts = z.infer<typeof scoringPromptsSchema>;\n\n// ============================================================================\n// Shared Record Schemas\n// ============================================================================\n\n/** Reusable schema for required record fields (e.g., scorer, entity) */\nconst recordSchema = z.record(z.string(), z.unknown());\n\n/** Reusable schema for optional record fields (e.g., metadata, additionalContext) */\nconst optionalRecordSchema = recordSchema.optional();\n\n// ============================================================================\n// Base Scoring Input (used for scorer functions)\n// ============================================================================\n\nexport const scoringInputSchema = z.object({\n runId: z.string().optional(),\n input: z.unknown().optional(),\n output: z.unknown(),\n additionalContext: optionalRecordSchema,\n requestContext: optionalRecordSchema,\n // Note: tracingContext is not serializable, so we don't include it in the schema\n // It's added at runtime when needed\n});\n\nexport type ScoringInput = z.infer<typeof scoringInputSchema> & {\n tracingContext?: TracingContext;\n};\n\n// ============================================================================\n// Scoring Hook Input\n// ============================================================================\n\nexport const scoringHookInputSchema = z.object({\n runId: z.string().optional(),\n scorer: recordSchema,\n input: z.unknown(),\n output: z.unknown(),\n metadata: optionalRecordSchema,\n additionalContext: optionalRecordSchema,\n source: scoringSourceSchema,\n entity: recordSchema,\n entityType: scoringEntityTypeSchema,\n requestContext: optionalRecordSchema,\n structuredOutput: z.boolean().optional(),\n traceId: z.string().optional(),\n spanId: z.string().optional(),\n resourceId: z.string().optional(),\n threadId: z.string().optional(),\n // Note: tracingContext is not serializable, so we don't include it in the schema\n});\n\nexport type ScoringHookInput = z.infer<typeof scoringHookInputSchema> & {\n tracingContext?: TracingContext;\n};\n\n// ============================================================================\n// Extract Step Result\n// ============================================================================\n\nexport const scoringExtractStepResultSchema = optionalRecordSchema;\n\nexport type ScoringExtractStepResult = z.infer<typeof scoringExtractStepResultSchema>;\n\n// ============================================================================\n// Analyze Step Result (Score Result)\n// ============================================================================\n\nexport const scoringValueSchema = z.number();\n\nexport const scoreResultSchema = z.object({\n result: optionalRecordSchema,\n score: scoringValueSchema,\n prompt: z.string().optional(),\n});\n\nexport type ScoringAnalyzeStepResult = z.infer<typeof scoreResultSchema>;\n\n// ============================================================================\n// Composite Input Types (for scorer step functions)\n// ============================================================================\n\nexport const scoringInputWithExtractStepResultSchema = scoringInputSchema.extend({\n runId: z.string(), // Required in this context\n extractStepResult: optionalRecordSchema,\n extractPrompt: z.string().optional(),\n});\n\nexport type ScoringInputWithExtractStepResult<TExtract = any> = Omit<\n z.infer<typeof scoringInputWithExtractStepResultSchema>,\n 'extractStepResult'\n> & {\n extractStepResult?: TExtract;\n tracingContext?: TracingContext;\n};\n\nexport const scoringInputWithExtractStepResultAndAnalyzeStepResultSchema =\n scoringInputWithExtractStepResultSchema.extend({\n score: z.number(),\n analyzeStepResult: optionalRecordSchema,\n analyzePrompt: z.string().optional(),\n });\n\nexport type ScoringInputWithExtractStepResultAndAnalyzeStepResult<TExtract = any, TScore = any> = Omit<\n z.infer<typeof scoringInputWithExtractStepResultAndAnalyzeStepResultSchema>,\n 'extractStepResult' | 'analyzeStepResult'\n> & {\n extractStepResult?: TExtract;\n analyzeStepResult?: TScore;\n tracingContext?: TracingContext;\n};\n\nexport const scoringInputWithExtractStepResultAndScoreAndReasonSchema =\n scoringInputWithExtractStepResultAndAnalyzeStepResultSchema.extend({\n reason: z.string().optional(),\n reasonPrompt: z.string().optional(),\n });\n\nexport type ScoringInputWithExtractStepResultAndScoreAndReason = z.infer<\n typeof scoringInputWithExtractStepResultAndScoreAndReasonSchema\n> & {\n tracingContext?: TracingContext;\n};\n\n// ============================================================================\n// Score Row Data (stored in DB)\n// ============================================================================\n\nexport const scoreRowDataSchema = z.object({\n id: z.string(),\n scorerId: z.string(),\n entityId: z.string(),\n\n // From ScoringInputWithExtractStepResultAndScoreAndReason\n runId: z.string(),\n input: z.unknown().optional(),\n output: z.unknown(),\n additionalContext: optionalRecordSchema,\n requestContext: optionalRecordSchema,\n extractStepResult: optionalRecordSchema,\n extractPrompt: z.string().optional(),\n score: z.number(),\n analyzeStepResult: optionalRecordSchema,\n analyzePrompt: z.string().optional(),\n reason: z.string().optional(),\n reasonPrompt: z.string().optional(),\n\n // From ScoringHookInput\n scorer: recordSchema,\n metadata: optionalRecordSchema,\n source: scoringSourceSchema,\n entity: recordSchema,\n entityType: scoringEntityTypeSchema.optional(),\n structuredOutput: z.boolean().optional(),\n traceId: z.string().optional(),\n spanId: z.string().optional(),\n resourceId: z.string().optional(),\n threadId: z.string().optional(),\n\n // Additional ScoreRowData fields\n preprocessStepResult: optionalRecordSchema,\n preprocessPrompt: z.string().optional(),\n generateScorePrompt: z.string().optional(),\n generateReasonPrompt: z.string().optional(),\n\n // Timestamps\n ...dbTimestamps,\n});\n\nexport type ScoreRowData = z.infer<typeof scoreRowDataSchema>;\n\n// ============================================================================\n// Save Score Payload (for creating new scores)\n// ============================================================================\n\nexport const saveScorePayloadSchema = scoreRowDataSchema.omit({\n id: true,\n createdAt: true,\n updatedAt: true,\n});\n\nexport type SaveScorePayload = z.infer<typeof saveScorePayloadSchema>;\n\n// ============================================================================\n// List Scores Response\n// ============================================================================\n\nexport const listScoresResponseSchema = z.object({\n pagination: paginationInfoSchema,\n scores: z.array(scoreRowDataSchema),\n});\n\nexport type ListScoresResponse = z.infer<typeof listScoresResponseSchema>;\n\nexport type ExtractionStepFn = (input: ScoringInput) => Promise<Record<string, any>>;\n\nexport type AnalyzeStepFn = (input: ScoringInputWithExtractStepResult) => Promise<ScoringAnalyzeStepResult>;\n\nexport type ReasonStepFn = (\n input: ScoringInputWithExtractStepResultAndAnalyzeStepResult,\n) => Promise<{ reason: string; reasonPrompt?: string } | null>;\n\nexport type ScorerOptions = {\n name: string;\n description: string;\n extract?: ExtractionStepFn;\n analyze: AnalyzeStepFn;\n reason?: ReasonStepFn;\n metadata?: Record<string, any>;\n isLLMScorer?: boolean;\n};\n\nexport type ScorerRunInputForAgent = {\n inputMessages: MastraDBMessage[];\n rememberedMessages: MastraDBMessage[];\n systemMessages: CoreMessage[];\n taggedSystemMessages: Record<string, CoreSystemMessage[]>;\n};\n\nexport type ScorerRunOutputForAgent = MastraDBMessage[];\n\n/** @deprecated Use SaveScorePayload instead */\nexport type ValidatedSaveScorePayload = SaveScorePayload;\n","import { z } from 'zod';\nimport { scoreRowDataSchema } from '../../../evals/types';\nimport { SpanType } from '../../../observability/types';\nimport {\n dateRangeSchema,\n dbTimestamps,\n entityIdField,\n entityNameField,\n entityTypeField,\n environmentField,\n organizationIdField,\n paginationArgsSchema,\n paginationInfoSchema,\n requestIdField,\n resourceIdField,\n runIdField,\n serviceNameField,\n sessionIdField,\n sortDirectionSchema,\n sourceField,\n threadIdField,\n userIdField,\n} from '../shared';\n\n/** Strategy for how tracing data is persisted to storage */\nexport type TracingStorageStrategy = 'realtime' | 'batch-with-updates' | 'insert-only';\n\n// ============================================================================\n// Helper utilities for creating omit key objects from schema shapes\n// ============================================================================\n\n/**\n * Creates an omit key object from a Zod schema shape.\n * This allows dynamically deriving omit keys from existing schema definitions.\n */\nconst createOmitKeys = <T extends z.ZodRawShape>(shape: T): { [K in keyof T]: true } =>\n Object.fromEntries(Object.keys(shape).map(k => [k, true])) as { [K in keyof T]: true };\n\n// ============================================================================\n// Primitive Field Definitions\n// ============================================================================\n\n/** Zod schema for trace ID field */\nexport const traceIdField = z.string().describe('Unique trace identifier');\n\n/** Zod schema for span ID field */\nexport const spanIdField = z.string().describe('Unique span identifier within a trace');\n\nconst spanNameField = z.string().describe('Human-readable span name');\nconst parentSpanIdField = z.string().describe('Parent span reference (null = root span)');\nconst spanTypeField = z.nativeEnum(SpanType).describe('Span type (e.g., WORKFLOW_RUN, AGENT_RUN, TOOL_CALL, etc.)');\nconst attributesField = z.record(z.unknown()).describe('Span-type specific attributes (e.g., model, tokens, tools)');\nconst metadataField = z.record(z.unknown()).describe('User-defined metadata for custom filtering');\nconst tagsField = z.array(z.string()).describe('Labels for filtering traces (only on the root span)');\nconst scopeField = z\n .record(z.unknown())\n .describe('Arbitrary package/app version info (e.g., {\"core\": \"1.0.0\", \"memory\": \"1.0.0\", \"gitSha\": \"abcd1234\"})');\nconst linksField = z.array(z.unknown()).describe('References to related spans in other traces');\nconst inputField = z.unknown().describe('Input data passed to the span');\nconst outputField = z.unknown().describe('Output data returned from the span');\nconst errorField = z.unknown().describe('Error info - presence indicates failure (status derived from this)');\nconst isEventField = z.boolean().describe('Whether this is an event (point-in-time) vs a span (duration)');\nconst startedAtField = z.date().describe('When the span started');\nconst endedAtField = z.date().describe('When the span ended (null = running, status derived from this)');\n\n/** Status of a trace derived from the root span's state */\nexport enum TraceStatus {\n SUCCESS = 'success',\n ERROR = 'error',\n RUNNING = 'running',\n}\n\nconst traceStatusField = z.nativeEnum(TraceStatus).describe('Current status of the trace');\n\nconst hasChildErrorField = z\n .preprocess(v => {\n // Handle string \"true\"/\"false\" from query params correctly\n // z.coerce.boolean() would convert \"false\" to true (Boolean(\"false\") === true)\n if (v === 'true') return true;\n if (v === 'false') return false;\n return v;\n }, z.boolean())\n .describe('True if any span in the trace encountered an error');\n\n// ============================================================================\n// Shared Fields (used by both spanRecordSchema and tracesFilterSchema)\n// ============================================================================\n\n/**\n * All optional fields shared between span records and trace filters.\n * Note: When filtering traces, these fields are matched against the root span.\n */\nconst sharedFields = {\n // Entity identification - first-class fields for filtering (e.g., agent, workflow, tool)\n entityType: entityTypeField.nullish(),\n entityId: entityIdField.nullish(),\n entityName: entityNameField.nullish(),\n\n // Identity & tenancy - for multi-tenant applications\n userId: userIdField.nullish(),\n organizationId: organizationIdField.nullish(),\n resourceId: resourceIdField.nullish(),\n\n // Correlation IDs - for linking related operations\n runId: runIdField.nullish(),\n sessionId: sessionIdField.nullish(),\n threadId: threadIdField.nullish(),\n requestId: requestIdField.nullish(),\n\n // Deployment context - these fields only exist on the root span\n environment: environmentField.nullish(),\n source: sourceField.nullish(),\n serviceName: serviceNameField.nullish(),\n scope: scopeField.nullish(),\n\n // Filterable data - user-defined metadata and tags (tags only on root span)\n metadata: metadataField.nullish(),\n tags: tagsField.nullish(),\n} as const;\n\n// ============================================================================\n// Span Record Schema (for storage)\n// ============================================================================\n\n/** Shape containing trace and span identifier fields */\nexport const spanIds = {\n traceId: traceIdField,\n spanId: spanIdField,\n} as const satisfies z.ZodRawShape;\n\n/** Schema for span identifiers (traceId and spanId) */\nexport const spanIdsSchema = z.object({\n ...spanIds,\n});\n\n/** Span identifier pair (traceId and spanId) */\nexport type SpanIds = z.infer<typeof spanIdsSchema>;\n\n// Omit key objects derived from schema shapes for use with .omit()\nconst omitDbTimestamps = createOmitKeys(dbTimestamps);\nconst omitSpanIds = createOmitKeys(spanIds);\n\n/** Schema for a complete span record as stored in the database */\nexport const spanRecordSchema = z\n .object({\n // Required identifiers\n ...spanIds,\n name: spanNameField,\n spanType: spanTypeField,\n isEvent: isEventField,\n startedAt: startedAtField,\n\n // Shared fields\n parentSpanId: parentSpanIdField.nullish(),\n ...sharedFields,\n\n // Additional span-specific nullish fields\n attributes: attributesField.nullish(),\n links: linksField.nullish(),\n input: inputField.nullish(),\n output: outputField.nullish(),\n error: errorField.nullish(),\n endedAt: endedAtField.nullish(),\n\n // Database timestamps\n ...dbTimestamps,\n })\n .describe('Span record data');\n\n/** Complete span record as stored in the database */\nexport type SpanRecord = z.infer<typeof spanRecordSchema>;\n\n// ============================================================================\n// Storage Operation Schemas\n// ============================================================================\n\n/**\n * Schema for creating a span (without db timestamps)\n */\nexport const createSpanRecordSchema = spanRecordSchema.omit(omitDbTimestamps);\n\n/** Span record for creation (excludes db timestamps) */\nexport type CreateSpanRecord = z.infer<typeof createSpanRecordSchema>;\n\n/**\n * Schema for createSpan operation arguments\n */\nexport const createSpanArgsSchema = z\n .object({\n span: createSpanRecordSchema,\n })\n .describe('Arguments for creating a single span');\n\n/** Arguments for creating a single span */\nexport type CreateSpanArgs = z.infer<typeof createSpanArgsSchema>;\n\n/**\n * Schema for batchCreateSpans operation arguments\n */\nexport const batchCreateSpansArgsSchema = z\n .object({\n records: z.array(createSpanRecordSchema),\n })\n .describe('Arguments for batch creating spans');\n\n/** Arguments for batch creating multiple spans */\nexport type BatchCreateSpansArgs = z.infer<typeof batchCreateSpansArgsSchema>;\n\n/**\n * Schema for getSpan operation arguments\n */\nexport const getSpanArgsSchema = z\n .object({\n traceId: traceIdField.min(1),\n spanId: spanIdField.min(1),\n })\n .describe('Arguments for getting a single span');\n\n/** Arguments for retrieving a single span */\nexport type GetSpanArgs = z.infer<typeof getSpanArgsSchema>;\n\n/**\n * Response schema for getSpan operation\n */\nexport const getSpanResponseSchema = z.object({\n span: spanRecordSchema,\n});\n\n/** Response containing a single span */\nexport type GetSpanResponse = z.infer<typeof getSpanResponseSchema>;\n\n/**\n * Schema for getRootSpan operation arguments\n */\nexport const getRootSpanArgsSchema = z\n .object({\n traceId: traceIdField.min(1),\n })\n .describe('Arguments for getting a root span');\n\n/** Arguments for retrieving a root span */\nexport type GetRootSpanArgs = z.infer<typeof getRootSpanArgsSchema>;\n\n/**\n * Response schema for getRootSpan operation\n */\nexport const getRootSpanResponseSchema = z.object({\n span: spanRecordSchema,\n});\n\n/** Response containing a single root span */\nexport type GetRootSpanResponse = z.infer<typeof getRootSpanResponseSchema>;\n\n/**\n * Schema for getTrace operation arguments\n */\nexport const getTraceArgsSchema = z\n .object({\n traceId: traceIdField.min(1),\n })\n .describe('Arguments for getting a single trace');\n\n/** Arguments for retrieving a single trace */\nexport type GetTraceArgs = z.infer<typeof getTraceArgsSchema>;\n\n/**\n * Response schema for getTrace operation\n */\nexport const getTraceResponseSchema = z.object({\n traceId: traceIdField,\n spans: z.array(spanRecordSchema),\n});\n\n/** Response containing a trace with all its spans */\nexport type GetTraceResponse = z.infer<typeof getTraceResponseSchema>;\n\nexport type TraceRecord = GetTraceResponse;\n\n/** Schema for filtering traces in list queries */\nexport const tracesFilterSchema = z\n .object({\n // Date range filters\n startedAt: dateRangeSchema.optional().describe('Filter by span start time range'),\n endedAt: dateRangeSchema.optional().describe('Filter by span end time range'),\n\n // Span type filter\n spanType: spanTypeField.optional(),\n\n // Shared fields\n ...sharedFields,\n\n // Filter-specific derived status fields\n status: traceStatusField.optional(),\n hasChildError: hasChildErrorField.optional(),\n })\n .describe('Filters for querying traces');\n\n/**\n * Fields available for ordering trace results\n */\nexport const tracesOrderByFieldSchema = z\n .enum(['startedAt', 'endedAt'])\n .describe(\"Field to order by: 'startedAt' | 'endedAt'\");\n\n/**\n * Order by configuration for trace queries\n * Follows the existing StorageOrderBy pattern\n * Defaults to startedAt desc (newest first)\n */\nexport const tracesOrderBySchema = z\n .object({\n field: tracesOrderByFieldSchema.default('startedAt').describe('Field to order by'),\n direction: sortDirectionSchema.default('DESC').describe('Sort direction'),\n })\n .describe('Order by configuration');\n\n/**\n * Arguments for listing traces\n */\nexport const listTracesArgsSchema = z\n .object({\n filters: tracesFilterSchema.optional().describe('Optional filters to apply'),\n pagination: paginationArgsSchema.default({}).describe('Pagination settings'),\n orderBy: tracesOrderBySchema.default({}).describe('Ordering configuration (defaults to startedAt desc)'),\n })\n .describe('Arguments for listing traces');\n\n/** Arguments for listing traces with optional filters, pagination, and ordering */\nexport type ListTracesArgs = z.input<typeof listTracesArgsSchema>;\n\n/** Schema for listTraces operation response */\nexport const listTracesResponseSchema = z.object({\n pagination: paginationInfoSchema,\n spans: z.array(spanRecordSchema),\n});\n\n/** Response containing paginated root spans for trace listing */\nexport type ListTracesResponse = z.infer<typeof listTracesResponseSchema>;\n\n/**\n * Schema for updating a span (without db timestamps and span IDs)\n */\nexport const updateSpanRecordSchema = createSpanRecordSchema.omit(omitSpanIds);\n\n/** Partial span data for updates (excludes db timestamps and span IDs) */\nexport type UpdateSpanRecord = z.infer<typeof updateSpanRecordSchema>;\n\n/**\n * Schema for updateSpan operation arguments\n */\nexport const updateSpanArgsSchema = z\n .object({\n spanId: spanIdField,\n traceId: traceIdField,\n updates: updateSpanRecordSchema.partial(),\n })\n .describe('Arguments for updating a single span');\n\n/** Arguments for updating a single span */\nexport type UpdateSpanArgs = z.infer<typeof updateSpanArgsSchema>;\n\n/**\n * Schema for batchUpdateSpans operation arguments\n */\nexport const batchUpdateSpansArgsSchema = z\n .object({\n records: z.array(\n z.object({\n traceId: traceIdField,\n spanId: spanIdField,\n updates: updateSpanRecordSchema.partial(),\n }),\n ),\n })\n .describe('Arguments for batch updating spans');\n\n/** Arguments for batch updating multiple spans */\nexport type BatchUpdateSpansArgs = z.infer<typeof batchUpdateSpansArgsSchema>;\n\n/**\n * Schema for batchDeleteTraces operation arguments\n */\nexport const batchDeleteTracesArgsSchema = z\n .object({\n traceIds: z.array(traceIdField),\n })\n .describe('Arguments for batch deleting traces');\n\n/** Arguments for batch deleting multiple traces */\nexport type BatchDeleteTracesArgs = z.infer<typeof batchDeleteTracesArgsSchema>;\n\n// ============================================================================\n// Scoring related schemas\n// ============================================================================\n\n/** Schema for listScoresBySpan operation response */\nexport const listScoresBySpanResponseSchema = z.object({\n pagination: paginationInfoSchema,\n scores: z.array(scoreRowDataSchema),\n});\n\n/** Schema for scoreTraces operation request */\nexport const scoreTracesRequestSchema = z.object({\n scorerName: z.string().min(1),\n targets: z\n .array(\n z.object({\n traceId: traceIdField,\n spanId: spanIdField.optional(),\n }),\n )\n .min(1),\n});\n\n/** Request to score traces using a specific scorer */\nexport type ScoreTracesRequest = z.infer<typeof scoreTracesRequestSchema>;\n\n/** Schema for scoreTraces operation response */\nexport const scoreTracesResponseSchema = z.object({\n status: z.string(),\n message: z.string(),\n traceCount: z.number(),\n});\n\n/** Response from scoring traces */\nexport type ScoreTracesResponse = z.infer<typeof scoreTracesResponseSchema>;\n","import type { z } from 'zod';\nimport type { SerializedError } from '../error';\nimport type { MastraDBMessage, StorageThreadType } from '../memory/types';\nimport { getZodTypeName } from '../utils/zod-utils';\nimport type { StepResult, WorkflowRunState, WorkflowRunStatus } from '../workflows';\n\nexport type StoragePagination = {\n page: number;\n perPage: number | false;\n};\n\nexport type StorageColumnType = 'text' | 'timestamp' | 'uuid' | 'jsonb' | 'integer' | 'float' | 'bigint' | 'boolean';\n\n/**\n * Describes capabilities supported by a storage adapter.\n * Providers should override the base class getter to indicate their supported features.\n */\nexport type StorageSupports = {\n /** Whether the adapter supports filtering by resource scope in queries */\n selectByIncludeResourceScope: boolean;\n /** Whether the adapter supports per-resource working memory */\n resourceWorkingMemory: boolean;\n /** Whether the adapter supports checking if a column exists */\n hasColumn: boolean;\n /** Whether the adapter supports creating tables dynamically */\n createTable: boolean;\n /** Whether the adapter supports deleting individual messages */\n deleteMessages: boolean;\n /** Whether the adapter supports observability (tracing/spans) */\n observability: boolean;\n /** Whether the adapter supports index management operations */\n indexManagement: boolean;\n /** Whether the adapter supports listing scores by span */\n listScoresBySpan: boolean;\n /** Whether the adapter supports agent persistence */\n agents: boolean;\n};\n\nexport interface StorageColumn {\n type: StorageColumnType;\n primaryKey?: boolean;\n nullable?: boolean;\n references?: {\n table: string;\n column: string;\n };\n}\nexport interface WorkflowRuns {\n runs: WorkflowRun[];\n total: number;\n}\n\nexport interface StorageWorkflowRun {\n workflow_name: string;\n run_id: string;\n resourceId?: string;\n snapshot: WorkflowRunState | string;\n createdAt: Date;\n updatedAt: Date;\n}\nexport interface WorkflowRun {\n workflowName: string;\n runId: string;\n snapshot: WorkflowRunState | string;\n createdAt: Date;\n updatedAt: Date;\n resourceId?: string;\n}\n\nexport type PaginationInfo = {\n total: number;\n page: number;\n /**\n * Number of items per page, or `false` to fetch all records without pagination limit.\n * When `false`, all matching records are returned in a single response.\n */\n perPage: number | false;\n hasMore: boolean;\n};\n\nexport type MastraMessageFormat = 'v1' | 'v2';\n\nexport type StorageListMessagesInput = {\n threadId: string | string[];\n resourceId?: string;\n include?: {\n id: string;\n threadId?: string;\n withPreviousMessages?: number;\n withNextMessages?: number;\n }[];\n /**\n * Number of items per page, or `false` to fetch all records without pagination limit.\n * Defaults to 40 if not specified.\n */\n perPage?: number | false;\n /**\n * Zero-indexed page number for pagination.\n * Defaults to 0 if not specified.\n */\n page?: number;\n filter?: {\n dateRange?: {\n start?: Date;\n end?: Date;\n };\n };\n orderBy?: StorageOrderBy<'createdAt'>;\n};\n\nexport type StorageListMessagesOutput = PaginationInfo & {\n messages: MastraDBMessage[];\n};\n\nexport type StorageListWorkflowRunsInput = {\n workflowName?: string;\n fromDate?: Date;\n toDate?: Date;\n /**\n * Number of items per page, or `false` to fetch all records without pagination limit.\n * When undefined, returns all workflow runs without pagination.\n * When both perPage and page are provided, pagination is applied.\n */\n perPage?: number | false;\n /**\n * Zero-indexed page number for pagination.\n * When both perPage and page are provided, pagination is applied.\n * When either is undefined, all results are returned.\n */\n page?: number;\n resourceId?: string;\n status?: WorkflowRunStatus;\n};\n\nexport type StorageListThreadsByResourceIdInput = {\n resourceId: string;\n /**\n * Number of items per page, or `false` to fetch all records without pagination limit.\n * Defaults to 100 if not specified.\n */\n perPage?: number | false;\n /**\n * Zero-indexed page number for pagination.\n * Defaults to 0 if not specified.\n */\n page?: number;\n orderBy?: StorageOrderBy;\n};\n\nexport type StorageListThreadsByResourceIdOutput = PaginationInfo & {\n threads: StorageThreadType[];\n};\n\nexport type StorageResourceType = {\n id: string;\n workingMemory?: string;\n metadata?: Record<string, unknown>;\n createdAt: Date;\n updatedAt: Date;\n};\n\nexport type StorageMessageType = {\n id: string;\n thread_id: string;\n content: string;\n role: string;\n type: string;\n createdAt: Date;\n resourceId: string | null;\n};\n\nexport interface StorageOrderBy<TField extends ThreadOrderBy = ThreadOrderBy> {\n field?: TField;\n direction?: ThreadSortDirection;\n}\n\nexport interface ThreadSortOptions {\n orderBy?: ThreadOrderBy;\n sortDirection?: ThreadSortDirection;\n}\n\nexport type ThreadOrderBy = 'createdAt' | 'updatedAt';\n\nexport type ThreadSortDirection = 'ASC' | 'DESC';\n\n// Agent Storage Types\n\n/**\n * Scorer reference with optional sampling configuration\n */\nexport interface StorageScorerConfig {\n /** Sampling configuration for this scorer */\n sampling?: {\n type: 'ratio' | 'count';\n rate?: number;\n count?: number;\n };\n}\n\n/**\n * Stored agent configuration type.\n * Primitives (tools, workflows, agents, memory, scorers) are stored as references\n * that get resolved from Mastra's registries at runtime.\n */\nexport interface StorageAgentType {\n id: string;\n name: string;\n description?: string;\n instructions: string;\n /** Model configuration (provider, name, etc.) */\n model: Record<string, unknown>;\n /** Array of tool keys to resolve from Mastra's tool registry */\n tools?: string[];\n /** Default options for generate/stream calls */\n defaultOptions?: Record<string, unknown>;\n /** Array of workflow keys to resolve from Mastra's workflow registry */\n workflows?: string[];\n /** Array of agent keys to resolve from Mastra's agent registry */\n agents?: string[];\n /** Input processor configurations */\n inputProcessors?: Record<string, unknown>[];\n /** Output processor configurations */\n outputProcessors?: Record<string, unknown>[];\n /** Memory key to resolve from Mastra's memory registry */\n memory?: string;\n /** Scorer keys with optional sampling config, to resolve from Mastra's scorer registry */\n scorers?: Record<string, StorageScorerConfig>;\n /** Additional metadata for the agent */\n metadata?: Record<string, unknown>;\n createdAt: Date;\n updatedAt: Date;\n}\n\nexport type StorageCreateAgentInput = Omit<StorageAgentType, 'createdAt' | 'updatedAt'>;\n\nexport type StorageUpdateAgentInput = {\n id: string;\n name?: string;\n description?: string;\n instructions?: string;\n model?: Record<string, unknown>;\n /** Array of tool keys to resolve from Mastra's tool registry */\n tools?: string[];\n defaultOptions?: Record<string, unknown>;\n /** Array of workflow keys to resolve from Mastra's workflow registry */\n workflows?: string[];\n /** Array of agent keys to resolve from Mastra's agent registry */\n agents?: string[];\n inputProcessors?: Record<string, unknown>[];\n outputProcessors?: Record<string, unknown>[];\n /** Memory key to resolve from Mastra's memory registry */\n memory?: string;\n /** Scorer keys with optional sampling config */\n scorers?: Record<string, StorageScorerConfig>;\n metadata?: Record<string, unknown>;\n};\n\nexport type StorageListAgentsInput = {\n /**\n * Number of items per page, or `false` to fetch all records without pagination limit.\n * Defaults to 100 if not specified.\n */\n perPage?: number | false;\n /**\n * Zero-indexed page number for pagination.\n * Defaults to 0 if not specified.\n */\n page?: number;\n orderBy?: StorageOrderBy;\n};\n\nexport type StorageListAgentsOutput = PaginationInfo & {\n agents: StorageAgentType[];\n};\n\n// Basic Index Management Types\nexport interface CreateIndexOptions {\n name: string;\n table: string;\n columns: string[];\n unique?: boolean;\n concurrent?: boolean;\n /**\n * SQL WHERE clause for creating partial indexes.\n * @internal Reserved for internal use only. Callers must pre-validate this value.\n * DDL statements cannot use parameterized queries for WHERE clauses, so this value\n * is concatenated directly into the SQL. Any user-facing usage must validate input.\n */\n where?: string;\n method?: 'btree' | 'hash' | 'gin' | 'gist' | 'spgist' | 'brin';\n opclass?: string; // Operator class for GIN/GIST indexes\n storage?: Record<string, any>; // Storage parameters\n tablespace?: string; // Tablespace name\n}\n\nexport interface IndexInfo {\n name: string;\n table: string;\n columns: string[];\n unique: boolean;\n size: string;\n definition: string;\n}\n\nexport interface StorageIndexStats extends IndexInfo {\n scans: number; // Number of index scans\n tuples_read: number; // Number of tuples read\n tuples_fetched: number; // Number of tuples fetched\n last_used?: Date; // Last time index was used\n method?: string; // Index method (btree, hash, etc)\n}\n\n// Workflow Storage Types\nexport interface UpdateWorkflowStateOptions {\n status: WorkflowRunStatus;\n result?: StepResult<any, any, any, any>;\n error?: SerializedError;\n suspendedPaths?: Record<string, number[]>;\n waitingPaths?: Record<string, number[]>;\n}\n\n/**\n * Get the inner type from a wrapper schema (nullable, optional, default, effects, branded).\n * Compatible with both Zod 3 and Zod 4.\n */\nfunction getInnerType(schema: z.ZodTypeAny, typeName: string): z.ZodTypeAny | undefined {\n const schemaAny = schema as any;\n\n // For nullable, optional, default - the inner type is at _def.innerType\n if (typeName === 'ZodNullable' || typeName === 'ZodOptional' || typeName === 'ZodDefault') {\n return schemaAny._zod?.def?.innerType ?? schemaAny._def?.innerType;\n }\n\n // For effects - the inner type is at _def.schema\n if (typeName === 'ZodEffects') {\n return schemaAny._zod?.def?.schema ?? schemaAny._def?.schema;\n }\n\n // For branded - the inner type is at _def.type\n if (typeName === 'ZodBranded') {\n return schemaAny._zod?.def?.type ?? schemaAny._def?.type;\n }\n\n return undefined;\n}\n\nfunction unwrapSchema(schema: z.ZodTypeAny): { base: z.ZodTypeAny; nullable: boolean } {\n let current = schema;\n let nullable = false;\n\n while (true) {\n const typeName = getZodTypeName(current);\n\n if (typeName === 'ZodNullable') {\n nullable = true;\n const inner = getInnerType(current, typeName);\n if (inner) {\n current = inner;\n continue;\n }\n }\n\n if (typeName === 'ZodOptional') {\n // For DB purposes, we usually treat \"optional\" as \"nullable\"\n nullable = true;\n const inner = getInnerType(current, typeName);\n if (inner) {\n current = inner;\n continue;\n }\n }\n\n if (typeName === 'ZodDefault') {\n const inner = getInnerType(current, typeName);\n if (inner) {\n current = inner;\n continue;\n }\n }\n\n if (typeName === 'ZodEffects') {\n const inner = getInnerType(current, typeName);\n if (inner) {\n current = inner;\n continue;\n }\n }\n\n if (typeName === 'ZodBranded') {\n const inner = getInnerType(current, typeName);\n if (inner) {\n current = inner;\n continue;\n }\n }\n\n // If you ever use ZodCatch/ZodPipeline, you can unwrap them here too.\n break;\n }\n\n return { base: current, nullable };\n}\n\n/**\n * Extract checks array from Zod schema, compatible with both Zod 3 and Zod 4.\n * Zod 3 uses _def.checks, Zod 4 uses _zod.def.checks.\n */\nfunction getZodChecks(schema: z.ZodTypeAny): Array<{ kind: string }> {\n const schemaAny = schema as any;\n // Zod 4 structure\n if (schemaAny._zod?.def?.checks) {\n return schemaAny._zod.def.checks;\n }\n // Zod 3 structure\n if (schemaAny._def?.checks) {\n return schemaAny._def.checks;\n }\n return [];\n}\n\nfunction zodToStorageType(schema: z.ZodTypeAny): StorageColumnType {\n const typeName = getZodTypeName(schema);\n\n if (typeName === 'ZodString') {\n // Check for UUID validation\n const checks = getZodChecks(schema);\n if (checks.some(c => c.kind === 'uuid')) {\n return 'uuid';\n }\n return 'text';\n }\n if (typeName === 'ZodNativeEnum' || typeName === 'ZodEnum') {\n return 'text';\n }\n if (typeName === 'ZodNumber') {\n // Check for integer validation\n const checks = getZodChecks(schema);\n return checks.some(c => c.kind === 'int') ? 'integer' : 'float';\n }\n if (typeName === 'ZodBigInt') {\n return 'bigint';\n }\n if (typeName === 'ZodDate') {\n return 'timestamp';\n }\n if (typeName === 'ZodBoolean') {\n return 'boolean';\n }\n // fall back for objects/records/unknown\n return 'jsonb';\n}\n\n/**\n * Converts a zod schema into a database schema\n * @param zObject A zod schema object\n * @returns database schema record with StorageColumns\n */\nexport function buildStorageSchema<Shape extends z.ZodRawShape>(\n zObject: z.ZodObject<Shape>,\n): Record<keyof Shape & string, StorageColumn> {\n const shape = zObject.shape;\n const result: Record<string, StorageColumn> = {};\n\n for (const [key, field] of Object.entries(shape)) {\n const { base, nullable } = unwrapSchema(field as z.ZodTypeAny);\n result[key] = {\n type: zodToStorageType(base),\n nullable,\n };\n }\n\n return result as Record<keyof Shape & string, StorageColumn>;\n}\n","import { spanRecordSchema } from './domains/observability/types';\nimport { buildStorageSchema } from './types';\nimport type { StorageColumn } from './types';\n\nexport const TABLE_WORKFLOW_SNAPSHOT = 'mastra_workflow_snapshot';\nexport const TABLE_MESSAGES = 'mastra_messages';\nexport const TABLE_THREADS = 'mastra_threads';\nexport const TABLE_TRACES = 'mastra_traces';\nexport const TABLE_RESOURCES = 'mastra_resources';\nexport const TABLE_SCORERS = 'mastra_scorers';\nexport const TABLE_SPANS = 'mastra_ai_spans';\nexport const TABLE_AGENTS = 'mastra_agents';\n\nexport type TABLE_NAMES =\n | typeof TABLE_WORKFLOW_SNAPSHOT\n | typeof TABLE_MESSAGES\n | typeof TABLE_THREADS\n | typeof TABLE_TRACES\n | typeof TABLE_RESOURCES\n | typeof TABLE_SCORERS\n | typeof TABLE_SPANS\n | typeof TABLE_AGENTS;\n\nexport const SCORERS_SCHEMA: Record<string, StorageColumn> = {\n id: { type: 'text', nullable: false, primaryKey: true },\n scorerId: { type: 'text' },\n traceId: { type: 'text', nullable: true },\n spanId: { type: 'text', nullable: true },\n runId: { type: 'text' },\n scorer: { type: 'jsonb' },\n preprocessStepResult: { type: 'jsonb', nullable: true },\n extractStepResult: { type: 'jsonb', nullable: true },\n analyzeStepResult: { type: 'jsonb', nullable: true },\n score: { type: 'float' },\n reason: { type: 'text', nullable: true },\n metadata: { type: 'jsonb', nullable: true },\n preprocessPrompt: { type: 'text', nullable: true },\n extractPrompt: { type: 'text', nullable: true },\n generateScorePrompt: { type: 'text', nullable: true },\n generateReasonPrompt: { type: 'text', nullable: true },\n analyzePrompt: { type: 'text', nullable: true },\n\n // Deprecated\n reasonPrompt: { type: 'text', nullable: true },\n input: { type: 'jsonb' },\n output: { type: 'jsonb' }, // MESSAGE OUTPUT\n additionalContext: { type: 'jsonb', nullable: true }, // DATA FROM THE CONTEXT PARAM ON AN AGENT\n requestContext: { type: 'jsonb', nullable: true }, // THE EVALUATE Request Context FOR THE RUN\n /**\n * Things you can evaluate\n */\n entityType: { type: 'text', nullable: true }, // WORKFLOW, AGENT, TOOL, STEP, NETWORK\n entity: { type: 'jsonb', nullable: true }, // MINIMAL JSON DATA ABOUT WORKFLOW, AGENT, TOOL, STEP, NETWORK\n entityId: { type: 'text', nullable: true },\n source: { type: 'text' },\n resourceId: { type: 'text', nullable: true },\n threadId: { type: 'text', nullable: true },\n createdAt: { type: 'timestamp' },\n updatedAt: { type: 'timestamp' },\n};\n\nexport const SPAN_SCHEMA = buildStorageSchema(spanRecordSchema);\n\n/**\n * @deprecated Use SPAN_SCHEMA instead. This legacy schema is retained only for migration purposes.\n * @internal\n */\nexport const OLD_SPAN_SCHEMA: Record<string, StorageColumn> = {\n // Composite primary key of traceId and spanId\n traceId: { type: 'text', nullable: false },\n spanId: { type: 'text', nullable: false },\n parentSpanId: { type: 'text', nullable: true },\n name: { type: 'text', nullable: false },\n scope: { type: 'jsonb', nullable: true }, // Mastra package info {\"core-version\": \"0.1.0\"}\n spanType: { type: 'text', nullable: false }, // WORKFLOW_RUN, WORKFLOW_STEP, AGENT_RUN, AGENT_STEP, TOOL_RUN, TOOL_STEP, etc.\n attributes: { type: 'jsonb', nullable: true },\n metadata: { type: 'jsonb', nullable: true },\n links: { type: 'jsonb', nullable: true },\n input: { type: 'jsonb', nullable: true },\n output: { type: 'jsonb', nullable: true },\n error: { type: 'jsonb', nullable: true },\n startedAt: { type: 'timestamp', nullable: false }, // When the span started\n endedAt: { type: 'timestamp', nullable: true }, // When the span ended\n createdAt: { type: 'timestamp', nullable: false }, // The time the database record was created\n updatedAt: { type: 'timestamp', nullable: true }, // The time the database record was last updated\n isEvent: { type: 'boolean', nullable: false },\n};\n\nexport const AGENTS_SCHEMA: Record<string, StorageColumn> = {\n id: { type: 'text', nullable: false, primaryKey: true },\n name: { type: 'text', nullable: false },\n description: { type: 'text', nullable: true },\n instructions: { type: 'text', nullable: false }, // System instructions for the agent\n model: { type: 'jsonb', nullable: false }, // Model configuration (provider, name, etc.)\n tools: { type: 'jsonb', nullable: true }, // Serialized tool references/configurations\n defaultOptions: { type: 'jsonb', nullable: true }, // Default options for generate/stream calls\n workflows: { type: 'jsonb', nullable: true }, // Workflow references (IDs or configurations)\n agents: { type: 'jsonb', nullable: true }, // Sub-agent references (IDs or configurations)\n inputProcessors: { type: 'jsonb', nullable: true }, // Input processor configurations\n outputProcessors: { type: 'jsonb', nullable: true }, // Output processor configurations\n memory: { type: 'jsonb', nullable: true }, // Memory configuration\n scorers: { type: 'jsonb', nullable: true }, // Scorer configurations\n metadata: { type: 'jsonb', nullable: true }, // Additional metadata for the agent\n createdAt: { type: 'timestamp', nullable: false },\n updatedAt: { type: 'timestamp', nullable: false },\n};\n\nexport const TABLE_SCHEMAS: Record<TABLE_NAMES, Record<string, StorageColumn>> = {\n [TABLE_WORKFLOW_SNAPSHOT]: {\n workflow_name: {\n type: 'text',\n },\n run_id: {\n type: 'text',\n },\n resourceId: { type: 'text', nullable: true },\n snapshot: {\n type: 'text',\n },\n createdAt: {\n type: 'timestamp',\n },\n updatedAt: {\n type: 'timestamp',\n },\n },\n [TABLE_SCORERS]: SCORERS_SCHEMA,\n [TABLE_THREADS]: {\n id: { type: 'text', nullable: false, primaryKey: true },\n resourceId: { type: 'text', nullable: false },\n title: { type: 'text', nullable: false },\n metadata: { type: 'text', nullable: true },\n createdAt: { type: 'timestamp', nullable: false },\n updatedAt: { type: 'timestamp', nullable: false },\n },\n [TABLE_MESSAGES]: {\n id: { type: 'text', nullable: false, primaryKey: true },\n thread_id: { type: 'text', nullable: false },\n content: { type: 'text', nullable: false },\n role: { type: 'text', nullable: false },\n type: { type: 'text', nullable: false },\n createdAt: { type: 'timestamp', nullable: false },\n resourceId: { type: 'text', nullable: true },\n },\n [TABLE_SPANS]: SPAN_SCHEMA,\n [TABLE_TRACES]: {\n id: { type: 'text', nullable: false, primaryKey: true },\n parentSpanId: { type: 'text', nullable: true },\n name: { type: 'text', nullable: false },\n traceId: { type: 'text', nullable: false },\n scope: { type: 'text', nullable: false },\n kind: { type: 'integer', nullable: false },\n attributes: { type: 'jsonb', nullable: true },\n status: { type: 'jsonb', nullable: true },\n events: { type: 'jsonb', nullable: true },\n links: { type: 'jsonb', nullable: true },\n other: { type: 'text', nullable: true },\n startTime: { type: 'bigint', nullable: false },\n endTime: { type: 'bigint', nullable: false },\n createdAt: { type: 'timestamp', nullable: false },\n },\n [TABLE_RESOURCES]: {\n id: { type: 'text', nullable: false, primaryKey: true },\n workingMemory: { type: 'text', nullable: true },\n metadata: { type: 'jsonb', nullable: true },\n createdAt: { type: 'timestamp', nullable: false },\n updatedAt: { type: 'timestamp', nullable: false },\n },\n [TABLE_AGENTS]: AGENTS_SCHEMA,\n};\n"]}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
5
|
-
var
|
|
3
|
+
var chunkDDK3URK2_cjs = require('./chunk-DDK3URK2.cjs');
|
|
4
|
+
var chunkGXMJ5URG_cjs = require('./chunk-GXMJ5URG.cjs');
|
|
5
|
+
var chunk4U7ZLI36_cjs = require('./chunk-4U7ZLI36.cjs');
|
|
6
6
|
var crypto = require('crypto');
|
|
7
7
|
var zod = require('zod');
|
|
8
8
|
|
|
@@ -13,7 +13,7 @@ var MastraScorer = class _MastraScorer {
|
|
|
13
13
|
this.originalPromptObjects = originalPromptObjects;
|
|
14
14
|
this.#mastra = mastra;
|
|
15
15
|
if (!this.config.id) {
|
|
16
|
-
throw new
|
|
16
|
+
throw new chunk4U7ZLI36_cjs.MastraError({
|
|
17
17
|
id: "MASTR_SCORER_FAILED_TO_CREATE_MISSING_ID",
|
|
18
18
|
domain: "SCORER" /* SCORER */,
|
|
19
19
|
category: "USER" /* USER */,
|
|
@@ -130,7 +130,7 @@ var MastraScorer = class _MastraScorer {
|
|
|
130
130
|
}
|
|
131
131
|
async run(input) {
|
|
132
132
|
if (!this.hasGenerateScore) {
|
|
133
|
-
throw new
|
|
133
|
+
throw new chunk4U7ZLI36_cjs.MastraError({
|
|
134
134
|
id: "MASTR_SCORER_FAILED_TO_RUN_MISSING_GENERATE_SCORE",
|
|
135
135
|
domain: "SCORER" /* SCORER */,
|
|
136
136
|
category: "USER" /* USER */,
|
|
@@ -156,7 +156,7 @@ var MastraScorer = class _MastraScorer {
|
|
|
156
156
|
tracingContext
|
|
157
157
|
});
|
|
158
158
|
if (workflowResult.status === "failed") {
|
|
159
|
-
throw new
|
|
159
|
+
throw new chunk4U7ZLI36_cjs.MastraError({
|
|
160
160
|
id: "MASTR_SCORER_FAILED_TO_RUN_WORKFLOW_FAILED",
|
|
161
161
|
domain: "SCORER" /* SCORER */,
|
|
162
162
|
category: "USER" /* USER */,
|
|
@@ -185,7 +185,7 @@ var MastraScorer = class _MastraScorer {
|
|
|
185
185
|
}
|
|
186
186
|
toMastraWorkflow() {
|
|
187
187
|
const workflowSteps = this.steps.map((scorerStep) => {
|
|
188
|
-
return
|
|
188
|
+
return chunkDDK3URK2_cjs.createStep({
|
|
189
189
|
id: scorerStep.name,
|
|
190
190
|
description: `Scorer step: ${scorerStep.name}`,
|
|
191
191
|
inputSchema: zod.z.any(),
|
|
@@ -218,7 +218,7 @@ var MastraScorer = class _MastraScorer {
|
|
|
218
218
|
}
|
|
219
219
|
});
|
|
220
220
|
});
|
|
221
|
-
const workflow =
|
|
221
|
+
const workflow = chunkDDK3URK2_cjs.createWorkflow({
|
|
222
222
|
id: `scorer-${this.config.id ?? this.config.name}`,
|
|
223
223
|
description: this.config.description,
|
|
224
224
|
inputSchema: zod.z.object({
|
|
@@ -269,7 +269,7 @@ var MastraScorer = class _MastraScorer {
|
|
|
269
269
|
const modelConfig = originalStep.judge?.model ?? this.config.judge?.model;
|
|
270
270
|
const instructions = originalStep.judge?.instructions ?? this.config.judge?.instructions;
|
|
271
271
|
if (!modelConfig || !instructions) {
|
|
272
|
-
throw new
|
|
272
|
+
throw new chunk4U7ZLI36_cjs.MastraError({
|
|
273
273
|
id: "MASTR_SCORER_FAILED_TO_RUN_MISSING_MODEL_OR_INSTRUCTIONS",
|
|
274
274
|
domain: "SCORER" /* SCORER */,
|
|
275
275
|
category: "USER" /* USER */,
|
|
@@ -280,8 +280,8 @@ var MastraScorer = class _MastraScorer {
|
|
|
280
280
|
}
|
|
281
281
|
});
|
|
282
282
|
}
|
|
283
|
-
const resolvedModel = await
|
|
284
|
-
const judge = new
|
|
283
|
+
const resolvedModel = await chunkGXMJ5URG_cjs.resolveModelConfig(modelConfig, void 0, this.#mastra);
|
|
284
|
+
const judge = new chunkDDK3URK2_cjs.Agent({
|
|
285
285
|
id: "judge",
|
|
286
286
|
name: "judge",
|
|
287
287
|
model: resolvedModel,
|
|
@@ -291,8 +291,8 @@ var MastraScorer = class _MastraScorer {
|
|
|
291
291
|
if (scorerStep.name === "generateScore") {
|
|
292
292
|
const schema = zod.z.object({ score: zod.z.number() });
|
|
293
293
|
let result;
|
|
294
|
-
if (resolvedModel
|
|
295
|
-
result = await
|
|
294
|
+
if (chunkDDK3URK2_cjs.isSupportedLanguageModel(resolvedModel)) {
|
|
295
|
+
result = await chunkDDK3URK2_cjs.tryGenerateWithJsonFallback(judge, prompt, {
|
|
296
296
|
structuredOutput: {
|
|
297
297
|
schema
|
|
298
298
|
},
|
|
@@ -307,7 +307,7 @@ var MastraScorer = class _MastraScorer {
|
|
|
307
307
|
return { result: result.object.score, prompt };
|
|
308
308
|
} else if (scorerStep.name === "generateReason") {
|
|
309
309
|
let result;
|
|
310
|
-
if (resolvedModel
|
|
310
|
+
if (chunkDDK3URK2_cjs.isSupportedLanguageModel(resolvedModel)) {
|
|
311
311
|
result = await judge.generate(prompt, { tracingContext });
|
|
312
312
|
} else {
|
|
313
313
|
result = await judge.generateLegacy(prompt, { tracingContext });
|
|
@@ -316,8 +316,8 @@ var MastraScorer = class _MastraScorer {
|
|
|
316
316
|
} else {
|
|
317
317
|
const promptStep = originalStep;
|
|
318
318
|
let result;
|
|
319
|
-
if (resolvedModel
|
|
320
|
-
result = await
|
|
319
|
+
if (chunkDDK3URK2_cjs.isSupportedLanguageModel(resolvedModel)) {
|
|
320
|
+
result = await chunkDDK3URK2_cjs.tryGenerateWithJsonFallback(judge, prompt, {
|
|
321
321
|
structuredOutput: {
|
|
322
322
|
schema: promptStep.outputSchema
|
|
323
323
|
},
|
|
@@ -482,14 +482,14 @@ async function runEvals(config) {
|
|
|
482
482
|
};
|
|
483
483
|
}
|
|
484
484
|
function isWorkflow(target) {
|
|
485
|
-
return target instanceof
|
|
485
|
+
return target instanceof chunkDDK3URK2_cjs.Workflow;
|
|
486
486
|
}
|
|
487
487
|
function isWorkflowScorerConfig(scorers) {
|
|
488
488
|
return typeof scorers === "object" && !Array.isArray(scorers) && ("workflow" in scorers || "steps" in scorers);
|
|
489
489
|
}
|
|
490
490
|
function validateEvalsInputs(data, scorers, target) {
|
|
491
491
|
if (data.length === 0) {
|
|
492
|
-
throw new
|
|
492
|
+
throw new chunk4U7ZLI36_cjs.MastraError({
|
|
493
493
|
domain: "SCORER",
|
|
494
494
|
id: "RUN_EXPERIMENT_FAILED_NO_DATA_PROVIDED",
|
|
495
495
|
category: "USER",
|
|
@@ -499,7 +499,7 @@ function validateEvalsInputs(data, scorers, target) {
|
|
|
499
499
|
for (let i = 0; i < data.length; i++) {
|
|
500
500
|
const item = data[i];
|
|
501
501
|
if (!item || typeof item !== "object" || !("input" in item)) {
|
|
502
|
-
throw new
|
|
502
|
+
throw new chunk4U7ZLI36_cjs.MastraError({
|
|
503
503
|
domain: "SCORER",
|
|
504
504
|
id: "INVALID_DATA_ITEM",
|
|
505
505
|
category: "USER",
|
|
@@ -509,7 +509,7 @@ function validateEvalsInputs(data, scorers, target) {
|
|
|
509
509
|
}
|
|
510
510
|
if (Array.isArray(scorers)) {
|
|
511
511
|
if (scorers.length === 0) {
|
|
512
|
-
throw new
|
|
512
|
+
throw new chunk4U7ZLI36_cjs.MastraError({
|
|
513
513
|
domain: "SCORER",
|
|
514
514
|
id: "NO_SCORERS_PROVIDED",
|
|
515
515
|
category: "USER",
|
|
@@ -519,7 +519,7 @@ function validateEvalsInputs(data, scorers, target) {
|
|
|
519
519
|
} else if (isWorkflow(target) && isWorkflowScorerConfig(scorers)) {
|
|
520
520
|
const hasScorers = scorers.workflow && scorers.workflow.length > 0 || scorers.steps && Object.keys(scorers.steps).length > 0;
|
|
521
521
|
if (!hasScorers) {
|
|
522
|
-
throw new
|
|
522
|
+
throw new chunk4U7ZLI36_cjs.MastraError({
|
|
523
523
|
domain: "SCORER",
|
|
524
524
|
id: "NO_SCORERS_PROVIDED",
|
|
525
525
|
category: "USER",
|
|
@@ -527,7 +527,7 @@ function validateEvalsInputs(data, scorers, target) {
|
|
|
527
527
|
});
|
|
528
528
|
}
|
|
529
529
|
} else if (!isWorkflow(target) && !Array.isArray(scorers)) {
|
|
530
|
-
throw new
|
|
530
|
+
throw new chunk4U7ZLI36_cjs.MastraError({
|
|
531
531
|
domain: "SCORER",
|
|
532
532
|
id: "INVALID_AGENT_SCORERS",
|
|
533
533
|
category: "USER",
|
|
@@ -543,7 +543,7 @@ async function executeTarget(target, item) {
|
|
|
543
543
|
return await executeAgent(target, item);
|
|
544
544
|
}
|
|
545
545
|
} catch (error) {
|
|
546
|
-
throw new
|
|
546
|
+
throw new chunk4U7ZLI36_cjs.MastraError(
|
|
547
547
|
{
|
|
548
548
|
domain: "SCORER",
|
|
549
549
|
id: "RUN_EXPERIMENT_TARGET_FAILED_TO_GENERATE_RESULT",
|
|
@@ -573,7 +573,7 @@ async function executeWorkflow(target, item) {
|
|
|
573
573
|
}
|
|
574
574
|
async function executeAgent(agent, item) {
|
|
575
575
|
const model = await agent.getModel();
|
|
576
|
-
if (model
|
|
576
|
+
if (chunkDDK3URK2_cjs.isSupportedLanguageModel(model)) {
|
|
577
577
|
return await agent.generate(item.input, {
|
|
578
578
|
scorers: {},
|
|
579
579
|
returnScorerData: true,
|
|
@@ -601,7 +601,7 @@ async function runScorers(scorers, targetResult, item) {
|
|
|
601
601
|
});
|
|
602
602
|
scorerResults[scorer.id] = score;
|
|
603
603
|
} catch (error) {
|
|
604
|
-
throw new
|
|
604
|
+
throw new chunk4U7ZLI36_cjs.MastraError(
|
|
605
605
|
{
|
|
606
606
|
domain: "SCORER",
|
|
607
607
|
id: "RUN_EXPERIMENT_SCORER_FAILED_TO_SCORE_RESULT",
|
|
@@ -650,7 +650,7 @@ async function runScorers(scorers, targetResult, item) {
|
|
|
650
650
|
});
|
|
651
651
|
stepResults[scorer.id] = score;
|
|
652
652
|
} catch (error) {
|
|
653
|
-
throw new
|
|
653
|
+
throw new chunk4U7ZLI36_cjs.MastraError(
|
|
654
654
|
{
|
|
655
655
|
domain: "SCORER",
|
|
656
656
|
id: "RUN_EXPERIMENT_SCORER_FAILED_TO_SCORE_STEP_RESULT",
|
|
@@ -681,5 +681,5 @@ async function runScorers(scorers, targetResult, item) {
|
|
|
681
681
|
exports.MastraScorer = MastraScorer;
|
|
682
682
|
exports.createScorer = createScorer;
|
|
683
683
|
exports.runEvals = runEvals;
|
|
684
|
-
//# sourceMappingURL=chunk-
|
|
685
|
-
//# sourceMappingURL=chunk-
|
|
684
|
+
//# sourceMappingURL=chunk-CBY37FTP.cjs.map
|
|
685
|
+
//# sourceMappingURL=chunk-CBY37FTP.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/evals/base.ts","../src/evals/run/scorerAccumulator.ts","../src/evals/run/index.ts"],"names":["MastraError","randomUUID","createStep","z","createWorkflow","resolveModelConfig","Agent","isSupportedLanguageModel","tryGenerateWithJsonFallback","Workflow"],"mappings":"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","file":"chunk-CBY37FTP.cjs","sourcesContent":["import { randomUUID } from 'node:crypto';\nimport { z } from 'zod';\nimport { Agent, isSupportedLanguageModel } 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 { Mastra } from '../mastra';\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 #mastra?: Mastra;\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 mastra?: Mastra,\n ) {\n this.#mastra = mastra;\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 /**\n * Registers the Mastra instance with the scorer.\n * This enables access to custom gateways for model resolution.\n * @internal\n */\n __registerMastra(mastra: Mastra): void {\n this.#mastra = mastra;\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 this.#mastra,\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 this.#mastra,\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 this.#mastra,\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 this.#mastra,\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 validateInputs: false,\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 // Pass the Mastra instance to enable custom gateway resolution\n const resolvedModel = await resolveModelConfig(modelConfig, undefined, this.#mastra);\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 (isSupportedLanguageModel(resolvedModel)) {\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 (isSupportedLanguageModel(resolvedModel)) {\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 (isSupportedLanguageModel(resolvedModel)) {\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, TID extends string = string>(\n config: ScorerConfig<TID, TInput, TRunOutput>,\n): MastraScorer<TID, 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 { isSupportedLanguageModel } 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 (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"]}
|