@mastra/core 0.24.0 → 1.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +484 -139
- package/README.md +2 -3
- package/agent/message-list.d.ts +1 -0
- package/dist/action/index.d.ts +0 -2
- package/dist/action/index.d.ts.map +1 -1
- package/dist/agent/__tests__/mock-model.d.ts +3 -1
- package/dist/agent/__tests__/mock-model.d.ts.map +1 -1
- package/dist/agent/agent-legacy.d.ts +176 -0
- package/dist/agent/agent-legacy.d.ts.map +1 -0
- package/dist/agent/agent.d.ts +83 -229
- package/dist/agent/agent.d.ts.map +1 -1
- package/dist/agent/agent.types.d.ts +10 -25
- package/dist/agent/agent.types.d.ts.map +1 -1
- package/dist/agent/index.cjs +10 -26
- package/dist/agent/index.d.ts +1 -2
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/index.js +2 -2
- package/dist/agent/message-list/index.cjs +16 -0
- package/dist/agent/message-list/index.d.ts +77 -87
- package/dist/agent/message-list/index.d.ts.map +1 -1
- package/dist/agent/message-list/index.js +3 -0
- package/dist/agent/message-list/prompt/attachments-to-parts.d.ts +2 -2
- package/dist/agent/message-list/prompt/attachments-to-parts.d.ts.map +1 -1
- package/dist/agent/message-list/prompt/convert-to-mastra-v1.d.ts +2 -2
- package/dist/agent/message-list/prompt/download-assets.d.ts.map +1 -1
- package/dist/agent/message-list/prompt/invalid-content-error.d.ts +1 -1
- package/dist/agent/message-list/prompt/invalid-content-error.d.ts.map +1 -1
- package/dist/agent/message-list/types.d.ts +2 -1
- package/dist/agent/message-list/types.d.ts.map +1 -1
- package/dist/agent/message-list/utils/ai-v4-v5/core-model-message.d.ts +3 -2
- package/dist/agent/message-list/utils/ai-v4-v5/core-model-message.d.ts.map +1 -1
- package/dist/agent/message-list/utils/ai-v4-v5/ui-message.d.ts +3 -2
- package/dist/agent/message-list/utils/ai-v4-v5/ui-message.d.ts.map +1 -1
- package/dist/agent/message-list/utils/ai-v5/gemini-compatibility.d.ts +1 -1
- package/dist/agent/message-list/utils/ai-v5/gemini-compatibility.d.ts.map +1 -1
- package/dist/agent/message-list/utils/convert-messages.d.ts +4 -4
- package/dist/agent/message-list/utils/convert-messages.d.ts.map +1 -1
- package/dist/agent/test-utils.d.ts +2 -79
- package/dist/agent/test-utils.d.ts.map +1 -1
- package/dist/agent/trip-wire.d.ts +1 -1
- package/dist/agent/trip-wire.d.ts.map +1 -1
- package/dist/agent/types.d.ts +23 -37
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/agent/utils.d.ts +15 -64
- package/dist/agent/utils.d.ts.map +1 -1
- package/dist/agent/workflows/prepare-stream/index.d.ts +16 -20
- package/dist/agent/workflows/prepare-stream/index.d.ts.map +1 -1
- package/dist/agent/workflows/prepare-stream/map-results-step.d.ts +5 -7
- package/dist/agent/workflows/prepare-stream/map-results-step.d.ts.map +1 -1
- package/dist/agent/workflows/prepare-stream/prepare-memory-step.d.ts +14 -18
- package/dist/agent/workflows/prepare-stream/prepare-memory-step.d.ts.map +1 -1
- package/dist/agent/workflows/prepare-stream/prepare-tools-step.d.ts +6 -6
- package/dist/agent/workflows/prepare-stream/prepare-tools-step.d.ts.map +1 -1
- package/dist/agent/workflows/prepare-stream/schema.d.ts +10 -12
- package/dist/agent/workflows/prepare-stream/schema.d.ts.map +1 -1
- package/dist/agent/workflows/prepare-stream/stream-step.d.ts +3 -7
- package/dist/agent/workflows/prepare-stream/stream-step.d.ts.map +1 -1
- package/dist/ai-sdk.types.d.ts +4705 -0
- package/dist/base.cjs +2 -2
- package/dist/base.d.ts +0 -16
- package/dist/base.d.ts.map +1 -1
- package/dist/base.js +1 -1
- package/dist/bundler/index.cjs +2 -2
- package/dist/bundler/index.d.ts +2 -1
- package/dist/bundler/index.d.ts.map +1 -1
- package/dist/bundler/index.js +1 -1
- package/dist/cache/index.cjs +3 -3
- package/dist/cache/index.js +1 -1
- package/dist/{chunk-7J3XX4AO.cjs → chunk-2ZVKF4HP.cjs} +199 -66
- package/dist/chunk-2ZVKF4HP.cjs.map +1 -0
- package/dist/chunk-4CDL2QJT.js +649 -0
- package/dist/chunk-4CDL2QJT.js.map +1 -0
- package/dist/chunk-5WRI5ZAA.js +29 -0
- package/dist/{chunk-3HXBPDKN.js.map → chunk-5WRI5ZAA.js.map} +1 -1
- package/dist/{chunk-KAEQISOW.js → chunk-76K3IYWM.js} +5 -5
- package/dist/chunk-76K3IYWM.js.map +1 -0
- package/dist/chunk-7AHYOMHJ.js +149 -0
- package/dist/chunk-7AHYOMHJ.js.map +1 -0
- package/dist/{chunk-UZKIGB7M.cjs → chunk-BMAFVZ2D.cjs} +5 -5
- package/dist/chunk-BMAFVZ2D.cjs.map +1 -0
- package/dist/chunk-CB575O6L.cjs +12432 -0
- package/dist/chunk-CB575O6L.cjs.map +1 -0
- package/dist/{chunk-6TEQIYXV.cjs → chunk-CBAB7GOD.cjs} +15 -15
- package/dist/chunk-CBAB7GOD.cjs.map +1 -0
- package/dist/{chunk-ROS5CMJS.cjs → chunk-CD56CXVE.cjs} +63 -50
- package/dist/chunk-CD56CXVE.cjs.map +1 -0
- package/dist/{chunk-Z4RIRDU3.js → chunk-CINNK34N.js} +45 -32
- package/dist/chunk-CINNK34N.js.map +1 -0
- package/dist/{chunk-77JHIM4E.cjs → chunk-DNEURYF3.cjs} +348 -424
- package/dist/chunk-DNEURYF3.cjs.map +1 -0
- package/dist/{chunk-A5KDVZDL.cjs → chunk-DSNPWVIG.cjs} +9 -9
- package/dist/chunk-DSNPWVIG.cjs.map +1 -0
- package/dist/chunk-DZUJEN5N.cjs +32 -0
- package/dist/{chunk-EBVYYC2Q.cjs.map → chunk-DZUJEN5N.cjs.map} +1 -1
- package/dist/chunk-E7K4FTLN.cjs +273 -0
- package/dist/chunk-E7K4FTLN.cjs.map +1 -0
- package/dist/{chunk-MJMID7LX.cjs → chunk-ECFXGXWO.cjs} +609 -644
- package/dist/chunk-ECFXGXWO.cjs.map +1 -0
- package/dist/chunk-ET6UOTTU.cjs +154 -0
- package/dist/chunk-ET6UOTTU.cjs.map +1 -0
- package/dist/chunk-GGYKYORQ.cjs +2060 -0
- package/dist/chunk-GGYKYORQ.cjs.map +1 -0
- package/dist/{chunk-HLRWYUFN.js → chunk-GRBGQ2GE.js} +5 -5
- package/dist/{chunk-HLRWYUFN.js.map → chunk-GRBGQ2GE.js.map} +1 -1
- package/dist/{chunk-3VXXCPKX.js → chunk-H6CZGPZD.js} +334 -410
- package/dist/chunk-H6CZGPZD.js.map +1 -0
- package/dist/chunk-HDJFSJCK.js +2237 -0
- package/dist/chunk-HDJFSJCK.js.map +1 -0
- package/dist/{chunk-34ZCWSUA.js → chunk-I4CXL4SR.js} +6 -9
- package/dist/chunk-I4CXL4SR.js.map +1 -0
- package/dist/{chunk-3JX2Y3WH.cjs → chunk-IQO7ANVS.cjs} +18 -21
- package/dist/chunk-IQO7ANVS.cjs.map +1 -0
- package/dist/{chunk-GPWMM745.cjs → chunk-J7O6WENZ.cjs} +5 -5
- package/dist/{chunk-GPWMM745.cjs.map → chunk-J7O6WENZ.cjs.map} +1 -1
- package/dist/{chunk-PZUZNPFM.js → chunk-JJ5O45LH.js} +3 -4
- package/dist/chunk-JJ5O45LH.js.map +1 -0
- package/dist/chunk-JPGVRWWL.js +12385 -0
- package/dist/chunk-JPGVRWWL.js.map +1 -0
- package/dist/chunk-JUBFO5J3.js +15761 -0
- package/dist/chunk-JUBFO5J3.js.map +1 -0
- package/dist/{chunk-E3PG7G6E.js → chunk-JV2KH24V.js} +599 -633
- package/dist/chunk-JV2KH24V.js.map +1 -0
- package/dist/chunk-KEXGB7FK.cjs +29 -0
- package/dist/chunk-KEXGB7FK.cjs.map +1 -0
- package/dist/chunk-KIZIOFZC.js +265 -0
- package/dist/chunk-KIZIOFZC.js.map +1 -0
- package/dist/{chunk-UXG7PYML.js → chunk-KJ2SW6VA.js} +9 -9
- package/dist/chunk-KJ2SW6VA.js.map +1 -0
- package/dist/{chunk-TTELJD4F.js → chunk-L54GIUCB.js} +2 -2
- package/dist/chunk-L54GIUCB.js.map +1 -0
- package/dist/chunk-LWBQ4P4N.cjs +2240 -0
- package/dist/chunk-LWBQ4P4N.cjs.map +1 -0
- package/dist/{chunk-ABZOBBLL.cjs → chunk-MA7TEM62.cjs} +735 -562
- package/dist/chunk-MA7TEM62.cjs.map +1 -0
- package/dist/{chunk-TSNDVBUU.cjs → chunk-MR7ZWBL6.cjs} +2 -2
- package/dist/chunk-MR7ZWBL6.cjs.map +1 -0
- package/dist/chunk-MSWTA73A.cjs +15825 -0
- package/dist/chunk-MSWTA73A.cjs.map +1 -0
- package/dist/chunk-MV7KHWUT.js +2031 -0
- package/dist/chunk-MV7KHWUT.js.map +1 -0
- package/dist/{chunk-3NTOFNIU.js → chunk-OJNJA5ZI.js} +3 -3
- package/dist/{chunk-3NTOFNIU.js.map → chunk-OJNJA5ZI.js.map} +1 -1
- package/dist/chunk-QM5SRDJX.js +9022 -0
- package/dist/chunk-QM5SRDJX.js.map +1 -0
- package/dist/{chunk-WBAXXG34.cjs → chunk-QUKUN6NR.cjs} +32 -66
- package/dist/chunk-QUKUN6NR.cjs.map +1 -0
- package/dist/chunk-S6URFGCZ.js +27 -0
- package/dist/chunk-S6URFGCZ.js.map +1 -0
- package/dist/chunk-SVLMF4UZ.cjs +9033 -0
- package/dist/chunk-SVLMF4UZ.cjs.map +1 -0
- package/dist/{chunk-ZMELUU72.js → chunk-TQTAMPSC.js} +3 -3
- package/dist/chunk-TQTAMPSC.js.map +1 -0
- package/dist/{chunk-5NTO7S5I.cjs → chunk-TWH4PTDG.cjs} +2 -4
- package/dist/chunk-TWH4PTDG.cjs.map +1 -0
- package/dist/{chunk-WCHE6FJ7.js → chunk-UIZSWUKP.js} +15 -50
- package/dist/chunk-UIZSWUKP.js.map +1 -0
- package/dist/{chunk-BWGXM3D4.js → chunk-VOQ3ULMT.js} +712 -541
- package/dist/chunk-VOQ3ULMT.js.map +1 -0
- package/dist/{chunk-MCASUJWY.cjs → chunk-VOY2RXOC.cjs} +36 -59
- package/dist/chunk-VOY2RXOC.cjs.map +1 -0
- package/dist/{chunk-FHVFGVIO.js → chunk-W7UH2PWL.js} +189 -56
- package/dist/chunk-W7UH2PWL.js.map +1 -0
- package/dist/chunk-WM6CK2F3.cjs +674 -0
- package/dist/chunk-WM6CK2F3.cjs.map +1 -0
- package/dist/{chunk-PFXXH2RP.js → chunk-X7JMA3IY.js} +15 -15
- package/dist/chunk-X7JMA3IY.js.map +1 -0
- package/dist/{chunk-NR77P3TK.js → chunk-XEVG546F.js} +14 -37
- package/dist/chunk-XEVG546F.js.map +1 -0
- package/dist/{chunk-QFF5JUKT.cjs → chunk-Y63IFHEZ.cjs} +4 -4
- package/dist/chunk-Y63IFHEZ.cjs.map +1 -0
- package/dist/{chunk-B7V6NYWH.cjs → chunk-Y6ROD72V.cjs} +4 -4
- package/dist/{chunk-B7V6NYWH.cjs.map → chunk-Y6ROD72V.cjs.map} +1 -1
- package/dist/deployer/index.cjs +8 -6
- package/dist/deployer/index.cjs.map +1 -1
- package/dist/deployer/index.js +10 -1
- package/dist/deployer/index.js.map +1 -1
- package/dist/di/index.cjs +3 -3
- package/dist/di/index.d.ts +1 -1
- package/dist/di/index.js +1 -1
- package/dist/error/index.cjs +6 -6
- package/dist/error/index.d.ts +0 -1
- package/dist/error/index.d.ts.map +1 -1
- package/dist/error/index.js +1 -1
- package/dist/{scores → evals}/base.d.ts +20 -18
- package/dist/evals/base.d.ts.map +1 -0
- package/dist/{scores → evals}/base.test-utils.d.ts +25 -25
- package/dist/evals/base.test-utils.d.ts.map +1 -0
- package/dist/{scores → evals}/hooks.d.ts +3 -3
- package/dist/evals/hooks.d.ts.map +1 -0
- package/dist/evals/index.cjs +37 -0
- package/dist/evals/index.d.ts +4 -0
- package/dist/evals/index.d.ts.map +1 -0
- package/dist/evals/index.js +4 -0
- package/dist/{scores/run-experiment → evals/run}/index.d.ts +18 -18
- package/dist/evals/run/index.d.ts.map +1 -0
- package/dist/evals/run/scorerAccumulator.d.ts.map +1 -0
- package/dist/{scores → evals}/scoreTraces/index.cjs +79 -99
- package/dist/evals/scoreTraces/index.cjs.map +1 -0
- package/dist/evals/scoreTraces/index.d.ts.map +1 -0
- package/dist/{scores → evals}/scoreTraces/index.js +72 -92
- package/dist/evals/scoreTraces/index.js.map +1 -0
- package/dist/{scores → evals}/scoreTraces/scoreTraces.d.ts +2 -2
- package/dist/evals/scoreTraces/scoreTraces.d.ts.map +1 -0
- package/dist/{scores → evals}/scoreTraces/scoreTracesWorkflow.d.ts +11 -11
- package/dist/evals/scoreTraces/scoreTracesWorkflow.d.ts.map +1 -0
- package/dist/{scores → evals}/scoreTraces/utils.d.ts +7 -7
- package/dist/evals/scoreTraces/utils.d.ts.map +1 -0
- package/dist/{scores → evals}/types.d.ts +22 -22
- package/dist/evals/types.d.ts.map +1 -0
- package/dist/features/index.cjs +8 -0
- package/dist/features/index.cjs.map +1 -0
- package/dist/features/index.d.ts +17 -0
- package/dist/features/index.d.ts.map +1 -0
- package/dist/features/index.js +6 -0
- package/dist/features/index.js.map +1 -0
- package/dist/hooks/index.cjs +4 -4
- package/dist/hooks/index.d.ts +1 -27
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +1 -1
- package/dist/index.cjs +2 -340
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -18
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -113
- package/dist/index.js.map +1 -1
- package/dist/integration/index.cjs +87 -10
- package/dist/integration/index.cjs.map +1 -1
- package/dist/integration/index.js +88 -1
- package/dist/integration/index.js.map +1 -1
- package/dist/integration/integration.d.ts +3 -3
- package/dist/integration/integration.d.ts.map +1 -1
- package/dist/llm/index.cjs +7 -7
- package/dist/llm/index.d.ts +5 -6
- package/dist/llm/index.d.ts.map +1 -1
- package/dist/llm/index.js +1 -1
- package/dist/llm/model/base.types.d.ts +6 -7
- package/dist/llm/model/base.types.d.ts.map +1 -1
- package/dist/llm/model/gateways/constants.d.ts.map +1 -1
- package/dist/llm/model/gateways/models-dev.d.ts.map +1 -1
- package/dist/llm/model/model.d.ts +7 -7
- package/dist/llm/model/model.d.ts.map +1 -1
- package/dist/llm/model/model.loop.d.ts +1 -1
- package/dist/llm/model/model.loop.d.ts.map +1 -1
- package/dist/llm/model/model.loop.types.d.ts +3 -3
- package/dist/llm/model/model.loop.types.d.ts.map +1 -1
- package/dist/llm/model/provider-types.generated.d.ts +80 -17
- package/dist/llm/model/resolve-model.d.ts +8 -8
- package/dist/llm/model/shared.types.d.ts +2 -2
- package/dist/llm/model/shared.types.d.ts.map +1 -1
- package/dist/logger/constants.d.ts +1 -1
- package/dist/logger/default-logger.d.ts +2 -2
- package/dist/logger/default-logger.d.ts.map +1 -1
- package/dist/logger/index.cjs +11 -11
- package/dist/logger/index.js +2 -2
- package/dist/logger/logger.d.ts +4 -4
- package/dist/logger/logger.d.ts.map +1 -1
- package/dist/logger/multi-logger.d.ts +2 -2
- package/dist/logger/multi-logger.d.ts.map +1 -1
- package/dist/logger/transport.d.ts +3 -3
- package/dist/logger/transport.d.ts.map +1 -1
- package/dist/loop/index.cjs +2 -2
- package/dist/loop/index.js +1 -1
- package/dist/loop/loop.d.ts +1 -1
- package/dist/loop/loop.d.ts.map +1 -1
- package/dist/loop/network/index.d.ts +15 -15
- package/dist/loop/network/index.d.ts.map +1 -1
- package/dist/loop/test-utils/generateText.d.ts.map +1 -1
- package/dist/loop/test-utils/options.d.ts.map +1 -1
- package/dist/loop/test-utils/resultObject.d.ts.map +1 -1
- package/dist/loop/test-utils/streamObject.d.ts.map +1 -1
- package/dist/loop/types.d.ts +4 -7
- package/dist/loop/types.d.ts.map +1 -1
- package/dist/loop/workflows/agentic-execution/index.d.ts +55 -55
- package/dist/loop/workflows/agentic-execution/index.d.ts.map +1 -1
- package/dist/loop/workflows/agentic-execution/llm-execution-step.d.ts +38 -38
- package/dist/loop/workflows/agentic-execution/llm-execution-step.d.ts.map +1 -1
- package/dist/loop/workflows/agentic-execution/llm-mapping-step.d.ts +20 -20
- package/dist/loop/workflows/agentic-execution/llm-mapping-step.d.ts.map +1 -1
- package/dist/loop/workflows/agentic-execution/tool-call-step.d.ts +2 -2
- package/dist/loop/workflows/agentic-execution/tool-call-step.d.ts.map +1 -1
- package/dist/loop/workflows/agentic-loop/index.d.ts +55 -55
- package/dist/loop/workflows/agentic-loop/index.d.ts.map +1 -1
- package/dist/loop/workflows/schema.d.ts +19 -20
- package/dist/loop/workflows/schema.d.ts.map +1 -1
- package/dist/loop/workflows/stream.d.ts +1 -1
- package/dist/loop/workflows/stream.d.ts.map +1 -1
- package/dist/mastra/hooks.d.ts +2 -2
- package/dist/mastra/hooks.d.ts.map +1 -1
- package/dist/mastra/index.cjs +2 -2
- package/dist/mastra/index.d.ts +389 -180
- package/dist/mastra/index.d.ts.map +1 -1
- package/dist/mastra/index.js +1 -1
- package/dist/mcp/index.cjs +41 -4
- package/dist/mcp/index.cjs.map +1 -1
- package/dist/mcp/index.d.ts +6 -4
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +39 -2
- package/dist/mcp/index.js.map +1 -1
- package/dist/mcp/types.d.ts +0 -15
- package/dist/mcp/types.d.ts.map +1 -1
- package/dist/memory/index.cjs +327 -13
- package/dist/memory/index.cjs.map +1 -1
- package/dist/memory/index.d.ts +1 -0
- package/dist/memory/index.d.ts.map +1 -1
- package/dist/memory/index.js +327 -1
- package/dist/memory/index.js.map +1 -1
- package/dist/memory/memory.d.ts +33 -57
- package/dist/memory/memory.d.ts.map +1 -1
- package/dist/memory/mock.d.ts +61 -0
- package/dist/memory/mock.d.ts.map +1 -0
- package/dist/memory/types.d.ts +48 -45
- package/dist/memory/types.d.ts.map +1 -1
- package/dist/models-dev-DNBKXHT4.js +3 -0
- package/dist/{models-dev-4VGIWYS3.js.map → models-dev-DNBKXHT4.js.map} +1 -1
- package/dist/models-dev-YBEEQIX6.cjs +12 -0
- package/dist/{models-dev-AXZASLL2.cjs.map → models-dev-YBEEQIX6.cjs.map} +1 -1
- package/dist/netlify-7G2L5VSH.js +3 -0
- package/dist/{netlify-VJXBII33.js.map → netlify-7G2L5VSH.js.map} +1 -1
- package/dist/netlify-GWNGSIRZ.cjs +12 -0
- package/dist/{netlify-TX6V7SJJ.cjs.map → netlify-GWNGSIRZ.cjs.map} +1 -1
- package/dist/{ai-tracing → observability}/context.d.ts +5 -5
- package/dist/observability/context.d.ts.map +1 -0
- package/dist/observability/index.cjs +36 -0
- package/dist/observability/index.d.ts +11 -0
- package/dist/observability/index.d.ts.map +1 -0
- package/dist/observability/index.js +3 -0
- package/dist/observability/no-op.d.ts +22 -0
- package/dist/observability/no-op.d.ts.map +1 -0
- package/dist/observability/types/index.d.ts +2 -0
- package/dist/observability/types/index.d.ts.map +1 -0
- package/dist/{ai-tracing/types.d.ts → observability/types/tracing.d.ts} +161 -107
- package/dist/observability/types/tracing.d.ts.map +1 -0
- package/dist/observability/utils.d.ts +12 -0
- package/dist/observability/utils.d.ts.map +1 -0
- package/dist/processors/index.cjs +11 -11
- package/dist/processors/index.d.ts +10 -9
- package/dist/processors/index.d.ts.map +1 -1
- package/dist/processors/index.js +1 -1
- package/dist/processors/processors/batch-parts.d.ts +2 -1
- package/dist/processors/processors/batch-parts.d.ts.map +1 -1
- package/dist/processors/processors/language-detector.d.ts +6 -5
- package/dist/processors/processors/language-detector.d.ts.map +1 -1
- package/dist/processors/processors/moderation.d.ts +8 -7
- package/dist/processors/processors/moderation.d.ts.map +1 -1
- package/dist/processors/processors/pii-detector.d.ts +8 -7
- package/dist/processors/processors/pii-detector.d.ts.map +1 -1
- package/dist/processors/processors/prompt-injection-detector.d.ts +6 -5
- package/dist/processors/processors/prompt-injection-detector.d.ts.map +1 -1
- package/dist/processors/processors/structured-output.d.ts +3 -2
- package/dist/processors/processors/structured-output.d.ts.map +1 -1
- package/dist/processors/processors/system-prompt-scrubber.d.ts +6 -5
- package/dist/processors/processors/system-prompt-scrubber.d.ts.map +1 -1
- package/dist/processors/processors/token-limiter.d.ts +5 -4
- package/dist/processors/processors/token-limiter.d.ts.map +1 -1
- package/dist/processors/processors/unicode-normalizer.d.ts +5 -4
- package/dist/processors/processors/unicode-normalizer.d.ts.map +1 -1
- package/dist/processors/runner.d.ts +5 -5
- package/dist/processors/runner.d.ts.map +1 -1
- package/dist/provider-registry.json +175 -42
- package/dist/{registry-generator-DXRSYYYT.js → registry-generator-H4YNODDH.js} +2 -2
- package/dist/{registry-generator-DXRSYYYT.js.map → registry-generator-H4YNODDH.js.map} +1 -1
- package/dist/{registry-generator-6WVOHM2L.cjs → registry-generator-MK63POJO.cjs} +2 -2
- package/dist/{registry-generator-6WVOHM2L.cjs.map → registry-generator-MK63POJO.cjs.map} +1 -1
- package/dist/relevance/index.cjs +47 -13
- package/dist/relevance/index.cjs.map +1 -1
- package/dist/relevance/index.d.ts +0 -1
- package/dist/relevance/index.d.ts.map +1 -1
- package/dist/relevance/index.js +49 -1
- package/dist/relevance/index.js.map +1 -1
- package/dist/relevance/mastra-agent/index.d.ts.map +1 -1
- package/dist/request-context/index.cjs +12 -0
- package/dist/{runtime-context → request-context}/index.d.ts +1 -1
- package/dist/{runtime-context → request-context}/index.d.ts.map +1 -1
- package/dist/request-context/index.js +3 -0
- package/dist/server/auth.d.ts.map +1 -1
- package/dist/server/index.cjs +9 -25
- package/dist/server/index.cjs.map +1 -1
- package/dist/server/index.js +4 -21
- package/dist/server/index.js.map +1 -1
- package/dist/server/types.d.ts +3 -3
- package/dist/server/types.d.ts.map +1 -1
- package/dist/storage/base.d.ts +75 -143
- package/dist/storage/base.d.ts.map +1 -1
- package/dist/storage/constants.d.ts +3 -4
- package/dist/storage/constants.d.ts.map +1 -1
- package/dist/storage/domains/index.d.ts +0 -2
- package/dist/storage/domains/index.d.ts.map +1 -1
- package/dist/storage/domains/memory/base.d.ts +19 -56
- package/dist/storage/domains/memory/base.d.ts.map +1 -1
- package/dist/storage/domains/memory/inmemory.d.ts +15 -35
- package/dist/storage/domains/memory/inmemory.d.ts.map +1 -1
- package/dist/storage/domains/observability/base.d.ts +24 -24
- package/dist/storage/domains/observability/base.d.ts.map +1 -1
- package/dist/storage/domains/observability/inmemory.d.ts +18 -18
- package/dist/storage/domains/observability/inmemory.d.ts.map +1 -1
- package/dist/storage/domains/operations/inmemory.d.ts.map +1 -1
- package/dist/storage/domains/scores/base.d.ts +5 -5
- package/dist/storage/domains/scores/base.d.ts.map +1 -1
- package/dist/storage/domains/scores/inmemory.d.ts +5 -5
- package/dist/storage/domains/scores/inmemory.d.ts.map +1 -1
- package/dist/storage/domains/workflows/base.d.ts +4 -11
- package/dist/storage/domains/workflows/base.d.ts.map +1 -1
- package/dist/storage/domains/workflows/inmemory.d.ts +4 -11
- package/dist/storage/domains/workflows/inmemory.d.ts.map +1 -1
- package/dist/storage/index.cjs +74 -1775
- package/dist/storage/index.cjs.map +1 -1
- package/dist/storage/index.js +1 -1744
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/mock.d.ts +35 -92
- package/dist/storage/mock.d.ts.map +1 -1
- package/dist/storage/types.d.ts +77 -75
- package/dist/storage/types.d.ts.map +1 -1
- package/dist/stream/MastraAgentNetworkStream.d.ts +4 -2
- package/dist/stream/MastraAgentNetworkStream.d.ts.map +1 -1
- package/dist/stream/MastraWorkflowStream.d.ts +1 -1
- package/dist/stream/MastraWorkflowStream.d.ts.map +1 -1
- package/dist/stream/RunOutput.d.ts +1 -0
- package/dist/stream/RunOutput.d.ts.map +1 -1
- package/dist/stream/aisdk/v4/input.d.ts +1 -1
- package/dist/stream/aisdk/v4/input.d.ts.map +1 -1
- package/dist/stream/aisdk/v5/execute.d.ts +4 -11
- package/dist/stream/aisdk/v5/execute.d.ts.map +1 -1
- package/dist/stream/aisdk/v5/output.d.ts +1 -1
- package/dist/stream/aisdk/v5/output.d.ts.map +1 -1
- package/dist/stream/base/output.d.ts +1 -1
- package/dist/stream/base/output.d.ts.map +1 -1
- package/dist/stream/index.cjs +11 -11
- package/dist/stream/index.d.ts +1 -1
- package/dist/stream/index.d.ts.map +1 -1
- package/dist/stream/index.js +2 -2
- package/dist/stream/types.d.ts +2 -6
- package/dist/stream/types.d.ts.map +1 -1
- package/dist/test-utils/llm-mock.cjs +8 -8
- package/dist/test-utils/llm-mock.cjs.map +1 -1
- package/dist/test-utils/llm-mock.d.ts +1 -1
- package/dist/test-utils/llm-mock.d.ts.map +1 -1
- package/dist/test-utils/llm-mock.js +3 -3
- package/dist/test-utils/llm-mock.js.map +1 -1
- package/dist/tools/index.cjs +4 -4
- package/dist/tools/index.js +1 -1
- package/dist/tools/is-vercel-tool.cjs +2 -2
- package/dist/tools/is-vercel-tool.js +1 -1
- package/dist/tools/tool-builder/builder.d.ts +3 -71
- package/dist/tools/tool-builder/builder.d.ts.map +1 -1
- package/dist/tools/tool.d.ts +25 -25
- package/dist/tools/tool.d.ts.map +1 -1
- package/dist/tools/types.d.ts +102 -11
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/tools/validation.d.ts +4 -3
- package/dist/tools/validation.d.ts.map +1 -1
- package/dist/tts/index.cjs +12 -6
- package/dist/tts/index.cjs.map +1 -1
- package/dist/tts/index.d.ts +0 -1
- package/dist/tts/index.d.ts.map +1 -1
- package/dist/tts/index.js +14 -1
- package/dist/tts/index.js.map +1 -1
- package/dist/types/dynamic-argument.d.ts +3 -3
- package/dist/utils/fetchWithRetry.d.ts +9 -0
- package/dist/utils/fetchWithRetry.d.ts.map +1 -0
- package/dist/utils.cjs +33 -17
- package/dist/utils.d.ts +39 -6
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +1 -1
- package/dist/vector/embed.d.ts +1 -1
- package/dist/vector/embed.d.ts.map +1 -1
- package/dist/vector/index.cjs +80 -8
- package/dist/vector/index.cjs.map +1 -1
- package/dist/vector/index.js +80 -1
- package/dist/vector/index.js.map +1 -1
- package/dist/vector/vector.d.ts +5 -2
- package/dist/vector/vector.d.ts.map +1 -1
- package/dist/voice/composite-voice.d.ts +1 -7
- package/dist/voice/composite-voice.d.ts.map +1 -1
- package/dist/voice/index.cjs +4 -4
- package/dist/voice/index.js +1 -1
- package/dist/voice/voice.d.ts +0 -1
- package/dist/voice/voice.d.ts.map +1 -1
- package/dist/workflows/default.d.ts +35 -43
- package/dist/workflows/default.d.ts.map +1 -1
- package/dist/workflows/evented/execution-engine.d.ts +5 -3
- package/dist/workflows/evented/execution-engine.d.ts.map +1 -1
- package/dist/workflows/evented/index.cjs +10 -10
- package/dist/workflows/evented/index.js +1 -1
- package/dist/workflows/evented/step-executor.d.ts +15 -13
- package/dist/workflows/evented/step-executor.d.ts.map +1 -1
- package/dist/workflows/evented/workflow-event-processor/index.d.ts +5 -5
- package/dist/workflows/evented/workflow-event-processor/index.d.ts.map +1 -1
- package/dist/workflows/evented/workflow-event-processor/loop.d.ts +3 -3
- package/dist/workflows/evented/workflow-event-processor/loop.d.ts.map +1 -1
- package/dist/workflows/evented/workflow-event-processor/parallel.d.ts +2 -2
- package/dist/workflows/evented/workflow-event-processor/sleep.d.ts +2 -2
- package/dist/workflows/evented/workflow-event-processor/utils.d.ts +2 -7
- package/dist/workflows/evented/workflow-event-processor/utils.d.ts.map +1 -1
- package/dist/workflows/evented/workflow.d.ts +11 -14
- package/dist/workflows/evented/workflow.d.ts.map +1 -1
- package/dist/workflows/execution-engine.d.ts +6 -6
- package/dist/workflows/execution-engine.d.ts.map +1 -1
- package/dist/workflows/index.cjs +22 -14
- package/dist/workflows/index.js +1 -1
- package/dist/workflows/step.d.ts +5 -5
- package/dist/workflows/step.d.ts.map +1 -1
- package/dist/workflows/types.d.ts +21 -44
- package/dist/workflows/types.d.ts.map +1 -1
- package/dist/workflows/utils.d.ts +14 -0
- package/dist/workflows/utils.d.ts.map +1 -1
- package/dist/workflows/workflow.d.ts +74 -64
- package/dist/workflows/workflow.d.ts.map +1 -1
- package/evals/scoreTraces.d.ts +1 -0
- package/evals.d.ts +1 -0
- package/features.d.ts +1 -0
- package/observability.d.ts +1 -0
- package/package.json +49 -64
- package/request-context.d.ts +1 -0
- package/src/_types/ai-sdk.types.d.ts +4705 -0
- package/src/llm/model/provider-types.generated.d.ts +80 -17
- package/agent/input-processor/processors.d.ts +0 -1
- package/ai-tracing.d.ts +0 -1
- package/dist/agent/index.warning.d.ts +0 -13
- package/dist/agent/index.warning.d.ts.map +0 -1
- package/dist/agent/input-processor/index.cjs +0 -28
- package/dist/agent/input-processor/index.d.ts +0 -10
- package/dist/agent/input-processor/index.d.ts.map +0 -1
- package/dist/agent/input-processor/index.js +0 -3
- package/dist/agent/input-processor/processors/index.d.ts +0 -6
- package/dist/agent/input-processor/processors/index.d.ts.map +0 -1
- package/dist/agent/input-processor/processors/language-detector.d.ts +0 -18
- package/dist/agent/input-processor/processors/language-detector.d.ts.map +0 -1
- package/dist/agent/input-processor/processors/moderation.d.ts +0 -18
- package/dist/agent/input-processor/processors/moderation.d.ts.map +0 -1
- package/dist/agent/input-processor/processors/pii-detector.d.ts +0 -18
- package/dist/agent/input-processor/processors/pii-detector.d.ts.map +0 -1
- package/dist/agent/input-processor/processors/prompt-injection-detector.d.ts +0 -18
- package/dist/agent/input-processor/processors/prompt-injection-detector.d.ts.map +0 -1
- package/dist/agent/input-processor/processors/unicode-normalizer.d.ts +0 -18
- package/dist/agent/input-processor/processors/unicode-normalizer.d.ts.map +0 -1
- package/dist/ai-tracing/context.d.ts.map +0 -1
- package/dist/ai-tracing/exporters/base.d.ts +0 -111
- package/dist/ai-tracing/exporters/base.d.ts.map +0 -1
- package/dist/ai-tracing/exporters/cloud.d.ts +0 -30
- package/dist/ai-tracing/exporters/cloud.d.ts.map +0 -1
- package/dist/ai-tracing/exporters/console.d.ts +0 -10
- package/dist/ai-tracing/exporters/console.d.ts.map +0 -1
- package/dist/ai-tracing/exporters/default.d.ts +0 -98
- package/dist/ai-tracing/exporters/default.d.ts.map +0 -1
- package/dist/ai-tracing/exporters/index.d.ts +0 -9
- package/dist/ai-tracing/exporters/index.d.ts.map +0 -1
- package/dist/ai-tracing/index.cjs +0 -148
- package/dist/ai-tracing/index.d.ts +0 -13
- package/dist/ai-tracing/index.d.ts.map +0 -1
- package/dist/ai-tracing/index.js +0 -3
- package/dist/ai-tracing/model-tracing.d.ts +0 -63
- package/dist/ai-tracing/model-tracing.d.ts.map +0 -1
- package/dist/ai-tracing/registry.d.ts +0 -51
- package/dist/ai-tracing/registry.d.ts.map +0 -1
- package/dist/ai-tracing/span_processors/index.d.ts +0 -5
- package/dist/ai-tracing/span_processors/index.d.ts.map +0 -1
- package/dist/ai-tracing/span_processors/sensitive-data-filter.d.ts +0 -85
- package/dist/ai-tracing/span_processors/sensitive-data-filter.d.ts.map +0 -1
- package/dist/ai-tracing/spans/base.d.ts +0 -65
- package/dist/ai-tracing/spans/base.d.ts.map +0 -1
- package/dist/ai-tracing/spans/default.d.ts +0 -13
- package/dist/ai-tracing/spans/default.d.ts.map +0 -1
- package/dist/ai-tracing/spans/index.d.ts +0 -7
- package/dist/ai-tracing/spans/index.d.ts.map +0 -1
- package/dist/ai-tracing/spans/no-op.d.ts +0 -15
- package/dist/ai-tracing/spans/no-op.d.ts.map +0 -1
- package/dist/ai-tracing/tracers/base.d.ts +0 -105
- package/dist/ai-tracing/tracers/base.d.ts.map +0 -1
- package/dist/ai-tracing/tracers/default.d.ts +0 -7
- package/dist/ai-tracing/tracers/default.d.ts.map +0 -1
- package/dist/ai-tracing/tracers/index.d.ts +0 -6
- package/dist/ai-tracing/tracers/index.d.ts.map +0 -1
- package/dist/ai-tracing/types.d.ts.map +0 -1
- package/dist/ai-tracing/utils.d.ts +0 -68
- package/dist/ai-tracing/utils.d.ts.map +0 -1
- package/dist/base.warning.d.ts +0 -9
- package/dist/base.warning.d.ts.map +0 -1
- package/dist/bundler/index.warning.d.ts +0 -9
- package/dist/bundler/index.warning.d.ts.map +0 -1
- package/dist/chunk-253FBVD4.cjs +0 -1303
- package/dist/chunk-253FBVD4.cjs.map +0 -1
- package/dist/chunk-2B3VLGTH.js +0 -87
- package/dist/chunk-2B3VLGTH.js.map +0 -1
- package/dist/chunk-34ZCWSUA.js.map +0 -1
- package/dist/chunk-3HXBPDKN.js +0 -105
- package/dist/chunk-3JX2Y3WH.cjs.map +0 -1
- package/dist/chunk-3VXXCPKX.js.map +0 -1
- package/dist/chunk-4R2TBRS7.cjs +0 -191
- package/dist/chunk-4R2TBRS7.cjs.map +0 -1
- package/dist/chunk-5NTO7S5I.cjs.map +0 -1
- package/dist/chunk-6C7VGVK4.js +0 -267
- package/dist/chunk-6C7VGVK4.js.map +0 -1
- package/dist/chunk-6KOL2B3A.cjs +0 -75
- package/dist/chunk-6KOL2B3A.cjs.map +0 -1
- package/dist/chunk-6TEQIYXV.cjs.map +0 -1
- package/dist/chunk-6VOPKVYH.cjs +0 -57
- package/dist/chunk-6VOPKVYH.cjs.map +0 -1
- package/dist/chunk-77JHIM4E.cjs.map +0 -1
- package/dist/chunk-7J3XX4AO.cjs.map +0 -1
- package/dist/chunk-A5KDVZDL.cjs.map +0 -1
- package/dist/chunk-ABZOBBLL.cjs.map +0 -1
- package/dist/chunk-AQGLVU53.cjs +0 -603
- package/dist/chunk-AQGLVU53.cjs.map +0 -1
- package/dist/chunk-BLUDYAPI.js +0 -596
- package/dist/chunk-BLUDYAPI.js.map +0 -1
- package/dist/chunk-BWGXM3D4.js.map +0 -1
- package/dist/chunk-C7OVZMPW.cjs +0 -91
- package/dist/chunk-C7OVZMPW.cjs.map +0 -1
- package/dist/chunk-DMBN72QF.cjs +0 -39
- package/dist/chunk-DMBN72QF.cjs.map +0 -1
- package/dist/chunk-DTTOVV72.js +0 -2880
- package/dist/chunk-DTTOVV72.js.map +0 -1
- package/dist/chunk-E3PG7G6E.js.map +0 -1
- package/dist/chunk-EBVYYC2Q.cjs +0 -111
- package/dist/chunk-FHVFGVIO.js.map +0 -1
- package/dist/chunk-GB5BIA4V.js +0 -167
- package/dist/chunk-GB5BIA4V.js.map +0 -1
- package/dist/chunk-HEQTUMUA.cjs +0 -271
- package/dist/chunk-HEQTUMUA.cjs.map +0 -1
- package/dist/chunk-HF3GZRFP.cjs +0 -9
- package/dist/chunk-HF3GZRFP.cjs.map +0 -1
- package/dist/chunk-JVV5LREI.js +0 -431
- package/dist/chunk-JVV5LREI.js.map +0 -1
- package/dist/chunk-KAEQISOW.js.map +0 -1
- package/dist/chunk-KDX3ZMQ2.js +0 -12
- package/dist/chunk-KDX3ZMQ2.js.map +0 -1
- package/dist/chunk-LG5B3KIW.js +0 -1215
- package/dist/chunk-LG5B3KIW.js.map +0 -1
- package/dist/chunk-LZUSZT7R.cjs +0 -170
- package/dist/chunk-LZUSZT7R.cjs.map +0 -1
- package/dist/chunk-MCASUJWY.cjs.map +0 -1
- package/dist/chunk-MJMID7LX.cjs.map +0 -1
- package/dist/chunk-MKCC5K77.js +0 -90
- package/dist/chunk-MKCC5K77.js.map +0 -1
- package/dist/chunk-NPNGPMT2.js +0 -39
- package/dist/chunk-NPNGPMT2.js.map +0 -1
- package/dist/chunk-NR77P3TK.js.map +0 -1
- package/dist/chunk-NUAURT4I.cjs +0 -82
- package/dist/chunk-NUAURT4I.cjs.map +0 -1
- package/dist/chunk-OIT3PCWA.js +0 -72
- package/dist/chunk-OIT3PCWA.js.map +0 -1
- package/dist/chunk-P35FNLTQ.cjs +0 -2936
- package/dist/chunk-P35FNLTQ.cjs.map +0 -1
- package/dist/chunk-PFXXH2RP.js.map +0 -1
- package/dist/chunk-PZUZNPFM.js.map +0 -1
- package/dist/chunk-QFF5JUKT.cjs.map +0 -1
- package/dist/chunk-RKXWLG33.js +0 -7
- package/dist/chunk-RKXWLG33.js.map +0 -1
- package/dist/chunk-ROS5CMJS.cjs.map +0 -1
- package/dist/chunk-SJMKDSRF.js +0 -179
- package/dist/chunk-SJMKDSRF.js.map +0 -1
- package/dist/chunk-SSULK22X.cjs +0 -14
- package/dist/chunk-SSULK22X.cjs.map +0 -1
- package/dist/chunk-TSNDVBUU.cjs.map +0 -1
- package/dist/chunk-TTELJD4F.js.map +0 -1
- package/dist/chunk-TX4TTPYJ.cjs +0 -436
- package/dist/chunk-TX4TTPYJ.cjs.map +0 -1
- package/dist/chunk-UXG7PYML.js.map +0 -1
- package/dist/chunk-UZKIGB7M.cjs.map +0 -1
- package/dist/chunk-VF676YCO.cjs +0 -150
- package/dist/chunk-VF676YCO.cjs.map +0 -1
- package/dist/chunk-VQASQG5D.js +0 -55
- package/dist/chunk-VQASQG5D.js.map +0 -1
- package/dist/chunk-WBAXXG34.cjs.map +0 -1
- package/dist/chunk-WCHE6FJ7.js.map +0 -1
- package/dist/chunk-WM4RO23J.js +0 -145
- package/dist/chunk-WM4RO23J.js.map +0 -1
- package/dist/chunk-Z4RIRDU3.js.map +0 -1
- package/dist/chunk-ZABG3SZ2.cjs +0 -93
- package/dist/chunk-ZABG3SZ2.cjs.map +0 -1
- package/dist/chunk-ZISECZZO.js +0 -72
- package/dist/chunk-ZISECZZO.js.map +0 -1
- package/dist/chunk-ZMELUU72.js.map +0 -1
- package/dist/deployer/index.warning.d.ts +0 -9
- package/dist/deployer/index.warning.d.ts.map +0 -1
- package/dist/eval/evaluation.d.ts +0 -14
- package/dist/eval/evaluation.d.ts.map +0 -1
- package/dist/eval/index.cjs +0 -16
- package/dist/eval/index.d.ts +0 -4
- package/dist/eval/index.d.ts.map +0 -1
- package/dist/eval/index.js +0 -3
- package/dist/eval/metric.d.ts +0 -8
- package/dist/eval/metric.d.ts.map +0 -1
- package/dist/eval/types.d.ts +0 -9
- package/dist/eval/types.d.ts.map +0 -1
- package/dist/integration/index.warning.d.ts +0 -3
- package/dist/integration/index.warning.d.ts.map +0 -1
- package/dist/integration/integration.warning.d.ts +0 -5
- package/dist/integration/integration.warning.d.ts.map +0 -1
- package/dist/integration/openapi-toolset.warning.d.ts +0 -5
- package/dist/integration/openapi-toolset.warning.d.ts.map +0 -1
- package/dist/loop/telemetry/index.d.ts +0 -36
- package/dist/loop/telemetry/index.d.ts.map +0 -1
- package/dist/loop/telemetry/noop.d.ts +0 -3
- package/dist/loop/telemetry/noop.d.ts.map +0 -1
- package/dist/loop/test-utils/mockTracer.d.ts +0 -47
- package/dist/loop/test-utils/mockTracer.d.ts.map +0 -1
- package/dist/loop/test-utils/telemetry.d.ts +0 -6
- package/dist/loop/test-utils/telemetry.d.ts.map +0 -1
- package/dist/memory/index.warning.d.ts +0 -6
- package/dist/memory/index.warning.d.ts.map +0 -1
- package/dist/models-dev-4VGIWYS3.js +0 -3
- package/dist/models-dev-AXZASLL2.cjs +0 -12
- package/dist/netlify-TX6V7SJJ.cjs +0 -12
- package/dist/netlify-VJXBII33.js +0 -3
- package/dist/relevance/cohere/index.d.ts +0 -9
- package/dist/relevance/cohere/index.d.ts.map +0 -1
- package/dist/runtime-context/index.cjs +0 -12
- package/dist/runtime-context/index.js +0 -3
- package/dist/scores/base.d.ts.map +0 -1
- package/dist/scores/base.test-utils.d.ts.map +0 -1
- package/dist/scores/hooks.d.ts.map +0 -1
- package/dist/scores/index.cjs +0 -37
- package/dist/scores/index.cjs.map +0 -1
- package/dist/scores/index.d.ts +0 -4
- package/dist/scores/index.d.ts.map +0 -1
- package/dist/scores/index.js +0 -4
- package/dist/scores/index.js.map +0 -1
- package/dist/scores/run-experiment/index.d.ts.map +0 -1
- package/dist/scores/run-experiment/scorerAccumulator.d.ts.map +0 -1
- package/dist/scores/scoreTraces/index.cjs.map +0 -1
- package/dist/scores/scoreTraces/index.d.ts.map +0 -1
- package/dist/scores/scoreTraces/index.js.map +0 -1
- package/dist/scores/scoreTraces/scoreTraces.d.ts.map +0 -1
- package/dist/scores/scoreTraces/scoreTracesWorkflow.d.ts.map +0 -1
- package/dist/scores/scoreTraces/utils.d.ts.map +0 -1
- package/dist/scores/types.d.ts.map +0 -1
- package/dist/storage/base.warning.d.ts +0 -8
- package/dist/storage/base.warning.d.ts.map +0 -1
- package/dist/storage/domains/legacy-evals/base.d.ts +0 -13
- package/dist/storage/domains/legacy-evals/base.d.ts.map +0 -1
- package/dist/storage/domains/legacy-evals/index.d.ts +0 -2
- package/dist/storage/domains/legacy-evals/index.d.ts.map +0 -1
- package/dist/storage/domains/legacy-evals/inmemory.d.ts +0 -17
- package/dist/storage/domains/legacy-evals/inmemory.d.ts.map +0 -1
- package/dist/storage/domains/traces/base.d.ts +0 -14
- package/dist/storage/domains/traces/base.d.ts.map +0 -1
- package/dist/storage/domains/traces/index.d.ts +0 -3
- package/dist/storage/domains/traces/index.d.ts.map +0 -1
- package/dist/storage/domains/traces/inmemory.d.ts +0 -22
- package/dist/storage/domains/traces/inmemory.d.ts.map +0 -1
- package/dist/storage/index.warning.d.ts +0 -3
- package/dist/storage/index.warning.d.ts.map +0 -1
- package/dist/telemetry/composite-exporter.d.ts +0 -10
- package/dist/telemetry/composite-exporter.d.ts.map +0 -1
- package/dist/telemetry/index.cjs +0 -32
- package/dist/telemetry/index.cjs.map +0 -1
- package/dist/telemetry/index.d.ts +0 -6
- package/dist/telemetry/index.d.ts.map +0 -1
- package/dist/telemetry/index.js +0 -3
- package/dist/telemetry/index.js.map +0 -1
- package/dist/telemetry/otel-vendor.cjs +0 -105
- package/dist/telemetry/otel-vendor.cjs.map +0 -1
- package/dist/telemetry/otel-vendor.d.ts +0 -11
- package/dist/telemetry/otel-vendor.d.ts.map +0 -1
- package/dist/telemetry/otel-vendor.js +0 -59
- package/dist/telemetry/otel-vendor.js.map +0 -1
- package/dist/telemetry/storage-exporter.d.ts +0 -21
- package/dist/telemetry/storage-exporter.d.ts.map +0 -1
- package/dist/telemetry/telemetry.d.ts +0 -59
- package/dist/telemetry/telemetry.d.ts.map +0 -1
- package/dist/telemetry/telemetry.decorators.d.ts +0 -15
- package/dist/telemetry/telemetry.decorators.d.ts.map +0 -1
- package/dist/telemetry/types.d.ts +0 -74
- package/dist/telemetry/types.d.ts.map +0 -1
- package/dist/telemetry/utility.d.ts +0 -15
- package/dist/telemetry/utility.d.ts.map +0 -1
- package/dist/tools/index.warning.d.ts +0 -8
- package/dist/tools/index.warning.d.ts.map +0 -1
- package/dist/tts/index.warning.d.ts +0 -7
- package/dist/tts/index.warning.d.ts.map +0 -1
- package/dist/vector/index.warning.d.ts +0 -6
- package/dist/vector/index.warning.d.ts.map +0 -1
- package/dist/workflows/index.warning.d.ts +0 -6
- package/dist/workflows/index.warning.d.ts.map +0 -1
- package/dist/workflows/legacy/index.cjs +0 -92
- package/dist/workflows/legacy/index.cjs.map +0 -1
- package/dist/workflows/legacy/index.d.ts +0 -5
- package/dist/workflows/legacy/index.d.ts.map +0 -1
- package/dist/workflows/legacy/index.js +0 -3
- package/dist/workflows/legacy/index.js.map +0 -1
- package/dist/workflows/legacy/machine.d.ts +0 -386
- package/dist/workflows/legacy/machine.d.ts.map +0 -1
- package/dist/workflows/legacy/step.d.ts +0 -15
- package/dist/workflows/legacy/step.d.ts.map +0 -1
- package/dist/workflows/legacy/types.d.ts +0 -397
- package/dist/workflows/legacy/types.d.ts.map +0 -1
- package/dist/workflows/legacy/utils.d.ts +0 -68
- package/dist/workflows/legacy/utils.d.ts.map +0 -1
- package/dist/workflows/legacy/workflow-instance.d.ts +0 -97
- package/dist/workflows/legacy/workflow-instance.d.ts.map +0 -1
- package/dist/workflows/legacy/workflow.d.ts +0 -109
- package/dist/workflows/legacy/workflow.d.ts.map +0 -1
- package/dist/workflows/workflow.warning.d.ts +0 -9
- package/dist/workflows/workflow.warning.d.ts.map +0 -1
- package/eval.d.ts +0 -1
- package/runtime-context.d.ts +0 -1
- package/scores/scoreTraces.d.ts +0 -1
- package/scores.d.ts +0 -1
- package/telemetry/otel-vendor.d.ts +0 -1
- package/telemetry.d.ts +0 -1
- package/workflows/legacy.d.ts +0 -1
- /package/dist/agent/{input-processor → message-list}/index.cjs.map +0 -0
- /package/dist/agent/{input-processor → message-list}/index.js.map +0 -0
- /package/dist/{ai-tracing → evals}/index.cjs.map +0 -0
- /package/dist/{ai-tracing → evals}/index.js.map +0 -0
- /package/dist/{scores/run-experiment → evals/run}/scorerAccumulator.d.ts +0 -0
- /package/dist/{scores → evals}/scoreTraces/index.d.ts +0 -0
- /package/dist/{eval → observability}/index.cjs.map +0 -0
- /package/dist/{eval → observability}/index.js.map +0 -0
- /package/dist/{runtime-context → request-context}/index.cjs.map +0 -0
- /package/dist/{runtime-context → request-context}/index.js.map +0 -0
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
5
|
-
var
|
|
6
|
-
var crypto = require('crypto');
|
|
7
|
-
var AIV4 = require('ai');
|
|
3
|
+
var chunkSVLMF4UZ_cjs = require('./chunk-SVLMF4UZ.cjs');
|
|
4
|
+
var chunkTWH4PTDG_cjs = require('./chunk-TWH4PTDG.cjs');
|
|
5
|
+
var uuid = require('@lukeed/uuid');
|
|
8
6
|
var AIV5 = require('ai-v5');
|
|
9
|
-
var
|
|
7
|
+
var providerUtilsV5 = require('@ai-sdk/provider-utils-v5');
|
|
10
8
|
var zod = require('zod');
|
|
11
9
|
|
|
12
10
|
function _interopNamespace(e) {
|
|
@@ -27,7 +25,6 @@ function _interopNamespace(e) {
|
|
|
27
25
|
return Object.freeze(n);
|
|
28
26
|
}
|
|
29
27
|
|
|
30
|
-
var AIV4__namespace = /*#__PURE__*/_interopNamespace(AIV4);
|
|
31
28
|
var AIV5__namespace = /*#__PURE__*/_interopNamespace(AIV5);
|
|
32
29
|
|
|
33
30
|
var DefaultGeneratedFile = class {
|
|
@@ -93,7 +90,7 @@ function convertToDataContent(content) {
|
|
|
93
90
|
if (content instanceof URL && content.protocol === "data:") {
|
|
94
91
|
const { mediaType: dataUrlMediaType, base64Content } = splitDataUrl(content.toString());
|
|
95
92
|
if (dataUrlMediaType == null || base64Content == null) {
|
|
96
|
-
throw new
|
|
93
|
+
throw new chunkTWH4PTDG_cjs.MastraError({
|
|
97
94
|
id: "INVALID_DATA_URL_FORMAT",
|
|
98
95
|
text: `Invalid data URL format in content ${content.toString()}`,
|
|
99
96
|
domain: "LLM" /* LLM */,
|
|
@@ -606,14 +603,53 @@ function convertDataContentToBase64String(content) {
|
|
|
606
603
|
return content;
|
|
607
604
|
}
|
|
608
605
|
if (content instanceof ArrayBuffer) {
|
|
609
|
-
return
|
|
606
|
+
return chunkSVLMF4UZ_cjs.convertUint8ArrayToBase64(new Uint8Array(content));
|
|
607
|
+
}
|
|
608
|
+
return chunkSVLMF4UZ_cjs.convertUint8ArrayToBase64(content);
|
|
609
|
+
}
|
|
610
|
+
|
|
611
|
+
// src/utils/fetchWithRetry.ts
|
|
612
|
+
async function fetchWithRetry(url, options = {}, maxRetries = 3) {
|
|
613
|
+
let retryCount = 0;
|
|
614
|
+
let lastError = null;
|
|
615
|
+
while (retryCount < maxRetries) {
|
|
616
|
+
try {
|
|
617
|
+
const response = await fetch(url, options);
|
|
618
|
+
if (!response.ok) {
|
|
619
|
+
if (response.status >= 400 && response.status < 500) {
|
|
620
|
+
throw new Error(`Request failed with status: ${response.status} ${response.statusText}`);
|
|
621
|
+
}
|
|
622
|
+
lastError = new Error(`Request failed with status: ${response.status} ${response.statusText}`);
|
|
623
|
+
retryCount++;
|
|
624
|
+
if (retryCount >= maxRetries) {
|
|
625
|
+
throw lastError;
|
|
626
|
+
}
|
|
627
|
+
const delay = Math.min(1e3 * Math.pow(2, retryCount), 1e4);
|
|
628
|
+
await new Promise((resolve) => setTimeout(resolve, delay));
|
|
629
|
+
continue;
|
|
630
|
+
}
|
|
631
|
+
return response;
|
|
632
|
+
} catch (error) {
|
|
633
|
+
lastError = error instanceof Error ? error : new Error(String(error));
|
|
634
|
+
if (lastError.message.includes("status: 4")) {
|
|
635
|
+
throw lastError;
|
|
636
|
+
}
|
|
637
|
+
retryCount++;
|
|
638
|
+
if (retryCount >= maxRetries) {
|
|
639
|
+
break;
|
|
640
|
+
}
|
|
641
|
+
const delay = Math.min(1e3 * Math.pow(2, retryCount), 1e4);
|
|
642
|
+
await new Promise((resolve) => setTimeout(resolve, delay));
|
|
643
|
+
}
|
|
610
644
|
}
|
|
611
|
-
|
|
645
|
+
throw lastError || new Error("Request failed after multiple retry attempts");
|
|
612
646
|
}
|
|
647
|
+
|
|
648
|
+
// src/agent/message-list/prompt/download-assets.ts
|
|
613
649
|
var downloadFromUrl = async ({ url, downloadRetries }) => {
|
|
614
650
|
const urlText = url.toString();
|
|
615
651
|
try {
|
|
616
|
-
const response = await
|
|
652
|
+
const response = await fetchWithRetry(
|
|
617
653
|
urlText,
|
|
618
654
|
{
|
|
619
655
|
method: "GET"
|
|
@@ -621,7 +657,7 @@ var downloadFromUrl = async ({ url, downloadRetries }) => {
|
|
|
621
657
|
downloadRetries
|
|
622
658
|
);
|
|
623
659
|
if (!response.ok) {
|
|
624
|
-
throw new
|
|
660
|
+
throw new chunkTWH4PTDG_cjs.MastraError({
|
|
625
661
|
id: "DOWNLOAD_ASSETS_FAILED",
|
|
626
662
|
text: "Failed to download asset",
|
|
627
663
|
domain: "LLM" /* LLM */,
|
|
@@ -633,7 +669,7 @@ var downloadFromUrl = async ({ url, downloadRetries }) => {
|
|
|
633
669
|
mediaType: response.headers.get("content-type") ?? void 0
|
|
634
670
|
};
|
|
635
671
|
} catch (error) {
|
|
636
|
-
throw new
|
|
672
|
+
throw new chunkTWH4PTDG_cjs.MastraError(
|
|
637
673
|
{
|
|
638
674
|
id: "DOWNLOAD_ASSETS_FAILED",
|
|
639
675
|
text: "Failed to download asset",
|
|
@@ -672,7 +708,13 @@ async function downloadAssetsFromMessages({
|
|
|
672
708
|
const downloadedFiles = await pMap(
|
|
673
709
|
filesToDownload,
|
|
674
710
|
async (fileItem) => {
|
|
675
|
-
|
|
711
|
+
if (!fileItem.isUrlSupportedByModel) {
|
|
712
|
+
return null;
|
|
713
|
+
}
|
|
714
|
+
return {
|
|
715
|
+
url: fileItem.url.toString(),
|
|
716
|
+
...await downloadFromUrl({ url: fileItem.url, downloadRetries })
|
|
717
|
+
};
|
|
676
718
|
},
|
|
677
719
|
{
|
|
678
720
|
concurrency: downloadConcurrency
|
|
@@ -680,7 +722,7 @@ async function downloadAssetsFromMessages({
|
|
|
680
722
|
);
|
|
681
723
|
const downloadFileList = downloadedFiles.filter(
|
|
682
724
|
(downloadedFile) => downloadedFile?.data != null
|
|
683
|
-
).map(({ data, mediaType }
|
|
725
|
+
).map(({ url, data, mediaType }) => [url, { data, mediaType }]);
|
|
684
726
|
return Object.fromEntries(downloadFileList);
|
|
685
727
|
}
|
|
686
728
|
|
|
@@ -724,23 +766,10 @@ function imageContentToString(image, fallbackMimeType) {
|
|
|
724
766
|
}
|
|
725
767
|
if (image instanceof Uint8Array || image instanceof ArrayBuffer || globalThis.Buffer && Buffer.isBuffer(image)) {
|
|
726
768
|
const base64 = convertDataContentToBase64String(image);
|
|
727
|
-
if (fallbackMimeType && !base64.startsWith("data:")) {
|
|
728
|
-
return `data:${fallbackMimeType};base64,${base64}`;
|
|
729
|
-
}
|
|
730
769
|
return base64;
|
|
731
770
|
}
|
|
732
771
|
return String(image);
|
|
733
772
|
}
|
|
734
|
-
function imageContentToDataUri(image, mimeType = "image/png") {
|
|
735
|
-
const imageStr = imageContentToString(image, mimeType);
|
|
736
|
-
if (imageStr.startsWith("data:")) {
|
|
737
|
-
return imageStr;
|
|
738
|
-
}
|
|
739
|
-
if (imageStr.startsWith("http://") || imageStr.startsWith("https://")) {
|
|
740
|
-
return imageStr;
|
|
741
|
-
}
|
|
742
|
-
return `data:${mimeType};base64,${imageStr}`;
|
|
743
|
-
}
|
|
744
773
|
function getImageCacheKey(image) {
|
|
745
774
|
if (image instanceof URL) {
|
|
746
775
|
return image.toString();
|
|
@@ -801,7 +830,7 @@ function ensureGeminiCompatibleMessages(messages) {
|
|
|
801
830
|
const result = [...messages];
|
|
802
831
|
const firstNonSystemIndex = result.findIndex((m) => m.role !== "system");
|
|
803
832
|
if (firstNonSystemIndex === -1) {
|
|
804
|
-
throw new
|
|
833
|
+
throw new chunkTWH4PTDG_cjs.MastraError({
|
|
805
834
|
id: "NO_USER_OR_ASSISTANT_MESSAGES",
|
|
806
835
|
domain: "AGENT" /* AGENT */,
|
|
807
836
|
category: "USER" /* USER */,
|
|
@@ -833,6 +862,35 @@ function getToolName(type) {
|
|
|
833
862
|
return type;
|
|
834
863
|
}
|
|
835
864
|
|
|
865
|
+
// src/agent/message-list/utils/convert-messages.ts
|
|
866
|
+
var MessageConverter = class {
|
|
867
|
+
messageList;
|
|
868
|
+
constructor(messages) {
|
|
869
|
+
this.messageList = new MessageList();
|
|
870
|
+
this.messageList.add(messages, "memory");
|
|
871
|
+
}
|
|
872
|
+
to(format) {
|
|
873
|
+
switch (format) {
|
|
874
|
+
// Old format keys (backward compatibility)
|
|
875
|
+
case "Mastra.V2":
|
|
876
|
+
return this.messageList.get.all.db();
|
|
877
|
+
case "AIV4.UI":
|
|
878
|
+
return this.messageList.get.all.aiV4.ui();
|
|
879
|
+
case "AIV4.Core":
|
|
880
|
+
return this.messageList.get.all.aiV4.core();
|
|
881
|
+
case "AIV5.UI":
|
|
882
|
+
return this.messageList.get.all.aiV5.ui();
|
|
883
|
+
case "AIV5.Model":
|
|
884
|
+
return this.messageList.get.all.aiV5.model();
|
|
885
|
+
default:
|
|
886
|
+
throw new Error(`Unsupported output format: ${format}`);
|
|
887
|
+
}
|
|
888
|
+
}
|
|
889
|
+
};
|
|
890
|
+
function convertMessages(messages) {
|
|
891
|
+
return new MessageConverter(messages);
|
|
892
|
+
}
|
|
893
|
+
|
|
836
894
|
// src/agent/message-list/index.ts
|
|
837
895
|
var MessageList = class _MessageList {
|
|
838
896
|
messages = [];
|
|
@@ -955,7 +1013,7 @@ var MessageList = class _MessageList {
|
|
|
955
1013
|
get clear() {
|
|
956
1014
|
return {
|
|
957
1015
|
input: {
|
|
958
|
-
|
|
1016
|
+
db: () => {
|
|
959
1017
|
const userMessages = Array.from(this.newUserMessages);
|
|
960
1018
|
this.messages = this.messages.filter((m) => !this.newUserMessages.has(m));
|
|
961
1019
|
this.newUserMessages.clear();
|
|
@@ -963,7 +1021,7 @@ var MessageList = class _MessageList {
|
|
|
963
1021
|
}
|
|
964
1022
|
},
|
|
965
1023
|
response: {
|
|
966
|
-
|
|
1024
|
+
db: () => {
|
|
967
1025
|
const responseMessages = Array.from(this.newResponseMessages);
|
|
968
1026
|
this.messages = this.messages.filter((m) => !this.newResponseMessages.has(m));
|
|
969
1027
|
this.newResponseMessages.clear();
|
|
@@ -973,19 +1031,18 @@ var MessageList = class _MessageList {
|
|
|
973
1031
|
};
|
|
974
1032
|
}
|
|
975
1033
|
all = {
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
v1: () => convertToV1Messages(this.all.v2()),
|
|
1034
|
+
db: () => this.messages,
|
|
1035
|
+
v1: () => convertToV1Messages(this.all.db()),
|
|
979
1036
|
aiV5: {
|
|
980
1037
|
model: () => this.aiV5UIMessagesToAIV5ModelMessages(this.all.aiV5.ui()),
|
|
981
|
-
ui: () => this.all.
|
|
1038
|
+
ui: () => this.all.db().map(_MessageList.mastraDBMessageToAIV5UIMessage),
|
|
982
1039
|
// Used when calling AI SDK streamText/generateText
|
|
983
1040
|
prompt: () => {
|
|
984
1041
|
const systemMessages = this.aiV4CoreMessagesToAIV5ModelMessages(
|
|
985
1042
|
[...this.systemMessages, ...Object.values(this.taggedSystemMessages).flat()],
|
|
986
1043
|
`system`
|
|
987
1044
|
);
|
|
988
|
-
const modelMessages = this.all.aiV5.
|
|
1045
|
+
const modelMessages = this.aiV5UIMessagesToAIV5ModelMessages(this.all.aiV5.ui(), true);
|
|
989
1046
|
const messages = [...systemMessages, ...modelMessages];
|
|
990
1047
|
return ensureGeminiCompatibleMessages(messages);
|
|
991
1048
|
},
|
|
@@ -994,7 +1051,7 @@ var MessageList = class _MessageList {
|
|
|
994
1051
|
downloadConcurrency: 10,
|
|
995
1052
|
downloadRetries: 3
|
|
996
1053
|
}) => {
|
|
997
|
-
const modelMessages = this.all.aiV5.
|
|
1054
|
+
const modelMessages = this.aiV5UIMessagesToAIV5ModelMessages(this.all.aiV5.ui(), true);
|
|
998
1055
|
const systemMessages = this.aiV4CoreMessagesToAIV5ModelMessages(
|
|
999
1056
|
[...this.systemMessages, ...Object.values(this.taggedSystemMessages).flat()],
|
|
1000
1057
|
`system`
|
|
@@ -1038,11 +1095,11 @@ var MessageList = class _MessageList {
|
|
|
1038
1095
|
/* @deprecated use list.get.all.aiV4.prompt() instead */
|
|
1039
1096
|
prompt: () => this.all.aiV4.prompt(),
|
|
1040
1097
|
/* @deprecated use list.get.all.aiV4.ui() */
|
|
1041
|
-
ui: () => this.all.
|
|
1098
|
+
ui: () => this.all.db().map(_MessageList.mastraDBMessageToAIV4UIMessage),
|
|
1042
1099
|
/* @deprecated use list.get.all.aiV4.core() */
|
|
1043
1100
|
core: () => this.aiV4UIMessagesToAIV4CoreMessages(this.all.aiV4.ui()),
|
|
1044
1101
|
aiV4: {
|
|
1045
|
-
ui: () => this.all.
|
|
1102
|
+
ui: () => this.all.db().map(_MessageList.mastraDBMessageToAIV4UIMessage),
|
|
1046
1103
|
core: () => this.aiV4UIMessagesToAIV4CoreMessages(this.all.aiV4.ui()),
|
|
1047
1104
|
// Used when calling AI SDK streamText/generateText
|
|
1048
1105
|
prompt: () => {
|
|
@@ -1061,64 +1118,56 @@ var MessageList = class _MessageList {
|
|
|
1061
1118
|
}
|
|
1062
1119
|
};
|
|
1063
1120
|
remembered = {
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
v1: () => convertToV1Messages(this.remembered.v2()),
|
|
1121
|
+
db: () => this.messages.filter((m) => this.memoryMessages.has(m)),
|
|
1122
|
+
v1: () => convertToV1Messages(this.remembered.db()),
|
|
1067
1123
|
aiV5: {
|
|
1068
1124
|
model: () => this.aiV5UIMessagesToAIV5ModelMessages(this.remembered.aiV5.ui()),
|
|
1069
|
-
ui: () => this.remembered.
|
|
1125
|
+
ui: () => this.remembered.db().map(_MessageList.mastraDBMessageToAIV5UIMessage)
|
|
1070
1126
|
},
|
|
1071
1127
|
/* @deprecated use list.get.remembered.aiV4.ui() */
|
|
1072
|
-
ui: () => this.remembered.
|
|
1128
|
+
ui: () => this.remembered.db().map(_MessageList.mastraDBMessageToAIV4UIMessage),
|
|
1073
1129
|
/* @deprecated use list.get.remembered.aiV4.core() */
|
|
1074
1130
|
core: () => this.aiV4UIMessagesToAIV4CoreMessages(this.all.aiV4.ui()),
|
|
1075
1131
|
aiV4: {
|
|
1076
|
-
ui: () => this.remembered.
|
|
1132
|
+
ui: () => this.remembered.db().map(_MessageList.mastraDBMessageToAIV4UIMessage),
|
|
1077
1133
|
core: () => this.aiV4UIMessagesToAIV4CoreMessages(this.all.aiV4.ui())
|
|
1078
1134
|
}
|
|
1079
1135
|
};
|
|
1080
1136
|
// TODO: need to update this for new .aiV4/5.x() pattern
|
|
1081
1137
|
rememberedPersisted = {
|
|
1082
|
-
|
|
1083
|
-
v1: () => convertToV1Messages(this.rememberedPersisted.
|
|
1084
|
-
ui: () => this.rememberedPersisted.
|
|
1138
|
+
db: () => this.all.db().filter((m) => this.memoryMessagesPersisted.has(m)),
|
|
1139
|
+
v1: () => convertToV1Messages(this.rememberedPersisted.db()),
|
|
1140
|
+
ui: () => this.rememberedPersisted.db().map(_MessageList.mastraDBMessageToAIV4UIMessage),
|
|
1085
1141
|
core: () => this.aiV4UIMessagesToAIV4CoreMessages(this.rememberedPersisted.ui())
|
|
1086
1142
|
};
|
|
1087
1143
|
input = {
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
),
|
|
1091
|
-
v2: () => this.messages.filter((m) => this.newUserMessages.has(m)),
|
|
1092
|
-
v1: () => convertToV1Messages(this.input.v2()),
|
|
1144
|
+
db: () => this.messages.filter((m) => this.newUserMessages.has(m)),
|
|
1145
|
+
v1: () => convertToV1Messages(this.input.db()),
|
|
1093
1146
|
aiV5: {
|
|
1094
1147
|
model: () => this.aiV5UIMessagesToAIV5ModelMessages(this.input.aiV5.ui()),
|
|
1095
|
-
ui: () => this.input.
|
|
1148
|
+
ui: () => this.input.db().map(_MessageList.mastraDBMessageToAIV5UIMessage)
|
|
1096
1149
|
},
|
|
1097
1150
|
/* @deprecated use list.get.input.aiV4.ui() instead */
|
|
1098
|
-
ui: () => this.input.
|
|
1151
|
+
ui: () => this.input.db().map(_MessageList.mastraDBMessageToAIV4UIMessage),
|
|
1099
1152
|
/* @deprecated use list.get.core.aiV4.ui() instead */
|
|
1100
1153
|
core: () => this.aiV4UIMessagesToAIV4CoreMessages(this.input.ui()),
|
|
1101
1154
|
aiV4: {
|
|
1102
|
-
ui: () => this.input.
|
|
1155
|
+
ui: () => this.input.db().map(_MessageList.mastraDBMessageToAIV4UIMessage),
|
|
1103
1156
|
core: () => this.aiV4UIMessagesToAIV4CoreMessages(this.input.aiV4.ui())
|
|
1104
1157
|
}
|
|
1105
1158
|
};
|
|
1106
1159
|
// TODO: need to update this for new .aiV4/5.x() pattern
|
|
1107
1160
|
inputPersisted = {
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
),
|
|
1111
|
-
v2: () => this.messages.filter((m) => this.newUserMessagesPersisted.has(m)),
|
|
1112
|
-
v1: () => convertToV1Messages(this.inputPersisted.v2()),
|
|
1113
|
-
ui: () => this.inputPersisted.v2().map(_MessageList.mastraMessageV2ToAIV4UIMessage),
|
|
1161
|
+
db: () => this.messages.filter((m) => this.newUserMessagesPersisted.has(m)),
|
|
1162
|
+
v1: () => convertToV1Messages(this.inputPersisted.db()),
|
|
1163
|
+
ui: () => this.inputPersisted.db().map(_MessageList.mastraDBMessageToAIV4UIMessage),
|
|
1114
1164
|
core: () => this.aiV4UIMessagesToAIV4CoreMessages(this.inputPersisted.ui())
|
|
1115
1165
|
};
|
|
1116
1166
|
response = {
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
v1: () => convertToV1Messages(this.response.v3().map(_MessageList.mastraMessageV3ToV2)),
|
|
1167
|
+
db: () => this.messages.filter((m) => this.newResponseMessages.has(m)),
|
|
1168
|
+
v1: () => convertToV1Messages(this.response.db()),
|
|
1120
1169
|
aiV5: {
|
|
1121
|
-
ui: () => this.response.
|
|
1170
|
+
ui: () => this.response.db().map(_MessageList.mastraDBMessageToAIV5UIMessage),
|
|
1122
1171
|
model: () => this.aiV5UIMessagesToAIV5ModelMessages(this.response.aiV5.ui()).filter(
|
|
1123
1172
|
(m) => m.role === `tool` || m.role === `assistant`
|
|
1124
1173
|
),
|
|
@@ -1261,17 +1310,14 @@ var MessageList = class _MessageList {
|
|
|
1261
1310
|
}
|
|
1262
1311
|
},
|
|
1263
1312
|
aiV4: {
|
|
1264
|
-
ui: () => this.response.
|
|
1313
|
+
ui: () => this.response.db().map(_MessageList.mastraDBMessageToAIV4UIMessage),
|
|
1265
1314
|
core: () => this.aiV4UIMessagesToAIV4CoreMessages(this.response.aiV4.ui())
|
|
1266
1315
|
}
|
|
1267
1316
|
};
|
|
1268
1317
|
// TODO: need to update this for new .aiV4/5.x() pattern
|
|
1269
1318
|
responsePersisted = {
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
),
|
|
1273
|
-
v2: () => this.messages.filter((m) => this.newResponseMessagesPersisted.has(m)),
|
|
1274
|
-
ui: () => this.responsePersisted.v2().map(_MessageList.mastraMessageV2ToAIV4UIMessage)
|
|
1319
|
+
db: () => this.messages.filter((m) => this.newResponseMessagesPersisted.has(m)),
|
|
1320
|
+
ui: () => this.responsePersisted.db().map(_MessageList.mastraDBMessageToAIV4UIMessage)
|
|
1275
1321
|
};
|
|
1276
1322
|
drainUnsavedMessages() {
|
|
1277
1323
|
const messages = this.messages.filter((m) => this.newUserMessages.has(m) || this.newResponseMessages.has(m));
|
|
@@ -1298,7 +1344,7 @@ var MessageList = class _MessageList {
|
|
|
1298
1344
|
return this;
|
|
1299
1345
|
}
|
|
1300
1346
|
aiV4UIMessagesToAIV4CoreMessages(messages) {
|
|
1301
|
-
return
|
|
1347
|
+
return chunkSVLMF4UZ_cjs.convertToCoreMessages(this.sanitizeAIV4UIMessages(messages));
|
|
1302
1348
|
}
|
|
1303
1349
|
sanitizeAIV4UIMessages(messages) {
|
|
1304
1350
|
const msgs = messages.map((m) => {
|
|
@@ -1322,7 +1368,7 @@ var MessageList = class _MessageList {
|
|
|
1322
1368
|
}
|
|
1323
1369
|
/**
|
|
1324
1370
|
* Converts various message formats to AIV4 CoreMessage format for system messages
|
|
1325
|
-
* @param message - The message to convert (can be string,
|
|
1371
|
+
* @param message - The message to convert (can be string, MastraDBMessage, or AI SDK message types)
|
|
1326
1372
|
* @returns AIV4 CoreMessage in the proper format
|
|
1327
1373
|
*/
|
|
1328
1374
|
systemMessageToAICore(message) {
|
|
@@ -1330,10 +1376,11 @@ var MessageList = class _MessageList {
|
|
|
1330
1376
|
return { role: "system", content: message };
|
|
1331
1377
|
}
|
|
1332
1378
|
if (_MessageList.isAIV5CoreMessage(message)) {
|
|
1333
|
-
|
|
1379
|
+
const dbMsg = _MessageList.aiV5ModelMessageToMastraDBMessage(message, "system");
|
|
1380
|
+
return _MessageList.mastraDBMessageSystemToV4Core(dbMsg);
|
|
1334
1381
|
}
|
|
1335
|
-
if (_MessageList.
|
|
1336
|
-
return _MessageList.
|
|
1382
|
+
if (_MessageList.isMastraDBMessage(message)) {
|
|
1383
|
+
return _MessageList.mastraDBMessageSystemToV4Core(message);
|
|
1337
1384
|
}
|
|
1338
1385
|
return message;
|
|
1339
1386
|
}
|
|
@@ -1362,7 +1409,7 @@ var MessageList = class _MessageList {
|
|
|
1362
1409
|
(m) => _MessageList.cacheKeyFromAIV4CoreMessageContent(m.content) === _MessageList.cacheKeyFromAIV4CoreMessageContent(message.content)
|
|
1363
1410
|
);
|
|
1364
1411
|
}
|
|
1365
|
-
static
|
|
1412
|
+
static mastraDBMessageToAIV4UIMessage(m) {
|
|
1366
1413
|
const experimentalAttachments = m.content.experimental_attachments ? [...m.content.experimental_attachments] : [];
|
|
1367
1414
|
const contentString = typeof m.content.content === `string` && m.content.content !== "" ? m.content.content : m.content.parts.reduce((prev, part) => {
|
|
1368
1415
|
if (part.type === `text`) {
|
|
@@ -1457,14 +1504,14 @@ var MessageList = class _MessageList {
|
|
|
1457
1504
|
return uiMessage;
|
|
1458
1505
|
}
|
|
1459
1506
|
/**
|
|
1460
|
-
* Converts a
|
|
1507
|
+
* Converts a MastraDBMessage system message directly to AIV4 CoreMessage format
|
|
1461
1508
|
* This is more efficient than converting to UI message first and then to core
|
|
1462
|
-
* @param message - The
|
|
1509
|
+
* @param message - The MastraDBMessage message to convert
|
|
1463
1510
|
* @returns AIV4 CoreMessage with system role
|
|
1464
1511
|
*/
|
|
1465
|
-
static
|
|
1512
|
+
static mastraDBMessageSystemToV4Core(message) {
|
|
1466
1513
|
if (message.role !== `system` || !message.content.content)
|
|
1467
|
-
throw new
|
|
1514
|
+
throw new chunkTWH4PTDG_cjs.MastraError({
|
|
1468
1515
|
id: "INVALID_SYSTEM_MESSAGE_FORMAT",
|
|
1469
1516
|
domain: "AGENT" /* AGENT */,
|
|
1470
1517
|
category: "USER" /* USER */,
|
|
@@ -1494,7 +1541,7 @@ var MessageList = class _MessageList {
|
|
|
1494
1541
|
addOne(message, messageSource) {
|
|
1495
1542
|
if ((!(`content` in message) || !message.content && // allow empty strings
|
|
1496
1543
|
typeof message.content !== "string") && (!(`parts` in message) || !message.parts)) {
|
|
1497
|
-
throw new
|
|
1544
|
+
throw new chunkTWH4PTDG_cjs.MastraError({
|
|
1498
1545
|
id: "INVALID_MESSAGE_CONTENT",
|
|
1499
1546
|
domain: "AGENT" /* AGENT */,
|
|
1500
1547
|
category: "USER" /* USER */,
|
|
@@ -1509,11 +1556,11 @@ var MessageList = class _MessageList {
|
|
|
1509
1556
|
}
|
|
1510
1557
|
if (message.role === `system`) {
|
|
1511
1558
|
if (messageSource === `memory`) return null;
|
|
1512
|
-
const isSupportedSystemFormat = _MessageList.isAIV4CoreMessage(message) || _MessageList.isAIV5CoreMessage(message) || _MessageList.
|
|
1559
|
+
const isSupportedSystemFormat = _MessageList.isAIV4CoreMessage(message) || _MessageList.isAIV5CoreMessage(message) || _MessageList.isMastraDBMessage(message);
|
|
1513
1560
|
if (isSupportedSystemFormat) {
|
|
1514
1561
|
return this.addSystem(message);
|
|
1515
1562
|
}
|
|
1516
|
-
throw new
|
|
1563
|
+
throw new chunkTWH4PTDG_cjs.MastraError({
|
|
1517
1564
|
id: "INVALID_SYSTEM_MESSAGE_FORMAT",
|
|
1518
1565
|
domain: "AGENT" /* AGENT */,
|
|
1519
1566
|
category: "USER" /* USER */,
|
|
@@ -1524,7 +1571,7 @@ var MessageList = class _MessageList {
|
|
|
1524
1571
|
}
|
|
1525
1572
|
});
|
|
1526
1573
|
}
|
|
1527
|
-
const messageV2 = this.
|
|
1574
|
+
const messageV2 = this.inputToMastraDBMessage(message, messageSource);
|
|
1528
1575
|
const { exists, shouldReplace, id } = this.shouldReplaceMessage(messageV2);
|
|
1529
1576
|
const latestMessage = this.messages.at(-1);
|
|
1530
1577
|
if (messageSource === `memory`) {
|
|
@@ -1716,7 +1763,7 @@ var MessageList = class _MessageList {
|
|
|
1716
1763
|
}
|
|
1717
1764
|
}
|
|
1718
1765
|
}
|
|
1719
|
-
|
|
1766
|
+
inputToMastraDBMessage(message, messageSource) {
|
|
1720
1767
|
if (
|
|
1721
1768
|
// we can't throw if the threadId doesn't match and this message came from memory
|
|
1722
1769
|
// this is because per-user semantic recall can retrieve messages from other threads
|
|
@@ -1732,25 +1779,33 @@ var MessageList = class _MessageList {
|
|
|
1732
1779
|
);
|
|
1733
1780
|
}
|
|
1734
1781
|
if (_MessageList.isMastraMessageV1(message)) {
|
|
1735
|
-
return this.
|
|
1782
|
+
return this.mastraMessageV1ToMastraDBMessage(message, messageSource);
|
|
1736
1783
|
}
|
|
1737
|
-
if (_MessageList.
|
|
1738
|
-
return this.
|
|
1784
|
+
if (_MessageList.isMastraDBMessage(message)) {
|
|
1785
|
+
return this.hydrateMastraDBMessageFields(message);
|
|
1739
1786
|
}
|
|
1740
1787
|
if (_MessageList.isAIV4CoreMessage(message)) {
|
|
1741
|
-
return this.
|
|
1788
|
+
return this.aiV4CoreMessageToMastraDBMessage(message, messageSource);
|
|
1742
1789
|
}
|
|
1743
1790
|
if (_MessageList.isAIV4UIMessage(message)) {
|
|
1744
|
-
return this.
|
|
1791
|
+
return this.aiV4UIMessageToMastraDBMessage(message, messageSource);
|
|
1745
1792
|
}
|
|
1746
1793
|
if (_MessageList.isAIV5CoreMessage(message)) {
|
|
1747
|
-
|
|
1794
|
+
const dbMsg = _MessageList.aiV5ModelMessageToMastraDBMessage(message, messageSource);
|
|
1795
|
+
const result = {
|
|
1796
|
+
...dbMsg,
|
|
1797
|
+
threadId: this.memoryInfo?.threadId,
|
|
1798
|
+
resourceId: this.memoryInfo?.resourceId
|
|
1799
|
+
};
|
|
1800
|
+
return result;
|
|
1748
1801
|
}
|
|
1749
1802
|
if (_MessageList.isAIV5UIMessage(message)) {
|
|
1750
|
-
|
|
1751
|
-
|
|
1752
|
-
|
|
1753
|
-
|
|
1803
|
+
const dbMsg = _MessageList.aiV5UIMessageToMastraDBMessage(message);
|
|
1804
|
+
return {
|
|
1805
|
+
...dbMsg,
|
|
1806
|
+
threadId: this.memoryInfo?.threadId,
|
|
1807
|
+
resourceId: this.memoryInfo?.resourceId
|
|
1808
|
+
};
|
|
1754
1809
|
}
|
|
1755
1810
|
throw new Error(`Found unhandled message ${JSON.stringify(message)}`);
|
|
1756
1811
|
}
|
|
@@ -1783,10 +1838,10 @@ var MessageList = class _MessageList {
|
|
|
1783
1838
|
if (this.generateMessageId) {
|
|
1784
1839
|
return this.generateMessageId();
|
|
1785
1840
|
}
|
|
1786
|
-
return
|
|
1841
|
+
return uuid.v4();
|
|
1787
1842
|
}
|
|
1788
|
-
|
|
1789
|
-
const coreV2 = this.
|
|
1843
|
+
mastraMessageV1ToMastraDBMessage(message, messageSource) {
|
|
1844
|
+
const coreV2 = this.aiV4CoreMessageToMastraDBMessage(
|
|
1790
1845
|
{
|
|
1791
1846
|
content: message.content,
|
|
1792
1847
|
role: message.role
|
|
@@ -1802,11 +1857,10 @@ var MessageList = class _MessageList {
|
|
|
1802
1857
|
content: coreV2.content
|
|
1803
1858
|
};
|
|
1804
1859
|
}
|
|
1805
|
-
|
|
1806
|
-
if (!
|
|
1807
|
-
|
|
1808
|
-
|
|
1809
|
-
hydrateMastraMessageV2Fields(message) {
|
|
1860
|
+
hydrateMastraDBMessageFields(message) {
|
|
1861
|
+
if (!message.id) {
|
|
1862
|
+
message.id = this.newMessageId();
|
|
1863
|
+
}
|
|
1810
1864
|
if (!(message.createdAt instanceof Date)) message.createdAt = new Date(message.createdAt);
|
|
1811
1865
|
if (message.content.toolInvocations && message.content.parts) {
|
|
1812
1866
|
message.content.toolInvocations = message.content.toolInvocations.map((ti) => {
|
|
@@ -1823,7 +1877,7 @@ var MessageList = class _MessageList {
|
|
|
1823
1877
|
}
|
|
1824
1878
|
return message;
|
|
1825
1879
|
}
|
|
1826
|
-
|
|
1880
|
+
aiV4UIMessageToMastraDBMessage(message, messageSource) {
|
|
1827
1881
|
const content = {
|
|
1828
1882
|
format: 2,
|
|
1829
1883
|
parts: message.parts
|
|
@@ -1846,7 +1900,7 @@ var MessageList = class _MessageList {
|
|
|
1846
1900
|
content
|
|
1847
1901
|
};
|
|
1848
1902
|
}
|
|
1849
|
-
|
|
1903
|
+
aiV4CoreMessageToMastraDBMessage(coreMessage, messageSource) {
|
|
1850
1904
|
const id = `id` in coreMessage ? coreMessage.id : this.newMessageId();
|
|
1851
1905
|
const parts = [];
|
|
1852
1906
|
const experimentalAttachments = [];
|
|
@@ -2018,21 +2072,16 @@ var MessageList = class _MessageList {
|
|
|
2018
2072
|
return !_MessageList.isMastraMessage(msg) && !(`parts` in msg) && `content` in msg && !_MessageList.hasAIV5CoreMessageCharacteristics(msg);
|
|
2019
2073
|
}
|
|
2020
2074
|
static isMastraMessage(msg) {
|
|
2021
|
-
return _MessageList.
|
|
2075
|
+
return _MessageList.isMastraDBMessage(msg) || _MessageList.isMastraMessageV1(msg);
|
|
2022
2076
|
}
|
|
2023
2077
|
static isMastraMessageV1(msg) {
|
|
2024
|
-
return !_MessageList.
|
|
2078
|
+
return !_MessageList.isMastraDBMessage(msg) && (`threadId` in msg || `resourceId` in msg);
|
|
2025
2079
|
}
|
|
2026
|
-
static
|
|
2080
|
+
static isMastraDBMessage(msg) {
|
|
2027
2081
|
return Boolean(
|
|
2028
2082
|
`content` in msg && msg.content && !Array.isArray(msg.content) && typeof msg.content !== `string` && `format` in msg.content && msg.content.format === 2
|
|
2029
2083
|
);
|
|
2030
2084
|
}
|
|
2031
|
-
static isMastraMessageV3(msg) {
|
|
2032
|
-
return Boolean(
|
|
2033
|
-
`content` in msg && msg.content && !Array.isArray(msg.content) && typeof msg.content !== `string` && `format` in msg.content && msg.content.format === 3
|
|
2034
|
-
);
|
|
2035
|
-
}
|
|
2036
2085
|
static getRole(message) {
|
|
2037
2086
|
if (message.role === `assistant` || message.role === `tool`) return `assistant`;
|
|
2038
2087
|
if (message.role === `user`) return `user`;
|
|
@@ -2129,18 +2178,12 @@ var MessageList = class _MessageList {
|
|
|
2129
2178
|
if (oneMM1 && twoMM1) {
|
|
2130
2179
|
return oneMM1.id === twoMM1.id && _MessageList.cacheKeyFromAIV4CoreMessageContent(oneMM1.content) === _MessageList.cacheKeyFromAIV4CoreMessageContent(twoMM1.content);
|
|
2131
2180
|
}
|
|
2132
|
-
const oneMM2 = _MessageList.
|
|
2133
|
-
const twoMM2 = _MessageList.
|
|
2181
|
+
const oneMM2 = _MessageList.isMastraDBMessage(one) && one;
|
|
2182
|
+
const twoMM2 = _MessageList.isMastraDBMessage(two) && two;
|
|
2134
2183
|
if (oneMM2 && !twoMM2) return false;
|
|
2135
2184
|
if (oneMM2 && twoMM2) {
|
|
2136
2185
|
return oneMM2.id === twoMM2.id && _MessageList.cacheKeyFromAIV4Parts(oneMM2.content.parts) === _MessageList.cacheKeyFromAIV4Parts(twoMM2.content.parts);
|
|
2137
2186
|
}
|
|
2138
|
-
const oneMM3 = _MessageList.isMastraMessageV3(one) && one;
|
|
2139
|
-
const twoMM3 = _MessageList.isMastraMessageV3(two) && two;
|
|
2140
|
-
if (oneMM3 && !twoMM3) return false;
|
|
2141
|
-
if (oneMM3 && twoMM3) {
|
|
2142
|
-
return oneMM3.id === twoMM3.id && _MessageList.cacheKeyFromAIV5Parts(oneMM3.content.parts) === _MessageList.cacheKeyFromAIV5Parts(twoMM3.content.parts);
|
|
2143
|
-
}
|
|
2144
2187
|
const oneUIV5 = _MessageList.isAIV5UIMessage(one) && one;
|
|
2145
2188
|
const twoUIV5 = _MessageList.isAIV5UIMessage(two) && two;
|
|
2146
2189
|
if (oneUIV5 && !twoUIV5) return false;
|
|
@@ -2155,25 +2198,6 @@ var MessageList = class _MessageList {
|
|
|
2155
2198
|
}
|
|
2156
2199
|
return true;
|
|
2157
2200
|
}
|
|
2158
|
-
cleanV3Metadata(messages) {
|
|
2159
|
-
return messages.map((msg) => {
|
|
2160
|
-
if (!msg.content.metadata || typeof msg.content.metadata !== "object") {
|
|
2161
|
-
return msg;
|
|
2162
|
-
}
|
|
2163
|
-
const metadata = { ...msg.content.metadata };
|
|
2164
|
-
const hasOriginalContent = "__originalContent" in metadata;
|
|
2165
|
-
const hasOriginalAttachments = "__originalExperimentalAttachments" in metadata;
|
|
2166
|
-
if (!hasOriginalContent && !hasOriginalAttachments) {
|
|
2167
|
-
return msg;
|
|
2168
|
-
}
|
|
2169
|
-
const { __originalContent, __originalExperimentalAttachments, ...cleanMetadata } = metadata;
|
|
2170
|
-
if (Object.keys(cleanMetadata).length === 0) {
|
|
2171
|
-
const { metadata: metadata2, ...contentWithoutMetadata } = msg.content;
|
|
2172
|
-
return { ...msg, content: contentWithoutMetadata };
|
|
2173
|
-
}
|
|
2174
|
-
return { ...msg, content: { ...msg.content, metadata: cleanMetadata } };
|
|
2175
|
-
});
|
|
2176
|
-
}
|
|
2177
2201
|
static aiV4CoreMessageToV1PromptMessage(coreMessage) {
|
|
2178
2202
|
if (coreMessage.role === `system`) {
|
|
2179
2203
|
return coreMessage;
|
|
@@ -2370,240 +2394,103 @@ var MessageList = class _MessageList {
|
|
|
2370
2394
|
`Encountered unknown role ${role} when converting V5 ModelMessage -> V5 LanguageModelV2Message, input message: ${JSON.stringify(modelMessage, null, 2)}`
|
|
2371
2395
|
);
|
|
2372
2396
|
}
|
|
2373
|
-
|
|
2374
|
-
|
|
2375
|
-
|
|
2376
|
-
|
|
2377
|
-
|
|
2378
|
-
|
|
2379
|
-
|
|
2380
|
-
|
|
2381
|
-
|
|
2382
|
-
|
|
2383
|
-
|
|
2384
|
-
|
|
2385
|
-
|
|
2386
|
-
|
|
2387
|
-
|
|
2388
|
-
|
|
2389
|
-
|
|
2390
|
-
|
|
2391
|
-
|
|
2392
|
-
|
|
2393
|
-
|
|
2394
|
-
|
|
2395
|
-
|
|
2396
|
-
|
|
2397
|
-
|
|
2398
|
-
|
|
2399
|
-
}
|
|
2400
|
-
const attachmentUrls = new Set(v3Msg.content.metadata?.__attachmentUrls || []);
|
|
2401
|
-
const v2Msg = {
|
|
2402
|
-
id: v3Msg.id,
|
|
2403
|
-
resourceId: v3Msg.resourceId,
|
|
2404
|
-
threadId: v3Msg.threadId,
|
|
2405
|
-
createdAt: v3Msg.createdAt,
|
|
2406
|
-
role: v3Msg.role,
|
|
2407
|
-
content: {
|
|
2408
|
-
format: 2,
|
|
2409
|
-
parts: v3Msg.content.parts.map((p) => {
|
|
2410
|
-
if (AIV5__namespace.isToolUIPart(p) || p.type === "dynamic-tool") {
|
|
2411
|
-
const toolName = getToolName(p);
|
|
2412
|
-
const shared = {
|
|
2413
|
-
state: p.state,
|
|
2414
|
-
args: p.input,
|
|
2415
|
-
toolCallId: p.toolCallId,
|
|
2416
|
-
toolName
|
|
2417
|
-
};
|
|
2418
|
-
if (p.state === `output-available`) {
|
|
2419
|
-
return {
|
|
2420
|
-
type: "tool-invocation",
|
|
2421
|
-
toolInvocation: {
|
|
2422
|
-
...shared,
|
|
2423
|
-
state: "result",
|
|
2424
|
-
result: typeof p.output === "object" && p.output && "value" in p.output ? p.output.value : p.output
|
|
2425
|
-
},
|
|
2426
|
-
providerMetadata: p.callProviderMetadata
|
|
2427
|
-
};
|
|
2428
|
-
}
|
|
2429
|
-
return {
|
|
2430
|
-
type: "tool-invocation",
|
|
2431
|
-
toolInvocation: {
|
|
2432
|
-
...shared,
|
|
2433
|
-
state: p.state === `input-available` ? `call` : `partial-call`
|
|
2434
|
-
}
|
|
2435
|
-
};
|
|
2436
|
-
}
|
|
2437
|
-
switch (p.type) {
|
|
2438
|
-
case "text":
|
|
2439
|
-
return p;
|
|
2440
|
-
case "file": {
|
|
2441
|
-
const fileDataSource = "url" in p && typeof p.url === "string" ? p.url : "data" in p && typeof p.data === "string" ? p.data : void 0;
|
|
2442
|
-
if (!fileDataSource) {
|
|
2443
|
-
return null;
|
|
2444
|
-
}
|
|
2445
|
-
if (attachmentUrls.has(fileDataSource)) {
|
|
2446
|
-
return null;
|
|
2447
|
-
}
|
|
2448
|
-
return {
|
|
2449
|
-
type: "file",
|
|
2450
|
-
mimeType: p.mediaType,
|
|
2451
|
-
data: fileDataSource,
|
|
2452
|
-
providerMetadata: p.providerMetadata
|
|
2453
|
-
};
|
|
2454
|
-
}
|
|
2455
|
-
case "reasoning":
|
|
2456
|
-
if (p.text === "") return null;
|
|
2457
|
-
return {
|
|
2458
|
-
type: "reasoning",
|
|
2459
|
-
reasoning: p.text,
|
|
2460
|
-
details: [{ type: "text", text: p.text }],
|
|
2461
|
-
providerMetadata: p.providerMetadata
|
|
2462
|
-
};
|
|
2463
|
-
case "source-url":
|
|
2464
|
-
return {
|
|
2465
|
-
type: "source",
|
|
2466
|
-
source: {
|
|
2467
|
-
url: p.url,
|
|
2468
|
-
id: p.sourceId,
|
|
2469
|
-
sourceType: "url"
|
|
2470
|
-
},
|
|
2471
|
-
providerMetadata: p.providerMetadata
|
|
2472
|
-
};
|
|
2473
|
-
case "step-start":
|
|
2474
|
-
return p;
|
|
2475
|
-
}
|
|
2476
|
-
return null;
|
|
2477
|
-
}).filter((p) => Boolean(p))
|
|
2478
|
-
}
|
|
2479
|
-
};
|
|
2480
|
-
if (toolInvocations !== void 0) {
|
|
2481
|
-
v2Msg.content.toolInvocations = toolInvocations;
|
|
2482
|
-
}
|
|
2483
|
-
if (v3Msg.content.metadata) {
|
|
2484
|
-
const { __originalContent, __originalExperimentalAttachments, __attachmentUrls, ...userMetadata } = v3Msg.content.metadata;
|
|
2485
|
-
v2Msg.content.metadata = userMetadata;
|
|
2486
|
-
}
|
|
2487
|
-
const originalContent = v3Msg.content.metadata?.__originalContent;
|
|
2488
|
-
if (originalContent !== void 0) {
|
|
2489
|
-
const hasOnlyTextOrStepStart = v2Msg.content.parts.every((p) => p.type === `step-start` || p.type === `text`);
|
|
2490
|
-
if (typeof originalContent === `string` || hasOnlyTextOrStepStart) {
|
|
2491
|
-
v2Msg.content.content = originalContent;
|
|
2492
|
-
}
|
|
2493
|
-
}
|
|
2494
|
-
const originalAttachments = v3Msg.content.metadata?.__originalExperimentalAttachments;
|
|
2495
|
-
if (originalAttachments && Array.isArray(originalAttachments)) {
|
|
2496
|
-
v2Msg.content.experimental_attachments = originalAttachments || [];
|
|
2497
|
-
}
|
|
2498
|
-
const originalContentIsV5 = Array.isArray(v3Msg.content.metadata?.__originalContent) && v3Msg.content.metadata?.__originalContent.some((part) => part.type === "file");
|
|
2499
|
-
const urlFileParts = originalContentIsV5 ? [] : v2Msg.content.parts.filter(
|
|
2500
|
-
(p) => p.type === "file" && typeof p.data === "string" && (p.data.startsWith("http://") || p.data.startsWith("https://")) && !p.providerMetadata
|
|
2501
|
-
// Don't move if it has providerMetadata (needed for roundtrip)
|
|
2502
|
-
);
|
|
2503
|
-
if (urlFileParts.length > 0) {
|
|
2504
|
-
if (!v2Msg.content.experimental_attachments) {
|
|
2505
|
-
v2Msg.content.experimental_attachments = [];
|
|
2506
|
-
}
|
|
2507
|
-
for (const urlPart of urlFileParts) {
|
|
2508
|
-
if (urlPart.type === "file") {
|
|
2509
|
-
v2Msg.content.experimental_attachments.push({
|
|
2510
|
-
url: urlPart.data,
|
|
2511
|
-
contentType: urlPart.mimeType
|
|
2397
|
+
/**
|
|
2398
|
+
* Direct conversion from MastraDBMessage to AIV5 UIMessage
|
|
2399
|
+
*/
|
|
2400
|
+
static mastraDBMessageToAIV5UIMessage(dbMsg) {
|
|
2401
|
+
const parts = [];
|
|
2402
|
+
const metadata = { ...dbMsg.content.metadata || {} };
|
|
2403
|
+
if (dbMsg.createdAt) metadata.createdAt = dbMsg.createdAt;
|
|
2404
|
+
if (dbMsg.threadId) metadata.threadId = dbMsg.threadId;
|
|
2405
|
+
if (dbMsg.resourceId) metadata.resourceId = dbMsg.resourceId;
|
|
2406
|
+
const hasToolInvocationParts = dbMsg.content.parts?.some((p) => p.type === "tool-invocation");
|
|
2407
|
+
if (dbMsg.content.toolInvocations && !hasToolInvocationParts) {
|
|
2408
|
+
for (const invocation of dbMsg.content.toolInvocations) {
|
|
2409
|
+
if (invocation.state === "result") {
|
|
2410
|
+
parts.push({
|
|
2411
|
+
type: `tool-${invocation.toolName}`,
|
|
2412
|
+
toolCallId: invocation.toolCallId,
|
|
2413
|
+
state: "output-available",
|
|
2414
|
+
input: invocation.args,
|
|
2415
|
+
output: invocation.result
|
|
2416
|
+
});
|
|
2417
|
+
} else {
|
|
2418
|
+
parts.push({
|
|
2419
|
+
type: `tool-${invocation.toolName}`,
|
|
2420
|
+
toolCallId: invocation.toolCallId,
|
|
2421
|
+
state: invocation.state === "call" ? "input-available" : "input-streaming",
|
|
2422
|
+
input: invocation.args
|
|
2512
2423
|
});
|
|
2513
2424
|
}
|
|
2514
2425
|
}
|
|
2515
|
-
v2Msg.content.parts = v2Msg.content.parts.filter(
|
|
2516
|
-
(p) => !(p.type === "file" && typeof p.data === "string" && (p.data.startsWith("http://") || p.data.startsWith("https://")) && !p.providerMetadata)
|
|
2517
|
-
);
|
|
2518
|
-
}
|
|
2519
|
-
if (toolInvocations && toolInvocations.length > 0) {
|
|
2520
|
-
const resultToolInvocations = toolInvocations.filter((t) => t.state === "result");
|
|
2521
|
-
if (resultToolInvocations.length > 0) {
|
|
2522
|
-
v2Msg.content.toolInvocations = resultToolInvocations;
|
|
2523
|
-
}
|
|
2524
|
-
}
|
|
2525
|
-
if (v3Msg.type) v2Msg.type = v3Msg.type;
|
|
2526
|
-
return v2Msg;
|
|
2527
|
-
}
|
|
2528
|
-
mastraMessageV2ToMastraMessageV3(v2Msg) {
|
|
2529
|
-
const parts = [];
|
|
2530
|
-
const v3Msg = {
|
|
2531
|
-
id: v2Msg.id,
|
|
2532
|
-
content: {
|
|
2533
|
-
format: 3,
|
|
2534
|
-
parts
|
|
2535
|
-
},
|
|
2536
|
-
role: v2Msg.role,
|
|
2537
|
-
createdAt: v2Msg.createdAt instanceof Date ? v2Msg.createdAt : new Date(v2Msg.createdAt),
|
|
2538
|
-
resourceId: v2Msg.resourceId,
|
|
2539
|
-
threadId: v2Msg.threadId,
|
|
2540
|
-
type: v2Msg.type
|
|
2541
|
-
};
|
|
2542
|
-
if (v2Msg.content.metadata) {
|
|
2543
|
-
v3Msg.content.metadata = { ...v2Msg.content.metadata };
|
|
2544
2426
|
}
|
|
2545
|
-
|
|
2546
|
-
|
|
2547
|
-
|
|
2548
|
-
|
|
2549
|
-
|
|
2427
|
+
const hasReasoningInParts = dbMsg.content.parts?.some((p) => p.type === "reasoning");
|
|
2428
|
+
const hasFileInParts = dbMsg.content.parts?.some((p) => p.type === "file");
|
|
2429
|
+
if (dbMsg.content.reasoning && !hasReasoningInParts) {
|
|
2430
|
+
parts.push({
|
|
2431
|
+
type: "reasoning",
|
|
2432
|
+
text: dbMsg.content.reasoning
|
|
2433
|
+
});
|
|
2550
2434
|
}
|
|
2551
|
-
|
|
2552
|
-
|
|
2553
|
-
|
|
2554
|
-
|
|
2555
|
-
|
|
2435
|
+
const attachmentUrls = /* @__PURE__ */ new Set();
|
|
2436
|
+
if (dbMsg.content.experimental_attachments && !hasFileInParts) {
|
|
2437
|
+
for (const attachment of dbMsg.content.experimental_attachments) {
|
|
2438
|
+
attachmentUrls.add(attachment.url);
|
|
2439
|
+
parts.push({
|
|
2440
|
+
type: "file",
|
|
2441
|
+
url: attachment.url,
|
|
2442
|
+
mediaType: attachment.contentType || "unknown"
|
|
2443
|
+
});
|
|
2444
|
+
}
|
|
2556
2445
|
}
|
|
2557
|
-
|
|
2558
|
-
|
|
2559
|
-
|
|
2560
|
-
|
|
2561
|
-
|
|
2562
|
-
|
|
2563
|
-
break;
|
|
2564
|
-
case "tool-invocation":
|
|
2565
|
-
if (part.toolInvocation.state === `result`) {
|
|
2446
|
+
let hasNonToolReasoningParts = false;
|
|
2447
|
+
if (dbMsg.content.parts) {
|
|
2448
|
+
for (const part of dbMsg.content.parts) {
|
|
2449
|
+
if (part.type === "tool-invocation" && part.toolInvocation) {
|
|
2450
|
+
const inv = part.toolInvocation;
|
|
2451
|
+
if (inv.state === "result") {
|
|
2566
2452
|
parts.push({
|
|
2567
|
-
type: `tool-${
|
|
2568
|
-
toolCallId:
|
|
2453
|
+
type: `tool-${inv.toolName}`,
|
|
2454
|
+
toolCallId: inv.toolCallId,
|
|
2455
|
+
input: inv.args,
|
|
2456
|
+
output: inv.result,
|
|
2569
2457
|
state: "output-available",
|
|
2570
|
-
input: part.toolInvocation.args,
|
|
2571
|
-
output: part.toolInvocation.result,
|
|
2572
2458
|
callProviderMetadata: part.providerMetadata
|
|
2573
2459
|
});
|
|
2574
2460
|
} else {
|
|
2575
2461
|
parts.push({
|
|
2576
|
-
type: `tool-${
|
|
2577
|
-
toolCallId:
|
|
2578
|
-
|
|
2579
|
-
|
|
2462
|
+
type: `tool-${inv.toolName}`,
|
|
2463
|
+
toolCallId: inv.toolCallId,
|
|
2464
|
+
input: inv.args,
|
|
2465
|
+
state: "input-available",
|
|
2466
|
+
callProviderMetadata: part.providerMetadata
|
|
2580
2467
|
});
|
|
2581
2468
|
}
|
|
2582
|
-
|
|
2583
|
-
|
|
2584
|
-
|
|
2585
|
-
|
|
2586
|
-
|
|
2587
|
-
|
|
2588
|
-
title: part.source.title,
|
|
2589
|
-
providerMetadata: part.source.providerMetadata || part.providerMetadata
|
|
2590
|
-
});
|
|
2591
|
-
break;
|
|
2592
|
-
case "reasoning":
|
|
2593
|
-
const text = part.reasoning || (part.details?.reduce((p, c) => {
|
|
2594
|
-
if (c.type === `text`) return p + c.text;
|
|
2469
|
+
continue;
|
|
2470
|
+
}
|
|
2471
|
+
if (part.type === "reasoning") {
|
|
2472
|
+
const reasoningPart = part;
|
|
2473
|
+
const text = reasoningPart.text || reasoningPart.reasoning || (reasoningPart.details?.reduce((p, c) => {
|
|
2474
|
+
if (c.type === `text` && c.text) return p + c.text;
|
|
2595
2475
|
return p;
|
|
2596
2476
|
}, "") ?? "");
|
|
2597
|
-
if (text ||
|
|
2477
|
+
if (text || reasoningPart.details?.length) {
|
|
2598
2478
|
parts.push({
|
|
2599
2479
|
type: "reasoning",
|
|
2600
2480
|
text: text || "",
|
|
2601
2481
|
state: "done",
|
|
2602
|
-
providerMetadata: part.providerMetadata
|
|
2482
|
+
...part.providerMetadata && { providerMetadata: part.providerMetadata }
|
|
2603
2483
|
});
|
|
2604
2484
|
}
|
|
2605
|
-
|
|
2606
|
-
|
|
2485
|
+
continue;
|
|
2486
|
+
}
|
|
2487
|
+
if (part.type === "tool-invocation" || part.type.startsWith("tool-")) {
|
|
2488
|
+
continue;
|
|
2489
|
+
}
|
|
2490
|
+
if (part.type === "file") {
|
|
2491
|
+
if (typeof part.data === "string" && attachmentUrls.has(part.data)) {
|
|
2492
|
+
continue;
|
|
2493
|
+
}
|
|
2607
2494
|
const categorized = typeof part.data === "string" ? categorizeFileData(part.data, part.mimeType) : { type: "raw", mimeType: part.mimeType};
|
|
2608
2495
|
if (categorized.type === "url" && typeof part.data === "string") {
|
|
2609
2496
|
parts.push({
|
|
@@ -2612,7 +2499,6 @@ var MessageList = class _MessageList {
|
|
|
2612
2499
|
mediaType: categorized.mimeType || "image/png",
|
|
2613
2500
|
providerMetadata: part.providerMetadata
|
|
2614
2501
|
});
|
|
2615
|
-
fileUrls.add(part.data);
|
|
2616
2502
|
} else {
|
|
2617
2503
|
let filePartData;
|
|
2618
2504
|
let extractedMimeType = part.mimeType;
|
|
@@ -2644,36 +2530,376 @@ var MessageList = class _MessageList {
|
|
|
2644
2530
|
providerMetadata: part.providerMetadata
|
|
2645
2531
|
});
|
|
2646
2532
|
}
|
|
2647
|
-
|
|
2648
|
-
|
|
2533
|
+
} else if (part.type === "source") {
|
|
2534
|
+
const sourcePart = part;
|
|
2535
|
+
parts.push({
|
|
2536
|
+
type: "source-url",
|
|
2537
|
+
url: sourcePart.source.url,
|
|
2538
|
+
...part.providerMetadata && { providerMetadata: part.providerMetadata }
|
|
2539
|
+
});
|
|
2540
|
+
} else if (part.type === "text") {
|
|
2541
|
+
parts.push({
|
|
2542
|
+
type: "text",
|
|
2543
|
+
text: part.text,
|
|
2544
|
+
...part.providerMetadata && { providerMetadata: part.providerMetadata }
|
|
2545
|
+
});
|
|
2546
|
+
hasNonToolReasoningParts = true;
|
|
2547
|
+
} else {
|
|
2548
|
+
parts.push(part);
|
|
2549
|
+
hasNonToolReasoningParts = true;
|
|
2649
2550
|
}
|
|
2650
2551
|
}
|
|
2651
2552
|
}
|
|
2652
|
-
if (
|
|
2653
|
-
|
|
2553
|
+
if (dbMsg.content.content && !hasNonToolReasoningParts) {
|
|
2554
|
+
parts.push({ type: "text", text: dbMsg.content.content });
|
|
2654
2555
|
}
|
|
2655
|
-
|
|
2656
|
-
|
|
2657
|
-
|
|
2658
|
-
|
|
2659
|
-
|
|
2660
|
-
|
|
2661
|
-
|
|
2662
|
-
|
|
2663
|
-
|
|
2556
|
+
return {
|
|
2557
|
+
id: dbMsg.id,
|
|
2558
|
+
role: dbMsg.role,
|
|
2559
|
+
metadata,
|
|
2560
|
+
parts
|
|
2561
|
+
};
|
|
2562
|
+
}
|
|
2563
|
+
/**
|
|
2564
|
+
* Direct conversion from AIV5 UIMessage to MastraDBMessage
|
|
2565
|
+
* Combines logic from aiV5UIMessageToMastraMessageV3 + mastraMessageV3ToV2
|
|
2566
|
+
*/
|
|
2567
|
+
static aiV5UIMessageToMastraDBMessage(uiMsg) {
|
|
2568
|
+
const { parts, metadata: rawMetadata } = uiMsg;
|
|
2569
|
+
const metadata = rawMetadata || {};
|
|
2570
|
+
const createdAtValue = metadata.createdAt;
|
|
2571
|
+
const createdAt = createdAtValue ? typeof createdAtValue === "string" ? new Date(createdAtValue) : createdAtValue instanceof Date ? createdAtValue : /* @__PURE__ */ new Date() : /* @__PURE__ */ new Date();
|
|
2572
|
+
const threadId = metadata.threadId;
|
|
2573
|
+
const resourceId = metadata.resourceId;
|
|
2574
|
+
const cleanMetadata = { ...metadata };
|
|
2575
|
+
delete cleanMetadata.createdAt;
|
|
2576
|
+
delete cleanMetadata.threadId;
|
|
2577
|
+
delete cleanMetadata.resourceId;
|
|
2578
|
+
const toolInvocationParts = parts.filter((p) => AIV5__namespace.isToolUIPart(p));
|
|
2579
|
+
const reasoningParts = parts.filter((p) => p.type === "reasoning");
|
|
2580
|
+
const fileParts = parts.filter((p) => p.type === "file");
|
|
2581
|
+
const textParts = parts.filter((p) => p.type === "text");
|
|
2582
|
+
let toolInvocations = void 0;
|
|
2583
|
+
if (toolInvocationParts.length > 0) {
|
|
2584
|
+
toolInvocations = toolInvocationParts.map((p) => {
|
|
2585
|
+
const toolName = getToolName(p);
|
|
2586
|
+
if (p.state === "output-available") {
|
|
2587
|
+
return {
|
|
2588
|
+
args: p.input,
|
|
2589
|
+
result: typeof p.output === "object" && p.output && "value" in p.output ? p.output.value : p.output,
|
|
2590
|
+
toolCallId: p.toolCallId,
|
|
2591
|
+
toolName,
|
|
2592
|
+
state: "result"
|
|
2593
|
+
};
|
|
2594
|
+
}
|
|
2595
|
+
return {
|
|
2596
|
+
args: p.input,
|
|
2597
|
+
toolCallId: p.toolCallId,
|
|
2598
|
+
toolName,
|
|
2599
|
+
state: "call"
|
|
2600
|
+
};
|
|
2601
|
+
});
|
|
2602
|
+
}
|
|
2603
|
+
let reasoning = void 0;
|
|
2604
|
+
if (reasoningParts.length > 0) {
|
|
2605
|
+
reasoning = reasoningParts.map((p) => p.text).join("\n");
|
|
2606
|
+
}
|
|
2607
|
+
let experimental_attachments = void 0;
|
|
2608
|
+
if (fileParts.length > 0) {
|
|
2609
|
+
experimental_attachments = fileParts.map((p) => ({
|
|
2610
|
+
url: p.url || "",
|
|
2611
|
+
contentType: p.mediaType
|
|
2612
|
+
}));
|
|
2613
|
+
}
|
|
2614
|
+
let content = void 0;
|
|
2615
|
+
if (textParts.length > 0) {
|
|
2616
|
+
content = textParts.map((p) => p.text).join("");
|
|
2617
|
+
}
|
|
2618
|
+
const v2Parts = parts.map((p) => {
|
|
2619
|
+
if (AIV5__namespace.isToolUIPart(p)) {
|
|
2620
|
+
const toolName = getToolName(p);
|
|
2621
|
+
const callProviderMetadata = "callProviderMetadata" in p ? p.callProviderMetadata : void 0;
|
|
2622
|
+
if (p.state === "output-available") {
|
|
2623
|
+
return {
|
|
2624
|
+
type: "tool-invocation",
|
|
2625
|
+
toolInvocation: {
|
|
2626
|
+
toolCallId: p.toolCallId,
|
|
2627
|
+
toolName,
|
|
2628
|
+
args: p.input,
|
|
2629
|
+
result: typeof p.output === "object" && p.output && "value" in p.output ? p.output.value : p.output,
|
|
2630
|
+
state: "result"
|
|
2631
|
+
},
|
|
2632
|
+
providerMetadata: callProviderMetadata
|
|
2633
|
+
};
|
|
2634
|
+
}
|
|
2635
|
+
return {
|
|
2636
|
+
type: "tool-invocation",
|
|
2637
|
+
toolInvocation: {
|
|
2638
|
+
toolCallId: p.toolCallId,
|
|
2639
|
+
toolName,
|
|
2640
|
+
args: p.input,
|
|
2641
|
+
state: "call"
|
|
2642
|
+
},
|
|
2643
|
+
providerMetadata: callProviderMetadata
|
|
2644
|
+
};
|
|
2645
|
+
}
|
|
2646
|
+
if (p.type === "reasoning") {
|
|
2647
|
+
return {
|
|
2648
|
+
type: "reasoning",
|
|
2649
|
+
reasoning: "",
|
|
2650
|
+
details: [
|
|
2651
|
+
{
|
|
2652
|
+
type: "text",
|
|
2653
|
+
text: p.text
|
|
2654
|
+
}
|
|
2655
|
+
],
|
|
2656
|
+
providerMetadata: p.providerMetadata
|
|
2657
|
+
};
|
|
2658
|
+
}
|
|
2659
|
+
if (p.type === "file") {
|
|
2660
|
+
return {
|
|
2661
|
+
type: "file",
|
|
2662
|
+
mimeType: p.mediaType,
|
|
2663
|
+
data: p.url || "",
|
|
2664
|
+
providerMetadata: p.providerMetadata
|
|
2665
|
+
};
|
|
2666
|
+
}
|
|
2667
|
+
if (p.type === "source-url") {
|
|
2668
|
+
return {
|
|
2669
|
+
type: "source",
|
|
2670
|
+
source: {
|
|
2671
|
+
url: p.url,
|
|
2672
|
+
sourceType: "url",
|
|
2673
|
+
id: p.url,
|
|
2674
|
+
// Use URL as ID
|
|
2675
|
+
providerMetadata: p.providerMetadata
|
|
2676
|
+
},
|
|
2677
|
+
providerMetadata: p.providerMetadata
|
|
2678
|
+
};
|
|
2679
|
+
}
|
|
2680
|
+
if (p.type === "text") {
|
|
2681
|
+
return {
|
|
2682
|
+
type: "text",
|
|
2683
|
+
text: p.text,
|
|
2684
|
+
providerMetadata: p.providerMetadata
|
|
2685
|
+
};
|
|
2686
|
+
}
|
|
2687
|
+
if (p.type === "step-start") {
|
|
2688
|
+
return p;
|
|
2689
|
+
}
|
|
2690
|
+
return null;
|
|
2691
|
+
}).filter((p) => p !== null);
|
|
2692
|
+
return {
|
|
2693
|
+
id: uiMsg.id,
|
|
2694
|
+
role: uiMsg.role,
|
|
2695
|
+
createdAt,
|
|
2696
|
+
threadId,
|
|
2697
|
+
resourceId,
|
|
2698
|
+
content: {
|
|
2699
|
+
format: 2,
|
|
2700
|
+
parts: v2Parts,
|
|
2701
|
+
toolInvocations,
|
|
2702
|
+
reasoning,
|
|
2703
|
+
experimental_attachments,
|
|
2704
|
+
content,
|
|
2705
|
+
metadata: Object.keys(cleanMetadata).length > 0 ? cleanMetadata : void 0
|
|
2706
|
+
}
|
|
2707
|
+
};
|
|
2708
|
+
}
|
|
2709
|
+
/**
|
|
2710
|
+
* Direct conversion from AIV5 ModelMessage to MastraDBMessage
|
|
2711
|
+
* Combines logic from aiV5ModelMessageToMastraMessageV3 + mastraMessageV3ToV2
|
|
2712
|
+
*/
|
|
2713
|
+
static aiV5ModelMessageToMastraDBMessage(modelMsg, _messageSource) {
|
|
2714
|
+
const content = Array.isArray(modelMsg.content) ? modelMsg.content : [{ type: "text", text: modelMsg.content }];
|
|
2715
|
+
const v2Parts = [];
|
|
2716
|
+
const toolInvocations = [];
|
|
2717
|
+
const reasoningParts = [];
|
|
2718
|
+
const experimental_attachments = [];
|
|
2719
|
+
const textParts = [];
|
|
2720
|
+
let lastPartWasToolResult = false;
|
|
2721
|
+
for (const part of content) {
|
|
2722
|
+
const providerMetadata = {
|
|
2723
|
+
...modelMsg.providerMetadata || {},
|
|
2724
|
+
...part.providerMetadata || {}
|
|
2725
|
+
};
|
|
2726
|
+
const hasProviderMetadata = Object.keys(providerMetadata).length > 0;
|
|
2727
|
+
if (part.type === "text") {
|
|
2728
|
+
const textPart = {
|
|
2729
|
+
type: "text",
|
|
2730
|
+
text: part.text,
|
|
2731
|
+
...hasProviderMetadata && { experimental_providerMetadata: providerMetadata }
|
|
2732
|
+
};
|
|
2733
|
+
v2Parts.push(textPart);
|
|
2734
|
+
textParts.push({ text: part.text, providerMetadata: hasProviderMetadata ? providerMetadata : void 0 });
|
|
2735
|
+
lastPartWasToolResult = false;
|
|
2736
|
+
} else if (part.type === "tool-call") {
|
|
2737
|
+
const toolCallPart = part;
|
|
2738
|
+
const toolInvocationPart = {
|
|
2739
|
+
type: "tool-invocation",
|
|
2740
|
+
toolInvocation: {
|
|
2741
|
+
toolCallId: toolCallPart.toolCallId,
|
|
2742
|
+
toolName: toolCallPart.toolName,
|
|
2743
|
+
args: toolCallPart.input,
|
|
2744
|
+
state: "call"
|
|
2745
|
+
},
|
|
2746
|
+
...hasProviderMetadata && { providerMetadata }
|
|
2747
|
+
};
|
|
2748
|
+
v2Parts.push(toolInvocationPart);
|
|
2749
|
+
toolInvocations.push({
|
|
2750
|
+
toolCallId: toolCallPart.toolCallId,
|
|
2751
|
+
toolName: toolCallPart.toolName,
|
|
2752
|
+
args: toolCallPart.input,
|
|
2753
|
+
state: "call"
|
|
2664
2754
|
});
|
|
2755
|
+
lastPartWasToolResult = false;
|
|
2756
|
+
} else if (part.type === "tool-result") {
|
|
2757
|
+
const toolResultPart = part;
|
|
2758
|
+
const matchingCall = toolInvocations.find((inv) => inv.toolCallId === toolResultPart.toolCallId);
|
|
2759
|
+
const matchingV2Part = v2Parts.find(
|
|
2760
|
+
(p) => p.type === "tool-invocation" && "toolInvocation" in p && p.toolInvocation.toolCallId === toolResultPart.toolCallId
|
|
2761
|
+
);
|
|
2762
|
+
if (matchingCall) {
|
|
2763
|
+
matchingCall.state = "result";
|
|
2764
|
+
matchingCall.result = typeof toolResultPart.output === "object" && toolResultPart.output && "value" in toolResultPart.output ? toolResultPart.output.value : toolResultPart.output;
|
|
2765
|
+
} else {
|
|
2766
|
+
const resultPartWithName = toolResultPart;
|
|
2767
|
+
toolInvocations.push({
|
|
2768
|
+
toolCallId: toolResultPart.toolCallId,
|
|
2769
|
+
toolName: resultPartWithName.toolName || "unknown",
|
|
2770
|
+
args: {},
|
|
2771
|
+
result: typeof toolResultPart.output === "object" && toolResultPart.output && "value" in toolResultPart.output ? toolResultPart.output.value : toolResultPart.output,
|
|
2772
|
+
state: "result"
|
|
2773
|
+
});
|
|
2774
|
+
}
|
|
2775
|
+
if (matchingV2Part && matchingV2Part.type === "tool-invocation") {
|
|
2776
|
+
matchingV2Part.toolInvocation.state = "result";
|
|
2777
|
+
matchingV2Part.toolInvocation.result = typeof toolResultPart.output === "object" && toolResultPart.output && "value" in toolResultPart.output ? toolResultPart.output.value : toolResultPart.output;
|
|
2778
|
+
if (hasProviderMetadata) {
|
|
2779
|
+
matchingV2Part.providerMetadata = providerMetadata;
|
|
2780
|
+
}
|
|
2781
|
+
} else {
|
|
2782
|
+
const resultPartWithName = toolResultPart;
|
|
2783
|
+
const toolInvocationPart = {
|
|
2784
|
+
type: "tool-invocation",
|
|
2785
|
+
toolInvocation: {
|
|
2786
|
+
toolCallId: toolResultPart.toolCallId,
|
|
2787
|
+
toolName: resultPartWithName.toolName || "unknown",
|
|
2788
|
+
args: {},
|
|
2789
|
+
result: typeof toolResultPart.output === "object" && toolResultPart.output && "value" in toolResultPart.output ? toolResultPart.output.value : toolResultPart.output,
|
|
2790
|
+
state: "result"
|
|
2791
|
+
},
|
|
2792
|
+
...hasProviderMetadata && { providerMetadata }
|
|
2793
|
+
};
|
|
2794
|
+
v2Parts.push(toolInvocationPart);
|
|
2795
|
+
}
|
|
2796
|
+
lastPartWasToolResult = true;
|
|
2797
|
+
} else if (part.type === "reasoning") {
|
|
2798
|
+
const reasoningPart = part;
|
|
2799
|
+
const v2ReasoningPart = {
|
|
2800
|
+
type: "reasoning",
|
|
2801
|
+
reasoning: reasoningPart.text,
|
|
2802
|
+
details: [{ type: "text", text: reasoningPart.text }],
|
|
2803
|
+
...hasProviderMetadata && { providerMetadata }
|
|
2804
|
+
};
|
|
2805
|
+
v2Parts.push(v2ReasoningPart);
|
|
2806
|
+
reasoningParts.push(reasoningPart.text);
|
|
2807
|
+
lastPartWasToolResult = false;
|
|
2808
|
+
} else if (part.type === "image") {
|
|
2809
|
+
const imagePart = part;
|
|
2810
|
+
let imageData;
|
|
2811
|
+
const mimeType = imagePart.mimeType || "image/jpeg";
|
|
2812
|
+
if ("url" in imagePart && typeof imagePart.url === "string") {
|
|
2813
|
+
imageData = imagePart.url;
|
|
2814
|
+
} else if ("data" in imagePart) {
|
|
2815
|
+
if (typeof imagePart.data === "string") {
|
|
2816
|
+
imageData = imagePart.data.startsWith("data:") || imagePart.data.startsWith("http") ? imagePart.data : `data:${mimeType};base64,${imagePart.data}`;
|
|
2817
|
+
} else {
|
|
2818
|
+
const base64 = Buffer.from(imagePart.data).toString("base64");
|
|
2819
|
+
imageData = `data:${mimeType};base64,${base64}`;
|
|
2820
|
+
}
|
|
2821
|
+
} else {
|
|
2822
|
+
imageData = "";
|
|
2823
|
+
}
|
|
2824
|
+
const imageFilePart = {
|
|
2825
|
+
type: "file",
|
|
2826
|
+
data: imageData,
|
|
2827
|
+
mimeType,
|
|
2828
|
+
...hasProviderMetadata && { providerMetadata }
|
|
2829
|
+
};
|
|
2830
|
+
v2Parts.push(imageFilePart);
|
|
2831
|
+
experimental_attachments.push({
|
|
2832
|
+
url: imageData,
|
|
2833
|
+
contentType: mimeType
|
|
2834
|
+
});
|
|
2835
|
+
lastPartWasToolResult = false;
|
|
2836
|
+
} else if (part.type === "file") {
|
|
2837
|
+
const filePart = part;
|
|
2838
|
+
const mimeType = filePart.mediaType || "application/octet-stream";
|
|
2839
|
+
let fileData;
|
|
2840
|
+
if ("url" in filePart && typeof filePart.url === "string") {
|
|
2841
|
+
fileData = filePart.url;
|
|
2842
|
+
} else if ("data" in filePart) {
|
|
2843
|
+
if (typeof filePart.data === "string") {
|
|
2844
|
+
fileData = filePart.data.startsWith("data:") || filePart.data.startsWith("http") ? filePart.data : `data:${mimeType};base64,${filePart.data}`;
|
|
2845
|
+
} else {
|
|
2846
|
+
const base64 = Buffer.from(filePart.data).toString("base64");
|
|
2847
|
+
fileData = `data:${mimeType};base64,${base64}`;
|
|
2848
|
+
}
|
|
2849
|
+
} else {
|
|
2850
|
+
fileData = "";
|
|
2851
|
+
}
|
|
2852
|
+
const v2FilePart = {
|
|
2853
|
+
type: "file",
|
|
2854
|
+
data: fileData,
|
|
2855
|
+
mimeType,
|
|
2856
|
+
...hasProviderMetadata && { providerMetadata }
|
|
2857
|
+
};
|
|
2858
|
+
v2Parts.push(v2FilePart);
|
|
2859
|
+
experimental_attachments.push({
|
|
2860
|
+
url: fileData,
|
|
2861
|
+
contentType: mimeType
|
|
2862
|
+
});
|
|
2863
|
+
lastPartWasToolResult = false;
|
|
2665
2864
|
}
|
|
2666
2865
|
}
|
|
2667
|
-
if (
|
|
2668
|
-
|
|
2669
|
-
|
|
2670
|
-
|
|
2671
|
-
|
|
2866
|
+
if (modelMsg.role === "assistant" && lastPartWasToolResult && v2Parts.length > 0) {
|
|
2867
|
+
const lastPart = v2Parts[v2Parts.length - 1];
|
|
2868
|
+
if (lastPart && lastPart.type !== "text") {
|
|
2869
|
+
const emptyTextPart = { type: "text", text: "" };
|
|
2870
|
+
v2Parts.push(emptyTextPart);
|
|
2871
|
+
textParts.push({ text: "" });
|
|
2872
|
+
}
|
|
2873
|
+
}
|
|
2874
|
+
let contentString = void 0;
|
|
2875
|
+
if (textParts.length > 0) {
|
|
2876
|
+
contentString = textParts.map((p) => p.text).join("\n");
|
|
2672
2877
|
}
|
|
2673
|
-
|
|
2878
|
+
const metadata = {};
|
|
2879
|
+
const id = `id` in modelMsg && typeof modelMsg.id === `string` ? modelMsg.id : `msg-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
|
|
2880
|
+
return {
|
|
2881
|
+
id,
|
|
2882
|
+
role: _MessageList.getRole(modelMsg),
|
|
2883
|
+
createdAt: /* @__PURE__ */ new Date(),
|
|
2884
|
+
content: {
|
|
2885
|
+
format: 2,
|
|
2886
|
+
parts: v2Parts,
|
|
2887
|
+
toolInvocations: toolInvocations.length > 0 ? toolInvocations : void 0,
|
|
2888
|
+
reasoning: reasoningParts.length > 0 ? reasoningParts.join("\n") : void 0,
|
|
2889
|
+
experimental_attachments: experimental_attachments.length > 0 ? experimental_attachments : void 0,
|
|
2890
|
+
content: contentString,
|
|
2891
|
+
metadata
|
|
2892
|
+
}
|
|
2893
|
+
};
|
|
2894
|
+
}
|
|
2895
|
+
aiV4CoreMessagesToAIV5ModelMessages(messages, source) {
|
|
2896
|
+
return this.aiV5UIMessagesToAIV5ModelMessages(
|
|
2897
|
+
messages.map((m) => this.aiV4CoreMessageToMastraDBMessage(m, source)).map((m) => _MessageList.mastraDBMessageToAIV5UIMessage(m))
|
|
2898
|
+
);
|
|
2674
2899
|
}
|
|
2675
|
-
aiV5UIMessagesToAIV5ModelMessages(messages) {
|
|
2676
|
-
const
|
|
2900
|
+
aiV5UIMessagesToAIV5ModelMessages(messages, filterIncompleteToolCalls = false) {
|
|
2901
|
+
const sanitized = this.sanitizeV5UIMessages(messages, filterIncompleteToolCalls);
|
|
2902
|
+
const preprocessed = this.addStartStepPartsForAIV5(sanitized);
|
|
2677
2903
|
const result = AIV5__namespace.convertToModelMessages(preprocessed);
|
|
2678
2904
|
return result;
|
|
2679
2905
|
}
|
|
@@ -2689,12 +2915,15 @@ var MessageList = class _MessageList {
|
|
|
2689
2915
|
}
|
|
2690
2916
|
return messages;
|
|
2691
2917
|
}
|
|
2692
|
-
sanitizeV5UIMessages(messages) {
|
|
2918
|
+
sanitizeV5UIMessages(messages, filterIncompleteToolCalls = false) {
|
|
2693
2919
|
const msgs = messages.map((m) => {
|
|
2694
2920
|
if (m.parts.length === 0) return false;
|
|
2695
2921
|
const safeParts = m.parts.filter((p) => {
|
|
2696
2922
|
if (!AIV5__namespace.isToolUIPart(p)) return true;
|
|
2697
|
-
|
|
2923
|
+
if (filterIncompleteToolCalls) {
|
|
2924
|
+
return p.state === "output-available" || p.state === "output-error";
|
|
2925
|
+
}
|
|
2926
|
+
return p.state !== "input-streaming";
|
|
2698
2927
|
});
|
|
2699
2928
|
if (!safeParts.length) return false;
|
|
2700
2929
|
const sanitized = {
|
|
@@ -2713,242 +2942,6 @@ var MessageList = class _MessageList {
|
|
|
2713
2942
|
}).filter((m) => Boolean(m));
|
|
2714
2943
|
return msgs;
|
|
2715
2944
|
}
|
|
2716
|
-
static mastraMessageV3ToAIV5UIMessage(m) {
|
|
2717
|
-
const metadata = {
|
|
2718
|
-
...m.content.metadata || {}
|
|
2719
|
-
};
|
|
2720
|
-
if (m.createdAt) metadata.createdAt = m.createdAt;
|
|
2721
|
-
if (m.threadId) metadata.threadId = m.threadId;
|
|
2722
|
-
if (m.resourceId) metadata.resourceId = m.resourceId;
|
|
2723
|
-
const filteredParts = m.content.parts;
|
|
2724
|
-
return {
|
|
2725
|
-
id: m.id,
|
|
2726
|
-
role: m.role,
|
|
2727
|
-
metadata,
|
|
2728
|
-
parts: filteredParts
|
|
2729
|
-
};
|
|
2730
|
-
}
|
|
2731
|
-
aiV5ModelMessagesToAIV4CoreMessages(messages, messageSource) {
|
|
2732
|
-
const v3 = messages.map((msg) => this.aiV5ModelMessageToMastraMessageV3(msg, messageSource));
|
|
2733
|
-
const v2 = v3.map(_MessageList.mastraMessageV3ToV2);
|
|
2734
|
-
const ui = v2.map(_MessageList.mastraMessageV2ToAIV4UIMessage);
|
|
2735
|
-
const core = this.aiV4UIMessagesToAIV4CoreMessages(ui);
|
|
2736
|
-
return core;
|
|
2737
|
-
}
|
|
2738
|
-
aiV4CoreMessagesToAIV5ModelMessages(messages, source) {
|
|
2739
|
-
return this.aiV5UIMessagesToAIV5ModelMessages(
|
|
2740
|
-
messages.map((m) => this.aiV4CoreMessageToMastraMessageV2(m, source)).map((m) => this.mastraMessageV2ToMastraMessageV3(m)).map((m) => _MessageList.mastraMessageV3ToAIV5UIMessage(m))
|
|
2741
|
-
);
|
|
2742
|
-
}
|
|
2743
|
-
aiV5UIMessageToMastraMessageV3(message, messageSource) {
|
|
2744
|
-
const content = {
|
|
2745
|
-
format: 3,
|
|
2746
|
-
parts: message.parts,
|
|
2747
|
-
metadata: message.metadata
|
|
2748
|
-
};
|
|
2749
|
-
const metadata = message.metadata;
|
|
2750
|
-
const createdAt = (() => {
|
|
2751
|
-
if ("createdAt" in message && message.createdAt instanceof Date) {
|
|
2752
|
-
return message.createdAt;
|
|
2753
|
-
}
|
|
2754
|
-
if (metadata && "createdAt" in metadata && metadata.createdAt instanceof Date) {
|
|
2755
|
-
return metadata.createdAt;
|
|
2756
|
-
}
|
|
2757
|
-
return void 0;
|
|
2758
|
-
})();
|
|
2759
|
-
if ("metadata" in message && message.metadata) {
|
|
2760
|
-
content.metadata = { ...message.metadata };
|
|
2761
|
-
}
|
|
2762
|
-
return {
|
|
2763
|
-
id: message.id || this.newMessageId(),
|
|
2764
|
-
role: _MessageList.getRole(message),
|
|
2765
|
-
createdAt: this.generateCreatedAt(messageSource, createdAt),
|
|
2766
|
-
threadId: this.memoryInfo?.threadId,
|
|
2767
|
-
resourceId: this.memoryInfo?.resourceId,
|
|
2768
|
-
content
|
|
2769
|
-
};
|
|
2770
|
-
}
|
|
2771
|
-
aiV5ModelMessageToMastraMessageV3(coreMessage, messageSource) {
|
|
2772
|
-
const id = `id` in coreMessage && typeof coreMessage.id === `string` ? coreMessage.id : this.newMessageId();
|
|
2773
|
-
const parts = [];
|
|
2774
|
-
if (typeof coreMessage.content === "string") {
|
|
2775
|
-
parts.push({
|
|
2776
|
-
type: "text",
|
|
2777
|
-
text: coreMessage.content,
|
|
2778
|
-
// Preserve providerOptions from ModelMessage level (e.g., system messages with cacheControl)
|
|
2779
|
-
..."providerOptions" in coreMessage && coreMessage.providerOptions ? { providerMetadata: coreMessage.providerOptions } : {}
|
|
2780
|
-
});
|
|
2781
|
-
} else if (Array.isArray(coreMessage.content)) {
|
|
2782
|
-
for (const part of coreMessage.content) {
|
|
2783
|
-
switch (part.type) {
|
|
2784
|
-
case "text":
|
|
2785
|
-
const prevPart = parts.at(-1);
|
|
2786
|
-
if (coreMessage.role === "assistant" && prevPart && AIV5__namespace.isToolUIPart(prevPart) && prevPart.state === "output-available") {
|
|
2787
|
-
parts.push({
|
|
2788
|
-
type: "step-start"
|
|
2789
|
-
});
|
|
2790
|
-
}
|
|
2791
|
-
const mergedProviderMetadataV3 = {
|
|
2792
|
-
..."providerOptions" in coreMessage && coreMessage.providerOptions ? coreMessage.providerOptions : {},
|
|
2793
|
-
...part.providerOptions || {}
|
|
2794
|
-
};
|
|
2795
|
-
parts.push({
|
|
2796
|
-
type: "text",
|
|
2797
|
-
text: part.text,
|
|
2798
|
-
...Object.keys(mergedProviderMetadataV3).length > 0 ? { providerMetadata: mergedProviderMetadataV3 } : {}
|
|
2799
|
-
});
|
|
2800
|
-
break;
|
|
2801
|
-
case "tool-call":
|
|
2802
|
-
parts.push({
|
|
2803
|
-
type: `tool-${part.toolName}`,
|
|
2804
|
-
state: "input-available",
|
|
2805
|
-
toolCallId: part.toolCallId,
|
|
2806
|
-
input: part.input
|
|
2807
|
-
});
|
|
2808
|
-
break;
|
|
2809
|
-
case "tool-result":
|
|
2810
|
-
parts.push({
|
|
2811
|
-
type: `tool-${part.toolName}`,
|
|
2812
|
-
state: "output-available",
|
|
2813
|
-
toolCallId: part.toolCallId,
|
|
2814
|
-
output: typeof part.output === "string" ? { type: "text", value: part.output } : part.output ?? { type: "text", value: "" },
|
|
2815
|
-
input: {},
|
|
2816
|
-
callProviderMetadata: part.providerOptions
|
|
2817
|
-
});
|
|
2818
|
-
break;
|
|
2819
|
-
case "reasoning":
|
|
2820
|
-
parts.push({
|
|
2821
|
-
type: "reasoning",
|
|
2822
|
-
text: part.text,
|
|
2823
|
-
providerMetadata: part.providerOptions
|
|
2824
|
-
});
|
|
2825
|
-
break;
|
|
2826
|
-
case "image": {
|
|
2827
|
-
let imageData;
|
|
2828
|
-
let extractedMimeType = part.mediaType;
|
|
2829
|
-
const imageStr = imageContentToDataUri(part.image, extractedMimeType || "image/png");
|
|
2830
|
-
const parsed = parseDataUri(imageStr);
|
|
2831
|
-
if (parsed.isDataUri) {
|
|
2832
|
-
imageData = parsed.base64Content;
|
|
2833
|
-
if (!extractedMimeType && parsed.mimeType) {
|
|
2834
|
-
extractedMimeType = parsed.mimeType;
|
|
2835
|
-
}
|
|
2836
|
-
} else if (imageStr.startsWith("http://") || imageStr.startsWith("https://")) {
|
|
2837
|
-
parts.push({
|
|
2838
|
-
type: "file",
|
|
2839
|
-
url: imageStr,
|
|
2840
|
-
mediaType: part.mediaType || "image/jpeg",
|
|
2841
|
-
// Default to image/jpeg for URLs
|
|
2842
|
-
providerMetadata: part.providerOptions
|
|
2843
|
-
});
|
|
2844
|
-
break;
|
|
2845
|
-
} else {
|
|
2846
|
-
imageData = imageStr;
|
|
2847
|
-
}
|
|
2848
|
-
const finalMimeType = extractedMimeType || "image/jpeg";
|
|
2849
|
-
const dataUri = imageData.startsWith("data:") ? imageData : createDataUri(imageData, finalMimeType);
|
|
2850
|
-
parts.push({
|
|
2851
|
-
type: "file",
|
|
2852
|
-
url: dataUri,
|
|
2853
|
-
mediaType: finalMimeType,
|
|
2854
|
-
providerMetadata: part.providerOptions
|
|
2855
|
-
});
|
|
2856
|
-
break;
|
|
2857
|
-
}
|
|
2858
|
-
case "file": {
|
|
2859
|
-
if (part.data instanceof URL) {
|
|
2860
|
-
const urlStr = part.data.toString();
|
|
2861
|
-
let extractedMimeType = part.mediaType;
|
|
2862
|
-
const parsed = parseDataUri(urlStr);
|
|
2863
|
-
if (parsed.isDataUri) {
|
|
2864
|
-
if (!extractedMimeType && parsed.mimeType) {
|
|
2865
|
-
extractedMimeType = parsed.mimeType;
|
|
2866
|
-
}
|
|
2867
|
-
if (parsed.base64Content !== urlStr) {
|
|
2868
|
-
const dataUri = createDataUri(parsed.base64Content, extractedMimeType || "image/png");
|
|
2869
|
-
parts.push({
|
|
2870
|
-
type: "file",
|
|
2871
|
-
url: dataUri,
|
|
2872
|
-
mediaType: extractedMimeType || "image/png",
|
|
2873
|
-
providerMetadata: part.providerOptions
|
|
2874
|
-
});
|
|
2875
|
-
} else {
|
|
2876
|
-
parts.push({
|
|
2877
|
-
type: "file",
|
|
2878
|
-
url: urlStr,
|
|
2879
|
-
mediaType: part.mediaType || "image/png",
|
|
2880
|
-
providerMetadata: part.providerOptions
|
|
2881
|
-
});
|
|
2882
|
-
}
|
|
2883
|
-
} else {
|
|
2884
|
-
parts.push({
|
|
2885
|
-
type: "file",
|
|
2886
|
-
url: urlStr,
|
|
2887
|
-
mediaType: part.mediaType || "application/octet-stream",
|
|
2888
|
-
providerMetadata: part.providerOptions
|
|
2889
|
-
});
|
|
2890
|
-
}
|
|
2891
|
-
} else if (typeof part.data === "string") {
|
|
2892
|
-
const categorized = categorizeFileData(part.data, part.mediaType);
|
|
2893
|
-
if (categorized.type === "url" || categorized.type === "dataUri") {
|
|
2894
|
-
parts.push({
|
|
2895
|
-
type: "file",
|
|
2896
|
-
url: part.data,
|
|
2897
|
-
mediaType: categorized.mimeType || "application/octet-stream",
|
|
2898
|
-
providerMetadata: part.providerOptions
|
|
2899
|
-
});
|
|
2900
|
-
} else {
|
|
2901
|
-
try {
|
|
2902
|
-
const base64Data = convertDataContentToBase64String(part.data);
|
|
2903
|
-
const dataUri = createDataUri(base64Data, categorized.mimeType || "image/png");
|
|
2904
|
-
parts.push({
|
|
2905
|
-
type: "file",
|
|
2906
|
-
url: dataUri,
|
|
2907
|
-
mediaType: categorized.mimeType || "image/png",
|
|
2908
|
-
providerMetadata: part.providerOptions
|
|
2909
|
-
});
|
|
2910
|
-
} catch (error) {
|
|
2911
|
-
console.error(`Failed to convert binary data to base64 in CoreMessage file part: ${error}`, error);
|
|
2912
|
-
}
|
|
2913
|
-
}
|
|
2914
|
-
} else {
|
|
2915
|
-
try {
|
|
2916
|
-
const base64Data = convertDataContentToBase64String(part.data);
|
|
2917
|
-
const dataUri = createDataUri(base64Data, part.mediaType || "image/png");
|
|
2918
|
-
parts.push({
|
|
2919
|
-
type: "file",
|
|
2920
|
-
url: dataUri,
|
|
2921
|
-
mediaType: part.mediaType || "image/png",
|
|
2922
|
-
providerMetadata: part.providerOptions
|
|
2923
|
-
});
|
|
2924
|
-
} catch (error) {
|
|
2925
|
-
console.error(`Failed to convert binary data to base64 in CoreMessage file part: ${error}`, error);
|
|
2926
|
-
}
|
|
2927
|
-
}
|
|
2928
|
-
break;
|
|
2929
|
-
}
|
|
2930
|
-
}
|
|
2931
|
-
}
|
|
2932
|
-
}
|
|
2933
|
-
const content = {
|
|
2934
|
-
format: 3,
|
|
2935
|
-
parts
|
|
2936
|
-
};
|
|
2937
|
-
if (coreMessage.content) {
|
|
2938
|
-
content.metadata = {
|
|
2939
|
-
...content.metadata || {},
|
|
2940
|
-
__originalContent: coreMessage.content
|
|
2941
|
-
};
|
|
2942
|
-
}
|
|
2943
|
-
return {
|
|
2944
|
-
id,
|
|
2945
|
-
role: _MessageList.getRole(coreMessage),
|
|
2946
|
-
createdAt: this.generateCreatedAt(messageSource),
|
|
2947
|
-
threadId: this.memoryInfo?.threadId,
|
|
2948
|
-
resourceId: this.memoryInfo?.resourceId,
|
|
2949
|
-
content
|
|
2950
|
-
};
|
|
2951
|
-
}
|
|
2952
2945
|
static hasAIV5UIMessageCharacteristics(msg) {
|
|
2953
2946
|
if (`toolInvocations` in msg || `reasoning` in msg || `experimental_attachments` in msg || `data` in msg || `annotations` in msg)
|
|
2954
2947
|
return false;
|
|
@@ -3040,37 +3033,9 @@ var MessageList = class _MessageList {
|
|
|
3040
3033
|
}
|
|
3041
3034
|
};
|
|
3042
3035
|
|
|
3043
|
-
// src/agent/message-list/utils/convert-messages.ts
|
|
3044
|
-
var MessageConverter = class {
|
|
3045
|
-
messageList;
|
|
3046
|
-
constructor(messages) {
|
|
3047
|
-
this.messageList = new MessageList();
|
|
3048
|
-
this.messageList.add(messages, "memory");
|
|
3049
|
-
}
|
|
3050
|
-
to(format) {
|
|
3051
|
-
switch (format) {
|
|
3052
|
-
case "Mastra.V2":
|
|
3053
|
-
return this.messageList.get.all.v2();
|
|
3054
|
-
case "AIV4.UI":
|
|
3055
|
-
return this.messageList.get.all.aiV4.ui();
|
|
3056
|
-
case "AIV4.Core":
|
|
3057
|
-
return this.messageList.get.all.aiV4.core();
|
|
3058
|
-
case "AIV5.UI":
|
|
3059
|
-
return this.messageList.get.all.aiV5.ui();
|
|
3060
|
-
case "AIV5.Model":
|
|
3061
|
-
return this.messageList.get.all.aiV5.model();
|
|
3062
|
-
default:
|
|
3063
|
-
throw new Error(`Unsupported output format: ${format}`);
|
|
3064
|
-
}
|
|
3065
|
-
}
|
|
3066
|
-
};
|
|
3067
|
-
function convertMessages(messages) {
|
|
3068
|
-
return new MessageConverter(messages);
|
|
3069
|
-
}
|
|
3070
|
-
|
|
3071
3036
|
exports.DefaultGeneratedFile = DefaultGeneratedFile;
|
|
3072
3037
|
exports.DefaultGeneratedFileWithType = DefaultGeneratedFileWithType;
|
|
3073
3038
|
exports.MessageList = MessageList;
|
|
3074
3039
|
exports.convertMessages = convertMessages;
|
|
3075
|
-
//# sourceMappingURL=chunk-
|
|
3076
|
-
//# sourceMappingURL=chunk-
|
|
3040
|
+
//# sourceMappingURL=chunk-ECFXGXWO.cjs.map
|
|
3041
|
+
//# sourceMappingURL=chunk-ECFXGXWO.cjs.map
|