@mastra/core 0.13.2 → 0.14.0-alpha.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/README.md +5 -44
- package/dist/agent/agent.types.d.ts +12 -2
- package/dist/agent/agent.types.d.ts.map +1 -1
- package/dist/agent/index.cjs +14 -14
- package/dist/agent/index.d.ts +17 -17
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/index.js +2 -2
- package/dist/agent/input-processor/index.cjs +28 -0
- package/dist/agent/input-processor/index.js +3 -0
- package/dist/agent/input-processor/processors/index.d.ts +4 -4
- package/dist/agent/input-processor/processors/index.d.ts.map +1 -1
- package/dist/agent/input-processor/processors/language-detector.d.ts +6 -139
- package/dist/agent/input-processor/processors/language-detector.d.ts.map +1 -1
- package/dist/agent/input-processor/processors/moderation.d.ts +5 -94
- package/dist/agent/input-processor/processors/moderation.d.ts.map +1 -1
- package/dist/agent/input-processor/processors/pii-detector.d.ts +6 -164
- package/dist/agent/input-processor/processors/pii-detector.d.ts.map +1 -1
- package/dist/agent/input-processor/processors/prompt-injection-detector.d.ts +6 -96
- package/dist/agent/input-processor/processors/prompt-injection-detector.d.ts.map +1 -1
- package/dist/agent/input-processor/processors/unicode-normalizer.d.ts +9 -25
- package/dist/agent/input-processor/processors/unicode-normalizer.d.ts.map +1 -1
- package/dist/agent/message-list/index.d.ts +138 -39
- package/dist/agent/message-list/index.d.ts.map +1 -1
- package/dist/agent/message-list/types.d.ts +3 -0
- package/dist/agent/message-list/types.d.ts.map +1 -0
- package/dist/agent/message-list/utils/ai-v4-v5/core-model-message.d.ts +3 -0
- package/dist/agent/message-list/utils/ai-v4-v5/core-model-message.d.ts.map +1 -0
- package/dist/agent/message-list/utils/ai-v4-v5/ui-message.d.ts +3 -0
- package/dist/agent/message-list/utils/ai-v4-v5/ui-message.d.ts.map +1 -0
- package/dist/agent/message-list/utils/ai-v5/tool.d.ts +16 -0
- package/dist/agent/message-list/utils/ai-v5/tool.d.ts.map +1 -0
- package/dist/agent/types.d.ts +34 -4
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/ai-tracing/base.d.ts +22 -7
- package/dist/ai-tracing/base.d.ts.map +1 -1
- package/dist/ai-tracing/default.d.ts +3 -3
- package/dist/ai-tracing/default.d.ts.map +1 -1
- package/dist/ai-tracing/index.cjs +253 -72
- package/dist/ai-tracing/index.cjs.map +1 -1
- package/dist/ai-tracing/index.d.ts +1 -0
- package/dist/ai-tracing/index.d.ts.map +1 -1
- package/dist/ai-tracing/index.js +243 -71
- package/dist/ai-tracing/index.js.map +1 -1
- package/dist/ai-tracing/no-op.d.ts +39 -7
- package/dist/ai-tracing/no-op.d.ts.map +1 -1
- package/dist/ai-tracing/registry.d.ts +29 -4
- package/dist/ai-tracing/registry.d.ts.map +1 -1
- package/dist/ai-tracing/types.d.ts +112 -53
- package/dist/ai-tracing/types.d.ts.map +1 -1
- package/dist/ai-tracing/utils.d.ts +24 -0
- package/dist/ai-tracing/utils.d.ts.map +1 -0
- package/dist/base.cjs +2 -2
- package/dist/base.js +1 -1
- package/dist/bundler/index.cjs +2 -2
- package/dist/bundler/index.js +1 -1
- package/dist/{chunk-N3VGOJZV.cjs → chunk-4BMFOQDC.cjs} +27 -47
- package/dist/chunk-4BMFOQDC.cjs.map +1 -0
- package/dist/{chunk-MTRRRTB4.js → chunk-4XDSHUFK.js} +7 -6
- package/dist/chunk-4XDSHUFK.js.map +1 -0
- package/dist/{chunk-SSJVFUBZ.js → chunk-67L5DRLO.js} +3 -3
- package/dist/{chunk-SSJVFUBZ.js.map → chunk-67L5DRLO.js.map} +1 -1
- package/dist/{chunk-FUERFM46.js → chunk-6GF5M4GX.js} +3 -3
- package/dist/{chunk-FUERFM46.js.map → chunk-6GF5M4GX.js.map} +1 -1
- package/dist/{chunk-7E2SNI5D.cjs → chunk-7AXX55C5.cjs} +5 -5
- package/dist/chunk-7AXX55C5.cjs.map +1 -0
- package/dist/{chunk-6W6LYR7M.js → chunk-7XGDFDZ2.js} +3 -3
- package/dist/{chunk-6W6LYR7M.js.map → chunk-7XGDFDZ2.js.map} +1 -1
- package/dist/{chunk-R4HT5XUH.cjs → chunk-ASJVWHIK.cjs} +993 -124
- package/dist/chunk-ASJVWHIK.cjs.map +1 -0
- package/dist/{chunk-ZDZ57MIU.js → chunk-AWILTHBM.js} +3 -3
- package/dist/{chunk-ZDZ57MIU.js.map → chunk-AWILTHBM.js.map} +1 -1
- package/dist/{chunk-DDYSOZ25.js → chunk-AYXRNQH3.js} +3 -3
- package/dist/{chunk-DDYSOZ25.js.map → chunk-AYXRNQH3.js.map} +1 -1
- package/dist/{chunk-U2CK6AN5.cjs → chunk-BCCEYWAV.cjs} +4 -4
- package/dist/{chunk-U2CK6AN5.cjs.map → chunk-BCCEYWAV.cjs.map} +1 -1
- package/dist/{chunk-MH64VYGF.cjs → chunk-CSTWQQ3C.cjs} +14 -13
- package/dist/chunk-CSTWQQ3C.cjs.map +1 -0
- package/dist/{chunk-FTPL7ILZ.js → chunk-CWZDKGJ6.js} +3 -3
- package/dist/{chunk-FTPL7ILZ.js.map → chunk-CWZDKGJ6.js.map} +1 -1
- package/dist/{chunk-MVSUZXER.cjs → chunk-D7P76YH6.cjs} +4 -4
- package/dist/{chunk-MVSUZXER.cjs.map → chunk-D7P76YH6.cjs.map} +1 -1
- package/dist/{chunk-IL5SHDY4.js → chunk-DAMIFZPW.js} +949 -103
- package/dist/chunk-DAMIFZPW.js.map +1 -0
- package/dist/{chunk-KLXRYVVQ.cjs → chunk-DVI6XHUC.cjs} +4 -4
- package/dist/{chunk-KLXRYVVQ.cjs.map → chunk-DVI6XHUC.cjs.map} +1 -1
- package/dist/chunk-ELKY3FEM.cjs +14 -0
- package/dist/{chunk-IP5NGA2S.cjs.map → chunk-ELKY3FEM.cjs.map} +1 -1
- package/dist/{chunk-TOODGJKM.js → chunk-GZVSHXPP.js} +3 -3
- package/dist/chunk-GZVSHXPP.js.map +1 -0
- package/dist/{chunk-WA3SWCXD.cjs → chunk-I4XP6RAN.cjs} +9 -9
- package/dist/{chunk-WA3SWCXD.cjs.map → chunk-I4XP6RAN.cjs.map} +1 -1
- package/dist/{chunk-PLVSXEQP.cjs → chunk-IAP4IWKM.cjs} +4 -4
- package/dist/{chunk-PLVSXEQP.cjs.map → chunk-IAP4IWKM.cjs.map} +1 -1
- package/dist/{chunk-YT4RGZYO.cjs → chunk-KXCUCBEI.cjs} +8 -8
- package/dist/{chunk-YT4RGZYO.cjs.map → chunk-KXCUCBEI.cjs.map} +1 -1
- package/dist/{chunk-Z74LG5VH.cjs → chunk-LFAAEOQC.cjs} +21 -4
- package/dist/chunk-LFAAEOQC.cjs.map +1 -0
- package/dist/{chunk-DK7AVDMI.cjs → chunk-LVVAUDVQ.cjs} +4 -4
- package/dist/{chunk-DK7AVDMI.cjs.map → chunk-LVVAUDVQ.cjs.map} +1 -1
- package/dist/{chunk-HBMZEZTO.js → chunk-ON4S33NP.js} +3 -3
- package/dist/{chunk-HBMZEZTO.js.map → chunk-ON4S33NP.js.map} +1 -1
- package/dist/{chunk-L6YBPFYF.js → chunk-OPT2L5AM.js} +1089 -81
- package/dist/chunk-OPT2L5AM.js.map +1 -0
- package/dist/{chunk-N2KMAW6T.js → chunk-P7WF6NQU.js} +20 -4
- package/dist/chunk-P7WF6NQU.js.map +1 -0
- package/dist/{chunk-KEMW2BER.js → chunk-PY4MHJTE.js} +3 -3
- package/dist/{chunk-KEMW2BER.js.map → chunk-PY4MHJTE.js.map} +1 -1
- package/dist/{chunk-TZVJV7EV.js → chunk-QSJZLHWA.js} +5 -5
- package/dist/{chunk-TZVJV7EV.js.map → chunk-QSJZLHWA.js.map} +1 -1
- package/dist/{chunk-DCOKWJ5G.cjs → chunk-RJCNC57P.cjs} +1110 -79
- package/dist/chunk-RJCNC57P.cjs.map +1 -0
- package/dist/{chunk-LMW44O4V.cjs → chunk-RPV7GQAX.cjs} +4 -4
- package/dist/{chunk-LMW44O4V.cjs.map → chunk-RPV7GQAX.cjs.map} +1 -1
- package/dist/{chunk-TZOR5M7H.js → chunk-RYCRCJCY.js} +25 -45
- package/dist/chunk-RYCRCJCY.js.map +1 -0
- package/dist/{chunk-IDDUQR6P.cjs → chunk-V5WKCX3G.cjs} +3 -3
- package/dist/chunk-V5WKCX3G.cjs.map +1 -0
- package/dist/{chunk-6AR2Z5ZG.js → chunk-X3GXU6TZ.js} +3 -3
- package/dist/chunk-X3GXU6TZ.js.map +1 -0
- package/dist/deployer/index.cjs +2 -2
- package/dist/deployer/index.js +1 -1
- package/dist/index.cjs +74 -70
- package/dist/index.js +14 -14
- package/dist/llm/index.d.ts +2 -1
- package/dist/llm/index.d.ts.map +1 -1
- package/dist/llm/model/base.types.d.ts +2 -6
- package/dist/llm/model/base.types.d.ts.map +1 -1
- package/dist/llm/model/index.d.ts +0 -1
- package/dist/llm/model/index.d.ts.map +1 -1
- package/dist/llm/model/model.d.ts +3 -2
- package/dist/llm/model/model.d.ts.map +1 -1
- package/dist/llm/model/model.loop.d.ts +25 -0
- package/dist/llm/model/model.loop.d.ts.map +1 -0
- package/dist/llm/model/model.loop.types.d.ts +39 -0
- package/dist/llm/model/model.loop.types.d.ts.map +1 -0
- package/dist/llm/model/shared.types.d.ts +8 -0
- package/dist/llm/model/shared.types.d.ts.map +1 -0
- package/dist/logger/constants.d.ts +1 -1
- package/dist/logger/index.cjs +6 -6
- package/dist/logger/index.js +1 -1
- package/dist/loop/index.cjs +2848 -0
- package/dist/loop/index.cjs.map +1 -0
- package/dist/loop/index.d.ts +2 -0
- package/dist/loop/index.d.ts.map +1 -0
- package/dist/loop/index.js +2842 -0
- package/dist/loop/index.js.map +1 -0
- package/dist/loop/loop.d.ts +5 -0
- package/dist/loop/loop.d.ts.map +1 -0
- package/dist/loop/telemetry/index.d.ts +36 -0
- package/dist/loop/telemetry/index.d.ts.map +1 -0
- package/dist/loop/telemetry/noop.d.ts +3 -0
- package/dist/loop/telemetry/noop.d.ts.map +1 -0
- package/dist/loop/test-utils/fullStream.d.ts +6 -0
- package/dist/loop/test-utils/fullStream.d.ts.map +1 -0
- package/dist/loop/test-utils/generateText.d.ts +6 -0
- package/dist/loop/test-utils/generateText.d.ts.map +1 -0
- package/dist/loop/test-utils/mockTracer.d.ts +47 -0
- package/dist/loop/test-utils/mockTracer.d.ts.map +1 -0
- package/dist/loop/test-utils/options.d.ts +6 -0
- package/dist/loop/test-utils/options.d.ts.map +1 -0
- package/dist/loop/test-utils/resultObject.d.ts +6 -0
- package/dist/loop/test-utils/resultObject.d.ts.map +1 -0
- package/dist/loop/test-utils/streamObject.d.ts +6 -0
- package/dist/loop/test-utils/streamObject.d.ts.map +1 -0
- package/dist/loop/test-utils/telemetry.d.ts +6 -0
- package/dist/loop/test-utils/telemetry.d.ts.map +1 -0
- package/dist/loop/test-utils/textStream.d.ts +6 -0
- package/dist/loop/test-utils/textStream.d.ts.map +1 -0
- package/dist/loop/test-utils/toUIMessageStream.d.ts +6 -0
- package/dist/loop/test-utils/toUIMessageStream.d.ts.map +1 -0
- package/dist/loop/test-utils/tools.d.ts +6 -0
- package/dist/loop/test-utils/tools.d.ts.map +1 -0
- package/dist/loop/test-utils/utils.d.ts +40 -0
- package/dist/loop/test-utils/utils.d.ts.map +1 -0
- package/dist/loop/types.d.ts +68 -0
- package/dist/loop/types.d.ts.map +1 -0
- package/dist/loop/workflow/llm-execution.d.ts +80 -0
- package/dist/loop/workflow/llm-execution.d.ts.map +1 -0
- package/dist/loop/workflow/outer-llm-step.d.ts +43 -0
- package/dist/loop/workflow/outer-llm-step.d.ts.map +1 -0
- package/dist/loop/workflow/run-state.d.ts +24 -0
- package/dist/loop/workflow/run-state.d.ts.map +1 -0
- package/dist/loop/workflow/schema.d.ts +80 -0
- package/dist/loop/workflow/schema.d.ts.map +1 -0
- package/dist/loop/workflow/stream.d.ts +6 -0
- package/dist/loop/workflow/stream.d.ts.map +1 -0
- package/dist/loop/workflow/tool-call-step.d.ts +41 -0
- package/dist/loop/workflow/tool-call-step.d.ts.map +1 -0
- package/dist/mastra/index.cjs +2 -2
- package/dist/mastra/index.d.ts +4 -5
- package/dist/mastra/index.d.ts.map +1 -1
- package/dist/mastra/index.js +1 -1
- package/dist/mcp/index.cjs +4 -4
- package/dist/mcp/index.js +2 -2
- package/dist/memory/index.cjs +4 -4
- package/dist/memory/index.js +1 -1
- package/dist/network/index.cjs +6 -6
- package/dist/network/index.cjs.map +1 -1
- package/dist/network/index.js +3 -3
- package/dist/network/index.js.map +1 -1
- package/dist/network/network.d.ts +8 -7
- package/dist/network/network.d.ts.map +1 -1
- package/dist/network/vNext/index.cjs +21 -21
- package/dist/network/vNext/index.cjs.map +1 -1
- package/dist/network/vNext/index.d.ts +7 -7
- package/dist/network/vNext/index.d.ts.map +1 -1
- package/dist/network/vNext/index.js +7 -7
- package/dist/network/vNext/index.js.map +1 -1
- package/dist/processors/index.cjs +512 -0
- package/dist/processors/index.cjs.map +1 -0
- package/dist/processors/index.d.ts +38 -0
- package/dist/processors/index.d.ts.map +1 -0
- package/dist/processors/index.js +481 -0
- package/dist/processors/index.js.map +1 -0
- package/dist/processors/processors/batch-parts.d.ts +42 -0
- package/dist/processors/processors/batch-parts.d.ts.map +1 -0
- package/dist/processors/processors/index.d.ts +10 -0
- package/dist/processors/processors/index.d.ts.map +1 -0
- package/dist/processors/processors/language-detector.d.ts +151 -0
- package/dist/processors/processors/language-detector.d.ts.map +1 -0
- package/dist/processors/processors/moderation.d.ts +130 -0
- package/dist/processors/processors/moderation.d.ts.map +1 -0
- package/dist/processors/processors/pii-detector.d.ts +197 -0
- package/dist/processors/processors/pii-detector.d.ts.map +1 -0
- package/dist/processors/processors/prompt-injection-detector.d.ts +108 -0
- package/dist/processors/processors/prompt-injection-detector.d.ts.map +1 -0
- package/dist/processors/processors/structured-output.d.ts +42 -0
- package/dist/processors/processors/structured-output.d.ts.map +1 -0
- package/dist/processors/processors/system-prompt-scrubber.d.ts +92 -0
- package/dist/processors/processors/system-prompt-scrubber.d.ts.map +1 -0
- package/dist/processors/processors/token-limiter.d.ts +66 -0
- package/dist/processors/processors/token-limiter.d.ts.map +1 -0
- package/dist/processors/processors/unicode-normalizer.d.ts +34 -0
- package/dist/processors/processors/unicode-normalizer.d.ts.map +1 -0
- package/dist/processors/runner.d.ts +41 -0
- package/dist/processors/runner.d.ts.map +1 -0
- package/dist/relevance/index.cjs +4 -4
- package/dist/relevance/index.js +1 -1
- package/dist/scores/index.cjs +5 -5
- package/dist/scores/index.js +2 -2
- package/dist/server/index.cjs +2 -2
- package/dist/server/index.js +1 -1
- package/dist/storage/domains/operations/base.d.ts.map +1 -1
- package/dist/storage/index.cjs +15 -17
- package/dist/storage/index.cjs.map +1 -1
- package/dist/storage/index.js +4 -6
- package/dist/storage/index.js.map +1 -1
- package/dist/stream/aisdk/v4/transform.d.ts +26 -0
- package/dist/stream/aisdk/v4/transform.d.ts.map +1 -1
- package/dist/stream/aisdk/v5/compat.d.ts +159 -0
- package/dist/stream/aisdk/v5/compat.d.ts.map +1 -0
- package/dist/stream/aisdk/v5/execute.d.ts +29 -0
- package/dist/stream/aisdk/v5/execute.d.ts.map +1 -0
- package/dist/stream/aisdk/v5/file.d.ts +38 -0
- package/dist/stream/aisdk/v5/file.d.ts.map +1 -0
- package/dist/stream/aisdk/v5/input.d.ts +15 -0
- package/dist/stream/aisdk/v5/input.d.ts.map +1 -0
- package/dist/stream/aisdk/v5/object/schema.d.ts +4 -0
- package/dist/stream/aisdk/v5/object/schema.d.ts.map +1 -0
- package/dist/stream/aisdk/v5/object/stream-object.d.ts +34 -0
- package/dist/stream/aisdk/v5/object/stream-object.d.ts.map +1 -0
- package/dist/stream/aisdk/v5/output-helpers.d.ts +76 -0
- package/dist/stream/aisdk/v5/output-helpers.d.ts.map +1 -0
- package/dist/stream/aisdk/v5/output.d.ts +119 -0
- package/dist/stream/aisdk/v5/output.d.ts.map +1 -0
- package/dist/stream/aisdk/v5/test-utils.d.ts +19 -0
- package/dist/stream/aisdk/v5/test-utils.d.ts.map +1 -0
- package/dist/stream/aisdk/v5/transform.d.ts +31 -0
- package/dist/stream/aisdk/v5/transform.d.ts.map +1 -0
- package/dist/stream/base/input.d.ts +1 -1
- package/dist/stream/base/output.d.ts +89 -0
- package/dist/stream/base/output.d.ts.map +1 -0
- package/dist/stream/types.d.ts +30 -0
- package/dist/stream/types.d.ts.map +1 -1
- package/dist/test-utils/llm-mock.cjs +2 -2
- package/dist/test-utils/llm-mock.cjs.map +1 -1
- package/dist/test-utils/llm-mock.d.ts +2 -2
- package/dist/test-utils/llm-mock.d.ts.map +1 -1
- package/dist/test-utils/llm-mock.js +2 -2
- package/dist/test-utils/llm-mock.js.map +1 -1
- package/dist/tools/tool-builder/builder.d.ts +3 -2
- package/dist/tools/tool-builder/builder.d.ts.map +1 -1
- package/dist/tools/types.d.ts +9 -0
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/tts/index.cjs +2 -2
- package/dist/tts/index.js +1 -1
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils.cjs +19 -15
- package/dist/utils.d.ts +3 -2
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +1 -1
- package/dist/vector/index.cjs +2 -2
- package/dist/vector/index.js +1 -1
- package/dist/voice/index.cjs +4 -4
- package/dist/voice/index.js +1 -1
- package/dist/workflows/default.d.ts.map +1 -1
- package/dist/workflows/index.cjs +10 -10
- package/dist/workflows/index.js +1 -1
- package/dist/workflows/legacy/index.cjs +22 -22
- package/dist/workflows/legacy/index.js +1 -1
- package/loop.d.ts +1 -0
- package/package.json +16 -1
- package/processors.d.ts +1 -0
- package/dist/agent/input-processor/processors/index.cjs +0 -28
- package/dist/agent/input-processor/processors/index.js +0 -3
- package/dist/agent/input-processor/runner.d.ts +0 -4
- package/dist/agent/input-processor/runner.d.ts.map +0 -1
- package/dist/chunk-6AR2Z5ZG.js.map +0 -1
- package/dist/chunk-7E2SNI5D.cjs.map +0 -1
- package/dist/chunk-DCOKWJ5G.cjs.map +0 -1
- package/dist/chunk-IDDUQR6P.cjs.map +0 -1
- package/dist/chunk-IL5SHDY4.js.map +0 -1
- package/dist/chunk-IP5NGA2S.cjs +0 -14
- package/dist/chunk-L6YBPFYF.js.map +0 -1
- package/dist/chunk-MH64VYGF.cjs.map +0 -1
- package/dist/chunk-MTRRRTB4.js.map +0 -1
- package/dist/chunk-N2KMAW6T.js.map +0 -1
- package/dist/chunk-N3VGOJZV.cjs.map +0 -1
- package/dist/chunk-R4HT5XUH.cjs.map +0 -1
- package/dist/chunk-TOODGJKM.js.map +0 -1
- package/dist/chunk-TZOR5M7H.js.map +0 -1
- package/dist/chunk-Z74LG5VH.cjs.map +0 -1
- package/dist/llm/model/base.d.ts +0 -26
- package/dist/llm/model/base.d.ts.map +0 -1
- /package/dist/agent/input-processor/{processors/index.cjs.map → index.cjs.map} +0 -0
- /package/dist/agent/input-processor/{processors/index.js.map → index.js.map} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/stream/aisdk/v5/compat.ts","../../src/stream/aisdk/v5/object/schema.ts","../../src/stream/aisdk/v5/object/stream-object.ts","../../src/stream/aisdk/v5/output-helpers.ts","../../src/stream/aisdk/v5/transform.ts","../../src/stream/aisdk/v5/output.ts","../../src/stream/base/output.ts","../../src/loop/telemetry/noop.ts","../../src/loop/telemetry/index.ts","../../src/stream/base/input.ts","../../src/stream/aisdk/v5/input.ts","../../src/stream/aisdk/v5/execute.ts","../../src/loop/workflow/run-state.ts","../../src/loop/workflow/schema.ts","../../src/loop/workflow/llm-execution.ts","../../src/loop/workflow/tool-call-step.ts","../../src/loop/workflow/outer-llm-step.ts","../../src/loop/workflow/stream.ts","../../src/loop/loop.ts"],"names":["toolFn","asSchema","TransformStream","parsePartialJson","isDeepEqualData","DefaultGeneratedFile","DefaultGeneratedFileWithType","rest","createTextStreamResponse","createUIMessageStreamResponse","getErrorMessage","createUIMessageStream","consumeStream","MastraBase","chunk","trace","stream","isAbortError","z","tool","createStep","usage","responseMetadata","text","toolCall","createWorkflow","ReadableStream","ConsoleLogger","generateId"],"mappings":"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","file":"index.cjs","sourcesContent":["import type {\n LanguageModelV2FunctionTool,\n LanguageModelV2ProviderDefinedTool,\n LanguageModelV2ToolChoice,\n} from '@ai-sdk/provider-v5';\nimport { asSchema, tool as toolFn } from 'ai-v5';\nimport type { TextStreamPart, Tool, ToolChoice, ToolSet, UIMessage } from 'ai-v5';\n\nexport function convertFullStreamChunkToUIMessageStream({\n part,\n messageMetadataValue,\n sendReasoning,\n sendSources,\n onError,\n sendStart,\n sendFinish,\n responseMessageId,\n}: {\n part: TextStreamPart<ToolSet>;\n messageMetadataValue?: any;\n sendReasoning?: boolean;\n sendSources?: boolean;\n onError: (error: any) => string;\n sendStart?: boolean;\n sendFinish?: boolean;\n responseMessageId?: string;\n}) {\n const partType = part.type;\n\n switch (partType) {\n case 'text-start': {\n return {\n type: 'text-start',\n id: part.id,\n ...(part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}),\n };\n }\n\n case 'text-delta': {\n return {\n type: 'text-delta',\n id: part.id,\n delta: part.text,\n ...(part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}),\n };\n }\n\n case 'text-end': {\n return {\n type: 'text-end',\n id: part.id,\n ...(part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}),\n };\n }\n\n case 'reasoning-start': {\n return {\n type: 'reasoning-start',\n id: part.id,\n ...(part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}),\n };\n }\n\n case 'reasoning-delta': {\n if (sendReasoning) {\n return {\n type: 'reasoning-delta',\n id: part.id,\n delta: part.text,\n ...(part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}),\n };\n }\n return;\n }\n\n case 'reasoning-end': {\n return {\n type: 'reasoning-end',\n id: part.id,\n ...(part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}),\n };\n }\n\n case 'file': {\n return {\n type: 'file',\n mediaType: part.file.mediaType,\n url: `data:${part.file.mediaType};base64,${part.file.base64}`,\n };\n }\n\n case 'source': {\n if (sendSources && part.sourceType === 'url') {\n return {\n type: 'source-url',\n sourceId: part.id,\n url: part.url,\n title: part.title,\n ...(part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}),\n };\n }\n\n if (sendSources && part.sourceType === 'document') {\n return {\n type: 'source-document',\n sourceId: part.id,\n mediaType: part.mediaType,\n title: part.title,\n filename: part.filename,\n ...(part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}),\n };\n }\n return;\n }\n\n case 'tool-input-start': {\n return {\n type: 'tool-input-start',\n toolCallId: part.id,\n toolName: part.toolName,\n ...(part.providerExecuted != null ? { providerExecuted: part.providerExecuted } : {}),\n ...(part.dynamic != null ? { dynamic: part.dynamic } : {}),\n };\n }\n\n case 'tool-input-delta': {\n return {\n type: 'tool-input-delta',\n toolCallId: part.id,\n inputTextDelta: part.delta,\n };\n }\n\n case 'tool-call': {\n return {\n type: 'tool-input-available',\n toolCallId: part.toolCallId,\n toolName: part.toolName,\n input: part.input,\n ...(part.providerExecuted != null ? { providerExecuted: part.providerExecuted } : {}),\n ...(part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}),\n ...(part.dynamic != null ? { dynamic: part.dynamic } : {}),\n };\n }\n\n case 'tool-result': {\n return {\n type: 'tool-output-available',\n toolCallId: part.toolCallId,\n output: part.output,\n ...(part.providerExecuted != null ? { providerExecuted: part.providerExecuted } : {}),\n ...(part.dynamic != null ? { dynamic: part.dynamic } : {}),\n };\n }\n\n case 'tool-error': {\n return {\n type: 'tool-output-error',\n toolCallId: part.toolCallId,\n errorText: onError(part.error),\n ...(part.providerExecuted != null ? { providerExecuted: part.providerExecuted } : {}),\n ...(part.dynamic != null ? { dynamic: part.dynamic } : {}),\n };\n }\n\n case 'error': {\n return {\n type: 'error',\n errorText: onError(part.error),\n };\n }\n\n case 'start-step': {\n return { type: 'start-step' };\n }\n\n case 'finish-step': {\n return { type: 'finish-step' };\n }\n\n case 'start': {\n if (sendStart) {\n return {\n type: 'start',\n ...(messageMetadataValue != null ? { messageMetadata: messageMetadataValue } : {}),\n ...(responseMessageId != null ? { messageId: responseMessageId } : {}),\n };\n }\n return;\n }\n\n case 'finish': {\n if (sendFinish) {\n return {\n type: 'finish',\n ...(messageMetadataValue != null ? { messageMetadata: messageMetadataValue } : {}),\n };\n }\n return;\n }\n\n case 'abort': {\n return part;\n }\n\n case 'tool-input-end': {\n return;\n }\n\n case 'raw': {\n // Raw chunks are not included in UI message streams\n // as they contain provider-specific data for developer use\n return;\n }\n\n default: {\n const exhaustiveCheck: never = partType;\n throw new Error(`Unknown chunk type: ${exhaustiveCheck}`);\n }\n }\n}\n\nexport function getResponseUIMessageId({\n originalMessages,\n responseMessageId,\n}: {\n originalMessages: UIMessage[] | undefined;\n responseMessageId: string | any;\n}) {\n // when there are no original messages (i.e. no persistence),\n // the assistant message id generation is handled on the client side.\n if (originalMessages == null) {\n return undefined;\n }\n\n const lastMessage = originalMessages[originalMessages.length - 1];\n\n return lastMessage?.role === 'assistant'\n ? lastMessage.id\n : typeof responseMessageId === 'function'\n ? responseMessageId()\n : responseMessageId;\n}\n\nexport type ConsumeStreamOptions = {\n onError?: (error: unknown) => void;\n};\n\nexport async function consumeStream({\n stream,\n onError,\n}: {\n stream: ReadableStream;\n onError?: (error: unknown) => void;\n}): Promise<void> {\n const reader = stream.getReader();\n try {\n while (true) {\n const { done } = await reader.read();\n if (done) break;\n }\n } catch (error) {\n console.log('consumeStream error', error);\n onError?.(error);\n } finally {\n reader.releaseLock();\n }\n}\n\nexport function prepareToolsAndToolChoice<TOOLS extends Record<string, Tool>>({\n tools,\n toolChoice,\n activeTools,\n}: {\n tools: TOOLS | undefined;\n toolChoice: ToolChoice<TOOLS> | undefined;\n activeTools: Array<keyof TOOLS> | undefined;\n}): {\n tools: Array<LanguageModelV2FunctionTool | LanguageModelV2ProviderDefinedTool> | undefined;\n toolChoice: LanguageModelV2ToolChoice | undefined;\n} {\n if (Object.keys(tools || {}).length === 0) {\n return {\n tools: undefined,\n toolChoice: undefined,\n };\n }\n\n // when activeTools is provided, we only include the tools that are in the list:\n const filteredTools =\n activeTools != null\n ? Object.entries(tools || {}).filter(([name]) => activeTools.includes(name as keyof TOOLS))\n : Object.entries(tools || {});\n\n return {\n tools: filteredTools\n .map(([name, tool]) => {\n try {\n let inputSchema;\n if ('inputSchema' in tool) {\n inputSchema = tool.inputSchema;\n } else if ('parameters' in tool) {\n inputSchema = tool.parameters;\n }\n\n const sdkTool = toolFn({\n type: 'function',\n ...tool,\n inputSchema,\n } as any);\n\n const toolType = sdkTool?.type ?? 'function';\n\n switch (toolType) {\n case undefined:\n case 'dynamic':\n case 'function':\n return {\n type: 'function' as const,\n name,\n description: sdkTool.description,\n inputSchema: asSchema(sdkTool.inputSchema).jsonSchema,\n providerOptions: sdkTool.providerOptions,\n };\n case 'provider-defined':\n return {\n type: 'provider-defined' as const,\n name,\n // TODO: as any seems wrong here. are there cases where we don't have an id?\n id: (sdkTool as any).id,\n args: (sdkTool as any).args,\n };\n default: {\n const exhaustiveCheck: never = toolType;\n throw new Error(`Unsupported tool type: ${exhaustiveCheck}`);\n }\n }\n } catch (e) {\n console.error('Error preparing tool', e);\n return null;\n }\n })\n .filter(tool => tool !== null) as (LanguageModelV2FunctionTool | LanguageModelV2ProviderDefinedTool)[],\n toolChoice:\n toolChoice == null\n ? { type: 'auto' }\n : typeof toolChoice === 'string'\n ? { type: toolChoice }\n : { type: 'tool' as const, toolName: toolChoice.toolName as string },\n };\n}\n\n/**\n * Delayed promise. It is only constructed once the value is accessed.\n * This is useful to avoid unhandled promise rejections when the promise is created\n * but not accessed.\n */\nexport class DelayedPromise<T> {\n private status: { type: 'pending' } | { type: 'resolved'; value: T } | { type: 'rejected'; error: unknown } = {\n type: 'pending',\n };\n private _promise: Promise<T> | undefined;\n private _resolve: undefined | ((value: T) => void) = undefined;\n private _reject: undefined | ((error: unknown) => void) = undefined;\n\n get promise(): Promise<T> {\n if (this._promise) {\n return this._promise;\n }\n\n this._promise = new Promise<T>((resolve, reject) => {\n if (this.status.type === 'resolved') {\n resolve(this.status.value);\n } else if (this.status.type === 'rejected') {\n reject(this.status.error);\n }\n\n this._resolve = resolve;\n this._reject = reject;\n });\n\n return this._promise;\n }\n\n resolve(value: T): void {\n this.status = { type: 'resolved', value };\n\n if (this._promise) {\n this._resolve?.(value);\n }\n }\n\n reject(error: unknown): void {\n this.status = { type: 'rejected', error };\n\n if (this._promise) {\n this._reject?.(error);\n }\n }\n}\n","import type { LanguageModelV2CallOptions } from '@ai-sdk/provider-v5';\nimport { asSchema } from 'ai-v5';\nimport type { JSONSchema7 } from 'ai-v5';\nimport type { ObjectOptions } from '../../../../loop/types';\n\ntype OutputMode = 'object' | 'array' | 'no-schema' | undefined;\n\nfunction getOutputSchema({ schema, output }: { schema?: Parameters<typeof asSchema>[0]; output?: OutputMode }) {\n if (output === 'no-schema') {\n return undefined;\n }\n const jsonSchema = schema ? asSchema(schema).jsonSchema : undefined;\n if (!jsonSchema) {\n return undefined;\n }\n\n if (output === 'array') {\n const { $schema, ...itemSchema } = jsonSchema;\n const arrayOutputSchema: JSONSchema7 = {\n $schema: $schema,\n type: 'object',\n properties: {\n elements: { type: 'array', items: itemSchema },\n },\n required: ['elements'],\n additionalProperties: false,\n };\n return arrayOutputSchema;\n }\n\n return jsonSchema;\n}\n\nexport function getResponseFormat(options: ObjectOptions): NonNullable<LanguageModelV2CallOptions['responseFormat']> {\n // response format type is 'json' when 'output' is 'object', 'array', or 'no-schema' OR if schema is provided\n if (\n (!options?.output && options?.schema) ||\n options?.output === 'object' ||\n options?.output === 'array' ||\n options?.output === 'no-schema'\n ) {\n return {\n type: 'json',\n schema: getOutputSchema({ schema: options?.schema, output: options?.output }),\n name: options?.schemaName,\n description: options?.schemaDescription,\n };\n }\n // response format 'text' for everything else (regular text gen, tool calls, etc)\n return {\n type: 'text',\n };\n}\n","import { TransformStream } from 'stream/web';\nimport { isDeepEqualData, parsePartialJson } from 'ai-v5';\nimport type { ObjectOptions } from '../../../../loop/types';\nimport { getResponseFormat } from './schema';\n\n/**\n * Transforms raw text-delta chunks into structured object chunks for JSON mode streaming.\n *\n * For JSON response formats, this transformer:\n * - Accumulates text deltas and parses them as partial JSON\n * - Emits 'object' chunks when the parsed structure changes\n * - For arrays: filters incomplete elements and unwraps from {elements: [...]} wrapper\n * - For objects/no-schema: emits the parsed object directly\n * - Always passes through original chunks for downstream processing\n */\nexport function createObjectStreamTransformer({\n objectOptions,\n onFinish,\n onError,\n}: {\n objectOptions: ObjectOptions;\n /**\n * Callback to be called when the stream finishes.\n * @param data The final parsed object / array\n */\n onFinish: (data: any) => void;\n /**\n * Callback to be called when the stream finishes with an error.\n * @param error The error that occurred (incorrect schema / no object generated etc)\n */\n onError: (error: any) => void;\n}) {\n let textAccumulatedText = '';\n let textPreviousObject: any = undefined;\n let textPreviousFilteredArray: any[];\n\n const responseFormat = getResponseFormat(objectOptions);\n\n return new TransformStream({\n async transform(chunk, controller) {\n if (!objectOptions) {\n controller.enqueue(chunk);\n return;\n }\n\n if (responseFormat.type === 'json' && chunk.type === 'text-delta' && typeof chunk.payload.text === 'string') {\n if (objectOptions?.output === 'array') {\n textAccumulatedText += chunk.payload.text;\n const { value: currentObjectJson, state: parseState } = await parsePartialJson(textAccumulatedText);\n\n if (currentObjectJson !== undefined && !isDeepEqualData(textPreviousObject, currentObjectJson)) {\n // For arrays, extract and filter elements\n const rawElements = (currentObjectJson as any)?.elements || [];\n const filteredElements: any[] = [];\n\n // Filter out incomplete elements (like empty objects {})\n for (let i = 0; i < rawElements.length; i++) {\n const element = rawElements[i];\n\n // Skip the last element if it's incomplete (unless this is the final parse)\n if (i === rawElements.length - 1 && parseState !== 'successful-parse') {\n // Only include the last element if it has meaningful content\n if (element && typeof element === 'object' && Object.keys(element).length > 0) {\n filteredElements.push(element);\n }\n } else {\n // Include all non-last elements that have content\n if (element && typeof element === 'object' && Object.keys(element).length > 0) {\n filteredElements.push(element);\n }\n }\n }\n\n // Only emit if the filtered array has actually changed\n if (!isDeepEqualData(textPreviousFilteredArray, filteredElements)) {\n textPreviousFilteredArray = [...filteredElements];\n controller.enqueue({\n type: 'object',\n object: filteredElements,\n });\n }\n\n textPreviousObject = currentObjectJson;\n }\n } else if (objectOptions?.output === 'no-schema' || !objectOptions?.output) {\n textAccumulatedText += chunk.payload.text;\n const { value: currentObjectJson } = await parsePartialJson(textAccumulatedText);\n\n if (\n currentObjectJson !== undefined &&\n typeof currentObjectJson === 'object' &&\n !isDeepEqualData(textPreviousObject, currentObjectJson)\n ) {\n textPreviousObject = currentObjectJson;\n controller.enqueue({\n type: 'object',\n object: currentObjectJson,\n });\n }\n }\n }\n\n // Always pass through the original chunk for downstream processing\n controller.enqueue(chunk);\n },\n\n // TODO: validate against the provided schema,\n // TODO: then call onFinish(data) if valid or call onError(err) if invalid\n // TODO: so that the object promise can be resolved/rejected\n flush() {\n if (responseFormat.type === 'json') {\n if (objectOptions?.output === 'array') {\n onFinish(textPreviousFilteredArray);\n } else {\n onFinish(textPreviousObject);\n }\n\n if (!textPreviousObject && !textPreviousFilteredArray) {\n onError('No object generated: could not parse the response.');\n }\n }\n },\n });\n}\n\n/**\n * Transforms object chunks into JSON text chunks for streaming.\n *\n * This transformer:\n * - For arrays: emits opening bracket, new elements, and closing bracket\n * - For objects/no-schema: emits the object as JSON\n */\nexport function createJsonTextStreamTransformer(objectOptions: ObjectOptions) {\n let previousArrayLength = 0;\n let hasStartedArray = false;\n\n return new TransformStream<any, string>({\n transform(chunk, controller) {\n if (chunk.type !== 'object') {\n return;\n }\n\n if (objectOptions?.output === 'array') {\n if (!hasStartedArray) {\n // Emit opening bracket if this is the first object in an array\n controller.enqueue('[');\n hasStartedArray = true;\n }\n // Emit new elements that were added\n for (let i = previousArrayLength; i < chunk.object.length; i++) {\n const elementJson = JSON.stringify(chunk.object[i]);\n if (i > 0) {\n controller.enqueue(',' + elementJson);\n } else {\n controller.enqueue(elementJson);\n }\n }\n previousArrayLength = chunk.object.length;\n } else {\n // For non-array objects, just emit as JSON\n controller.enqueue(JSON.stringify(chunk.object));\n }\n },\n flush(controller) {\n // Close the array when the stream ends\n if (hasStartedArray && objectOptions?.output === 'array') {\n controller.enqueue(']');\n }\n },\n });\n}\n","import type { ReasoningUIPart, StepResult, ToolSet } from 'ai-v5';\nimport type { MastraMessageV2 } from '../../../memory';\nimport type { StepBufferItem } from '../../types';\n\nexport class DefaultStepResult<TOOLS extends ToolSet> implements StepResult<TOOLS> {\n readonly content: StepResult<TOOLS>['content'];\n readonly finishReason: StepResult<TOOLS>['finishReason'];\n readonly usage: StepResult<TOOLS>['usage'];\n readonly warnings: StepResult<TOOLS>['warnings'];\n readonly request: StepResult<TOOLS>['request'];\n readonly response: StepResult<TOOLS>['response'];\n readonly providerMetadata: StepResult<TOOLS>['providerMetadata'];\n\n constructor({\n content,\n finishReason,\n usage,\n warnings,\n request,\n response,\n providerMetadata,\n }: {\n content: StepResult<TOOLS>['content'];\n finishReason: StepResult<TOOLS>['finishReason'];\n usage: StepResult<TOOLS>['usage'];\n warnings: StepResult<TOOLS>['warnings'];\n request: StepResult<TOOLS>['request'];\n response: StepResult<TOOLS>['response'];\n providerMetadata: StepResult<TOOLS>['providerMetadata'];\n }) {\n this.content = content;\n this.finishReason = finishReason;\n this.usage = usage;\n this.warnings = warnings;\n this.request = request;\n this.response = response;\n this.providerMetadata = providerMetadata;\n }\n\n get text() {\n return this.content\n .filter(part => part.type === 'text')\n .map(part => part.text)\n .join('');\n }\n\n get reasoning() {\n return this.content.filter(part => part.type === 'reasoning');\n }\n\n get reasoningText() {\n return this.reasoning.length === 0 ? undefined : this.reasoning.map(part => part.text).join('');\n }\n\n get files() {\n return this.content.filter(part => part.type === 'file').map(part => part.file);\n }\n\n get sources() {\n return this.content.filter(part => part.type === 'source');\n }\n\n get toolCalls() {\n return this.content.filter(part => part.type === 'tool-call');\n }\n\n get staticToolCalls() {\n // @ts-ignore\n return this.toolCalls.filter((toolCall): toolCall is StaticToolCall<TOOLS> => toolCall.dynamic === false);\n }\n\n get dynamicToolCalls() {\n // @ts-ignore\n return this.toolCalls.filter((toolCall): toolCall is DynamicToolCall => toolCall.dynamic === true);\n }\n\n get toolResults() {\n return this.content.filter(part => part.type === 'tool-result');\n }\n\n get staticToolResults() {\n // @ts-ignore\n return this.toolResults.filter((toolResult): toolResult is StaticToolResult<TOOLS> => toolResult.dynamic === false);\n }\n\n get dynamicToolResults() {\n // @ts-ignore\n return this.toolResults.filter((toolResult): toolResult is DynamicToolResult => toolResult.dynamic === true);\n }\n}\n\nexport function reasoningDetailsFromMessages(messages: MastraMessageV2[]): ReasoningUIPart[] {\n return messages\n .flatMap(msg => {\n // v3 messages have content.parts array\n if (msg.content?.parts && Array.isArray(msg.content.parts)) {\n return msg.content.parts;\n }\n return [];\n })\n .filter(part => part.type === `reasoning`)\n .flatMap(part => {\n return {\n type: 'reasoning',\n text: part.reasoning,\n details: part.details,\n };\n });\n}\n\nexport function transformSteps({ steps }: { steps: StepBufferItem[] }): DefaultStepResult<any>[] {\n return steps.map(step => {\n return new DefaultStepResult({\n content: step.content,\n warnings: step.warnings ?? [],\n providerMetadata: step.providerMetadata,\n finishReason: step.finishReason as StepResult<ToolSet>['finishReason'],\n response: {\n ...step.response,\n },\n request: step.request,\n usage: step.usage,\n });\n });\n}\n","import type {\n LanguageModelV2FinishReason,\n LanguageModelV2StreamPart,\n LanguageModelV2Usage,\n SharedV2ProviderMetadata,\n} from '@ai-sdk/provider-v5';\nimport type { ObjectStreamPart, TextStreamPart, ToolSet } from 'ai-v5';\nimport type { ChunkType } from '../../types';\nimport { DefaultGeneratedFile, DefaultGeneratedFileWithType } from './file';\n\ntype StreamPart =\n | Exclude<LanguageModelV2StreamPart, { type: 'finish' }>\n | {\n type: 'finish';\n finishReason: LanguageModelV2FinishReason;\n usage: LanguageModelV2Usage;\n providerMetadata: SharedV2ProviderMetadata;\n messages: {\n all: any[];\n user: any[];\n nonUser: any[];\n };\n };\n\nexport function convertFullStreamChunkToMastra(value: StreamPart, ctx: { runId: string }) {\n switch (value.type) {\n case 'response-metadata':\n return {\n type: 'response-metadata',\n runId: ctx.runId,\n from: 'AGENT',\n payload: value,\n };\n case 'text-start':\n return {\n type: 'text-start',\n runId: ctx.runId,\n from: 'AGENT',\n payload: {\n id: value.id,\n providerMetadata: value.providerMetadata,\n },\n };\n case 'text-delta':\n if (value.delta) {\n return {\n type: 'text-delta',\n runId: ctx.runId,\n from: 'AGENT',\n payload: {\n id: value.id,\n providerMetadata: value.providerMetadata,\n text: value.delta,\n },\n };\n }\n return;\n\n case 'text-end':\n return {\n type: 'text-end',\n runId: ctx.runId,\n from: 'AGENT',\n payload: value,\n };\n\n case 'reasoning-start':\n return {\n type: 'reasoning-start',\n runId: ctx.runId,\n from: 'AGENT',\n payload: {\n id: value.id,\n providerMetadata: value.providerMetadata,\n },\n };\n\n case 'reasoning-delta':\n return {\n type: 'reasoning-delta',\n runId: ctx.runId,\n from: 'AGENT',\n payload: {\n id: value.id,\n providerMetadata: value.providerMetadata,\n text: value.delta,\n },\n };\n\n case 'reasoning-end':\n return {\n type: 'reasoning-end',\n runId: ctx.runId,\n from: 'AGENT',\n payload: {\n id: value.id,\n providerMetadata: value.providerMetadata,\n },\n };\n\n case 'source':\n return {\n type: 'source',\n runId: ctx.runId,\n from: 'AGENT',\n payload: {\n id: value.id,\n sourceType: value.sourceType,\n title: value.title,\n mimeType: value.sourceType === 'document' ? value.mediaType : undefined,\n filename: value.sourceType === 'document' ? value.filename : undefined,\n url: value.sourceType === 'url' ? value.url : undefined,\n providerMetadata: value.providerMetadata,\n },\n };\n\n case 'file':\n return {\n type: 'file',\n runId: ctx.runId,\n from: 'AGENT',\n payload: {\n data: value.data,\n base64: typeof value.data === 'string' ? value.data : undefined,\n mimeType: value.mediaType,\n },\n };\n\n case 'tool-call':\n return {\n type: 'tool-call',\n runId: ctx.runId,\n from: 'AGENT',\n payload: {\n toolCallId: value.toolCallId,\n toolName: value.toolName,\n args: value.input ? JSON.parse(value.input) : undefined,\n providerExecuted: value.providerExecuted,\n providerMetadata: value.providerMetadata,\n },\n };\n\n case 'tool-result':\n return {\n type: 'tool-result',\n runId: ctx.runId,\n from: 'AGENT',\n payload: {\n toolCallId: value.toolCallId,\n toolName: value.toolName,\n result: value.result,\n isError: value.isError,\n providerExecuted: value.providerExecuted,\n providerMetadata: value.providerMetadata,\n },\n };\n\n case 'tool-input-start':\n return {\n type: 'tool-call-input-streaming-start',\n runId: ctx.runId,\n from: 'AGENT',\n payload: {\n toolCallId: value.id,\n toolName: value.toolName,\n providerExecuted: value.providerExecuted,\n providerMetadata: value.providerMetadata,\n },\n };\n\n case 'tool-input-delta':\n if (value.delta) {\n return {\n type: 'tool-call-delta',\n runId: ctx.runId,\n from: 'AGENT',\n payload: {\n argsTextDelta: value.delta,\n toolCallId: value.id,\n providerMetadata: value.providerMetadata,\n },\n };\n }\n return;\n\n case 'tool-input-end':\n return {\n type: 'tool-call-input-streaming-end',\n runId: ctx.runId,\n from: 'AGENT',\n payload: {\n toolCallId: value.id,\n providerMetadata: value.providerMetadata,\n },\n };\n\n case 'finish':\n const { finishReason, usage, providerMetadata, messages, ...rest } = value;\n return {\n type: 'finish',\n runId: ctx.runId,\n from: 'AGENT',\n payload: {\n stepResult: {\n reason: value.finishReason,\n },\n output: {\n usage: {\n ...(value.usage ?? {}),\n totalTokens:\n value?.usage?.totalTokens ?? (value.usage?.inputTokens ?? 0) + (value.usage?.outputTokens ?? 0),\n },\n },\n metadata: {\n providerMetadata: value.providerMetadata,\n },\n messages,\n ...rest,\n },\n };\n case 'error':\n return {\n type: 'error',\n runId: ctx.runId,\n from: 'AGENT',\n payload: value,\n };\n\n case 'raw':\n return {\n type: 'raw',\n runId: ctx.runId,\n from: 'AGENT',\n payload: value.rawValue as any,\n };\n }\n return;\n // if (value.type === 'step-start') {\n // return {\n // type: 'step-start',\n // runId: ctx.runId,\n // from: 'AGENT',\n // payload: {\n // messageId: value.messageId,\n // request: { body: JSON.parse(value.request!.body ?? '{}') },\n // warnings: value.warnings,\n // },\n // };\n // } else if (value.type === 'tool-error') {\n // return {\n // type: 'tool-error',\n // runId: ctx.runId,\n // from: 'AGENT',\n // payload: {\n // id: value.id,\n // providerMetadata: value.providerMetadata,\n // toolCallId: value.toolCallId,\n // toolName: value.toolName,\n // args: value.args,\n // error: value.error,\n // },\n // };\n // } else if (value.type === 'step-finish') {\n // return {\n // type: 'step-finish',\n // runId: ctx.runId,\n // from: 'AGENT',\n // payload: {\n // id: value.id,\n // providerMetadata: value.providerMetadata,\n // reason: value.finishReason,\n // totalUsage: value.usage,\n // response: value.response,\n // messageId: value.messageId,\n // },\n // };\n // else if (value.type === 'reasoning-signature') {\n // return {\n // type: 'reasoning-signature',\n // runId: ctx.runId,\n // from: 'AGENT',\n // payload: {\n // id: value.id,\n // signature: value.signature,\n // providerMetadata: value.providerMetadata,\n // },\n // };\n // } else if (value.type === 'redacted-reasoning') {\n // return {\n // type: 'redacted-reasoning',\n // runId: ctx.runId,\n // from: 'AGENT',\n // payload: {\n // id: value.id,\n // data: value.data,\n // providerMetadata: value.providerMetadata,\n // },\n // };\n // else if (value.type === 'error') {\n // return {\n // type: 'error',\n // runId: ctx.runId,\n // from: 'AGENT',\n // payload: {\n // id: value.id,\n // providerMetadata: value.providerMetadata,\n // error: value.error,\n // },\n // };\n // }\n}\n\nexport type OutputChunkType = TextStreamPart<ToolSet> | ObjectStreamPart<any> | undefined;\n\nexport function convertMastraChunkToAISDKv5({\n chunk,\n mode = 'stream',\n}: {\n chunk: ChunkType;\n mode?: 'generate' | 'stream';\n}): OutputChunkType {\n switch (chunk.type) {\n case 'start':\n return {\n type: 'start',\n };\n case 'step-start':\n const { messageId: _messageId, ...rest } = chunk.payload;\n return {\n type: 'start-step',\n request: rest.request,\n warnings: rest.warnings,\n };\n case 'raw':\n return {\n type: 'raw',\n rawValue: chunk.payload,\n };\n\n case 'finish': {\n return {\n type: 'finish',\n finishReason: chunk.payload.stepResult.reason,\n totalUsage: chunk.payload.output.usage,\n } as any;\n }\n case 'reasoning-start':\n return {\n type: 'reasoning-start',\n id: chunk.payload.id,\n providerMetadata: chunk.payload.providerMetadata,\n };\n case 'reasoning-delta':\n return {\n type: 'reasoning-delta',\n id: chunk.payload.id,\n text: chunk.payload.text,\n providerMetadata: chunk.payload.providerMetadata,\n };\n case 'reasoning-signature':\n throw new Error('AISDKv5 chunk type \"reasoning-signature\" not supported');\n // return {\n // type: 'reasoning-signature' as const,\n // id: chunk.payload.id,\n // signature: chunk.payload.signature,\n // };\n case 'redacted-reasoning':\n throw new Error('AISDKv5 chunk type \"redacted-reasoning\" not supported');\n // return {\n // type: 'redacted-reasoning',\n // id: chunk.payload.id,\n // data: chunk.payload.data,\n // };\n case 'reasoning-end':\n return {\n type: 'reasoning-end',\n id: chunk.payload.id,\n providerMetadata: chunk.payload.providerMetadata,\n };\n case 'source':\n return {\n type: 'source',\n id: chunk.payload.id,\n sourceType: chunk.payload.sourceType,\n filename: chunk.payload.filename,\n mediaType: chunk.payload.mimeType,\n title: chunk.payload.title,\n url: chunk.payload.url,\n providerMetadata: chunk.payload.providerMetadata,\n };\n case 'file':\n if (mode === 'generate') {\n return {\n type: 'file',\n file: new DefaultGeneratedFile({\n data: chunk.payload.data,\n mediaType: chunk.payload.mimeType,\n }),\n };\n }\n\n return {\n type: 'file',\n file: new DefaultGeneratedFileWithType({\n data: chunk.payload.data,\n mediaType: chunk.payload.mimeType,\n }),\n };\n case 'tool-call':\n return {\n type: 'tool-call',\n toolCallId: chunk.payload.toolCallId,\n providerMetadata: chunk.payload.providerMetadata,\n providerExecuted: chunk.payload.providerExecuted,\n toolName: chunk.payload.toolName,\n input: chunk.payload.args,\n };\n case 'tool-call-input-streaming-start':\n return {\n type: 'tool-input-start',\n id: chunk.payload.toolCallId,\n toolName: chunk.payload.toolName,\n dynamic: !!chunk.payload.dynamic,\n providerMetadata: chunk.payload.providerMetadata,\n providerExecuted: chunk.payload.providerExecuted,\n };\n case 'tool-call-input-streaming-end':\n return {\n type: 'tool-input-end',\n id: chunk.payload.toolCallId,\n providerMetadata: chunk.payload.providerMetadata,\n };\n case 'tool-call-delta':\n return {\n type: 'tool-input-delta',\n id: chunk.payload.toolCallId,\n delta: chunk.payload.argsTextDelta,\n providerMetadata: chunk.payload.providerMetadata,\n };\n case 'step-finish': {\n const { request: _request, providerMetadata, ...rest } = chunk.payload.metadata;\n return {\n type: 'finish-step',\n response: rest,\n usage: chunk.payload.output.usage, // ?\n finishReason: chunk.payload.stepResult.reason,\n providerMetadata,\n };\n }\n case 'text-delta':\n return {\n type: 'text-delta',\n id: chunk.payload.id,\n text: chunk.payload.text,\n providerMetadata: chunk.payload.providerMetadata,\n };\n case 'text-end':\n return {\n type: 'text-end',\n id: chunk.payload.id,\n providerMetadata: chunk.payload.providerMetadata,\n };\n case 'text-start':\n return {\n type: 'text-start',\n id: chunk.payload.id,\n providerMetadata: chunk.payload.providerMetadata,\n };\n case 'tool-result':\n return {\n type: 'tool-result',\n input: chunk.payload.args,\n toolCallId: chunk.payload.toolCallId,\n providerExecuted: chunk.payload.providerExecuted,\n toolName: chunk.payload.toolName,\n output: chunk.payload.result,\n // providerMetadata: chunk.payload.providerMetadata, // AI v5 types don't show this?\n };\n case 'tool-error':\n return {\n type: 'tool-error',\n error: chunk.payload.error,\n input: chunk.payload.args,\n toolCallId: chunk.payload.toolCallId,\n providerExecuted: chunk.payload.providerExecuted,\n toolName: chunk.payload.toolName,\n // providerMetadata: chunk.payload.providerMetadata, // AI v5 types don't show this?\n };\n\n case 'abort':\n return {\n type: 'abort',\n };\n\n case 'error':\n return {\n type: 'error',\n error: chunk.payload.error,\n };\n }\n}\n","import { TransformStream } from 'stream/web';\nimport { getErrorMessage } from '@ai-sdk/provider-v5';\nimport { consumeStream, createTextStreamResponse, createUIMessageStream, createUIMessageStreamResponse } from 'ai-v5';\nimport type { TextStreamPart, ToolSet, UIMessage, UIMessageStreamOptions } from 'ai-v5';\nimport type { MessageList } from '../../../agent/message-list';\nimport type { ObjectOptions } from '../../../loop/types';\nimport type { MastraModelOutput } from '../../base/output';\nimport type { ChunkType } from '../../types';\nimport type { ConsumeStreamOptions } from './compat';\nimport { getResponseUIMessageId, convertFullStreamChunkToUIMessageStream } from './compat';\nimport { transformSteps } from './output-helpers';\nimport { convertMastraChunkToAISDKv5 } from './transform';\nimport type { OutputChunkType } from './transform';\n\ntype AISDKV5OutputStreamOptions = {\n toolCallStreaming?: boolean;\n includeRawChunks?: boolean;\n objectOptions?: ObjectOptions;\n};\n\nexport class AISDKV5OutputStream {\n #modelOutput: MastraModelOutput;\n #options: AISDKV5OutputStreamOptions;\n #messageList: MessageList;\n\n constructor({\n modelOutput,\n options,\n messageList,\n }: {\n modelOutput: MastraModelOutput;\n options: AISDKV5OutputStreamOptions;\n messageList: MessageList;\n }) {\n this.#modelOutput = modelOutput;\n this.#options = options;\n this.#messageList = messageList;\n }\n\n toTextStreamResponse(init?: ResponseInit): Response {\n return createTextStreamResponse({\n textStream: this.#modelOutput.textStream as any,\n ...init,\n });\n }\n\n toUIMessageStreamResponse<UI_MESSAGE extends UIMessage>({\n // @ts-ignore\n generateMessageId,\n originalMessages,\n sendFinish,\n sendReasoning,\n sendSources,\n onError,\n sendStart,\n messageMetadata,\n onFinish,\n ...init\n }: UIMessageStreamOptions<UI_MESSAGE> & ResponseInit = {}) {\n return createUIMessageStreamResponse({\n stream: this.toUIMessageStream({\n // @ts-ignore\n generateMessageId,\n originalMessages,\n sendFinish,\n sendReasoning,\n sendSources,\n onError,\n sendStart,\n messageMetadata,\n onFinish,\n }),\n ...init,\n });\n }\n\n toUIMessageStream<UI_MESSAGE extends UIMessage>({\n // @ts-ignore\n generateMessageId,\n originalMessages,\n sendFinish = true,\n sendReasoning = true,\n sendSources = false,\n onError = getErrorMessage,\n sendStart = true,\n messageMetadata,\n onFinish,\n }: UIMessageStreamOptions<UI_MESSAGE> = {}) {\n const responseMessageId =\n generateMessageId != null\n ? getResponseUIMessageId({\n originalMessages,\n responseMessageId: generateMessageId,\n })\n : undefined;\n\n return createUIMessageStream({\n onError,\n onFinish,\n generateId: () => responseMessageId ?? generateMessageId?.(),\n execute: async ({ writer }) => {\n for await (const part of this.fullStream) {\n const messageMetadataValue = messageMetadata?.({ part: part as TextStreamPart<ToolSet> });\n\n const partType = part.type;\n\n const transformedChunk = convertFullStreamChunkToUIMessageStream({\n part: part as TextStreamPart<ToolSet>,\n sendReasoning,\n messageMetadataValue,\n sendSources,\n sendStart,\n sendFinish,\n responseMessageId,\n onError,\n });\n\n if (transformedChunk) {\n writer.write(transformedChunk as any);\n }\n\n // start and finish events already have metadata\n // so we only need to send metadata for other parts\n if (messageMetadataValue != null && partType !== 'start' && partType !== 'finish') {\n writer.write({\n type: 'message-metadata',\n messageMetadata: messageMetadataValue,\n });\n }\n }\n },\n });\n }\n\n async consumeStream(options?: ConsumeStreamOptions): Promise<void> {\n try {\n await consumeStream({\n stream: this.fullStream.pipeThrough(\n new TransformStream({\n transform(chunk, controller) {\n controller.enqueue(chunk);\n },\n }),\n ) as any,\n onError: options?.onError,\n });\n } catch (error) {\n console.log('consumeStream error', error);\n options?.onError?.(error);\n }\n }\n\n get sources() {\n return this.#modelOutput.sources.map(source => {\n return convertMastraChunkToAISDKv5({\n chunk: source,\n });\n });\n }\n\n get files() {\n return this.#modelOutput.files\n .map(file => {\n if (file.type === 'file') {\n return (\n convertMastraChunkToAISDKv5({\n chunk: file,\n }) as any\n )?.file;\n }\n return;\n })\n .filter(Boolean);\n }\n\n get generateTextFiles() {\n return this.#modelOutput.files\n .map(file => {\n if (file.type === 'file') {\n return (\n convertMastraChunkToAISDKv5({\n chunk: file,\n mode: 'generate',\n }) as any\n )?.file;\n }\n return;\n })\n .filter(Boolean);\n }\n\n get toolCalls() {\n return this.#modelOutput.toolCalls.map(toolCall => {\n return convertMastraChunkToAISDKv5({\n chunk: toolCall,\n });\n });\n }\n\n get toolResults() {\n return this.#modelOutput.toolResults.map(toolResult => {\n return convertMastraChunkToAISDKv5({\n chunk: toolResult,\n });\n });\n }\n\n get reasoningText() {\n return this.#modelOutput.reasoningText;\n }\n\n get reasoning() {\n return this.#modelOutput.reasoningDetails;\n }\n\n get response() {\n return {\n ...this.#modelOutput.response,\n };\n }\n\n get steps() {\n return transformSteps({ steps: this.#modelOutput.steps });\n }\n\n get generateTextSteps() {\n return transformSteps({ steps: this.#modelOutput.steps });\n }\n\n get content() {\n return this.#messageList.get.response.aiV5.modelContent();\n }\n\n get fullStream() {\n let startEvent: OutputChunkType;\n let hasStarted: boolean = false;\n\n // let stepCounter = 1;\n const fullStream = this.#modelOutput.fullStream;\n\n return fullStream.pipeThrough(\n new TransformStream<ChunkType, NonNullable<OutputChunkType>>({\n transform(chunk, controller) {\n if (chunk.type === 'step-start' && !startEvent) {\n startEvent = convertMastraChunkToAISDKv5({\n chunk,\n });\n // stepCounter++;\n return;\n } else if (chunk.type !== 'error') {\n hasStarted = true;\n }\n\n if (startEvent && hasStarted) {\n controller.enqueue(startEvent as any);\n startEvent = undefined;\n }\n\n const transformedChunk = convertMastraChunkToAISDKv5({\n chunk,\n });\n\n if (transformedChunk) {\n // if (!['start', 'finish', 'finish-step'].includes(transformedChunk.type)) {\n // console.log('step counter', stepCounter);\n // transformedChunk.id = transformedChunk.id ?? stepCounter.toString();\n // }\n\n controller.enqueue(transformedChunk);\n }\n },\n }),\n );\n }\n\n async getFullOutput() {\n await this.consumeStream();\n\n let object: any;\n if (this.#options.objectOptions) {\n object = await this.object;\n }\n\n return {\n text: this.#modelOutput.text,\n usage: this.#modelOutput.usage,\n steps: this.generateTextSteps,\n finishReason: this.#modelOutput.finishReason,\n warnings: this.#modelOutput.warnings,\n providerMetadata: this.#modelOutput.providerMetadata,\n request: this.#modelOutput.request,\n reasoning: this.reasoning,\n reasoningText: this.reasoningText,\n toolCalls: this.toolCalls,\n toolResults: this.toolResults,\n sources: this.sources,\n files: this.generateTextFiles,\n response: this.response,\n content: this.content,\n totalUsage: this.#modelOutput.totalUsage,\n ...(object ? { object } : {}),\n // experimental_output: // TODO\n };\n }\n\n get object() {\n return this.#modelOutput.object;\n }\n}\n","import type { ReadableStream } from 'stream/web';\nimport { TransformStream } from 'stream/web';\nimport type { Span } from '@opentelemetry/api';\nimport { consumeStream } from 'ai-v5';\nimport type { TelemetrySettings } from 'ai-v5';\nimport type { MessageList } from '../../agent/message-list';\nimport { MastraBase } from '../../base';\nimport type { ObjectOptions } from '../../loop/types';\nimport { DelayedPromise } from '../aisdk/v5/compat';\nimport type { ConsumeStreamOptions } from '../aisdk/v5/compat';\nimport { getResponseFormat } from '../aisdk/v5/object/schema';\nimport { createJsonTextStreamTransformer, createObjectStreamTransformer } from '../aisdk/v5/object/stream-object';\nimport { AISDKV5OutputStream } from '../aisdk/v5/output';\nimport { reasoningDetailsFromMessages, transformSteps } from '../aisdk/v5/output-helpers';\nimport type { BufferedByStep, ChunkType, StepBufferItem } from '../types';\n\ntype MastraModelOutputOptions = {\n runId: string;\n rootSpan?: Span;\n telemetry_settings?: TelemetrySettings;\n toolCallStreaming?: boolean;\n onFinish?: (event: any) => Promise<void> | void;\n onStepFinish?: (event: any) => Promise<void> | void;\n includeRawChunks?: boolean;\n objectOptions?: ObjectOptions;\n};\nexport class MastraModelOutput extends MastraBase {\n #aisdkv5: AISDKV5OutputStream;\n #baseStream: ReadableStream<any>;\n #bufferedSteps: StepBufferItem[] = [];\n #bufferedReasoningDetails: Record<\n string,\n {\n type: string;\n text: string;\n providerMetadata: any;\n }\n > = {};\n #bufferedByStep: BufferedByStep = {\n text: '',\n reasoning: '',\n sources: [],\n files: [],\n toolCalls: [],\n toolResults: [],\n msgCount: 0,\n };\n #bufferedText: string[] = [];\n #bufferedTextChunks: Record<string, string[]> = {};\n #bufferedSources: any[] = [];\n #bufferedReasoning: string[] = [];\n #bufferedFiles: any[] = [];\n #toolCallArgsDeltas: Record<string, string[]> = {};\n #toolCallDeltaIdNameMap: Record<string, string> = {};\n #toolCalls: any[] = [];\n #toolResults: any[] = [];\n #warnings: any[] = [];\n #finishReason: string | undefined;\n #providerMetadata: Record<string, any> | undefined;\n #response: any | undefined;\n #request: any | undefined;\n #usageCount: Record<string, number> = {};\n #objectPromise: DelayedPromise<any> = new DelayedPromise();\n public runId: string;\n #options: MastraModelOutputOptions;\n\n constructor({\n stream,\n options,\n model,\n messageList,\n }: {\n model: {\n modelId: string;\n provider: string;\n version: 'v1' | 'v2';\n };\n stream: ReadableStream<ChunkType>;\n messageList: MessageList;\n options: MastraModelOutputOptions;\n }) {\n super({ component: 'LLM', name: 'MastraModelOutput' });\n this.#options = options;\n\n this.runId = options.runId;\n\n const self = this;\n\n this.#baseStream = stream.pipeThrough(\n new TransformStream<ChunkType, ChunkType>({\n transform: async (chunk, controller) => {\n switch (chunk.type) {\n case 'source':\n self.#bufferedSources.push(chunk);\n self.#bufferedByStep.sources.push(chunk);\n break;\n case 'text-delta':\n self.#bufferedText.push(chunk.payload.text);\n self.#bufferedByStep.text += chunk.payload.text;\n if (chunk.payload.id) {\n const ary = self.#bufferedTextChunks[chunk.payload.id] ?? [];\n ary.push(chunk.payload.text);\n self.#bufferedTextChunks[chunk.payload.id] = ary;\n }\n break;\n case 'tool-call-input-streaming-start':\n self.#toolCallDeltaIdNameMap[chunk.payload.toolCallId] = chunk.payload.toolName;\n break;\n case 'tool-call-delta':\n if (!self.#toolCallArgsDeltas[chunk.payload.toolCallId]) {\n self.#toolCallArgsDeltas[chunk.payload.toolCallId] = [];\n }\n self.#toolCallArgsDeltas?.[chunk.payload.toolCallId]?.push(chunk.payload.argsTextDelta);\n // mutate chunk to add toolname, we need it later to look up tools by their name\n chunk.payload.toolName ||= self.#toolCallDeltaIdNameMap[chunk.payload.toolCallId];\n break;\n case 'file':\n self.#bufferedFiles.push(chunk);\n self.#bufferedByStep.files.push(chunk);\n break;\n case 'reasoning-start':\n self.#bufferedReasoningDetails[chunk.payload.id] = {\n type: 'reasoning',\n text: '',\n providerMetadata: chunk.payload.providerMetadata,\n };\n break;\n case 'reasoning-delta': {\n self.#bufferedReasoning.push(chunk.payload.text);\n self.#bufferedByStep.reasoning += chunk.payload.text;\n\n const bufferedReasoning = self.#bufferedReasoningDetails[chunk.payload.id];\n if (bufferedReasoning) {\n bufferedReasoning.text += chunk.payload.text;\n if (chunk.payload.providerMetadata) {\n bufferedReasoning.providerMetadata = chunk.payload.providerMetadata;\n }\n }\n\n break;\n }\n case 'reasoning-end': {\n const bufferedReasoning = self.#bufferedReasoningDetails[chunk.payload.id];\n if (chunk.payload.providerMetadata && bufferedReasoning) {\n bufferedReasoning.providerMetadata = chunk.payload.providerMetadata;\n }\n break;\n }\n case 'tool-call':\n self.#toolCalls.push(chunk);\n self.#bufferedByStep.toolCalls.push(chunk);\n if (chunk.payload?.output?.from === 'AGENT' && chunk.payload?.output?.type === 'finish') {\n const finishPayload = chunk.payload?.output.payload;\n self.updateUsageCount(finishPayload.usage);\n }\n break;\n case 'tool-result':\n self.#toolResults.push(chunk);\n self.#bufferedByStep.toolResults.push(chunk);\n break;\n case 'step-finish': {\n self.updateUsageCount(chunk.payload.output.usage);\n // chunk.payload.totalUsage = self.totalUsage;\n self.#warnings = chunk.payload.stepResult.warnings;\n\n if (chunk.payload.metadata.request) {\n self.#request = chunk.payload.metadata.request;\n }\n\n const reasoningDetails = reasoningDetailsFromMessages(\n chunk.payload.messages.all.slice(self.#bufferedByStep.msgCount),\n );\n\n const { providerMetadata, request, ...otherMetadata } = chunk.payload.metadata;\n\n const stepResult: StepBufferItem = {\n stepType: self.#bufferedSteps.length === 0 ? 'initial' : 'tool-result',\n text: self.#bufferedByStep.text,\n reasoning: self.#bufferedByStep.reasoning || undefined,\n sources: self.#bufferedByStep.sources,\n files: self.#bufferedByStep.files,\n toolCalls: self.#bufferedByStep.toolCalls,\n toolResults: self.#bufferedByStep.toolResults,\n warnings: self.warnings,\n reasoningDetails: reasoningDetails,\n providerMetadata: providerMetadata,\n experimental_providerMetadata: providerMetadata,\n isContinued: chunk.payload.stepResult.isContinued,\n logprobs: chunk.payload.stepResult.logprobs,\n finishReason: chunk.payload.stepResult.reason,\n response: { ...otherMetadata, messages: chunk.payload.messages.nonUser },\n request: request,\n usage: chunk.payload.output.usage,\n // TODO: need to be able to pass a step id into this fn to get the content for a specific step id\n content: messageList.get.response.aiV5.stepContent(),\n };\n\n await options?.onStepFinish?.(stepResult);\n\n self.#bufferedSteps.push(stepResult);\n\n self.#bufferedByStep = {\n text: '',\n reasoning: '',\n sources: [],\n files: [],\n toolCalls: [],\n toolResults: [],\n msgCount: chunk.payload.messages.all.length,\n };\n\n break;\n }\n case 'finish':\n if (chunk.payload.stepResult.reason) {\n self.#finishReason = chunk.payload.stepResult.reason;\n }\n\n if (chunk.payload.metadata) {\n const { providerMetadata, request, ...otherMetadata } = chunk.payload.metadata;\n\n self.#providerMetadata = chunk.payload.metadata.providerMetadata;\n\n self.#response = {\n ...otherMetadata,\n messages: chunk.payload.messages?.all ?? [],\n };\n }\n\n this.populateUsageCount(chunk.payload.output.usage);\n chunk.payload.output.usage = self.totalUsage;\n\n const baseFinishStep = self.#bufferedSteps[self.#bufferedSteps.length - 1];\n\n if (baseFinishStep) {\n const { stepType: _stepType, isContinued: _isContinued } = baseFinishStep;\n\n let onFinishPayload: any = {};\n\n messageList.add(chunk.payload.messages.all, 'response');\n\n if (model.version === 'v2') {\n onFinishPayload = {\n text: baseFinishStep.text,\n warnings: baseFinishStep.warnings ?? [],\n finishReason: chunk.payload.stepResult.reason,\n // TODO: we should add handling for step IDs in message list so you can retrieve step content by step id. And on finish should the content here be from all steps?\n content: messageList.get.response.aiV5.stepContent(),\n request: this.request,\n reasoning: this.aisdk.v5.reasoning,\n reasoningText: !this.aisdk.v5.reasoningText ? undefined : this.aisdk.v5.reasoningText,\n sources: this.aisdk.v5.sources,\n files: this.aisdk.v5.files,\n steps: transformSteps({ steps: this.#bufferedSteps }),\n response: { ...this.response, messages: messageList.get.response.aiV5.model() },\n usage: chunk.payload.output.usage,\n totalUsage: self.totalUsage,\n toolCalls: this.aisdk.v5.toolCalls,\n toolResults: this.aisdk.v5.toolResults,\n staticToolCalls: this.aisdk.v5.toolCalls.filter((toolCall: any) => toolCall.dynamic === false),\n staticToolResults: this.aisdk.v5.toolResults.filter(\n (toolResult: any) => toolResult.dynamic === false,\n ),\n dynamicToolCalls: this.aisdk.v5.toolCalls.filter((toolCall: any) => toolCall.dynamic === true),\n dynamicToolResults: this.aisdk.v5.toolResults.filter(\n (toolResult: any) => toolResult.dynamic === true,\n ),\n };\n }\n\n await options?.onFinish?.(onFinishPayload);\n }\n\n if (options?.rootSpan) {\n options.rootSpan.setAttributes({\n ...(baseFinishStep?.usage.reasoningTokens\n ? {\n 'stream.usage.reasoningTokens': baseFinishStep.usage.reasoningTokens,\n }\n : {}),\n\n ...(baseFinishStep?.usage.totalTokens\n ? {\n 'stream.usage.totalTokens': baseFinishStep.usage.totalTokens,\n }\n : {}),\n\n ...(baseFinishStep?.usage.inputTokens\n ? {\n 'stream.usage.inputTokens': baseFinishStep.usage.inputTokens,\n }\n : {}),\n ...(baseFinishStep?.usage.outputTokens\n ? {\n 'stream.usage.outputTokens': baseFinishStep.usage.outputTokens,\n }\n : {}),\n ...(baseFinishStep?.usage.cachedInputTokens\n ? {\n 'stream.usage.cachedInputTokens': baseFinishStep.usage.cachedInputTokens,\n }\n : {}),\n\n ...(baseFinishStep?.providerMetadata\n ? { 'stream.response.providerMetadata': JSON.stringify(baseFinishStep?.providerMetadata) }\n : {}),\n ...(baseFinishStep?.finishReason\n ? { 'stream.response.finishReason': baseFinishStep?.finishReason }\n : {}),\n ...(options?.telemetry_settings?.recordOutputs !== false\n ? { 'stream.response.text': baseFinishStep?.text }\n : {}),\n ...(baseFinishStep?.toolCalls && options?.telemetry_settings?.recordOutputs !== false\n ? {\n 'stream.response.toolCalls': JSON.stringify(\n baseFinishStep?.toolCalls?.map(chunk => {\n return {\n type: 'tool-call',\n toolCallId: chunk.payload.toolCallId,\n args: chunk.payload.args,\n toolName: chunk.payload.toolName,\n };\n }),\n ),\n }\n : {}),\n });\n\n options.rootSpan.end();\n }\n\n break;\n }\n\n controller.enqueue(chunk);\n },\n }),\n );\n\n this.#aisdkv5 = new AISDKV5OutputStream({\n modelOutput: this,\n messageList,\n options: {\n toolCallStreaming: options?.toolCallStreaming,\n objectOptions: options?.objectOptions,\n },\n });\n }\n\n get text() {\n return this.#bufferedText.join('');\n }\n\n get reasoning() {\n return this.#bufferedReasoning.join('');\n }\n\n get reasoningText() {\n return this.reasoning;\n }\n\n get reasoningDetails() {\n return Object.values(this.#bufferedReasoningDetails || {});\n }\n\n get sources() {\n return this.#bufferedSources;\n }\n\n get files() {\n return this.#bufferedFiles;\n }\n\n get steps() {\n return this.#bufferedSteps;\n }\n\n teeStream() {\n const [stream1, stream2] = this.#baseStream.tee();\n this.#baseStream = stream2;\n return stream1;\n }\n\n get fullStream() {\n const self = this;\n\n let fullStream = this.teeStream();\n\n return fullStream\n .pipeThrough(\n createObjectStreamTransformer({\n objectOptions: self.#options.objectOptions!,\n onFinish: data => self.#objectPromise.resolve(data),\n onError: error => self.#objectPromise.reject(error),\n }),\n )\n .pipeThrough(\n new TransformStream<ChunkType, ChunkType>({\n transform(chunk, controller) {\n if (chunk.type === 'raw' && !self.#options.includeRawChunks) {\n return;\n }\n\n controller.enqueue(chunk);\n },\n }),\n );\n }\n\n get finishReason() {\n return this.#finishReason;\n }\n\n get toolCalls() {\n return this.#toolCalls;\n }\n\n get toolResults() {\n return this.#toolResults;\n }\n\n get usage() {\n return this.#usageCount;\n }\n\n get warnings() {\n return this.#warnings;\n }\n\n get providerMetadata() {\n return this.#providerMetadata;\n }\n\n get response() {\n return this.#response;\n }\n\n get request() {\n return this.#request;\n }\n\n updateUsageCount(usage: Record<string, number>) {\n if (!usage) {\n return;\n }\n\n for (const [key, value] of Object.entries(usage)) {\n this.#usageCount[key] = (this.#usageCount[key] ?? 0) + (value ?? 0);\n }\n }\n\n populateUsageCount(usage: Record<string, number>) {\n if (!usage) {\n return;\n }\n\n for (const [key, value] of Object.entries(usage)) {\n if (!this.#usageCount[key]) {\n this.#usageCount[key] = value;\n }\n }\n }\n\n async consumeStream(options?: ConsumeStreamOptions): Promise<void> {\n try {\n await consumeStream({\n stream: this.fullStream.pipeThrough(\n new TransformStream({\n transform(chunk, controller) {\n controller.enqueue(chunk);\n },\n }),\n ) as any,\n onError: options?.onError,\n });\n } catch (error) {\n console.log('consumeStream error', error);\n options?.onError?.(error);\n }\n }\n\n async getFullOutput() {\n await this.consumeStream();\n\n let object: any;\n if (this.#options.objectOptions) {\n object = await this.object;\n }\n\n return {\n text: this.text,\n usage: this.usage,\n steps: this.steps,\n finishReason: this.finishReason,\n warnings: this.warnings,\n providerMetadata: this.providerMetadata,\n request: this.request,\n reasoning: this.reasoning,\n reasoningText: this.reasoningText,\n toolCalls: this.toolCalls,\n toolResults: this.toolResults,\n sources: this.sources,\n files: this.files,\n response: this.response,\n totalUsage: this.totalUsage,\n object,\n // experimental_output: // TODO\n };\n }\n\n get totalUsage() {\n let total = 0;\n for (const [key, value] of Object.entries(this.#usageCount)) {\n if (key !== 'totalTokens' && value && !key.startsWith('cached')) {\n total += value;\n }\n }\n return {\n ...this.#usageCount,\n totalTokens: total,\n };\n }\n\n get aisdk() {\n return {\n v5: this.#aisdkv5,\n };\n }\n\n get objectStream() {\n const self = this;\n if (!self.#options.objectOptions) {\n throw new Error('objectStream requires objectOptions');\n }\n\n return this.fullStream.pipeThrough(\n new TransformStream<ChunkType | any, ChunkType>({\n transform(chunk, controller) {\n if (chunk.type === 'object') {\n controller.enqueue(chunk.object);\n }\n },\n }),\n );\n }\n\n get elementStream() {\n let publishedElements = 0;\n const self = this;\n if (!self.#options.objectOptions) {\n throw new Error('elementStream requires objectOptions');\n }\n\n return this.fullStream.pipeThrough(\n new TransformStream({\n transform(chunk, controller) {\n switch (chunk.type) {\n case 'object': {\n const array = (chunk as any).object;\n // Only process arrays - stream individual elements as they become available\n if (Array.isArray(array)) {\n // Publish new elements one by one\n for (; publishedElements < array.length; publishedElements++) {\n controller.enqueue(array[publishedElements]);\n }\n }\n break;\n }\n }\n },\n }),\n );\n }\n\n get textStream() {\n const self = this;\n if (self.#options.objectOptions) {\n const responseFormat = getResponseFormat(self.#options.objectOptions);\n if (responseFormat?.type === 'json') {\n return this.fullStream.pipeThrough(createJsonTextStreamTransformer(self.#options.objectOptions));\n }\n }\n\n return this.teeStream().pipeThrough(\n new TransformStream<ChunkType, string>({\n transform(chunk, controller) {\n if (chunk.type === 'text-delta') {\n controller.enqueue(chunk.payload.text);\n }\n },\n }),\n );\n }\n\n get object() {\n return this.#objectPromise.promise;\n }\n}\n","import type { Span, SpanContext, Tracer } from '@opentelemetry/api';\n\nconst noopSpanContext: SpanContext = {\n traceId: '',\n spanId: '',\n traceFlags: 0,\n};\n\nconst noopSpan: Span = {\n spanContext() {\n return noopSpanContext;\n },\n setAttribute() {\n return this;\n },\n setAttributes() {\n return this;\n },\n addEvent() {\n return this;\n },\n addLink() {\n return this;\n },\n addLinks() {\n return this;\n },\n setStatus() {\n return this;\n },\n updateName() {\n return this;\n },\n end() {\n return this;\n },\n isRecording() {\n return false;\n },\n recordException() {\n return this;\n },\n};\n\nexport const noopTracer: Tracer = {\n startSpan(): Span {\n return noopSpan;\n },\n\n startActiveSpan<F extends (span: Span) => unknown>(\n name: unknown,\n arg1: unknown,\n arg2?: unknown,\n arg3?: F,\n ): ReturnType<any> {\n if (typeof arg1 === 'function') {\n return arg1(noopSpan);\n }\n if (typeof arg2 === 'function') {\n return arg2(noopSpan);\n }\n if (typeof arg3 === 'function') {\n return arg3(noopSpan);\n }\n },\n};\n","import type { Attributes, Tracer } from '@opentelemetry/api';\nimport { trace } from '@opentelemetry/api';\nimport type { CallSettings, TelemetrySettings } from 'ai-v5';\nimport { noopTracer } from './noop';\n\nexport function getTracer({\n isEnabled = false,\n tracer,\n}: {\n isEnabled?: boolean;\n tracer?: Tracer;\n} = {}): Tracer {\n if (!isEnabled) {\n return noopTracer;\n }\n\n if (tracer) {\n return tracer;\n }\n\n return trace.getTracer('mastra');\n}\n\nexport function assembleOperationName({\n operationId,\n telemetry,\n}: {\n operationId: string;\n telemetry?: TelemetrySettings;\n}) {\n return {\n 'mastra.operationId': operationId,\n 'operation.name': `${operationId}${telemetry?.functionId != null ? ` ${telemetry.functionId}` : ''}`,\n ...(telemetry?.functionId ? { 'resource.name': telemetry?.functionId } : {}),\n };\n}\n\nexport function getTelemetryAttributes({\n model,\n settings,\n telemetry,\n headers,\n}: {\n model: { modelId: string; provider: string };\n settings: Omit<CallSettings, 'abortSignal' | 'headers' | 'temperature'>;\n telemetry: TelemetrySettings | undefined;\n headers: Record<string, string | undefined> | undefined;\n}): Attributes {\n return {\n 'aisdk.model.provider': model.provider,\n 'aisdk.model.id': model.modelId,\n\n // settings:\n ...Object.entries(settings).reduce((attributes, [key, value]) => {\n attributes[`stream.settings.${key}`] = value;\n return attributes;\n }, {} as Attributes),\n\n // add metadata as attributes:\n ...Object.entries(telemetry?.metadata ?? {}).reduce((attributes, [key, value]) => {\n attributes[`stream.telemetry.metadata.${key}`] = value;\n return attributes;\n }, {} as Attributes),\n\n // request headers\n ...Object.entries(headers ?? {}).reduce((attributes, [key, value]) => {\n if (value !== undefined) {\n attributes[`stream.request.headers.${key}`] = value;\n }\n return attributes;\n }, {} as Attributes),\n };\n}\n\nexport function getRootSpan({\n operationId,\n model,\n modelSettings,\n telemetry_settings,\n headers,\n}: {\n operationId: string;\n model: { modelId: string; provider: string };\n modelSettings?: CallSettings;\n telemetry_settings?: TelemetrySettings;\n headers?: Record<string, string | undefined> | undefined;\n}) {\n const tracer = getTracer({\n isEnabled: telemetry_settings?.isEnabled,\n tracer: telemetry_settings?.tracer,\n });\n\n const baseTelemetryAttributes = getTelemetryAttributes({\n model: {\n modelId: model.modelId,\n provider: model.provider,\n },\n settings: modelSettings ?? {\n maxRetries: 2,\n },\n telemetry: telemetry_settings,\n headers,\n });\n\n const rootSpan = tracer.startSpan(operationId).setAttributes({\n ...assembleOperationName({\n operationId,\n telemetry: telemetry_settings,\n }),\n ...baseTelemetryAttributes,\n });\n\n return {\n rootSpan,\n };\n}\n","import { MastraBase } from '../../base';\nimport type { ChunkType, CreateStream, OnResult } from '../types';\n\nexport abstract class MastraModelInput extends MastraBase {\n abstract transform({\n runId,\n stream,\n controller,\n }: {\n runId: string;\n stream: ReadableStream<any>;\n controller: ReadableStreamDefaultController<ChunkType>;\n }): Promise<void>;\n\n initialize({ runId, createStream, onResult }: { createStream: CreateStream; runId: string; onResult: OnResult }) {\n const self = this;\n\n const stream = new ReadableStream<ChunkType>({\n async start(controller) {\n try {\n const stream = await createStream();\n\n onResult({\n warnings: stream.warnings,\n request: stream.request,\n rawResponse: stream.rawResponse || stream.response || {},\n });\n\n await self.transform({\n runId,\n stream: stream.stream,\n controller,\n });\n\n controller.close();\n } catch (error) {\n controller.error(error);\n }\n },\n });\n\n return stream;\n }\n}\n","import type { RegisteredLogger } from '../../../logger';\nimport { MastraModelInput } from '../../base';\nimport type { ChunkType } from '../../types';\nimport { convertFullStreamChunkToMastra } from './transform';\n\nexport class AISDKV5InputStream extends MastraModelInput {\n constructor({ component, name }: { component: RegisteredLogger; name: string }) {\n super({ component, name });\n }\n\n async transform({\n runId,\n stream,\n controller,\n }: {\n runId: string;\n stream: ReadableStream<any>;\n controller: ReadableStreamDefaultController<ChunkType>;\n }) {\n // ReadableStream throws TS errors, if imported not imported. What an annoying thing.\n //@ts-ignore\n for await (const chunk of stream) {\n const transformedChunk = convertFullStreamChunkToMastra(chunk, { runId });\n if (transformedChunk) {\n controller.enqueue(transformedChunk);\n }\n }\n }\n}\n","import { isAbortError } from '@ai-sdk/provider-utils';\nimport type { LanguageModelV2, LanguageModelV2Prompt, SharedV2ProviderOptions } from '@ai-sdk/provider-v5';\nimport type { Span } from '@opentelemetry/api';\nimport type { CallSettings, TelemetrySettings, ToolChoice, ToolSet } from 'ai-v5';\nimport type { ObjectOptions } from '../../../loop/types';\nimport { prepareToolsAndToolChoice } from './compat';\nimport { AISDKV5InputStream } from './input';\nimport { getResponseFormat } from './object/schema';\n\ntype ExecutionProps = {\n runId: string;\n model: LanguageModelV2;\n providerOptions?: SharedV2ProviderOptions;\n inputMessages: LanguageModelV2Prompt;\n tools?: ToolSet;\n toolChoice?: ToolChoice<ToolSet>;\n options?: {\n activeTools?: string[];\n abortSignal?: AbortSignal;\n };\n modelStreamSpan: Span;\n telemetry_settings?: TelemetrySettings;\n includeRawChunks?: boolean;\n modelSettings?: CallSettings;\n onResult: (result: { warnings: any; request: any; rawResponse: any }) => void;\n objectOptions?: ObjectOptions;\n};\n\nexport function execute({\n runId,\n model,\n providerOptions,\n inputMessages,\n tools,\n toolChoice,\n options,\n onResult,\n modelStreamSpan,\n telemetry_settings,\n includeRawChunks,\n modelSettings,\n objectOptions,\n}: ExecutionProps) {\n const v5 = new AISDKV5InputStream({\n component: 'LLM',\n name: model.modelId,\n });\n\n const toolsAndToolChoice = prepareToolsAndToolChoice({\n tools,\n toolChoice,\n activeTools: options?.activeTools,\n });\n\n if (modelStreamSpan && toolsAndToolChoice?.tools?.length && telemetry_settings?.recordOutputs !== false) {\n modelStreamSpan.setAttributes({\n 'stream.prompt.tools': toolsAndToolChoice?.tools?.map(tool => JSON.stringify(tool)),\n });\n }\n\n const stream = v5.initialize({\n runId,\n onResult,\n createStream: async () => {\n try {\n const stream = await model.doStream({\n ...toolsAndToolChoice,\n prompt: inputMessages,\n providerOptions,\n abortSignal: options?.abortSignal,\n includeRawChunks,\n responseFormat: objectOptions ? getResponseFormat(objectOptions) : undefined,\n ...modelSettings,\n });\n return stream as any;\n } catch (error) {\n console.error('Error creating stream', error);\n if (isAbortError(error) && options?.abortSignal?.aborted) {\n console.log('Abort error', error);\n }\n\n return {\n stream: new ReadableStream({\n start: async controller => {\n controller.enqueue({\n type: 'error',\n error,\n });\n controller.close();\n },\n }),\n warnings: [],\n request: {},\n rawResponse: {},\n };\n }\n },\n });\n\n return stream;\n}\n","import type { LanguageModelV2 } from '@ai-sdk/provider-v5';\nimport type { StreamInternal } from '../types';\n\ntype State = {\n stepResult: Record<string, any> | undefined;\n responseMetadata: Record<string, any> | undefined;\n hasToolCallStreaming: boolean;\n hasErrored: boolean;\n reasoningDeltas: string[];\n textDeltas: string[];\n isReasoning: boolean;\n isStreaming: boolean;\n providerOptions: Record<string, any> | undefined;\n};\n\nexport class AgenticRunState {\n #state: State;\n constructor({ _internal, model }: { _internal: StreamInternal; model: LanguageModelV2 }) {\n this.#state = {\n responseMetadata: {\n id: _internal?.generateId?.(),\n timestamp: _internal?.currentDate?.(),\n modelId: model.modelId,\n headers: undefined,\n },\n isReasoning: false,\n isStreaming: false,\n providerOptions: undefined,\n hasToolCallStreaming: false,\n hasErrored: false,\n reasoningDeltas: [],\n textDeltas: [],\n stepResult: undefined,\n };\n }\n\n setState(state: Partial<State>) {\n this.#state = {\n ...this.#state,\n ...state,\n };\n }\n\n get state() {\n return this.#state;\n }\n}\n","import z from 'zod';\n\n// TODO: We need to type this properly\nexport const llmIterationOutputSchema = z.object({\n messageId: z.string(),\n messages: z.object({\n all: z.array(z.any()),\n user: z.array(z.any()),\n nonUser: z.array(z.any()),\n }),\n output: z.any(),\n metadata: z.any(),\n stepResult: z.any().optional(),\n});\n\nexport const toolCallInputSchema = z.object({\n toolCallId: z.string(),\n toolName: z.string(),\n args: z.any(),\n providerMetadata: z.any(),\n});\n\nexport const toolCallOutputSchema = toolCallInputSchema.extend({\n result: z.any(),\n error: z.any().optional(),\n});\n","import type { ReadableStream } from 'stream/web';\nimport { isAbortError } from '@ai-sdk/provider-utils-v5';\nimport type { LanguageModelV2, LanguageModelV2Usage } from '@ai-sdk/provider-v5';\nimport type { ToolSet } from 'ai-v5';\nimport type { MessageList } from '../../agent/message-list';\nimport { execute } from '../../stream/aisdk/v5/execute';\nimport { DefaultStepResult } from '../../stream/aisdk/v5/output-helpers';\nimport { convertMastraChunkToAISDKv5 } from '../../stream/aisdk/v5/transform';\nimport { MastraModelOutput } from '../../stream/base/output';\nimport type { ChunkType } from '../../stream/types';\nimport { createStep } from '../../workflows';\nimport type { LoopConfig, OuterLLMRun } from '../types';\nimport { AgenticRunState } from './run-state';\nimport { llmIterationOutputSchema } from './schema';\n\ntype ProcessOutputStreamOptions = {\n model: LanguageModelV2;\n tools?: ToolSet;\n messageId: string;\n includeRawChunks?: boolean;\n messageList: MessageList;\n outputStream: MastraModelOutput;\n runState: AgenticRunState;\n options?: LoopConfig;\n controller: ReadableStreamDefaultController<ChunkType>;\n responseFromModel: {\n warnings: any;\n request: any;\n rawResponse: any;\n };\n};\n\nasync function processOutputStream({\n tools,\n messageId,\n messageList,\n outputStream,\n runState,\n options,\n controller,\n responseFromModel,\n includeRawChunks,\n}: ProcessOutputStreamOptions) {\n for await (const chunk of outputStream.fullStream) {\n if (!chunk) {\n continue;\n }\n\n if (chunk.type == 'object') {\n // controller.enqueue(chunk);\n continue;\n }\n\n // Reasoning\n if (\n chunk.type !== 'reasoning-delta' &&\n chunk.type !== 'reasoning-signature' &&\n chunk.type !== 'redacted-reasoning' &&\n runState.state.isReasoning\n ) {\n if (runState.state.reasoningDeltas.length) {\n messageList.add(\n {\n id: messageId,\n role: 'assistant',\n content: [\n {\n type: 'reasoning',\n text: runState.state.reasoningDeltas.join(''),\n signature: chunk.payload.signature,\n providerOptions: chunk.payload.providerMetadata ?? runState.state.providerOptions,\n },\n ],\n },\n 'response',\n );\n }\n runState.setState({\n isReasoning: false,\n reasoningDeltas: [],\n });\n }\n\n // Streaming\n if (chunk.type !== 'text-delta' && chunk.type !== 'tool-call' && runState.state.isStreaming) {\n if (runState.state.textDeltas.length) {\n messageList.add(\n {\n id: messageId,\n role: 'assistant',\n content: [\n (chunk.payload.providerMetadata ?? runState.state.providerOptions)\n ? {\n type: 'text',\n text: runState.state.textDeltas.join(''),\n providerOptions: chunk.payload.providerMetadata ?? runState.state.providerOptions,\n }\n : {\n type: 'text',\n text: runState.state.textDeltas.join(''),\n },\n ],\n },\n 'response',\n );\n }\n\n runState.setState({\n isStreaming: false,\n textDeltas: [],\n });\n }\n\n switch (chunk.type) {\n case 'response-metadata':\n runState.setState({\n responseMetadata: {\n id: chunk.payload.id,\n timestamp: chunk.payload.timestamp,\n modelId: chunk.payload.modelId,\n headers: chunk.payload.headers,\n },\n });\n break;\n\n case 'text-delta': {\n const textDeltasFromState = runState.state.textDeltas;\n textDeltasFromState.push(chunk.payload.text);\n runState.setState({\n textDeltas: textDeltasFromState,\n isStreaming: true,\n });\n controller.enqueue(chunk);\n break;\n }\n\n case 'tool-call-input-streaming-start': {\n const tool =\n tools?.[chunk.payload.toolName] ||\n Object.values(tools || {})?.find(tool => `id` in tool && tool.id === chunk.payload.toolName);\n\n if (tool && 'onInputStart' in tool) {\n try {\n await tool?.onInputStart?.({\n toolCallId: chunk.payload.toolCallId,\n messages: messageList.get.input.aiV5.model()?.map(message => ({\n role: message.role,\n content: message.content,\n })) as any,\n abortSignal: options?.abortSignal,\n });\n } catch (error) {\n console.error('Error calling onInputStart', error);\n }\n }\n\n controller.enqueue(chunk);\n\n break;\n }\n\n case 'tool-call-delta': {\n const tool =\n tools?.[chunk.payload.toolName] ||\n Object.values(tools || {})?.find(tool => `id` in tool && tool.id === chunk.payload.toolName);\n\n if (tool && 'onInputDelta' in tool) {\n try {\n await tool?.onInputDelta?.({\n inputTextDelta: chunk.payload.argsTextDelta,\n toolCallId: chunk.payload.toolCallId,\n messages: messageList.get.input.aiV5.model()?.map(message => ({\n role: message.role,\n content: message.content,\n })) as any,\n abortSignal: options?.abortSignal,\n });\n } catch (error) {\n console.error('Error calling onInputDelta', error);\n }\n }\n controller.enqueue(chunk);\n break;\n }\n\n case 'reasoning-start': {\n runState.setState({\n providerOptions: chunk.payload.providerMetadata ?? runState.state.providerOptions,\n });\n\n if (Object.values(chunk.payload.providerMetadata || {}).find((v: any) => v?.redactedData)) {\n messageList.add(\n {\n id: messageId,\n role: 'assistant',\n content: [\n {\n type: 'reasoning',\n text: '',\n providerOptions: chunk.payload.providerMetadata ?? runState.state.providerOptions,\n },\n ],\n },\n 'response',\n );\n controller.enqueue(chunk);\n break;\n }\n controller.enqueue(chunk);\n break;\n }\n\n case 'reasoning-delta': {\n const reasoningDeltasFromState = runState.state.reasoningDeltas;\n reasoningDeltasFromState.push(chunk.payload.text);\n runState.setState({\n isReasoning: true,\n reasoningDeltas: reasoningDeltasFromState,\n providerOptions: chunk.payload.providerMetadata ?? runState.state.providerOptions,\n });\n controller.enqueue(chunk);\n break;\n }\n\n case 'file':\n messageList.add(\n {\n id: messageId,\n role: 'assistant',\n content: [\n {\n type: 'file',\n data: chunk.payload.data,\n mimeType: chunk.payload.mimeType,\n },\n ],\n },\n 'response',\n );\n controller.enqueue(chunk);\n break;\n\n case 'source':\n messageList.add(\n {\n id: messageId,\n role: 'assistant',\n content: {\n format: 2,\n parts: [\n {\n type: 'source',\n source: {\n sourceType: 'url',\n id: chunk.payload.id,\n url: chunk.payload.url,\n title: chunk.payload.title,\n providerMetadata: chunk.payload.providerMetadata,\n },\n },\n ],\n },\n createdAt: new Date(),\n },\n 'response',\n );\n\n controller.enqueue(chunk);\n break;\n\n case 'finish':\n runState.setState({\n providerOptions: chunk.payload.metadata.providerMetadata,\n stepResult: {\n reason: chunk.payload.reason,\n logprobs: chunk.payload.logprobs,\n warnings: responseFromModel.warnings,\n totalUsage: chunk.payload.totalUsage,\n headers: responseFromModel.rawResponse?.headers,\n messageId,\n isContinued: !['stop', 'error'].includes(chunk.payload.reason),\n request: responseFromModel.request,\n },\n });\n break;\n\n case 'error':\n if (isAbortError(chunk.payload.error) && options?.abortSignal?.aborted) {\n break;\n }\n\n runState.setState({\n hasErrored: true,\n });\n\n controller.enqueue(chunk);\n\n runState.setState({\n stepResult: {\n isContinued: false,\n reason: 'error',\n },\n });\n\n await options?.onError?.({ error: chunk.payload.error });\n\n break;\n default:\n controller.enqueue(chunk);\n }\n\n if (\n [\n 'text-delta',\n 'reasoning-delta',\n 'source',\n 'tool-call',\n 'tool-call-input-streaming-start',\n 'tool-call-delta',\n 'raw',\n ].includes(chunk.type)\n ) {\n const transformedChunk = convertMastraChunkToAISDKv5({\n chunk,\n });\n\n if (chunk.type === 'raw' && !includeRawChunks) {\n return;\n }\n\n await options?.onChunk?.({ chunk: transformedChunk } as any);\n }\n\n if (runState.state.hasErrored) {\n break;\n }\n }\n}\n\nexport function createLLMExecutionStep<Tools extends ToolSet = ToolSet>({\n model,\n _internal,\n messageId,\n runId,\n modelStreamSpan,\n telemetry_settings,\n tools,\n toolChoice,\n messageList,\n includeRawChunks,\n modelSettings,\n providerOptions,\n options,\n toolCallStreaming,\n controller,\n objectOptions,\n}: OuterLLMRun<Tools>) {\n return createStep({\n id: 'llm-execution',\n inputSchema: llmIterationOutputSchema,\n outputSchema: llmIterationOutputSchema,\n execute: async ({ inputData, bail }) => {\n const runState = new AgenticRunState({\n _internal: _internal!,\n model,\n });\n\n console.log('Starting LLM Execution Step');\n\n let modelResult;\n let warnings: any;\n let request: any;\n let rawResponse: any;\n\n switch (model.specificationVersion) {\n case 'v2': {\n modelResult = execute({\n runId,\n model,\n providerOptions,\n inputMessages: messageList.get.all.aiV5.llmPrompt(),\n tools,\n toolChoice,\n options,\n modelSettings,\n telemetry_settings,\n includeRawChunks,\n objectOptions,\n onResult: ({\n warnings: warningsFromStream,\n request: requestFromStream,\n rawResponse: rawResponseFromStream,\n }) => {\n warnings = warningsFromStream;\n request = requestFromStream || {};\n rawResponse = rawResponseFromStream;\n\n controller.enqueue({\n runId,\n from: 'AGENT',\n type: 'step-start',\n payload: {\n request: request || {},\n warnings: [],\n messageId: messageId,\n },\n });\n },\n modelStreamSpan,\n });\n break;\n }\n default: {\n throw new Error(`Unsupported model version: ${model.specificationVersion}`);\n }\n }\n\n const outputStream = new MastraModelOutput({\n model: {\n modelId: model.modelId,\n provider: model.provider,\n version: model.specificationVersion,\n },\n stream: modelResult as ReadableStream<ChunkType>,\n messageList,\n options: {\n runId,\n rootSpan: modelStreamSpan,\n toolCallStreaming,\n telemetry_settings,\n includeRawChunks,\n objectOptions,\n },\n });\n\n try {\n await processOutputStream({\n outputStream,\n includeRawChunks,\n model,\n tools,\n messageId,\n messageList,\n runState,\n options,\n controller,\n responseFromModel: {\n warnings,\n request,\n rawResponse,\n },\n });\n } catch (error) {\n console.log('Error in LLM Execution Step', error);\n if (isAbortError(error) && options?.abortSignal?.aborted) {\n await options?.onAbort?.({\n steps: inputData?.output?.steps ?? [],\n });\n\n controller.enqueue({ type: 'abort', runId, from: 'AGENT', payload: {} });\n\n const usage = outputStream.usage;\n const responseMetadata = runState.state.responseMetadata;\n const text = outputStream.text;\n\n return bail({\n messageId,\n stepResult: {\n reason: 'abort',\n warnings,\n isContinued: false,\n },\n metadata: {\n providerMetadata: providerOptions,\n ...responseMetadata,\n headers: rawResponse?.headers,\n request,\n },\n output: {\n text,\n toolCalls: [],\n usage: usage ?? inputData.output?.usage,\n steps: [],\n },\n messages: {\n all: messageList.get.all.v3(),\n user: messageList.get.input.v3(),\n nonUser: messageList.get.response.v3(),\n },\n });\n }\n\n runState.setState({\n hasErrored: true,\n stepResult: {\n isContinued: false,\n reason: 'error',\n },\n });\n }\n\n /**\n * Add tool calls to the message list\n */\n\n const toolCalls = outputStream.toolCalls?.map(chunk => {\n return chunk.payload;\n });\n\n if (toolCalls.length > 0) {\n const assistantContent = [\n ...(toolCalls.map(toolCall => {\n return {\n type: 'tool-call',\n toolCallId: toolCall.toolCallId,\n toolName: toolCall.toolName,\n args: toolCall.args,\n };\n }) as any),\n ];\n\n messageList.add(\n {\n id: messageId,\n role: 'assistant',\n content: assistantContent,\n },\n 'response',\n );\n }\n\n const finishReason = runState?.state?.stepResult?.reason ?? outputStream.finishReason;\n const hasErrored = runState.state.hasErrored;\n const usage = outputStream.usage;\n const responseMetadata = runState.state.responseMetadata;\n const text = outputStream.text;\n\n const steps = inputData.output?.steps || [];\n\n steps.push(\n new DefaultStepResult({\n warnings: outputStream.warnings,\n providerMetadata: providerOptions,\n finishReason: runState.state.stepResult?.reason,\n content: messageList.get.response.aiV5.modelContent(),\n // @ts-ignore this is how it worked internally for transformResponse which was removed TODO: how should this actually work?\n response: { ...responseMetadata, messages: messageList.get.response.aiV5.model() },\n request: request,\n usage: outputStream.usage as LanguageModelV2Usage,\n }),\n );\n\n const messages = {\n all: messageList.get.all.aiV5.model(),\n user: messageList.get.input.aiV5.model(),\n nonUser: messageList.get.response.aiV5.model(),\n };\n\n return {\n messageId,\n stepResult: {\n reason: hasErrored ? 'error' : finishReason,\n warnings,\n isContinued: !['stop', 'error'].includes(finishReason),\n },\n metadata: {\n providerMetadata: runState.state.providerOptions,\n ...responseMetadata,\n headers: rawResponse?.headers,\n request,\n },\n output: {\n text,\n toolCalls,\n usage: usage ?? inputData.output?.usage,\n steps,\n },\n messages,\n };\n },\n });\n}\n","import type { ToolSet } from 'ai-v5';\nimport { createStep } from '../../workflows';\nimport { assembleOperationName, getTracer } from '../telemetry';\nimport type { OuterLLMRun } from '../types';\nimport { toolCallInputSchema, toolCallOutputSchema } from './schema';\n\nexport function createToolCallStep<Tools extends ToolSet = ToolSet>({\n tools,\n messageList,\n options,\n telemetry_settings,\n}: OuterLLMRun<Tools>) {\n return createStep({\n id: 'toolCallStep',\n inputSchema: toolCallInputSchema,\n outputSchema: toolCallOutputSchema,\n execute: async ({ inputData }) => {\n const tool =\n tools?.[inputData.toolName] ||\n Object.values(tools || {})?.find(tool => `id` in tool && tool.id === inputData.toolName);\n\n if (!tool) {\n throw new Error(`Tool ${inputData.toolName} not found`);\n }\n\n if (tool && 'onInputAvailable' in tool) {\n try {\n await tool?.onInputAvailable?.({\n toolCallId: inputData.toolCallId,\n input: inputData.args,\n messages: messageList.get.input.aiV5.model(),\n abortSignal: options?.abortSignal,\n });\n } catch (error) {\n console.error('Error calling onInputAvailable', error);\n }\n }\n\n if (!tool.execute) {\n return inputData;\n }\n\n const tracer = getTracer({\n isEnabled: telemetry_settings?.isEnabled,\n tracer: telemetry_settings?.tracer,\n });\n\n const span = tracer.startSpan('mastra.stream.toolCall').setAttributes({\n ...assembleOperationName({\n operationId: 'mastra.stream.toolCall',\n telemetry: telemetry_settings,\n }),\n 'stream.toolCall.toolName': inputData.toolName,\n 'stream.toolCall.toolCallId': inputData.toolCallId,\n 'stream.toolCall.args': JSON.stringify(inputData.args),\n });\n\n try {\n const result = await tool.execute(inputData.args, {\n abortSignal: options?.abortSignal,\n toolCallId: inputData.toolCallId,\n messages: messageList.get.input.aiV5.model(),\n });\n\n span.setAttributes({\n 'stream.toolCall.result': JSON.stringify(result),\n });\n\n span.end();\n\n return { result, ...inputData };\n } catch (error) {\n span.setStatus({\n code: 2,\n message: (error as Error)?.message ?? error,\n });\n span.recordException(error as Error);\n return {\n error: error as Error,\n ...inputData,\n };\n }\n },\n });\n}\n","import type { ToolSet } from 'ai-v5';\nimport z from 'zod';\nimport { convertMastraChunkToAISDKv5 } from '../../stream/aisdk/v5/transform';\nimport { createStep, createWorkflow } from '../../workflows';\nimport type { OuterLLMRun } from '../types';\nimport { createLLMExecutionStep } from './llm-execution';\nimport { llmIterationOutputSchema, toolCallOutputSchema } from './schema';\nimport { createToolCallStep } from './tool-call-step';\n\nexport function createOuterLLMWorkflow<Tools extends ToolSet = ToolSet>({\n model,\n telemetry_settings,\n _internal,\n modelStreamSpan,\n ...rest\n}: OuterLLMRun<Tools>) {\n const llmExecutionStep = createLLMExecutionStep({\n model,\n _internal,\n modelStreamSpan,\n telemetry_settings,\n ...rest,\n });\n\n const toolCallStep = createToolCallStep({\n model,\n telemetry_settings,\n _internal,\n modelStreamSpan,\n ...rest,\n });\n\n const messageList = rest.messageList;\n\n const llmMappingStep = createStep({\n id: 'llmExecutionMappingStep',\n inputSchema: z.array(toolCallOutputSchema),\n outputSchema: llmIterationOutputSchema,\n execute: async ({ inputData, getStepResult, bail }) => {\n const initialResult = getStepResult(llmExecutionStep);\n\n if (inputData?.every(toolCall => toolCall?.result === undefined)) {\n const errorResults = inputData.filter(toolCall => toolCall?.error);\n\n const toolResultMessageId = rest.experimental_generateMessageId?.() || _internal?.generateId?.();\n\n if (errorResults?.length) {\n errorResults.forEach(toolCall => {\n const chunk = {\n type: 'tool-error',\n runId: rest.runId,\n from: 'AGENT',\n payload: {\n error: toolCall.error,\n args: toolCall.args,\n toolCallId: toolCall.toolCallId,\n toolName: toolCall.toolName,\n result: toolCall.result,\n providerMetadata: toolCall.providerMetadata,\n },\n };\n rest.controller.enqueue(chunk);\n });\n\n rest.messageList.add(\n {\n id: toolResultMessageId,\n role: 'tool',\n content: errorResults.map(toolCall => {\n return {\n type: 'tool-result',\n args: toolCall.args,\n toolCallId: toolCall.toolCallId,\n toolName: toolCall.toolName,\n result: {\n tool_execution_error: toolCall.error?.message ?? toolCall.error,\n },\n };\n }),\n },\n 'response',\n );\n }\n\n initialResult.stepResult.isContinued = false;\n return bail(initialResult);\n }\n\n if (inputData?.length) {\n for (const toolCall of inputData) {\n const chunk = {\n type: 'tool-result',\n runId: rest.runId,\n from: 'AGENT',\n payload: {\n args: toolCall.args,\n toolCallId: toolCall.toolCallId,\n toolName: toolCall.toolName,\n result: toolCall.result,\n providerMetadata: toolCall.providerMetadata,\n },\n };\n\n rest.controller.enqueue(chunk);\n\n if (model.specificationVersion === 'v2') {\n await rest.options?.onChunk?.({\n chunk: convertMastraChunkToAISDKv5({\n chunk,\n }),\n } as any);\n }\n\n const toolResultMessageId = rest.experimental_generateMessageId?.() || _internal?.generateId?.();\n\n messageList.add(\n {\n id: toolResultMessageId,\n role: 'tool',\n content: inputData.map(toolCall => {\n return {\n type: 'tool-result',\n args: toolCall.args,\n toolCallId: toolCall.toolCallId,\n toolName: toolCall.toolName,\n result: toolCall.result,\n };\n }),\n },\n 'response',\n );\n }\n\n return {\n ...initialResult,\n messages: {\n all: messageList.get.all.v3(),\n user: messageList.get.input.v3(),\n nonUser: messageList.get.response.v3(),\n },\n };\n }\n },\n });\n\n return createWorkflow({\n id: 'executionWorkflow',\n inputSchema: llmIterationOutputSchema,\n outputSchema: z.any(),\n })\n .then(llmExecutionStep)\n .map(({ inputData }) => {\n if (modelStreamSpan && telemetry_settings?.recordOutputs !== false && inputData.output.toolCalls?.length) {\n modelStreamSpan.setAttribute(\n 'stream.response.toolCalls',\n JSON.stringify(\n inputData.output.toolCalls?.map((toolCall: any) => {\n return {\n toolCallId: toolCall.toolCallId,\n args: toolCall.args,\n toolName: toolCall.toolName,\n };\n }),\n ),\n );\n }\n return inputData.output.toolCalls || [];\n })\n .foreach(toolCallStep)\n .then(llmMappingStep)\n .commit();\n}\n","import { ReadableStream } from 'stream/web';\nimport type { ToolSet } from 'ai-v5';\nimport z from 'zod';\nimport type { ChunkType } from '../../stream/types';\nimport { createWorkflow } from '../../workflows';\nimport type { LoopRun } from '../types';\nimport { createOuterLLMWorkflow } from './outer-llm-step';\nimport { llmIterationOutputSchema } from './schema';\n\nexport function workflowLoopStream<Tools extends ToolSet = ToolSet>({\n telemetry_settings,\n model,\n toolChoice,\n modelSettings,\n _internal,\n modelStreamSpan,\n ...rest\n}: LoopRun<Tools>) {\n return new ReadableStream<ChunkType>({\n start: async controller => {\n const messageId = rest.experimental_generateMessageId?.() || _internal?.generateId?.();\n\n modelStreamSpan.setAttributes({\n ...(telemetry_settings?.recordInputs !== false\n ? {\n 'stream.prompt.toolChoice': toolChoice ? JSON.stringify(toolChoice) : 'auto',\n }\n : {}),\n });\n\n const outerLLMWorkflow = createOuterLLMWorkflow<Tools>({\n messageId: messageId!,\n model,\n telemetry_settings,\n _internal,\n modelSettings,\n toolChoice,\n modelStreamSpan,\n controller,\n ...rest,\n });\n\n const mainWorkflow = createWorkflow({\n id: 'agentic-loop',\n inputSchema: llmIterationOutputSchema,\n outputSchema: z.any(),\n })\n .dowhile(outerLLMWorkflow, async ({ inputData }) => {\n let hasFinishedSteps = false;\n\n if (rest.stopWhen) {\n // console.log('stop_when', JSON.stringify(inputData.output.steps, null, 2));\n const conditions = await Promise.all(\n (Array.isArray(rest.stopWhen) ? rest.stopWhen : [rest.stopWhen]).map(condition => {\n return condition({\n steps: inputData.output.steps,\n });\n }),\n );\n\n const hasStopped = conditions.some(condition => condition);\n hasFinishedSteps = hasStopped;\n }\n\n inputData.stepResult.isContinued = hasFinishedSteps ? false : inputData.stepResult.isContinued;\n\n if (inputData.stepResult.reason !== 'abort') {\n controller.enqueue({\n type: 'step-finish',\n runId: rest.runId,\n from: 'AGENT',\n payload: inputData,\n });\n }\n\n modelStreamSpan.setAttributes({\n 'stream.response.id': inputData.metadata.id,\n 'stream.response.model': model.modelId,\n ...(inputData.metadata.providerMetadata\n ? { 'stream.response.providerMetadata': JSON.stringify(inputData.metadata.providerMetadata) }\n : {}),\n 'stream.response.finishReason': inputData.stepResult.reason,\n 'stream.usage.inputTokens': inputData.output.usage?.inputTokens,\n 'stream.usage.outputTokens': inputData.output.usage?.outputTokens,\n 'stream.usage.totalTokens': inputData.output.usage?.totalTokens,\n ...(telemetry_settings?.recordOutputs !== false\n ? {\n 'stream.response.text': inputData.output.text,\n 'stream.prompt.messages': JSON.stringify(rest.messageList.get.input.aiV5.model()),\n }\n : {}),\n });\n\n modelStreamSpan.end();\n\n const reason = inputData.stepResult.reason;\n\n if (reason === undefined) {\n return false;\n }\n\n return inputData.stepResult.isContinued;\n })\n .map(({ inputData }) => {\n const toolCalls = rest.messageList.get.response.v3().filter((message: any) => message.role === 'tool');\n inputData.output.toolCalls = toolCalls;\n\n return inputData;\n })\n .commit();\n\n const msToFirstChunk = _internal?.now?.()! - rest.startTimestamp!;\n\n modelStreamSpan.addEvent('ai.stream.firstChunk', {\n 'ai.response.msToFirstChunk': msToFirstChunk,\n });\n\n modelStreamSpan.setAttributes({\n 'stream.response.timestamp': new Date(rest.startTimestamp).toISOString(),\n 'stream.response.msToFirstChunk': msToFirstChunk,\n });\n\n controller.enqueue({\n type: 'start',\n runId: rest.runId,\n from: 'AGENT',\n payload: {},\n });\n\n const run = await mainWorkflow.createRunAsync({\n runId: rest.runId,\n });\n\n const executionResult = await run.start({\n inputData: {\n messageId: messageId!,\n messages: {\n all: rest.messageList.get.input.aiV5.model(),\n user: rest.messageList.get.input.aiV5.model(),\n nonUser: [],\n },\n },\n });\n\n if (executionResult.status !== 'success') {\n controller.close();\n return;\n }\n\n if (executionResult.result.stepResult.reason === 'abort') {\n console.log('aborted_result', JSON.stringify(executionResult.result, null, 2));\n controller.close();\n return;\n }\n\n controller.enqueue({\n type: 'finish',\n runId: rest.runId,\n from: 'AGENT',\n payload: executionResult.result,\n });\n\n const msToFinish = (_internal?.now?.() ?? Date.now()) - rest.startTimestamp;\n modelStreamSpan.addEvent('ai.stream.finish');\n modelStreamSpan.setAttributes({\n 'stream.response.msToFinish': msToFinish,\n 'stream.response.avgOutputTokensPerSecond':\n (1000 * (executionResult?.result?.output?.usage?.outputTokens ?? 0)) / msToFinish,\n });\n\n controller.close();\n },\n });\n}\n","import { generateId } from 'ai-v5';\nimport type { ToolSet } from 'ai-v5';\nimport { ConsoleLogger } from '../logger';\nimport { MastraModelOutput } from '../stream/base/output';\nimport { getRootSpan } from './telemetry';\nimport type { LoopOptions, LoopRun, StreamInternal } from './types';\nimport { workflowLoopStream } from './workflow/stream';\n\nexport function loop<Tools extends ToolSet = ToolSet>({\n model,\n logger,\n runId,\n idGenerator,\n telemetry_settings,\n messageList,\n includeRawChunks,\n modelSettings,\n tools,\n _internal,\n ...rest\n}: LoopOptions<Tools>) {\n let loggerToUse =\n logger ||\n new ConsoleLogger({\n level: 'debug',\n });\n\n let runIdToUse = runId;\n\n if (!runIdToUse) {\n runIdToUse = idGenerator?.() || crypto.randomUUID();\n }\n\n const internalToUse: StreamInternal = {\n now: _internal?.now || (() => Date.now()),\n generateId: _internal?.generateId || (() => generateId()),\n currentDate: _internal?.currentDate || (() => new Date()),\n };\n\n let startTimestamp = internalToUse.now?.();\n\n const { rootSpan } = getRootSpan({\n operationId: `mastra.stream`,\n model: {\n modelId: model.modelId,\n provider: model.provider,\n },\n modelSettings,\n headers: modelSettings?.headers ?? rest.headers,\n telemetry_settings,\n });\n\n rootSpan.setAttributes({\n ...(telemetry_settings?.recordOutputs !== false\n ? {\n 'stream.prompt.messages': JSON.stringify(messageList.get.input.aiV5.model()),\n }\n : {}),\n });\n\n const { rootSpan: modelStreamSpan } = getRootSpan({\n operationId: `mastra.stream.aisdk.doStream`,\n model: {\n modelId: model.modelId,\n provider: model.provider,\n },\n modelSettings,\n headers: modelSettings?.headers ?? rest.headers,\n telemetry_settings,\n });\n\n const workflowLoopProps: LoopRun<Tools> = {\n model,\n runId: runIdToUse,\n logger: loggerToUse,\n startTimestamp: startTimestamp!,\n messageList,\n includeRawChunks: !!includeRawChunks,\n _internal: internalToUse,\n tools,\n modelStreamSpan,\n telemetry_settings,\n ...rest,\n };\n\n const streamFn = workflowLoopStream(workflowLoopProps);\n\n return new MastraModelOutput({\n model: {\n modelId: model.modelId,\n provider: model.provider,\n version: model.specificationVersion,\n },\n stream: streamFn,\n messageList,\n options: {\n runId: runIdToUse!,\n telemetry_settings,\n rootSpan,\n toolCallStreaming: rest.toolCallStreaming,\n onFinish: rest.options?.onFinish,\n onStepFinish: rest.options?.onStepFinish,\n includeRawChunks: !!includeRawChunks,\n objectOptions: rest.objectOptions,\n },\n });\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/loop/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC"}
|