@mastra/core 1.0.0-beta.1 → 1.0.0-beta.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1128 -0
- package/dist/agent/agent-legacy.d.ts +19 -22
- package/dist/agent/agent-legacy.d.ts.map +1 -1
- package/dist/agent/agent-types.test-d.d.ts +2 -0
- package/dist/agent/agent-types.test-d.d.ts.map +1 -0
- package/dist/agent/agent.d.ts +6 -6
- package/dist/agent/agent.d.ts.map +1 -1
- package/dist/agent/agent.types.d.ts +6 -4
- package/dist/agent/agent.types.d.ts.map +1 -1
- package/dist/agent/index.cjs +9 -9
- package/dist/agent/index.js +2 -2
- package/dist/agent/message-list/index.cjs +3 -3
- package/dist/agent/message-list/index.d.ts +60 -3
- package/dist/agent/message-list/index.d.ts.map +1 -1
- package/dist/agent/message-list/index.js +1 -1
- package/dist/agent/message-list/prompt/attachments-to-parts.d.ts.map +1 -1
- package/dist/agent/message-list/prompt/convert-file.d.ts +1 -1
- package/dist/agent/message-list/prompt/convert-file.d.ts.map +1 -1
- package/dist/agent/message-list/prompt/download-assets.d.ts.map +1 -1
- package/dist/agent/save-queue/index.d.ts +3 -1
- package/dist/agent/save-queue/index.d.ts.map +1 -1
- package/dist/agent/test-utils.d.ts +37 -0
- package/dist/agent/test-utils.d.ts.map +1 -1
- package/dist/agent/trip-wire.d.ts.map +1 -1
- package/dist/agent/types.d.ts +21 -6
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/agent/utils.d.ts +3 -3
- package/dist/agent/utils.d.ts.map +1 -1
- package/dist/agent/workflows/prepare-stream/index.d.ts +9 -7
- package/dist/agent/workflows/prepare-stream/index.d.ts.map +1 -1
- package/dist/agent/workflows/prepare-stream/map-results-step.d.ts +3 -3
- package/dist/agent/workflows/prepare-stream/map-results-step.d.ts.map +1 -1
- package/dist/agent/workflows/prepare-stream/prepare-memory-step.d.ts +6 -5
- package/dist/agent/workflows/prepare-stream/prepare-memory-step.d.ts.map +1 -1
- package/dist/agent/workflows/prepare-stream/prepare-tools-step.d.ts +2 -1
- package/dist/agent/workflows/prepare-stream/prepare-tools-step.d.ts.map +1 -1
- package/dist/agent/workflows/prepare-stream/schema.d.ts +8 -8
- package/dist/agent/workflows/prepare-stream/schema.d.ts.map +1 -1
- package/dist/agent/workflows/prepare-stream/stream-step.d.ts +11 -1
- package/dist/agent/workflows/prepare-stream/stream-step.d.ts.map +1 -1
- 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/cache/index.cjs +3 -3
- package/dist/cache/index.js +1 -1
- package/dist/{chunk-4CDL2QJT.js → chunk-267YOF47.js} +121 -36
- package/dist/chunk-267YOF47.js.map +1 -0
- package/dist/{chunk-OJNJA5ZI.js → chunk-3CKZSDTQ.js} +3 -3
- package/dist/{chunk-OJNJA5ZI.js.map → chunk-3CKZSDTQ.js.map} +1 -1
- package/dist/{chunk-JV2KH24V.js → chunk-3GKKHF36.js} +693 -375
- package/dist/chunk-3GKKHF36.js.map +1 -0
- package/dist/{chunk-TQTAMPSC.js → chunk-3N3QE4ZK.js} +3 -3
- package/dist/chunk-3N3QE4ZK.js.map +1 -0
- package/dist/{chunk-QUKUN6NR.cjs → chunk-4JKEUSCC.cjs} +107 -7
- package/dist/chunk-4JKEUSCC.cjs.map +1 -0
- package/dist/{chunk-XEVG546F.js → chunk-4Q3Z6QRE.js} +178 -12
- package/dist/chunk-4Q3Z6QRE.js.map +1 -0
- package/dist/{chunk-CBAB7GOD.cjs → chunk-6BJ7XHRH.cjs} +2 -2
- package/dist/{chunk-CBAB7GOD.cjs.map → chunk-6BJ7XHRH.cjs.map} +1 -1
- package/dist/{chunk-JUBFO5J3.js → chunk-6CYYFT4O.js} +11378 -8189
- package/dist/chunk-6CYYFT4O.js.map +1 -0
- package/dist/{chunk-W7UH2PWL.js → chunk-6ONQWD6S.js} +1124 -325
- package/dist/chunk-6ONQWD6S.js.map +1 -0
- package/dist/{chunk-GRBGQ2GE.js → chunk-6TBWJV35.js} +5 -3
- package/dist/chunk-6TBWJV35.js.map +1 -0
- package/dist/chunk-6XCINXZ7.cjs +194 -0
- package/dist/chunk-6XCINXZ7.cjs.map +1 -0
- package/dist/{chunk-E7K4FTLN.cjs → chunk-72YCRTEX.cjs} +18 -2
- package/dist/chunk-72YCRTEX.cjs.map +1 -0
- package/dist/{chunk-MA7TEM62.cjs → chunk-7THRV5KZ.cjs} +762 -27
- package/dist/chunk-7THRV5KZ.cjs.map +1 -0
- package/dist/{chunk-76K3IYWM.js → chunk-ADADLFDR.js} +3 -3
- package/dist/{chunk-76K3IYWM.js.map → chunk-ADADLFDR.js.map} +1 -1
- package/dist/{chunk-DSNPWVIG.cjs → chunk-AF74UXR5.cjs} +4 -3
- package/dist/chunk-AF74UXR5.cjs.map +1 -0
- package/dist/{chunk-DNEURYF3.cjs → chunk-BCRRHJGV.cjs} +206 -65
- package/dist/chunk-BCRRHJGV.cjs.map +1 -0
- package/dist/chunk-BWYU7D33.js +192 -0
- package/dist/chunk-BWYU7D33.js.map +1 -0
- package/dist/{chunk-MV7KHWUT.js → chunk-BXONP7HX.js} +391 -15
- package/dist/chunk-BXONP7HX.js.map +1 -0
- package/dist/chunk-CDRYT2A5.js +513 -0
- package/dist/chunk-CDRYT2A5.js.map +1 -0
- package/dist/{chunk-CB575O6L.cjs → chunk-CZEJQSWB.cjs} +473 -124
- package/dist/chunk-CZEJQSWB.cjs.map +1 -0
- package/dist/chunk-DD2VNRQM.js +62 -0
- package/dist/chunk-DD2VNRQM.js.map +1 -0
- package/dist/{chunk-KEXGB7FK.cjs → chunk-DGV2FWB4.cjs} +7 -7
- package/dist/{chunk-KEXGB7FK.cjs.map → chunk-DGV2FWB4.cjs.map} +1 -1
- package/dist/{chunk-Y63IFHEZ.cjs → chunk-EOPEDKLG.cjs} +4 -4
- package/dist/chunk-EOPEDKLG.cjs.map +1 -0
- package/dist/{chunk-UIZSWUKP.js → chunk-F2GAJSBI.js} +105 -7
- package/dist/chunk-F2GAJSBI.js.map +1 -0
- package/dist/{chunk-VOY2RXOC.cjs → chunk-G4IFCTL5.cjs} +182 -15
- package/dist/chunk-G4IFCTL5.cjs.map +1 -0
- package/dist/chunk-KJBMTK5B.cjs +64 -0
- package/dist/chunk-KJBMTK5B.cjs.map +1 -0
- package/dist/{chunk-S6URFGCZ.js → chunk-LSHPJWM5.js} +3 -3
- package/dist/{chunk-S6URFGCZ.js.map → chunk-LSHPJWM5.js.map} +1 -1
- package/dist/chunk-MGCGWPQJ.cjs +275 -0
- package/dist/chunk-MGCGWPQJ.cjs.map +1 -0
- package/dist/chunk-MRFUISXC.cjs +4981 -0
- package/dist/chunk-MRFUISXC.cjs.map +1 -0
- package/dist/chunk-MSZP3FNH.cjs +518 -0
- package/dist/chunk-MSZP3FNH.cjs.map +1 -0
- package/dist/{chunk-KJ2SW6VA.js → chunk-NRUZYMHE.js} +4 -3
- package/dist/chunk-NRUZYMHE.js.map +1 -0
- package/dist/{chunk-VOQ3ULMT.js → chunk-NUA6TSRD.js} +752 -17
- package/dist/chunk-NUA6TSRD.js.map +1 -0
- package/dist/chunk-OEIVMCWX.js +4959 -0
- package/dist/chunk-OEIVMCWX.js.map +1 -0
- package/dist/{chunk-CINNK34N.js → chunk-OIDPIW42.js} +26 -11
- package/dist/chunk-OIDPIW42.js.map +1 -0
- package/dist/{chunk-CD56CXVE.cjs → chunk-OYIDRI3A.cjs} +32 -17
- package/dist/chunk-OYIDRI3A.cjs.map +1 -0
- package/dist/{chunk-2ZVKF4HP.cjs → chunk-P2D2VO2O.cjs} +1129 -328
- package/dist/chunk-P2D2VO2O.cjs.map +1 -0
- package/dist/{chunk-JPGVRWWL.js → chunk-PK2A5WBG.js} +472 -125
- package/dist/chunk-PK2A5WBG.js.map +1 -0
- package/dist/{chunk-X7JMA3IY.js → chunk-PSCMWPLC.js} +2 -2
- package/dist/{chunk-X7JMA3IY.js.map → chunk-PSCMWPLC.js.map} +1 -1
- package/dist/{chunk-WM6CK2F3.cjs → chunk-QD3UWFAV.cjs} +130 -48
- package/dist/chunk-QD3UWFAV.cjs.map +1 -0
- package/dist/{chunk-MSWTA73A.cjs → chunk-SL7Q6IZF.cjs} +11426 -8219
- package/dist/chunk-SL7Q6IZF.cjs.map +1 -0
- package/dist/{chunk-ECFXGXWO.cjs → chunk-SSPUH2N7.cjs} +693 -375
- package/dist/chunk-SSPUH2N7.cjs.map +1 -0
- package/dist/{chunk-BMAFVZ2D.cjs → chunk-T2VLUFGG.cjs} +4 -4
- package/dist/{chunk-BMAFVZ2D.cjs.map → chunk-T2VLUFGG.cjs.map} +1 -1
- package/dist/chunk-THZTRBFS.js +268 -0
- package/dist/chunk-THZTRBFS.js.map +1 -0
- package/dist/{chunk-Y6ROD72V.cjs → chunk-UIGRFDO6.cjs} +4 -4
- package/dist/{chunk-Y6ROD72V.cjs.map → chunk-UIGRFDO6.cjs.map} +1 -1
- package/dist/{chunk-J7O6WENZ.cjs → chunk-UVHSM2GU.cjs} +6 -2
- package/dist/chunk-UVHSM2GU.cjs.map +1 -0
- package/dist/{chunk-GGYKYORQ.cjs → chunk-WX2DLWXF.cjs} +407 -22
- package/dist/chunk-WX2DLWXF.cjs.map +1 -0
- package/dist/{chunk-H6CZGPZD.js → chunk-XRJQ5ZA7.js} +179 -38
- package/dist/chunk-XRJQ5ZA7.js.map +1 -0
- package/dist/{chunk-KIZIOFZC.js → chunk-Y36Y5MTD.js} +17 -3
- package/dist/chunk-Y36Y5MTD.js.map +1 -0
- package/dist/{chunk-IQO7ANVS.cjs → chunk-YWMMBIOM.cjs} +21 -20
- package/dist/chunk-YWMMBIOM.cjs.map +1 -0
- package/dist/{chunk-I4CXL4SR.js → chunk-Z57R5WS4.js} +16 -15
- package/dist/chunk-Z57R5WS4.js.map +1 -0
- package/dist/deployer/index.cjs +2 -2
- package/dist/deployer/index.js +1 -1
- package/dist/di/index.cjs +10 -2
- package/dist/di/index.d.ts +1 -1
- package/dist/di/index.d.ts.map +1 -1
- package/dist/di/index.js +1 -1
- package/dist/evals/base.d.ts +10 -2
- package/dist/evals/base.d.ts.map +1 -1
- package/dist/evals/base.test-utils.d.ts +25 -25
- package/dist/evals/index.cjs +9 -9
- package/dist/evals/index.js +2 -2
- package/dist/evals/scoreTraces/index.cjs +7 -6
- package/dist/evals/scoreTraces/index.cjs.map +1 -1
- package/dist/evals/scoreTraces/index.js +4 -3
- package/dist/evals/scoreTraces/index.js.map +1 -1
- package/dist/evals/scoreTraces/scoreTracesWorkflow.d.ts.map +1 -1
- package/dist/evals/types.d.ts +25 -24
- package/dist/evals/types.d.ts.map +1 -1
- package/dist/index.cjs +2 -2
- package/dist/index.js +1 -1
- package/dist/integration/index.cjs +2 -2
- package/dist/integration/index.js +1 -1
- package/dist/llm/index.cjs +30 -10
- package/dist/llm/index.d.ts +2 -0
- package/dist/llm/index.d.ts.map +1 -1
- package/dist/llm/index.js +5 -1
- package/dist/llm/model/aisdk/v5/model.d.ts +47 -0
- package/dist/llm/model/aisdk/v5/model.d.ts.map +1 -0
- package/dist/llm/model/gateway-resolver.d.ts.map +1 -1
- package/dist/llm/model/gateways/azure.d.ts +36 -0
- package/dist/llm/model/gateways/azure.d.ts.map +1 -0
- package/dist/llm/model/gateways/base.d.ts +9 -4
- package/dist/llm/model/gateways/base.d.ts.map +1 -1
- package/dist/llm/model/gateways/constants.d.ts.map +1 -1
- package/dist/llm/model/gateways/index.d.ts +4 -1
- package/dist/llm/model/gateways/index.d.ts.map +1 -1
- package/dist/llm/model/gateways/models-dev.d.ts +3 -2
- package/dist/llm/model/gateways/models-dev.d.ts.map +1 -1
- package/dist/llm/model/gateways/netlify.d.ts +4 -3
- package/dist/llm/model/gateways/netlify.d.ts.map +1 -1
- package/dist/llm/model/is-v2-model.d.ts +3 -0
- package/dist/llm/model/is-v2-model.d.ts.map +1 -0
- package/dist/llm/model/model-method-from-agent.d.ts +4 -0
- package/dist/llm/model/model-method-from-agent.d.ts.map +1 -0
- package/dist/llm/model/model.d.ts.map +1 -1
- package/dist/llm/model/model.loop.d.ts +2 -2
- package/dist/llm/model/model.loop.d.ts.map +1 -1
- package/dist/llm/model/model.loop.types.d.ts +2 -0
- package/dist/llm/model/model.loop.types.d.ts.map +1 -1
- package/dist/llm/model/provider-options.d.ts +4 -1
- package/dist/llm/model/provider-options.d.ts.map +1 -1
- package/dist/llm/model/provider-registry.d.ts +11 -1
- package/dist/llm/model/provider-registry.d.ts.map +1 -1
- package/dist/llm/model/provider-types.generated.d.ts +473 -24
- package/dist/llm/model/registry-generator.d.ts +12 -0
- package/dist/llm/model/registry-generator.d.ts.map +1 -1
- package/dist/llm/model/resolve-model.d.ts +1 -1
- package/dist/llm/model/resolve-model.d.ts.map +1 -1
- package/dist/llm/model/router.d.ts +12 -5
- package/dist/llm/model/router.d.ts.map +1 -1
- package/dist/llm/model/shared.types.d.ts +10 -4
- package/dist/llm/model/shared.types.d.ts.map +1 -1
- package/dist/logger/constants.d.ts +1 -0
- package/dist/logger/constants.d.ts.map +1 -1
- package/dist/logger/index.cjs +11 -11
- package/dist/logger/index.js +2 -2
- package/dist/logger/transport.d.ts +1 -1
- package/dist/logger/transport.d.ts.map +1 -1
- package/dist/loop/index.cjs +2 -2
- package/dist/loop/index.js +1 -1
- package/dist/loop/loop.d.ts.map +1 -1
- package/dist/loop/network/index.d.ts.map +1 -1
- package/dist/loop/test-utils/MastraLanguageModelV2Mock.d.ts +37 -0
- package/dist/loop/test-utils/MastraLanguageModelV2Mock.d.ts.map +1 -0
- package/dist/loop/test-utils/fullStream.d.ts.map +1 -1
- package/dist/loop/test-utils/generateText.d.ts.map +1 -1
- package/dist/loop/test-utils/options.d.ts.map +1 -1
- package/dist/loop/test-utils/resultObject.d.ts.map +1 -1
- package/dist/loop/test-utils/streamObject.d.ts.map +1 -1
- package/dist/loop/test-utils/textStream.d.ts.map +1 -1
- package/dist/loop/test-utils/toUIMessageStream.d.ts.map +1 -1
- package/dist/loop/test-utils/tools.d.ts.map +1 -1
- package/dist/loop/test-utils/utils.d.ts +1 -1
- package/dist/loop/test-utils/utils.d.ts.map +1 -1
- package/dist/loop/types.d.ts +22 -5
- package/dist/loop/types.d.ts.map +1 -1
- package/dist/loop/workflows/agentic-execution/index.d.ts +42 -42
- package/dist/loop/workflows/agentic-execution/index.d.ts.map +1 -1
- package/dist/loop/workflows/agentic-execution/llm-execution-step.d.ts +29 -29
- package/dist/loop/workflows/agentic-execution/llm-execution-step.d.ts.map +1 -1
- package/dist/loop/workflows/agentic-execution/llm-mapping-step.d.ts +14 -14
- package/dist/loop/workflows/agentic-execution/llm-mapping-step.d.ts.map +1 -1
- package/dist/loop/workflows/agentic-execution/tool-call-step.d.ts +1 -1
- package/dist/loop/workflows/agentic-execution/tool-call-step.d.ts.map +1 -1
- package/dist/loop/workflows/agentic-loop/index.d.ts +44 -43
- package/dist/loop/workflows/agentic-loop/index.d.ts.map +1 -1
- package/dist/loop/workflows/run-state.d.ts +2 -2
- package/dist/loop/workflows/run-state.d.ts.map +1 -1
- package/dist/loop/workflows/schema.d.ts +14 -14
- package/dist/loop/workflows/stream.d.ts +1 -1
- package/dist/loop/workflows/stream.d.ts.map +1 -1
- package/dist/mastra/index.cjs +2 -2
- package/dist/mastra/index.d.ts +377 -12
- 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.cjs.map +1 -1
- package/dist/mcp/index.d.ts +4 -4
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +2 -2
- package/dist/mcp/index.js.map +1 -1
- package/dist/mcp/types.d.ts +2 -2
- package/dist/mcp/types.d.ts.map +1 -1
- package/dist/memory/index.cjs +21 -327
- package/dist/memory/index.cjs.map +1 -1
- package/dist/memory/index.js +1 -327
- package/dist/memory/index.js.map +1 -1
- package/dist/memory/memory.d.ts +28 -18
- package/dist/memory/memory.d.ts.map +1 -1
- package/dist/memory/mock.d.ts +15 -14
- package/dist/memory/mock.d.ts.map +1 -1
- package/dist/memory/types.d.ts +69 -11
- package/dist/memory/types.d.ts.map +1 -1
- package/dist/models-dev-23RN2WHG.js +3 -0
- package/dist/{models-dev-DNBKXHT4.js.map → models-dev-23RN2WHG.js.map} +1 -1
- package/dist/models-dev-EO3SUIY2.cjs +12 -0
- package/dist/{models-dev-YBEEQIX6.cjs.map → models-dev-EO3SUIY2.cjs.map} +1 -1
- package/dist/netlify-GXJ5D5DD.js +3 -0
- package/dist/{netlify-7G2L5VSH.js.map → netlify-GXJ5D5DD.js.map} +1 -1
- package/dist/netlify-KJLY3GFS.cjs +12 -0
- package/dist/{netlify-GWNGSIRZ.cjs.map → netlify-KJLY3GFS.cjs.map} +1 -1
- package/dist/observability/index.cjs +16 -8
- package/dist/observability/index.js +1 -1
- package/dist/observability/types/tracing.d.ts +236 -13
- package/dist/observability/types/tracing.d.ts.map +1 -1
- package/dist/observability/utils.d.ts +47 -1
- package/dist/observability/utils.d.ts.map +1 -1
- package/dist/processors/index.cjs +35 -11
- package/dist/processors/index.d.ts +101 -23
- package/dist/processors/index.d.ts.map +1 -1
- package/dist/processors/index.js +1 -1
- package/dist/processors/memory/index.d.ts +7 -0
- package/dist/processors/memory/index.d.ts.map +1 -0
- package/dist/processors/memory/message-history.d.ts +43 -0
- package/dist/processors/memory/message-history.d.ts.map +1 -0
- package/dist/processors/memory/semantic-recall.d.ts +152 -0
- package/dist/processors/memory/semantic-recall.d.ts.map +1 -0
- package/dist/processors/memory/working-memory.d.ts +65 -0
- package/dist/processors/memory/working-memory.d.ts.map +1 -0
- package/dist/processors/processors/batch-parts.d.ts +1 -1
- package/dist/processors/processors/batch-parts.d.ts.map +1 -1
- package/dist/processors/processors/index.d.ts +2 -1
- package/dist/processors/processors/index.d.ts.map +1 -1
- package/dist/processors/processors/language-detector.d.ts +15 -1
- package/dist/processors/processors/language-detector.d.ts.map +1 -1
- package/dist/processors/processors/moderation.d.ts +15 -1
- package/dist/processors/processors/moderation.d.ts.map +1 -1
- package/dist/processors/processors/pii-detector.d.ts +15 -1
- package/dist/processors/processors/pii-detector.d.ts.map +1 -1
- package/dist/processors/processors/prompt-injection-detector.d.ts +15 -1
- package/dist/processors/processors/prompt-injection-detector.d.ts.map +1 -1
- package/dist/processors/processors/structured-output.d.ts +3 -2
- package/dist/processors/processors/structured-output.d.ts.map +1 -1
- package/dist/processors/processors/system-prompt-scrubber.d.ts +1 -1
- package/dist/processors/processors/system-prompt-scrubber.d.ts.map +1 -1
- package/dist/processors/processors/token-limiter.d.ts +22 -12
- package/dist/processors/processors/token-limiter.d.ts.map +1 -1
- package/dist/processors/processors/tool-call-filter.d.ts +28 -0
- package/dist/processors/processors/tool-call-filter.d.ts.map +1 -0
- package/dist/processors/processors/unicode-normalizer.d.ts +1 -1
- package/dist/processors/processors/unicode-normalizer.d.ts.map +1 -1
- package/dist/processors/runner.d.ts +35 -4
- package/dist/processors/runner.d.ts.map +1 -1
- package/dist/provider-registry-A7FILT6Q.cjs +40 -0
- package/dist/provider-registry-A7FILT6Q.cjs.map +1 -0
- package/dist/provider-registry-XM2YDI5X.js +3 -0
- package/dist/provider-registry-XM2YDI5X.js.map +1 -0
- package/dist/provider-registry.json +1038 -55
- package/dist/{registry-generator-MK63POJO.cjs → registry-generator-34SC4TAU.cjs} +23 -6
- package/dist/registry-generator-34SC4TAU.cjs.map +1 -0
- package/dist/{registry-generator-H4YNODDH.js → registry-generator-UMTNPBJX.js} +23 -7
- package/dist/registry-generator-UMTNPBJX.js.map +1 -0
- package/dist/relevance/index.cjs +2 -2
- package/dist/relevance/index.js +1 -1
- package/dist/request-context/index.cjs +10 -2
- package/dist/request-context/index.d.ts +26 -0
- package/dist/request-context/index.d.ts.map +1 -1
- package/dist/request-context/index.js +1 -1
- package/dist/server/auth.d.ts +11 -0
- package/dist/server/auth.d.ts.map +1 -1
- package/dist/server/base.d.ts +51 -0
- package/dist/server/base.d.ts.map +1 -0
- package/dist/server/composite-auth.d.ts +9 -0
- package/dist/server/composite-auth.d.ts.map +1 -0
- package/dist/server/index.cjs +124 -3
- package/dist/server/index.cjs.map +1 -1
- package/dist/server/index.d.ts +8 -0
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +121 -3
- package/dist/server/index.js.map +1 -1
- package/dist/server/simple-auth.d.ts +27 -0
- package/dist/server/simple-auth.d.ts.map +1 -0
- package/dist/storage/base.d.ts +76 -3
- package/dist/storage/base.d.ts.map +1 -1
- package/dist/storage/constants.d.ts +3 -1
- package/dist/storage/constants.d.ts.map +1 -1
- package/dist/storage/domains/agents/base.d.ts +49 -0
- package/dist/storage/domains/agents/base.d.ts.map +1 -0
- package/dist/storage/domains/agents/index.d.ts +3 -0
- package/dist/storage/domains/agents/index.d.ts.map +1 -0
- package/dist/storage/domains/agents/inmemory.d.ts +22 -0
- package/dist/storage/domains/agents/inmemory.d.ts.map +1 -0
- package/dist/storage/domains/index.d.ts +1 -0
- package/dist/storage/domains/index.d.ts.map +1 -1
- package/dist/storage/domains/memory/inmemory.d.ts.map +1 -1
- package/dist/storage/domains/operations/inmemory.d.ts.map +1 -1
- package/dist/storage/domains/scores/base.d.ts +2 -2
- package/dist/storage/domains/scores/base.d.ts.map +1 -1
- package/dist/storage/domains/scores/inmemory.d.ts +2 -2
- package/dist/storage/domains/scores/inmemory.d.ts.map +1 -1
- package/dist/storage/domains/workflows/base.d.ts +4 -0
- package/dist/storage/domains/workflows/base.d.ts.map +1 -1
- package/dist/storage/domains/workflows/inmemory.d.ts +5 -1
- package/dist/storage/domains/workflows/inmemory.d.ts.map +1 -1
- package/dist/storage/index.cjs +65 -29
- package/dist/storage/index.js +1 -1
- package/dist/storage/mock.d.ts +7 -2
- package/dist/storage/mock.d.ts.map +1 -1
- package/dist/storage/storageWithInit.d.ts.map +1 -1
- package/dist/storage/types.d.ts +85 -2
- package/dist/storage/types.d.ts.map +1 -1
- package/dist/storage/utils.d.ts +82 -0
- package/dist/storage/utils.d.ts.map +1 -1
- package/dist/stream/MastraAgentNetworkStream.d.ts +1 -1
- package/dist/stream/MastraAgentNetworkStream.d.ts.map +1 -1
- package/dist/stream/MastraWorkflowStream.d.ts +1 -1
- package/dist/stream/MastraWorkflowStream.d.ts.map +1 -1
- package/dist/stream/RunOutput.d.ts +2 -2
- package/dist/stream/RunOutput.d.ts.map +1 -1
- package/dist/stream/aisdk/v4/usage.d.ts +19 -0
- package/dist/stream/aisdk/v4/usage.d.ts.map +1 -0
- package/dist/stream/aisdk/v5/compat/prepare-tools.d.ts.map +1 -1
- package/dist/stream/aisdk/v5/execute.d.ts +8 -4
- package/dist/stream/aisdk/v5/execute.d.ts.map +1 -1
- package/dist/stream/aisdk/v5/input.d.ts +4 -1
- package/dist/stream/aisdk/v5/input.d.ts.map +1 -1
- package/dist/stream/aisdk/v5/output.d.ts +9 -9
- package/dist/stream/aisdk/v5/output.d.ts.map +1 -1
- package/dist/stream/aisdk/v5/transform.d.ts.map +1 -1
- package/dist/stream/base/base.d.ts +1 -1
- package/dist/stream/base/base.d.ts.map +1 -1
- package/dist/stream/base/input.d.ts +1 -1
- package/dist/stream/base/output-format-handlers.d.ts +14 -1
- package/dist/stream/base/output-format-handlers.d.ts.map +1 -1
- package/dist/stream/base/output.d.ts +3 -3
- package/dist/stream/base/output.d.ts.map +1 -1
- package/dist/stream/index.cjs +15 -11
- package/dist/stream/index.d.ts +2 -2
- package/dist/stream/index.d.ts.map +1 -1
- package/dist/stream/index.js +2 -2
- package/dist/stream/types.d.ts +48 -25
- package/dist/stream/types.d.ts.map +1 -1
- package/dist/test-utils/llm-mock.cjs +101 -30
- package/dist/test-utils/llm-mock.cjs.map +1 -1
- package/dist/test-utils/llm-mock.d.ts +7 -2
- package/dist/test-utils/llm-mock.d.ts.map +1 -1
- package/dist/test-utils/llm-mock.js +97 -30
- package/dist/test-utils/llm-mock.js.map +1 -1
- package/dist/tools/index.cjs +6 -6
- package/dist/tools/index.js +2 -2
- package/dist/tools/is-vercel-tool.cjs +2 -2
- package/dist/tools/is-vercel-tool.js +1 -1
- package/dist/tools/stream.d.ts +10 -4
- package/dist/tools/stream.d.ts.map +1 -1
- package/dist/tools/tool-builder/builder.d.ts +2 -0
- package/dist/tools/tool-builder/builder.d.ts.map +1 -1
- package/dist/tools/tool-stream-types.test-d.d.ts +2 -0
- package/dist/tools/tool-stream-types.test-d.d.ts.map +1 -0
- package/dist/tools/tool.d.ts +21 -8
- package/dist/tools/tool.d.ts.map +1 -1
- package/dist/tools/types.d.ts +33 -6
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/tools/validation.d.ts +25 -1
- package/dist/tools/validation.d.ts.map +1 -1
- package/dist/tts/index.cjs +2 -2
- package/dist/tts/index.js +1 -1
- package/dist/types/zod-compat.d.ts +14 -1
- package/dist/types/zod-compat.d.ts.map +1 -1
- package/dist/utils.cjs +25 -21
- package/dist/utils.d.ts +9 -4
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +1 -1
- package/dist/vector/filter/index.cjs +7 -189
- package/dist/vector/filter/index.cjs.map +1 -1
- package/dist/vector/filter/index.js +1 -190
- package/dist/vector/filter/index.js.map +1 -1
- package/dist/vector/index.cjs +7 -2
- package/dist/vector/index.cjs.map +1 -1
- package/dist/vector/index.d.ts +1 -0
- package/dist/vector/index.d.ts.map +1 -1
- package/dist/vector/index.js +2 -1
- package/dist/vector/index.js.map +1 -1
- package/dist/vector/types.d.ts +86 -3
- package/dist/vector/types.d.ts.map +1 -1
- package/dist/vector/vector.d.ts +39 -2
- package/dist/vector/vector.d.ts.map +1 -1
- package/dist/voice/aisdk/index.d.ts +3 -0
- package/dist/voice/aisdk/index.d.ts.map +1 -0
- package/dist/voice/aisdk/speech.d.ts +23 -0
- package/dist/voice/aisdk/speech.d.ts.map +1 -0
- package/dist/voice/aisdk/transcription.d.ts +22 -0
- package/dist/voice/aisdk/transcription.d.ts.map +1 -0
- package/dist/voice/composite-voice.d.ts +4 -3
- package/dist/voice/composite-voice.d.ts.map +1 -1
- package/dist/voice/index.cjs +12 -4
- package/dist/voice/index.d.ts +1 -0
- package/dist/voice/index.d.ts.map +1 -1
- package/dist/voice/index.js +1 -1
- package/dist/workflows/default.d.ts +179 -270
- package/dist/workflows/default.d.ts.map +1 -1
- package/dist/workflows/evented/execution-engine.d.ts +3 -1
- package/dist/workflows/evented/execution-engine.d.ts.map +1 -1
- package/dist/workflows/evented/index.cjs +10 -10
- package/dist/workflows/evented/index.js +1 -1
- package/dist/workflows/evented/step-executor.d.ts +1 -1
- package/dist/workflows/evented/step-executor.d.ts.map +1 -1
- package/dist/workflows/evented/workflow-event-processor/index.d.ts +5 -4
- package/dist/workflows/evented/workflow-event-processor/index.d.ts.map +1 -1
- package/dist/workflows/evented/workflow-event-processor/loop.d.ts +1 -1
- package/dist/workflows/evented/workflow-event-processor/loop.d.ts.map +1 -1
- package/dist/workflows/evented/workflow-event-processor/parallel.d.ts +2 -2
- package/dist/workflows/evented/workflow-event-processor/parallel.d.ts.map +1 -1
- package/dist/workflows/evented/workflow-event-processor/sleep.d.ts +2 -2
- package/dist/workflows/evented/workflow-event-processor/sleep.d.ts.map +1 -1
- package/dist/workflows/evented/workflow.d.ts +2 -1
- package/dist/workflows/evented/workflow.d.ts.map +1 -1
- package/dist/workflows/execution-engine.d.ts +8 -6
- package/dist/workflows/execution-engine.d.ts.map +1 -1
- package/dist/workflows/handlers/control-flow.d.ts +133 -0
- package/dist/workflows/handlers/control-flow.d.ts.map +1 -0
- package/dist/workflows/handlers/entry.d.ts +43 -0
- package/dist/workflows/handlers/entry.d.ts.map +1 -0
- package/dist/workflows/handlers/sleep.d.ts +60 -0
- package/dist/workflows/handlers/sleep.d.ts.map +1 -0
- package/dist/workflows/handlers/step.d.ts +58 -0
- package/dist/workflows/handlers/step.d.ts.map +1 -0
- package/dist/workflows/index.cjs +36 -16
- package/dist/workflows/index.js +1 -1
- package/dist/workflows/step.d.ts +8 -6
- package/dist/workflows/step.d.ts.map +1 -1
- package/dist/workflows/types.d.ts +223 -10
- package/dist/workflows/types.d.ts.map +1 -1
- package/dist/workflows/utils.d.ts +36 -0
- package/dist/workflows/utils.d.ts.map +1 -1
- package/dist/workflows/workflow.d.ts +135 -54
- package/dist/workflows/workflow.d.ts.map +1 -1
- package/package.json +26 -30
- package/src/llm/model/provider-types.generated.d.ts +473 -24
- package/dist/chunk-2ZVKF4HP.cjs.map +0 -1
- package/dist/chunk-436FFEF6.js +0 -34
- package/dist/chunk-436FFEF6.js.map +0 -1
- package/dist/chunk-4CDL2QJT.js.map +0 -1
- package/dist/chunk-7AHYOMHJ.js +0 -149
- package/dist/chunk-7AHYOMHJ.js.map +0 -1
- package/dist/chunk-CB575O6L.cjs.map +0 -1
- package/dist/chunk-CD56CXVE.cjs.map +0 -1
- package/dist/chunk-CINNK34N.js.map +0 -1
- package/dist/chunk-DNEURYF3.cjs.map +0 -1
- package/dist/chunk-DSNPWVIG.cjs.map +0 -1
- package/dist/chunk-E7K4FTLN.cjs.map +0 -1
- package/dist/chunk-ECFXGXWO.cjs.map +0 -1
- package/dist/chunk-ET6UOTTU.cjs +0 -154
- package/dist/chunk-ET6UOTTU.cjs.map +0 -1
- package/dist/chunk-GGYKYORQ.cjs.map +0 -1
- package/dist/chunk-GRBGQ2GE.js.map +0 -1
- package/dist/chunk-H6CZGPZD.js.map +0 -1
- package/dist/chunk-HDJFSJCK.js +0 -2237
- package/dist/chunk-HDJFSJCK.js.map +0 -1
- package/dist/chunk-HGNRQ3OG.js +0 -58
- package/dist/chunk-HGNRQ3OG.js.map +0 -1
- package/dist/chunk-I4CXL4SR.js.map +0 -1
- package/dist/chunk-IQO7ANVS.cjs.map +0 -1
- package/dist/chunk-J7O6WENZ.cjs.map +0 -1
- package/dist/chunk-JPGVRWWL.js.map +0 -1
- package/dist/chunk-JUBFO5J3.js.map +0 -1
- package/dist/chunk-JV2KH24V.js.map +0 -1
- package/dist/chunk-KIZIOFZC.js.map +0 -1
- package/dist/chunk-KJ2SW6VA.js.map +0 -1
- package/dist/chunk-LJFJTTZQ.cjs +0 -4
- package/dist/chunk-LJFJTTZQ.cjs.map +0 -1
- package/dist/chunk-LRSB62Z6.cjs +0 -60
- package/dist/chunk-LRSB62Z6.cjs.map +0 -1
- package/dist/chunk-LWBQ4P4N.cjs +0 -2240
- package/dist/chunk-LWBQ4P4N.cjs.map +0 -1
- package/dist/chunk-MA7TEM62.cjs.map +0 -1
- package/dist/chunk-MSWTA73A.cjs.map +0 -1
- package/dist/chunk-MV7KHWUT.js.map +0 -1
- package/dist/chunk-QUKUN6NR.cjs.map +0 -1
- package/dist/chunk-TQTAMPSC.js.map +0 -1
- package/dist/chunk-UIZSWUKP.js.map +0 -1
- package/dist/chunk-V3VLOOSW.cjs +0 -36
- package/dist/chunk-V3VLOOSW.cjs.map +0 -1
- package/dist/chunk-VOQ3ULMT.js.map +0 -1
- package/dist/chunk-VOY2RXOC.cjs.map +0 -1
- package/dist/chunk-W7UH2PWL.js.map +0 -1
- package/dist/chunk-WM6CK2F3.cjs.map +0 -1
- package/dist/chunk-XEVG546F.js.map +0 -1
- package/dist/chunk-Y63IFHEZ.cjs.map +0 -1
- package/dist/chunk-ZV5CC35D.js +0 -3
- package/dist/chunk-ZV5CC35D.js.map +0 -1
- package/dist/models-dev-DNBKXHT4.js +0 -3
- package/dist/models-dev-YBEEQIX6.cjs +0 -12
- package/dist/netlify-7G2L5VSH.js +0 -3
- package/dist/netlify-GWNGSIRZ.cjs +0 -12
- package/dist/registry-generator-H4YNODDH.js.map +0 -1
- package/dist/registry-generator-MK63POJO.cjs.map +0 -1
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { WritableStream } from 'stream/web';
|
|
2
|
+
|
|
3
|
+
// src/tools/stream.ts
|
|
4
|
+
var ToolStream = class extends WritableStream {
|
|
5
|
+
prefix;
|
|
6
|
+
callId;
|
|
7
|
+
name;
|
|
8
|
+
runId;
|
|
9
|
+
writeFn;
|
|
10
|
+
constructor({
|
|
11
|
+
prefix,
|
|
12
|
+
callId,
|
|
13
|
+
name,
|
|
14
|
+
runId
|
|
15
|
+
}, writeFn) {
|
|
16
|
+
super({
|
|
17
|
+
async write(chunk) {
|
|
18
|
+
await getInstance()._write(chunk);
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
const self = this;
|
|
22
|
+
function getInstance() {
|
|
23
|
+
return self;
|
|
24
|
+
}
|
|
25
|
+
this.prefix = prefix;
|
|
26
|
+
this.callId = callId;
|
|
27
|
+
this.name = name;
|
|
28
|
+
this.runId = runId;
|
|
29
|
+
this.writeFn = writeFn;
|
|
30
|
+
}
|
|
31
|
+
async _write(data) {
|
|
32
|
+
if (this.writeFn) {
|
|
33
|
+
await this.writeFn({
|
|
34
|
+
type: `${this.prefix}-output`,
|
|
35
|
+
runId: this.runId,
|
|
36
|
+
from: "USER",
|
|
37
|
+
payload: {
|
|
38
|
+
output: data,
|
|
39
|
+
...this.prefix === "workflow-step" ? {
|
|
40
|
+
runId: this.runId,
|
|
41
|
+
stepName: this.name
|
|
42
|
+
} : {
|
|
43
|
+
[`${this.prefix}CallId`]: this.callId,
|
|
44
|
+
[`${this.prefix}Name`]: this.name
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
async write(data) {
|
|
51
|
+
await this._write(data);
|
|
52
|
+
}
|
|
53
|
+
async custom(data) {
|
|
54
|
+
if (this.writeFn) {
|
|
55
|
+
await this.writeFn(data);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
export { ToolStream };
|
|
61
|
+
//# sourceMappingURL=chunk-DD2VNRQM.js.map
|
|
62
|
+
//# sourceMappingURL=chunk-DD2VNRQM.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/tools/stream.ts"],"names":[],"mappings":";;;AAIO,IAAM,UAAA,GAAN,cAAyB,cAAA,CAAwB;AAAA,EAC9C,MAAA;AAAA,EACA,MAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA,OAAA;AAAA,EAER,WAAA,CACE;AAAA,IACE,MAAA;AAAA,IACA,MAAA;AAAA,IACA,IAAA;AAAA,IACA;AAAA,KAOF,OAAA,EACA;AACA,IAAA,KAAA,CAAM;AAAA,MACJ,MAAM,MAAM,KAAA,EAAY;AACtB,QAAA,MAAM,WAAA,EAAY,CAAE,MAAA,CAAO,KAAK,CAAA;AAAA,MAClC;AAAA,KACD,CAAA;AAED,IAAA,MAAM,IAAA,GAAO,IAAA;AACb,IAAA,SAAS,WAAA,GAAc;AACrB,MAAA,OAAO,IAAA;AAAA,IACT;AAEA,IAAA,IAAA,CAAK,MAAA,GAAS,MAAA;AACd,IAAA,IAAA,CAAK,MAAA,GAAS,MAAA;AACd,IAAA,IAAA,CAAK,IAAA,GAAO,IAAA;AACZ,IAAA,IAAA,CAAK,KAAA,GAAQ,KAAA;AACb,IAAA,IAAA,CAAK,OAAA,GAAU,OAAA;AAAA,EACjB;AAAA,EAEA,MAAc,OAAO,IAAA,EAAW;AAC9B,IAAA,IAAI,KAAK,OAAA,EAAS;AAChB,MAAA,MAAM,KAAK,OAAA,CAAQ;AAAA,QACjB,IAAA,EAAM,CAAA,EAAG,IAAA,CAAK,MAAM,CAAA,OAAA,CAAA;AAAA,QACpB,OAAO,IAAA,CAAK,KAAA;AAAA,QACZ,IAAA,EAAM,MAAA;AAAA,QACN,OAAA,EAAS;AAAA,UACP,MAAA,EAAQ,IAAA;AAAA,UACR,GAAI,IAAA,CAAK,MAAA,KAAW,eAAA,GAChB;AAAA,YACE,OAAO,IAAA,CAAK,KAAA;AAAA,YACZ,UAAU,IAAA,CAAK;AAAA,WACjB,GACA;AAAA,YACE,CAAC,CAAA,EAAG,IAAA,CAAK,MAAM,CAAA,MAAA,CAAQ,GAAG,IAAA,CAAK,MAAA;AAAA,YAC/B,CAAC,CAAA,EAAG,IAAA,CAAK,MAAM,CAAA,IAAA,CAAM,GAAG,IAAA,CAAK;AAAA;AAC/B;AACN,OACD,CAAA;AAAA,IACH;AAAA,EACF;AAAA,EAEA,MAAM,MAAM,IAAA,EAAW;AACrB,IAAA,MAAM,IAAA,CAAK,OAAO,IAAI,CAAA;AAAA,EACxB;AAAA,EAEA,MAAM,OAAmC,IAAA,EAAgE;AACvG,IAAA,IAAI,KAAK,OAAA,EAAS;AAChB,MAAA,MAAM,IAAA,CAAK,QAAQ,IAAI,CAAA;AAAA,IACzB;AAAA,EACF;AACF","file":"chunk-DD2VNRQM.js","sourcesContent":["import { WritableStream } from 'node:stream/web';\nimport type { DataChunkType } from '../stream/types';\nimport type { OutputWriter } from '../workflows';\n\nexport class ToolStream extends WritableStream<unknown> {\n private prefix: string;\n private callId: string;\n private name: string;\n private runId: string;\n private writeFn?: OutputWriter;\n\n constructor(\n {\n prefix,\n callId,\n name,\n runId,\n }: {\n prefix: string;\n callId: string;\n name: string;\n runId: string;\n },\n writeFn?: OutputWriter,\n ) {\n super({\n async write(chunk: any) {\n await getInstance()._write(chunk);\n },\n });\n\n const self = this;\n function getInstance() {\n return self;\n }\n\n this.prefix = prefix;\n this.callId = callId;\n this.name = name;\n this.runId = runId;\n this.writeFn = writeFn;\n }\n\n private async _write(data: any) {\n if (this.writeFn) {\n await this.writeFn({\n type: `${this.prefix}-output`,\n runId: this.runId,\n from: 'USER',\n payload: {\n output: data,\n ...(this.prefix === 'workflow-step'\n ? {\n runId: this.runId,\n stepName: this.name,\n }\n : {\n [`${this.prefix}CallId`]: this.callId,\n [`${this.prefix}Name`]: this.name,\n }),\n },\n });\n }\n }\n\n async write(data: any) {\n await this._write(data);\n }\n\n async custom<T extends { type: string }>(data: T extends { type: `data-${string}` } ? DataChunkType : T) {\n if (this.writeFn) {\n await this.writeFn(data);\n }\n }\n}\n"]}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkAF74UXR5_cjs = require('./chunk-AF74UXR5.cjs');
|
|
4
4
|
|
|
5
5
|
// src/base.ts
|
|
6
6
|
var MastraBase = class {
|
|
7
|
-
component =
|
|
7
|
+
component = chunkAF74UXR5_cjs.RegisteredLogger.LLM;
|
|
8
8
|
logger;
|
|
9
9
|
name;
|
|
10
10
|
constructor({ component, name }) {
|
|
11
|
-
this.component = component ||
|
|
11
|
+
this.component = component || chunkAF74UXR5_cjs.RegisteredLogger.LLM;
|
|
12
12
|
this.name = name;
|
|
13
|
-
this.logger = new
|
|
13
|
+
this.logger = new chunkAF74UXR5_cjs.ConsoleLogger({ name: `${this.component} - ${this.name}` });
|
|
14
14
|
}
|
|
15
15
|
/**
|
|
16
16
|
* Set the logger for the agent
|
|
@@ -18,12 +18,12 @@ var MastraBase = class {
|
|
|
18
18
|
*/
|
|
19
19
|
__setLogger(logger) {
|
|
20
20
|
this.logger = logger;
|
|
21
|
-
if (this.component !==
|
|
21
|
+
if (this.component !== chunkAF74UXR5_cjs.RegisteredLogger.LLM) {
|
|
22
22
|
this.logger.debug(`Logger updated [component=${this.component}] [name=${this.name}]`);
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
};
|
|
26
26
|
|
|
27
27
|
exports.MastraBase = MastraBase;
|
|
28
|
-
//# sourceMappingURL=chunk-
|
|
29
|
-
//# sourceMappingURL=chunk-
|
|
28
|
+
//# sourceMappingURL=chunk-DGV2FWB4.cjs.map
|
|
29
|
+
//# sourceMappingURL=chunk-DGV2FWB4.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/base.ts"],"names":["RegisteredLogger","ConsoleLogger"],"mappings":";;;;;AAIO,IAAM,aAAN,MAAiB;AAAA,EACtB,YAA8BA,kCAAA,CAAiB,GAAA;AAAA,EACrC,MAAA;AAAA,EACV,IAAA;AAAA,EAEA,WAAA,CAAY,EAAE,SAAA,EAAW,IAAA,EAAK,EAAoD;AAChF,IAAA,IAAA,CAAK,SAAA,GAAY,aAAaA,kCAAA,CAAiB,GAAA;AAC/C,IAAA,IAAA,CAAK,IAAA,GAAO,IAAA;AACZ,IAAA,IAAA,CAAK,MAAA,GAAS,IAAIC,+BAAA,CAAc,EAAE,IAAA,EAAM,CAAA,EAAG,IAAA,CAAK,SAAS,CAAA,GAAA,EAAM,IAAA,CAAK,IAAI,CAAA,CAAA,EAAI,CAAA;AAAA,EAC9E;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,YAAY,MAAA,EAAuB;AACjC,IAAA,IAAA,CAAK,MAAA,GAAS,MAAA;AAEd,IAAA,IAAI,IAAA,CAAK,SAAA,KAAcD,kCAAA,CAAiB,GAAA,EAAK;AAC3C,MAAA,IAAA,CAAK,MAAA,CAAO,MAAM,CAAA,0BAAA,EAA6B,IAAA,CAAK,SAAS,CAAA,QAAA,EAAW,IAAA,CAAK,IAAI,CAAA,CAAA,CAAG,CAAA;AAAA,IACtF;AAAA,EACF;AACF","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/base.ts"],"names":["RegisteredLogger","ConsoleLogger"],"mappings":";;;;;AAIO,IAAM,aAAN,MAAiB;AAAA,EACtB,YAA8BA,kCAAA,CAAiB,GAAA;AAAA,EACrC,MAAA;AAAA,EACV,IAAA;AAAA,EAEA,WAAA,CAAY,EAAE,SAAA,EAAW,IAAA,EAAK,EAAoD;AAChF,IAAA,IAAA,CAAK,SAAA,GAAY,aAAaA,kCAAA,CAAiB,GAAA;AAC/C,IAAA,IAAA,CAAK,IAAA,GAAO,IAAA;AACZ,IAAA,IAAA,CAAK,MAAA,GAAS,IAAIC,+BAAA,CAAc,EAAE,IAAA,EAAM,CAAA,EAAG,IAAA,CAAK,SAAS,CAAA,GAAA,EAAM,IAAA,CAAK,IAAI,CAAA,CAAA,EAAI,CAAA;AAAA,EAC9E;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,YAAY,MAAA,EAAuB;AACjC,IAAA,IAAA,CAAK,MAAA,GAAS,MAAA;AAEd,IAAA,IAAI,IAAA,CAAK,SAAA,KAAcD,kCAAA,CAAiB,GAAA,EAAK;AAC3C,MAAA,IAAA,CAAK,MAAA,CAAO,MAAM,CAAA,0BAAA,EAA6B,IAAA,CAAK,SAAS,CAAA,QAAA,EAAW,IAAA,CAAK,IAAI,CAAA,CAAA,CAAG,CAAA;AAAA,IACtF;AAAA,EACF;AACF","file":"chunk-DGV2FWB4.cjs","sourcesContent":["import type { IMastraLogger } from './logger';\nimport { RegisteredLogger } from './logger/constants';\nimport { ConsoleLogger } from './logger/default-logger';\n\nexport class MastraBase {\n component: RegisteredLogger = RegisteredLogger.LLM;\n protected logger: IMastraLogger;\n name?: string;\n\n constructor({ component, name }: { component?: RegisteredLogger; name?: string }) {\n this.component = component || RegisteredLogger.LLM;\n this.name = name;\n this.logger = new ConsoleLogger({ name: `${this.component} - ${this.name}` });\n }\n\n /**\n * Set the logger for the agent\n * @param logger\n */\n __setLogger(logger: IMastraLogger) {\n this.logger = logger;\n\n if (this.component !== RegisteredLogger.LLM) {\n this.logger.debug(`Logger updated [component=${this.component}] [name=${this.name}]`);\n }\n }\n}\n\nexport * from './types';\n"]}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkDGV2FWB4_cjs = require('./chunk-DGV2FWB4.cjs');
|
|
4
4
|
var promises = require('fs/promises');
|
|
5
5
|
var dotenv = require('dotenv');
|
|
6
6
|
|
|
7
|
-
var MastraBundler = class extends
|
|
7
|
+
var MastraBundler = class extends chunkDGV2FWB4_cjs.MastraBase {
|
|
8
8
|
constructor({ name, component = "BUNDLER" }) {
|
|
9
9
|
super({ component, name });
|
|
10
10
|
}
|
|
@@ -22,5 +22,5 @@ var MastraBundler = class extends chunkKEXGB7FK_cjs.MastraBase {
|
|
|
22
22
|
};
|
|
23
23
|
|
|
24
24
|
exports.MastraBundler = MastraBundler;
|
|
25
|
-
//# sourceMappingURL=chunk-
|
|
26
|
-
//# sourceMappingURL=chunk-
|
|
25
|
+
//# sourceMappingURL=chunk-EOPEDKLG.cjs.map
|
|
26
|
+
//# sourceMappingURL=chunk-EOPEDKLG.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/bundler/index.ts"],"names":["MastraBase","readFile","parse"],"mappings":";;;;;;AAmBO,IAAe,aAAA,GAAf,cAAqCA,4BAAA,CAA+B;AAAA,EACzE,WAAA,CAAY,EAAE,IAAA,EAAM,SAAA,GAAY,WAAU,EAAyD;AACjG,IAAA,KAAA,CAAM,EAAE,SAAA,EAAW,IAAA,EAAM,CAAA;AAAA,EAC3B;AAAA,EAEA,MAAM,WAAA,GAA4C;AAChD,IAAA,MAAM,OAAA,uBAAc,GAAA,EAAI;AAExB,IAAA,KAAA,MAAW,IAAA,IAAQ,MAAM,IAAA,CAAK,WAAA,EAAY,EAAG;AAC3C,MAAA,MAAM,OAAA,GAAU,MAAMC,iBAAA,CAAS,IAAA,EAAM,OAAO,CAAA;AAC5C,MAAA,MAAM,MAAA,GAASC,aAAM,OAAO,CAAA;AAE5B,MAAA,MAAA,CAAO,OAAA,CAAQ,MAAM,CAAA,CAAE,OAAA,CAAQ,CAAC,CAAC,GAAA,EAAK,KAAK,CAAA,KAAM;AAC/C,QAAA,OAAA,CAAQ,GAAA,CAAI,KAAK,KAAK,CAAA;AAAA,MACxB,CAAC,CAAA;AAAA,IACH;AAEA,IAAA,OAAO,OAAA;AAAA,EACT;AAYF","file":"chunk-EOPEDKLG.cjs","sourcesContent":["import { readFile } from 'node:fs/promises';\nimport { parse } from 'dotenv';\n\nimport { MastraBase } from '../base';\n\nexport interface IBundler {\n loadEnvVars(): Promise<Map<string, string>>;\n getEnvFiles(): Promise<string[]>;\n getAllToolPaths(mastraDir: string, toolsPaths: (string | string[])[]): (string | string[])[];\n bundle(\n entryFile: string,\n outputDirectory: string,\n options: { toolsPaths: (string | string[])[]; projectRoot: string },\n ): Promise<void>;\n prepare(outputDirectory: string): Promise<void>;\n writePackageJson(outputDirectory: string, dependencies: Map<string, string>): Promise<void>;\n lint(entryFile: string, outputDirectory: string, toolsPaths: (string | string[])[]): Promise<void>;\n}\n\nexport abstract class MastraBundler extends MastraBase implements IBundler {\n constructor({ name, component = 'BUNDLER' }: { name: string; component?: 'BUNDLER' | 'DEPLOYER' }) {\n super({ component, name });\n }\n\n async loadEnvVars(): Promise<Map<string, string>> {\n const envVars = new Map();\n\n for (const file of await this.getEnvFiles()) {\n const content = await readFile(file, 'utf-8');\n const config = parse(content);\n\n Object.entries(config).forEach(([key, value]) => {\n envVars.set(key, value);\n });\n }\n\n return envVars;\n }\n\n abstract getAllToolPaths(mastraDir: string, toolsPaths: (string | string[])[]): (string | string[])[];\n abstract prepare(outputDirectory: string): Promise<void>;\n abstract writePackageJson(outputDirectory: string, dependencies: Map<string, string>): Promise<void>;\n abstract getEnvFiles(): Promise<string[]>;\n abstract bundle(\n entryFile: string,\n outputDirectory: string,\n { toolsPaths, projectRoot }: { toolsPaths: (string | string[])[]; projectRoot: string },\n ): Promise<void>;\n abstract lint(entryFile: string, outputDirectory: string, toolsPaths: (string | string[])[]): Promise<void>;\n}\n"]}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { MastraError } from './chunk-JJ5O45LH.js';
|
|
2
|
-
import { MastraBase } from './chunk-
|
|
2
|
+
import { MastraBase } from './chunk-LSHPJWM5.js';
|
|
3
|
+
import { PassThrough } from 'stream';
|
|
4
|
+
import { experimental_generateSpeech, experimental_transcribe } from 'ai-v5';
|
|
3
5
|
|
|
4
6
|
// src/voice/voice.ts
|
|
5
7
|
var MastraVoice = class extends MastraBase {
|
|
@@ -94,16 +96,112 @@ var MastraVoice = class extends MastraBase {
|
|
|
94
96
|
return Promise.resolve({ enabled: false });
|
|
95
97
|
}
|
|
96
98
|
};
|
|
99
|
+
var AISDKSpeech = class extends MastraVoice {
|
|
100
|
+
model;
|
|
101
|
+
defaultVoice;
|
|
102
|
+
constructor(model, options) {
|
|
103
|
+
super({ name: "ai-sdk-speech" });
|
|
104
|
+
this.model = model;
|
|
105
|
+
this.defaultVoice = options?.voice;
|
|
106
|
+
}
|
|
107
|
+
async speak(input, options) {
|
|
108
|
+
const text = typeof input === "string" ? input : await this.streamToText(input);
|
|
109
|
+
const result = await experimental_generateSpeech({
|
|
110
|
+
model: this.model,
|
|
111
|
+
text,
|
|
112
|
+
voice: options?.speaker || this.defaultVoice,
|
|
113
|
+
// Map speaker to AI SDK's voice parameter
|
|
114
|
+
language: options?.language,
|
|
115
|
+
providerOptions: options?.providerOptions,
|
|
116
|
+
abortSignal: options?.abortSignal,
|
|
117
|
+
headers: options?.headers
|
|
118
|
+
});
|
|
119
|
+
const stream = new PassThrough();
|
|
120
|
+
stream.end(Buffer.from(result.audio.uint8Array));
|
|
121
|
+
return stream;
|
|
122
|
+
}
|
|
123
|
+
async listen() {
|
|
124
|
+
throw new Error("AI SDK speech models do not support transcription. Use AISDKTranscription instead.");
|
|
125
|
+
}
|
|
126
|
+
async getSpeakers() {
|
|
127
|
+
return [];
|
|
128
|
+
}
|
|
129
|
+
async getListener() {
|
|
130
|
+
return { enabled: false };
|
|
131
|
+
}
|
|
132
|
+
async streamToText(stream) {
|
|
133
|
+
const chunks = [];
|
|
134
|
+
for await (const chunk of stream) {
|
|
135
|
+
chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk));
|
|
136
|
+
}
|
|
137
|
+
return Buffer.concat(chunks).toString("utf-8");
|
|
138
|
+
}
|
|
139
|
+
};
|
|
140
|
+
var AISDKTranscription = class extends MastraVoice {
|
|
141
|
+
model;
|
|
142
|
+
constructor(model) {
|
|
143
|
+
super({ name: "ai-sdk-transcription" });
|
|
144
|
+
this.model = model;
|
|
145
|
+
}
|
|
146
|
+
async speak() {
|
|
147
|
+
throw new Error("AI SDK transcription models do not support text-to-speech. Use AISDKSpeech instead.");
|
|
148
|
+
}
|
|
149
|
+
async getSpeakers() {
|
|
150
|
+
return [];
|
|
151
|
+
}
|
|
152
|
+
async getListener() {
|
|
153
|
+
return { enabled: true };
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Transcribe audio to text
|
|
157
|
+
* For enhanced metadata (segments, language, duration), use AI SDK's transcribe() directly
|
|
158
|
+
*/
|
|
159
|
+
async listen(audioStream, options) {
|
|
160
|
+
const audioBuffer = await this.convertToBuffer(audioStream);
|
|
161
|
+
const result = await experimental_transcribe({
|
|
162
|
+
model: this.model,
|
|
163
|
+
audio: audioBuffer,
|
|
164
|
+
providerOptions: options?.providerOptions,
|
|
165
|
+
abortSignal: options?.abortSignal,
|
|
166
|
+
headers: options?.headers
|
|
167
|
+
});
|
|
168
|
+
return result.text;
|
|
169
|
+
}
|
|
170
|
+
async convertToBuffer(audio) {
|
|
171
|
+
if (Buffer.isBuffer(audio)) return audio;
|
|
172
|
+
if (audio instanceof Uint8Array) return Buffer.from(audio);
|
|
173
|
+
if (typeof audio === "string") return Buffer.from(audio, "base64");
|
|
174
|
+
const chunks = [];
|
|
175
|
+
for await (const chunk of audio) {
|
|
176
|
+
chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk));
|
|
177
|
+
}
|
|
178
|
+
return Buffer.concat(chunks);
|
|
179
|
+
}
|
|
180
|
+
};
|
|
97
181
|
|
|
98
182
|
// src/voice/composite-voice.ts
|
|
183
|
+
function isTranscriptionModel(obj) {
|
|
184
|
+
return obj && typeof obj === "object" && obj.modelId && obj.specificationVersion === "v2";
|
|
185
|
+
}
|
|
186
|
+
function isSpeechModel(obj) {
|
|
187
|
+
return obj && typeof obj === "object" && obj.modelId && obj.specificationVersion === "v2";
|
|
188
|
+
}
|
|
99
189
|
var CompositeVoice = class extends MastraVoice {
|
|
100
190
|
speakProvider;
|
|
101
191
|
listenProvider;
|
|
102
192
|
realtimeProvider;
|
|
103
|
-
constructor({
|
|
193
|
+
constructor({
|
|
194
|
+
input,
|
|
195
|
+
output,
|
|
196
|
+
realtime
|
|
197
|
+
}) {
|
|
104
198
|
super();
|
|
105
|
-
|
|
106
|
-
|
|
199
|
+
if (input) {
|
|
200
|
+
this.listenProvider = isTranscriptionModel(input) ? new AISDKTranscription(input) : input;
|
|
201
|
+
}
|
|
202
|
+
if (output) {
|
|
203
|
+
this.speakProvider = isSpeechModel(output) ? new AISDKSpeech(output) : output;
|
|
204
|
+
}
|
|
107
205
|
this.realtimeProvider = realtime;
|
|
108
206
|
}
|
|
109
207
|
/**
|
|
@@ -321,6 +419,6 @@ var DefaultVoice = class extends MastraVoice {
|
|
|
321
419
|
}
|
|
322
420
|
};
|
|
323
421
|
|
|
324
|
-
export { CompositeVoice, DefaultVoice, MastraVoice };
|
|
325
|
-
//# sourceMappingURL=chunk-
|
|
326
|
-
//# sourceMappingURL=chunk-
|
|
422
|
+
export { AISDKSpeech, AISDKTranscription, CompositeVoice, DefaultVoice, MastraVoice };
|
|
423
|
+
//# sourceMappingURL=chunk-F2GAJSBI.js.map
|
|
424
|
+
//# sourceMappingURL=chunk-F2GAJSBI.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/voice/voice.ts","../src/voice/aisdk/speech.ts","../src/voice/aisdk/transcription.ts","../src/voice/composite-voice.ts","../src/voice/default-voice.ts"],"names":[],"mappings":";;;;;;AA8BO,IAAe,WAAA,GAAf,cAOG,UAAA,CAAW;AAAA,EACT,cAAA;AAAA,EACA,WAAA;AAAA,EACA,OAAA;AAAA,EACA,cAAA;AAAA,EAMV,WAAA,CAAY,EAAE,cAAA,EAAgB,WAAA,EAAa,SAAS,cAAA,EAAgB,IAAA,EAAK,GAA2B,EAAC,EAAG;AACtG,IAAA,KAAA,CAAM;AAAA,MACJ,SAAA,EAAW,OAAA;AAAA,MACX;AAAA,KACD,CAAA;AACD,IAAA,IAAA,CAAK,cAAA,GAAiB,cAAA;AACtB,IAAA,IAAA,CAAK,WAAA,GAAc,WAAA;AACnB,IAAA,IAAA,CAAK,OAAA,GAAU,OAAA;AACf,IAAA,IAAA,CAAK,cAAA,GAAiB,cAAA;AAAA,EACxB;AAAA,EAsCA,aAAa,QAAA,EAAyC;AACpD,IAAA,IAAA,CAAK,MAAA,CAAO,KAAK,qDAAqD,CAAA;AAAA,EACxE;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,QAAQ,QAAA,EAAmD;AAEzD,IAAA,IAAA,CAAK,MAAA,CAAO,KAAK,gDAAgD,CAAA;AACjE,IAAA,OAAO,QAAQ,OAAA,EAAQ;AAAA,EACzB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,KAAK,UAAA,EAA+D;AAElE,IAAA,IAAA,CAAK,MAAA,CAAO,KAAK,8CAA8C,CAAA;AAC/D,IAAA,OAAO,QAAQ,OAAA,EAAQ;AAAA,EACzB;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,QAAA,EAAmD;AACxD,IAAA,IAAA,CAAK,MAAA,CAAO,KAAK,+CAA+C,CAAA;AAChE,IAAA,OAAO,QAAQ,OAAA,EAAQ;AAAA,EACzB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,gBAAgB,aAAA,EAA8B;AAAA,EAE9C;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,SAAS,MAAA,EAAsB;AAAA,EAE/B;AAAA;AAAA;AAAA;AAAA,EAKA,KAAA,GAAc;AAEZ,IAAA,IAAA,CAAK,MAAA,CAAO,KAAK,8CAA8C,CAAA;AAAA,EACjE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,EAAA,CACE,QACA,SAAA,EACM;AAEN,IAAA,IAAA,CAAK,MAAA,CAAO,KAAK,2CAA2C,CAAA;AAAA,EAC9D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,GAAA,CACE,QACA,SAAA,EACM;AAEN,IAAA,IAAA,CAAK,MAAA,CAAO,KAAK,4CAA4C,CAAA;AAAA,EAC/D;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,WAAA,GAME;AAEA,IAAA,IAAA,CAAK,MAAA,CAAO,KAAK,oDAAoD,CAAA;AACrE,IAAA,OAAO,OAAA,CAAQ,OAAA,CAAQ,EAAE,CAAA;AAAA,EAC3B;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,WAAA,GAA6C;AAE3C,IAAA,IAAA,CAAK,MAAA,CAAO,KAAK,oDAAoD,CAAA;AACrE,IAAA,OAAO,OAAA,CAAQ,OAAA,CAAQ,EAAE,OAAA,EAAS,OAAO,CAAA;AAAA,EAC3C;AACF;ACpMO,IAAM,WAAA,GAAN,cAA0B,WAAA,CAAY;AAAA,EACnC,KAAA;AAAA,EACA,YAAA;AAAA,EAER,WAAA,CAAY,OAAoB,OAAA,EAA8B;AAC5D,IAAA,KAAA,CAAM,EAAE,IAAA,EAAM,eAAA,EAAiB,CAAA;AAC/B,IAAA,IAAA,CAAK,KAAA,GAAQ,KAAA;AACb,IAAA,IAAA,CAAK,eAAe,OAAA,EAAS,KAAA;AAAA,EAC/B;AAAA,EAEA,MAAM,KAAA,CACJ,KAAA,EACA,OAAA,EAOgC;AAEhC,IAAA,MAAM,IAAA,GAAO,OAAO,KAAA,KAAU,QAAA,GAAW,QAAQ,MAAM,IAAA,CAAK,aAAa,KAAK,CAAA;AAE9E,IAAA,MAAM,MAAA,GAAS,MAAM,2BAAA,CAA4B;AAAA,MAC/C,OAAO,IAAA,CAAK,KAAA;AAAA,MACZ,IAAA;AAAA,MACA,KAAA,EAAO,OAAA,EAAS,OAAA,IAAW,IAAA,CAAK,YAAA;AAAA;AAAA,MAChC,UAAU,OAAA,EAAS,QAAA;AAAA,MACnB,iBAAiB,OAAA,EAAS,eAAA;AAAA,MAC1B,aAAa,OAAA,EAAS,WAAA;AAAA,MACtB,SAAS,OAAA,EAAS;AAAA,KACnB,CAAA;AAGD,IAAA,MAAM,MAAA,GAAS,IAAI,WAAA,EAAY;AAC/B,IAAA,MAAA,CAAO,IAAI,MAAA,CAAO,IAAA,CAAK,MAAA,CAAO,KAAA,CAAM,UAAU,CAAC,CAAA;AAC/C,IAAA,OAAO,MAAA;AAAA,EACT;AAAA,EAEA,MAAM,MAAA,GAA0B;AAC9B,IAAA,MAAM,IAAI,MAAM,oFAAoF,CAAA;AAAA,EACtG;AAAA,EAEA,MAAM,WAAA,GAAc;AAElB,IAAA,OAAO,EAAC;AAAA,EACV;AAAA,EAEA,MAAM,WAAA,GAAc;AAClB,IAAA,OAAO,EAAE,SAAS,KAAA,EAAM;AAAA,EAC1B;AAAA,EAEA,MAAc,aAAa,MAAA,EAAgD;AACzE,IAAA,MAAM,SAAmB,EAAC;AAC1B,IAAA,WAAA,MAAiB,SAAS,MAAA,EAAQ;AAChC,MAAA,MAAA,CAAO,IAAA,CAAK,OAAO,QAAA,CAAS,KAAK,IAAI,KAAA,GAAQ,MAAA,CAAO,IAAA,CAAK,KAAK,CAAC,CAAA;AAAA,IACjE;AACA,IAAA,OAAO,MAAA,CAAO,MAAA,CAAO,MAAM,CAAA,CAAE,SAAS,OAAO,CAAA;AAAA,EAC/C;AACF;AC5DO,IAAM,kBAAA,GAAN,cAAiC,WAAA,CAAY;AAAA,EAC1C,KAAA;AAAA,EAER,YAAY,KAAA,EAA2B;AACrC,IAAA,KAAA,CAAM,EAAE,IAAA,EAAM,sBAAA,EAAwB,CAAA;AACtC,IAAA,IAAA,CAAK,KAAA,GAAQ,KAAA;AAAA,EACf;AAAA,EAEA,MAAM,KAAA,GAAwC;AAC5C,IAAA,MAAM,IAAI,MAAM,qFAAqF,CAAA;AAAA,EACvG;AAAA,EAEA,MAAM,WAAA,GAAc;AAClB,IAAA,OAAO,EAAC;AAAA,EACV;AAAA,EAEA,MAAM,WAAA,GAAc;AAClB,IAAA,OAAO,EAAE,SAAS,IAAA,EAAK;AAAA,EACzB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,MAAA,CACJ,WAAA,EACA,OAAA,EAKiB;AACjB,IAAA,MAAM,WAAA,GAAc,MAAM,IAAA,CAAK,eAAA,CAAgB,WAAW,CAAA;AAE1D,IAAA,MAAM,MAAA,GAAS,MAAM,uBAAA,CAAwB;AAAA,MAC3C,OAAO,IAAA,CAAK,KAAA;AAAA,MACZ,KAAA,EAAO,WAAA;AAAA,MACP,iBAAiB,OAAA,EAAS,eAAA;AAAA,MAC1B,aAAa,OAAA,EAAS,WAAA;AAAA,MACtB,SAAS,OAAA,EAAS;AAAA,KACnB,CAAA;AAED,IAAA,OAAO,MAAA,CAAO,IAAA;AAAA,EAChB;AAAA,EAEA,MAAc,gBAAgB,KAAA,EAA8E;AAC1G,IAAA,IAAI,MAAA,CAAO,QAAA,CAAS,KAAK,CAAA,EAAG,OAAO,KAAA;AACnC,IAAA,IAAI,KAAA,YAAiB,UAAA,EAAY,OAAO,MAAA,CAAO,KAAK,KAAK,CAAA;AACzD,IAAA,IAAI,OAAO,KAAA,KAAU,QAAA,SAAiB,MAAA,CAAO,IAAA,CAAK,OAAO,QAAQ,CAAA;AAEjE,IAAA,MAAM,SAAmB,EAAC;AAC1B,IAAA,WAAA,MAAiB,SAAS,KAAA,EAAO;AAC/B,MAAA,MAAA,CAAO,IAAA,CAAK,OAAO,QAAA,CAAS,KAAK,IAAI,KAAA,GAAQ,MAAA,CAAO,IAAA,CAAK,KAAK,CAAC,CAAA;AAAA,IACjE;AACA,IAAA,OAAO,MAAA,CAAO,OAAO,MAAM,CAAA;AAAA,EAC7B;AACF;;;ACjDA,SAAS,qBAAqB,GAAA,EAAqC;AACjE,EAAA,OAAO,OAAO,OAAO,GAAA,KAAQ,YAAY,GAAA,CAAI,OAAA,IAAW,IAAI,oBAAA,KAAyB,IAAA;AACvF;AAEA,SAAS,cAAc,GAAA,EAA8B;AACnD,EAAA,OAAO,OAAO,OAAO,GAAA,KAAQ,YAAY,GAAA,CAAI,OAAA,IAAW,IAAI,oBAAA,KAAyB,IAAA;AACvF;AAEO,IAAM,cAAA,GAAN,cAA6B,WAAA,CAAkE;AAAA,EAC1F,aAAA;AAAA,EACA,cAAA;AAAA,EACA,gBAAA;AAAA,EAEV,WAAA,CAAY;AAAA,IACV,KAAA;AAAA,IACA,MAAA;AAAA,IACA;AAAA,GACF,EAIG;AACD,IAAA,KAAA,EAAM;AAGN,IAAA,IAAI,KAAA,EAAO;AACT,MAAA,IAAA,CAAK,iBAAiB,oBAAA,CAAqB,KAAK,IAAI,IAAI,kBAAA,CAAmB,KAAK,CAAA,GAAI,KAAA;AAAA,IACtF;AAEA,IAAA,IAAI,MAAA,EAAQ;AACV,MAAA,IAAA,CAAK,gBAAgB,aAAA,CAAc,MAAM,IAAI,IAAI,WAAA,CAAY,MAAM,CAAA,GAAI,MAAA;AAAA,IACzE;AAEA,IAAA,IAAA,CAAK,gBAAA,GAAmB,QAAA;AAAA,EAC1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,KAAA,CACJ,KAAA,EACA,OAAA,EACuC;AACvC,IAAA,IAAI,KAAK,gBAAA,EAAkB;AACzB,MAAA,OAAO,IAAA,CAAK,gBAAA,CAAiB,KAAA,CAAM,KAAA,EAAO,OAAO,CAAA;AAAA,IACnD,CAAA,MAAA,IAAW,KAAK,aAAA,EAAe;AAC7B,MAAA,OAAO,IAAA,CAAK,aAAA,CAAc,KAAA,CAAM,KAAA,EAAO,OAAO,CAAA;AAAA,IAChD;AAEA,IAAA,MAAM,IAAI,WAAA,CAAY;AAAA,MACpB,EAAA,EAAI,mCAAA;AAAA,MACJ,IAAA,EAAM,mDAAA;AAAA,MACN,MAAA,EAAA,cAAA;AAAA,MACA,QAAA,EAAA,MAAA;AAAA,KACD,CAAA;AAAA,EACH;AAAA,EAEA,MAAM,MAAA,CAAO,WAAA,EAAoC,OAAA,EAAe;AAC9D,IAAA,IAAI,KAAK,gBAAA,EAAkB;AACzB,MAAA,OAAO,MAAM,IAAA,CAAK,gBAAA,CAAiB,MAAA,CAAO,aAAa,OAAO,CAAA;AAAA,IAChE,CAAA,MAAA,IAAW,KAAK,cAAA,EAAgB;AAC9B,MAAA,OAAO,MAAM,IAAA,CAAK,cAAA,CAAe,MAAA,CAAO,aAAa,OAAO,CAAA;AAAA,IAC9D;AAEA,IAAA,MAAM,IAAI,WAAA,CAAY;AAAA,MACpB,EAAA,EAAI,oCAAA;AAAA,MACJ,IAAA,EAAM,oDAAA;AAAA,MACN,MAAA,EAAA,cAAA;AAAA,MACA,QAAA,EAAA,MAAA;AAAA,KACD,CAAA;AAAA,EACH;AAAA,EAEA,MAAM,WAAA,GAAc;AAClB,IAAA,IAAI,KAAK,gBAAA,EAAkB;AACzB,MAAA,OAAO,IAAA,CAAK,iBAAiB,WAAA,EAAY;AAAA,IAC3C,CAAA,MAAA,IAAW,KAAK,aAAA,EAAe;AAC7B,MAAA,OAAO,IAAA,CAAK,cAAc,WAAA,EAAY;AAAA,IACxC;AAEA,IAAA,MAAM,IAAI,WAAA,CAAY;AAAA,MACpB,EAAA,EAAI,sCAAA;AAAA,MACJ,IAAA,EAAM,mDAAA;AAAA,MACN,MAAA,EAAA,cAAA;AAAA,MACA,QAAA,EAAA,MAAA;AAAA,KACD,CAAA;AAAA,EACH;AAAA,EAEA,MAAM,WAAA,GAAc;AAClB,IAAA,IAAI,KAAK,gBAAA,EAAkB;AACzB,MAAA,OAAO,IAAA,CAAK,iBAAiB,WAAA,EAAY;AAAA,IAC3C,CAAA,MAAA,IAAW,KAAK,cAAA,EAAgB;AAC9B,MAAA,OAAO,IAAA,CAAK,eAAe,WAAA,EAAY;AAAA,IACzC;AAEA,IAAA,MAAM,IAAI,WAAA,CAAY;AAAA,MACpB,EAAA,EAAI,sCAAA;AAAA,MACJ,IAAA,EAAM,sDAAA;AAAA,MACN,MAAA,EAAA,cAAA;AAAA,MACA,QAAA,EAAA,MAAA;AAAA,KACD,CAAA;AAAA,EACH;AAAA,EAEA,aAAa,OAAA,EAAwC;AACnD,IAAA,IAAI,CAAC,KAAK,gBAAA,EAAkB;AAC1B,MAAA;AAAA,IACF;AACA,IAAA,IAAA,CAAK,gBAAA,CAAiB,aAAa,OAAO,CAAA;AAAA,EAC5C;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,QAAQ,OAAA,EAAkD;AACxD,IAAA,IAAI,CAAC,KAAK,gBAAA,EAAkB;AAC1B,MAAA,MAAM,IAAI,WAAA,CAAY;AAAA,QACpB,EAAA,EAAI,8CAAA;AAAA,QACJ,IAAA,EAAM,iCAAA;AAAA,QACN,MAAA,EAAA,cAAA;AAAA,QACA,QAAA,EAAA,MAAA;AAAA,OACD,CAAA;AAAA,IACH;AACA,IAAA,OAAO,IAAA,CAAK,gBAAA,CAAiB,OAAA,CAAQ,OAAO,CAAA;AAAA,EAC9C;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,KAAK,SAAA,EAA8D;AACjE,IAAA,IAAI,CAAC,KAAK,gBAAA,EAAkB;AAC1B,MAAA,MAAM,IAAI,WAAA,CAAY;AAAA,QACpB,EAAA,EAAI,2CAAA;AAAA,QACJ,IAAA,EAAM,iCAAA;AAAA,QACN,MAAA,EAAA,cAAA;AAAA,QACA,QAAA,EAAA,MAAA;AAAA,OACD,CAAA;AAAA,IACH;AACA,IAAA,OAAO,IAAA,CAAK,gBAAA,CAAiB,IAAA,CAAK,SAAS,CAAA;AAAA,EAC7C;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,OAAA,EAAkD;AACvD,IAAA,IAAI,CAAC,KAAK,gBAAA,EAAkB;AAC1B,MAAA,MAAM,IAAI,WAAA,CAAY;AAAA,QACpB,EAAA,EAAI,6CAAA;AAAA,QACJ,IAAA,EAAM,iCAAA;AAAA,QACN,MAAA,EAAA,cAAA;AAAA,QACA,QAAA,EAAA,MAAA;AAAA,OACD,CAAA;AAAA,IACH;AACA,IAAA,OAAO,IAAA,CAAK,gBAAA,CAAiB,MAAA,CAAO,OAAO,CAAA;AAAA,EAC7C;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,gBAAgB,YAAA,EAA4B;AAC1C,IAAA,IAAI,CAAC,KAAK,gBAAA,EAAkB;AAC1B,MAAA;AAAA,IACF;AACA,IAAA,IAAA,CAAK,gBAAA,CAAiB,gBAAgB,YAAY,CAAA;AAAA,EACpD;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,SAAS,KAAA,EAAyB;AAChC,IAAA,IAAI,CAAC,KAAK,gBAAA,EAAkB;AAC1B,MAAA;AAAA,IACF;AACA,IAAA,IAAA,CAAK,gBAAA,CAAiB,SAAS,KAAK,CAAA;AAAA,EACtC;AAAA;AAAA;AAAA;AAAA,EAKA,KAAA,GAAc;AACZ,IAAA,IAAI,CAAC,KAAK,gBAAA,EAAkB;AAC1B,MAAA,MAAM,IAAI,WAAA,CAAY;AAAA,QACpB,EAAA,EAAI,4CAAA;AAAA,QACJ,IAAA,EAAM,iCAAA;AAAA,QACN,MAAA,EAAA,cAAA;AAAA,QACA,QAAA,EAAA,MAAA;AAAA,OACD,CAAA;AAAA,IACH;AACA,IAAA,IAAA,CAAK,iBAAiB,KAAA,EAAM;AAAA,EAC9B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,EAAA,CACE,OACA,QAAA,EACM;AACN,IAAA,IAAI,CAAC,KAAK,gBAAA,EAAkB;AAC1B,MAAA,MAAM,IAAI,WAAA,CAAY;AAAA,QACpB,EAAA,EAAI,yCAAA;AAAA,QACJ,IAAA,EAAM,iCAAA;AAAA,QACN,MAAA,EAAA,cAAA;AAAA,QACA,QAAA,EAAA,MAAA;AAAA,OACD,CAAA;AAAA,IACH;AACA,IAAA,IAAA,CAAK,gBAAA,CAAiB,EAAA,CAAG,KAAA,EAAO,QAAQ,CAAA;AAAA,EAC1C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,GAAA,CACE,OACA,QAAA,EACM;AACN,IAAA,IAAI,CAAC,KAAK,gBAAA,EAAkB;AAC1B,MAAA,MAAM,IAAI,WAAA,CAAY;AAAA,QACpB,EAAA,EAAI,0CAAA;AAAA,QACJ,IAAA,EAAM,iCAAA;AAAA,QACN,MAAA,EAAA,cAAA;AAAA,QACA,QAAA,EAAA,MAAA;AAAA,OACD,CAAA;AAAA,IACH;AACA,IAAA,IAAA,CAAK,gBAAA,CAAiB,GAAA,CAAI,KAAA,EAAO,QAAQ,CAAA;AAAA,EAC3C;AACF;;;ACnPO,IAAM,YAAA,GAAN,cAA2B,WAAA,CAAY;AAAA,EAC5C,WAAA,GAAc;AACZ,IAAA,KAAA,EAAM;AAAA,EACR;AAAA,EAEA,MAAM,MAAM,MAAA,EAAwE;AAClF,IAAA,MAAM,IAAI,WAAA,CAAY;AAAA,MACpB,EAAA,EAAI,iCAAA;AAAA,MACJ,IAAA,EAAM,8BAAA;AAAA,MACN,MAAA,EAAA,cAAA;AAAA,MACA,QAAA,EAAA,MAAA;AAAA,KACD,CAAA;AAAA,EACH;AAAA,EAEA,MAAM,OAAO,MAAA,EAAyD;AACpE,IAAA,MAAM,IAAI,WAAA,CAAY;AAAA,MACpB,EAAA,EAAI,kCAAA;AAAA,MACJ,IAAA,EAAM,8BAAA;AAAA,MACN,MAAA,EAAA,cAAA;AAAA,MACA,QAAA,EAAA,MAAA;AAAA,KACD,CAAA;AAAA,EACH;AAAA,EAEA,MAAM,WAAA,GAA8C;AAClD,IAAA,MAAM,IAAI,WAAA,CAAY;AAAA,MACpB,EAAA,EAAI,oCAAA;AAAA,MACJ,IAAA,EAAM,8BAAA;AAAA,MACN,MAAA,EAAA,cAAA;AAAA,MACA,QAAA,EAAA,MAAA;AAAA,KACD,CAAA;AAAA,EACH;AAAA,EAEA,MAAM,WAAA,GAA6C;AACjD,IAAA,MAAM,IAAI,WAAA,CAAY;AAAA,MACpB,EAAA,EAAI,oCAAA;AAAA,MACJ,IAAA,EAAM,8BAAA;AAAA,MACN,MAAA,EAAA,cAAA;AAAA,MACA,QAAA,EAAA,MAAA;AAAA,KACD,CAAA;AAAA,EACH;AACF","file":"chunk-F2GAJSBI.js","sourcesContent":["import type { ToolsInput } from '../agent';\nimport { MastraBase } from '../base';\n\nexport type VoiceEventType = 'speaking' | 'writing' | 'error' | string;\n\nexport interface VoiceEventMap {\n speaker: NodeJS.ReadableStream;\n speaking: { audio?: string };\n writing: { text: string; role: 'assistant' | 'user' };\n error: { message: string; code?: string; details?: unknown };\n [key: string]: unknown;\n}\n\ninterface BuiltInModelConfig {\n name: string;\n apiKey?: string;\n}\n\nexport interface VoiceConfig<T = unknown> {\n listeningModel?: BuiltInModelConfig;\n speechModel?: BuiltInModelConfig;\n speaker?: string;\n name?: string;\n realtimeConfig?: {\n model?: string;\n apiKey?: string;\n options?: T;\n };\n}\n\nexport abstract class MastraVoice<\n TOptions = unknown,\n TSpeakOptions = unknown,\n TListenOptions = unknown,\n TTools extends ToolsInput = ToolsInput,\n TEventArgs extends VoiceEventMap = VoiceEventMap,\n TSpeakerMetadata = unknown,\n> extends MastraBase {\n protected listeningModel?: BuiltInModelConfig;\n protected speechModel?: BuiltInModelConfig;\n protected speaker?: string;\n protected realtimeConfig?: {\n model?: string;\n apiKey?: string;\n options?: TOptions;\n };\n\n constructor({ listeningModel, speechModel, speaker, realtimeConfig, name }: VoiceConfig<TOptions> = {}) {\n super({\n component: 'VOICE',\n name,\n });\n this.listeningModel = listeningModel;\n this.speechModel = speechModel;\n this.speaker = speaker;\n this.realtimeConfig = realtimeConfig;\n }\n\n /**\n * Convert text to speech\n * @param input Text or text stream to convert to speech\n * @param options Speech options including speaker and provider-specific options\n * @returns Audio stream\n */\n /**\n * Convert text to speech\n * @param input Text or text stream to convert to speech\n * @param options Speech options including speaker and provider-specific options\n * @returns Audio stream or void if in chat mode\n */\n abstract speak(\n input: string | NodeJS.ReadableStream,\n options?: {\n speaker?: string;\n } & TSpeakOptions,\n ): Promise<NodeJS.ReadableStream | void>;\n\n /**\n * Convert speech to text\n * @param audioStream Audio stream to transcribe\n * @param options Provider-specific transcription options\n * @returns Text or text stream\n */\n /**\n * Convert speech to text\n * @param audioStream Audio stream to transcribe\n * @param options Provider-specific transcription options\n * @returns Text, text stream, or void if in chat mode\n */\n abstract listen(\n audioStream: NodeJS.ReadableStream | unknown, // Allow other audio input types for OpenAI realtime API\n options?: TListenOptions,\n ): Promise<string | NodeJS.ReadableStream | void>;\n\n updateConfig(_options: Record<string, unknown>): void {\n this.logger.warn('updateConfig not implemented by this voice provider');\n }\n\n /**\n * Initializes a WebSocket or WebRTC connection for real-time communication\n * @returns Promise that resolves when the connection is established\n */\n connect(_options?: Record<string, unknown>): Promise<void> {\n // Default implementation - voice providers can override if they support this feature\n this.logger.warn('connect not implemented by this voice provider');\n return Promise.resolve();\n }\n\n /**\n * Relay audio data to the voice provider for real-time processing\n * @param audioData Audio data to relay\n */\n send(_audioData: NodeJS.ReadableStream | Int16Array): Promise<void> {\n // Default implementation - voice providers can override if they support this feature\n this.logger.warn('relay not implemented by this voice provider');\n return Promise.resolve();\n }\n\n /**\n * Trigger voice providers to respond\n */\n answer(_options?: Record<string, unknown>): Promise<void> {\n this.logger.warn('answer not implemented by this voice provider');\n return Promise.resolve();\n }\n\n /**\n * Equip the voice provider with instructions\n * @param instructions Instructions to add\n */\n addInstructions(_instructions?: string): void {\n // Default implementation - voice providers can override if they support this feature\n }\n\n /**\n * Equip the voice provider with tools\n * @param tools Array of tools to add\n */\n addTools(_tools: TTools): void {\n // Default implementation - voice providers can override if they support this feature\n }\n\n /**\n * Disconnect from the WebSocket or WebRTC connection\n */\n close(): void {\n // Default implementation - voice providers can override if they support this feature\n this.logger.warn('close not implemented by this voice provider');\n }\n\n /**\n * Register an event listener\n * @param event Event name (e.g., 'speaking', 'writing', 'error')\n * @param callback Callback function that receives event data\n */\n on<E extends VoiceEventType>(\n _event: E,\n _callback: (data: E extends keyof TEventArgs ? TEventArgs[E] : unknown) => void,\n ): void {\n // Default implementation - voice providers can override if they support this feature\n this.logger.warn('on not implemented by this voice provider');\n }\n\n /**\n * Remove an event listener\n * @param event Event name (e.g., 'speaking', 'writing', 'error')\n * @param callback Callback function to remove\n */\n off<E extends VoiceEventType>(\n _event: E,\n _callback: (data: E extends keyof TEventArgs ? TEventArgs[E] : unknown) => void,\n ): void {\n // Default implementation - voice providers can override if they support this feature\n this.logger.warn('off not implemented by this voice provider');\n }\n\n /**\n * Get available speakers/voices\n * @returns Array of available voice IDs and their metadata\n */\n getSpeakers(): Promise<\n Array<\n {\n voiceId: string;\n } & TSpeakerMetadata\n >\n > {\n // Default implementation - voice providers can override if they support this feature\n this.logger.warn('getSpeakers not implemented by this voice provider');\n return Promise.resolve([]);\n }\n\n /**\n * Get available speakers/voices\n * @returns Array of available voice IDs and their metadata\n */\n getListener(): Promise<{ enabled: boolean }> {\n // Default implementation - voice providers can override if they support this feature\n this.logger.warn('getListener not implemented by this voice provider');\n return Promise.resolve({ enabled: false });\n }\n}\n","import { PassThrough } from 'node:stream';\nimport { experimental_generateSpeech } from 'ai-v5';\nimport type { SpeechModel } from 'ai-v5';\nimport { MastraVoice } from '../voice';\n\nexport class AISDKSpeech extends MastraVoice {\n private model: SpeechModel;\n private defaultVoice?: string;\n\n constructor(model: SpeechModel, options?: { voice?: string }) {\n super({ name: 'ai-sdk-speech' });\n this.model = model;\n this.defaultVoice = options?.voice;\n }\n\n async speak(\n input: string | NodeJS.ReadableStream,\n options?: {\n speaker?: string;\n language?: string;\n providerOptions?: Record<string, any>;\n abortSignal?: AbortSignal;\n headers?: Record<string, string>;\n },\n ): Promise<NodeJS.ReadableStream> {\n // Convert stream to text if needed\n const text = typeof input === 'string' ? input : await this.streamToText(input);\n\n const result = await experimental_generateSpeech({\n model: this.model,\n text,\n voice: options?.speaker || this.defaultVoice, // Map speaker to AI SDK's voice parameter\n language: options?.language,\n providerOptions: options?.providerOptions,\n abortSignal: options?.abortSignal,\n headers: options?.headers,\n });\n\n // Convert Uint8Array to Node stream\n const stream = new PassThrough();\n stream.end(Buffer.from(result.audio.uint8Array));\n return stream;\n }\n\n async listen(): Promise<string> {\n throw new Error('AI SDK speech models do not support transcription. Use AISDKTranscription instead.');\n }\n\n async getSpeakers() {\n // Return empty array - voice must be specified in speak() options\n return [];\n }\n\n async getListener() {\n return { enabled: false };\n }\n\n private async streamToText(stream: NodeJS.ReadableStream): Promise<string> {\n const chunks: Buffer[] = [];\n for await (const chunk of stream) {\n chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk));\n }\n return Buffer.concat(chunks).toString('utf-8');\n }\n}\n","import { experimental_transcribe } from 'ai-v5';\nimport type { TranscriptionModel } from 'ai-v5';\nimport { MastraVoice } from '../voice';\n\nexport class AISDKTranscription extends MastraVoice {\n private model: TranscriptionModel;\n\n constructor(model: TranscriptionModel) {\n super({ name: 'ai-sdk-transcription' });\n this.model = model;\n }\n\n async speak(): Promise<NodeJS.ReadableStream> {\n throw new Error('AI SDK transcription models do not support text-to-speech. Use AISDKSpeech instead.');\n }\n\n async getSpeakers() {\n return [];\n }\n\n async getListener() {\n return { enabled: true };\n }\n\n /**\n * Transcribe audio to text\n * For enhanced metadata (segments, language, duration), use AI SDK's transcribe() directly\n */\n async listen(\n audioStream: NodeJS.ReadableStream,\n options?: {\n providerOptions?: Record<string, any>;\n abortSignal?: AbortSignal;\n headers?: Record<string, string>;\n },\n ): Promise<string> {\n const audioBuffer = await this.convertToBuffer(audioStream);\n\n const result = await experimental_transcribe({\n model: this.model,\n audio: audioBuffer,\n providerOptions: options?.providerOptions,\n abortSignal: options?.abortSignal,\n headers: options?.headers,\n });\n\n return result.text;\n }\n\n private async convertToBuffer(audio: NodeJS.ReadableStream | Buffer | Uint8Array | string): Promise<Buffer> {\n if (Buffer.isBuffer(audio)) return audio;\n if (audio instanceof Uint8Array) return Buffer.from(audio);\n if (typeof audio === 'string') return Buffer.from(audio, 'base64');\n\n const chunks: Buffer[] = [];\n for await (const chunk of audio) {\n chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk));\n }\n return Buffer.concat(chunks);\n }\n}\n","import type { TranscriptionModel, SpeechModel } from 'ai-v5';\n\nimport type { ToolsInput } from '../agent';\nimport { MastraError, ErrorDomain, ErrorCategory } from '../error';\n\nimport { AISDKSpeech } from './aisdk/speech';\nimport { AISDKTranscription } from './aisdk/transcription';\nimport { MastraVoice } from './voice';\nimport type { VoiceEventType, VoiceEventMap } from '.';\n\n// Helper to check if something is an AI SDK model\nfunction isTranscriptionModel(obj: any): obj is TranscriptionModel {\n return obj && typeof obj === 'object' && obj.modelId && obj.specificationVersion === 'v2';\n}\n\nfunction isSpeechModel(obj: any): obj is SpeechModel {\n return obj && typeof obj === 'object' && obj.modelId && obj.specificationVersion === 'v2';\n}\n\nexport class CompositeVoice extends MastraVoice<unknown, unknown, unknown, ToolsInput, VoiceEventMap> {\n protected speakProvider?: MastraVoice;\n protected listenProvider?: MastraVoice;\n protected realtimeProvider?: MastraVoice;\n\n constructor({\n input,\n output,\n realtime,\n }: {\n input?: MastraVoice | TranscriptionModel;\n output?: MastraVoice | SpeechModel;\n realtime?: MastraVoice;\n }) {\n super();\n\n // Auto-wrap AI SDK models\n if (input) {\n this.listenProvider = isTranscriptionModel(input) ? new AISDKTranscription(input) : input;\n }\n\n if (output) {\n this.speakProvider = isSpeechModel(output) ? new AISDKSpeech(output) : output;\n }\n\n this.realtimeProvider = realtime;\n }\n\n /**\n * Convert text to speech using the configured provider\n * @param input Text or text stream to convert to speech\n * @param options Speech options including speaker and provider-specific options\n * @returns Audio stream or void if in realtime mode\n */\n async speak(\n input: string | NodeJS.ReadableStream,\n options?: { speaker?: string } & any,\n ): Promise<NodeJS.ReadableStream | void> {\n if (this.realtimeProvider) {\n return this.realtimeProvider.speak(input, options);\n } else if (this.speakProvider) {\n return this.speakProvider.speak(input, options);\n }\n\n throw new MastraError({\n id: 'VOICE_COMPOSITE_NO_SPEAK_PROVIDER',\n text: 'No speak provider or realtime provider configured',\n domain: ErrorDomain.MASTRA_VOICE,\n category: ErrorCategory.USER,\n });\n }\n\n async listen(audioStream: NodeJS.ReadableStream, options?: any) {\n if (this.realtimeProvider) {\n return await this.realtimeProvider.listen(audioStream, options);\n } else if (this.listenProvider) {\n return await this.listenProvider.listen(audioStream, options);\n }\n\n throw new MastraError({\n id: 'VOICE_COMPOSITE_NO_LISTEN_PROVIDER',\n text: 'No listen provider or realtime provider configured',\n domain: ErrorDomain.MASTRA_VOICE,\n category: ErrorCategory.USER,\n });\n }\n\n async getSpeakers() {\n if (this.realtimeProvider) {\n return this.realtimeProvider.getSpeakers();\n } else if (this.speakProvider) {\n return this.speakProvider.getSpeakers();\n }\n\n throw new MastraError({\n id: 'VOICE_COMPOSITE_NO_SPEAKERS_PROVIDER',\n text: 'No speak provider or realtime provider configured',\n domain: ErrorDomain.MASTRA_VOICE,\n category: ErrorCategory.USER,\n });\n }\n\n async getListener() {\n if (this.realtimeProvider) {\n return this.realtimeProvider.getListener();\n } else if (this.listenProvider) {\n return this.listenProvider.getListener();\n }\n\n throw new MastraError({\n id: 'VOICE_COMPOSITE_NO_LISTENER_PROVIDER',\n text: 'No listener provider or realtime provider configured',\n domain: ErrorDomain.MASTRA_VOICE,\n category: ErrorCategory.USER,\n });\n }\n\n updateConfig(options: Record<string, unknown>): void {\n if (!this.realtimeProvider) {\n return;\n }\n this.realtimeProvider.updateConfig(options);\n }\n\n /**\n * Initializes a WebSocket or WebRTC connection for real-time communication\n * @returns Promise that resolves when the connection is established\n */\n connect(options?: Record<string, unknown>): Promise<void> {\n if (!this.realtimeProvider) {\n throw new MastraError({\n id: 'VOICE_COMPOSITE_NO_REALTIME_PROVIDER_CONNECT',\n text: 'No realtime provider configured',\n domain: ErrorDomain.MASTRA_VOICE,\n category: ErrorCategory.USER,\n });\n }\n return this.realtimeProvider.connect(options);\n }\n\n /**\n * Relay audio data to the voice provider for real-time processing\n * @param audioData Audio data to send\n */\n send(audioData: NodeJS.ReadableStream | Int16Array): Promise<void> {\n if (!this.realtimeProvider) {\n throw new MastraError({\n id: 'VOICE_COMPOSITE_NO_REALTIME_PROVIDER_SEND',\n text: 'No realtime provider configured',\n domain: ErrorDomain.MASTRA_VOICE,\n category: ErrorCategory.USER,\n });\n }\n return this.realtimeProvider.send(audioData);\n }\n\n /**\n * Trigger voice providers to respond\n */\n answer(options?: Record<string, unknown>): Promise<void> {\n if (!this.realtimeProvider) {\n throw new MastraError({\n id: 'VOICE_COMPOSITE_NO_REALTIME_PROVIDER_ANSWER',\n text: 'No realtime provider configured',\n domain: ErrorDomain.MASTRA_VOICE,\n category: ErrorCategory.USER,\n });\n }\n return this.realtimeProvider.answer(options);\n }\n\n /**\n * Equip the voice provider with instructions\n * @param instructions Instructions to add\n */\n addInstructions(instructions: string): void {\n if (!this.realtimeProvider) {\n return;\n }\n this.realtimeProvider.addInstructions(instructions);\n }\n\n /**\n * Equip the voice provider with tools\n * @param tools Array of tools to add\n */\n addTools(tools: ToolsInput): void {\n if (!this.realtimeProvider) {\n return;\n }\n this.realtimeProvider.addTools(tools);\n }\n\n /**\n * Disconnect from the WebSocket or WebRTC connection\n */\n close(): void {\n if (!this.realtimeProvider) {\n throw new MastraError({\n id: 'VOICE_COMPOSITE_NO_REALTIME_PROVIDER_CLOSE',\n text: 'No realtime provider configured',\n domain: ErrorDomain.MASTRA_VOICE,\n category: ErrorCategory.USER,\n });\n }\n this.realtimeProvider.close();\n }\n\n /**\n * Register an event listener\n * @param event Event name (e.g., 'speaking', 'writing', 'error')\n * @param callback Callback function that receives event data\n */\n on<E extends VoiceEventType>(\n event: E,\n callback: (data: E extends keyof VoiceEventMap ? VoiceEventMap[E] : unknown) => void,\n ): void {\n if (!this.realtimeProvider) {\n throw new MastraError({\n id: 'VOICE_COMPOSITE_NO_REALTIME_PROVIDER_ON',\n text: 'No realtime provider configured',\n domain: ErrorDomain.MASTRA_VOICE,\n category: ErrorCategory.USER,\n });\n }\n this.realtimeProvider.on(event, callback);\n }\n\n /**\n * Remove an event listener\n * @param event Event name (e.g., 'speaking', 'writing', 'error')\n * @param callback Callback function to remove\n */\n off<E extends VoiceEventType>(\n event: E,\n callback: (data: E extends keyof VoiceEventMap ? VoiceEventMap[E] : unknown) => void,\n ): void {\n if (!this.realtimeProvider) {\n throw new MastraError({\n id: 'VOICE_COMPOSITE_NO_REALTIME_PROVIDER_OFF',\n text: 'No realtime provider configured',\n domain: ErrorDomain.MASTRA_VOICE,\n category: ErrorCategory.USER,\n });\n }\n this.realtimeProvider.off(event, callback);\n }\n}\n","import { MastraError, ErrorDomain, ErrorCategory } from '../error';\nimport { MastraVoice } from '.';\n\nexport class DefaultVoice extends MastraVoice {\n constructor() {\n super();\n }\n\n async speak(_input: string | NodeJS.ReadableStream): Promise<NodeJS.ReadableStream> {\n throw new MastraError({\n id: 'VOICE_DEFAULT_NO_SPEAK_PROVIDER',\n text: 'No voice provider configured',\n domain: ErrorDomain.MASTRA_VOICE,\n category: ErrorCategory.USER,\n });\n }\n\n async listen(_input: string | NodeJS.ReadableStream): Promise<string> {\n throw new MastraError({\n id: 'VOICE_DEFAULT_NO_LISTEN_PROVIDER',\n text: 'No voice provider configured',\n domain: ErrorDomain.MASTRA_VOICE,\n category: ErrorCategory.USER,\n });\n }\n\n async getSpeakers(): Promise<{ voiceId: string }[]> {\n throw new MastraError({\n id: 'VOICE_DEFAULT_NO_SPEAKERS_PROVIDER',\n text: 'No voice provider configured',\n domain: ErrorDomain.MASTRA_VOICE,\n category: ErrorCategory.USER,\n });\n }\n\n async getListener(): Promise<{ enabled: boolean }> {\n throw new MastraError({\n id: 'VOICE_DEFAULT_NO_LISTENER_PROVIDER',\n text: 'No voice provider configured',\n domain: ErrorDomain.MASTRA_VOICE,\n category: ErrorCategory.USER,\n });\n }\n}\n"]}
|
|
@@ -1,14 +1,28 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var chunkSVLMF4UZ_cjs = require('./chunk-SVLMF4UZ.cjs');
|
|
4
|
-
var
|
|
4
|
+
var chunkQD3UWFAV_cjs = require('./chunk-QD3UWFAV.cjs');
|
|
5
|
+
var chunk72YCRTEX_cjs = require('./chunk-72YCRTEX.cjs');
|
|
5
6
|
var chunkTWH4PTDG_cjs = require('./chunk-TWH4PTDG.cjs');
|
|
6
|
-
var
|
|
7
|
+
var chunkDGV2FWB4_cjs = require('./chunk-DGV2FWB4.cjs');
|
|
7
8
|
var schemaCompat = require('@mastra/schema-compat');
|
|
8
9
|
var zodToJson = require('@mastra/schema-compat/zod-to-json');
|
|
9
10
|
var zod = require('zod');
|
|
11
|
+
var crypto = require('crypto');
|
|
10
12
|
|
|
11
|
-
|
|
13
|
+
// src/stream/aisdk/v4/usage.ts
|
|
14
|
+
function convertV4Usage(usage) {
|
|
15
|
+
if (!usage) {
|
|
16
|
+
return {};
|
|
17
|
+
}
|
|
18
|
+
return {
|
|
19
|
+
inputTokens: usage.promptTokens,
|
|
20
|
+
outputTokens: usage.completionTokens
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// src/llm/model/model.ts
|
|
25
|
+
var MastraLLMV1 = class extends chunkDGV2FWB4_cjs.MastraBase {
|
|
12
26
|
#model;
|
|
13
27
|
#mastra;
|
|
14
28
|
#options;
|
|
@@ -93,7 +107,7 @@ var MastraLLMV1 = class extends chunkKEXGB7FK_cjs.MastraBase {
|
|
|
93
107
|
this.logger.debug("[LLM] - Using experimental output", {
|
|
94
108
|
runId
|
|
95
109
|
});
|
|
96
|
-
if (
|
|
110
|
+
if (chunkQD3UWFAV_cjs.isZodType(experimental_output)) {
|
|
97
111
|
schema = experimental_output;
|
|
98
112
|
if (schema instanceof zod.z.ZodArray) {
|
|
99
113
|
schema = schema._def.type;
|
|
@@ -174,9 +188,10 @@ var MastraLLMV1 = class extends chunkKEXGB7FK_cjs.MastraBase {
|
|
|
174
188
|
usage: props?.usage,
|
|
175
189
|
runId
|
|
176
190
|
});
|
|
177
|
-
|
|
191
|
+
const remainingTokens = parseInt(props?.response?.headers?.["x-ratelimit-remaining-tokens"] ?? "", 10);
|
|
192
|
+
if (!isNaN(remainingTokens) && remainingTokens > 0 && remainingTokens < 2e3) {
|
|
178
193
|
this.logger.warn("Rate limit approaching, waiting 10 seconds", { runId });
|
|
179
|
-
await
|
|
194
|
+
await chunkQD3UWFAV_cjs.delay(10 * 1e3);
|
|
180
195
|
}
|
|
181
196
|
},
|
|
182
197
|
experimental_output: schema ? chunkSVLMF4UZ_cjs.output_exports.object({
|
|
@@ -184,7 +199,10 @@ var MastraLLMV1 = class extends chunkKEXGB7FK_cjs.MastraBase {
|
|
|
184
199
|
}) : void 0
|
|
185
200
|
};
|
|
186
201
|
try {
|
|
187
|
-
const result = await
|
|
202
|
+
const result = await chunk72YCRTEX_cjs.executeWithContext({
|
|
203
|
+
span: llmSpan,
|
|
204
|
+
fn: () => chunkSVLMF4UZ_cjs.generateText(argsForExecute)
|
|
205
|
+
});
|
|
188
206
|
if (schema && result.finishReason === "stop") {
|
|
189
207
|
result.object = result.experimental_output;
|
|
190
208
|
}
|
|
@@ -200,7 +218,7 @@ var MastraLLMV1 = class extends chunkKEXGB7FK_cjs.MastraBase {
|
|
|
200
218
|
},
|
|
201
219
|
attributes: {
|
|
202
220
|
finishReason: result.finishReason,
|
|
203
|
-
usage: result.usage
|
|
221
|
+
usage: convertV4Usage(result.usage)
|
|
204
222
|
}
|
|
205
223
|
});
|
|
206
224
|
return result;
|
|
@@ -291,7 +309,7 @@ var MastraLLMV1 = class extends chunkKEXGB7FK_cjs.MastraBase {
|
|
|
291
309
|
},
|
|
292
310
|
attributes: {
|
|
293
311
|
finishReason: result.finishReason,
|
|
294
|
-
usage: result.usage
|
|
312
|
+
usage: convertV4Usage(result.usage)
|
|
295
313
|
}
|
|
296
314
|
});
|
|
297
315
|
return result;
|
|
@@ -444,9 +462,10 @@ var MastraLLMV1 = class extends chunkKEXGB7FK_cjs.MastraBase {
|
|
|
444
462
|
usage: props?.usage,
|
|
445
463
|
runId
|
|
446
464
|
});
|
|
447
|
-
|
|
465
|
+
const remainingTokens = parseInt(props?.response?.headers?.["x-ratelimit-remaining-tokens"] ?? "", 10);
|
|
466
|
+
if (!isNaN(remainingTokens) && remainingTokens > 0 && remainingTokens < 2e3) {
|
|
448
467
|
this.logger.warn("Rate limit approaching, waiting 10 seconds", { runId });
|
|
449
|
-
await
|
|
468
|
+
await chunkQD3UWFAV_cjs.delay(10 * 1e3);
|
|
450
469
|
}
|
|
451
470
|
},
|
|
452
471
|
onFinish: async (props) => {
|
|
@@ -461,7 +480,7 @@ var MastraLLMV1 = class extends chunkKEXGB7FK_cjs.MastraBase {
|
|
|
461
480
|
},
|
|
462
481
|
attributes: {
|
|
463
482
|
finishReason: props?.finishReason,
|
|
464
|
-
usage: props?.usage
|
|
483
|
+
usage: convertV4Usage(props?.usage)
|
|
465
484
|
}
|
|
466
485
|
});
|
|
467
486
|
try {
|
|
@@ -508,7 +527,7 @@ var MastraLLMV1 = class extends chunkKEXGB7FK_cjs.MastraBase {
|
|
|
508
527
|
}) : void 0
|
|
509
528
|
};
|
|
510
529
|
try {
|
|
511
|
-
return chunkSVLMF4UZ_cjs.streamText(argsForExecute);
|
|
530
|
+
return chunk72YCRTEX_cjs.executeWithContextSync({ span: llmSpan, fn: () => chunkSVLMF4UZ_cjs.streamText(argsForExecute) });
|
|
512
531
|
} catch (e) {
|
|
513
532
|
const mastraError = new chunkTWH4PTDG_cjs.MastraError(
|
|
514
533
|
{
|
|
@@ -747,7 +766,155 @@ var MastraLLMV1 = class extends chunkKEXGB7FK_cjs.MastraBase {
|
|
|
747
766
|
});
|
|
748
767
|
}
|
|
749
768
|
};
|
|
769
|
+
var AISDKV5LanguageModel = class {
|
|
770
|
+
/**
|
|
771
|
+
* The language model must specify which language model interface version it implements.
|
|
772
|
+
*/
|
|
773
|
+
specificationVersion = "v2";
|
|
774
|
+
/**
|
|
775
|
+
* Name of the provider for logging purposes.
|
|
776
|
+
*/
|
|
777
|
+
provider;
|
|
778
|
+
/**
|
|
779
|
+
* Provider-specific model ID for logging purposes.
|
|
780
|
+
*/
|
|
781
|
+
modelId;
|
|
782
|
+
/**
|
|
783
|
+
* Supported URL patterns by media type for the provider.
|
|
784
|
+
*
|
|
785
|
+
* The keys are media type patterns or full media types (e.g. `*\/*` for everything, `audio/*`, `video/*`, or `application/pdf`).
|
|
786
|
+
* and the values are arrays of regular expressions that match the URL paths.
|
|
787
|
+
* The matching should be against lower-case URLs.
|
|
788
|
+
* Matched URLs are supported natively by the model and are not downloaded.
|
|
789
|
+
* @returns A map of supported URL patterns by media type (as a promise or a plain object).
|
|
790
|
+
*/
|
|
791
|
+
supportedUrls;
|
|
792
|
+
#model;
|
|
793
|
+
constructor(config) {
|
|
794
|
+
this.#model = config;
|
|
795
|
+
this.provider = this.#model.provider;
|
|
796
|
+
this.modelId = this.#model.modelId;
|
|
797
|
+
this.supportedUrls = this.#model.supportedUrls;
|
|
798
|
+
}
|
|
799
|
+
async doGenerate(options) {
|
|
800
|
+
const result = await this.#model.doGenerate(options);
|
|
801
|
+
return {
|
|
802
|
+
request: result.request,
|
|
803
|
+
response: result.response,
|
|
804
|
+
stream: new ReadableStream({
|
|
805
|
+
start(controller) {
|
|
806
|
+
controller.enqueue({ type: "stream-start", warnings: result.warnings });
|
|
807
|
+
controller.enqueue({
|
|
808
|
+
type: "response-metadata",
|
|
809
|
+
id: result.response?.id,
|
|
810
|
+
modelId: result.response?.modelId,
|
|
811
|
+
timestamp: result.response?.timestamp
|
|
812
|
+
});
|
|
813
|
+
for (const message of result.content) {
|
|
814
|
+
if (message.type === "tool-call") {
|
|
815
|
+
const toolCall = message;
|
|
816
|
+
controller.enqueue({
|
|
817
|
+
type: "tool-input-start",
|
|
818
|
+
id: toolCall.toolCallId,
|
|
819
|
+
toolName: toolCall.toolName
|
|
820
|
+
});
|
|
821
|
+
controller.enqueue({
|
|
822
|
+
type: "tool-input-delta",
|
|
823
|
+
id: toolCall.toolCallId,
|
|
824
|
+
delta: toolCall.input
|
|
825
|
+
});
|
|
826
|
+
controller.enqueue({
|
|
827
|
+
type: "tool-input-end",
|
|
828
|
+
id: toolCall.toolCallId
|
|
829
|
+
});
|
|
830
|
+
controller.enqueue(toolCall);
|
|
831
|
+
} else if (message.type === "tool-result") {
|
|
832
|
+
const toolResult = message;
|
|
833
|
+
controller.enqueue(toolResult);
|
|
834
|
+
} else if (message.type === "text") {
|
|
835
|
+
const text = message;
|
|
836
|
+
const id = `msg_${crypto.randomUUID()}`;
|
|
837
|
+
controller.enqueue({
|
|
838
|
+
type: "text-start",
|
|
839
|
+
id,
|
|
840
|
+
providerMetadata: text.providerMetadata
|
|
841
|
+
});
|
|
842
|
+
controller.enqueue({
|
|
843
|
+
type: "text-delta",
|
|
844
|
+
id,
|
|
845
|
+
delta: text.text
|
|
846
|
+
});
|
|
847
|
+
controller.enqueue({
|
|
848
|
+
type: "text-end",
|
|
849
|
+
id
|
|
850
|
+
});
|
|
851
|
+
} else if (message.type === "reasoning") {
|
|
852
|
+
const id = `reasoning_${crypto.randomUUID()}`;
|
|
853
|
+
const reasoning = message;
|
|
854
|
+
controller.enqueue({
|
|
855
|
+
type: "reasoning-start",
|
|
856
|
+
id,
|
|
857
|
+
providerMetadata: reasoning.providerMetadata
|
|
858
|
+
});
|
|
859
|
+
controller.enqueue({
|
|
860
|
+
type: "reasoning-delta",
|
|
861
|
+
id,
|
|
862
|
+
delta: reasoning.text,
|
|
863
|
+
providerMetadata: reasoning.providerMetadata
|
|
864
|
+
});
|
|
865
|
+
controller.enqueue({
|
|
866
|
+
type: "reasoning-end",
|
|
867
|
+
id,
|
|
868
|
+
providerMetadata: reasoning.providerMetadata
|
|
869
|
+
});
|
|
870
|
+
} else if (message.type === "file") {
|
|
871
|
+
const file = message;
|
|
872
|
+
controller.enqueue({
|
|
873
|
+
type: "file",
|
|
874
|
+
mediaType: file.mediaType,
|
|
875
|
+
data: file.data
|
|
876
|
+
});
|
|
877
|
+
} else if (message.type === "source") {
|
|
878
|
+
const source = message;
|
|
879
|
+
if (source.sourceType === "url") {
|
|
880
|
+
controller.enqueue({
|
|
881
|
+
type: "source",
|
|
882
|
+
id: source.id,
|
|
883
|
+
sourceType: "url",
|
|
884
|
+
url: source.url,
|
|
885
|
+
title: source.title,
|
|
886
|
+
providerMetadata: source.providerMetadata
|
|
887
|
+
});
|
|
888
|
+
} else {
|
|
889
|
+
controller.enqueue({
|
|
890
|
+
type: "source",
|
|
891
|
+
id: source.id,
|
|
892
|
+
sourceType: "document",
|
|
893
|
+
mediaType: source.mediaType,
|
|
894
|
+
filename: source.filename,
|
|
895
|
+
title: source.title,
|
|
896
|
+
providerMetadata: source.providerMetadata
|
|
897
|
+
});
|
|
898
|
+
}
|
|
899
|
+
}
|
|
900
|
+
}
|
|
901
|
+
controller.enqueue({
|
|
902
|
+
type: "finish",
|
|
903
|
+
finishReason: result.finishReason,
|
|
904
|
+
usage: result.usage,
|
|
905
|
+
providerMetadata: result.providerMetadata
|
|
906
|
+
});
|
|
907
|
+
controller.close();
|
|
908
|
+
}
|
|
909
|
+
})
|
|
910
|
+
};
|
|
911
|
+
}
|
|
912
|
+
async doStream(options) {
|
|
913
|
+
return await this.#model.doStream(options);
|
|
914
|
+
}
|
|
915
|
+
};
|
|
750
916
|
|
|
917
|
+
exports.AISDKV5LanguageModel = AISDKV5LanguageModel;
|
|
751
918
|
exports.MastraLLMV1 = MastraLLMV1;
|
|
752
|
-
//# sourceMappingURL=chunk-
|
|
753
|
-
//# sourceMappingURL=chunk-
|
|
919
|
+
//# sourceMappingURL=chunk-G4IFCTL5.cjs.map
|
|
920
|
+
//# sourceMappingURL=chunk-G4IFCTL5.cjs.map
|