@mastra/core 1.0.0-beta.4 → 1.0.0-beta.6
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 +598 -0
- package/dist/agent/agent-legacy.d.ts +17 -20
- 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 +3 -1
- 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 +49 -0
- 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/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 +20 -6
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/agent/utils.d.ts.map +1 -1
- package/dist/agent/workflows/prepare-stream/index.d.ts +10 -10
- package/dist/agent/workflows/prepare-stream/index.d.ts.map +1 -1
- package/dist/agent/workflows/prepare-stream/map-results-step.d.ts +1 -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 +4 -4
- 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 +4 -4
- package/dist/agent/workflows/prepare-stream/prepare-tools-step.d.ts.map +1 -1
- package/dist/agent/workflows/prepare-stream/schema.d.ts +12 -13
- package/dist/agent/workflows/prepare-stream/schema.d.ts.map +1 -1
- package/dist/agent/workflows/prepare-stream/stream-step.d.ts +8 -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-OJNJA5ZI.js → chunk-3CKZSDTQ.js} +3 -3
- package/dist/{chunk-OJNJA5ZI.js.map → chunk-3CKZSDTQ.js.map} +1 -1
- package/dist/{chunk-TQTAMPSC.js → chunk-3N3QE4ZK.js} +3 -3
- package/dist/chunk-3N3QE4ZK.js.map +1 -0
- package/dist/{chunk-WQSGX6XA.cjs → chunk-3TKNXJES.cjs} +56 -15
- package/dist/chunk-3TKNXJES.cjs.map +1 -0
- package/dist/{chunk-XXBWX7DT.js → chunk-45NA5ZD3.js} +11673 -9468
- package/dist/chunk-45NA5ZD3.js.map +1 -0
- package/dist/{chunk-KEURQGCQ.js → chunk-4F6RAJFU.js} +105 -21
- package/dist/chunk-4F6RAJFU.js.map +1 -0
- package/dist/{chunk-ISMGVGUM.cjs → chunk-4JKEUSCC.cjs} +4 -4
- package/dist/{chunk-ISMGVGUM.cjs.map → chunk-4JKEUSCC.cjs.map} +1 -1
- package/dist/{chunk-CYVNOIXS.cjs → chunk-4KUOSXJ7.cjs} +30 -16
- package/dist/chunk-4KUOSXJ7.cjs.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-3RW5EMSB.js → chunk-6GOLI2EY.js} +22 -9
- package/dist/chunk-6GOLI2EY.js.map +1 -0
- package/dist/{chunk-4RXG622P.cjs → chunk-6J4NRNT2.cjs} +600 -37
- package/dist/chunk-6J4NRNT2.cjs.map +1 -0
- package/dist/{chunk-J7O6WENZ.cjs → chunk-6TBWJV35.js} +5 -5
- 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-MDKPL2R2.js → chunk-7ZADRRDW.js} +5 -4
- package/dist/chunk-7ZADRRDW.js.map +1 -0
- package/dist/{chunk-DSNPWVIG.cjs → chunk-AF74UXR5.cjs} +4 -3
- package/dist/chunk-AF74UXR5.cjs.map +1 -0
- package/dist/{chunk-W3DD3XP5.js → chunk-APMPOYPI.js} +334 -138
- package/dist/chunk-APMPOYPI.js.map +1 -0
- package/dist/{chunk-LRSB62Z6.cjs → chunk-AQAIS7FH.cjs} +15 -8
- package/dist/chunk-AQAIS7FH.cjs.map +1 -0
- package/dist/chunk-BWYU7D33.js +192 -0
- package/dist/chunk-BWYU7D33.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-WTYNK7Q4.js → chunk-DXMSVGJ6.js} +599 -36
- package/dist/chunk-DXMSVGJ6.js.map +1 -0
- package/dist/{chunk-Y63IFHEZ.cjs → chunk-EOPEDKLG.cjs} +4 -4
- package/dist/chunk-EOPEDKLG.cjs.map +1 -0
- package/dist/{chunk-NZAXAFI3.js → chunk-F2GAJSBI.js} +3 -3
- package/dist/{chunk-NZAXAFI3.js.map → chunk-F2GAJSBI.js.map} +1 -1
- package/dist/{chunk-KIZIOFZC.js → chunk-FYP3AT6W.js} +17 -3
- package/dist/chunk-FYP3AT6W.js.map +1 -0
- package/dist/{chunk-ZCVTH3CH.cjs → chunk-HNHZGFZY.cjs} +5 -4
- package/dist/chunk-HNHZGFZY.cjs.map +1 -0
- package/dist/{chunk-BMAFVZ2D.cjs → chunk-IWTMMUQY.cjs} +4 -4
- package/dist/{chunk-BMAFVZ2D.cjs.map → chunk-IWTMMUQY.cjs.map} +1 -1
- package/dist/{chunk-D6EDHNGV.js → chunk-KZLP6TPJ.js} +69 -28
- package/dist/chunk-KZLP6TPJ.js.map +1 -0
- package/dist/{chunk-5WXEYDFI.cjs → chunk-LDWBLENZ.cjs} +51 -38
- package/dist/chunk-LDWBLENZ.cjs.map +1 -0
- package/dist/{chunk-HGNRQ3OG.js → chunk-LEZIKVRQ.js} +15 -8
- package/dist/chunk-LEZIKVRQ.js.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-E7K4FTLN.cjs → chunk-NHNXIYDG.cjs} +18 -2
- package/dist/chunk-NHNXIYDG.cjs.map +1 -0
- package/dist/{chunk-U7VECK2G.js → chunk-NIUEWICQ.js} +145 -19
- package/dist/chunk-NIUEWICQ.js.map +1 -0
- package/dist/{chunk-2NVBZKZI.cjs → chunk-NN3NOFRU.cjs} +11744 -9526
- package/dist/chunk-NN3NOFRU.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-IWB65P37.cjs → chunk-OIMB2SNZ.cjs} +155 -29
- package/dist/chunk-OIMB2SNZ.cjs.map +1 -0
- package/dist/{chunk-IWQDBVJK.js → chunk-OPALPWAM.js} +47 -8
- package/dist/chunk-OPALPWAM.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-S6OEQHEI.cjs → chunk-QGWNF2QJ.cjs} +59 -50
- package/dist/chunk-QGWNF2QJ.cjs.map +1 -0
- package/dist/{chunk-VZC4BWWH.cjs → chunk-RHTV5C5D.cjs} +19 -19
- package/dist/chunk-RHTV5C5D.cjs.map +1 -0
- package/dist/{chunk-HBJPYQRN.cjs → chunk-RTROJFEU.cjs} +78 -41
- package/dist/chunk-RTROJFEU.cjs.map +1 -0
- package/dist/chunk-S5FPOCQF.cjs +518 -0
- package/dist/chunk-S5FPOCQF.cjs.map +1 -0
- package/dist/{chunk-O6NA3Z43.cjs → chunk-SQAX4OW6.cjs} +167 -12
- package/dist/chunk-SQAX4OW6.cjs.map +1 -0
- package/dist/{chunk-IHJDOC3A.js → chunk-T2UNO766.js} +16 -7
- package/dist/chunk-T2UNO766.js.map +1 -0
- package/dist/{chunk-FVNT7VTO.js → chunk-TARWUQG6.js} +243 -166
- package/dist/chunk-TARWUQG6.js.map +1 -0
- package/dist/{chunk-76K3IYWM.js → chunk-TS7B26US.js} +3 -3
- package/dist/{chunk-76K3IYWM.js.map → chunk-TS7B26US.js.map} +1 -1
- 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-GRBGQ2GE.js → chunk-UVHSM2GU.cjs} +9 -3
- package/dist/chunk-UVHSM2GU.cjs.map +1 -0
- package/dist/{chunk-VSM3NLUX.cjs → chunk-VRFSEZBA.cjs} +334 -138
- package/dist/chunk-VRFSEZBA.cjs.map +1 -0
- package/dist/{chunk-JXESKY4A.js → chunk-WDRA4WKG.js} +163 -9
- package/dist/chunk-WDRA4WKG.js.map +1 -0
- package/dist/{chunk-RXDJL5QT.js → chunk-WMAMOYRR.js} +14 -14
- package/dist/chunk-WMAMOYRR.js.map +1 -0
- package/dist/{chunk-2OTDXX73.js → chunk-XY337TTF.js} +24 -10
- package/dist/chunk-XY337TTF.js.map +1 -0
- package/dist/{chunk-4IKJAKCD.cjs → chunk-Y24HI6ND.cjs} +108 -23
- package/dist/chunk-Y24HI6ND.cjs.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 +5 -5
- package/dist/evals/scoreTraces/index.js +2 -2
- package/dist/evals/types.d.ts +8 -8
- 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 +18 -14
- package/dist/llm/index.d.ts +2 -1
- package/dist/llm/index.d.ts.map +1 -1
- package/dist/llm/index.js +5 -5
- package/dist/llm/model/aisdk/v5/model.d.ts.map +1 -1
- 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 +3 -6
- package/dist/llm/model/gateways/base.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 +2 -2
- package/dist/llm/model/gateways/models-dev.d.ts.map +1 -1
- package/dist/llm/model/gateways/netlify.d.ts +2 -2
- package/dist/llm/model/gateways/netlify.d.ts.map +1 -1
- package/dist/llm/model/model.d.ts.map +1 -1
- package/dist/llm/model/model.loop.d.ts +1 -1
- package/dist/llm/model/model.loop.d.ts.map +1 -1
- package/dist/llm/model/provider-registry.d.ts.map +1 -1
- package/dist/llm/model/provider-types.generated.d.ts +245 -12
- 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/router.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 +2 -2
- package/dist/loop/network/index.d.ts.map +1 -1
- 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/resultObject.d.ts.map +1 -1
- package/dist/loop/test-utils/streamObject.d.ts.map +1 -1
- package/dist/loop/types.d.ts +13 -2
- package/dist/loop/types.d.ts.map +1 -1
- package/dist/loop/workflows/agentic-execution/index.d.ts +96 -96
- package/dist/loop/workflows/agentic-execution/index.d.ts.map +1 -1
- package/dist/loop/workflows/agentic-execution/llm-execution-step.d.ts +65 -65
- 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 +32 -32
- 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 +97 -97
- package/dist/loop/workflows/agentic-loop/index.d.ts.map +1 -1
- package/dist/loop/workflows/schema.d.ts +32 -32
- 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 +64 -9
- 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 +22 -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-F6MTIYTO.js +3 -0
- package/dist/{models-dev-6PRLJKVZ.js.map → models-dev-F6MTIYTO.js.map} +1 -1
- package/dist/models-dev-XIVR5EJV.cjs +12 -0
- package/dist/{models-dev-WHMI5G6Y.cjs.map → models-dev-XIVR5EJV.cjs.map} +1 -1
- package/dist/netlify-C2YBIK7A.js +3 -0
- package/dist/{netlify-EBQ6YUC6.js.map → netlify-C2YBIK7A.js.map} +1 -1
- package/dist/netlify-XWROOTP4.cjs +12 -0
- package/dist/{netlify-46I3SNNV.cjs.map → netlify-XWROOTP4.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 +165 -3
- 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-BXX7CA3H.cjs +40 -0
- package/dist/{provider-registry-RP2W4B24.cjs.map → provider-registry-BXX7CA3H.cjs.map} +1 -1
- package/dist/provider-registry-GRYJWVEM.js +3 -0
- package/dist/{provider-registry-HDG6UMUC.js.map → provider-registry-GRYJWVEM.js.map} +1 -1
- package/dist/provider-registry.json +547 -25
- package/dist/{registry-generator-JPCV47SC.cjs → registry-generator-34SC4TAU.cjs} +21 -6
- package/dist/registry-generator-34SC4TAU.cjs.map +1 -0
- package/dist/{registry-generator-XD4FPZTU.js → registry-generator-UMTNPBJX.js} +21 -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/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 +112 -2
- package/dist/server/index.cjs.map +1 -1
- package/dist/server/index.d.ts +4 -0
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +109 -2
- 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/domains/memory/inmemory.d.ts.map +1 -1
- package/dist/storage/index.cjs +37 -29
- package/dist/storage/index.js +1 -1
- package/dist/storage/types.d.ts +1 -1
- package/dist/storage/types.d.ts.map +1 -1
- package/dist/storage/utils.d.ts +44 -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/v5/output.d.ts +1 -1
- 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/output-format-handlers.d.ts +1 -1
- package/dist/stream/base/output-format-handlers.d.ts.map +1 -1
- package/dist/stream/base/output.d.ts +1 -1
- package/dist/stream/base/output.d.ts.map +1 -1
- package/dist/stream/index.cjs +11 -11
- package/dist/stream/index.js +2 -2
- package/dist/stream/types.d.ts +9 -2
- package/dist/stream/types.d.ts.map +1 -1
- package/dist/test-utils/llm-mock.cjs +36 -2
- package/dist/test-utils/llm-mock.cjs.map +1 -1
- package/dist/test-utils/llm-mock.d.ts +3 -0
- package/dist/test-utils/llm-mock.d.ts.map +1 -1
- package/dist/test-utils/llm-mock.js +32 -2
- 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 +2 -1
- 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.d.ts +19 -6
- package/dist/tools/tool.d.ts.map +1 -1
- package/dist/tools/types.d.ts +28 -3
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/tools/validation.d.ts +14 -2
- 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/utils.cjs +22 -22
- package/dist/utils.d.ts +2 -2
- 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/index.cjs +6 -6
- package/dist/voice/index.js +1 -1
- package/dist/workflows/default.d.ts +176 -281
- package/dist/workflows/default.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/execution-engine.d.ts +4 -2
- package/dist/workflows/execution-engine.d.ts.map +1 -1
- package/dist/workflows/handlers/control-flow.d.ts +135 -0
- package/dist/workflows/handlers/control-flow.d.ts.map +1 -0
- package/dist/workflows/handlers/entry.d.ts +45 -0
- package/dist/workflows/handlers/entry.d.ts.map +1 -0
- package/dist/workflows/handlers/sleep.d.ts +62 -0
- package/dist/workflows/handlers/sleep.d.ts.map +1 -0
- package/dist/workflows/handlers/step.d.ts +60 -0
- package/dist/workflows/handlers/step.d.ts.map +1 -0
- package/dist/workflows/index.cjs +23 -19
- package/dist/workflows/index.js +1 -1
- package/dist/workflows/step.d.ts +1 -0
- package/dist/workflows/step.d.ts.map +1 -1
- package/dist/workflows/types.d.ts +159 -5
- package/dist/workflows/types.d.ts.map +1 -1
- package/dist/workflows/utils.d.ts +7 -0
- package/dist/workflows/utils.d.ts.map +1 -1
- package/dist/workflows/workflow.d.ts +12 -8
- package/dist/workflows/workflow.d.ts.map +1 -1
- package/package.json +12 -10
- package/src/llm/model/provider-types.generated.d.ts +245 -12
- package/dist/chunk-2NVBZKZI.cjs.map +0 -1
- package/dist/chunk-2OTDXX73.js.map +0 -1
- package/dist/chunk-3PSWNGBF.js +0 -3
- package/dist/chunk-3PSWNGBF.js.map +0 -1
- package/dist/chunk-3RW5EMSB.js.map +0 -1
- package/dist/chunk-3W5RQCCY.cjs +0 -440
- package/dist/chunk-3W5RQCCY.cjs.map +0 -1
- package/dist/chunk-436FFEF6.js +0 -34
- package/dist/chunk-436FFEF6.js.map +0 -1
- package/dist/chunk-4IKJAKCD.cjs.map +0 -1
- package/dist/chunk-4RXG622P.cjs.map +0 -1
- package/dist/chunk-5WXEYDFI.cjs.map +0 -1
- package/dist/chunk-CYVNOIXS.cjs.map +0 -1
- package/dist/chunk-D6EDHNGV.js.map +0 -1
- package/dist/chunk-DSNPWVIG.cjs.map +0 -1
- package/dist/chunk-E7K4FTLN.cjs.map +0 -1
- package/dist/chunk-FVNT7VTO.js.map +0 -1
- package/dist/chunk-GRBGQ2GE.js.map +0 -1
- package/dist/chunk-HBJPYQRN.cjs.map +0 -1
- package/dist/chunk-HGNRQ3OG.js.map +0 -1
- package/dist/chunk-IHJDOC3A.js.map +0 -1
- package/dist/chunk-IWB65P37.cjs.map +0 -1
- package/dist/chunk-IWQDBVJK.js.map +0 -1
- package/dist/chunk-J7O6WENZ.cjs.map +0 -1
- package/dist/chunk-JXESKY4A.js.map +0 -1
- package/dist/chunk-KEURQGCQ.js.map +0 -1
- package/dist/chunk-KIZIOFZC.js.map +0 -1
- package/dist/chunk-KJ2SW6VA.js.map +0 -1
- package/dist/chunk-LRSB62Z6.cjs.map +0 -1
- package/dist/chunk-MDKPL2R2.js.map +0 -1
- package/dist/chunk-O6NA3Z43.cjs.map +0 -1
- package/dist/chunk-PE3V7GUL.cjs +0 -4
- package/dist/chunk-PE3V7GUL.cjs.map +0 -1
- package/dist/chunk-RXDJL5QT.js.map +0 -1
- package/dist/chunk-S6OEQHEI.cjs.map +0 -1
- package/dist/chunk-TQTAMPSC.js.map +0 -1
- package/dist/chunk-U7VECK2G.js.map +0 -1
- package/dist/chunk-V3VLOOSW.cjs +0 -36
- package/dist/chunk-V3VLOOSW.cjs.map +0 -1
- package/dist/chunk-VSM3NLUX.cjs.map +0 -1
- package/dist/chunk-VZC4BWWH.cjs.map +0 -1
- package/dist/chunk-W3DD3XP5.js.map +0 -1
- package/dist/chunk-WQSGX6XA.cjs.map +0 -1
- package/dist/chunk-WTYNK7Q4.js.map +0 -1
- package/dist/chunk-XXBWX7DT.js.map +0 -1
- package/dist/chunk-Y63IFHEZ.cjs.map +0 -1
- package/dist/chunk-ZCVTH3CH.cjs.map +0 -1
- package/dist/models-dev-6PRLJKVZ.js +0 -3
- package/dist/models-dev-WHMI5G6Y.cjs +0 -12
- package/dist/netlify-46I3SNNV.cjs +0 -12
- package/dist/netlify-EBQ6YUC6.js +0 -3
- package/dist/provider-registry-HDG6UMUC.js +0 -3
- package/dist/provider-registry-RP2W4B24.cjs +0 -40
- package/dist/registry-generator-JPCV47SC.cjs.map +0 -1
- package/dist/registry-generator-XD4FPZTU.js.map +0 -1
|
@@ -208,14 +208,137 @@ function convertImageFilePart(part, downloadedAssets) {
|
|
|
208
208
|
}
|
|
209
209
|
}
|
|
210
210
|
}
|
|
211
|
+
z.union([
|
|
212
|
+
z.string(),
|
|
213
|
+
z.instanceof(Uint8Array),
|
|
214
|
+
z.instanceof(ArrayBuffer),
|
|
215
|
+
z.custom(
|
|
216
|
+
// Buffer might not be available in some environments such as CloudFlare:
|
|
217
|
+
(value) => globalThis.Buffer?.isBuffer(value) ?? false,
|
|
218
|
+
{ message: "Must be a Buffer" }
|
|
219
|
+
)
|
|
220
|
+
]);
|
|
221
|
+
function convertDataContentToBase64String(content) {
|
|
222
|
+
if (typeof content === "string") {
|
|
223
|
+
return content;
|
|
224
|
+
}
|
|
225
|
+
if (content instanceof ArrayBuffer) {
|
|
226
|
+
return convertUint8ArrayToBase64$1(new Uint8Array(content));
|
|
227
|
+
}
|
|
228
|
+
return convertUint8ArrayToBase64$1(content);
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
// src/agent/message-list/prompt/image-utils.ts
|
|
232
|
+
function parseDataUri(dataUri) {
|
|
233
|
+
if (!dataUri.startsWith("data:")) {
|
|
234
|
+
return {
|
|
235
|
+
isDataUri: false,
|
|
236
|
+
base64Content: dataUri
|
|
237
|
+
};
|
|
238
|
+
}
|
|
239
|
+
const base64Index = dataUri.indexOf(",");
|
|
240
|
+
if (base64Index === -1) {
|
|
241
|
+
return {
|
|
242
|
+
isDataUri: true,
|
|
243
|
+
base64Content: dataUri
|
|
244
|
+
};
|
|
245
|
+
}
|
|
246
|
+
const header = dataUri.substring(5, base64Index);
|
|
247
|
+
const base64Content = dataUri.substring(base64Index + 1);
|
|
248
|
+
const semicolonIndex = header.indexOf(";");
|
|
249
|
+
const mimeType = semicolonIndex !== -1 ? header.substring(0, semicolonIndex) : header;
|
|
250
|
+
return {
|
|
251
|
+
isDataUri: true,
|
|
252
|
+
mimeType: mimeType || void 0,
|
|
253
|
+
base64Content
|
|
254
|
+
};
|
|
255
|
+
}
|
|
256
|
+
function createDataUri(base64Content, mimeType = "application/octet-stream") {
|
|
257
|
+
if (base64Content.startsWith("data:")) {
|
|
258
|
+
return base64Content;
|
|
259
|
+
}
|
|
260
|
+
return `data:${mimeType};base64,${base64Content}`;
|
|
261
|
+
}
|
|
262
|
+
function imageContentToString(image, fallbackMimeType) {
|
|
263
|
+
if (typeof image === "string") {
|
|
264
|
+
return image;
|
|
265
|
+
}
|
|
266
|
+
if (image instanceof URL) {
|
|
267
|
+
return image.toString();
|
|
268
|
+
}
|
|
269
|
+
if (image instanceof Uint8Array || image instanceof ArrayBuffer || globalThis.Buffer && Buffer.isBuffer(image)) {
|
|
270
|
+
const base64 = convertDataContentToBase64String(image);
|
|
271
|
+
return base64;
|
|
272
|
+
}
|
|
273
|
+
return String(image);
|
|
274
|
+
}
|
|
275
|
+
function getImageCacheKey(image) {
|
|
276
|
+
if (image instanceof URL) {
|
|
277
|
+
return image.toString();
|
|
278
|
+
}
|
|
279
|
+
if (typeof image === "string") {
|
|
280
|
+
return image.length;
|
|
281
|
+
}
|
|
282
|
+
if (image instanceof Uint8Array) {
|
|
283
|
+
return image.byteLength;
|
|
284
|
+
}
|
|
285
|
+
if (image instanceof ArrayBuffer) {
|
|
286
|
+
return image.byteLength;
|
|
287
|
+
}
|
|
288
|
+
return image;
|
|
289
|
+
}
|
|
290
|
+
function isValidUrl(str) {
|
|
291
|
+
try {
|
|
292
|
+
new URL(str);
|
|
293
|
+
return true;
|
|
294
|
+
} catch {
|
|
295
|
+
if (str.startsWith("//")) {
|
|
296
|
+
try {
|
|
297
|
+
new URL(`https:${str}`);
|
|
298
|
+
return true;
|
|
299
|
+
} catch {
|
|
300
|
+
return false;
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
return false;
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
function categorizeFileData(data, fallbackMimeType) {
|
|
307
|
+
const parsed = parseDataUri(data);
|
|
308
|
+
const mimeType = parsed.isDataUri && parsed.mimeType ? parsed.mimeType : fallbackMimeType;
|
|
309
|
+
if (parsed.isDataUri) {
|
|
310
|
+
return {
|
|
311
|
+
type: "dataUri",
|
|
312
|
+
mimeType,
|
|
313
|
+
data
|
|
314
|
+
};
|
|
315
|
+
}
|
|
316
|
+
if (isValidUrl(data)) {
|
|
317
|
+
return {
|
|
318
|
+
type: "url",
|
|
319
|
+
mimeType,
|
|
320
|
+
data
|
|
321
|
+
};
|
|
322
|
+
}
|
|
323
|
+
return {
|
|
324
|
+
type: "raw",
|
|
325
|
+
mimeType,
|
|
326
|
+
data
|
|
327
|
+
};
|
|
328
|
+
}
|
|
211
329
|
|
|
212
330
|
// src/agent/message-list/prompt/attachments-to-parts.ts
|
|
213
331
|
function attachmentsToParts(attachments) {
|
|
214
332
|
const parts = [];
|
|
215
333
|
for (const attachment of attachments) {
|
|
334
|
+
const categorized = categorizeFileData(attachment.url, attachment.contentType);
|
|
335
|
+
let urlString = attachment.url;
|
|
336
|
+
if (categorized.type === "raw") {
|
|
337
|
+
urlString = createDataUri(attachment.url, attachment.contentType || "application/octet-stream");
|
|
338
|
+
}
|
|
216
339
|
let url;
|
|
217
340
|
try {
|
|
218
|
-
url = new URL(
|
|
341
|
+
url = new URL(urlString);
|
|
219
342
|
} catch {
|
|
220
343
|
throw new Error(`Invalid URL: ${attachment.url}`);
|
|
221
344
|
}
|
|
@@ -240,13 +363,13 @@ function attachmentsToParts(attachments) {
|
|
|
240
363
|
if (attachment.contentType?.startsWith("image/")) {
|
|
241
364
|
parts.push({
|
|
242
365
|
type: "image",
|
|
243
|
-
image:
|
|
366
|
+
image: urlString,
|
|
244
367
|
mimeType: attachment.contentType
|
|
245
368
|
});
|
|
246
369
|
} else if (attachment.contentType?.startsWith("text/")) {
|
|
247
370
|
parts.push({
|
|
248
371
|
type: "file",
|
|
249
|
-
data:
|
|
372
|
+
data: urlString,
|
|
250
373
|
mimeType: attachment.contentType
|
|
251
374
|
});
|
|
252
375
|
} else {
|
|
@@ -255,7 +378,7 @@ function attachmentsToParts(attachments) {
|
|
|
255
378
|
}
|
|
256
379
|
parts.push({
|
|
257
380
|
type: "file",
|
|
258
|
-
data:
|
|
381
|
+
data: urlString,
|
|
259
382
|
mimeType: attachment.contentType
|
|
260
383
|
});
|
|
261
384
|
}
|
|
@@ -566,25 +689,6 @@ function convertToV1Messages(messages) {
|
|
|
566
689
|
}
|
|
567
690
|
return v1Messages;
|
|
568
691
|
}
|
|
569
|
-
z.union([
|
|
570
|
-
z.string(),
|
|
571
|
-
z.instanceof(Uint8Array),
|
|
572
|
-
z.instanceof(ArrayBuffer),
|
|
573
|
-
z.custom(
|
|
574
|
-
// Buffer might not be available in some environments such as CloudFlare:
|
|
575
|
-
(value) => globalThis.Buffer?.isBuffer(value) ?? false,
|
|
576
|
-
{ message: "Must be a Buffer" }
|
|
577
|
-
)
|
|
578
|
-
]);
|
|
579
|
-
function convertDataContentToBase64String(content) {
|
|
580
|
-
if (typeof content === "string") {
|
|
581
|
-
return content;
|
|
582
|
-
}
|
|
583
|
-
if (content instanceof ArrayBuffer) {
|
|
584
|
-
return convertUint8ArrayToBase64$1(new Uint8Array(content));
|
|
585
|
-
}
|
|
586
|
-
return convertUint8ArrayToBase64$1(content);
|
|
587
|
-
}
|
|
588
692
|
|
|
589
693
|
// src/utils/fetchWithRetry.ts
|
|
590
694
|
async function fetchWithRetry(url, options = {}, maxRetries = 3) {
|
|
@@ -706,105 +810,6 @@ async function downloadAssetsFromMessages({
|
|
|
706
810
|
return Object.fromEntries(downloadFileList);
|
|
707
811
|
}
|
|
708
812
|
|
|
709
|
-
// src/agent/message-list/prompt/image-utils.ts
|
|
710
|
-
function parseDataUri(dataUri) {
|
|
711
|
-
if (!dataUri.startsWith("data:")) {
|
|
712
|
-
return {
|
|
713
|
-
isDataUri: false,
|
|
714
|
-
base64Content: dataUri
|
|
715
|
-
};
|
|
716
|
-
}
|
|
717
|
-
const base64Index = dataUri.indexOf(",");
|
|
718
|
-
if (base64Index === -1) {
|
|
719
|
-
return {
|
|
720
|
-
isDataUri: true,
|
|
721
|
-
base64Content: dataUri
|
|
722
|
-
};
|
|
723
|
-
}
|
|
724
|
-
const header = dataUri.substring(5, base64Index);
|
|
725
|
-
const base64Content = dataUri.substring(base64Index + 1);
|
|
726
|
-
const semicolonIndex = header.indexOf(";");
|
|
727
|
-
const mimeType = semicolonIndex !== -1 ? header.substring(0, semicolonIndex) : header;
|
|
728
|
-
return {
|
|
729
|
-
isDataUri: true,
|
|
730
|
-
mimeType: mimeType || void 0,
|
|
731
|
-
base64Content
|
|
732
|
-
};
|
|
733
|
-
}
|
|
734
|
-
function createDataUri(base64Content, mimeType = "application/octet-stream") {
|
|
735
|
-
if (base64Content.startsWith("data:")) {
|
|
736
|
-
return base64Content;
|
|
737
|
-
}
|
|
738
|
-
return `data:${mimeType};base64,${base64Content}`;
|
|
739
|
-
}
|
|
740
|
-
function imageContentToString(image, fallbackMimeType) {
|
|
741
|
-
if (typeof image === "string") {
|
|
742
|
-
return image;
|
|
743
|
-
}
|
|
744
|
-
if (image instanceof URL) {
|
|
745
|
-
return image.toString();
|
|
746
|
-
}
|
|
747
|
-
if (image instanceof Uint8Array || image instanceof ArrayBuffer || globalThis.Buffer && Buffer.isBuffer(image)) {
|
|
748
|
-
const base64 = convertDataContentToBase64String(image);
|
|
749
|
-
return base64;
|
|
750
|
-
}
|
|
751
|
-
return String(image);
|
|
752
|
-
}
|
|
753
|
-
function getImageCacheKey(image) {
|
|
754
|
-
if (image instanceof URL) {
|
|
755
|
-
return image.toString();
|
|
756
|
-
}
|
|
757
|
-
if (typeof image === "string") {
|
|
758
|
-
return image.length;
|
|
759
|
-
}
|
|
760
|
-
if (image instanceof Uint8Array) {
|
|
761
|
-
return image.byteLength;
|
|
762
|
-
}
|
|
763
|
-
if (image instanceof ArrayBuffer) {
|
|
764
|
-
return image.byteLength;
|
|
765
|
-
}
|
|
766
|
-
return image;
|
|
767
|
-
}
|
|
768
|
-
function isValidUrl(str) {
|
|
769
|
-
try {
|
|
770
|
-
new URL(str);
|
|
771
|
-
return true;
|
|
772
|
-
} catch {
|
|
773
|
-
if (str.startsWith("//")) {
|
|
774
|
-
try {
|
|
775
|
-
new URL(`https:${str}`);
|
|
776
|
-
return true;
|
|
777
|
-
} catch {
|
|
778
|
-
return false;
|
|
779
|
-
}
|
|
780
|
-
}
|
|
781
|
-
return false;
|
|
782
|
-
}
|
|
783
|
-
}
|
|
784
|
-
function categorizeFileData(data, fallbackMimeType) {
|
|
785
|
-
const parsed = parseDataUri(data);
|
|
786
|
-
const mimeType = parsed.isDataUri && parsed.mimeType ? parsed.mimeType : fallbackMimeType;
|
|
787
|
-
if (parsed.isDataUri) {
|
|
788
|
-
return {
|
|
789
|
-
type: "dataUri",
|
|
790
|
-
mimeType,
|
|
791
|
-
data
|
|
792
|
-
};
|
|
793
|
-
}
|
|
794
|
-
if (isValidUrl(data)) {
|
|
795
|
-
return {
|
|
796
|
-
type: "url",
|
|
797
|
-
mimeType,
|
|
798
|
-
data
|
|
799
|
-
};
|
|
800
|
-
}
|
|
801
|
-
return {
|
|
802
|
-
type: "raw",
|
|
803
|
-
mimeType,
|
|
804
|
-
data
|
|
805
|
-
};
|
|
806
|
-
}
|
|
807
|
-
|
|
808
813
|
// src/agent/message-list/utils/ai-v5/gemini-compatibility.ts
|
|
809
814
|
function ensureGeminiCompatibleMessages(messages) {
|
|
810
815
|
const result = [...messages];
|
|
@@ -890,6 +895,9 @@ var MessageList = class _MessageList {
|
|
|
890
895
|
userContextMessagesPersisted = /* @__PURE__ */ new Set();
|
|
891
896
|
generateMessageId;
|
|
892
897
|
_agentNetworkAppend = false;
|
|
898
|
+
// Event recording for observability
|
|
899
|
+
isRecording = false;
|
|
900
|
+
recordedEvents = [];
|
|
893
901
|
constructor({
|
|
894
902
|
threadId,
|
|
895
903
|
resourceId,
|
|
@@ -903,10 +911,34 @@ var MessageList = class _MessageList {
|
|
|
903
911
|
this.generateMessageId = generateMessageId;
|
|
904
912
|
this._agentNetworkAppend = _agentNetworkAppend || false;
|
|
905
913
|
}
|
|
914
|
+
/**
|
|
915
|
+
* Start recording mutations to the MessageList for observability/tracing
|
|
916
|
+
*/
|
|
917
|
+
startRecording() {
|
|
918
|
+
this.isRecording = true;
|
|
919
|
+
this.recordedEvents = [];
|
|
920
|
+
}
|
|
921
|
+
/**
|
|
922
|
+
* Stop recording and return the list of recorded events
|
|
923
|
+
*/
|
|
924
|
+
stopRecording() {
|
|
925
|
+
this.isRecording = false;
|
|
926
|
+
const events = [...this.recordedEvents];
|
|
927
|
+
this.recordedEvents = [];
|
|
928
|
+
return events;
|
|
929
|
+
}
|
|
906
930
|
add(messages, messageSource) {
|
|
907
931
|
if (messageSource === `user`) messageSource = `input`;
|
|
908
932
|
if (!messages) return this;
|
|
909
|
-
|
|
933
|
+
const messageArray = Array.isArray(messages) ? messages : [messages];
|
|
934
|
+
if (this.isRecording) {
|
|
935
|
+
this.recordedEvents.push({
|
|
936
|
+
type: "add",
|
|
937
|
+
source: messageSource,
|
|
938
|
+
count: messageArray.length
|
|
939
|
+
});
|
|
940
|
+
}
|
|
941
|
+
for (const message of messageArray) {
|
|
910
942
|
this.addOne(
|
|
911
943
|
typeof message === `string` ? {
|
|
912
944
|
role: "user",
|
|
@@ -968,6 +1000,22 @@ var MessageList = class _MessageList {
|
|
|
968
1000
|
this.userContextMessagesPersisted = this.deserializeSet(state.userContextMessagesPersisted);
|
|
969
1001
|
return this;
|
|
970
1002
|
}
|
|
1003
|
+
makeMessageSourceChecker() {
|
|
1004
|
+
const sources = {
|
|
1005
|
+
memory: new Set(Array.from(this.memoryMessages.values()).map((m) => m.id)),
|
|
1006
|
+
output: new Set(Array.from(this.newResponseMessages.values()).map((m) => m.id)),
|
|
1007
|
+
input: new Set(Array.from(this.newUserMessages.values()).map((m) => m.id))
|
|
1008
|
+
};
|
|
1009
|
+
return {
|
|
1010
|
+
...sources,
|
|
1011
|
+
getSource: (msg) => {
|
|
1012
|
+
if (sources.memory.has(msg.id)) return "memory";
|
|
1013
|
+
if (sources.input.has(msg.id)) return "input";
|
|
1014
|
+
if (sources.output.has(msg.id)) return "response";
|
|
1015
|
+
return null;
|
|
1016
|
+
}
|
|
1017
|
+
};
|
|
1018
|
+
}
|
|
971
1019
|
getLatestUserContent() {
|
|
972
1020
|
const currentUserMessages = this.all.core().filter((m) => m.role === "user");
|
|
973
1021
|
const content = currentUserMessages.at(-1)?.content;
|
|
@@ -992,11 +1040,34 @@ var MessageList = class _MessageList {
|
|
|
992
1040
|
}
|
|
993
1041
|
get clear() {
|
|
994
1042
|
return {
|
|
1043
|
+
all: {
|
|
1044
|
+
db: () => {
|
|
1045
|
+
const allMessages = [...this.messages];
|
|
1046
|
+
this.messages = [];
|
|
1047
|
+
this.newUserMessages.clear();
|
|
1048
|
+
this.newResponseMessages.clear();
|
|
1049
|
+
this.userContextMessages.clear();
|
|
1050
|
+
if (this.isRecording && allMessages.length > 0) {
|
|
1051
|
+
this.recordedEvents.push({
|
|
1052
|
+
type: "clear",
|
|
1053
|
+
count: allMessages.length
|
|
1054
|
+
});
|
|
1055
|
+
}
|
|
1056
|
+
return allMessages;
|
|
1057
|
+
}
|
|
1058
|
+
},
|
|
995
1059
|
input: {
|
|
996
1060
|
db: () => {
|
|
997
1061
|
const userMessages = Array.from(this.newUserMessages);
|
|
998
1062
|
this.messages = this.messages.filter((m) => !this.newUserMessages.has(m));
|
|
999
1063
|
this.newUserMessages.clear();
|
|
1064
|
+
if (this.isRecording && userMessages.length > 0) {
|
|
1065
|
+
this.recordedEvents.push({
|
|
1066
|
+
type: "clear",
|
|
1067
|
+
source: "input",
|
|
1068
|
+
count: userMessages.length
|
|
1069
|
+
});
|
|
1070
|
+
}
|
|
1000
1071
|
return userMessages;
|
|
1001
1072
|
}
|
|
1002
1073
|
},
|
|
@@ -1005,11 +1076,46 @@ var MessageList = class _MessageList {
|
|
|
1005
1076
|
const responseMessages = Array.from(this.newResponseMessages);
|
|
1006
1077
|
this.messages = this.messages.filter((m) => !this.newResponseMessages.has(m));
|
|
1007
1078
|
this.newResponseMessages.clear();
|
|
1079
|
+
if (this.isRecording && responseMessages.length > 0) {
|
|
1080
|
+
this.recordedEvents.push({
|
|
1081
|
+
type: "clear",
|
|
1082
|
+
source: "response",
|
|
1083
|
+
count: responseMessages.length
|
|
1084
|
+
});
|
|
1085
|
+
}
|
|
1008
1086
|
return responseMessages;
|
|
1009
1087
|
}
|
|
1010
1088
|
}
|
|
1011
1089
|
};
|
|
1012
1090
|
}
|
|
1091
|
+
/**
|
|
1092
|
+
* Remove messages by ID
|
|
1093
|
+
* @param ids - Array of message IDs to remove
|
|
1094
|
+
* @returns Array of removed messages
|
|
1095
|
+
*/
|
|
1096
|
+
removeByIds(ids) {
|
|
1097
|
+
const idsSet = new Set(ids);
|
|
1098
|
+
const removed = [];
|
|
1099
|
+
this.messages = this.messages.filter((m) => {
|
|
1100
|
+
if (idsSet.has(m.id)) {
|
|
1101
|
+
removed.push(m);
|
|
1102
|
+
this.memoryMessages.delete(m);
|
|
1103
|
+
this.newUserMessages.delete(m);
|
|
1104
|
+
this.newResponseMessages.delete(m);
|
|
1105
|
+
this.userContextMessages.delete(m);
|
|
1106
|
+
return false;
|
|
1107
|
+
}
|
|
1108
|
+
return true;
|
|
1109
|
+
});
|
|
1110
|
+
if (this.isRecording && removed.length > 0) {
|
|
1111
|
+
this.recordedEvents.push({
|
|
1112
|
+
type: "removeByIds",
|
|
1113
|
+
ids,
|
|
1114
|
+
count: removed.length
|
|
1115
|
+
});
|
|
1116
|
+
}
|
|
1117
|
+
return removed;
|
|
1118
|
+
}
|
|
1013
1119
|
all = {
|
|
1014
1120
|
db: () => this.messages,
|
|
1015
1121
|
v1: () => convertToV1Messages(this.all.db()),
|
|
@@ -1313,12 +1419,47 @@ var MessageList = class _MessageList {
|
|
|
1313
1419
|
if (unsavedMessages.length === 0) return void 0;
|
|
1314
1420
|
return Math.min(...unsavedMessages.map((m) => new Date(m.createdAt).getTime()));
|
|
1315
1421
|
}
|
|
1422
|
+
/**
|
|
1423
|
+
* Check if a message is a new user or response message that should be saved.
|
|
1424
|
+
* Checks by message ID to handle cases where the message object may be a copy.
|
|
1425
|
+
*/
|
|
1426
|
+
isNewMessage(messageOrId) {
|
|
1427
|
+
const id = typeof messageOrId === "string" ? messageOrId : messageOrId.id;
|
|
1428
|
+
if (typeof messageOrId !== "string") {
|
|
1429
|
+
if (this.newUserMessages.has(messageOrId) || this.newResponseMessages.has(messageOrId)) {
|
|
1430
|
+
return true;
|
|
1431
|
+
}
|
|
1432
|
+
}
|
|
1433
|
+
return Array.from(this.newUserMessages).some((m) => m.id === id) || Array.from(this.newResponseMessages).some((m) => m.id === id);
|
|
1434
|
+
}
|
|
1316
1435
|
getSystemMessages(tag) {
|
|
1317
1436
|
if (tag) {
|
|
1318
1437
|
return this.taggedSystemMessages[tag] || [];
|
|
1319
1438
|
}
|
|
1320
1439
|
return this.systemMessages;
|
|
1321
1440
|
}
|
|
1441
|
+
/**
|
|
1442
|
+
* Get all system messages (both tagged and untagged)
|
|
1443
|
+
* @returns Array of all system messages
|
|
1444
|
+
*/
|
|
1445
|
+
getAllSystemMessages() {
|
|
1446
|
+
return [...this.systemMessages, ...Object.values(this.taggedSystemMessages).flat()];
|
|
1447
|
+
}
|
|
1448
|
+
/**
|
|
1449
|
+
* Replace all system messages with new ones
|
|
1450
|
+
* This clears both tagged and untagged system messages and replaces them with the provided array
|
|
1451
|
+
* @param messages - Array of system messages to set
|
|
1452
|
+
*/
|
|
1453
|
+
replaceAllSystemMessages(messages) {
|
|
1454
|
+
this.systemMessages = [];
|
|
1455
|
+
this.taggedSystemMessages = {};
|
|
1456
|
+
for (const message of messages) {
|
|
1457
|
+
if (message.role === "system") {
|
|
1458
|
+
this.systemMessages.push(message);
|
|
1459
|
+
}
|
|
1460
|
+
}
|
|
1461
|
+
return this;
|
|
1462
|
+
}
|
|
1322
1463
|
addSystem(messages, tag) {
|
|
1323
1464
|
if (!messages) return this;
|
|
1324
1465
|
for (const message of Array.isArray(messages) ? messages : [messages]) {
|
|
@@ -1377,8 +1518,21 @@ var MessageList = class _MessageList {
|
|
|
1377
1518
|
if (tag && !this.isDuplicateSystem(coreMessage, tag)) {
|
|
1378
1519
|
this.taggedSystemMessages[tag] ||= [];
|
|
1379
1520
|
this.taggedSystemMessages[tag].push(coreMessage);
|
|
1521
|
+
if (this.isRecording) {
|
|
1522
|
+
this.recordedEvents.push({
|
|
1523
|
+
type: "addSystem",
|
|
1524
|
+
tag,
|
|
1525
|
+
message: coreMessage
|
|
1526
|
+
});
|
|
1527
|
+
}
|
|
1380
1528
|
} else if (!tag && !this.isDuplicateSystem(coreMessage)) {
|
|
1381
1529
|
this.systemMessages.push(coreMessage);
|
|
1530
|
+
if (this.isRecording) {
|
|
1531
|
+
this.recordedEvents.push({
|
|
1532
|
+
type: "addSystem",
|
|
1533
|
+
message: coreMessage
|
|
1534
|
+
});
|
|
1535
|
+
}
|
|
1382
1536
|
}
|
|
1383
1537
|
}
|
|
1384
1538
|
isDuplicateSystem(message, tag) {
|
|
@@ -1404,9 +1558,20 @@ var MessageList = class _MessageList {
|
|
|
1404
1558
|
if (m.content.parts.length) {
|
|
1405
1559
|
for (const part of m.content.parts) {
|
|
1406
1560
|
if (part.type === `file`) {
|
|
1561
|
+
let normalizedUrl;
|
|
1562
|
+
if (typeof part.data === "string") {
|
|
1563
|
+
const categorized = categorizeFileData(part.data, part.mimeType);
|
|
1564
|
+
if (categorized.type === "raw") {
|
|
1565
|
+
normalizedUrl = createDataUri(part.data, part.mimeType || "application/octet-stream");
|
|
1566
|
+
} else {
|
|
1567
|
+
normalizedUrl = part.data;
|
|
1568
|
+
}
|
|
1569
|
+
} else {
|
|
1570
|
+
normalizedUrl = part.data;
|
|
1571
|
+
}
|
|
1407
1572
|
experimentalAttachments.push({
|
|
1408
1573
|
contentType: part.mimeType,
|
|
1409
|
-
url:
|
|
1574
|
+
url: normalizedUrl
|
|
1410
1575
|
});
|
|
1411
1576
|
} else if (part.type === "tool-invocation" && (part.toolInvocation.state === "call" || part.toolInvocation.state === "partial-call")) {
|
|
1412
1577
|
continue;
|
|
@@ -1647,6 +1812,9 @@ var MessageList = class _MessageList {
|
|
|
1647
1812
|
} else if (messageSource === `response`) {
|
|
1648
1813
|
this.newResponseMessages.add(messageV2);
|
|
1649
1814
|
this.newResponseMessagesPersisted.add(messageV2);
|
|
1815
|
+
if (this.newUserMessages.has(messageV2)) {
|
|
1816
|
+
this.newUserMessages.delete(messageV2);
|
|
1817
|
+
}
|
|
1650
1818
|
} else if (messageSource === `input`) {
|
|
1651
1819
|
this.newUserMessages.add(messageV2);
|
|
1652
1820
|
this.newUserMessagesPersisted.add(messageV2);
|
|
@@ -1775,8 +1943,10 @@ var MessageList = class _MessageList {
|
|
|
1775
1943
|
}
|
|
1776
1944
|
if (_MessageList.isAIV5CoreMessage(message)) {
|
|
1777
1945
|
const dbMsg = _MessageList.aiV5ModelMessageToMastraDBMessage(message, messageSource);
|
|
1946
|
+
const rawCreatedAt = "metadata" in message && message.metadata && typeof message.metadata === "object" && "createdAt" in message.metadata ? message.metadata.createdAt : void 0;
|
|
1778
1947
|
const result = {
|
|
1779
1948
|
...dbMsg,
|
|
1949
|
+
createdAt: this.generateCreatedAt(messageSource, rawCreatedAt),
|
|
1780
1950
|
threadId: this.memoryInfo?.threadId,
|
|
1781
1951
|
resourceId: this.memoryInfo?.resourceId
|
|
1782
1952
|
};
|
|
@@ -1784,8 +1954,10 @@ var MessageList = class _MessageList {
|
|
|
1784
1954
|
}
|
|
1785
1955
|
if (_MessageList.isAIV5UIMessage(message)) {
|
|
1786
1956
|
const dbMsg = _MessageList.aiV5UIMessageToMastraDBMessage(message);
|
|
1957
|
+
const rawCreatedAt = "createdAt" in message ? message.createdAt : void 0;
|
|
1787
1958
|
return {
|
|
1788
1959
|
...dbMsg,
|
|
1960
|
+
createdAt: this.generateCreatedAt(messageSource, rawCreatedAt),
|
|
1789
1961
|
threadId: this.memoryInfo?.threadId,
|
|
1790
1962
|
resourceId: this.memoryInfo?.resourceId
|
|
1791
1963
|
};
|
|
@@ -1795,16 +1967,16 @@ var MessageList = class _MessageList {
|
|
|
1795
1967
|
lastCreatedAt;
|
|
1796
1968
|
// this makes sure messages added in order will always have a date atleast 1ms apart.
|
|
1797
1969
|
generateCreatedAt(messageSource, start) {
|
|
1798
|
-
|
|
1799
|
-
if (
|
|
1800
|
-
this.lastCreatedAt =
|
|
1801
|
-
return
|
|
1970
|
+
const startDate = start instanceof Date ? start : typeof start === "string" || typeof start === "number" ? new Date(start) : void 0;
|
|
1971
|
+
if (startDate && !this.lastCreatedAt) {
|
|
1972
|
+
this.lastCreatedAt = startDate.getTime();
|
|
1973
|
+
return startDate;
|
|
1802
1974
|
}
|
|
1803
|
-
if (
|
|
1804
|
-
return
|
|
1975
|
+
if (startDate && messageSource === `memory`) {
|
|
1976
|
+
return startDate;
|
|
1805
1977
|
}
|
|
1806
1978
|
const now = /* @__PURE__ */ new Date();
|
|
1807
|
-
const nowTime =
|
|
1979
|
+
const nowTime = startDate?.getTime() || now.getTime();
|
|
1808
1980
|
const lastTime = this.messages.reduce((p, m) => {
|
|
1809
1981
|
if (m.createdAt.getTime() > p) return m.createdAt.getTime();
|
|
1810
1982
|
return p;
|
|
@@ -2088,10 +2260,14 @@ var MessageList = class _MessageList {
|
|
|
2088
2260
|
if (coreMessage.providerOptions) {
|
|
2089
2261
|
content.providerMetadata = coreMessage.providerOptions;
|
|
2090
2262
|
}
|
|
2263
|
+
if ("metadata" in coreMessage && coreMessage.metadata !== null && coreMessage.metadata !== void 0) {
|
|
2264
|
+
content.metadata = coreMessage.metadata;
|
|
2265
|
+
}
|
|
2266
|
+
const rawCreatedAt = "metadata" in coreMessage && coreMessage.metadata && typeof coreMessage.metadata === "object" && "createdAt" in coreMessage.metadata ? coreMessage.metadata.createdAt : void 0;
|
|
2091
2267
|
return {
|
|
2092
2268
|
id,
|
|
2093
2269
|
role: _MessageList.getRole(coreMessage),
|
|
2094
|
-
createdAt: this.generateCreatedAt(messageSource),
|
|
2270
|
+
createdAt: this.generateCreatedAt(messageSource, rawCreatedAt),
|
|
2095
2271
|
threadId: this.memoryInfo?.threadId,
|
|
2096
2272
|
resourceId: this.memoryInfo?.resourceId,
|
|
2097
2273
|
content
|
|
@@ -2144,6 +2320,11 @@ var MessageList = class _MessageList {
|
|
|
2144
2320
|
}
|
|
2145
2321
|
return prev;
|
|
2146
2322
|
}, 0);
|
|
2323
|
+
const partAny = part;
|
|
2324
|
+
if (partAny && Object.hasOwn(partAny, "providerMetadata") && partAny.providerMetadata && Object.hasOwn(partAny.providerMetadata, "openai") && partAny.providerMetadata.openai && Object.hasOwn(partAny.providerMetadata.openai, "itemId")) {
|
|
2325
|
+
const itemId = partAny.providerMetadata.openai.itemId;
|
|
2326
|
+
key += `|${itemId}`;
|
|
2327
|
+
}
|
|
2147
2328
|
}
|
|
2148
2329
|
if (part.type === `file`) {
|
|
2149
2330
|
key += part.data;
|
|
@@ -2290,9 +2471,23 @@ var MessageList = class _MessageList {
|
|
|
2290
2471
|
if (role === `tool` || role === `assistant`) {
|
|
2291
2472
|
throw new Error(incompatibleMessage);
|
|
2292
2473
|
}
|
|
2474
|
+
let processedImage;
|
|
2475
|
+
if (part.image instanceof URL || part.image instanceof Uint8Array) {
|
|
2476
|
+
processedImage = part.image;
|
|
2477
|
+
} else if (Buffer.isBuffer(part.image) || part.image instanceof ArrayBuffer) {
|
|
2478
|
+
processedImage = new Uint8Array(part.image);
|
|
2479
|
+
} else {
|
|
2480
|
+
const categorized = categorizeFileData(part.image, part.mimeType);
|
|
2481
|
+
if (categorized.type === "raw") {
|
|
2482
|
+
const dataUri = createDataUri(part.image, part.mimeType || "image/png");
|
|
2483
|
+
processedImage = new URL(dataUri);
|
|
2484
|
+
} else {
|
|
2485
|
+
processedImage = new URL(part.image);
|
|
2486
|
+
}
|
|
2487
|
+
}
|
|
2293
2488
|
roleContent[role].push({
|
|
2294
2489
|
...part,
|
|
2295
|
-
image:
|
|
2490
|
+
image: processedImage
|
|
2296
2491
|
});
|
|
2297
2492
|
break;
|
|
2298
2493
|
}
|
|
@@ -2942,7 +3137,7 @@ var MessageList = class _MessageList {
|
|
|
2942
3137
|
}
|
|
2943
3138
|
}
|
|
2944
3139
|
const contentString = mastraDBParts.filter((p) => p.type === "text").map((p) => p.text).join("\n");
|
|
2945
|
-
const metadata = {};
|
|
3140
|
+
const metadata = "metadata" in modelMsg && modelMsg.metadata !== null && modelMsg.metadata !== void 0 ? modelMsg.metadata : {};
|
|
2946
3141
|
const id = `id` in modelMsg && typeof modelMsg.id === `string` ? modelMsg.id : `msg-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
|
|
2947
3142
|
const message = {
|
|
2948
3143
|
id,
|
|
@@ -2955,7 +3150,7 @@ var MessageList = class _MessageList {
|
|
|
2955
3150
|
reasoning: reasoningParts.length > 0 ? reasoningParts.join("\n") : void 0,
|
|
2956
3151
|
experimental_attachments: experimental_attachments.length > 0 ? experimental_attachments : void 0,
|
|
2957
3152
|
content: contentString || void 0,
|
|
2958
|
-
metadata
|
|
3153
|
+
metadata: Object.keys(metadata).length > 0 ? metadata : void 0
|
|
2959
3154
|
}
|
|
2960
3155
|
};
|
|
2961
3156
|
if (modelMsg.providerOptions) {
|
|
@@ -2988,7 +3183,8 @@ var MessageList = class _MessageList {
|
|
|
2988
3183
|
if (message.role !== `assistant`) continue;
|
|
2989
3184
|
for (const [index, part] of message.parts.entries()) {
|
|
2990
3185
|
if (!AIV5.isToolUIPart(part)) continue;
|
|
2991
|
-
|
|
3186
|
+
const nextPart = message.parts.at(index + 1);
|
|
3187
|
+
if (nextPart && nextPart.type !== `step-start` && !AIV5.isToolUIPart(nextPart)) {
|
|
2992
3188
|
message.parts.splice(index + 1, 0, { type: "step-start" });
|
|
2993
3189
|
}
|
|
2994
3190
|
}
|
|
@@ -3114,5 +3310,5 @@ var MessageList = class _MessageList {
|
|
|
3114
3310
|
};
|
|
3115
3311
|
|
|
3116
3312
|
export { DefaultGeneratedFile, DefaultGeneratedFileWithType, MessageList, convertMessages };
|
|
3117
|
-
//# sourceMappingURL=chunk-
|
|
3118
|
-
//# sourceMappingURL=chunk-
|
|
3313
|
+
//# sourceMappingURL=chunk-APMPOYPI.js.map
|
|
3314
|
+
//# sourceMappingURL=chunk-APMPOYPI.js.map
|