@mastra/core 0.18.0 → 0.18.1-alpha.0

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.
Files changed (198) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/dist/action/index.d.ts +5 -5
  3. package/dist/action/index.d.ts.map +1 -1
  4. package/dist/agent/agent.d.ts +1 -1
  5. package/dist/agent/agent.d.ts.map +1 -1
  6. package/dist/agent/index.cjs +11 -11
  7. package/dist/agent/index.js +2 -2
  8. package/dist/agent/input-processor/index.cjs +6 -6
  9. package/dist/agent/input-processor/index.js +1 -1
  10. package/dist/agent/message-list/index.d.ts +1 -1
  11. package/dist/agent/message-list/index.d.ts.map +1 -1
  12. package/dist/agent/trip-wire.d.ts +14 -0
  13. package/dist/agent/trip-wire.d.ts.map +1 -1
  14. package/dist/agent/types.d.ts +6 -3
  15. package/dist/agent/types.d.ts.map +1 -1
  16. package/dist/agent/workflows/prepare-stream/map-results-step.d.ts +4 -33
  17. package/dist/agent/workflows/prepare-stream/map-results-step.d.ts.map +1 -1
  18. package/dist/agent/workflows/prepare-stream/schema.d.ts +3 -1
  19. package/dist/agent/workflows/prepare-stream/schema.d.ts.map +1 -1
  20. package/dist/ai-tracing/index.cjs +32 -32
  21. package/dist/ai-tracing/index.js +1 -1
  22. package/dist/base.d.ts +1 -1
  23. package/dist/{chunk-SHFLPFKN.js → chunk-245ANI3P.js} +3 -3
  24. package/dist/{chunk-SHFLPFKN.js.map → chunk-245ANI3P.js.map} +1 -1
  25. package/dist/{chunk-GMQUHK3L.js → chunk-36DRWGP4.js} +4 -4
  26. package/dist/{chunk-GMQUHK3L.js.map → chunk-36DRWGP4.js.map} +1 -1
  27. package/dist/{chunk-JXRAFE3E.js → chunk-4DNSY645.js} +3 -3
  28. package/dist/{chunk-JXRAFE3E.js.map → chunk-4DNSY645.js.map} +1 -1
  29. package/dist/{chunk-WAGAASWE.cjs → chunk-4PK4GBYZ.cjs} +4 -4
  30. package/dist/{chunk-WAGAASWE.cjs.map → chunk-4PK4GBYZ.cjs.map} +1 -1
  31. package/dist/{chunk-2ZSMA4EM.js → chunk-5ZMC3NEO.js} +369 -352
  32. package/dist/chunk-5ZMC3NEO.js.map +1 -0
  33. package/dist/{chunk-L7Z3C5XG.cjs → chunk-6X4FZVGT.cjs} +4 -4
  34. package/dist/{chunk-L7Z3C5XG.cjs.map → chunk-6X4FZVGT.cjs.map} +1 -1
  35. package/dist/{chunk-USHKSVKL.js → chunk-6ZVNL435.js} +7 -6
  36. package/dist/chunk-6ZVNL435.js.map +1 -0
  37. package/dist/{chunk-CBV6EVJK.cjs → chunk-73S2WYSD.cjs} +402 -384
  38. package/dist/chunk-73S2WYSD.cjs.map +1 -0
  39. package/dist/{chunk-GGN63GU5.cjs → chunk-7UEBC5KM.cjs} +7 -7
  40. package/dist/{chunk-GGN63GU5.cjs.map → chunk-7UEBC5KM.cjs.map} +1 -1
  41. package/dist/{chunk-6NZTZOEI.js → chunk-B4REUTZB.js} +32 -14
  42. package/dist/chunk-B4REUTZB.js.map +1 -0
  43. package/dist/{chunk-QIXLPKMN.cjs → chunk-CKZK2EPZ.cjs} +4 -4
  44. package/dist/{chunk-QIXLPKMN.cjs.map → chunk-CKZK2EPZ.cjs.map} +1 -1
  45. package/dist/{chunk-AR76DMZQ.js → chunk-EJ2FU45N.js} +2 -2
  46. package/dist/chunk-EJ2FU45N.js.map +1 -0
  47. package/dist/{chunk-AEYCHF2U.cjs → chunk-ITBUHG4U.cjs} +6 -6
  48. package/dist/{chunk-AEYCHF2U.cjs.map → chunk-ITBUHG4U.cjs.map} +1 -1
  49. package/dist/{chunk-TZZFP4EW.js → chunk-LL2X7QT7.js} +3 -3
  50. package/dist/{chunk-TZZFP4EW.js.map → chunk-LL2X7QT7.js.map} +1 -1
  51. package/dist/{chunk-X2TVBX7O.js → chunk-NG2XDPDY.js} +3 -3
  52. package/dist/{chunk-X2TVBX7O.js.map → chunk-NG2XDPDY.js.map} +1 -1
  53. package/dist/{chunk-OVVKYARB.cjs → chunk-NTS6B2I2.cjs} +2 -2
  54. package/dist/chunk-NTS6B2I2.cjs.map +1 -0
  55. package/dist/{chunk-TRZT7QPJ.cjs → chunk-QBTRGHUF.cjs} +6 -6
  56. package/dist/{chunk-TRZT7QPJ.cjs.map → chunk-QBTRGHUF.cjs.map} +1 -1
  57. package/dist/{chunk-UMATHB4Q.cjs → chunk-QUB6MWXZ.cjs} +14 -13
  58. package/dist/chunk-QUB6MWXZ.cjs.map +1 -0
  59. package/dist/{chunk-YDLEEOJ6.js → chunk-ROU7YJLG.js} +3 -3
  60. package/dist/{chunk-YDLEEOJ6.js.map → chunk-ROU7YJLG.js.map} +1 -1
  61. package/dist/{chunk-TJZ4ERV4.cjs → chunk-SALFMUAY.cjs} +7 -7
  62. package/dist/{chunk-TJZ4ERV4.cjs.map → chunk-SALFMUAY.cjs.map} +1 -1
  63. package/dist/{chunk-7CF3FKP3.js → chunk-VGU5ZYYG.js} +3 -3
  64. package/dist/{chunk-7CF3FKP3.js.map → chunk-VGU5ZYYG.js.map} +1 -1
  65. package/dist/{chunk-JRTFV63C.cjs → chunk-VZLNVGYM.cjs} +41 -23
  66. package/dist/chunk-VZLNVGYM.cjs.map +1 -0
  67. package/dist/{chunk-Y5XECV4O.cjs → chunk-WVRSMHE5.cjs} +4 -4
  68. package/dist/{chunk-Y5XECV4O.cjs.map → chunk-WVRSMHE5.cjs.map} +1 -1
  69. package/dist/{chunk-SQFVIROI.js → chunk-XWJWU5OM.js} +3 -3
  70. package/dist/{chunk-SQFVIROI.js.map → chunk-XWJWU5OM.js.map} +1 -1
  71. package/dist/index.cjs +49 -45
  72. package/dist/index.js +10 -10
  73. package/dist/integration/index.cjs +3 -3
  74. package/dist/integration/index.js +1 -1
  75. package/dist/loop/index.cjs +2 -2
  76. package/dist/loop/index.js +1 -1
  77. package/dist/loop/network/index.d.ts +18 -18
  78. package/dist/loop/network/index.d.ts.map +1 -1
  79. package/dist/loop/test-utils/fullStream.d.ts.map +1 -1
  80. package/dist/loop/test-utils/generateText.d.ts.map +1 -1
  81. package/dist/loop/test-utils/options.d.ts.map +1 -1
  82. package/dist/loop/test-utils/resultObject.d.ts.map +1 -1
  83. package/dist/loop/test-utils/streamObject.d.ts.map +1 -1
  84. package/dist/loop/types.d.ts +5 -5
  85. package/dist/loop/types.d.ts.map +1 -1
  86. package/dist/loop/workflows/agentic-execution/index.d.ts +48 -48
  87. package/dist/loop/workflows/agentic-execution/llm-execution-step.d.ts +32 -32
  88. package/dist/loop/workflows/agentic-execution/llm-execution-step.d.ts.map +1 -1
  89. package/dist/loop/workflows/agentic-execution/llm-mapping-step.d.ts +16 -16
  90. package/dist/loop/workflows/agentic-loop/index.d.ts +48 -48
  91. package/dist/loop/workflows/agentic-loop/index.d.ts.map +1 -1
  92. package/dist/loop/workflows/schema.d.ts +19 -19
  93. package/dist/loop/workflows/schema.d.ts.map +1 -1
  94. package/dist/loop/workflows/stream.d.ts +13 -0
  95. package/dist/loop/workflows/stream.d.ts.map +1 -1
  96. package/dist/mastra/index.cjs +2 -2
  97. package/dist/mastra/index.d.ts +1 -1
  98. package/dist/mastra/index.d.ts.map +1 -1
  99. package/dist/mastra/index.js +1 -1
  100. package/dist/memory/index.cjs +4 -4
  101. package/dist/memory/index.js +1 -1
  102. package/dist/memory/types.d.ts +1 -1
  103. package/dist/network/vNext/index.cjs +29 -29
  104. package/dist/network/vNext/index.cjs.map +1 -1
  105. package/dist/network/vNext/index.d.ts +14 -14
  106. package/dist/network/vNext/index.js +17 -17
  107. package/dist/network/vNext/index.js.map +1 -1
  108. package/dist/processors/index.cjs +10 -10
  109. package/dist/processors/index.js +1 -1
  110. package/dist/processors/runner.d.ts +7 -7
  111. package/dist/processors/runner.d.ts.map +1 -1
  112. package/dist/relevance/index.cjs +4 -4
  113. package/dist/relevance/index.js +1 -1
  114. package/dist/scores/index.cjs +9 -9
  115. package/dist/scores/index.js +2 -2
  116. package/dist/scores/scoreTraces/index.cjs +8 -8
  117. package/dist/scores/scoreTraces/index.js +3 -3
  118. package/dist/storage/index.cjs +3 -3
  119. package/dist/storage/index.js +1 -1
  120. package/dist/stream/MastraAgentNetworkStream.d.ts.map +1 -1
  121. package/dist/stream/MastraWorkflowStream.d.ts.map +1 -1
  122. package/dist/stream/aisdk/v5/compat/ui-message.d.ts +5 -5
  123. package/dist/stream/aisdk/v5/compat/ui-message.d.ts.map +1 -1
  124. package/dist/stream/aisdk/v5/execute.d.ts +2 -5
  125. package/dist/stream/aisdk/v5/execute.d.ts.map +1 -1
  126. package/dist/stream/aisdk/v5/input.d.ts +2 -1
  127. package/dist/stream/aisdk/v5/input.d.ts.map +1 -1
  128. package/dist/stream/aisdk/v5/output-helpers.d.ts +5 -11
  129. package/dist/stream/aisdk/v5/output-helpers.d.ts.map +1 -1
  130. package/dist/stream/aisdk/v5/output.d.ts +36 -16
  131. package/dist/stream/aisdk/v5/output.d.ts.map +1 -1
  132. package/dist/stream/aisdk/v5/transform.d.ts +6 -6
  133. package/dist/stream/aisdk/v5/transform.d.ts.map +1 -1
  134. package/dist/stream/base/input.d.ts +2 -1
  135. package/dist/stream/base/input.d.ts.map +1 -1
  136. package/dist/stream/base/output.d.ts +69 -82
  137. package/dist/stream/base/output.d.ts.map +1 -1
  138. package/dist/stream/index.cjs +4 -4
  139. package/dist/stream/index.d.ts +1 -1
  140. package/dist/stream/index.d.ts.map +1 -1
  141. package/dist/stream/index.js +1 -1
  142. package/dist/stream/types.d.ts +205 -84
  143. package/dist/stream/types.d.ts.map +1 -1
  144. package/dist/test-utils/llm-mock.cjs +2 -2
  145. package/dist/test-utils/llm-mock.js +1 -1
  146. package/dist/tools/index.cjs +4 -4
  147. package/dist/tools/index.js +1 -1
  148. package/dist/tools/is-vercel-tool.cjs +2 -2
  149. package/dist/tools/is-vercel-tool.js +1 -1
  150. package/dist/tools/tool.d.ts +4 -4
  151. package/dist/tools/tool.d.ts.map +1 -1
  152. package/dist/tools/types.d.ts +8 -7
  153. package/dist/tools/types.d.ts.map +1 -1
  154. package/dist/tools/validation.d.ts +2 -1
  155. package/dist/tools/validation.d.ts.map +1 -1
  156. package/dist/types/zod-compat.d.ts +23 -0
  157. package/dist/types/zod-compat.d.ts.map +1 -0
  158. package/dist/utils.cjs +17 -17
  159. package/dist/utils.js +1 -1
  160. package/dist/workflows/default.d.ts +1 -1
  161. package/dist/workflows/default.d.ts.map +1 -1
  162. package/dist/workflows/evented/index.cjs +10 -10
  163. package/dist/workflows/evented/index.js +1 -1
  164. package/dist/workflows/evented/step-executor.d.ts +1 -0
  165. package/dist/workflows/evented/step-executor.d.ts.map +1 -1
  166. package/dist/workflows/evented/workflow-event-processor/index.d.ts.map +1 -1
  167. package/dist/workflows/evented/workflow.d.ts +3 -1
  168. package/dist/workflows/evented/workflow.d.ts.map +1 -1
  169. package/dist/workflows/execution-engine.d.ts +2 -1
  170. package/dist/workflows/execution-engine.d.ts.map +1 -1
  171. package/dist/workflows/index.cjs +15 -11
  172. package/dist/workflows/index.d.ts +1 -0
  173. package/dist/workflows/index.d.ts.map +1 -1
  174. package/dist/workflows/index.js +1 -1
  175. package/dist/workflows/legacy/index.cjs +22 -22
  176. package/dist/workflows/legacy/index.js +1 -1
  177. package/dist/workflows/legacy/step.d.ts +4 -4
  178. package/dist/workflows/legacy/step.d.ts.map +1 -1
  179. package/dist/workflows/legacy/types.d.ts +12 -7
  180. package/dist/workflows/legacy/types.d.ts.map +1 -1
  181. package/dist/workflows/legacy/workflow-instance.d.ts +2 -2
  182. package/dist/workflows/step.d.ts +3 -1
  183. package/dist/workflows/step.d.ts.map +1 -1
  184. package/dist/workflows/types.d.ts +1 -0
  185. package/dist/workflows/types.d.ts.map +1 -1
  186. package/dist/workflows/utils.d.ts +10 -0
  187. package/dist/workflows/utils.d.ts.map +1 -0
  188. package/dist/workflows/workflow.d.ts +24 -11
  189. package/dist/workflows/workflow.d.ts.map +1 -1
  190. package/package.json +5 -2
  191. package/dist/chunk-2ZSMA4EM.js.map +0 -1
  192. package/dist/chunk-6NZTZOEI.js.map +0 -1
  193. package/dist/chunk-AR76DMZQ.js.map +0 -1
  194. package/dist/chunk-CBV6EVJK.cjs.map +0 -1
  195. package/dist/chunk-JRTFV63C.cjs.map +0 -1
  196. package/dist/chunk-OVVKYARB.cjs.map +0 -1
  197. package/dist/chunk-UMATHB4Q.cjs.map +0 -1
  198. package/dist/chunk-USHKSVKL.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/network/vNext/index.ts"],"names":["MastraBase","RegisteredLogger","randomUUID","MessageList","RuntimeContext","zodToJsonSchema","z","Agent","createStep","createWorkflow","RESOURCE_TYPES","EMITTER_SYMBOL","result"],"mappings":"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","file":"index.cjs","sourcesContent":["import { randomUUID } from 'crypto';\nimport { zodToJsonSchema } from '@mastra/schema-compat/zod-to-json';\nimport { z } from 'zod';\nimport { Agent, MessageList } from '../../agent';\nimport type { MessageListInput } from '../../agent/message-list';\nimport { MastraBase } from '../../base';\nimport type { MastraLanguageModel } from '../../llm/model/shared.types';\nimport { RegisteredLogger } from '../../logger';\nimport { RESOURCE_TYPES } from '../../loop/types';\nimport type { Mastra } from '../../mastra';\nimport type { MastraMessageV2, MastraMemory } from '../../memory';\nimport { RuntimeContext } from '../../runtime-context';\nimport type { Tool } from '../../tools';\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\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 console.warn(\n `⚠️ DEPRECATION WARNING: AgentNetwork vNext will be deprecated on September 30th, 2025 and will be removed in a future version. Please use agent.network() instead.`,\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 = await mainWorkflow.createRunAsync();\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 = await mainWorkflow.createRunAsync();\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 model = await routingAgent.getModel();\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 if (model.specificationVersion === 'v2') {\n completionResult = await routingAgent.generateVNext([{ role: 'assistant', content: completionPrompt }], {\n output: completionSchema,\n threadId: initData?.threadId ?? runId,\n resourceId: initData?.threadResourceId ?? this.name,\n runtimeContext: runtimeContextToUse,\n });\n } else {\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\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 let result;\n const prompt: MessageListInput = [\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 const options = {\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 if (model.specificationVersion === 'v2') {\n result = await routingAgent.generateVNext(prompt, options);\n } else {\n result = await routingAgent.generate(prompt, options);\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\n const model = await agent.getModel();\n\n let result;\n\n if (model.specificationVersion === 'v2') {\n result = await agent.streamVNext(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 result.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.payload.text,\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-input-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 } else {\n result = 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 result.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\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 = await wf.createRunAsync();\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 // TODO: Pass proper tracing context when network supports tracing\n tracingContext: { currentSpan: undefined },\n suspend: async () => {}, // TODO\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 = await networkWorkflow.createRunAsync();\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 = await networkWorkflow.createRunAsync();\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":["MastraBase","RegisteredLogger","randomUUID","MessageList","RuntimeContext","zodToJsonSchema","z","Agent","createStep","createWorkflow","PRIMITIVE_TYPES","EMITTER_SYMBOL","result"],"mappings":"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","file":"index.cjs","sourcesContent":["import { randomUUID } from 'crypto';\nimport { zodToJsonSchema } from '@mastra/schema-compat/zod-to-json';\nimport { z } from 'zod';\nimport { Agent, MessageList } from '../../agent';\nimport type { MessageListInput } from '../../agent/message-list';\nimport { MastraBase } from '../../base';\nimport type { MastraLanguageModel } from '../../llm/model/shared.types';\nimport { RegisteredLogger } from '../../logger';\nimport { PRIMITIVE_TYPES } from '../../loop/types';\nimport type { Mastra } from '../../mastra';\nimport type { MastraMessageV2, MastraMemory } from '../../memory';\nimport { RuntimeContext } from '../../runtime-context';\nimport type { Tool } from '../../tools';\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\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 console.warn(\n `⚠️ DEPRECATION WARNING: AgentNetwork vNext will be deprecated on September 30th, 2025 and will be removed in a future version. Please use agent.network() instead.`,\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: PRIMITIVE_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 = await mainWorkflow.createRunAsync();\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: PRIMITIVE_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: PRIMITIVE_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 = await mainWorkflow.createRunAsync();\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: PRIMITIVE_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: PRIMITIVE_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 model = await routingAgent.getModel();\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 if (model.specificationVersion === 'v2') {\n completionResult = await routingAgent.generateVNext([{ role: 'assistant', content: completionPrompt }], {\n output: completionSchema,\n threadId: initData?.threadId ?? runId,\n resourceId: initData?.threadResourceId ?? this.name,\n runtimeContext: runtimeContextToUse,\n });\n } else {\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\n if (completionResult.object.isComplete) {\n return {\n task: inputData.task,\n resourceId: '',\n resourceType: 'none' as z.infer<typeof PRIMITIVE_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 let result;\n const prompt: MessageListInput = [\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 const options = {\n output: z.object({\n resourceId: z.string(),\n resourceType: PRIMITIVE_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 if (model.specificationVersion === 'v2') {\n result = await routingAgent.generateVNext(prompt, options);\n } else {\n result = await routingAgent.generate(prompt, options);\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: PRIMITIVE_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: PRIMITIVE_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\n const model = await agent.getModel();\n\n let result;\n\n if (model.specificationVersion === 'v2') {\n result = await agent.streamVNext(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 result.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.payload.text,\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-input-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 } else {\n result = 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 result.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\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: PRIMITIVE_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: PRIMITIVE_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 = await wf.createRunAsync();\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: PRIMITIVE_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: PRIMITIVE_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 // TODO: Pass proper tracing context when network supports tracing\n tracingContext: { currentSpan: undefined },\n suspend: async () => {}, // TODO\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: PRIMITIVE_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: PRIMITIVE_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: PRIMITIVE_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 = await networkWorkflow.createRunAsync();\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 = await networkWorkflow.createRunAsync();\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"]}
@@ -7,7 +7,7 @@ import type { Mastra } from '../../mastra/index.js';
7
7
  import type { MastraMemory } from '../../memory/index.js';
8
8
  import { RuntimeContext } from '../../runtime-context/index.js';
9
9
  import type { Tool } from '../../tools/index.js';
10
- import type { DynamicArgument } from '../../types.js';
10
+ import type { DynamicArgument } from '../../types/index.js';
11
11
  import type { Workflow } from '../../workflows/index.js';
12
12
  interface NewAgentNetworkConfig {
13
13
  id: string;
@@ -59,8 +59,8 @@ export declare class NewAgentNetwork extends MastraBase {
59
59
  prompt: string;
60
60
  iteration: number;
61
61
  task: string;
62
- resourceType: "none" | "tool" | "agent" | "workflow";
63
62
  isOneOff: boolean;
63
+ resourceType: "none" | "tool" | "agent" | "workflow";
64
64
  threadId?: string | undefined;
65
65
  threadResourceId?: string | undefined;
66
66
  isComplete?: boolean | undefined;
@@ -98,9 +98,9 @@ export declare class NewAgentNetwork extends MastraBase {
98
98
  resourceId: string;
99
99
  iteration: number;
100
100
  task: string;
101
- resourceType: "none" | "tool" | "agent" | "workflow";
102
101
  isOneOff: boolean;
103
102
  verboseIntrospection: boolean;
103
+ resourceType: "none" | "tool" | "agent" | "workflow";
104
104
  threadId?: string | undefined;
105
105
  result?: string | undefined;
106
106
  threadResourceId?: string | undefined;
@@ -108,9 +108,9 @@ export declare class NewAgentNetwork extends MastraBase {
108
108
  resourceId: string;
109
109
  iteration: number;
110
110
  task: string;
111
- resourceType: "none" | "tool" | "agent" | "workflow";
112
111
  isOneOff: boolean;
113
112
  verboseIntrospection: boolean;
113
+ resourceType: "none" | "tool" | "agent" | "workflow";
114
114
  threadId?: string | undefined;
115
115
  result?: string | undefined;
116
116
  threadResourceId?: string | undefined;
@@ -159,9 +159,9 @@ export declare class NewAgentNetwork extends MastraBase {
159
159
  resourceId: string;
160
160
  iteration: number;
161
161
  task: string;
162
- resourceType: "none" | "tool" | "agent" | "workflow";
163
162
  isOneOff: boolean;
164
163
  verboseIntrospection: boolean;
164
+ resourceType: "none" | "tool" | "agent" | "workflow";
165
165
  threadId?: string | undefined;
166
166
  result?: string | undefined;
167
167
  threadResourceId?: string | undefined;
@@ -169,9 +169,9 @@ export declare class NewAgentNetwork extends MastraBase {
169
169
  resourceId: string;
170
170
  iteration: number;
171
171
  task: string;
172
- resourceType: "none" | "tool" | "agent" | "workflow";
173
172
  isOneOff: boolean;
174
173
  verboseIntrospection: boolean;
174
+ resourceType: "none" | "tool" | "agent" | "workflow";
175
175
  threadId?: string | undefined;
176
176
  result?: string | undefined;
177
177
  threadResourceId?: string | undefined;
@@ -193,8 +193,8 @@ export declare class NewAgentNetwork extends MastraBase {
193
193
  prompt: string;
194
194
  iteration: number;
195
195
  task: string;
196
- resourceType: "none" | "tool" | "agent" | "workflow";
197
196
  isOneOff: boolean;
197
+ resourceType: "none" | "tool" | "agent" | "workflow";
198
198
  threadId?: string | undefined;
199
199
  threadResourceId?: string | undefined;
200
200
  isComplete?: boolean | undefined;
@@ -205,8 +205,8 @@ export declare class NewAgentNetwork extends MastraBase {
205
205
  prompt: string;
206
206
  iteration: number;
207
207
  task: string;
208
- resourceType: "none" | "tool" | "agent" | "workflow";
209
208
  isOneOff: boolean;
209
+ resourceType: "none" | "tool" | "agent" | "workflow";
210
210
  threadId?: string | undefined;
211
211
  threadResourceId?: string | undefined;
212
212
  isComplete?: boolean | undefined;
@@ -225,9 +225,9 @@ export declare class NewAgentNetwork extends MastraBase {
225
225
  resourceId: string;
226
226
  iteration: number;
227
227
  task: string;
228
- resourceType: "none" | "tool" | "agent" | "workflow";
229
228
  isOneOff: boolean;
230
229
  verboseIntrospection: boolean;
230
+ resourceType: "none" | "tool" | "agent" | "workflow";
231
231
  threadId?: string | undefined;
232
232
  result?: string | undefined;
233
233
  threadResourceId?: string | undefined;
@@ -235,9 +235,9 @@ export declare class NewAgentNetwork extends MastraBase {
235
235
  resourceId: string;
236
236
  iteration: number;
237
237
  task: string;
238
- resourceType: "none" | "tool" | "agent" | "workflow";
239
238
  isOneOff: boolean;
240
239
  verboseIntrospection: boolean;
240
+ resourceType: "none" | "tool" | "agent" | "workflow";
241
241
  threadId?: string | undefined;
242
242
  result?: string | undefined;
243
243
  threadResourceId?: string | undefined;
@@ -272,9 +272,9 @@ export declare class NewAgentNetwork extends MastraBase {
272
272
  resourceId: string;
273
273
  iteration: number;
274
274
  task: string;
275
- resourceType: "none" | "tool" | "agent" | "workflow";
276
275
  isOneOff: boolean;
277
276
  verboseIntrospection: boolean;
277
+ resourceType: "none" | "tool" | "agent" | "workflow";
278
278
  threadId?: string | undefined;
279
279
  result?: string | undefined;
280
280
  threadResourceId?: string | undefined;
@@ -282,9 +282,9 @@ export declare class NewAgentNetwork extends MastraBase {
282
282
  resourceId: string;
283
283
  iteration: number;
284
284
  task: string;
285
- resourceType: "none" | "tool" | "agent" | "workflow";
286
285
  isOneOff: boolean;
287
286
  verboseIntrospection: boolean;
287
+ resourceType: "none" | "tool" | "agent" | "workflow";
288
288
  threadId?: string | undefined;
289
289
  result?: string | undefined;
290
290
  threadResourceId?: string | undefined;
@@ -306,8 +306,8 @@ export declare class NewAgentNetwork extends MastraBase {
306
306
  prompt: string;
307
307
  iteration: number;
308
308
  task: string;
309
- resourceType: "none" | "tool" | "agent" | "workflow";
310
309
  isOneOff: boolean;
310
+ resourceType: "none" | "tool" | "agent" | "workflow";
311
311
  threadId?: string | undefined;
312
312
  threadResourceId?: string | undefined;
313
313
  isComplete?: boolean | undefined;
@@ -318,8 +318,8 @@ export declare class NewAgentNetwork extends MastraBase {
318
318
  prompt: string;
319
319
  iteration: number;
320
320
  task: string;
321
- resourceType: "none" | "tool" | "agent" | "workflow";
322
321
  isOneOff: boolean;
322
+ resourceType: "none" | "tool" | "agent" | "workflow";
323
323
  threadId?: string | undefined;
324
324
  threadResourceId?: string | undefined;
325
325
  isComplete?: boolean | undefined;
@@ -1,6 +1,6 @@
1
- import { Agent, createStep, createWorkflow, RESOURCE_TYPES } from '../../chunk-2ZSMA4EM.js';
1
+ import { Agent, createStep, createWorkflow, PRIMITIVE_TYPES } from '../../chunk-5ZMC3NEO.js';
2
2
  import { EMITTER_SYMBOL } from '../../chunk-NLNKQD2T.js';
3
- import { MessageList } from '../../chunk-SHFLPFKN.js';
3
+ import { MessageList } from '../../chunk-245ANI3P.js';
4
4
  import { RuntimeContext } from '../../chunk-HLRWYUFN.js';
5
5
  import { MastraBase } from '../../chunk-BMVFEBPE.js';
6
6
  import { RegisteredLogger } from '../../chunk-BN2M4UK5.js';
@@ -245,7 +245,7 @@ var NewAgentNetwork = class extends MastraBase {
245
245
  inputSchema: z.object({
246
246
  iteration: z.number(),
247
247
  task: z.string(),
248
- resourceType: RESOURCE_TYPES,
248
+ resourceType: PRIMITIVE_TYPES,
249
249
  threadId: z.string().optional(),
250
250
  threadResourceId: z.string().optional()
251
251
  }),
@@ -305,7 +305,7 @@ var NewAgentNetwork = class extends MastraBase {
305
305
  iteration: z.number(),
306
306
  task: z.string(),
307
307
  resourceId: z.string(),
308
- resourceType: RESOURCE_TYPES,
308
+ resourceType: PRIMITIVE_TYPES,
309
309
  result: z.string().optional(),
310
310
  threadId: z.string().optional(),
311
311
  threadResourceId: z.string().optional(),
@@ -315,7 +315,7 @@ var NewAgentNetwork = class extends MastraBase {
315
315
  outputSchema: z.object({
316
316
  task: z.string(),
317
317
  resourceId: z.string(),
318
- resourceType: RESOURCE_TYPES,
318
+ resourceType: PRIMITIVE_TYPES,
319
319
  prompt: z.string(),
320
320
  result: z.string(),
321
321
  isComplete: z.boolean().optional(),
@@ -354,7 +354,7 @@ var NewAgentNetwork = class extends MastraBase {
354
354
  inputSchema: z.object({
355
355
  task: z.string(),
356
356
  resourceId: z.string(),
357
- resourceType: RESOURCE_TYPES,
357
+ resourceType: PRIMITIVE_TYPES,
358
358
  result: z.string().optional(),
359
359
  iteration: z.number(),
360
360
  threadId: z.string().optional(),
@@ -365,7 +365,7 @@ var NewAgentNetwork = class extends MastraBase {
365
365
  outputSchema: z.object({
366
366
  task: z.string(),
367
367
  resourceId: z.string(),
368
- resourceType: RESOURCE_TYPES,
368
+ resourceType: PRIMITIVE_TYPES,
369
369
  prompt: z.string(),
370
370
  result: z.string(),
371
371
  isComplete: z.boolean().optional(),
@@ -454,7 +454,7 @@ ${completionResult.object.finalResult}` : ""}
454
454
  const options = {
455
455
  output: z.object({
456
456
  resourceId: z.string(),
457
- resourceType: RESOURCE_TYPES,
457
+ resourceType: PRIMITIVE_TYPES,
458
458
  prompt: z.string(),
459
459
  selectionReason: z.string()
460
460
  }),
@@ -484,7 +484,7 @@ ${completionResult.object.finalResult}` : ""}
484
484
  inputSchema: z.object({
485
485
  task: z.string(),
486
486
  resourceId: z.string(),
487
- resourceType: RESOURCE_TYPES,
487
+ resourceType: PRIMITIVE_TYPES,
488
488
  prompt: z.string(),
489
489
  result: z.string(),
490
490
  isComplete: z.boolean().optional(),
@@ -494,7 +494,7 @@ ${completionResult.object.finalResult}` : ""}
494
494
  outputSchema: z.object({
495
495
  task: z.string(),
496
496
  resourceId: z.string(),
497
- resourceType: RESOURCE_TYPES,
497
+ resourceType: PRIMITIVE_TYPES,
498
498
  result: z.string(),
499
499
  isComplete: z.boolean().optional(),
500
500
  iteration: z.number()
@@ -620,7 +620,7 @@ ${completionResult.object.finalResult}` : ""}
620
620
  inputSchema: z.object({
621
621
  task: z.string(),
622
622
  resourceId: z.string(),
623
- resourceType: RESOURCE_TYPES,
623
+ resourceType: PRIMITIVE_TYPES,
624
624
  prompt: z.string(),
625
625
  result: z.string(),
626
626
  isComplete: z.boolean().optional(),
@@ -630,7 +630,7 @@ ${completionResult.object.finalResult}` : ""}
630
630
  outputSchema: z.object({
631
631
  task: z.string(),
632
632
  resourceId: z.string(),
633
- resourceType: RESOURCE_TYPES,
633
+ resourceType: PRIMITIVE_TYPES,
634
634
  result: z.string(),
635
635
  isComplete: z.boolean().optional(),
636
636
  iteration: z.number()
@@ -742,7 +742,7 @@ ${completionResult.object.finalResult}` : ""}
742
742
  inputSchema: z.object({
743
743
  task: z.string(),
744
744
  resourceId: z.string(),
745
- resourceType: RESOURCE_TYPES,
745
+ resourceType: PRIMITIVE_TYPES,
746
746
  prompt: z.string(),
747
747
  result: z.string(),
748
748
  isComplete: z.boolean().optional(),
@@ -752,7 +752,7 @@ ${completionResult.object.finalResult}` : ""}
752
752
  outputSchema: z.object({
753
753
  task: z.string(),
754
754
  resourceId: z.string(),
755
- resourceType: RESOURCE_TYPES,
755
+ resourceType: PRIMITIVE_TYPES,
756
756
  result: z.string(),
757
757
  isComplete: z.boolean().optional(),
758
758
  iteration: z.number()
@@ -817,7 +817,7 @@ ${completionResult.object.finalResult}` : ""}
817
817
  inputSchema: z.object({
818
818
  task: z.string(),
819
819
  resourceId: z.string(),
820
- resourceType: RESOURCE_TYPES,
820
+ resourceType: PRIMITIVE_TYPES,
821
821
  prompt: z.string(),
822
822
  result: z.string(),
823
823
  isComplete: z.boolean().optional(),
@@ -844,7 +844,7 @@ ${completionResult.object.finalResult}` : ""}
844
844
  inputSchema: z.object({
845
845
  task: z.string(),
846
846
  resourceId: z.string(),
847
- resourceType: RESOURCE_TYPES,
847
+ resourceType: PRIMITIVE_TYPES,
848
848
  result: z.string().optional(),
849
849
  iteration: z.number(),
850
850
  threadId: z.string().optional(),
@@ -855,7 +855,7 @@ ${completionResult.object.finalResult}` : ""}
855
855
  outputSchema: z.object({
856
856
  task: z.string(),
857
857
  resourceId: z.string(),
858
- resourceType: RESOURCE_TYPES,
858
+ resourceType: PRIMITIVE_TYPES,
859
859
  prompt: z.string(),
860
860
  result: z.string(),
861
861
  isComplete: z.boolean().optional(),