@mastra/core 1.0.0-beta.14 → 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 +307 -0
- package/dist/agent/agent-legacy.d.ts.map +1 -1
- package/dist/agent/agent.d.ts.map +1 -1
- package/dist/agent/index.cjs +11 -11
- 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/utils.d.ts.map +1 -1
- package/dist/{chunk-TDM43G4I.cjs → chunk-2OOMJRXZ.cjs} +9 -9
- package/dist/{chunk-TDM43G4I.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-GBQXIVL6.js → chunk-3HDRO3GG.js} +790 -1206
- package/dist/chunk-3HDRO3GG.js.map +1 -0
- package/dist/{chunk-VZJOEGQA.js → chunk-4DFWV4IR.js} +2 -2
- 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-4CMIJQF6.js → chunk-4J4M2Q5R.js} +14 -14
- 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-EGHGFLL3.cjs → chunk-AAX7ZOM7.cjs} +2 -2
- package/dist/chunk-AAX7ZOM7.cjs.map +1 -0
- package/dist/{chunk-SLBWA2F3.js → chunk-AR5CF3IN.js} +3 -3
- package/dist/{chunk-SLBWA2F3.js.map → chunk-AR5CF3IN.js.map} +1 -1
- package/dist/{chunk-QDVYP2T7.js → chunk-BAZHNX5P.js} +8 -8
- package/dist/{chunk-QDVYP2T7.js.map → chunk-BAZHNX5P.js.map} +1 -1
- package/dist/{chunk-O3ULBGV6.cjs → chunk-BC2VKOH4.cjs} +43 -21
- package/dist/chunk-BC2VKOH4.cjs.map +1 -0
- package/dist/{chunk-5UQ5TB6J.js → chunk-BCUKD2XG.js} +59 -19
- package/dist/chunk-BCUKD2XG.js.map +1 -0
- package/dist/{chunk-67LM2UCT.js → chunk-CBQ6WDUJ.js} +5 -5
- package/dist/{chunk-67LM2UCT.js.map → chunk-CBQ6WDUJ.js.map} +1 -1
- package/dist/chunk-CBVHOGXX.cjs +674 -0
- package/dist/chunk-CBVHOGXX.cjs.map +1 -0
- package/dist/{chunk-O5BQBZEF.cjs → chunk-CBY37FTP.cjs} +28 -28
- package/dist/{chunk-O5BQBZEF.cjs.map → chunk-CBY37FTP.cjs.map} +1 -1
- package/dist/{chunk-3IP3DZ7G.js → chunk-D2IFWD7A.js} +285 -124
- package/dist/chunk-D2IFWD7A.js.map +1 -0
- package/dist/{chunk-JAGQZZ43.cjs → chunk-DDK3URK2.cjs} +636 -313
- 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-72E3YF6A.cjs → chunk-EMLEZXTQ.cjs} +15 -12
- package/dist/chunk-EMLEZXTQ.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-53SZJCBX.cjs → chunk-GXMJ5URG.cjs} +25 -25
- package/dist/{chunk-53SZJCBX.cjs.map → chunk-GXMJ5URG.cjs.map} +1 -1
- 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-AYBJ5GAD.js → chunk-IHISDRFV.js} +124 -50
- package/dist/chunk-IHISDRFV.js.map +1 -0
- package/dist/{chunk-DBW6S25C.cjs → chunk-IRTICXRZ.cjs} +101 -61
- package/dist/chunk-IRTICXRZ.cjs.map +1 -0
- package/dist/{chunk-ETWAR2YE.cjs → chunk-LOV5NNGK.cjs} +811 -1235
- package/dist/chunk-LOV5NNGK.cjs.map +1 -0
- package/dist/{chunk-QF4MHFSU.js → chunk-NGWTSHNA.js} +470 -152
- 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-GELVUDUY.js → chunk-O7M7DR4E.js} +3 -3
- package/dist/{chunk-GELVUDUY.js.map → chunk-O7M7DR4E.js.map} +1 -1
- package/dist/chunk-OTIGV7CL.js +10215 -0
- package/dist/chunk-OTIGV7CL.js.map +1 -0
- package/dist/{chunk-4AT6YQKZ.js → chunk-QXL3F3T2.js} +7 -4
- package/dist/chunk-QXL3F3T2.js.map +1 -0
- package/dist/{chunk-6CG7IY57.cjs → chunk-RA2CHJCY.cjs} +319 -158
- 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-FPDJ4XN6.cjs → chunk-S23TNDXG.cjs} +125 -51
- package/dist/chunk-S23TNDXG.cjs.map +1 -0
- package/dist/{chunk-OOUFPYSX.cjs → chunk-SSB4AVHU.cjs} +17 -17
- package/dist/{chunk-OOUFPYSX.cjs.map → chunk-SSB4AVHU.cjs.map} +1 -1
- package/dist/{chunk-TRUNX3AX.cjs → chunk-T2LVULCK.cjs} +31 -31
- package/dist/chunk-T2LVULCK.cjs.map +1 -0
- package/dist/{chunk-LDXKZYOV.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/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 +20 -20
- package/dist/llm/index.js +4 -4
- package/dist/llm/model/aisdk/v6/model.d.ts +1 -9
- package/dist/llm/model/aisdk/v6/model.d.ts.map +1 -1
- 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.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 +42 -17
- package/dist/loop/index.cjs +2 -2
- package/dist/loop/index.js +1 -1
- package/dist/loop/network/index.d.ts +6 -6
- package/dist/loop/test-utils/MastraLanguageModelV3Mock.d.ts +1 -9
- package/dist/loop/test-utils/MastraLanguageModelV3Mock.d.ts.map +1 -1
- package/dist/loop/types.d.ts +5 -2
- package/dist/loop/types.d.ts.map +1 -1
- package/dist/loop/workflows/agentic-execution/llm-execution-step.d.ts.map +1 -1
- package/dist/loop/workflows/agentic-execution/tool-call-step.d.ts.map +1 -1
- package/dist/loop/workflows/agentic-loop/index.d.ts.map +1 -1
- 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-PPS7X4JM.cjs.map → models-dev-26XLUKVK.cjs.map} +1 -1
- package/dist/models-dev-HUFLQFPB.js +3 -0
- package/dist/{models-dev-E3WWI7VA.js.map → models-dev-HUFLQFPB.js.map} +1 -1
- package/dist/netlify-CUYK2MZ2.cjs +12 -0
- package/dist/{netlify-VZFM5UH3.cjs.map → netlify-CUYK2MZ2.cjs.map} +1 -1
- package/dist/netlify-J4QPOROO.js +3 -0
- package/dist/{netlify-TY656UYF.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 +2 -0
- 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/provider-registry-6CIGRQVZ.js +3 -0
- package/dist/{provider-registry-NXVD764B.js.map → provider-registry-6CIGRQVZ.js.map} +1 -1
- package/dist/provider-registry-7O7FJ4BS.cjs +40 -0
- package/dist/{provider-registry-ZIWSEUQE.cjs.map → provider-registry-7O7FJ4BS.cjs.map} +1 -1
- package/dist/provider-registry.json +120 -46
- package/dist/relevance/index.cjs +3 -3
- package/dist/relevance/index.js +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/output.d.ts.map +1 -1
- 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 +3 -0
- package/dist/stream/types.d.ts.map +1 -1
- package/dist/test-utils/llm-mock.cjs +4 -4
- package/dist/test-utils/llm-mock.js +1 -1
- 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 +1 -1
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +2 -1
- package/dist/vector/index.cjs +12 -5299
- package/dist/vector/index.cjs.map +1 -1
- package/dist/vector/index.js +3 -5274
- package/dist/vector/index.js.map +1 -1
- package/dist/vector/vector.d.ts +13 -3
- package/dist/vector/vector.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 +1 -0
- package/dist/workflows/evented/step-executor.d.ts.map +1 -1
- package/dist/workflows/evented/workflow-event-processor/index.d.ts +5 -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 +5 -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 +22 -8
- package/dist/workflows/workflow.d.ts.map +1 -1
- package/package.json +16 -6
- package/src/llm/model/provider-types.generated.d.ts +42 -17
- package/storage/constants.d.ts +1 -0
- package/tool-loop-agent.d.ts +1 -0
- package/dist/chunk-373OC54J.js.map +0 -1
- package/dist/chunk-3IP3DZ7G.js.map +0 -1
- package/dist/chunk-4AT6YQKZ.js.map +0 -1
- package/dist/chunk-4CMIJQF6.js.map +0 -1
- package/dist/chunk-5UQ5TB6J.js.map +0 -1
- package/dist/chunk-6CG7IY57.cjs.map +0 -1
- package/dist/chunk-72E3YF6A.cjs.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-AYBJ5GAD.js.map +0 -1
- package/dist/chunk-DBW6S25C.cjs.map +0 -1
- package/dist/chunk-EGHGFLL3.cjs.map +0 -1
- package/dist/chunk-ETWAR2YE.cjs.map +0 -1
- package/dist/chunk-FPDJ4XN6.cjs.map +0 -1
- package/dist/chunk-GBQXIVL6.js.map +0 -1
- package/dist/chunk-HWMMIRIF.cjs.map +0 -1
- package/dist/chunk-JAGQZZ43.cjs.map +0 -1
- package/dist/chunk-LDXKZYOV.js.map +0 -1
- package/dist/chunk-O3ULBGV6.cjs.map +0 -1
- package/dist/chunk-QF4MHFSU.js.map +0 -1
- package/dist/chunk-T2VLUFGG.cjs +0 -47
- package/dist/chunk-T2VLUFGG.cjs.map +0 -1
- package/dist/chunk-TRUNX3AX.cjs.map +0 -1
- package/dist/chunk-VZJOEGQA.js.map +0 -1
- package/dist/chunk-Y36Y5MTD.js.map +0 -1
- package/dist/chunk-YPLZDWG7.js.map +0 -1
- package/dist/chunk-Z55SJVEC.cjs.map +0 -1
- package/dist/models-dev-E3WWI7VA.js +0 -3
- package/dist/models-dev-PPS7X4JM.cjs +0 -12
- package/dist/netlify-TY656UYF.js +0 -3
- package/dist/netlify-VZFM5UH3.cjs +0 -12
- package/dist/provider-registry-NXVD764B.js +0 -3
- package/dist/provider-registry-ZIWSEUQE.cjs +0 -40
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkRMV5HJM7_cjs = require('./chunk-RMV5HJM7.cjs');
|
|
4
|
+
var chunkDDK3URK2_cjs = require('./chunk-DDK3URK2.cjs');
|
|
5
|
+
var chunkFVQTJUBD_cjs = require('./chunk-FVQTJUBD.cjs');
|
|
6
|
+
var chunkGXMJ5URG_cjs = require('./chunk-GXMJ5URG.cjs');
|
|
7
|
+
|
|
8
|
+
// src/tool-loop-agent/utils.ts
|
|
9
|
+
function isToolLoopAgentLike(obj) {
|
|
10
|
+
if (!obj) return false;
|
|
11
|
+
if (obj instanceof chunkRMV5HJM7_cjs.ToolLoopAgent) return true;
|
|
12
|
+
return "version" in obj && typeof obj.version === "string" && (obj.version === "agent-v1" || obj.version.startsWith("agent-v"));
|
|
13
|
+
}
|
|
14
|
+
function getSettings(agent) {
|
|
15
|
+
const settings = agent.settings;
|
|
16
|
+
if (!settings) {
|
|
17
|
+
throw new Error("Could not extract settings from ToolLoopAgent. The agent may be from an incompatible version.");
|
|
18
|
+
}
|
|
19
|
+
return settings;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
// src/tool-loop-agent/tool-loop-processor.ts
|
|
23
|
+
var ToolLoopAgentProcessor = class {
|
|
24
|
+
id = "tool-loop-agent-processor";
|
|
25
|
+
name = "ToolLoop to Mastra Agent Processor";
|
|
26
|
+
agent;
|
|
27
|
+
settings;
|
|
28
|
+
prepareCallResult;
|
|
29
|
+
constructor(agent) {
|
|
30
|
+
this.agent = agent;
|
|
31
|
+
this.settings = getSettings(agent);
|
|
32
|
+
}
|
|
33
|
+
getAgentConfig() {
|
|
34
|
+
const tools = "tools" in this.agent ? this.agent.tools : void 0;
|
|
35
|
+
const defaultOptions = {};
|
|
36
|
+
if (this.settings.toolChoice) {
|
|
37
|
+
defaultOptions.toolChoice = this.settings.toolChoice;
|
|
38
|
+
}
|
|
39
|
+
if (this.settings.providerOptions) {
|
|
40
|
+
defaultOptions.providerOptions = this.settings.providerOptions;
|
|
41
|
+
}
|
|
42
|
+
if (this.settings.temperature !== void 0) {
|
|
43
|
+
defaultOptions.modelSettings = {
|
|
44
|
+
...defaultOptions.modelSettings ?? {},
|
|
45
|
+
temperature: this.settings.temperature
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
if (this.settings.topP !== void 0) {
|
|
49
|
+
defaultOptions.modelSettings = { ...defaultOptions.modelSettings ?? {}, topP: this.settings.topP };
|
|
50
|
+
}
|
|
51
|
+
if (this.settings.topK !== void 0) {
|
|
52
|
+
defaultOptions.modelSettings = { ...defaultOptions.modelSettings ?? {}, topK: this.settings.topK };
|
|
53
|
+
}
|
|
54
|
+
if (this.settings.seed !== void 0) {
|
|
55
|
+
defaultOptions.modelSettings = { ...defaultOptions.modelSettings ?? {}, seed: this.settings.seed };
|
|
56
|
+
}
|
|
57
|
+
if (this.settings.maxOutputTokens !== void 0) {
|
|
58
|
+
defaultOptions.modelSettings = {
|
|
59
|
+
...defaultOptions.modelSettings ?? {},
|
|
60
|
+
maxOutputTokens: this.settings.maxOutputTokens
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
if (this.settings.presencePenalty !== void 0) {
|
|
64
|
+
defaultOptions.modelSettings = {
|
|
65
|
+
...defaultOptions.modelSettings ?? {},
|
|
66
|
+
presencePenalty: this.settings.presencePenalty
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
if (this.settings.frequencyPenalty !== void 0) {
|
|
70
|
+
defaultOptions.modelSettings = {
|
|
71
|
+
...defaultOptions.modelSettings ?? {},
|
|
72
|
+
frequencyPenalty: this.settings.frequencyPenalty
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
if (this.settings.stopSequences !== void 0) {
|
|
76
|
+
defaultOptions.modelSettings = {
|
|
77
|
+
...defaultOptions.modelSettings ?? {},
|
|
78
|
+
stopSequences: this.settings.stopSequences
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
if (this.settings.stopWhen) {
|
|
82
|
+
defaultOptions.stopWhen = this.settings.stopWhen;
|
|
83
|
+
}
|
|
84
|
+
if (this.settings.onStepFinish) {
|
|
85
|
+
defaultOptions.onStepFinish = this.settings.onStepFinish;
|
|
86
|
+
}
|
|
87
|
+
if (this.settings.onFinish) {
|
|
88
|
+
defaultOptions.onFinish = this.settings.onFinish;
|
|
89
|
+
}
|
|
90
|
+
return {
|
|
91
|
+
id: this.settings.id,
|
|
92
|
+
name: this.settings.id,
|
|
93
|
+
instructions: this.settings.instructions ?? "",
|
|
94
|
+
model: this.settings.model,
|
|
95
|
+
tools,
|
|
96
|
+
maxRetries: this.settings.maxRetries,
|
|
97
|
+
defaultOptions: Object.keys(defaultOptions).length > 0 ? defaultOptions : void 0
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Maps prepareCall or prepareStep result to ProcessInputStepResult.
|
|
102
|
+
* Both hooks return similar structures that can override model, tools, activeTools, etc.
|
|
103
|
+
*/
|
|
104
|
+
mapToProcessInputStepResult(result) {
|
|
105
|
+
if (!result) {
|
|
106
|
+
return {};
|
|
107
|
+
}
|
|
108
|
+
const stepResult = {};
|
|
109
|
+
if (result.model) {
|
|
110
|
+
stepResult.model = result.model;
|
|
111
|
+
}
|
|
112
|
+
if ("tools" in result && result.tools) {
|
|
113
|
+
stepResult.tools = result.tools;
|
|
114
|
+
}
|
|
115
|
+
if ("toolChoice" in result && result.toolChoice !== void 0) {
|
|
116
|
+
stepResult.toolChoice = result.toolChoice;
|
|
117
|
+
}
|
|
118
|
+
if (result.activeTools) {
|
|
119
|
+
stepResult.activeTools = result.activeTools;
|
|
120
|
+
}
|
|
121
|
+
if ("providerOptions" in result && result.providerOptions) {
|
|
122
|
+
stepResult.providerOptions = result.providerOptions;
|
|
123
|
+
}
|
|
124
|
+
const modelSettings = {};
|
|
125
|
+
if ("temperature" in result && result.temperature !== void 0) {
|
|
126
|
+
modelSettings.temperature = result.temperature;
|
|
127
|
+
}
|
|
128
|
+
if ("topP" in result && result.topP !== void 0) {
|
|
129
|
+
modelSettings.topP = result.topP;
|
|
130
|
+
}
|
|
131
|
+
if ("topK" in result && result.topK !== void 0) {
|
|
132
|
+
modelSettings.topK = result.topK;
|
|
133
|
+
}
|
|
134
|
+
if ("maxOutputTokens" in result && result.maxOutputTokens !== void 0) {
|
|
135
|
+
modelSettings.maxOutputTokens = result.maxOutputTokens;
|
|
136
|
+
}
|
|
137
|
+
if ("presencePenalty" in result && result.presencePenalty !== void 0) {
|
|
138
|
+
modelSettings.presencePenalty = result.presencePenalty;
|
|
139
|
+
}
|
|
140
|
+
if ("frequencyPenalty" in result && result.frequencyPenalty !== void 0) {
|
|
141
|
+
modelSettings.frequencyPenalty = result.frequencyPenalty;
|
|
142
|
+
}
|
|
143
|
+
if ("stopSequences" in result && result.stopSequences !== void 0) {
|
|
144
|
+
modelSettings.stopSequences = result.stopSequences;
|
|
145
|
+
}
|
|
146
|
+
if ("seed" in result && result.seed !== void 0) {
|
|
147
|
+
modelSettings.seed = result.seed;
|
|
148
|
+
}
|
|
149
|
+
if (Object.keys(modelSettings).length > 0) {
|
|
150
|
+
stepResult.modelSettings = modelSettings;
|
|
151
|
+
}
|
|
152
|
+
const systemContent = "instructions" in result ? result.instructions : "system" in result ? result.system : void 0;
|
|
153
|
+
if (systemContent) {
|
|
154
|
+
if (typeof systemContent === "string") {
|
|
155
|
+
stepResult.systemMessages = [{ role: "system", content: systemContent }];
|
|
156
|
+
} else if (Array.isArray(systemContent)) {
|
|
157
|
+
stepResult.systemMessages = systemContent.map(
|
|
158
|
+
(msg) => typeof msg === "string" ? { role: "system", content: msg } : msg
|
|
159
|
+
);
|
|
160
|
+
} else if (typeof systemContent === "object" && "role" in systemContent && "content" in systemContent) {
|
|
161
|
+
stepResult.systemMessages = [systemContent];
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
if ("messages" in result && result.messages && Array.isArray(result.messages)) {
|
|
165
|
+
stepResult.messages = result.messages;
|
|
166
|
+
}
|
|
167
|
+
return stepResult;
|
|
168
|
+
}
|
|
169
|
+
async handlePrepareCall(args) {
|
|
170
|
+
if (this.settings.prepareCall) {
|
|
171
|
+
const { model, messages, activeTools, providerOptions, modelSettings, tools } = args;
|
|
172
|
+
const prepareCallInput = {
|
|
173
|
+
// TODO: prepareCall expects messages in AI SDK format, we have them in Mastra format
|
|
174
|
+
messages,
|
|
175
|
+
model,
|
|
176
|
+
tools,
|
|
177
|
+
instructions: this.settings.instructions,
|
|
178
|
+
stopWhen: this.settings.stopWhen,
|
|
179
|
+
activeTools,
|
|
180
|
+
providerOptions,
|
|
181
|
+
// Model settings
|
|
182
|
+
temperature: modelSettings?.temperature,
|
|
183
|
+
topP: modelSettings?.topP,
|
|
184
|
+
topK: modelSettings?.topK,
|
|
185
|
+
maxOutputTokens: modelSettings?.maxOutputTokens,
|
|
186
|
+
presencePenalty: modelSettings?.presencePenalty,
|
|
187
|
+
frequencyPenalty: modelSettings?.frequencyPenalty,
|
|
188
|
+
stopSequences: modelSettings?.stopSequences,
|
|
189
|
+
seed: modelSettings?.seed
|
|
190
|
+
// Experimental options
|
|
191
|
+
// experimental_telemetry: this.settings.experimental_telemetry,
|
|
192
|
+
// experimental_context: this.settings.experimental_context,
|
|
193
|
+
// experimental_download: this.settings.experimental_download,
|
|
194
|
+
};
|
|
195
|
+
const prepareCallResult = await this.settings.prepareCall(prepareCallInput);
|
|
196
|
+
this.prepareCallResult = prepareCallResult;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
async handlePrepareStep(args, currentResult) {
|
|
200
|
+
if (this.settings.prepareStep) {
|
|
201
|
+
const { messages, steps, stepNumber } = args;
|
|
202
|
+
let model = args.model;
|
|
203
|
+
if (currentResult.model) {
|
|
204
|
+
const resolvedModel = await chunkGXMJ5URG_cjs.resolveModelConfig(currentResult.model);
|
|
205
|
+
if (!chunkDDK3URK2_cjs.isSupportedLanguageModel(resolvedModel)) {
|
|
206
|
+
throw new Error("prepareStep returned an unsupported model version");
|
|
207
|
+
}
|
|
208
|
+
model = resolvedModel;
|
|
209
|
+
}
|
|
210
|
+
const prepareStepInputArgs = {
|
|
211
|
+
model,
|
|
212
|
+
// Messages are in Mastra format (MastraDBMessage[])
|
|
213
|
+
messages,
|
|
214
|
+
// Steps may have minor type differences in usage properties (inputTokenDetails/outputTokenDetails)
|
|
215
|
+
steps,
|
|
216
|
+
stepNumber,
|
|
217
|
+
experimental_context: void 0
|
|
218
|
+
};
|
|
219
|
+
const prepareStepResult = await this.settings.prepareStep(prepareStepInputArgs);
|
|
220
|
+
return prepareStepResult;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
async processInputStep(args) {
|
|
224
|
+
const { stepNumber } = args;
|
|
225
|
+
if (stepNumber === 0 && this.settings.prepareCall) {
|
|
226
|
+
await this.handlePrepareCall(args);
|
|
227
|
+
}
|
|
228
|
+
let result = {};
|
|
229
|
+
if (this.prepareCallResult) {
|
|
230
|
+
const mappedResult = this.mapToProcessInputStepResult(this.prepareCallResult);
|
|
231
|
+
if (Object.keys(mappedResult).length > 0) {
|
|
232
|
+
result = { ...result, ...mappedResult };
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
if (this.settings.prepareStep) {
|
|
236
|
+
const prepareStepResult = await this.handlePrepareStep(args, result);
|
|
237
|
+
if (prepareStepResult) {
|
|
238
|
+
const mappedResult = this.mapToProcessInputStepResult(prepareStepResult);
|
|
239
|
+
result = { ...result, ...mappedResult };
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
return result;
|
|
243
|
+
}
|
|
244
|
+
};
|
|
245
|
+
|
|
246
|
+
// src/tool-loop-agent/index.ts
|
|
247
|
+
function toolLoopAgentToMastraAgent(agent, options) {
|
|
248
|
+
const processor = new ToolLoopAgentProcessor(agent);
|
|
249
|
+
const agentConfig = processor.getAgentConfig();
|
|
250
|
+
const id = agentConfig.id || options?.fallbackName || `tool-loop-agent-${chunkFVQTJUBD_cjs.generateId()}`;
|
|
251
|
+
return new chunkDDK3URK2_cjs.Agent({
|
|
252
|
+
...agentConfig,
|
|
253
|
+
id,
|
|
254
|
+
name: agentConfig.name || id,
|
|
255
|
+
inputProcessors: [processor]
|
|
256
|
+
});
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
exports.getSettings = getSettings;
|
|
260
|
+
exports.isToolLoopAgentLike = isToolLoopAgentLike;
|
|
261
|
+
exports.toolLoopAgentToMastraAgent = toolLoopAgentToMastraAgent;
|
|
262
|
+
//# sourceMappingURL=chunk-DRJTNGI4.cjs.map
|
|
263
|
+
//# sourceMappingURL=chunk-DRJTNGI4.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/tool-loop-agent/utils.ts","../src/tool-loop-agent/tool-loop-processor.ts","../src/tool-loop-agent/index.ts"],"names":["ToolLoopAgent","resolveModelConfig","isSupportedLanguageModel","generateId","Agent"],"mappings":"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","file":"chunk-DRJTNGI4.cjs","sourcesContent":["import { ToolLoopAgent } from '@internal/ai-v6';\nimport type { ToolLoopAgentSettings } from '@internal/ai-v6';\n\n/**\n * Shape of a ToolLoopAgent-like object for runtime extraction.\n * We use this looser type because TypeScript's structural typing doesn't work\n * well with private properties across different package declarations.\n */\nexport interface ToolLoopAgentLike {\n readonly id?: string;\n readonly version?: string;\n // The settings property is private in ToolLoopAgent but accessible at runtime\n // We don't declare it here since we access it via type casting\n}\n\nexport function isToolLoopAgentLike(obj: any): obj is ToolLoopAgentLike {\n if (!obj) return false;\n if (obj instanceof ToolLoopAgent) return true;\n return (\n 'version' in obj &&\n typeof obj.version === 'string' &&\n (obj.version === 'agent-v1' || obj.version.startsWith('agent-v'))\n );\n}\n\n/**\n * Extracts the settings from a ToolLoopAgent instance.\n * ToolLoopAgent.settings is private in TypeScript but accessible at runtime.\n */\nexport function getSettings(agent: ToolLoopAgentLike): ToolLoopAgentSettings<any, any, any> {\n const settings = (agent as unknown as { settings: ToolLoopAgentSettings<any, any, any> }).settings;\n if (!settings) {\n throw new Error('Could not extract settings from ToolLoopAgent. The agent may be from an incompatible version.');\n }\n return settings;\n}\n","import type {\n ToolLoopAgent,\n AgentCallParameters,\n ModelMessage,\n StepResult,\n ToolLoopAgentSettings,\n} from '@internal/ai-v6';\nimport { isSupportedLanguageModel } from '../agent';\nimport type { AgentExecutionOptions, AgentInstructions } from '../agent';\nimport { resolveModelConfig } from '../llm/model/resolve-model';\nimport type { MastraLanguageModel } from '../llm/model/shared.types';\nimport type { ProcessInputStepArgs, ProcessInputStepResult, Processor } from '../processors';\nimport type { OutputSchema } from '../stream';\nimport { getSettings as getToolLoopAgentSettings } from './utils';\nimport type { ToolLoopAgentLike } from './utils';\n\ntype PrepareCallInput = AgentCallParameters<never> &\n Pick<\n ToolLoopAgentSettings<never, any, any>,\n | 'model'\n | 'tools'\n | 'maxOutputTokens'\n | 'temperature'\n | 'topP'\n | 'topK'\n | 'presencePenalty'\n | 'frequencyPenalty'\n | 'stopSequences'\n | 'seed'\n | 'headers'\n | 'instructions'\n | 'stopWhen'\n | 'experimental_telemetry'\n | 'activeTools'\n | 'providerOptions'\n | 'experimental_context'\n | 'experimental_download'\n >;\n\nexport class ToolLoopAgentProcessor implements Processor<'tool-loop-agent-processor'> {\n readonly id = 'tool-loop-agent-processor';\n readonly name = 'ToolLoop to Mastra Agent Processor';\n\n private agent: ToolLoopAgentLike;\n private settings: ToolLoopAgentSettings<any, any, any>;\n private prepareCallResult?: Awaited<ReturnType<NonNullable<ToolLoopAgentSettings<any, any, any>['prepareCall']>>>;\n\n constructor(agent: ToolLoopAgentLike) {\n this.agent = agent;\n this.settings = getToolLoopAgentSettings(agent);\n }\n\n public getAgentConfig() {\n const tools = 'tools' in this.agent ? (this.agent as ToolLoopAgent).tools : undefined;\n\n // Build default options from ToolLoopAgent config params\n const defaultOptions: Omit<AgentExecutionOptions<OutputSchema>, 'abortSignal'> = {};\n\n // AgentExecutionOptions\n if (this.settings.toolChoice) {\n defaultOptions.toolChoice = this.settings.toolChoice;\n }\n if (this.settings.providerOptions) {\n defaultOptions.providerOptions = this.settings.providerOptions;\n }\n // AgentExecutionOptions[\"modelSettings\"]\n if (this.settings.temperature !== undefined) {\n defaultOptions.modelSettings = {\n ...(defaultOptions.modelSettings ?? {}),\n temperature: this.settings.temperature,\n };\n }\n if (this.settings.topP !== undefined) {\n defaultOptions.modelSettings = { ...(defaultOptions.modelSettings ?? {}), topP: this.settings.topP };\n }\n if (this.settings.topK !== undefined) {\n defaultOptions.modelSettings = { ...(defaultOptions.modelSettings ?? {}), topK: this.settings.topK };\n }\n if (this.settings.seed !== undefined) {\n defaultOptions.modelSettings = { ...(defaultOptions.modelSettings ?? {}), seed: this.settings.seed };\n }\n if (this.settings.maxOutputTokens !== undefined) {\n defaultOptions.modelSettings = {\n ...(defaultOptions.modelSettings ?? {}),\n maxOutputTokens: this.settings.maxOutputTokens,\n };\n }\n if (this.settings.presencePenalty !== undefined) {\n defaultOptions.modelSettings = {\n ...(defaultOptions.modelSettings ?? {}),\n presencePenalty: this.settings.presencePenalty,\n };\n }\n if (this.settings.frequencyPenalty !== undefined) {\n defaultOptions.modelSettings = {\n ...(defaultOptions.modelSettings ?? {}),\n frequencyPenalty: this.settings.frequencyPenalty,\n };\n }\n if (this.settings.stopSequences !== undefined) {\n defaultOptions.modelSettings = {\n ...(defaultOptions.modelSettings ?? {}),\n stopSequences: this.settings.stopSequences,\n };\n }\n if (this.settings.stopWhen) {\n // TODO: The callback signatures differ (Types of parameters stepResult and event are incompatible)\n defaultOptions.stopWhen = this.settings.stopWhen as any;\n }\n if (this.settings.onStepFinish) {\n // TODO: The callback signatures differ (Types of parameters stepResult and event are incompatible)\n defaultOptions.onStepFinish = this.settings.onStepFinish as any;\n }\n if (this.settings.onFinish) {\n // TODO: The callback signatures differ (Types of parameters 'event' and 'event' are incompatible)\n defaultOptions.onFinish = this.settings.onFinish as any;\n }\n\n return {\n id: this.settings.id,\n name: this.settings.id,\n instructions: (this.settings.instructions as AgentInstructions) ?? '',\n model: this.settings.model,\n tools,\n maxRetries: this.settings.maxRetries,\n defaultOptions: Object.keys(defaultOptions).length > 0 ? defaultOptions : undefined,\n };\n }\n\n /**\n * Maps prepareCall or prepareStep result to ProcessInputStepResult.\n * Both hooks return similar structures that can override model, tools, activeTools, etc.\n */\n private mapToProcessInputStepResult(\n result: Awaited<ReturnType<NonNullable<ToolLoopAgentSettings<any, any, any>['prepareCall']>>> | undefined,\n ): ProcessInputStepResult {\n if (!result) {\n return {};\n }\n\n const stepResult: ProcessInputStepResult = {};\n\n // Map model (both prepareCall and prepareStep can return this)\n if (result.model) {\n stepResult.model = result.model;\n }\n\n // Map tools (prepareCall can return this)\n if ('tools' in result && result.tools) {\n stepResult.tools = result.tools as Record<string, unknown>;\n }\n\n // Map toolChoice (prepareStep can return this)\n if ('toolChoice' in result && result.toolChoice !== undefined) {\n stepResult.toolChoice = result.toolChoice as ProcessInputStepResult['toolChoice'];\n }\n\n // Map activeTools (both can return this)\n if (result.activeTools) {\n stepResult.activeTools = result.activeTools as string[];\n }\n\n // Map providerOptions (prepareCall can return this)\n if ('providerOptions' in result && result.providerOptions) {\n stepResult.providerOptions = result.providerOptions;\n }\n\n // Map model settings (prepareCall can return individual settings)\n const modelSettings: ProcessInputStepResult['modelSettings'] = {};\n if ('temperature' in result && result.temperature !== undefined) {\n modelSettings.temperature = result.temperature;\n }\n if ('topP' in result && result.topP !== undefined) {\n modelSettings.topP = result.topP;\n }\n if ('topK' in result && result.topK !== undefined) {\n modelSettings.topK = result.topK;\n }\n if ('maxOutputTokens' in result && result.maxOutputTokens !== undefined) {\n modelSettings.maxOutputTokens = result.maxOutputTokens;\n }\n if ('presencePenalty' in result && result.presencePenalty !== undefined) {\n modelSettings.presencePenalty = result.presencePenalty;\n }\n if ('frequencyPenalty' in result && result.frequencyPenalty !== undefined) {\n modelSettings.frequencyPenalty = result.frequencyPenalty;\n }\n if ('stopSequences' in result && result.stopSequences !== undefined) {\n modelSettings.stopSequences = result.stopSequences;\n }\n if ('seed' in result && result.seed !== undefined) {\n modelSettings.seed = result.seed;\n }\n\n if (Object.keys(modelSettings).length > 0) {\n stepResult.modelSettings = modelSettings;\n }\n\n // Map system/instructions to systemMessages\n // prepareCall returns 'instructions', prepareStep returns 'system'\n const systemContent =\n 'instructions' in result ? result.instructions : 'system' in result ? result.system : undefined;\n if (systemContent) {\n // Convert to CoreMessageV4 format\n if (typeof systemContent === 'string') {\n stepResult.systemMessages = [{ role: 'system', content: systemContent }];\n } else if (Array.isArray(systemContent)) {\n stepResult.systemMessages = systemContent.map(msg =>\n typeof msg === 'string' ? { role: 'system' as const, content: msg } : msg,\n );\n } else if (typeof systemContent === 'object' && 'role' in systemContent && 'content' in systemContent) {\n stepResult.systemMessages = [systemContent as { role: 'system'; content: string }];\n }\n }\n\n // Map messages if prepareStep returns them\n // Convert AI SDK ModelMessage[] to MastraDBMessage[]\n if ('messages' in result && result.messages && Array.isArray(result.messages)) {\n // AI SDK v6 ModelMessage is compatible with MessageListInput at runtime\n // stepResult.messages = convertMessages(result.messages as any).to('Mastra.V2');\n stepResult.messages = result.messages as any;\n }\n\n return stepResult;\n }\n\n private async handlePrepareCall(args: ProcessInputStepArgs) {\n if (this.settings.prepareCall) {\n const { model, messages, activeTools, providerOptions, modelSettings, tools } = args;\n // TODO: This should probably happen in processInput, currently calling in processInputStep if stepNumber === 0\n\n // Build the prepareCall input object\n // AI SDK prepareCall expects: AgentCallParameters & Pick<ToolLoopAgentSettings, ...settings>\n const prepareCallInput: PrepareCallInput = {\n // TODO: prepareCall expects messages in AI SDK format, we have them in Mastra format\n messages: messages as unknown as any,\n model,\n tools,\n instructions: this.settings.instructions,\n stopWhen: this.settings.stopWhen,\n activeTools,\n providerOptions,\n\n // Model settings\n temperature: modelSettings?.temperature,\n topP: modelSettings?.topP,\n topK: modelSettings?.topK,\n maxOutputTokens: modelSettings?.maxOutputTokens,\n presencePenalty: modelSettings?.presencePenalty,\n frequencyPenalty: modelSettings?.frequencyPenalty,\n stopSequences: modelSettings?.stopSequences,\n seed: modelSettings?.seed,\n\n // Experimental options\n // experimental_telemetry: this.settings.experimental_telemetry,\n // experimental_context: this.settings.experimental_context,\n // experimental_download: this.settings.experimental_download,\n };\n\n // Call prepareCall and apply any returned overrides\n const prepareCallResult = await this.settings.prepareCall(prepareCallInput as any); // TODO: types\n this.prepareCallResult = prepareCallResult;\n }\n }\n\n private async handlePrepareStep(args: ProcessInputStepArgs, currentResult: ProcessInputStepResult) {\n if (this.settings.prepareStep) {\n const { messages, steps, stepNumber } = args;\n\n let model = args.model;\n if (currentResult.model) {\n const resolvedModel = await resolveModelConfig(currentResult.model);\n if (!isSupportedLanguageModel(resolvedModel)) {\n throw new Error('prepareStep returned an unsupported model version');\n }\n model = resolvedModel;\n }\n\n // Use the model from currentResult if prepareCall overrode it, otherwise use args.model\n\n // Note: We pass messages and steps in Mastra format rather than converting to AI SDK format.\n // This is intentional - most prepareStep callbacks only return overrides and don't inspect\n // the message content. The type casts handle the format difference at runtime.\n const prepareStepInputArgs: {\n /**\n * The steps that have been executed so far.\n */\n steps: Array<StepResult<NoInfer<any>>>;\n /**\n * The number of the step that is being executed.\n */\n stepNumber: number;\n /**\n * The model instance that is being used for this step.\n */\n model: MastraLanguageModel;\n /**\n * The messages that will be sent to the model for the current step.\n * Note: These are in Mastra format (MastraDBMessage[]), not AI SDK ModelMessage format.\n */\n messages: Array<ModelMessage>;\n /**\n * The context passed via the experimental_context setting (experimental).\n */\n experimental_context: unknown;\n } = {\n model,\n // Messages are in Mastra format (MastraDBMessage[])\n messages: messages as any,\n // Steps may have minor type differences in usage properties (inputTokenDetails/outputTokenDetails)\n steps: steps as any,\n stepNumber,\n experimental_context: undefined,\n };\n\n const prepareStepResult = await this.settings.prepareStep(prepareStepInputArgs);\n return prepareStepResult;\n }\n }\n\n async processInputStep(args: ProcessInputStepArgs): Promise<ProcessInputStepResult | undefined | void> {\n const { stepNumber } = args;\n\n if (stepNumber === 0 && this.settings.prepareCall) {\n await this.handlePrepareCall(args);\n }\n\n let result: ProcessInputStepResult = {};\n\n // Apply prepareCall result (only on step 0, already called above)\n if (this.prepareCallResult) {\n const mappedResult = this.mapToProcessInputStepResult(this.prepareCallResult);\n if (Object.keys(mappedResult).length > 0) {\n result = { ...result, ...mappedResult };\n }\n }\n\n // Apply prepareStep result (called on every step)\n // Pass the current result so prepareStep sees any overrides from prepareCall\n if (this.settings.prepareStep) {\n const prepareStepResult = await this.handlePrepareStep(args, result);\n if (prepareStepResult) {\n const mappedResult = this.mapToProcessInputStepResult(prepareStepResult as any);\n // prepareStep overrides prepareCall for this step\n result = { ...result, ...mappedResult };\n }\n }\n\n return result;\n }\n}\n","import { generateId } from '@internal/ai-sdk-v5';\nimport { Agent } from '../agent';\nimport { ToolLoopAgentProcessor } from './tool-loop-processor';\nimport type { ToolLoopAgentLike } from './utils';\nexport { type ToolLoopAgentLike, isToolLoopAgentLike, getSettings } from './utils';\n\n/**\n * Converts an AI SDK v6 ToolLoopAgent instance into a Mastra Agent.\n *\n * This enables users to create a ToolLoopAgent using AI SDK's API\n * while gaining access to Mastra features like memory, processors, scorers, and observability.\n *\n * @example\n * ```typescript\n * import { ToolLoopAgent, tool } from 'ai';\n * import { openai } from '@ai-sdk/openai';\n * import { toolLoopAgentToMastraAgent } from '@mastra/core/tool-loop-agent';\n *\n * const toolLoopAgent = new ToolLoopAgent({\n * id: 'weather-agent',\n * model: openai('gpt-4o'),\n * instructions: 'You are a helpful weather assistant.',\n * tools: { weather: weatherTool },\n * temperature: 0.7,\n * });\n *\n * const mastraAgent = toolLoopAgentToMastraAgent(toolLoopAgent);\n *\n * const result = await mastraAgent.generate({ prompt: 'What is the weather in NYC?' });\n * ```\n *\n * @param agent - The ToolLoopAgent instance\n * @param options - Optional name fallback since Mastra Agent requires id/name but ToolLoopAgent doesn't\n * @returns A Mastra Agent instance\n */\nexport function toolLoopAgentToMastraAgent(agent: ToolLoopAgentLike, options?: { fallbackName?: string }) {\n const processor = new ToolLoopAgentProcessor(agent);\n const agentConfig = processor.getAgentConfig();\n const id = agentConfig.id || options?.fallbackName || `tool-loop-agent-${generateId()}`;\n\n return new Agent({\n ...agentConfig,\n id,\n name: agentConfig.name || id,\n inputProcessors: [processor],\n });\n}\n"]}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var chunkNESKUIRE_cjs = require('./chunk-NESKUIRE.cjs');
|
|
4
4
|
var chunkNIOEY3N3_cjs = require('./chunk-NIOEY3N3.cjs');
|
|
5
|
-
var
|
|
5
|
+
var chunk4U7ZLI36_cjs = require('./chunk-4U7ZLI36.cjs');
|
|
6
6
|
var uuid = require('@lukeed/uuid');
|
|
7
7
|
var providerUtilsV5 = require('@ai-sdk/provider-utils-v5');
|
|
8
8
|
var zod = require('zod');
|
|
@@ -70,7 +70,7 @@ function convertToDataContent(content) {
|
|
|
70
70
|
if (content instanceof URL && content.protocol === "data:") {
|
|
71
71
|
const { mediaType: dataUrlMediaType, base64Content } = splitDataUrl(content.toString());
|
|
72
72
|
if (dataUrlMediaType == null || base64Content == null) {
|
|
73
|
-
throw new
|
|
73
|
+
throw new chunk4U7ZLI36_cjs.MastraError({
|
|
74
74
|
id: "INVALID_DATA_URL_FORMAT",
|
|
75
75
|
text: `Invalid data URL format in content ${content.toString()}`,
|
|
76
76
|
domain: "LLM" /* LLM */,
|
|
@@ -346,7 +346,10 @@ function attachmentsToParts(attachments) {
|
|
|
346
346
|
}
|
|
347
347
|
switch (url.protocol) {
|
|
348
348
|
case "http:":
|
|
349
|
-
case "https:":
|
|
349
|
+
case "https:":
|
|
350
|
+
// Cloud storage protocols supported by AI providers (e.g., Vertex AI for gs://, Bedrock for s3://)
|
|
351
|
+
case "gs:":
|
|
352
|
+
case "s3:": {
|
|
350
353
|
if (attachment.contentType?.startsWith("image/")) {
|
|
351
354
|
parts.push({ type: "image", image: url.toString(), mimeType: attachment.contentType });
|
|
352
355
|
} else {
|
|
@@ -741,7 +744,7 @@ var downloadFromUrl = async ({ url, downloadRetries }) => {
|
|
|
741
744
|
downloadRetries
|
|
742
745
|
);
|
|
743
746
|
if (!response.ok) {
|
|
744
|
-
throw new
|
|
747
|
+
throw new chunk4U7ZLI36_cjs.MastraError({
|
|
745
748
|
id: "DOWNLOAD_ASSETS_FAILED",
|
|
746
749
|
text: "Failed to download asset",
|
|
747
750
|
domain: "LLM" /* LLM */,
|
|
@@ -753,7 +756,7 @@ var downloadFromUrl = async ({ url, downloadRetries }) => {
|
|
|
753
756
|
mediaType: response.headers.get("content-type") ?? void 0
|
|
754
757
|
};
|
|
755
758
|
} catch (error) {
|
|
756
|
-
throw new
|
|
759
|
+
throw new chunk4U7ZLI36_cjs.MastraError(
|
|
757
760
|
{
|
|
758
761
|
id: "DOWNLOAD_ASSETS_FAILED",
|
|
759
762
|
text: "Failed to download asset",
|
|
@@ -817,7 +820,7 @@ function ensureGeminiCompatibleMessages(messages) {
|
|
|
817
820
|
const result = [...messages];
|
|
818
821
|
const firstNonSystemIndex = result.findIndex((m) => m.role !== "system");
|
|
819
822
|
if (firstNonSystemIndex === -1) {
|
|
820
|
-
throw new
|
|
823
|
+
throw new chunk4U7ZLI36_cjs.MastraError({
|
|
821
824
|
id: "NO_USER_OR_ASSISTANT_MESSAGES",
|
|
822
825
|
domain: "AGENT" /* AGENT */,
|
|
823
826
|
category: "USER" /* USER */,
|
|
@@ -1667,7 +1670,7 @@ var MessageList = class _MessageList {
|
|
|
1667
1670
|
*/
|
|
1668
1671
|
static mastraDBMessageSystemToV4Core(message) {
|
|
1669
1672
|
if (message.role !== `system` || !message.content.content)
|
|
1670
|
-
throw new
|
|
1673
|
+
throw new chunk4U7ZLI36_cjs.MastraError({
|
|
1671
1674
|
id: "INVALID_SYSTEM_MESSAGE_FORMAT",
|
|
1672
1675
|
domain: "AGENT" /* AGENT */,
|
|
1673
1676
|
category: "USER" /* USER */,
|
|
@@ -1697,7 +1700,7 @@ var MessageList = class _MessageList {
|
|
|
1697
1700
|
addOne(message, messageSource) {
|
|
1698
1701
|
if ((!(`content` in message) || !message.content && // allow empty strings
|
|
1699
1702
|
typeof message.content !== "string") && (!(`parts` in message) || !message.parts)) {
|
|
1700
|
-
throw new
|
|
1703
|
+
throw new chunk4U7ZLI36_cjs.MastraError({
|
|
1701
1704
|
id: "INVALID_MESSAGE_CONTENT",
|
|
1702
1705
|
domain: "AGENT" /* AGENT */,
|
|
1703
1706
|
category: "USER" /* USER */,
|
|
@@ -1716,7 +1719,7 @@ var MessageList = class _MessageList {
|
|
|
1716
1719
|
if (isSupportedSystemFormat) {
|
|
1717
1720
|
return this.addSystem(message);
|
|
1718
1721
|
}
|
|
1719
|
-
throw new
|
|
1722
|
+
throw new chunk4U7ZLI36_cjs.MastraError({
|
|
1720
1723
|
id: "INVALID_SYSTEM_MESSAGE_FORMAT",
|
|
1721
1724
|
domain: "AGENT" /* AGENT */,
|
|
1722
1725
|
category: "USER" /* USER */,
|
|
@@ -2997,7 +3000,7 @@ var MessageList = class _MessageList {
|
|
|
2997
3000
|
mimeType = part.mediaType || "image/jpeg";
|
|
2998
3001
|
data = part.image;
|
|
2999
3002
|
} else {
|
|
3000
|
-
throw new
|
|
3003
|
+
throw new chunk4U7ZLI36_cjs.MastraError({
|
|
3001
3004
|
id: "MASTRA_AIV5_DATA_PART_INVALID",
|
|
3002
3005
|
domain: "AGENT" /* AGENT */,
|
|
3003
3006
|
category: "USER" /* USER */,
|
|
@@ -3343,5 +3346,5 @@ exports.DefaultGeneratedFile = DefaultGeneratedFile;
|
|
|
3343
3346
|
exports.DefaultGeneratedFileWithType = DefaultGeneratedFileWithType;
|
|
3344
3347
|
exports.MessageList = MessageList;
|
|
3345
3348
|
exports.convertMessages = convertMessages;
|
|
3346
|
-
//# sourceMappingURL=chunk-
|
|
3347
|
-
//# sourceMappingURL=chunk-
|
|
3349
|
+
//# sourceMappingURL=chunk-EMLEZXTQ.cjs.map
|
|
3350
|
+
//# sourceMappingURL=chunk-EMLEZXTQ.cjs.map
|