@mastra/core 0.13.2 → 0.14.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -44
- package/dist/agent/agent.types.d.ts +12 -2
- package/dist/agent/agent.types.d.ts.map +1 -1
- package/dist/agent/index.cjs +14 -14
- package/dist/agent/index.d.ts +17 -17
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/index.js +2 -2
- package/dist/agent/input-processor/index.cjs +28 -0
- package/dist/agent/input-processor/index.js +3 -0
- package/dist/agent/input-processor/processors/index.d.ts +4 -4
- package/dist/agent/input-processor/processors/index.d.ts.map +1 -1
- package/dist/agent/input-processor/processors/language-detector.d.ts +6 -139
- package/dist/agent/input-processor/processors/language-detector.d.ts.map +1 -1
- package/dist/agent/input-processor/processors/moderation.d.ts +5 -94
- package/dist/agent/input-processor/processors/moderation.d.ts.map +1 -1
- package/dist/agent/input-processor/processors/pii-detector.d.ts +6 -164
- package/dist/agent/input-processor/processors/pii-detector.d.ts.map +1 -1
- package/dist/agent/input-processor/processors/prompt-injection-detector.d.ts +6 -96
- package/dist/agent/input-processor/processors/prompt-injection-detector.d.ts.map +1 -1
- package/dist/agent/input-processor/processors/unicode-normalizer.d.ts +9 -25
- package/dist/agent/input-processor/processors/unicode-normalizer.d.ts.map +1 -1
- package/dist/agent/message-list/index.d.ts +138 -39
- package/dist/agent/message-list/index.d.ts.map +1 -1
- package/dist/agent/message-list/types.d.ts +3 -0
- package/dist/agent/message-list/types.d.ts.map +1 -0
- package/dist/agent/message-list/utils/ai-v4-v5/core-model-message.d.ts +3 -0
- package/dist/agent/message-list/utils/ai-v4-v5/core-model-message.d.ts.map +1 -0
- package/dist/agent/message-list/utils/ai-v4-v5/ui-message.d.ts +3 -0
- package/dist/agent/message-list/utils/ai-v4-v5/ui-message.d.ts.map +1 -0
- package/dist/agent/message-list/utils/ai-v5/tool.d.ts +16 -0
- package/dist/agent/message-list/utils/ai-v5/tool.d.ts.map +1 -0
- package/dist/agent/types.d.ts +34 -4
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/ai-tracing/base.d.ts +22 -7
- package/dist/ai-tracing/base.d.ts.map +1 -1
- package/dist/ai-tracing/default.d.ts +3 -3
- package/dist/ai-tracing/default.d.ts.map +1 -1
- package/dist/ai-tracing/index.cjs +253 -72
- package/dist/ai-tracing/index.cjs.map +1 -1
- package/dist/ai-tracing/index.d.ts +1 -0
- package/dist/ai-tracing/index.d.ts.map +1 -1
- package/dist/ai-tracing/index.js +243 -71
- package/dist/ai-tracing/index.js.map +1 -1
- package/dist/ai-tracing/no-op.d.ts +39 -7
- package/dist/ai-tracing/no-op.d.ts.map +1 -1
- package/dist/ai-tracing/registry.d.ts +29 -4
- package/dist/ai-tracing/registry.d.ts.map +1 -1
- package/dist/ai-tracing/types.d.ts +112 -53
- package/dist/ai-tracing/types.d.ts.map +1 -1
- package/dist/ai-tracing/utils.d.ts +24 -0
- package/dist/ai-tracing/utils.d.ts.map +1 -0
- package/dist/base.cjs +2 -2
- package/dist/base.js +1 -1
- package/dist/bundler/index.cjs +2 -2
- package/dist/bundler/index.js +1 -1
- package/dist/{chunk-N3VGOJZV.cjs → chunk-4BMFOQDC.cjs} +27 -47
- package/dist/chunk-4BMFOQDC.cjs.map +1 -0
- package/dist/{chunk-MTRRRTB4.js → chunk-4XDSHUFK.js} +7 -6
- package/dist/chunk-4XDSHUFK.js.map +1 -0
- package/dist/{chunk-SSJVFUBZ.js → chunk-67L5DRLO.js} +3 -3
- package/dist/{chunk-SSJVFUBZ.js.map → chunk-67L5DRLO.js.map} +1 -1
- package/dist/{chunk-FUERFM46.js → chunk-6GF5M4GX.js} +3 -3
- package/dist/{chunk-FUERFM46.js.map → chunk-6GF5M4GX.js.map} +1 -1
- package/dist/{chunk-7E2SNI5D.cjs → chunk-7AXX55C5.cjs} +5 -5
- package/dist/chunk-7AXX55C5.cjs.map +1 -0
- package/dist/{chunk-6W6LYR7M.js → chunk-7XGDFDZ2.js} +3 -3
- package/dist/{chunk-6W6LYR7M.js.map → chunk-7XGDFDZ2.js.map} +1 -1
- package/dist/{chunk-R4HT5XUH.cjs → chunk-ASJVWHIK.cjs} +993 -124
- package/dist/chunk-ASJVWHIK.cjs.map +1 -0
- package/dist/{chunk-ZDZ57MIU.js → chunk-AWILTHBM.js} +3 -3
- package/dist/{chunk-ZDZ57MIU.js.map → chunk-AWILTHBM.js.map} +1 -1
- package/dist/{chunk-DDYSOZ25.js → chunk-AYXRNQH3.js} +3 -3
- package/dist/{chunk-DDYSOZ25.js.map → chunk-AYXRNQH3.js.map} +1 -1
- package/dist/{chunk-U2CK6AN5.cjs → chunk-BCCEYWAV.cjs} +4 -4
- package/dist/{chunk-U2CK6AN5.cjs.map → chunk-BCCEYWAV.cjs.map} +1 -1
- package/dist/{chunk-MH64VYGF.cjs → chunk-CSTWQQ3C.cjs} +14 -13
- package/dist/chunk-CSTWQQ3C.cjs.map +1 -0
- package/dist/{chunk-FTPL7ILZ.js → chunk-CWZDKGJ6.js} +3 -3
- package/dist/{chunk-FTPL7ILZ.js.map → chunk-CWZDKGJ6.js.map} +1 -1
- package/dist/{chunk-MVSUZXER.cjs → chunk-D7P76YH6.cjs} +4 -4
- package/dist/{chunk-MVSUZXER.cjs.map → chunk-D7P76YH6.cjs.map} +1 -1
- package/dist/{chunk-IL5SHDY4.js → chunk-DAMIFZPW.js} +949 -103
- package/dist/chunk-DAMIFZPW.js.map +1 -0
- package/dist/{chunk-KLXRYVVQ.cjs → chunk-DVI6XHUC.cjs} +4 -4
- package/dist/{chunk-KLXRYVVQ.cjs.map → chunk-DVI6XHUC.cjs.map} +1 -1
- package/dist/chunk-ELKY3FEM.cjs +14 -0
- package/dist/{chunk-IP5NGA2S.cjs.map → chunk-ELKY3FEM.cjs.map} +1 -1
- package/dist/{chunk-TOODGJKM.js → chunk-GZVSHXPP.js} +3 -3
- package/dist/chunk-GZVSHXPP.js.map +1 -0
- package/dist/{chunk-WA3SWCXD.cjs → chunk-I4XP6RAN.cjs} +9 -9
- package/dist/{chunk-WA3SWCXD.cjs.map → chunk-I4XP6RAN.cjs.map} +1 -1
- package/dist/{chunk-PLVSXEQP.cjs → chunk-IAP4IWKM.cjs} +4 -4
- package/dist/{chunk-PLVSXEQP.cjs.map → chunk-IAP4IWKM.cjs.map} +1 -1
- package/dist/{chunk-YT4RGZYO.cjs → chunk-KXCUCBEI.cjs} +8 -8
- package/dist/{chunk-YT4RGZYO.cjs.map → chunk-KXCUCBEI.cjs.map} +1 -1
- package/dist/{chunk-Z74LG5VH.cjs → chunk-LFAAEOQC.cjs} +21 -4
- package/dist/chunk-LFAAEOQC.cjs.map +1 -0
- package/dist/{chunk-DK7AVDMI.cjs → chunk-LVVAUDVQ.cjs} +4 -4
- package/dist/{chunk-DK7AVDMI.cjs.map → chunk-LVVAUDVQ.cjs.map} +1 -1
- package/dist/{chunk-HBMZEZTO.js → chunk-ON4S33NP.js} +3 -3
- package/dist/{chunk-HBMZEZTO.js.map → chunk-ON4S33NP.js.map} +1 -1
- package/dist/{chunk-L6YBPFYF.js → chunk-OPT2L5AM.js} +1089 -81
- package/dist/chunk-OPT2L5AM.js.map +1 -0
- package/dist/{chunk-N2KMAW6T.js → chunk-P7WF6NQU.js} +20 -4
- package/dist/chunk-P7WF6NQU.js.map +1 -0
- package/dist/{chunk-KEMW2BER.js → chunk-PY4MHJTE.js} +3 -3
- package/dist/{chunk-KEMW2BER.js.map → chunk-PY4MHJTE.js.map} +1 -1
- package/dist/{chunk-TZVJV7EV.js → chunk-QSJZLHWA.js} +5 -5
- package/dist/{chunk-TZVJV7EV.js.map → chunk-QSJZLHWA.js.map} +1 -1
- package/dist/{chunk-DCOKWJ5G.cjs → chunk-RJCNC57P.cjs} +1110 -79
- package/dist/chunk-RJCNC57P.cjs.map +1 -0
- package/dist/{chunk-LMW44O4V.cjs → chunk-RPV7GQAX.cjs} +4 -4
- package/dist/{chunk-LMW44O4V.cjs.map → chunk-RPV7GQAX.cjs.map} +1 -1
- package/dist/{chunk-TZOR5M7H.js → chunk-RYCRCJCY.js} +25 -45
- package/dist/chunk-RYCRCJCY.js.map +1 -0
- package/dist/{chunk-IDDUQR6P.cjs → chunk-V5WKCX3G.cjs} +3 -3
- package/dist/chunk-V5WKCX3G.cjs.map +1 -0
- package/dist/{chunk-6AR2Z5ZG.js → chunk-X3GXU6TZ.js} +3 -3
- package/dist/chunk-X3GXU6TZ.js.map +1 -0
- package/dist/deployer/index.cjs +2 -2
- package/dist/deployer/index.js +1 -1
- package/dist/index.cjs +74 -70
- package/dist/index.js +14 -14
- package/dist/llm/index.d.ts +2 -1
- package/dist/llm/index.d.ts.map +1 -1
- package/dist/llm/model/base.types.d.ts +2 -6
- package/dist/llm/model/base.types.d.ts.map +1 -1
- package/dist/llm/model/index.d.ts +0 -1
- package/dist/llm/model/index.d.ts.map +1 -1
- package/dist/llm/model/model.d.ts +3 -2
- package/dist/llm/model/model.d.ts.map +1 -1
- package/dist/llm/model/model.loop.d.ts +25 -0
- package/dist/llm/model/model.loop.d.ts.map +1 -0
- package/dist/llm/model/model.loop.types.d.ts +39 -0
- package/dist/llm/model/model.loop.types.d.ts.map +1 -0
- package/dist/llm/model/shared.types.d.ts +8 -0
- package/dist/llm/model/shared.types.d.ts.map +1 -0
- package/dist/logger/constants.d.ts +1 -1
- package/dist/logger/index.cjs +6 -6
- package/dist/logger/index.js +1 -1
- package/dist/loop/index.cjs +2848 -0
- package/dist/loop/index.cjs.map +1 -0
- package/dist/loop/index.d.ts +2 -0
- package/dist/loop/index.d.ts.map +1 -0
- package/dist/loop/index.js +2842 -0
- package/dist/loop/index.js.map +1 -0
- package/dist/loop/loop.d.ts +5 -0
- package/dist/loop/loop.d.ts.map +1 -0
- package/dist/loop/telemetry/index.d.ts +36 -0
- package/dist/loop/telemetry/index.d.ts.map +1 -0
- package/dist/loop/telemetry/noop.d.ts +3 -0
- package/dist/loop/telemetry/noop.d.ts.map +1 -0
- package/dist/loop/test-utils/fullStream.d.ts +6 -0
- package/dist/loop/test-utils/fullStream.d.ts.map +1 -0
- package/dist/loop/test-utils/generateText.d.ts +6 -0
- package/dist/loop/test-utils/generateText.d.ts.map +1 -0
- package/dist/loop/test-utils/mockTracer.d.ts +47 -0
- package/dist/loop/test-utils/mockTracer.d.ts.map +1 -0
- package/dist/loop/test-utils/options.d.ts +6 -0
- package/dist/loop/test-utils/options.d.ts.map +1 -0
- package/dist/loop/test-utils/resultObject.d.ts +6 -0
- package/dist/loop/test-utils/resultObject.d.ts.map +1 -0
- package/dist/loop/test-utils/streamObject.d.ts +6 -0
- package/dist/loop/test-utils/streamObject.d.ts.map +1 -0
- package/dist/loop/test-utils/telemetry.d.ts +6 -0
- package/dist/loop/test-utils/telemetry.d.ts.map +1 -0
- package/dist/loop/test-utils/textStream.d.ts +6 -0
- package/dist/loop/test-utils/textStream.d.ts.map +1 -0
- package/dist/loop/test-utils/toUIMessageStream.d.ts +6 -0
- package/dist/loop/test-utils/toUIMessageStream.d.ts.map +1 -0
- package/dist/loop/test-utils/tools.d.ts +6 -0
- package/dist/loop/test-utils/tools.d.ts.map +1 -0
- package/dist/loop/test-utils/utils.d.ts +40 -0
- package/dist/loop/test-utils/utils.d.ts.map +1 -0
- package/dist/loop/types.d.ts +68 -0
- package/dist/loop/types.d.ts.map +1 -0
- package/dist/loop/workflow/llm-execution.d.ts +80 -0
- package/dist/loop/workflow/llm-execution.d.ts.map +1 -0
- package/dist/loop/workflow/outer-llm-step.d.ts +43 -0
- package/dist/loop/workflow/outer-llm-step.d.ts.map +1 -0
- package/dist/loop/workflow/run-state.d.ts +24 -0
- package/dist/loop/workflow/run-state.d.ts.map +1 -0
- package/dist/loop/workflow/schema.d.ts +80 -0
- package/dist/loop/workflow/schema.d.ts.map +1 -0
- package/dist/loop/workflow/stream.d.ts +6 -0
- package/dist/loop/workflow/stream.d.ts.map +1 -0
- package/dist/loop/workflow/tool-call-step.d.ts +41 -0
- package/dist/loop/workflow/tool-call-step.d.ts.map +1 -0
- package/dist/mastra/index.cjs +2 -2
- package/dist/mastra/index.d.ts +4 -5
- package/dist/mastra/index.d.ts.map +1 -1
- package/dist/mastra/index.js +1 -1
- package/dist/mcp/index.cjs +4 -4
- package/dist/mcp/index.js +2 -2
- package/dist/memory/index.cjs +4 -4
- package/dist/memory/index.js +1 -1
- package/dist/network/index.cjs +6 -6
- package/dist/network/index.cjs.map +1 -1
- package/dist/network/index.js +3 -3
- package/dist/network/index.js.map +1 -1
- package/dist/network/network.d.ts +8 -7
- package/dist/network/network.d.ts.map +1 -1
- package/dist/network/vNext/index.cjs +21 -21
- package/dist/network/vNext/index.cjs.map +1 -1
- package/dist/network/vNext/index.d.ts +7 -7
- package/dist/network/vNext/index.d.ts.map +1 -1
- package/dist/network/vNext/index.js +7 -7
- package/dist/network/vNext/index.js.map +1 -1
- package/dist/processors/index.cjs +512 -0
- package/dist/processors/index.cjs.map +1 -0
- package/dist/processors/index.d.ts +38 -0
- package/dist/processors/index.d.ts.map +1 -0
- package/dist/processors/index.js +481 -0
- package/dist/processors/index.js.map +1 -0
- package/dist/processors/processors/batch-parts.d.ts +42 -0
- package/dist/processors/processors/batch-parts.d.ts.map +1 -0
- package/dist/processors/processors/index.d.ts +10 -0
- package/dist/processors/processors/index.d.ts.map +1 -0
- package/dist/processors/processors/language-detector.d.ts +151 -0
- package/dist/processors/processors/language-detector.d.ts.map +1 -0
- package/dist/processors/processors/moderation.d.ts +130 -0
- package/dist/processors/processors/moderation.d.ts.map +1 -0
- package/dist/processors/processors/pii-detector.d.ts +197 -0
- package/dist/processors/processors/pii-detector.d.ts.map +1 -0
- package/dist/processors/processors/prompt-injection-detector.d.ts +108 -0
- package/dist/processors/processors/prompt-injection-detector.d.ts.map +1 -0
- package/dist/processors/processors/structured-output.d.ts +42 -0
- package/dist/processors/processors/structured-output.d.ts.map +1 -0
- package/dist/processors/processors/system-prompt-scrubber.d.ts +92 -0
- package/dist/processors/processors/system-prompt-scrubber.d.ts.map +1 -0
- package/dist/processors/processors/token-limiter.d.ts +66 -0
- package/dist/processors/processors/token-limiter.d.ts.map +1 -0
- package/dist/processors/processors/unicode-normalizer.d.ts +34 -0
- package/dist/processors/processors/unicode-normalizer.d.ts.map +1 -0
- package/dist/processors/runner.d.ts +41 -0
- package/dist/processors/runner.d.ts.map +1 -0
- package/dist/relevance/index.cjs +4 -4
- package/dist/relevance/index.js +1 -1
- package/dist/scores/index.cjs +5 -5
- package/dist/scores/index.js +2 -2
- package/dist/server/index.cjs +2 -2
- package/dist/server/index.js +1 -1
- package/dist/storage/domains/operations/base.d.ts.map +1 -1
- package/dist/storage/index.cjs +15 -17
- package/dist/storage/index.cjs.map +1 -1
- package/dist/storage/index.js +4 -6
- package/dist/storage/index.js.map +1 -1
- package/dist/stream/aisdk/v4/transform.d.ts +26 -0
- package/dist/stream/aisdk/v4/transform.d.ts.map +1 -1
- package/dist/stream/aisdk/v5/compat.d.ts +159 -0
- package/dist/stream/aisdk/v5/compat.d.ts.map +1 -0
- package/dist/stream/aisdk/v5/execute.d.ts +29 -0
- package/dist/stream/aisdk/v5/execute.d.ts.map +1 -0
- package/dist/stream/aisdk/v5/file.d.ts +38 -0
- package/dist/stream/aisdk/v5/file.d.ts.map +1 -0
- package/dist/stream/aisdk/v5/input.d.ts +15 -0
- package/dist/stream/aisdk/v5/input.d.ts.map +1 -0
- package/dist/stream/aisdk/v5/object/schema.d.ts +4 -0
- package/dist/stream/aisdk/v5/object/schema.d.ts.map +1 -0
- package/dist/stream/aisdk/v5/object/stream-object.d.ts +34 -0
- package/dist/stream/aisdk/v5/object/stream-object.d.ts.map +1 -0
- package/dist/stream/aisdk/v5/output-helpers.d.ts +76 -0
- package/dist/stream/aisdk/v5/output-helpers.d.ts.map +1 -0
- package/dist/stream/aisdk/v5/output.d.ts +119 -0
- package/dist/stream/aisdk/v5/output.d.ts.map +1 -0
- package/dist/stream/aisdk/v5/test-utils.d.ts +19 -0
- package/dist/stream/aisdk/v5/test-utils.d.ts.map +1 -0
- package/dist/stream/aisdk/v5/transform.d.ts +31 -0
- package/dist/stream/aisdk/v5/transform.d.ts.map +1 -0
- package/dist/stream/base/input.d.ts +1 -1
- package/dist/stream/base/output.d.ts +89 -0
- package/dist/stream/base/output.d.ts.map +1 -0
- package/dist/stream/types.d.ts +30 -0
- package/dist/stream/types.d.ts.map +1 -1
- package/dist/test-utils/llm-mock.cjs +2 -2
- package/dist/test-utils/llm-mock.cjs.map +1 -1
- package/dist/test-utils/llm-mock.d.ts +2 -2
- package/dist/test-utils/llm-mock.d.ts.map +1 -1
- package/dist/test-utils/llm-mock.js +2 -2
- package/dist/test-utils/llm-mock.js.map +1 -1
- package/dist/tools/tool-builder/builder.d.ts +3 -2
- package/dist/tools/tool-builder/builder.d.ts.map +1 -1
- package/dist/tools/types.d.ts +9 -0
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/tts/index.cjs +2 -2
- package/dist/tts/index.js +1 -1
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils.cjs +19 -15
- package/dist/utils.d.ts +3 -2
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +1 -1
- package/dist/vector/index.cjs +2 -2
- package/dist/vector/index.js +1 -1
- package/dist/voice/index.cjs +4 -4
- package/dist/voice/index.js +1 -1
- package/dist/workflows/default.d.ts.map +1 -1
- package/dist/workflows/index.cjs +10 -10
- package/dist/workflows/index.js +1 -1
- package/dist/workflows/legacy/index.cjs +22 -22
- package/dist/workflows/legacy/index.js +1 -1
- package/loop.d.ts +1 -0
- package/package.json +16 -1
- package/processors.d.ts +1 -0
- package/dist/agent/input-processor/processors/index.cjs +0 -28
- package/dist/agent/input-processor/processors/index.js +0 -3
- package/dist/agent/input-processor/runner.d.ts +0 -4
- package/dist/agent/input-processor/runner.d.ts.map +0 -1
- package/dist/chunk-6AR2Z5ZG.js.map +0 -1
- package/dist/chunk-7E2SNI5D.cjs.map +0 -1
- package/dist/chunk-DCOKWJ5G.cjs.map +0 -1
- package/dist/chunk-IDDUQR6P.cjs.map +0 -1
- package/dist/chunk-IL5SHDY4.js.map +0 -1
- package/dist/chunk-IP5NGA2S.cjs +0 -14
- package/dist/chunk-L6YBPFYF.js.map +0 -1
- package/dist/chunk-MH64VYGF.cjs.map +0 -1
- package/dist/chunk-MTRRRTB4.js.map +0 -1
- package/dist/chunk-N2KMAW6T.js.map +0 -1
- package/dist/chunk-N3VGOJZV.cjs.map +0 -1
- package/dist/chunk-R4HT5XUH.cjs.map +0 -1
- package/dist/chunk-TOODGJKM.js.map +0 -1
- package/dist/chunk-TZOR5M7H.js.map +0 -1
- package/dist/chunk-Z74LG5VH.cjs.map +0 -1
- package/dist/llm/model/base.d.ts +0 -26
- package/dist/llm/model/base.d.ts.map +0 -1
- /package/dist/agent/input-processor/{processors/index.cjs.map → index.cjs.map} +0 -0
- /package/dist/agent/input-processor/{processors/index.js.map → index.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/network/vNext/index.ts"],"names":["z","MastraBase","RegisteredLogger","randomUUID","MessageList","RuntimeContext","zodToJsonSchema","Agent","createStep","createWorkflow","EMITTER_SYMBOL"],"mappings":"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","file":"index.cjs","sourcesContent":["import { randomUUID } from 'crypto';\nimport type { CoreMessage } from 'ai';\nimport { z } from 'zod';\nimport { zodToJsonSchema } from 'zod-to-json-schema';\nimport type { AiMessageType, Mastra, MastraMessageV2, Tool } from '../..';\nimport { Agent, MessageList } from '../../agent';\nimport type { MastraLanguageModel, UIMessageWithMetadata } from '../../agent';\nimport { MastraBase } from '../../base';\nimport { RegisteredLogger } from '../../logger';\nimport type { MastraMemory } from '../../memory';\nimport { RuntimeContext } from '../../runtime-context';\nimport type { DynamicArgument } from '../../types';\nimport type { Workflow } from '../../workflows';\nimport { EMITTER_SYMBOL } from '../../workflows/constants';\nimport { createWorkflow, createStep } from '../../workflows/workflow';\n\ninterface NewAgentNetworkConfig {\n id: string;\n name: string;\n instructions: DynamicArgument<string>;\n model: DynamicArgument<MastraLanguageModel>;\n agents: DynamicArgument<Record<string, Agent>>;\n workflows?: DynamicArgument<Record<string, Workflow>>;\n tools?: DynamicArgument<Record<string, Tool<any, any, any>>>;\n memory?: DynamicArgument<MastraMemory>;\n defaultAgent?: DynamicArgument<Agent>;\n}\n\nconst RESOURCE_TYPES = z.enum(['agent', 'workflow', 'none', 'tool', 'none']);\n\nexport class NewAgentNetwork extends MastraBase {\n id: string;\n name: string;\n #instructions: DynamicArgument<string>;\n #model: DynamicArgument<MastraLanguageModel>;\n #agents: DynamicArgument<Record<string, Agent>>;\n #defaultAgent: DynamicArgument<Agent> | undefined;\n #workflows: DynamicArgument<Record<string, Workflow>> | undefined;\n #tools: DynamicArgument<Record<string, Tool>> | undefined;\n #memory?: DynamicArgument<MastraMemory>;\n #mastra?: Mastra;\n\n constructor({\n id,\n name,\n instructions,\n model,\n agents,\n workflows,\n memory,\n tools,\n defaultAgent,\n }: NewAgentNetworkConfig) {\n super({\n component: RegisteredLogger.NETWORK,\n name: name || 'NewAgentNetwork',\n });\n\n this.id = id;\n this.name = name;\n this.#instructions = instructions;\n this.#model = model;\n this.#agents = agents;\n this.#workflows = workflows;\n this.#memory = memory;\n this.#tools = tools;\n this.#defaultAgent = defaultAgent;\n }\n\n __registerMastra(mastra: Mastra) {\n this.#mastra = mastra;\n }\n\n private getLastMessage(messages: string | string[] | CoreMessage[] | AiMessageType[] | UIMessageWithMetadata[]) {\n let message = '';\n if (typeof messages === 'string') {\n message = messages;\n } else {\n const lastMessage = messages[messages.length - 1];\n if (typeof lastMessage === 'string') {\n message = lastMessage;\n } else if (lastMessage?.content) {\n const lastMessageContent = lastMessage.content;\n if (typeof lastMessageContent === 'string') {\n message = lastMessageContent;\n } else if (Array.isArray(lastMessageContent)) {\n const lastPart = lastMessageContent[lastMessageContent.length - 1];\n if (lastPart?.type === 'text') {\n message = lastPart.text;\n }\n }\n }\n }\n\n return message;\n }\n\n private async beforeRun({\n runtimeContext,\n threadId,\n resourceId,\n messages,\n }: {\n runtimeContext: RuntimeContext;\n threadId: string;\n resourceId: string;\n messages: string | string[] | CoreMessage[] | AiMessageType[] | UIMessageWithMetadata[];\n }) {\n const memory = await this.getMemory({ runtimeContext });\n let thread = await memory?.getThreadById({ threadId });\n if (!thread) {\n thread = await memory?.createThread({\n threadId,\n title: '',\n resourceId,\n });\n }\n if (typeof messages === 'string') {\n await memory?.saveMessages({\n messages: [\n {\n id: this.#mastra?.generateId() || randomUUID(),\n type: 'text',\n role: 'user',\n content: { parts: [{ type: 'text', text: messages }], format: 2 },\n createdAt: new Date(),\n threadId: thread?.id,\n resourceId: thread?.resourceId,\n },\n ] as MastraMessageV2[],\n format: 'v2',\n });\n } else {\n const messageList = new MessageList({\n threadId: thread?.id,\n resourceId: thread?.resourceId,\n });\n messageList.add(messages, 'user');\n const messagesToSave = messageList.get.all.v2();\n\n await memory?.saveMessages({\n messages: messagesToSave,\n format: 'v2',\n });\n }\n\n return thread;\n }\n\n async getAgents({ runtimeContext }: { runtimeContext?: RuntimeContext }) {\n let agentsToUse: Record<string, Agent>;\n\n if (typeof this.#agents === 'function') {\n agentsToUse = await this.#agents({ runtimeContext: runtimeContext || new RuntimeContext() });\n } else {\n agentsToUse = this.#agents;\n }\n\n return agentsToUse;\n }\n\n async getWorkflows({ runtimeContext }: { runtimeContext?: RuntimeContext }) {\n let workflowsToUse: Record<string, Workflow>;\n\n if (typeof this.#workflows === 'function') {\n workflowsToUse = await this.#workflows({ runtimeContext: runtimeContext || new RuntimeContext() });\n } else {\n workflowsToUse = this.#workflows || {};\n }\n\n return workflowsToUse;\n }\n\n async getTools({ runtimeContext }: { runtimeContext?: RuntimeContext }) {\n let toolsToUse: Record<string, Tool>;\n\n if (typeof this.#tools === 'function') {\n toolsToUse = await this.#tools({ runtimeContext: runtimeContext || new RuntimeContext() });\n } else {\n toolsToUse = this.#tools || {};\n }\n\n return toolsToUse;\n }\n\n async getMemory({ runtimeContext }: { runtimeContext?: RuntimeContext }) {\n let memoryToUse: MastraMemory;\n\n if (!this.#memory) {\n return;\n }\n\n if (typeof this.#memory === 'function') {\n memoryToUse = await this.#memory({ runtimeContext: runtimeContext || new RuntimeContext() });\n } else {\n memoryToUse = this.#memory;\n }\n\n return memoryToUse;\n }\n\n async getInstructions({ runtimeContext }: { runtimeContext?: RuntimeContext }) {\n let instructionsToUse = this.#instructions;\n\n if (typeof instructionsToUse === 'function') {\n instructionsToUse = await instructionsToUse({ runtimeContext: runtimeContext || new RuntimeContext() });\n }\n\n return instructionsToUse;\n }\n\n async getRoutingAgent({ runtimeContext }: { runtimeContext?: RuntimeContext }) {\n const instructionsToUse = await this.getInstructions({ runtimeContext: runtimeContext || new RuntimeContext() });\n const memoryToUse = await this.getMemory({ runtimeContext: runtimeContext || new RuntimeContext() });\n const agentsToUse = await this.getAgents({ runtimeContext: runtimeContext || new RuntimeContext() });\n const workflowsToUse = await this.getWorkflows({ runtimeContext: runtimeContext || new RuntimeContext() });\n const toolsToUse = await this.getTools({ runtimeContext: runtimeContext || new RuntimeContext() });\n\n const agentList = Object.entries(agentsToUse)\n .map(([name, agent]) => {\n // Use agent name instead of description since description might not exist\n return ` - **${name}**: ${agent.getDescription()}`;\n })\n .join('\\n');\n\n const workflowList = Object.entries(workflowsToUse)\n .map(([name, workflow]) => {\n return ` - **${name}**: ${workflow.description}, input schema: ${JSON.stringify(\n zodToJsonSchema(workflow.inputSchema),\n )}`;\n })\n .join('\\n');\n\n const toolList = Object.entries(toolsToUse)\n .map(([name, tool]) => {\n return ` - **${name}**: ${tool.description}, input schema: ${JSON.stringify(\n zodToJsonSchema(tool.inputSchema || z.object({})),\n )}`;\n })\n .join('\\n');\n\n const instructions = `\n You are a router in a network of specialized AI agents. \n Your job is to decide which agent should handle each step of a task.\n\n If asking for completion of a task, make sure to follow system instructions closely.\n \n ## System Instructions\n ${instructionsToUse}\n\n You can only pick agents and workflows that are available in the lists below. Never call any agents or workflows that are not available in the lists below.\n\n ## Available Agents in Network\n ${agentList}\n\n ## Available Workflows in Network (make sure to use inputs corresponding to the input schema when calling a workflow)\n ${workflowList}\n\n ## Available Tools in Network (make sure to use inputs corresponding to the input schema when calling a tool)\n ${toolList}\n\n ${\n this.#defaultAgent\n ? `If none of the agents or workflows are appropriate, call the default agent: ${this.#defaultAgent.name}.` +\n `This should not be done lightly. You should only do this if you have exhausted all other options.`\n : ''\n }\n\n If you have multiple entries that need to be called with a workflow or agent, call them separately with each input.\n When calling a workflow, the prompt should be a JSON value that corresponds to the input schema of the workflow. The JSON value is stringified.\n When calling a tool, the prompt should be a JSON value that corresponds to the input schema of the tool. The JSON value is stringified.\n When calling an agent, the prompt should be a text value, like you would call an LLM in a chat interface.\n\n Keep in mind that the user only sees the final result of the task. When reviewing completion, you should know that the user will not see the intermediate results.\n `;\n\n return new Agent({\n name: 'routing-agent',\n instructions,\n model: this.#model,\n memory: memoryToUse,\n // @ts-ignore\n _agentNetworkAppend: true,\n });\n }\n\n async loop(\n messages: string | string[] | CoreMessage[] | AiMessageType[] | UIMessageWithMetadata[],\n {\n runtimeContext,\n maxIterations,\n threadId,\n resourceId,\n }: {\n runtimeContext?: RuntimeContext;\n maxIterations?: number;\n threadId?: string;\n resourceId?: string;\n },\n ) {\n const networkWorkflow = this.createWorkflow({ runtimeContext });\n\n const finalStep = createStep({\n id: 'final-step',\n inputSchema: networkWorkflow.outputSchema,\n outputSchema: networkWorkflow.outputSchema,\n execute: async ({ inputData }) => {\n if (maxIterations && inputData.iteration >= maxIterations) {\n return {\n ...inputData,\n completionReason: `Max iterations reached: ${maxIterations}`,\n };\n }\n\n return inputData;\n },\n });\n\n const mainWorkflow = createWorkflow({\n id: 'Agent-Network-Main-Workflow',\n inputSchema: z.object({\n iteration: z.number(),\n task: z.string(),\n resourceType: RESOURCE_TYPES,\n threadId: z.string().optional(),\n threadResourceId: z.string().optional(),\n }),\n outputSchema: networkWorkflow.outputSchema,\n })\n .dountil(networkWorkflow, async ({ inputData }) => {\n return inputData.isComplete || (maxIterations && inputData.iteration >= maxIterations);\n })\n .then(finalStep)\n .commit();\n\n const run = mainWorkflow.createRun();\n\n const thread = await this.beforeRun({\n runtimeContext: runtimeContext || new RuntimeContext(),\n threadId: threadId || run.runId,\n resourceId: resourceId || this.name,\n messages,\n });\n\n const message = this.getLastMessage(messages);\n\n const result = await run.start({\n inputData: {\n task: message,\n resourceType: 'none',\n iteration: 0,\n threadResourceId: thread?.resourceId,\n threadId: thread?.id,\n },\n });\n\n if (result.status === 'failed') {\n throw result.error;\n }\n\n if (result.status === 'suspended') {\n throw new Error('Workflow suspended');\n }\n\n return result;\n }\n\n async loopStream(\n messages: string | string[] | CoreMessage[] | AiMessageType[] | UIMessageWithMetadata[],\n {\n runtimeContext,\n maxIterations,\n threadId,\n resourceId,\n }: {\n runtimeContext?: RuntimeContext;\n maxIterations?: number;\n threadId?: string;\n resourceId?: string;\n },\n ) {\n const networkWorkflow = this.createWorkflow({ runtimeContext });\n\n const finalStep = createStep({\n id: 'final-step',\n inputSchema: networkWorkflow.outputSchema,\n outputSchema: networkWorkflow.outputSchema,\n execute: async ({ inputData }) => {\n if (maxIterations && inputData.iteration >= maxIterations) {\n return {\n ...inputData,\n completionReason: `Max iterations reached: ${maxIterations}`,\n };\n }\n\n return inputData;\n },\n });\n\n const mainWorkflow = createWorkflow({\n id: 'Agent-Network-Main-Workflow',\n inputSchema: z.object({\n iteration: z.number(),\n task: z.string(),\n resourceId: z.string(),\n resourceType: RESOURCE_TYPES,\n result: z.string().optional(),\n threadId: z.string().optional(),\n threadResourceId: z.string().optional(),\n isOneOff: z.boolean(),\n verboseIntrospection: z.boolean(),\n }),\n outputSchema: z.object({\n task: z.string(),\n resourceId: z.string(),\n resourceType: RESOURCE_TYPES,\n prompt: z.string(),\n result: z.string(),\n isComplete: z.boolean().optional(),\n completionReason: z.string().optional(),\n iteration: z.number(),\n }),\n })\n .dountil(networkWorkflow, async ({ inputData }) => {\n return inputData.isComplete || (maxIterations && inputData.iteration >= maxIterations);\n })\n .then(finalStep)\n .commit();\n\n const run = mainWorkflow.createRun();\n\n const thread = await this.beforeRun({\n runtimeContext: runtimeContext || new RuntimeContext(),\n threadId: threadId || run.runId,\n resourceId: resourceId || this.name,\n messages,\n });\n\n const message = this.getLastMessage(messages);\n\n return run.stream({\n inputData: {\n task: message,\n resourceId: '',\n resourceType: 'none',\n iteration: 0,\n threadResourceId: thread?.resourceId,\n threadId: thread?.id,\n isOneOff: false,\n verboseIntrospection: true,\n },\n });\n }\n\n createWorkflow({ runtimeContext }: { runtimeContext?: RuntimeContext }) {\n const runId = this.#mastra?.generateId() || randomUUID();\n\n const runtimeContextToUse = runtimeContext || new RuntimeContext();\n\n const routingStep = createStep({\n id: 'routing-step',\n inputSchema: z.object({\n task: z.string(),\n resourceId: z.string(),\n resourceType: RESOURCE_TYPES,\n result: z.string().optional(),\n iteration: z.number(),\n threadId: z.string().optional(),\n threadResourceId: z.string().optional(),\n isOneOff: z.boolean(),\n verboseIntrospection: z.boolean(),\n }),\n outputSchema: z.object({\n task: z.string(),\n resourceId: z.string(),\n resourceType: RESOURCE_TYPES,\n prompt: z.string(),\n result: z.string(),\n isComplete: z.boolean().optional(),\n selectionReason: z.string(),\n iteration: z.number(),\n }),\n execute: async ({ inputData, getInitData }) => {\n const initData = await getInitData();\n\n const routingAgent = await this.getRoutingAgent({ runtimeContext: runtimeContextToUse });\n\n const completionSchema = z.object({\n isComplete: z.boolean(),\n finalResult: z.string(),\n completionReason: z.string(),\n });\n let completionResult;\n if (inputData.resourceType !== 'none' && inputData?.result) {\n // Check if the task is complete\n const completionPrompt = `\n The ${inputData.resourceType} ${inputData.resourceId} has contributed to the task.\n This is the result from the agent: ${inputData.result}\n\n You need to evaluate that our task is complete. Pay very close attention to the SYSTEM INSTRUCTIONS for when the task is considered complete. Only return true if the task is complete according to the system instructions. Pay close attention to the finalResult and completionReason.\n Original task: ${inputData.task}\n\n {\n \"isComplete\": boolean,\n \"completionReason\": string,\n \"finalResult\": string\n }\n `;\n\n completionResult = await routingAgent.generate([{ role: 'assistant', content: completionPrompt }], {\n output: completionSchema,\n threadId: initData?.threadId ?? runId,\n resourceId: initData?.threadResourceId ?? this.name,\n runtimeContext: runtimeContextToUse,\n });\n\n if (completionResult.object.isComplete) {\n return {\n task: inputData.task,\n resourceId: '',\n resourceType: 'none' as z.infer<typeof RESOURCE_TYPES>,\n prompt: '',\n result: completionResult.object.finalResult,\n isComplete: true,\n selectionReason: completionResult.object.completionReason,\n iteration: inputData.iteration + 1,\n };\n }\n }\n\n const result = await routingAgent.generate(\n [\n {\n role: 'assistant',\n content: `\n ${inputData.isOneOff ? 'You are executing just one primitive based on the user task. Make sure to pick the primitive that is the best suited to accomplish the whole task. Primitives that execute only part of the task should be avoided.' : 'You will be calling just *one* primitive at a time to accomplish the user task, every call to you is one decision in the process of accomplishing the user task. Make sure to pick primitives that are the best suited to accomplish the whole task. Completeness is the highest priority.'}\n\n The user has given you the following task: \n ${inputData.task}\n ${completionResult ? `\\n\\n${completionResult.object.finalResult}` : ''}\n\n Please select the most appropriate primitive to handle this task and the prompt to be sent to the primitive.\n If you are calling the same agent again, make sure to adjust the prompt to be more specific.\n\n {\n \"resourceId\": string,\n \"resourceType\": \"agent\" | \"workflow\" | \"tool\",\n \"prompt\": string,\n \"selectionReason\": string\n }\n\n The 'selectionReason' property should explain why you picked the primitive${inputData.verboseIntrospection ? ', as well as why the other primitives were not picked.' : '.'}\n `,\n },\n ],\n {\n output: z.object({\n resourceId: z.string(),\n resourceType: RESOURCE_TYPES,\n prompt: z.string(),\n selectionReason: z.string(),\n }),\n threadId: initData?.threadId ?? runId,\n resourceId: initData?.threadResourceId ?? this.name,\n runtimeContext: runtimeContextToUse,\n },\n );\n\n return {\n task: inputData.task,\n result: '',\n resourceId: result.object.resourceId,\n resourceType: result.object.resourceType,\n prompt: result.object.prompt,\n isComplete: result.object.resourceId === 'none' && result.object.resourceType === 'none' ? true : false,\n selectionReason: result.object.selectionReason,\n iteration: inputData.iteration + 1,\n };\n },\n });\n\n const agentStep = createStep({\n id: 'agent-step',\n inputSchema: z.object({\n task: z.string(),\n resourceId: z.string(),\n resourceType: RESOURCE_TYPES,\n prompt: z.string(),\n result: z.string(),\n isComplete: z.boolean().optional(),\n selectionReason: z.string(),\n iteration: z.number(),\n }),\n outputSchema: z.object({\n task: z.string(),\n resourceId: z.string(),\n resourceType: RESOURCE_TYPES,\n result: z.string(),\n isComplete: z.boolean().optional(),\n iteration: z.number(),\n }),\n execute: async ({ inputData, [EMITTER_SYMBOL]: emitter, getInitData }) => {\n const agentsMap = await this.getAgents({ runtimeContext: runtimeContextToUse });\n const agentId = inputData.resourceId;\n\n const agent = agentsMap[inputData.resourceId];\n\n if (!agent) {\n throw new Error(`Agent ${agentId} not found`);\n }\n\n let streamPromise = {} as {\n promise: Promise<string>;\n resolve: (value: string) => void;\n reject: (reason?: any) => void;\n };\n\n streamPromise.promise = new Promise((resolve, reject) => {\n streamPromise.resolve = resolve;\n streamPromise.reject = reject;\n });\n const toolData = {\n name: agent.name,\n args: inputData,\n };\n await emitter.emit('watch-v2', {\n type: 'tool-call-streaming-start',\n ...toolData,\n });\n const { fullStream } = await agent.stream(inputData.prompt, {\n // resourceId: inputData.resourceId,\n // threadId: inputData.threadId,\n runtimeContext: runtimeContextToUse,\n onFinish: result => {\n streamPromise.resolve(result.text);\n },\n });\n\n for await (const chunk of fullStream) {\n switch (chunk.type) {\n case 'text-delta':\n await emitter.emit('watch-v2', {\n type: 'tool-call-delta',\n ...toolData,\n argsTextDelta: chunk.textDelta,\n });\n break;\n\n case 'step-start':\n case 'step-finish':\n case 'finish':\n case 'tool-call':\n case 'tool-result':\n case 'tool-call-streaming-start':\n case 'tool-call-delta':\n break;\n case 'source':\n case 'file':\n default:\n await emitter.emit('watch-v2', chunk);\n break;\n }\n }\n\n const finalResult = await streamPromise.promise;\n\n const memory = await this.getMemory({ runtimeContext: runtimeContext || new RuntimeContext() });\n const initData = await getInitData();\n await memory?.saveMessages({\n messages: [\n {\n id: this.#mastra?.generateId() || randomUUID(),\n type: 'text',\n role: 'assistant',\n content: { parts: [{ type: 'text', text: finalResult }], format: 2 },\n createdAt: new Date(),\n threadId: initData.threadId || runId,\n resourceId: initData.threadResourceId || this.name,\n },\n ] as MastraMessageV2[],\n format: 'v2',\n });\n\n return {\n task: inputData.task,\n resourceId: inputData.resourceId,\n resourceType: inputData.resourceType,\n result: finalResult,\n isComplete: false,\n iteration: inputData.iteration,\n };\n },\n });\n\n const workflowStep = createStep({\n id: 'workflow-step',\n inputSchema: z.object({\n task: z.string(),\n resourceId: z.string(),\n resourceType: RESOURCE_TYPES,\n prompt: z.string(),\n result: z.string(),\n isComplete: z.boolean().optional(),\n selectionReason: z.string(),\n iteration: z.number(),\n }),\n outputSchema: z.object({\n task: z.string(),\n resourceId: z.string(),\n resourceType: RESOURCE_TYPES,\n result: z.string(),\n isComplete: z.boolean().optional(),\n iteration: z.number(),\n }),\n execute: async ({ inputData, [EMITTER_SYMBOL]: emitter, getInitData }) => {\n const workflowsMap = await this.getWorkflows({ runtimeContext: runtimeContextToUse });\n const wf = workflowsMap[inputData.resourceId];\n\n if (!wf) {\n throw new Error(`Workflow ${inputData.resourceId} not found`);\n }\n\n let input;\n try {\n input = JSON.parse(inputData.prompt);\n } catch (e: unknown) {\n console.error(e);\n throw new Error(`Invalid task input: ${inputData.task}`);\n }\n\n let streamPromise = {} as {\n promise: Promise<any>;\n resolve: (value: any) => void;\n reject: (reason?: any) => void;\n };\n\n streamPromise.promise = new Promise((resolve, reject) => {\n streamPromise.resolve = resolve;\n streamPromise.reject = reject;\n });\n const toolData = {\n name: wf.name,\n args: inputData,\n };\n await emitter.emit('watch-v2', {\n type: 'tool-call-streaming-start',\n ...toolData,\n });\n const run = wf.createRun();\n const { stream, getWorkflowState } = run.stream({\n inputData: input,\n runtimeContext: runtimeContextToUse,\n });\n\n let result: any;\n let stepResults: Record<string, any> = {};\n for await (const chunk of stream) {\n const c: any = chunk;\n // const c = chunk;\n switch (c.type) {\n case 'text-delta':\n await emitter.emit('watch-v2', {\n type: 'tool-call-delta',\n ...toolData,\n argsTextDelta: c.textDelta,\n });\n break;\n\n case 'step-result':\n if (c?.payload?.output) {\n result = c?.payload?.output;\n stepResults[c?.payload?.id] = c?.payload?.output;\n }\n await emitter.emit('watch-v2', c);\n break;\n case 'finish':\n streamPromise.resolve(result);\n break;\n\n case 'start':\n case 'step-start':\n case 'step-finish':\n case 'tool-call':\n case 'tool-result':\n case 'tool-call-streaming-start':\n case 'tool-call-delta':\n case 'source':\n case 'file':\n default:\n await emitter.emit('watch-v2', c);\n break;\n }\n }\n\n let runSuccess = true;\n const runResult = await streamPromise.promise;\n\n const workflowState = await getWorkflowState();\n if (workflowState.status === 'failed') {\n runSuccess = false;\n }\n\n const finalResult = JSON.stringify({\n runId: run.runId,\n runResult,\n runSuccess,\n });\n\n const memory = await this.getMemory({ runtimeContext: runtimeContext || new RuntimeContext() });\n const initData = await getInitData();\n await memory?.saveMessages({\n messages: [\n {\n id: this.#mastra?.generateId() || randomUUID(),\n type: 'text',\n role: 'assistant',\n content: { parts: [{ type: 'text', text: finalResult }], format: 2 },\n createdAt: new Date(),\n threadId: initData.threadId || runId,\n resourceId: initData.threadResourceId || this.name,\n },\n ] as MastraMessageV2[],\n format: 'v2',\n });\n\n return {\n result: finalResult || '',\n task: inputData.task,\n resourceId: inputData.resourceId,\n resourceType: inputData.resourceType,\n isComplete: false,\n iteration: inputData.iteration,\n };\n },\n });\n\n const toolStep = createStep({\n id: 'toolStep',\n inputSchema: z.object({\n task: z.string(),\n resourceId: z.string(),\n resourceType: RESOURCE_TYPES,\n prompt: z.string(),\n result: z.string(),\n isComplete: z.boolean().optional(),\n selectionReason: z.string(),\n iteration: z.number(),\n }),\n outputSchema: z.object({\n task: z.string(),\n resourceId: z.string(),\n resourceType: RESOURCE_TYPES,\n result: z.string(),\n isComplete: z.boolean().optional(),\n iteration: z.number(),\n }),\n execute: async ({ inputData, getInitData }) => {\n const toolsMap = await this.getTools({ runtimeContext: runtimeContextToUse });\n const tool = toolsMap[inputData.resourceId];\n\n if (!tool) {\n throw new Error(`Tool ${inputData.resourceId} not found`);\n }\n\n if (!tool.execute) {\n throw new Error(`Tool ${inputData.resourceId} does not have an execute function`);\n }\n\n let inputDataToUse: any;\n try {\n inputDataToUse = JSON.parse(inputData.prompt);\n } catch (e: unknown) {\n console.error(e);\n throw new Error(`Invalid task input: ${inputData.task}`);\n }\n\n const finalResult: any = await tool.execute({\n runtimeContext: runtimeContextToUse,\n mastra: this.#mastra,\n resourceId: inputData.resourceId,\n threadId: runId,\n runId,\n context: inputDataToUse,\n });\n\n const memory = await this.getMemory({ runtimeContext: runtimeContext || new RuntimeContext() });\n const initData = await getInitData();\n await memory?.saveMessages({\n messages: [\n {\n id: this.#mastra?.generateId() || randomUUID(),\n type: 'text',\n role: 'assistant',\n content: { parts: [{ type: 'text', text: JSON.stringify(finalResult) }], format: 2 },\n createdAt: new Date(),\n threadId: initData.threadId || runId,\n resourceId: initData.threadResourceId || this.name,\n },\n ] as MastraMessageV2[],\n format: 'v2',\n });\n\n return {\n task: inputData.task,\n resourceId: inputData.resourceId,\n resourceType: inputData.resourceType,\n result: finalResult,\n isComplete: false,\n iteration: inputData.iteration,\n };\n },\n });\n\n const finishStep = createStep({\n id: 'finish-step',\n inputSchema: z.object({\n task: z.string(),\n resourceId: z.string(),\n resourceType: RESOURCE_TYPES,\n prompt: z.string(),\n result: z.string(),\n isComplete: z.boolean().optional(),\n selectionReason: z.string(),\n iteration: z.number(),\n }),\n outputSchema: z.object({\n task: z.string(),\n result: z.string(),\n isComplete: z.boolean(),\n iteration: z.number(),\n }),\n execute: async ({ inputData }) => {\n return {\n task: inputData.task,\n result: inputData.result,\n isComplete: !!inputData.isComplete,\n iteration: inputData.iteration,\n };\n },\n });\n\n const networkWorkflow = createWorkflow({\n id: 'Agent-Network-Outer-Workflow',\n inputSchema: z.object({\n task: z.string(),\n resourceId: z.string(),\n resourceType: RESOURCE_TYPES,\n result: z.string().optional(),\n iteration: z.number(),\n threadId: z.string().optional(),\n threadResourceId: z.string().optional(),\n isOneOff: z.boolean(),\n verboseIntrospection: z.boolean(),\n }),\n outputSchema: z.object({\n task: z.string(),\n resourceId: z.string(),\n resourceType: RESOURCE_TYPES,\n prompt: z.string(),\n result: z.string(),\n isComplete: z.boolean().optional(),\n completionReason: z.string().optional(),\n iteration: z.number(),\n threadId: z.string().optional(),\n threadResourceId: z.string().optional(),\n isOneOff: z.boolean(),\n }),\n });\n\n networkWorkflow\n .then(routingStep)\n .branch([\n [async ({ inputData }) => !inputData.isComplete && inputData.resourceType === 'agent', agentStep],\n [async ({ inputData }) => !inputData.isComplete && inputData.resourceType === 'workflow', workflowStep],\n [async ({ inputData }) => !inputData.isComplete && inputData.resourceType === 'tool', toolStep],\n [async ({ inputData }) => inputData.isComplete, finishStep],\n ])\n .map({\n task: {\n step: [routingStep, agentStep, workflowStep, toolStep],\n path: 'task',\n },\n isComplete: {\n step: [agentStep, workflowStep, toolStep, finishStep],\n path: 'isComplete',\n },\n completionReason: {\n step: [routingStep, agentStep, workflowStep, toolStep, finishStep],\n path: 'completionReason',\n },\n result: {\n step: [agentStep, workflowStep, toolStep, finishStep],\n path: 'result',\n },\n resourceId: {\n step: [routingStep, agentStep, workflowStep, toolStep],\n path: 'resourceId',\n },\n resourceType: {\n step: [routingStep, agentStep, workflowStep, toolStep],\n path: 'resourceType',\n },\n iteration: {\n step: [routingStep, agentStep, workflowStep, toolStep],\n path: 'iteration',\n },\n isOneOff: {\n initData: networkWorkflow,\n path: 'isOneOff',\n },\n threadId: {\n initData: networkWorkflow,\n path: 'threadId',\n },\n threadResourceId: {\n initData: networkWorkflow,\n path: 'threadResourceId',\n },\n })\n .commit();\n\n return networkWorkflow;\n }\n\n async generate(\n messages: string | string[] | CoreMessage[] | AiMessageType[] | UIMessageWithMetadata[],\n {\n runtimeContext,\n threadId,\n resourceId,\n }: { runtimeContext?: RuntimeContext; threadId?: string; resourceId?: string },\n ) {\n const networkWorkflow = this.createWorkflow({ runtimeContext });\n const run = networkWorkflow.createRun();\n\n const thread = await this.beforeRun({\n runtimeContext: runtimeContext || new RuntimeContext(),\n threadId: threadId || run.runId,\n resourceId: resourceId || this.name,\n messages,\n });\n\n const message = this.getLastMessage(messages);\n\n const result = await run.start({\n inputData: {\n task: message,\n resourceId: '',\n resourceType: 'none',\n iteration: 0,\n threadId: thread?.id,\n threadResourceId: thread?.resourceId,\n isOneOff: true,\n verboseIntrospection: true,\n },\n });\n\n if (result.status === 'failed') {\n throw result.error;\n }\n\n if (result.status === 'suspended') {\n throw new Error('Workflow suspended');\n }\n\n return {\n task: result.result.task,\n result: result.result.result,\n resourceId: result.result.resourceId,\n resourceType: result.result.resourceType,\n };\n }\n\n async stream(\n messages: string | string[] | CoreMessage[] | AiMessageType[] | UIMessageWithMetadata[],\n {\n runtimeContext,\n threadId,\n resourceId,\n }: { runtimeContext?: RuntimeContext; resourceId?: string; threadId?: string },\n ) {\n const networkWorkflow = this.createWorkflow({ runtimeContext });\n const run = networkWorkflow.createRun();\n\n const thread = await this.beforeRun({\n runtimeContext: runtimeContext || new RuntimeContext(),\n threadId: threadId || run.runId,\n resourceId: resourceId || this.name,\n messages,\n });\n\n const message = this.getLastMessage(messages);\n\n return run.stream({\n inputData: {\n task: `You are executing just one primitive based on the following: ${message}`,\n resourceId: '',\n resourceType: 'none',\n iteration: 0,\n threadResourceId: thread?.resourceId,\n threadId: thread?.id,\n isOneOff: true,\n verboseIntrospection: true,\n },\n });\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../src/network/vNext/index.ts"],"names":["z","MastraBase","RegisteredLogger","randomUUID","MessageList","RuntimeContext","zodToJsonSchema","Agent","createStep","createWorkflow","EMITTER_SYMBOL"],"mappings":"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","file":"index.cjs","sourcesContent":["import { randomUUID } from 'crypto';\nimport { z } from 'zod';\nimport { zodToJsonSchema } from 'zod-to-json-schema';\nimport type { Mastra, MastraMessageV2, Tool } from '../..';\nimport { Agent, MessageList } from '../../agent';\nimport type { MastraLanguageModel } from '../../agent';\nimport type { MessageListInput } from '../../agent/message-list';\nimport { MastraBase } from '../../base';\nimport { RegisteredLogger } from '../../logger';\nimport type { MastraMemory } from '../../memory';\nimport { RuntimeContext } from '../../runtime-context';\nimport type { DynamicArgument } from '../../types';\nimport type { Workflow } from '../../workflows';\nimport { EMITTER_SYMBOL } from '../../workflows/constants';\nimport { createWorkflow, createStep } from '../../workflows/workflow';\n\ninterface NewAgentNetworkConfig {\n id: string;\n name: string;\n instructions: DynamicArgument<string>;\n model: DynamicArgument<MastraLanguageModel>;\n agents: DynamicArgument<Record<string, Agent>>;\n workflows?: DynamicArgument<Record<string, Workflow>>;\n tools?: DynamicArgument<Record<string, Tool<any, any, any>>>;\n memory?: DynamicArgument<MastraMemory>;\n defaultAgent?: DynamicArgument<Agent>;\n}\n\nconst RESOURCE_TYPES = z.enum(['agent', 'workflow', 'none', 'tool', 'none']);\n\nexport class NewAgentNetwork extends MastraBase {\n id: string;\n name: string;\n #instructions: DynamicArgument<string>;\n #model: DynamicArgument<MastraLanguageModel>;\n #agents: DynamicArgument<Record<string, Agent>>;\n #defaultAgent: DynamicArgument<Agent> | undefined;\n #workflows: DynamicArgument<Record<string, Workflow>> | undefined;\n #tools: DynamicArgument<Record<string, Tool>> | undefined;\n #memory?: DynamicArgument<MastraMemory>;\n #mastra?: Mastra;\n\n constructor({\n id,\n name,\n instructions,\n model,\n agents,\n workflows,\n memory,\n tools,\n defaultAgent,\n }: NewAgentNetworkConfig) {\n super({\n component: RegisteredLogger.NETWORK,\n name: name || 'NewAgentNetwork',\n });\n\n this.id = id;\n this.name = name;\n this.#instructions = instructions;\n this.#model = model;\n this.#agents = agents;\n this.#workflows = workflows;\n this.#memory = memory;\n this.#tools = tools;\n this.#defaultAgent = defaultAgent;\n }\n\n __registerMastra(mastra: Mastra) {\n this.#mastra = mastra;\n }\n\n private getLastMessage(messages: MessageListInput) {\n let message = '';\n if (typeof messages === 'string') {\n message = messages;\n } else {\n const lastMessage = Array.isArray(messages) ? messages[messages.length - 1] : messages;\n if (typeof lastMessage === 'string') {\n message = lastMessage;\n } else if (lastMessage && `content` in lastMessage && lastMessage?.content) {\n const lastMessageContent = lastMessage.content;\n if (typeof lastMessageContent === 'string') {\n message = lastMessageContent;\n } else if (Array.isArray(lastMessageContent)) {\n const lastPart = lastMessageContent[lastMessageContent.length - 1];\n if (lastPart?.type === 'text') {\n message = lastPart.text;\n }\n }\n }\n }\n\n return message;\n }\n\n private async beforeRun({\n runtimeContext,\n threadId,\n resourceId,\n messages,\n }: {\n runtimeContext: RuntimeContext;\n threadId: string;\n resourceId: string;\n messages: MessageListInput;\n }) {\n const memory = await this.getMemory({ runtimeContext });\n let thread = await memory?.getThreadById({ threadId });\n if (!thread) {\n thread = await memory?.createThread({\n threadId,\n title: '',\n resourceId,\n });\n }\n if (typeof messages === 'string') {\n await memory?.saveMessages({\n messages: [\n {\n id: this.#mastra?.generateId() || randomUUID(),\n type: 'text',\n role: 'user',\n content: { parts: [{ type: 'text', text: messages }], format: 2 },\n createdAt: new Date(),\n threadId: thread?.id,\n resourceId: thread?.resourceId,\n },\n ] as MastraMessageV2[],\n format: 'v2',\n });\n } else {\n const messageList = new MessageList({\n threadId: thread?.id,\n resourceId: thread?.resourceId,\n });\n messageList.add(messages, 'user');\n const messagesToSave = messageList.get.all.v2();\n\n await memory?.saveMessages({\n messages: messagesToSave,\n format: 'v2',\n });\n }\n\n return thread;\n }\n\n async getAgents({ runtimeContext }: { runtimeContext?: RuntimeContext }) {\n let agentsToUse: Record<string, Agent>;\n\n if (typeof this.#agents === 'function') {\n agentsToUse = await this.#agents({ runtimeContext: runtimeContext || new RuntimeContext() });\n } else {\n agentsToUse = this.#agents;\n }\n\n return agentsToUse;\n }\n\n async getWorkflows({ runtimeContext }: { runtimeContext?: RuntimeContext }) {\n let workflowsToUse: Record<string, Workflow>;\n\n if (typeof this.#workflows === 'function') {\n workflowsToUse = await this.#workflows({ runtimeContext: runtimeContext || new RuntimeContext() });\n } else {\n workflowsToUse = this.#workflows || {};\n }\n\n return workflowsToUse;\n }\n\n async getTools({ runtimeContext }: { runtimeContext?: RuntimeContext }) {\n let toolsToUse: Record<string, Tool>;\n\n if (typeof this.#tools === 'function') {\n toolsToUse = await this.#tools({ runtimeContext: runtimeContext || new RuntimeContext() });\n } else {\n toolsToUse = this.#tools || {};\n }\n\n return toolsToUse;\n }\n\n async getMemory({ runtimeContext }: { runtimeContext?: RuntimeContext }) {\n let memoryToUse: MastraMemory;\n\n if (!this.#memory) {\n return;\n }\n\n if (typeof this.#memory === 'function') {\n memoryToUse = await this.#memory({ runtimeContext: runtimeContext || new RuntimeContext() });\n } else {\n memoryToUse = this.#memory;\n }\n\n return memoryToUse;\n }\n\n async getInstructions({ runtimeContext }: { runtimeContext?: RuntimeContext }) {\n let instructionsToUse = this.#instructions;\n\n if (typeof instructionsToUse === 'function') {\n instructionsToUse = await instructionsToUse({ runtimeContext: runtimeContext || new RuntimeContext() });\n }\n\n return instructionsToUse;\n }\n\n async getRoutingAgent({ runtimeContext }: { runtimeContext?: RuntimeContext }) {\n const instructionsToUse = await this.getInstructions({ runtimeContext: runtimeContext || new RuntimeContext() });\n const memoryToUse = await this.getMemory({ runtimeContext: runtimeContext || new RuntimeContext() });\n const agentsToUse = await this.getAgents({ runtimeContext: runtimeContext || new RuntimeContext() });\n const workflowsToUse = await this.getWorkflows({ runtimeContext: runtimeContext || new RuntimeContext() });\n const toolsToUse = await this.getTools({ runtimeContext: runtimeContext || new RuntimeContext() });\n\n const agentList = Object.entries(agentsToUse)\n .map(([name, agent]) => {\n // Use agent name instead of description since description might not exist\n return ` - **${name}**: ${agent.getDescription()}`;\n })\n .join('\\n');\n\n const workflowList = Object.entries(workflowsToUse)\n .map(([name, workflow]) => {\n return ` - **${name}**: ${workflow.description}, input schema: ${JSON.stringify(\n zodToJsonSchema(workflow.inputSchema),\n )}`;\n })\n .join('\\n');\n\n const toolList = Object.entries(toolsToUse)\n .map(([name, tool]) => {\n return ` - **${name}**: ${tool.description}, input schema: ${JSON.stringify(\n zodToJsonSchema(tool.inputSchema || z.object({})),\n )}`;\n })\n .join('\\n');\n\n const instructions = `\n You are a router in a network of specialized AI agents. \n Your job is to decide which agent should handle each step of a task.\n\n If asking for completion of a task, make sure to follow system instructions closely.\n \n ## System Instructions\n ${instructionsToUse}\n\n You can only pick agents and workflows that are available in the lists below. Never call any agents or workflows that are not available in the lists below.\n\n ## Available Agents in Network\n ${agentList}\n\n ## Available Workflows in Network (make sure to use inputs corresponding to the input schema when calling a workflow)\n ${workflowList}\n\n ## Available Tools in Network (make sure to use inputs corresponding to the input schema when calling a tool)\n ${toolList}\n\n ${\n this.#defaultAgent\n ? `If none of the agents or workflows are appropriate, call the default agent: ${this.#defaultAgent.name}.` +\n `This should not be done lightly. You should only do this if you have exhausted all other options.`\n : ''\n }\n\n If you have multiple entries that need to be called with a workflow or agent, call them separately with each input.\n When calling a workflow, the prompt should be a JSON value that corresponds to the input schema of the workflow. The JSON value is stringified.\n When calling a tool, the prompt should be a JSON value that corresponds to the input schema of the tool. The JSON value is stringified.\n When calling an agent, the prompt should be a text value, like you would call an LLM in a chat interface.\n\n Keep in mind that the user only sees the final result of the task. When reviewing completion, you should know that the user will not see the intermediate results.\n `;\n\n return new Agent({\n name: 'routing-agent',\n instructions,\n model: this.#model,\n memory: memoryToUse,\n // @ts-ignore\n _agentNetworkAppend: true,\n });\n }\n\n async loop(\n messages: MessageListInput,\n {\n runtimeContext,\n maxIterations,\n threadId,\n resourceId,\n }: {\n runtimeContext?: RuntimeContext;\n maxIterations?: number;\n threadId?: string;\n resourceId?: string;\n },\n ) {\n const networkWorkflow = this.createWorkflow({ runtimeContext });\n\n const finalStep = createStep({\n id: 'final-step',\n inputSchema: networkWorkflow.outputSchema,\n outputSchema: networkWorkflow.outputSchema,\n execute: async ({ inputData }) => {\n if (maxIterations && inputData.iteration >= maxIterations) {\n return {\n ...inputData,\n completionReason: `Max iterations reached: ${maxIterations}`,\n };\n }\n\n return inputData;\n },\n });\n\n const mainWorkflow = createWorkflow({\n id: 'Agent-Network-Main-Workflow',\n inputSchema: z.object({\n iteration: z.number(),\n task: z.string(),\n resourceType: RESOURCE_TYPES,\n threadId: z.string().optional(),\n threadResourceId: z.string().optional(),\n }),\n outputSchema: networkWorkflow.outputSchema,\n })\n .dountil(networkWorkflow, async ({ inputData }) => {\n return inputData.isComplete || (maxIterations && inputData.iteration >= maxIterations);\n })\n .then(finalStep)\n .commit();\n\n const run = mainWorkflow.createRun();\n\n const thread = await this.beforeRun({\n runtimeContext: runtimeContext || new RuntimeContext(),\n threadId: threadId || run.runId,\n resourceId: resourceId || this.name,\n messages,\n });\n\n const message = this.getLastMessage(messages);\n\n const result = await run.start({\n inputData: {\n task: message,\n resourceType: 'none',\n iteration: 0,\n threadResourceId: thread?.resourceId,\n threadId: thread?.id,\n },\n });\n\n if (result.status === 'failed') {\n throw result.error;\n }\n\n if (result.status === 'suspended') {\n throw new Error('Workflow suspended');\n }\n\n return result;\n }\n\n async loopStream(\n messages: MessageListInput,\n {\n runtimeContext,\n maxIterations,\n threadId,\n resourceId,\n }: {\n runtimeContext?: RuntimeContext;\n maxIterations?: number;\n threadId?: string;\n resourceId?: string;\n },\n ) {\n const networkWorkflow = this.createWorkflow({ runtimeContext });\n\n const finalStep = createStep({\n id: 'final-step',\n inputSchema: networkWorkflow.outputSchema,\n outputSchema: networkWorkflow.outputSchema,\n execute: async ({ inputData }) => {\n if (maxIterations && inputData.iteration >= maxIterations) {\n return {\n ...inputData,\n completionReason: `Max iterations reached: ${maxIterations}`,\n };\n }\n\n return inputData;\n },\n });\n\n const mainWorkflow = createWorkflow({\n id: 'Agent-Network-Main-Workflow',\n inputSchema: z.object({\n iteration: z.number(),\n task: z.string(),\n resourceId: z.string(),\n resourceType: RESOURCE_TYPES,\n result: z.string().optional(),\n threadId: z.string().optional(),\n threadResourceId: z.string().optional(),\n isOneOff: z.boolean(),\n verboseIntrospection: z.boolean(),\n }),\n outputSchema: z.object({\n task: z.string(),\n resourceId: z.string(),\n resourceType: RESOURCE_TYPES,\n prompt: z.string(),\n result: z.string(),\n isComplete: z.boolean().optional(),\n completionReason: z.string().optional(),\n iteration: z.number(),\n }),\n })\n .dountil(networkWorkflow, async ({ inputData }) => {\n return inputData.isComplete || (maxIterations && inputData.iteration >= maxIterations);\n })\n .then(finalStep)\n .commit();\n\n const run = mainWorkflow.createRun();\n\n const thread = await this.beforeRun({\n runtimeContext: runtimeContext || new RuntimeContext(),\n threadId: threadId || run.runId,\n resourceId: resourceId || this.name,\n messages,\n });\n\n const message = this.getLastMessage(messages);\n\n return run.stream({\n inputData: {\n task: message,\n resourceId: '',\n resourceType: 'none',\n iteration: 0,\n threadResourceId: thread?.resourceId,\n threadId: thread?.id,\n isOneOff: false,\n verboseIntrospection: true,\n },\n });\n }\n\n createWorkflow({ runtimeContext }: { runtimeContext?: RuntimeContext }) {\n const runId = this.#mastra?.generateId() || randomUUID();\n\n const runtimeContextToUse = runtimeContext || new RuntimeContext();\n\n const routingStep = createStep({\n id: 'routing-step',\n inputSchema: z.object({\n task: z.string(),\n resourceId: z.string(),\n resourceType: RESOURCE_TYPES,\n result: z.string().optional(),\n iteration: z.number(),\n threadId: z.string().optional(),\n threadResourceId: z.string().optional(),\n isOneOff: z.boolean(),\n verboseIntrospection: z.boolean(),\n }),\n outputSchema: z.object({\n task: z.string(),\n resourceId: z.string(),\n resourceType: RESOURCE_TYPES,\n prompt: z.string(),\n result: z.string(),\n isComplete: z.boolean().optional(),\n selectionReason: z.string(),\n iteration: z.number(),\n }),\n execute: async ({ inputData, getInitData }) => {\n const initData = await getInitData();\n\n const routingAgent = await this.getRoutingAgent({ runtimeContext: runtimeContextToUse });\n\n const completionSchema = z.object({\n isComplete: z.boolean(),\n finalResult: z.string(),\n completionReason: z.string(),\n });\n let completionResult;\n if (inputData.resourceType !== 'none' && inputData?.result) {\n // Check if the task is complete\n const completionPrompt = `\n The ${inputData.resourceType} ${inputData.resourceId} has contributed to the task.\n This is the result from the agent: ${inputData.result}\n\n You need to evaluate that our task is complete. Pay very close attention to the SYSTEM INSTRUCTIONS for when the task is considered complete. Only return true if the task is complete according to the system instructions. Pay close attention to the finalResult and completionReason.\n Original task: ${inputData.task}\n\n {\n \"isComplete\": boolean,\n \"completionReason\": string,\n \"finalResult\": string\n }\n `;\n\n completionResult = await routingAgent.generate([{ role: 'assistant', content: completionPrompt }], {\n output: completionSchema,\n threadId: initData?.threadId ?? runId,\n resourceId: initData?.threadResourceId ?? this.name,\n runtimeContext: runtimeContextToUse,\n });\n\n if (completionResult.object.isComplete) {\n return {\n task: inputData.task,\n resourceId: '',\n resourceType: 'none' as z.infer<typeof RESOURCE_TYPES>,\n prompt: '',\n result: completionResult.object.finalResult,\n isComplete: true,\n selectionReason: completionResult.object.completionReason,\n iteration: inputData.iteration + 1,\n };\n }\n }\n\n const result = await routingAgent.generate(\n [\n {\n role: 'assistant',\n content: `\n ${inputData.isOneOff ? 'You are executing just one primitive based on the user task. Make sure to pick the primitive that is the best suited to accomplish the whole task. Primitives that execute only part of the task should be avoided.' : 'You will be calling just *one* primitive at a time to accomplish the user task, every call to you is one decision in the process of accomplishing the user task. Make sure to pick primitives that are the best suited to accomplish the whole task. Completeness is the highest priority.'}\n\n The user has given you the following task: \n ${inputData.task}\n ${completionResult ? `\\n\\n${completionResult.object.finalResult}` : ''}\n\n Please select the most appropriate primitive to handle this task and the prompt to be sent to the primitive.\n If you are calling the same agent again, make sure to adjust the prompt to be more specific.\n\n {\n \"resourceId\": string,\n \"resourceType\": \"agent\" | \"workflow\" | \"tool\",\n \"prompt\": string,\n \"selectionReason\": string\n }\n\n The 'selectionReason' property should explain why you picked the primitive${inputData.verboseIntrospection ? ', as well as why the other primitives were not picked.' : '.'}\n `,\n },\n ],\n {\n output: z.object({\n resourceId: z.string(),\n resourceType: RESOURCE_TYPES,\n prompt: z.string(),\n selectionReason: z.string(),\n }),\n threadId: initData?.threadId ?? runId,\n resourceId: initData?.threadResourceId ?? this.name,\n runtimeContext: runtimeContextToUse,\n },\n );\n\n return {\n task: inputData.task,\n result: '',\n resourceId: result.object.resourceId,\n resourceType: result.object.resourceType,\n prompt: result.object.prompt,\n isComplete: result.object.resourceId === 'none' && result.object.resourceType === 'none' ? true : false,\n selectionReason: result.object.selectionReason,\n iteration: inputData.iteration + 1,\n };\n },\n });\n\n const agentStep = createStep({\n id: 'agent-step',\n inputSchema: z.object({\n task: z.string(),\n resourceId: z.string(),\n resourceType: RESOURCE_TYPES,\n prompt: z.string(),\n result: z.string(),\n isComplete: z.boolean().optional(),\n selectionReason: z.string(),\n iteration: z.number(),\n }),\n outputSchema: z.object({\n task: z.string(),\n resourceId: z.string(),\n resourceType: RESOURCE_TYPES,\n result: z.string(),\n isComplete: z.boolean().optional(),\n iteration: z.number(),\n }),\n execute: async ({ inputData, [EMITTER_SYMBOL]: emitter, getInitData }) => {\n const agentsMap = await this.getAgents({ runtimeContext: runtimeContextToUse });\n const agentId = inputData.resourceId;\n\n const agent = agentsMap[inputData.resourceId];\n\n if (!agent) {\n throw new Error(`Agent ${agentId} not found`);\n }\n\n let streamPromise = {} as {\n promise: Promise<string>;\n resolve: (value: string) => void;\n reject: (reason?: any) => void;\n };\n\n streamPromise.promise = new Promise((resolve, reject) => {\n streamPromise.resolve = resolve;\n streamPromise.reject = reject;\n });\n const toolData = {\n name: agent.name,\n args: inputData,\n };\n await emitter.emit('watch-v2', {\n type: 'tool-call-streaming-start',\n ...toolData,\n });\n const { fullStream } = await agent.stream(inputData.prompt, {\n // resourceId: inputData.resourceId,\n // threadId: inputData.threadId,\n runtimeContext: runtimeContextToUse,\n onFinish: result => {\n streamPromise.resolve(result.text);\n },\n });\n\n for await (const chunk of fullStream) {\n switch (chunk.type) {\n case 'text-delta':\n await emitter.emit('watch-v2', {\n type: 'tool-call-delta',\n ...toolData,\n argsTextDelta: chunk.textDelta,\n });\n break;\n\n case 'step-start':\n case 'step-finish':\n case 'finish':\n case 'tool-call':\n case 'tool-result':\n case 'tool-call-streaming-start':\n case 'tool-call-delta':\n break;\n case 'source':\n case 'file':\n default:\n await emitter.emit('watch-v2', chunk);\n break;\n }\n }\n\n const finalResult = await streamPromise.promise;\n\n const memory = await this.getMemory({ runtimeContext: runtimeContext || new RuntimeContext() });\n const initData = await getInitData();\n await memory?.saveMessages({\n messages: [\n {\n id: this.#mastra?.generateId() || randomUUID(),\n type: 'text',\n role: 'assistant',\n content: { parts: [{ type: 'text', text: finalResult }], format: 2 },\n createdAt: new Date(),\n threadId: initData.threadId || runId,\n resourceId: initData.threadResourceId || this.name,\n },\n ] as MastraMessageV2[],\n format: 'v2',\n });\n\n return {\n task: inputData.task,\n resourceId: inputData.resourceId,\n resourceType: inputData.resourceType,\n result: finalResult,\n isComplete: false,\n iteration: inputData.iteration,\n };\n },\n });\n\n const workflowStep = createStep({\n id: 'workflow-step',\n inputSchema: z.object({\n task: z.string(),\n resourceId: z.string(),\n resourceType: RESOURCE_TYPES,\n prompt: z.string(),\n result: z.string(),\n isComplete: z.boolean().optional(),\n selectionReason: z.string(),\n iteration: z.number(),\n }),\n outputSchema: z.object({\n task: z.string(),\n resourceId: z.string(),\n resourceType: RESOURCE_TYPES,\n result: z.string(),\n isComplete: z.boolean().optional(),\n iteration: z.number(),\n }),\n execute: async ({ inputData, [EMITTER_SYMBOL]: emitter, getInitData }) => {\n const workflowsMap = await this.getWorkflows({ runtimeContext: runtimeContextToUse });\n const wf = workflowsMap[inputData.resourceId];\n\n if (!wf) {\n throw new Error(`Workflow ${inputData.resourceId} not found`);\n }\n\n let input;\n try {\n input = JSON.parse(inputData.prompt);\n } catch (e: unknown) {\n console.error(e);\n throw new Error(`Invalid task input: ${inputData.task}`);\n }\n\n let streamPromise = {} as {\n promise: Promise<any>;\n resolve: (value: any) => void;\n reject: (reason?: any) => void;\n };\n\n streamPromise.promise = new Promise((resolve, reject) => {\n streamPromise.resolve = resolve;\n streamPromise.reject = reject;\n });\n const toolData = {\n name: wf.name,\n args: inputData,\n };\n await emitter.emit('watch-v2', {\n type: 'tool-call-streaming-start',\n ...toolData,\n });\n const run = wf.createRun();\n const { stream, getWorkflowState } = run.stream({\n inputData: input,\n runtimeContext: runtimeContextToUse,\n });\n\n let result: any;\n let stepResults: Record<string, any> = {};\n for await (const chunk of stream) {\n const c: any = chunk;\n // const c = chunk;\n switch (c.type) {\n case 'text-delta':\n await emitter.emit('watch-v2', {\n type: 'tool-call-delta',\n ...toolData,\n argsTextDelta: c.textDelta,\n });\n break;\n\n case 'step-result':\n if (c?.payload?.output) {\n result = c?.payload?.output;\n stepResults[c?.payload?.id] = c?.payload?.output;\n }\n await emitter.emit('watch-v2', c);\n break;\n case 'finish':\n streamPromise.resolve(result);\n break;\n\n case 'start':\n case 'step-start':\n case 'step-finish':\n case 'tool-call':\n case 'tool-result':\n case 'tool-call-streaming-start':\n case 'tool-call-delta':\n case 'source':\n case 'file':\n default:\n await emitter.emit('watch-v2', c);\n break;\n }\n }\n\n let runSuccess = true;\n const runResult = await streamPromise.promise;\n\n const workflowState = await getWorkflowState();\n if (workflowState.status === 'failed') {\n runSuccess = false;\n }\n\n const finalResult = JSON.stringify({\n runId: run.runId,\n runResult,\n runSuccess,\n });\n\n const memory = await this.getMemory({ runtimeContext: runtimeContext || new RuntimeContext() });\n const initData = await getInitData();\n await memory?.saveMessages({\n messages: [\n {\n id: this.#mastra?.generateId() || randomUUID(),\n type: 'text',\n role: 'assistant',\n content: { parts: [{ type: 'text', text: finalResult }], format: 2 },\n createdAt: new Date(),\n threadId: initData.threadId || runId,\n resourceId: initData.threadResourceId || this.name,\n },\n ] as MastraMessageV2[],\n format: 'v2',\n });\n\n return {\n result: finalResult || '',\n task: inputData.task,\n resourceId: inputData.resourceId,\n resourceType: inputData.resourceType,\n isComplete: false,\n iteration: inputData.iteration,\n };\n },\n });\n\n const toolStep = createStep({\n id: 'toolStep',\n inputSchema: z.object({\n task: z.string(),\n resourceId: z.string(),\n resourceType: RESOURCE_TYPES,\n prompt: z.string(),\n result: z.string(),\n isComplete: z.boolean().optional(),\n selectionReason: z.string(),\n iteration: z.number(),\n }),\n outputSchema: z.object({\n task: z.string(),\n resourceId: z.string(),\n resourceType: RESOURCE_TYPES,\n result: z.string(),\n isComplete: z.boolean().optional(),\n iteration: z.number(),\n }),\n execute: async ({ inputData, getInitData }) => {\n const toolsMap = await this.getTools({ runtimeContext: runtimeContextToUse });\n const tool = toolsMap[inputData.resourceId];\n\n if (!tool) {\n throw new Error(`Tool ${inputData.resourceId} not found`);\n }\n\n if (!tool.execute) {\n throw new Error(`Tool ${inputData.resourceId} does not have an execute function`);\n }\n\n let inputDataToUse: any;\n try {\n inputDataToUse = JSON.parse(inputData.prompt);\n } catch (e: unknown) {\n console.error(e);\n throw new Error(`Invalid task input: ${inputData.task}`);\n }\n\n const finalResult: any = await tool.execute({\n runtimeContext: runtimeContextToUse,\n mastra: this.#mastra,\n resourceId: inputData.resourceId,\n threadId: runId,\n runId,\n context: inputDataToUse,\n });\n\n const memory = await this.getMemory({ runtimeContext: runtimeContext || new RuntimeContext() });\n const initData = await getInitData();\n await memory?.saveMessages({\n messages: [\n {\n id: this.#mastra?.generateId() || randomUUID(),\n type: 'text',\n role: 'assistant',\n content: { parts: [{ type: 'text', text: JSON.stringify(finalResult) }], format: 2 },\n createdAt: new Date(),\n threadId: initData.threadId || runId,\n resourceId: initData.threadResourceId || this.name,\n },\n ] as MastraMessageV2[],\n format: 'v2',\n });\n\n return {\n task: inputData.task,\n resourceId: inputData.resourceId,\n resourceType: inputData.resourceType,\n result: finalResult,\n isComplete: false,\n iteration: inputData.iteration,\n };\n },\n });\n\n const finishStep = createStep({\n id: 'finish-step',\n inputSchema: z.object({\n task: z.string(),\n resourceId: z.string(),\n resourceType: RESOURCE_TYPES,\n prompt: z.string(),\n result: z.string(),\n isComplete: z.boolean().optional(),\n selectionReason: z.string(),\n iteration: z.number(),\n }),\n outputSchema: z.object({\n task: z.string(),\n result: z.string(),\n isComplete: z.boolean(),\n iteration: z.number(),\n }),\n execute: async ({ inputData }) => {\n return {\n task: inputData.task,\n result: inputData.result,\n isComplete: !!inputData.isComplete,\n iteration: inputData.iteration,\n };\n },\n });\n\n const networkWorkflow = createWorkflow({\n id: 'Agent-Network-Outer-Workflow',\n inputSchema: z.object({\n task: z.string(),\n resourceId: z.string(),\n resourceType: RESOURCE_TYPES,\n result: z.string().optional(),\n iteration: z.number(),\n threadId: z.string().optional(),\n threadResourceId: z.string().optional(),\n isOneOff: z.boolean(),\n verboseIntrospection: z.boolean(),\n }),\n outputSchema: z.object({\n task: z.string(),\n resourceId: z.string(),\n resourceType: RESOURCE_TYPES,\n prompt: z.string(),\n result: z.string(),\n isComplete: z.boolean().optional(),\n completionReason: z.string().optional(),\n iteration: z.number(),\n threadId: z.string().optional(),\n threadResourceId: z.string().optional(),\n isOneOff: z.boolean(),\n }),\n });\n\n networkWorkflow\n .then(routingStep)\n .branch([\n [async ({ inputData }) => !inputData.isComplete && inputData.resourceType === 'agent', agentStep],\n [async ({ inputData }) => !inputData.isComplete && inputData.resourceType === 'workflow', workflowStep],\n [async ({ inputData }) => !inputData.isComplete && inputData.resourceType === 'tool', toolStep],\n [async ({ inputData }) => inputData.isComplete, finishStep],\n ])\n .map({\n task: {\n step: [routingStep, agentStep, workflowStep, toolStep],\n path: 'task',\n },\n isComplete: {\n step: [agentStep, workflowStep, toolStep, finishStep],\n path: 'isComplete',\n },\n completionReason: {\n step: [routingStep, agentStep, workflowStep, toolStep, finishStep],\n path: 'completionReason',\n },\n result: {\n step: [agentStep, workflowStep, toolStep, finishStep],\n path: 'result',\n },\n resourceId: {\n step: [routingStep, agentStep, workflowStep, toolStep],\n path: 'resourceId',\n },\n resourceType: {\n step: [routingStep, agentStep, workflowStep, toolStep],\n path: 'resourceType',\n },\n iteration: {\n step: [routingStep, agentStep, workflowStep, toolStep],\n path: 'iteration',\n },\n isOneOff: {\n initData: networkWorkflow,\n path: 'isOneOff',\n },\n threadId: {\n initData: networkWorkflow,\n path: 'threadId',\n },\n threadResourceId: {\n initData: networkWorkflow,\n path: 'threadResourceId',\n },\n })\n .commit();\n\n return networkWorkflow;\n }\n\n async generate(\n messages: MessageListInput,\n {\n runtimeContext,\n threadId,\n resourceId,\n }: { runtimeContext?: RuntimeContext; threadId?: string; resourceId?: string },\n ) {\n const networkWorkflow = this.createWorkflow({ runtimeContext });\n const run = networkWorkflow.createRun();\n\n const thread = await this.beforeRun({\n runtimeContext: runtimeContext || new RuntimeContext(),\n threadId: threadId || run.runId,\n resourceId: resourceId || this.name,\n messages,\n });\n\n const message = this.getLastMessage(messages);\n\n const result = await run.start({\n inputData: {\n task: message,\n resourceId: '',\n resourceType: 'none',\n iteration: 0,\n threadId: thread?.id,\n threadResourceId: thread?.resourceId,\n isOneOff: true,\n verboseIntrospection: true,\n },\n });\n\n if (result.status === 'failed') {\n throw result.error;\n }\n\n if (result.status === 'suspended') {\n throw new Error('Workflow suspended');\n }\n\n return {\n task: result.result.task,\n result: result.result.result,\n resourceId: result.result.resourceId,\n resourceType: result.result.resourceType,\n };\n }\n\n async stream(\n messages: MessageListInput,\n {\n runtimeContext,\n threadId,\n resourceId,\n }: { runtimeContext?: RuntimeContext; resourceId?: string; threadId?: string },\n ) {\n const networkWorkflow = this.createWorkflow({ runtimeContext });\n const run = networkWorkflow.createRun();\n\n const thread = await this.beforeRun({\n runtimeContext: runtimeContext || new RuntimeContext(),\n threadId: threadId || run.runId,\n resourceId: resourceId || this.name,\n messages,\n });\n\n const message = this.getLastMessage(messages);\n\n return run.stream({\n inputData: {\n task: `You are executing just one primitive based on the following: ${message}`,\n resourceId: '',\n resourceType: 'none',\n iteration: 0,\n threadResourceId: thread?.resourceId,\n threadId: thread?.id,\n isOneOff: true,\n verboseIntrospection: true,\n },\n });\n }\n}\n"]}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type { CoreMessage } from 'ai';
|
|
2
1
|
import { z } from 'zod';
|
|
3
|
-
import type {
|
|
2
|
+
import type { Mastra, Tool } from '../../index.js';
|
|
4
3
|
import { Agent } from '../../agent/index.js';
|
|
5
|
-
import type { MastraLanguageModel
|
|
4
|
+
import type { MastraLanguageModel } from '../../agent/index.js';
|
|
5
|
+
import type { MessageListInput } from '../../agent/message-list/index.js';
|
|
6
6
|
import { MastraBase } from '../../base.js';
|
|
7
7
|
import type { MastraMemory } from '../../memory/index.js';
|
|
8
8
|
import { RuntimeContext } from '../../runtime-context/index.js';
|
|
@@ -45,7 +45,7 @@ export declare class NewAgentNetwork extends MastraBase {
|
|
|
45
45
|
getRoutingAgent({ runtimeContext }: {
|
|
46
46
|
runtimeContext?: RuntimeContext;
|
|
47
47
|
}): Promise<Agent<"routing-agent", import("../../agent").ToolsInput, Record<string, import("../..").Metric>>>;
|
|
48
|
-
loop(messages:
|
|
48
|
+
loop(messages: MessageListInput, { runtimeContext, maxIterations, threadId, resourceId, }: {
|
|
49
49
|
runtimeContext?: RuntimeContext;
|
|
50
50
|
maxIterations?: number;
|
|
51
51
|
threadId?: string;
|
|
@@ -69,7 +69,7 @@ export declare class NewAgentNetwork extends MastraBase {
|
|
|
69
69
|
[x: string]: import("../..").StepResult<any, any, any, any> | import("../..").StepResult<unknown, unknown, unknown, unknown>;
|
|
70
70
|
};
|
|
71
71
|
}>;
|
|
72
|
-
loopStream(messages:
|
|
72
|
+
loopStream(messages: MessageListInput, { runtimeContext, maxIterations, threadId, resourceId, }: {
|
|
73
73
|
runtimeContext?: RuntimeContext;
|
|
74
74
|
maxIterations?: number;
|
|
75
75
|
threadId?: string;
|
|
@@ -204,7 +204,7 @@ export declare class NewAgentNetwork extends MastraBase {
|
|
|
204
204
|
result?: string | undefined;
|
|
205
205
|
threadResourceId?: string | undefined;
|
|
206
206
|
}>>;
|
|
207
|
-
generate(messages:
|
|
207
|
+
generate(messages: MessageListInput, { runtimeContext, threadId, resourceId, }: {
|
|
208
208
|
runtimeContext?: RuntimeContext;
|
|
209
209
|
threadId?: string;
|
|
210
210
|
resourceId?: string;
|
|
@@ -214,7 +214,7 @@ export declare class NewAgentNetwork extends MastraBase {
|
|
|
214
214
|
resourceId: string;
|
|
215
215
|
resourceType: "none" | "tool" | "workflow" | "agent";
|
|
216
216
|
}>;
|
|
217
|
-
stream(messages:
|
|
217
|
+
stream(messages: MessageListInput, { runtimeContext, threadId, resourceId, }: {
|
|
218
218
|
runtimeContext?: RuntimeContext;
|
|
219
219
|
resourceId?: string;
|
|
220
220
|
threadId?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/network/vNext/index.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/network/vNext/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { createStep, createWorkflow } from '../../chunk-
|
|
1
|
+
import { createStep, createWorkflow } from '../../chunk-4XDSHUFK.js';
|
|
2
2
|
import { EMITTER_SYMBOL } from '../../chunk-GK5V7YTQ.js';
|
|
3
|
-
import { Agent } from '../../chunk-
|
|
4
|
-
import { MessageList } from '../../chunk-
|
|
3
|
+
import { Agent } from '../../chunk-DAMIFZPW.js';
|
|
4
|
+
import { MessageList } from '../../chunk-OPT2L5AM.js';
|
|
5
5
|
import { RuntimeContext } from '../../chunk-HLRWYUFN.js';
|
|
6
|
-
import { MastraBase } from '../../chunk-
|
|
7
|
-
import { RegisteredLogger } from '../../chunk-
|
|
6
|
+
import { MastraBase } from '../../chunk-6GF5M4GX.js';
|
|
7
|
+
import { RegisteredLogger } from '../../chunk-X3GXU6TZ.js';
|
|
8
8
|
import { randomUUID } from 'crypto';
|
|
9
9
|
import { z } from 'zod';
|
|
10
10
|
import { zodToJsonSchema } from 'zod-to-json-schema';
|
|
@@ -54,10 +54,10 @@ var NewAgentNetwork = class extends MastraBase {
|
|
|
54
54
|
if (typeof messages === "string") {
|
|
55
55
|
message = messages;
|
|
56
56
|
} else {
|
|
57
|
-
const lastMessage = messages[messages.length - 1];
|
|
57
|
+
const lastMessage = Array.isArray(messages) ? messages[messages.length - 1] : messages;
|
|
58
58
|
if (typeof lastMessage === "string") {
|
|
59
59
|
message = lastMessage;
|
|
60
|
-
} else if (lastMessage?.content) {
|
|
60
|
+
} else if (lastMessage && `content` in lastMessage && lastMessage?.content) {
|
|
61
61
|
const lastMessageContent = lastMessage.content;
|
|
62
62
|
if (typeof lastMessageContent === "string") {
|
|
63
63
|
message = lastMessageContent;
|