@mastra/core 0.19.0-alpha.1 → 0.19.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 (52) hide show
  1. package/CHANGELOG.md +59 -0
  2. package/dist/agent/index.cjs +8 -8
  3. package/dist/agent/index.js +1 -1
  4. package/dist/agent/input-processor/index.cjs +6 -6
  5. package/dist/agent/input-processor/index.js +1 -1
  6. package/dist/{chunk-LT6NPN3E.js → chunk-5BQOHHCI.js} +3 -3
  7. package/dist/{chunk-LT6NPN3E.js.map → chunk-5BQOHHCI.js.map} +1 -1
  8. package/dist/{chunk-YJQDN37F.cjs → chunk-BCWRUNMS.cjs} +4 -4
  9. package/dist/{chunk-YJQDN37F.cjs.map → chunk-BCWRUNMS.cjs.map} +1 -1
  10. package/dist/{chunk-JWSZSM7U.js → chunk-COC64XPP.js} +3 -3
  11. package/dist/{chunk-JWSZSM7U.js.map → chunk-COC64XPP.js.map} +1 -1
  12. package/dist/{chunk-OSZMRVWP.js → chunk-FV3SA5TI.js} +3 -3
  13. package/dist/{chunk-OSZMRVWP.js.map → chunk-FV3SA5TI.js.map} +1 -1
  14. package/dist/{chunk-4LGYM3WV.cjs → chunk-HNBU4PI7.cjs} +4 -4
  15. package/dist/{chunk-4LGYM3WV.cjs.map → chunk-HNBU4PI7.cjs.map} +1 -1
  16. package/dist/{chunk-JJW5JU2G.js → chunk-JKLLXBOY.js} +3 -3
  17. package/dist/{chunk-JJW5JU2G.js.map → chunk-JKLLXBOY.js.map} +1 -1
  18. package/dist/{chunk-47WWN5FW.cjs → chunk-LZBVDMVQ.cjs} +7 -7
  19. package/dist/{chunk-47WWN5FW.cjs.map → chunk-LZBVDMVQ.cjs.map} +1 -1
  20. package/dist/{chunk-3CCJVNYI.cjs → chunk-PG6ZNDSR.cjs} +12 -12
  21. package/dist/{chunk-3CCJVNYI.cjs.map → chunk-PG6ZNDSR.cjs.map} +1 -1
  22. package/dist/{chunk-PLATPKJA.cjs → chunk-RNIY63FP.cjs} +3 -3
  23. package/dist/{chunk-PLATPKJA.cjs.map → chunk-RNIY63FP.cjs.map} +1 -1
  24. package/dist/{chunk-MAGA2UEJ.js → chunk-VWO3JJXC.js} +3 -3
  25. package/dist/{chunk-MAGA2UEJ.js.map → chunk-VWO3JJXC.js.map} +1 -1
  26. package/dist/index.cjs +19 -19
  27. package/dist/index.js +4 -4
  28. package/dist/loop/index.cjs +2 -2
  29. package/dist/loop/index.js +1 -1
  30. package/dist/mastra/index.cjs +2 -2
  31. package/dist/mastra/index.js +1 -1
  32. package/dist/network/vNext/index.cjs +28 -28
  33. package/dist/network/vNext/index.cjs.map +1 -1
  34. package/dist/network/vNext/index.js +2 -2
  35. package/dist/network/vNext/index.js.map +1 -1
  36. package/dist/processors/index.cjs +10 -10
  37. package/dist/processors/index.js +1 -1
  38. package/dist/relevance/index.cjs +4 -4
  39. package/dist/relevance/index.js +1 -1
  40. package/dist/scores/index.cjs +4 -4
  41. package/dist/scores/index.js +1 -1
  42. package/dist/scores/scoreTraces/index.cjs +3 -3
  43. package/dist/scores/scoreTraces/index.js +1 -1
  44. package/dist/stream/index.cjs +4 -4
  45. package/dist/stream/index.js +1 -1
  46. package/dist/workflows/evented/index.cjs +10 -10
  47. package/dist/workflows/evented/index.js +1 -1
  48. package/dist/workflows/index.cjs +12 -12
  49. package/dist/workflows/index.js +1 -1
  50. package/dist/workflows/legacy/index.cjs +22 -22
  51. package/dist/workflows/legacy/index.js +1 -1
  52. package/package.json +3 -3
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkPLATPKJA_cjs = require('../../chunk-PLATPKJA.cjs');
3
+ var chunkRNIY63FP_cjs = require('../../chunk-RNIY63FP.cjs');
4
4
  var chunkABJOUEVA_cjs = require('../../chunk-ABJOUEVA.cjs');
5
5
  var chunkCQ73JM2N_cjs = require('../../chunk-CQ73JM2N.cjs');
6
6
  var chunkGPWMM745_cjs = require('../../chunk-GPWMM745.cjs');
@@ -37,7 +37,7 @@ var NewAgentNetwork = class extends chunk4L3P3PCP_cjs.MastraBase {
37
37
  name: name || "NewAgentNetwork"
38
38
  });
39
39
  console.warn(
40
- `\u26A0\uFE0F DEPRECATION WARNING: AgentNetwork vNext will be deprecated on September 30th, 2025 and will be removed in a future version. Please use agent.network() instead.`
40
+ `\u26A0\uFE0F DEPRECATION WARNING: AgentNetwork vNext will be deprecated the week of September 30th, 2025 and will be removed in a future version. Please use agent.network() instead.`
41
41
  );
42
42
  this.id = id;
43
43
  this.name = name;
@@ -212,7 +212,7 @@ var NewAgentNetwork = class extends chunk4L3P3PCP_cjs.MastraBase {
212
212
 
213
213
  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.
214
214
  `;
215
- return new chunkPLATPKJA_cjs.Agent({
215
+ return new chunkRNIY63FP_cjs.Agent({
216
216
  name: "routing-agent",
217
217
  instructions,
218
218
  model: this.#model,
@@ -228,7 +228,7 @@ var NewAgentNetwork = class extends chunk4L3P3PCP_cjs.MastraBase {
228
228
  resourceId
229
229
  }) {
230
230
  const networkWorkflow = this.createWorkflow({ runtimeContext });
231
- const finalStep = chunkPLATPKJA_cjs.createStep({
231
+ const finalStep = chunkRNIY63FP_cjs.createStep({
232
232
  id: "final-step",
233
233
  inputSchema: networkWorkflow.outputSchema,
234
234
  outputSchema: networkWorkflow.outputSchema,
@@ -242,12 +242,12 @@ var NewAgentNetwork = class extends chunk4L3P3PCP_cjs.MastraBase {
242
242
  return inputData;
243
243
  }
244
244
  });
245
- const mainWorkflow = chunkPLATPKJA_cjs.createWorkflow({
245
+ const mainWorkflow = chunkRNIY63FP_cjs.createWorkflow({
246
246
  id: "Agent-Network-Main-Workflow",
247
247
  inputSchema: zod.z.object({
248
248
  iteration: zod.z.number(),
249
249
  task: zod.z.string(),
250
- resourceType: chunkPLATPKJA_cjs.PRIMITIVE_TYPES,
250
+ resourceType: chunkRNIY63FP_cjs.PRIMITIVE_TYPES,
251
251
  threadId: zod.z.string().optional(),
252
252
  threadResourceId: zod.z.string().optional()
253
253
  }),
@@ -287,7 +287,7 @@ var NewAgentNetwork = class extends chunk4L3P3PCP_cjs.MastraBase {
287
287
  resourceId
288
288
  }) {
289
289
  const networkWorkflow = this.createWorkflow({ runtimeContext });
290
- const finalStep = chunkPLATPKJA_cjs.createStep({
290
+ const finalStep = chunkRNIY63FP_cjs.createStep({
291
291
  id: "final-step",
292
292
  inputSchema: networkWorkflow.outputSchema,
293
293
  outputSchema: networkWorkflow.outputSchema,
@@ -301,13 +301,13 @@ var NewAgentNetwork = class extends chunk4L3P3PCP_cjs.MastraBase {
301
301
  return inputData;
302
302
  }
303
303
  });
304
- const mainWorkflow = chunkPLATPKJA_cjs.createWorkflow({
304
+ const mainWorkflow = chunkRNIY63FP_cjs.createWorkflow({
305
305
  id: "Agent-Network-Main-Workflow",
306
306
  inputSchema: zod.z.object({
307
307
  iteration: zod.z.number(),
308
308
  task: zod.z.string(),
309
309
  resourceId: zod.z.string(),
310
- resourceType: chunkPLATPKJA_cjs.PRIMITIVE_TYPES,
310
+ resourceType: chunkRNIY63FP_cjs.PRIMITIVE_TYPES,
311
311
  result: zod.z.string().optional(),
312
312
  threadId: zod.z.string().optional(),
313
313
  threadResourceId: zod.z.string().optional(),
@@ -317,7 +317,7 @@ var NewAgentNetwork = class extends chunk4L3P3PCP_cjs.MastraBase {
317
317
  outputSchema: zod.z.object({
318
318
  task: zod.z.string(),
319
319
  resourceId: zod.z.string(),
320
- resourceType: chunkPLATPKJA_cjs.PRIMITIVE_TYPES,
320
+ resourceType: chunkRNIY63FP_cjs.PRIMITIVE_TYPES,
321
321
  prompt: zod.z.string(),
322
322
  result: zod.z.string(),
323
323
  isComplete: zod.z.boolean().optional(),
@@ -351,12 +351,12 @@ var NewAgentNetwork = class extends chunk4L3P3PCP_cjs.MastraBase {
351
351
  createWorkflow({ runtimeContext }) {
352
352
  const runId = this.#mastra?.generateId() || crypto.randomUUID();
353
353
  const runtimeContextToUse = runtimeContext || new chunkGPWMM745_cjs.RuntimeContext();
354
- const routingStep = chunkPLATPKJA_cjs.createStep({
354
+ const routingStep = chunkRNIY63FP_cjs.createStep({
355
355
  id: "routing-step",
356
356
  inputSchema: zod.z.object({
357
357
  task: zod.z.string(),
358
358
  resourceId: zod.z.string(),
359
- resourceType: chunkPLATPKJA_cjs.PRIMITIVE_TYPES,
359
+ resourceType: chunkRNIY63FP_cjs.PRIMITIVE_TYPES,
360
360
  result: zod.z.string().optional(),
361
361
  iteration: zod.z.number(),
362
362
  threadId: zod.z.string().optional(),
@@ -367,7 +367,7 @@ var NewAgentNetwork = class extends chunk4L3P3PCP_cjs.MastraBase {
367
367
  outputSchema: zod.z.object({
368
368
  task: zod.z.string(),
369
369
  resourceId: zod.z.string(),
370
- resourceType: chunkPLATPKJA_cjs.PRIMITIVE_TYPES,
370
+ resourceType: chunkRNIY63FP_cjs.PRIMITIVE_TYPES,
371
371
  prompt: zod.z.string(),
372
372
  result: zod.z.string(),
373
373
  isComplete: zod.z.boolean().optional(),
@@ -456,7 +456,7 @@ ${completionResult.object.finalResult}` : ""}
456
456
  const options = {
457
457
  output: zod.z.object({
458
458
  resourceId: zod.z.string(),
459
- resourceType: chunkPLATPKJA_cjs.PRIMITIVE_TYPES,
459
+ resourceType: chunkRNIY63FP_cjs.PRIMITIVE_TYPES,
460
460
  prompt: zod.z.string(),
461
461
  selectionReason: zod.z.string()
462
462
  }),
@@ -481,12 +481,12 @@ ${completionResult.object.finalResult}` : ""}
481
481
  };
482
482
  }
483
483
  });
484
- const agentStep = chunkPLATPKJA_cjs.createStep({
484
+ const agentStep = chunkRNIY63FP_cjs.createStep({
485
485
  id: "agent-step",
486
486
  inputSchema: zod.z.object({
487
487
  task: zod.z.string(),
488
488
  resourceId: zod.z.string(),
489
- resourceType: chunkPLATPKJA_cjs.PRIMITIVE_TYPES,
489
+ resourceType: chunkRNIY63FP_cjs.PRIMITIVE_TYPES,
490
490
  prompt: zod.z.string(),
491
491
  result: zod.z.string(),
492
492
  isComplete: zod.z.boolean().optional(),
@@ -496,7 +496,7 @@ ${completionResult.object.finalResult}` : ""}
496
496
  outputSchema: zod.z.object({
497
497
  task: zod.z.string(),
498
498
  resourceId: zod.z.string(),
499
- resourceType: chunkPLATPKJA_cjs.PRIMITIVE_TYPES,
499
+ resourceType: chunkRNIY63FP_cjs.PRIMITIVE_TYPES,
500
500
  result: zod.z.string(),
501
501
  isComplete: zod.z.boolean().optional(),
502
502
  iteration: zod.z.number()
@@ -617,12 +617,12 @@ ${completionResult.object.finalResult}` : ""}
617
617
  };
618
618
  }
619
619
  });
620
- const workflowStep = chunkPLATPKJA_cjs.createStep({
620
+ const workflowStep = chunkRNIY63FP_cjs.createStep({
621
621
  id: "workflow-step",
622
622
  inputSchema: zod.z.object({
623
623
  task: zod.z.string(),
624
624
  resourceId: zod.z.string(),
625
- resourceType: chunkPLATPKJA_cjs.PRIMITIVE_TYPES,
625
+ resourceType: chunkRNIY63FP_cjs.PRIMITIVE_TYPES,
626
626
  prompt: zod.z.string(),
627
627
  result: zod.z.string(),
628
628
  isComplete: zod.z.boolean().optional(),
@@ -632,7 +632,7 @@ ${completionResult.object.finalResult}` : ""}
632
632
  outputSchema: zod.z.object({
633
633
  task: zod.z.string(),
634
634
  resourceId: zod.z.string(),
635
- resourceType: chunkPLATPKJA_cjs.PRIMITIVE_TYPES,
635
+ resourceType: chunkRNIY63FP_cjs.PRIMITIVE_TYPES,
636
636
  result: zod.z.string(),
637
637
  isComplete: zod.z.boolean().optional(),
638
638
  iteration: zod.z.number()
@@ -739,12 +739,12 @@ ${completionResult.object.finalResult}` : ""}
739
739
  };
740
740
  }
741
741
  });
742
- const toolStep = chunkPLATPKJA_cjs.createStep({
742
+ const toolStep = chunkRNIY63FP_cjs.createStep({
743
743
  id: "toolStep",
744
744
  inputSchema: zod.z.object({
745
745
  task: zod.z.string(),
746
746
  resourceId: zod.z.string(),
747
- resourceType: chunkPLATPKJA_cjs.PRIMITIVE_TYPES,
747
+ resourceType: chunkRNIY63FP_cjs.PRIMITIVE_TYPES,
748
748
  prompt: zod.z.string(),
749
749
  result: zod.z.string(),
750
750
  isComplete: zod.z.boolean().optional(),
@@ -754,7 +754,7 @@ ${completionResult.object.finalResult}` : ""}
754
754
  outputSchema: zod.z.object({
755
755
  task: zod.z.string(),
756
756
  resourceId: zod.z.string(),
757
- resourceType: chunkPLATPKJA_cjs.PRIMITIVE_TYPES,
757
+ resourceType: chunkRNIY63FP_cjs.PRIMITIVE_TYPES,
758
758
  result: zod.z.string(),
759
759
  isComplete: zod.z.boolean().optional(),
760
760
  iteration: zod.z.number()
@@ -814,12 +814,12 @@ ${completionResult.object.finalResult}` : ""}
814
814
  };
815
815
  }
816
816
  });
817
- const finishStep = chunkPLATPKJA_cjs.createStep({
817
+ const finishStep = chunkRNIY63FP_cjs.createStep({
818
818
  id: "finish-step",
819
819
  inputSchema: zod.z.object({
820
820
  task: zod.z.string(),
821
821
  resourceId: zod.z.string(),
822
- resourceType: chunkPLATPKJA_cjs.PRIMITIVE_TYPES,
822
+ resourceType: chunkRNIY63FP_cjs.PRIMITIVE_TYPES,
823
823
  prompt: zod.z.string(),
824
824
  result: zod.z.string(),
825
825
  isComplete: zod.z.boolean().optional(),
@@ -841,12 +841,12 @@ ${completionResult.object.finalResult}` : ""}
841
841
  };
842
842
  }
843
843
  });
844
- const networkWorkflow = chunkPLATPKJA_cjs.createWorkflow({
844
+ const networkWorkflow = chunkRNIY63FP_cjs.createWorkflow({
845
845
  id: "Agent-Network-Outer-Workflow",
846
846
  inputSchema: zod.z.object({
847
847
  task: zod.z.string(),
848
848
  resourceId: zod.z.string(),
849
- resourceType: chunkPLATPKJA_cjs.PRIMITIVE_TYPES,
849
+ resourceType: chunkRNIY63FP_cjs.PRIMITIVE_TYPES,
850
850
  result: zod.z.string().optional(),
851
851
  iteration: zod.z.number(),
852
852
  threadId: zod.z.string().optional(),
@@ -857,7 +857,7 @@ ${completionResult.object.finalResult}` : ""}
857
857
  outputSchema: zod.z.object({
858
858
  task: zod.z.string(),
859
859
  resourceId: zod.z.string(),
860
- resourceType: chunkPLATPKJA_cjs.PRIMITIVE_TYPES,
860
+ resourceType: chunkRNIY63FP_cjs.PRIMITIVE_TYPES,
861
861
  prompt: zod.z.string(),
862
862
  result: zod.z.string(),
863
863
  isComplete: zod.z.boolean().optional(),
@@ -1 +1 @@
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"]}
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":";;;;;;;;;;;;AA8BO,IAAM,eAAA,GAAN,cAA8BA,4BAAA,CAAW;AAAA,EAC9C,EAAA;AAAA,EACA,IAAA;AAAA,EACA,aAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA;AAAA,EACA,aAAA;AAAA,EACA,UAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA;AAAA,EACA,OAAA;AAAA,EAEA,WAAA,CAAY;AAAA,IACV,EAAA;AAAA,IACA,IAAA;AAAA,IACA,YAAA;AAAA,IACA,KAAA;AAAA,IACA,MAAA;AAAA,IACA,SAAA;AAAA,IACA,MAAA;AAAA,IACA,KAAA;AAAA,IACA;AAAA,GACF,EAA0B;AACxB,IAAA,KAAA,CAAM;AAAA,MACJ,WAAWC,kCAAA,CAAiB,OAAA;AAAA,MAC5B,MAAM,IAAA,IAAQ;AAAA,KACf,CAAA;AAED,IAAA,OAAA,CAAQ,IAAA;AAAA,MACN,CAAA,sLAAA;AAAA,KACF;AAEA,IAAA,IAAA,CAAK,EAAA,GAAK,EAAA;AACV,IAAA,IAAA,CAAK,IAAA,GAAO,IAAA;AACZ,IAAA,IAAA,CAAK,aAAA,GAAgB,YAAA;AACrB,IAAA,IAAA,CAAK,MAAA,GAAS,KAAA;AACd,IAAA,IAAA,CAAK,OAAA,GAAU,MAAA;AACf,IAAA,IAAA,CAAK,UAAA,GAAa,SAAA;AAClB,IAAA,IAAA,CAAK,OAAA,GAAU,MAAA;AACf,IAAA,IAAA,CAAK,MAAA,GAAS,KAAA;AACd,IAAA,IAAA,CAAK,aAAA,GAAgB,YAAA;AAAA,EACvB;AAAA,EAEA,iBAAiB,MAAA,EAAgB;AAC/B,IAAA,IAAA,CAAK,OAAA,GAAU,MAAA;AAAA,EACjB;AAAA,EAEQ,eAAe,QAAA,EAA4B;AACjD,IAAA,IAAI,OAAA,GAAU,EAAA;AACd,IAAA,IAAI,OAAO,aAAa,QAAA,EAAU;AAChC,MAAA,OAAA,GAAU,QAAA;AAAA,IACZ,CAAA,MAAO;AACL,MAAA,MAAM,WAAA,GAAc,MAAM,OAAA,CAAQ,QAAQ,IAAI,QAAA,CAAS,QAAA,CAAS,MAAA,GAAS,CAAC,CAAA,GAAI,QAAA;AAC9E,MAAA,IAAI,OAAO,gBAAgB,QAAA,EAAU;AACnC,QAAA,OAAA,GAAU,WAAA;AAAA,MACZ,CAAA,MAAA,IAAW,WAAA,IAAe,CAAA,OAAA,CAAA,IAAa,WAAA,IAAe,aAAa,OAAA,EAAS;AAC1E,QAAA,MAAM,qBAAqB,WAAA,CAAY,OAAA;AACvC,QAAA,IAAI,OAAO,uBAAuB,QAAA,EAAU;AAC1C,UAAA,OAAA,GAAU,kBAAA;AAAA,QACZ,CAAA,MAAA,IAAW,KAAA,CAAM,OAAA,CAAQ,kBAAkB,CAAA,EAAG;AAC5C,UAAA,MAAM,QAAA,GAAW,kBAAA,CAAmB,kBAAA,CAAmB,MAAA,GAAS,CAAC,CAAA;AACjE,UAAA,IAAI,QAAA,EAAU,SAAS,MAAA,EAAQ;AAC7B,YAAA,OAAA,GAAU,QAAA,CAAS,IAAA;AAAA,UACrB;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA,IAAA,OAAO,OAAA;AAAA,EACT;AAAA,EAEA,MAAc,SAAA,CAAU;AAAA,IACtB,cAAA;AAAA,IACA,QAAA;AAAA,IACA,UAAA;AAAA,IACA;AAAA,GACF,EAKG;AACD,IAAA,MAAM,SAAS,MAAM,IAAA,CAAK,SAAA,CAAU,EAAE,gBAAgB,CAAA;AACtD,IAAA,IAAI,SAAS,MAAM,MAAA,EAAQ,aAAA,CAAc,EAAE,UAAU,CAAA;AACrD,IAAA,IAAI,CAAC,MAAA,EAAQ;AACX,MAAA,MAAA,GAAS,MAAM,QAAQ,YAAA,CAAa;AAAA,QAClC,QAAA;AAAA,QACA,KAAA,EAAO,EAAA;AAAA,QACP;AAAA,OACD,CAAA;AAAA,IACH;AACA,IAAA,IAAI,OAAO,aAAa,QAAA,EAAU;AAChC,MAAA,MAAM,QAAQ,YAAA,CAAa;AAAA,QACzB,QAAA,EAAU;AAAA,UACR;AAAA,YACE,EAAA,EAAI,IAAA,CAAK,OAAA,EAAS,UAAA,MAAgBC,iBAAA,EAAW;AAAA,YAC7C,IAAA,EAAM,MAAA;AAAA,YACN,IAAA,EAAM,MAAA;AAAA,YACN,OAAA,EAAS,EAAE,KAAA,EAAO,CAAC,EAAE,IAAA,EAAM,MAAA,EAAQ,IAAA,EAAM,QAAA,EAAU,CAAA,EAAG,MAAA,EAAQ,CAAA,EAAE;AAAA,YAChE,SAAA,sBAAe,IAAA,EAAK;AAAA,YACpB,UAAU,MAAA,EAAQ,EAAA;AAAA,YAClB,YAAY,MAAA,EAAQ;AAAA;AACtB,SACF;AAAA,QACA,MAAA,EAAQ;AAAA,OACT,CAAA;AAAA,IACH,CAAA,MAAO;AACL,MAAA,MAAM,WAAA,GAAc,IAAIC,6BAAA,CAAY;AAAA,QAClC,UAAU,MAAA,EAAQ,EAAA;AAAA,QAClB,YAAY,MAAA,EAAQ;AAAA,OACrB,CAAA;AACD,MAAA,WAAA,CAAY,GAAA,CAAI,UAAU,MAAM,CAAA;AAChC,MAAA,MAAM,cAAA,GAAiB,WAAA,CAAY,GAAA,CAAI,GAAA,CAAI,EAAA,EAAG;AAE9C,MAAA,MAAM,QAAQ,YAAA,CAAa;AAAA,QACzB,QAAA,EAAU,cAAA;AAAA,QACV,MAAA,EAAQ;AAAA,OACT,CAAA;AAAA,IACH;AAEA,IAAA,OAAO,MAAA;AAAA,EACT;AAAA,EAEA,MAAM,SAAA,CAAU,EAAE,cAAA,EAAe,EAAwC;AACvE,IAAA,IAAI,WAAA;AAEJ,IAAA,IAAI,OAAO,IAAA,CAAK,OAAA,KAAY,UAAA,EAAY;AACtC,MAAA,WAAA,GAAc,MAAM,KAAK,OAAA,CAAQ,EAAE,gBAAgB,cAAA,IAAkB,IAAIC,gCAAA,EAAe,EAAG,CAAA;AAAA,IAC7F,CAAA,MAAO;AACL,MAAA,WAAA,GAAc,IAAA,CAAK,OAAA;AAAA,IACrB;AAEA,IAAA,OAAO,WAAA;AAAA,EACT;AAAA,EAEA,MAAM,YAAA,CAAa,EAAE,cAAA,EAAe,EAAwC;AAC1E,IAAA,IAAI,cAAA;AAEJ,IAAA,IAAI,OAAO,IAAA,CAAK,UAAA,KAAe,UAAA,EAAY;AACzC,MAAA,cAAA,GAAiB,MAAM,KAAK,UAAA,CAAW,EAAE,gBAAgB,cAAA,IAAkB,IAAIA,gCAAA,EAAe,EAAG,CAAA;AAAA,IACnG,CAAA,MAAO;AACL,MAAA,cAAA,GAAiB,IAAA,CAAK,cAAc,EAAC;AAAA,IACvC;AAEA,IAAA,OAAO,cAAA;AAAA,EACT;AAAA,EAEA,MAAM,QAAA,CAAS,EAAE,cAAA,EAAe,EAAwC;AACtE,IAAA,IAAI,UAAA;AAEJ,IAAA,IAAI,OAAO,IAAA,CAAK,MAAA,KAAW,UAAA,EAAY;AACrC,MAAA,UAAA,GAAa,MAAM,KAAK,MAAA,CAAO,EAAE,gBAAgB,cAAA,IAAkB,IAAIA,gCAAA,EAAe,EAAG,CAAA;AAAA,IAC3F,CAAA,MAAO;AACL,MAAA,UAAA,GAAa,IAAA,CAAK,UAAU,EAAC;AAAA,IAC/B;AAEA,IAAA,OAAO,UAAA;AAAA,EACT;AAAA,EAEA,MAAM,SAAA,CAAU,EAAE,cAAA,EAAe,EAAwC;AACvE,IAAA,IAAI,WAAA;AAEJ,IAAA,IAAI,CAAC,KAAK,OAAA,EAAS;AACjB,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,OAAO,IAAA,CAAK,OAAA,KAAY,UAAA,EAAY;AACtC,MAAA,WAAA,GAAc,MAAM,KAAK,OAAA,CAAQ,EAAE,gBAAgB,cAAA,IAAkB,IAAIA,gCAAA,EAAe,EAAG,CAAA;AAAA,IAC7F,CAAA,MAAO;AACL,MAAA,WAAA,GAAc,IAAA,CAAK,OAAA;AAAA,IACrB;AAEA,IAAA,OAAO,WAAA;AAAA,EACT;AAAA,EAEA,MAAM,eAAA,CAAgB,EAAE,cAAA,EAAe,EAAwC;AAC7E,IAAA,IAAI,oBAAoB,IAAA,CAAK,aAAA;AAE7B,IAAA,IAAI,OAAO,sBAAsB,UAAA,EAAY;AAC3C,MAAA,iBAAA,GAAoB,MAAM,kBAAkB,EAAE,cAAA,EAAgB,kBAAkB,IAAIA,gCAAA,IAAkB,CAAA;AAAA,IACxG;AAEA,IAAA,OAAO,iBAAA;AAAA,EACT;AAAA,EAEA,MAAM,eAAA,CAAgB,EAAE,cAAA,EAAe,EAAwC;AAC7E,IAAA,MAAM,iBAAA,GAAoB,MAAM,IAAA,CAAK,eAAA,CAAgB,EAAE,gBAAgB,cAAA,IAAkB,IAAIA,gCAAA,EAAe,EAAG,CAAA;AAC/G,IAAA,MAAM,WAAA,GAAc,MAAM,IAAA,CAAK,SAAA,CAAU,EAAE,gBAAgB,cAAA,IAAkB,IAAIA,gCAAA,EAAe,EAAG,CAAA;AACnG,IAAA,MAAM,WAAA,GAAc,MAAM,IAAA,CAAK,SAAA,CAAU,EAAE,gBAAgB,cAAA,IAAkB,IAAIA,gCAAA,EAAe,EAAG,CAAA;AACnG,IAAA,MAAM,cAAA,GAAiB,MAAM,IAAA,CAAK,YAAA,CAAa,EAAE,gBAAgB,cAAA,IAAkB,IAAIA,gCAAA,EAAe,EAAG,CAAA;AACzG,IAAA,MAAM,UAAA,GAAa,MAAM,IAAA,CAAK,QAAA,CAAS,EAAE,gBAAgB,cAAA,IAAkB,IAAIA,gCAAA,EAAe,EAAG,CAAA;AAEjG,IAAA,MAAM,SAAA,GAAY,MAAA,CAAO,OAAA,CAAQ,WAAW,CAAA,CACzC,IAAI,CAAC,CAAC,IAAA,EAAM,KAAK,CAAA,KAAM;AAEtB,MAAA,OAAO,CAAA,KAAA,EAAQ,IAAI,CAAA,IAAA,EAAO,KAAA,CAAM,gBAAgB,CAAA,CAAA;AAAA,IAClD,CAAC,CAAA,CACA,IAAA,CAAK,IAAI,CAAA;AAEZ,IAAA,MAAM,YAAA,GAAe,MAAA,CAAO,OAAA,CAAQ,cAAc,CAAA,CAC/C,IAAI,CAAC,CAAC,IAAA,EAAM,QAAQ,CAAA,KAAM;AACzB,MAAA,OAAO,QAAQ,IAAI,CAAA,IAAA,EAAO,QAAA,CAAS,WAAW,mBAAmB,IAAA,CAAK,SAAA;AAAA,QACpEC,yBAAA,CAAgB,SAAS,WAAW;AAAA,OACrC,CAAA,CAAA;AAAA,IACH,CAAC,CAAA,CACA,IAAA,CAAK,IAAI,CAAA;AAEZ,IAAA,MAAM,QAAA,GAAW,MAAA,CAAO,OAAA,CAAQ,UAAU,CAAA,CACvC,IAAI,CAAC,CAAC,IAAA,EAAM,IAAI,CAAA,KAAM;AACrB,MAAA,OAAO,QAAQ,IAAI,CAAA,IAAA,EAAO,IAAA,CAAK,WAAW,mBAAmB,IAAA,CAAK,SAAA;AAAA,QAChEA,0BAAgB,IAAA,CAAK,WAAA,IAAeC,MAAE,MAAA,CAAO,EAAE,CAAC;AAAA,OACjD,CAAA,CAAA;AAAA,IACH,CAAC,CAAA,CACA,IAAA,CAAK,IAAI,CAAA;AAEZ,IAAA,MAAM,YAAA,GAAe;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA,UAAA,EAOb,iBAAiB;;AAAA;;AAAA;AAAA,UAAA,EAKjB,SAAS;;AAAA;AAAA,UAAA,EAGT,YAAY;;AAAA;AAAA,UAAA,EAGZ,QAAQ;;AAAA,UAAA,EAGR,KAAK,aAAA,GACD,CAAA,4EAAA,EAA+E,KAAK,aAAA,CAAc,IAAI,uGAEtG,EACN;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA,QAAA,CAAA;AAUN,IAAA,OAAO,IAAIC,uBAAA,CAAM;AAAA,MACf,IAAA,EAAM,eAAA;AAAA,MACN,YAAA;AAAA,MACA,OAAO,IAAA,CAAK,MAAA;AAAA,MACZ,MAAA,EAAQ,WAAA;AAAA;AAAA,MAER,mBAAA,EAAqB;AAAA,KACtB,CAAA;AAAA,EACH;AAAA,EAEA,MAAM,KACJ,QAAA,EACA;AAAA,IACE,cAAA;AAAA,IACA,aAAA;AAAA,IACA,QAAA;AAAA,IACA;AAAA,GACF,EAMA;AACA,IAAA,MAAM,eAAA,GAAkB,IAAA,CAAK,cAAA,CAAe,EAAE,gBAAgB,CAAA;AAE9D,IAAA,MAAM,YAAYC,4BAAA,CAAW;AAAA,MAC3B,EAAA,EAAI,YAAA;AAAA,MACJ,aAAa,eAAA,CAAgB,YAAA;AAAA,MAC7B,cAAc,eAAA,CAAgB,YAAA;AAAA,MAC9B,OAAA,EAAS,OAAO,EAAE,SAAA,EAAU,KAAM;AAChC,QAAA,IAAI,aAAA,IAAiB,SAAA,CAAU,SAAA,IAAa,aAAA,EAAe;AACzD,UAAA,OAAO;AAAA,YACL,GAAG,SAAA;AAAA,YACH,gBAAA,EAAkB,2BAA2B,aAAa,CAAA;AAAA,WAC5D;AAAA,QACF;AAEA,QAAA,OAAO,SAAA;AAAA,MACT;AAAA,KACD,CAAA;AAED,IAAA,MAAM,eAAeC,gCAAA,CAAe;AAAA,MAClC,EAAA,EAAI,6BAAA;AAAA,MACJ,WAAA,EAAaH,MAAE,MAAA,CAAO;AAAA,QACpB,SAAA,EAAWA,MAAE,MAAA,EAAO;AAAA,QACpB,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA,QACf,YAAA,EAAcI,iCAAA;AAAA,QACd,QAAA,EAAUJ,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,QAC9B,gBAAA,EAAkBA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAAS,OACvC,CAAA;AAAA,MACD,cAAc,eAAA,CAAgB;AAAA,KAC/B,CAAA,CACE,OAAA,CAAQ,iBAAiB,OAAO,EAAE,WAAU,KAAM;AACjD,MAAA,OAAO,SAAA,CAAU,UAAA,IAAe,aAAA,IAAiB,SAAA,CAAU,SAAA,IAAa,aAAA;AAAA,IAC1E,CAAC,CAAA,CACA,IAAA,CAAK,SAAS,EACd,MAAA,EAAO;AAEV,IAAA,MAAM,GAAA,GAAM,MAAM,YAAA,CAAa,cAAA,EAAe;AAE9C,IAAA,MAAM,MAAA,GAAS,MAAM,IAAA,CAAK,SAAA,CAAU;AAAA,MAClC,cAAA,EAAgB,cAAA,IAAkB,IAAIF,gCAAA,EAAe;AAAA,MACrD,QAAA,EAAU,YAAY,GAAA,CAAI,KAAA;AAAA,MAC1B,UAAA,EAAY,cAAc,IAAA,CAAK,IAAA;AAAA,MAC/B;AAAA,KACD,CAAA;AAED,IAAA,MAAM,OAAA,GAAU,IAAA,CAAK,cAAA,CAAe,QAAQ,CAAA;AAE5C,IAAA,MAAM,MAAA,GAAS,MAAM,GAAA,CAAI,KAAA,CAAM;AAAA,MAC7B,SAAA,EAAW;AAAA,QACT,IAAA,EAAM,OAAA;AAAA,QACN,YAAA,EAAc,MAAA;AAAA,QACd,SAAA,EAAW,CAAA;AAAA,QACX,kBAAkB,MAAA,EAAQ,UAAA;AAAA,QAC1B,UAAU,MAAA,EAAQ;AAAA;AACpB,KACD,CAAA;AAED,IAAA,IAAI,MAAA,CAAO,WAAW,QAAA,EAAU;AAC9B,MAAA,MAAM,MAAA,CAAO,KAAA;AAAA,IACf;AAEA,IAAA,IAAI,MAAA,CAAO,WAAW,WAAA,EAAa;AACjC,MAAA,MAAM,IAAI,MAAM,oBAAoB,CAAA;AAAA,IACtC;AAEA,IAAA,OAAO,MAAA;AAAA,EACT;AAAA,EAEA,MAAM,WACJ,QAAA,EACA;AAAA,IACE,cAAA;AAAA,IACA,aAAA;AAAA,IACA,QAAA;AAAA,IACA;AAAA,GACF,EAMA;AACA,IAAA,MAAM,eAAA,GAAkB,IAAA,CAAK,cAAA,CAAe,EAAE,gBAAgB,CAAA;AAE9D,IAAA,MAAM,YAAYI,4BAAA,CAAW;AAAA,MAC3B,EAAA,EAAI,YAAA;AAAA,MACJ,aAAa,eAAA,CAAgB,YAAA;AAAA,MAC7B,cAAc,eAAA,CAAgB,YAAA;AAAA,MAC9B,OAAA,EAAS,OAAO,EAAE,SAAA,EAAU,KAAM;AAChC,QAAA,IAAI,aAAA,IAAiB,SAAA,CAAU,SAAA,IAAa,aAAA,EAAe;AACzD,UAAA,OAAO;AAAA,YACL,GAAG,SAAA;AAAA,YACH,gBAAA,EAAkB,2BAA2B,aAAa,CAAA;AAAA,WAC5D;AAAA,QACF;AAEA,QAAA,OAAO,SAAA;AAAA,MACT;AAAA,KACD,CAAA;AAED,IAAA,MAAM,eAAeC,gCAAA,CAAe;AAAA,MAClC,EAAA,EAAI,6BAAA;AAAA,MACJ,WAAA,EAAaH,MAAE,MAAA,CAAO;AAAA,QACpB,SAAA,EAAWA,MAAE,MAAA,EAAO;AAAA,QACpB,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA,QACf,UAAA,EAAYA,MAAE,MAAA,EAAO;AAAA,QACrB,YAAA,EAAcI,iCAAA;AAAA,QACd,MAAA,EAAQJ,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,QAC5B,QAAA,EAAUA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,QAC9B,gBAAA,EAAkBA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,QACtC,QAAA,EAAUA,MAAE,OAAA,EAAQ;AAAA,QACpB,oBAAA,EAAsBA,MAAE,OAAA;AAAQ,OACjC,CAAA;AAAA,MACD,YAAA,EAAcA,MAAE,MAAA,CAAO;AAAA,QACrB,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA,QACf,UAAA,EAAYA,MAAE,MAAA,EAAO;AAAA,QACrB,YAAA,EAAcI,iCAAA;AAAA,QACd,MAAA,EAAQJ,MAAE,MAAA,EAAO;AAAA,QACjB,MAAA,EAAQA,MAAE,MAAA,EAAO;AAAA,QACjB,UAAA,EAAYA,KAAA,CAAE,OAAA,EAAQ,CAAE,QAAA,EAAS;AAAA,QACjC,gBAAA,EAAkBA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,QACtC,SAAA,EAAWA,MAAE,MAAA;AAAO,OACrB;AAAA,KACF,CAAA,CACE,OAAA,CAAQ,iBAAiB,OAAO,EAAE,WAAU,KAAM;AACjD,MAAA,OAAO,SAAA,CAAU,UAAA,IAAe,aAAA,IAAiB,SAAA,CAAU,SAAA,IAAa,aAAA;AAAA,IAC1E,CAAC,CAAA,CACA,IAAA,CAAK,SAAS,EACd,MAAA,EAAO;AAEV,IAAA,MAAM,GAAA,GAAM,MAAM,YAAA,CAAa,cAAA,EAAe;AAE9C,IAAA,MAAM,MAAA,GAAS,MAAM,IAAA,CAAK,SAAA,CAAU;AAAA,MAClC,cAAA,EAAgB,cAAA,IAAkB,IAAIF,gCAAA,EAAe;AAAA,MACrD,QAAA,EAAU,YAAY,GAAA,CAAI,KAAA;AAAA,MAC1B,UAAA,EAAY,cAAc,IAAA,CAAK,IAAA;AAAA,MAC/B;AAAA,KACD,CAAA;AAED,IAAA,MAAM,OAAA,GAAU,IAAA,CAAK,cAAA,CAAe,QAAQ,CAAA;AAE5C,IAAA,OAAO,IAAI,MAAA,CAAO;AAAA,MAChB,SAAA,EAAW;AAAA,QACT,IAAA,EAAM,OAAA;AAAA,QACN,UAAA,EAAY,EAAA;AAAA,QACZ,YAAA,EAAc,MAAA;AAAA,QACd,SAAA,EAAW,CAAA;AAAA,QACX,kBAAkB,MAAA,EAAQ,UAAA;AAAA,QAC1B,UAAU,MAAA,EAAQ,EAAA;AAAA,QAClB,QAAA,EAAU,KAAA;AAAA,QACV,oBAAA,EAAsB;AAAA;AACxB,KACD,CAAA;AAAA,EACH;AAAA,EAEA,cAAA,CAAe,EAAE,cAAA,EAAe,EAAwC;AACtE,IAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,OAAA,EAAS,UAAA,MAAgBF,iBAAA,EAAW;AAEvD,IAAA,MAAM,mBAAA,GAAsB,cAAA,IAAkB,IAAIE,gCAAA,EAAe;AAEjE,IAAA,MAAM,cAAcI,4BAAA,CAAW;AAAA,MAC7B,EAAA,EAAI,cAAA;AAAA,MACJ,WAAA,EAAaF,MAAE,MAAA,CAAO;AAAA,QACpB,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA,QACf,UAAA,EAAYA,MAAE,MAAA,EAAO;AAAA,QACrB,YAAA,EAAcI,iCAAA;AAAA,QACd,MAAA,EAAQJ,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,QAC5B,SAAA,EAAWA,MAAE,MAAA,EAAO;AAAA,QACpB,QAAA,EAAUA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,QAC9B,gBAAA,EAAkBA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,QACtC,QAAA,EAAUA,MAAE,OAAA,EAAQ;AAAA,QACpB,oBAAA,EAAsBA,MAAE,OAAA;AAAQ,OACjC,CAAA;AAAA,MACD,YAAA,EAAcA,MAAE,MAAA,CAAO;AAAA,QACrB,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA,QACf,UAAA,EAAYA,MAAE,MAAA,EAAO;AAAA,QACrB,YAAA,EAAcI,iCAAA;AAAA,QACd,MAAA,EAAQJ,MAAE,MAAA,EAAO;AAAA,QACjB,MAAA,EAAQA,MAAE,MAAA,EAAO;AAAA,QACjB,UAAA,EAAYA,KAAA,CAAE,OAAA,EAAQ,CAAE,QAAA,EAAS;AAAA,QACjC,eAAA,EAAiBA,MAAE,MAAA,EAAO;AAAA,QAC1B,SAAA,EAAWA,MAAE,MAAA;AAAO,OACrB,CAAA;AAAA,MACD,OAAA,EAAS,OAAO,EAAE,SAAA,EAAW,aAAY,KAAM;AAC7C,QAAA,MAAM,QAAA,GAAW,MAAM,WAAA,EAAY;AAEnC,QAAA,MAAM,eAAe,MAAM,IAAA,CAAK,gBAAgB,EAAE,cAAA,EAAgB,qBAAqB,CAAA;AAEvF,QAAA,MAAM,KAAA,GAAQ,MAAM,YAAA,CAAa,QAAA,EAAS;AAE1C,QAAA,MAAM,gBAAA,GAAmBA,MAAE,MAAA,CAAO;AAAA,UAChC,UAAA,EAAYA,MAAE,OAAA,EAAQ;AAAA,UACtB,WAAA,EAAaA,MAAE,MAAA,EAAO;AAAA,UACtB,gBAAA,EAAkBA,MAAE,MAAA;AAAO,SAC5B,CAAA;AACD,QAAA,IAAI,gBAAA;AACJ,QAAA,IAAI,SAAA,CAAU,YAAA,KAAiB,MAAA,IAAU,SAAA,EAAW,MAAA,EAAQ;AAE1D,UAAA,MAAM,gBAAA,GAAmB;AAAA,4BAAA,EACL,SAAA,CAAU,YAAY,CAAA,CAAA,EAAI,SAAA,CAAU,UAAU,CAAA;AAAA,2DAAA,EACf,UAAU,MAAM;;AAAA;AAAA,uCAAA,EAGpC,UAAU,IAAI;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAA,CAAA;AAS7C,UAAA,IAAI,KAAA,CAAM,yBAAyB,IAAA,EAAM;AACvC,YAAA,gBAAA,GAAmB,MAAM,YAAA,CAAa,aAAA,CAAc,CAAC,EAAE,MAAM,WAAA,EAAa,OAAA,EAAS,gBAAA,EAAkB,CAAA,EAAG;AAAA,cACtG,MAAA,EAAQ,gBAAA;AAAA,cACR,QAAA,EAAU,UAAU,QAAA,IAAY,KAAA;AAAA,cAChC,UAAA,EAAY,QAAA,EAAU,gBAAA,IAAoB,IAAA,CAAK,IAAA;AAAA,cAC/C,cAAA,EAAgB;AAAA,aACjB,CAAA;AAAA,UACH,CAAA,MAAO;AACL,YAAA,gBAAA,GAAmB,MAAM,YAAA,CAAa,QAAA,CAAS,CAAC,EAAE,MAAM,WAAA,EAAa,OAAA,EAAS,gBAAA,EAAkB,CAAA,EAAG;AAAA,cACjG,MAAA,EAAQ,gBAAA;AAAA,cACR,QAAA,EAAU,UAAU,QAAA,IAAY,KAAA;AAAA,cAChC,UAAA,EAAY,QAAA,EAAU,gBAAA,IAAoB,IAAA,CAAK,IAAA;AAAA,cAC/C,cAAA,EAAgB;AAAA,aACjB,CAAA;AAAA,UACH;AAEA,UAAA,IAAI,gBAAA,CAAiB,OAAO,UAAA,EAAY;AACtC,YAAA,OAAO;AAAA,cACL,MAAM,SAAA,CAAU,IAAA;AAAA,cAChB,UAAA,EAAY,EAAA;AAAA,cACZ,YAAA,EAAc,MAAA;AAAA,cACd,MAAA,EAAQ,EAAA;AAAA,cACR,MAAA,EAAQ,iBAAiB,MAAA,CAAO,WAAA;AAAA,cAChC,UAAA,EAAY,IAAA;AAAA,cACZ,eAAA,EAAiB,iBAAiB,MAAA,CAAO,gBAAA;AAAA,cACzC,SAAA,EAAW,UAAU,SAAA,GAAY;AAAA,aACnC;AAAA,UACF;AAAA,QACF;AAEA,QAAA,IAAI,MAAA;AACJ,QAAA,MAAM,MAAA,GAA2B;AAAA,UAC/B;AAAA,YACE,IAAA,EAAM,WAAA;AAAA,YACN,OAAA,EAAS;AAAA,kBAAA,EACD,SAAA,CAAU,QAAA,GAAW,qNAAA,GAAwN,4RAA4R;;AAAA;AAAA,kBAAA,EAGzgB,UAAU,IAAI;AAAA,kBAAA,EACd,gBAAA,GAAmB;;AAAA,EAAO,gBAAA,CAAiB,MAAA,CAAO,WAAW,CAAA,CAAA,GAAK,EAAE;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA,4FAAA,EAYM,SAAA,CAAU,oBAAA,GAAuB,wDAAA,GAA2D,GAAG;AAAA,kBAAA;AAAA;AAEnL,SACF;AAEA,QAAA,MAAM,OAAA,GAAU;AAAA,UACd,MAAA,EAAQA,MAAE,MAAA,CAAO;AAAA,YACf,UAAA,EAAYA,MAAE,MAAA,EAAO;AAAA,YACrB,YAAA,EAAcI,iCAAA;AAAA,YACd,MAAA,EAAQJ,MAAE,MAAA,EAAO;AAAA,YACjB,eAAA,EAAiBA,MAAE,MAAA;AAAO,WAC3B,CAAA;AAAA,UACD,QAAA,EAAU,UAAU,QAAA,IAAY,KAAA;AAAA,UAChC,UAAA,EAAY,QAAA,EAAU,gBAAA,IAAoB,IAAA,CAAK,IAAA;AAAA,UAC/C,cAAA,EAAgB;AAAA,SAClB;AAEA,QAAA,IAAI,KAAA,CAAM,yBAAyB,IAAA,EAAM;AACvC,UAAA,MAAA,GAAS,MAAM,YAAA,CAAa,aAAA,CAAc,MAAA,EAAQ,OAAO,CAAA;AAAA,QAC3D,CAAA,MAAO;AACL,UAAA,MAAA,GAAS,MAAM,YAAA,CAAa,QAAA,CAAS,MAAA,EAAQ,OAAO,CAAA;AAAA,QACtD;AAEA,QAAA,OAAO;AAAA,UACL,MAAM,SAAA,CAAU,IAAA;AAAA,UAChB,MAAA,EAAQ,EAAA;AAAA,UACR,UAAA,EAAY,OAAO,MAAA,CAAO,UAAA;AAAA,UAC1B,YAAA,EAAc,OAAO,MAAA,CAAO,YAAA;AAAA,UAC5B,MAAA,EAAQ,OAAO,MAAA,CAAO,MAAA;AAAA,UACtB,UAAA,EAAY,OAAO,MAAA,CAAO,UAAA,KAAe,UAAU,MAAA,CAAO,MAAA,CAAO,YAAA,KAAiB,MAAA,GAAS,IAAA,GAAO,KAAA;AAAA,UAClG,eAAA,EAAiB,OAAO,MAAA,CAAO,eAAA;AAAA,UAC/B,SAAA,EAAW,UAAU,SAAA,GAAY;AAAA,SACnC;AAAA,MACF;AAAA,KACD,CAAA;AAED,IAAA,MAAM,YAAYE,4BAAA,CAAW;AAAA,MAC3B,EAAA,EAAI,YAAA;AAAA,MACJ,WAAA,EAAaF,MAAE,MAAA,CAAO;AAAA,QACpB,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA,QACf,UAAA,EAAYA,MAAE,MAAA,EAAO;AAAA,QACrB,YAAA,EAAcI,iCAAA;AAAA,QACd,MAAA,EAAQJ,MAAE,MAAA,EAAO;AAAA,QACjB,MAAA,EAAQA,MAAE,MAAA,EAAO;AAAA,QACjB,UAAA,EAAYA,KAAA,CAAE,OAAA,EAAQ,CAAE,QAAA,EAAS;AAAA,QACjC,eAAA,EAAiBA,MAAE,MAAA,EAAO;AAAA,QAC1B,SAAA,EAAWA,MAAE,MAAA;AAAO,OACrB,CAAA;AAAA,MACD,YAAA,EAAcA,MAAE,MAAA,CAAO;AAAA,QACrB,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA,QACf,UAAA,EAAYA,MAAE,MAAA,EAAO;AAAA,QACrB,YAAA,EAAcI,iCAAA;AAAA,QACd,MAAA,EAAQJ,MAAE,MAAA,EAAO;AAAA,QACjB,UAAA,EAAYA,KAAA,CAAE,OAAA,EAAQ,CAAE,QAAA,EAAS;AAAA,QACjC,SAAA,EAAWA,MAAE,MAAA;AAAO,OACrB,CAAA;AAAA,MACD,OAAA,EAAS,OAAO,EAAE,SAAA,EAAW,CAACK,gCAAA,GAAiB,OAAA,EAAS,aAAY,KAAM;AACxE,QAAA,MAAM,YAAY,MAAM,IAAA,CAAK,UAAU,EAAE,cAAA,EAAgB,qBAAqB,CAAA;AAC9E,QAAA,MAAM,UAAU,SAAA,CAAU,UAAA;AAE1B,QAAA,MAAM,KAAA,GAAQ,SAAA,CAAU,SAAA,CAAU,UAAU,CAAA;AAE5C,QAAA,IAAI,CAAC,KAAA,EAAO;AACV,UAAA,MAAM,IAAI,KAAA,CAAM,CAAA,MAAA,EAAS,OAAO,CAAA,UAAA,CAAY,CAAA;AAAA,QAC9C;AAEA,QAAA,IAAI,gBAAgB,EAAC;AAMrB,QAAA,aAAA,CAAc,OAAA,GAAU,IAAI,OAAA,CAAQ,CAAC,SAAS,MAAA,KAAW;AACvD,UAAA,aAAA,CAAc,OAAA,GAAU,OAAA;AACxB,UAAA,aAAA,CAAc,MAAA,GAAS,MAAA;AAAA,QACzB,CAAC,CAAA;AACD,QAAA,MAAM,QAAA,GAAW;AAAA,UACf,MAAM,KAAA,CAAM,IAAA;AAAA,UACZ,IAAA,EAAM;AAAA,SACR;AACA,QAAA,MAAM,OAAA,CAAQ,KAAK,UAAA,EAAY;AAAA,UAC7B,IAAA,EAAM,2BAAA;AAAA,UACN,GAAG;AAAA,SACJ,CAAA;AAED,QAAA,MAAM,KAAA,GAAQ,MAAM,KAAA,CAAM,QAAA,EAAS;AAEnC,QAAA,IAAI,MAAA;AAEJ,QAAA,IAAI,KAAA,CAAM,yBAAyB,IAAA,EAAM;AACvC,UAAA,MAAA,GAAS,MAAM,KAAA,CAAM,WAAA,CAAY,SAAA,CAAU,MAAA,EAAQ;AAAA;AAAA;AAAA,YAGjD,cAAA,EAAgB,mBAAA;AAAA,YAChB,QAAA,EAAU,CAAAC,OAAAA,KAAU;AAClB,cAAA,aAAA,CAAc,OAAA,CAAQA,QAAO,IAAI,CAAA;AAAA,YACnC;AAAA,WACD,CAAA;AAED,UAAA,WAAA,MAAiB,KAAA,IAAS,OAAO,UAAA,EAAY;AAC3C,YAAA,QAAQ,MAAM,IAAA;AAAM,cAClB,KAAK,YAAA;AACH,gBAAA,MAAM,OAAA,CAAQ,KAAK,UAAA,EAAY;AAAA,kBAC7B,IAAA,EAAM,iBAAA;AAAA,kBACN,GAAG,QAAA;AAAA,kBACH,aAAA,EAAe,MAAM,OAAA,CAAQ;AAAA,iBAC9B,CAAA;AACD,gBAAA;AAAA,cAEF,KAAK,YAAA;AAAA,cACL,KAAK,aAAA;AAAA,cACL,KAAK,QAAA;AAAA,cACL,KAAK,WAAA;AAAA,cACL,KAAK,aAAA;AAAA,cACL,KAAK,iCAAA;AAAA,cACL,KAAK,iBAAA;AACH,gBAAA;AAAA,cACF,KAAK,QAAA;AAAA,cACL,KAAK,MAAA;AAAA,cACL;AACE,gBAAA,MAAM,OAAA,CAAQ,IAAA,CAAK,UAAA,EAAY,KAAK,CAAA;AACpC,gBAAA;AAAA;AACJ,UACF;AAAA,QACF,CAAA,MAAO;AACL,UAAA,MAAA,GAAS,MAAM,KAAA,CAAM,MAAA,CAAO,SAAA,CAAU,MAAA,EAAQ;AAAA;AAAA;AAAA,YAG5C,cAAA,EAAgB,mBAAA;AAAA,YAChB,QAAA,EAAU,CAAAA,OAAAA,KAAU;AAClB,cAAA,aAAA,CAAc,OAAA,CAAQA,QAAO,IAAI,CAAA;AAAA,YACnC;AAAA,WACD,CAAA;AAED,UAAA,WAAA,MAAiB,KAAA,IAAS,OAAO,UAAA,EAAY;AAC3C,YAAA,QAAQ,MAAM,IAAA;AAAM,cAClB,KAAK,YAAA;AACH,gBAAA,MAAM,OAAA,CAAQ,KAAK,UAAA,EAAY;AAAA,kBAC7B,IAAA,EAAM,iBAAA;AAAA,kBACN,GAAG,QAAA;AAAA,kBACH,eAAe,KAAA,CAAM;AAAA,iBACtB,CAAA;AACD,gBAAA;AAAA,cAEF,KAAK,YAAA;AAAA,cACL,KAAK,aAAA;AAAA,cACL,KAAK,QAAA;AAAA,cACL,KAAK,WAAA;AAAA,cACL,KAAK,aAAA;AAAA,cACL,KAAK,2BAAA;AAAA,cACL,KAAK,iBAAA;AACH,gBAAA;AAAA,cACF,KAAK,QAAA;AAAA,cACL,KAAK,MAAA;AAAA,cACL;AACE,gBAAA,MAAM,OAAA,CAAQ,IAAA,CAAK,UAAA,EAAY,KAAK,CAAA;AACpC,gBAAA;AAAA;AACJ,UACF;AAAA,QACF;AAEA,QAAA,MAAM,WAAA,GAAc,MAAM,aAAA,CAAc,OAAA;AAExC,QAAA,MAAM,MAAA,GAAS,MAAM,IAAA,CAAK,SAAA,CAAU,EAAE,gBAAgB,cAAA,IAAkB,IAAIR,gCAAA,EAAe,EAAG,CAAA;AAC9F,QAAA,MAAM,QAAA,GAAW,MAAM,WAAA,EAAY;AACnC,QAAA,MAAM,QAAQ,YAAA,CAAa;AAAA,UACzB,QAAA,EAAU;AAAA,YACR;AAAA,cACE,EAAA,EAAI,IAAA,CAAK,OAAA,EAAS,UAAA,MAAgBF,iBAAA,EAAW;AAAA,cAC7C,IAAA,EAAM,MAAA;AAAA,cACN,IAAA,EAAM,WAAA;AAAA,cACN,OAAA,EAAS,EAAE,KAAA,EAAO,CAAC,EAAE,IAAA,EAAM,MAAA,EAAQ,IAAA,EAAM,WAAA,EAAa,CAAA,EAAG,MAAA,EAAQ,CAAA,EAAE;AAAA,cACnE,SAAA,sBAAe,IAAA,EAAK;AAAA,cACpB,QAAA,EAAU,SAAS,QAAA,IAAY,KAAA;AAAA,cAC/B,UAAA,EAAY,QAAA,CAAS,gBAAA,IAAoB,IAAA,CAAK;AAAA;AAChD,WACF;AAAA,UACA,MAAA,EAAQ;AAAA,SACT,CAAA;AAED,QAAA,OAAO;AAAA,UACL,MAAM,SAAA,CAAU,IAAA;AAAA,UAChB,YAAY,SAAA,CAAU,UAAA;AAAA,UACtB,cAAc,SAAA,CAAU,YAAA;AAAA,UACxB,MAAA,EAAQ,WAAA;AAAA,UACR,UAAA,EAAY,KAAA;AAAA,UACZ,WAAW,SAAA,CAAU;AAAA,SACvB;AAAA,MACF;AAAA,KACD,CAAA;AAED,IAAA,MAAM,eAAeM,4BAAA,CAAW;AAAA,MAC9B,EAAA,EAAI,eAAA;AAAA,MACJ,WAAA,EAAaF,MAAE,MAAA,CAAO;AAAA,QACpB,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA,QACf,UAAA,EAAYA,MAAE,MAAA,EAAO;AAAA,QACrB,YAAA,EAAcI,iCAAA;AAAA,QACd,MAAA,EAAQJ,MAAE,MAAA,EAAO;AAAA,QACjB,MAAA,EAAQA,MAAE,MAAA,EAAO;AAAA,QACjB,UAAA,EAAYA,KAAA,CAAE,OAAA,EAAQ,CAAE,QAAA,EAAS;AAAA,QACjC,eAAA,EAAiBA,MAAE,MAAA,EAAO;AAAA,QAC1B,SAAA,EAAWA,MAAE,MAAA;AAAO,OACrB,CAAA;AAAA,MACD,YAAA,EAAcA,MAAE,MAAA,CAAO;AAAA,QACrB,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA,QACf,UAAA,EAAYA,MAAE,MAAA,EAAO;AAAA,QACrB,YAAA,EAAcI,iCAAA;AAAA,QACd,MAAA,EAAQJ,MAAE,MAAA,EAAO;AAAA,QACjB,UAAA,EAAYA,KAAA,CAAE,OAAA,EAAQ,CAAE,QAAA,EAAS;AAAA,QACjC,SAAA,EAAWA,MAAE,MAAA;AAAO,OACrB,CAAA;AAAA,MACD,OAAA,EAAS,OAAO,EAAE,SAAA,EAAW,CAACK,gCAAA,GAAiB,OAAA,EAAS,aAAY,KAAM;AACxE,QAAA,MAAM,eAAe,MAAM,IAAA,CAAK,aAAa,EAAE,cAAA,EAAgB,qBAAqB,CAAA;AACpF,QAAA,MAAM,EAAA,GAAK,YAAA,CAAa,SAAA,CAAU,UAAU,CAAA;AAE5C,QAAA,IAAI,CAAC,EAAA,EAAI;AACP,UAAA,MAAM,IAAI,KAAA,CAAM,CAAA,SAAA,EAAY,SAAA,CAAU,UAAU,CAAA,UAAA,CAAY,CAAA;AAAA,QAC9D;AAEA,QAAA,IAAI,KAAA;AACJ,QAAA,IAAI;AACF,UAAA,KAAA,GAAQ,IAAA,CAAK,KAAA,CAAM,SAAA,CAAU,MAAM,CAAA;AAAA,QACrC,SAAS,CAAA,EAAY;AACnB,UAAA,OAAA,CAAQ,MAAM,CAAC,CAAA;AACf,UAAA,MAAM,IAAI,KAAA,CAAM,CAAA,oBAAA,EAAuB,SAAA,CAAU,IAAI,CAAA,CAAE,CAAA;AAAA,QACzD;AAEA,QAAA,IAAI,gBAAgB,EAAC;AAMrB,QAAA,aAAA,CAAc,OAAA,GAAU,IAAI,OAAA,CAAQ,CAAC,SAAS,MAAA,KAAW;AACvD,UAAA,aAAA,CAAc,OAAA,GAAU,OAAA;AACxB,UAAA,aAAA,CAAc,MAAA,GAAS,MAAA;AAAA,QACzB,CAAC,CAAA;AACD,QAAA,MAAM,QAAA,GAAW;AAAA,UACf,MAAM,EAAA,CAAG,IAAA;AAAA,UACT,IAAA,EAAM;AAAA,SACR;AACA,QAAA,MAAM,OAAA,CAAQ,KAAK,UAAA,EAAY;AAAA,UAC7B,IAAA,EAAM,2BAAA;AAAA,UACN,GAAG;AAAA,SACJ,CAAA;AACD,QAAA,MAAM,GAAA,GAAM,MAAM,EAAA,CAAG,cAAA,EAAe;AACpC,QAAA,MAAM,EAAE,MAAA,EAAQ,gBAAA,EAAiB,GAAI,IAAI,MAAA,CAAO;AAAA,UAC9C,SAAA,EAAW,KAAA;AAAA,UACX,cAAA,EAAgB;AAAA,SACjB,CAAA;AAED,QAAA,IAAI,MAAA;AAEJ,QAAA,WAAA,MAAiB,SAAS,MAAA,EAAQ;AAChC,UAAA,MAAM,CAAA,GAAS,KAAA;AAEf,UAAA,QAAQ,EAAE,IAAA;AAAM,YACd,KAAK,YAAA;AACH,cAAA,MAAM,OAAA,CAAQ,KAAK,UAAA,EAAY;AAAA,gBAC7B,IAAA,EAAM,iBAAA;AAAA,gBACN,GAAG,QAAA;AAAA,gBACH,eAAe,CAAA,CAAE;AAAA,eAClB,CAAA;AACD,cAAA;AAAA,YAEF,KAAK,aAAA;AACH,cAAA,IAAI,CAAA,EAAG,SAAS,MAAA,EAAQ;AACtB,gBAAA,MAAA,GAAS,GAAG,OAAA,EAAS,MAAA;AACqB,cAC5C;AACA,cAAA,MAAM,OAAA,CAAQ,IAAA,CAAK,UAAA,EAAY,CAAC,CAAA;AAChC,cAAA;AAAA,YACF,KAAK,QAAA;AACH,cAAA,aAAA,CAAc,QAAQ,MAAM,CAAA;AAC5B,cAAA;AAAA,YAEF,KAAK,OAAA;AAAA,YACL,KAAK,YAAA;AAAA,YACL,KAAK,aAAA;AAAA,YACL,KAAK,WAAA;AAAA,YACL,KAAK,aAAA;AAAA,YACL,KAAK,2BAAA;AAAA,YACL,KAAK,iBAAA;AAAA,YACL,KAAK,QAAA;AAAA,YACL,KAAK,MAAA;AAAA,YACL;AACE,cAAA,MAAM,OAAA,CAAQ,IAAA,CAAK,UAAA,EAAY,CAAC,CAAA;AAChC,cAAA;AAAA;AACJ,QACF;AAEA,QAAA,IAAI,UAAA,GAAa,IAAA;AACjB,QAAA,MAAM,SAAA,GAAY,MAAM,aAAA,CAAc,OAAA;AAEtC,QAAA,MAAM,aAAA,GAAgB,MAAM,gBAAA,EAAiB;AAC7C,QAAA,IAAI,aAAA,CAAc,WAAW,QAAA,EAAU;AACrC,UAAA,UAAA,GAAa,KAAA;AAAA,QACf;AAEA,QAAA,MAAM,WAAA,GAAc,KAAK,SAAA,CAAU;AAAA,UACjC,OAAO,GAAA,CAAI,KAAA;AAAA,UACX,SAAA;AAAA,UACA;AAAA,SACD,CAAA;AAED,QAAA,MAAM,MAAA,GAAS,MAAM,IAAA,CAAK,SAAA,CAAU,EAAE,gBAAgB,cAAA,IAAkB,IAAIP,gCAAA,EAAe,EAAG,CAAA;AAC9F,QAAA,MAAM,QAAA,GAAW,MAAM,WAAA,EAAY;AACnC,QAAA,MAAM,QAAQ,YAAA,CAAa;AAAA,UACzB,QAAA,EAAU;AAAA,YACR;AAAA,cACE,EAAA,EAAI,IAAA,CAAK,OAAA,EAAS,UAAA,MAAgBF,iBAAA,EAAW;AAAA,cAC7C,IAAA,EAAM,MAAA;AAAA,cACN,IAAA,EAAM,WAAA;AAAA,cACN,OAAA,EAAS,EAAE,KAAA,EAAO,CAAC,EAAE,IAAA,EAAM,MAAA,EAAQ,IAAA,EAAM,WAAA,EAAa,CAAA,EAAG,MAAA,EAAQ,CAAA,EAAE;AAAA,cACnE,SAAA,sBAAe,IAAA,EAAK;AAAA,cACpB,QAAA,EAAU,SAAS,QAAA,IAAY,KAAA;AAAA,cAC/B,UAAA,EAAY,QAAA,CAAS,gBAAA,IAAoB,IAAA,CAAK;AAAA;AAChD,WACF;AAAA,UACA,MAAA,EAAQ;AAAA,SACT,CAAA;AAED,QAAA,OAAO;AAAA,UACL,QAAQ,WAAA,IAAe,EAAA;AAAA,UACvB,MAAM,SAAA,CAAU,IAAA;AAAA,UAChB,YAAY,SAAA,CAAU,UAAA;AAAA,UACtB,cAAc,SAAA,CAAU,YAAA;AAAA,UACxB,UAAA,EAAY,KAAA;AAAA,UACZ,WAAW,SAAA,CAAU;AAAA,SACvB;AAAA,MACF;AAAA,KACD,CAAA;AAED,IAAA,MAAM,WAAWM,4BAAA,CAAW;AAAA,MAC1B,EAAA,EAAI,UAAA;AAAA,MACJ,WAAA,EAAaF,MAAE,MAAA,CAAO;AAAA,QACpB,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA,QACf,UAAA,EAAYA,MAAE,MAAA,EAAO;AAAA,QACrB,YAAA,EAAcI,iCAAA;AAAA,QACd,MAAA,EAAQJ,MAAE,MAAA,EAAO;AAAA,QACjB,MAAA,EAAQA,MAAE,MAAA,EAAO;AAAA,QACjB,UAAA,EAAYA,KAAA,CAAE,OAAA,EAAQ,CAAE,QAAA,EAAS;AAAA,QACjC,eAAA,EAAiBA,MAAE,MAAA,EAAO;AAAA,QAC1B,SAAA,EAAWA,MAAE,MAAA;AAAO,OACrB,CAAA;AAAA,MACD,YAAA,EAAcA,MAAE,MAAA,CAAO;AAAA,QACrB,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA,QACf,UAAA,EAAYA,MAAE,MAAA,EAAO;AAAA,QACrB,YAAA,EAAcI,iCAAA;AAAA,QACd,MAAA,EAAQJ,MAAE,MAAA,EAAO;AAAA,QACjB,UAAA,EAAYA,KAAA,CAAE,OAAA,EAAQ,CAAE,QAAA,EAAS;AAAA,QACjC,SAAA,EAAWA,MAAE,MAAA;AAAO,OACrB,CAAA;AAAA,MACD,OAAA,EAAS,OAAO,EAAE,SAAA,EAAW,aAAY,KAAM;AAC7C,QAAA,MAAM,WAAW,MAAM,IAAA,CAAK,SAAS,EAAE,cAAA,EAAgB,qBAAqB,CAAA;AAC5E,QAAA,MAAM,IAAA,GAAO,QAAA,CAAS,SAAA,CAAU,UAAU,CAAA;AAE1C,QAAA,IAAI,CAAC,IAAA,EAAM;AACT,UAAA,MAAM,IAAI,KAAA,CAAM,CAAA,KAAA,EAAQ,SAAA,CAAU,UAAU,CAAA,UAAA,CAAY,CAAA;AAAA,QAC1D;AAEA,QAAA,IAAI,CAAC,KAAK,OAAA,EAAS;AACjB,UAAA,MAAM,IAAI,KAAA,CAAM,CAAA,KAAA,EAAQ,SAAA,CAAU,UAAU,CAAA,kCAAA,CAAoC,CAAA;AAAA,QAClF;AAEA,QAAA,IAAI,cAAA;AACJ,QAAA,IAAI;AACF,UAAA,cAAA,GAAiB,IAAA,CAAK,KAAA,CAAM,SAAA,CAAU,MAAM,CAAA;AAAA,QAC9C,SAAS,CAAA,EAAY;AACnB,UAAA,OAAA,CAAQ,MAAM,CAAC,CAAA;AACf,UAAA,MAAM,IAAI,KAAA,CAAM,CAAA,oBAAA,EAAuB,SAAA,CAAU,IAAI,CAAA,CAAE,CAAA;AAAA,QACzD;AAEA,QAAA,MAAM,WAAA,GAAmB,MAAM,IAAA,CAAK,OAAA,CAAQ;AAAA,UAC1C,cAAA,EAAgB,mBAAA;AAAA,UAChB,QAAQ,IAAA,CAAK,OAAA;AAAA,UACb,YAAY,SAAA,CAAU,UAAA;AAAA,UACtB,QAAA,EAAU,KAAA;AAAA,UACV,KAAA;AAAA,UACA,OAAA,EAAS,cAAA;AAAA;AAAA,UAET,cAAA,EAAgB,EAAE,WAAA,EAAa,MAAA,EAAU;AAAA,UACzC,SAAS,YAAY;AAAA,UAAC;AAAA;AAAA,SACvB,CAAA;AAED,QAAA,MAAM,MAAA,GAAS,MAAM,IAAA,CAAK,SAAA,CAAU,EAAE,gBAAgB,cAAA,IAAkB,IAAIF,gCAAA,EAAe,EAAG,CAAA;AAC9F,QAAA,MAAM,QAAA,GAAW,MAAM,WAAA,EAAY;AACnC,QAAA,MAAM,QAAQ,YAAA,CAAa;AAAA,UACzB,QAAA,EAAU;AAAA,YACR;AAAA,cACE,EAAA,EAAI,IAAA,CAAK,OAAA,EAAS,UAAA,MAAgBF,iBAAA,EAAW;AAAA,cAC7C,IAAA,EAAM,MAAA;AAAA,cACN,IAAA,EAAM,WAAA;AAAA,cACN,OAAA,EAAS,EAAE,KAAA,EAAO,CAAC,EAAE,IAAA,EAAM,MAAA,EAAQ,IAAA,EAAM,IAAA,CAAK,UAAU,WAAW,CAAA,EAAG,CAAA,EAAG,QAAQ,CAAA,EAAE;AAAA,cACnF,SAAA,sBAAe,IAAA,EAAK;AAAA,cACpB,QAAA,EAAU,SAAS,QAAA,IAAY,KAAA;AAAA,cAC/B,UAAA,EAAY,QAAA,CAAS,gBAAA,IAAoB,IAAA,CAAK;AAAA;AAChD,WACF;AAAA,UACA,MAAA,EAAQ;AAAA,SACT,CAAA;AAED,QAAA,OAAO;AAAA,UACL,MAAM,SAAA,CAAU,IAAA;AAAA,UAChB,YAAY,SAAA,CAAU,UAAA;AAAA,UACtB,cAAc,SAAA,CAAU,YAAA;AAAA,UACxB,MAAA,EAAQ,WAAA;AAAA,UACR,UAAA,EAAY,KAAA;AAAA,UACZ,WAAW,SAAA,CAAU;AAAA,SACvB;AAAA,MACF;AAAA,KACD,CAAA;AAED,IAAA,MAAM,aAAaM,4BAAA,CAAW;AAAA,MAC5B,EAAA,EAAI,aAAA;AAAA,MACJ,WAAA,EAAaF,MAAE,MAAA,CAAO;AAAA,QACpB,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA,QACf,UAAA,EAAYA,MAAE,MAAA,EAAO;AAAA,QACrB,YAAA,EAAcI,iCAAA;AAAA,QACd,MAAA,EAAQJ,MAAE,MAAA,EAAO;AAAA,QACjB,MAAA,EAAQA,MAAE,MAAA,EAAO;AAAA,QACjB,UAAA,EAAYA,KAAA,CAAE,OAAA,EAAQ,CAAE,QAAA,EAAS;AAAA,QACjC,eAAA,EAAiBA,MAAE,MAAA,EAAO;AAAA,QAC1B,SAAA,EAAWA,MAAE,MAAA;AAAO,OACrB,CAAA;AAAA,MACD,YAAA,EAAcA,MAAE,MAAA,CAAO;AAAA,QACrB,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA,QACf,MAAA,EAAQA,MAAE,MAAA,EAAO;AAAA,QACjB,UAAA,EAAYA,MAAE,OAAA,EAAQ;AAAA,QACtB,SAAA,EAAWA,MAAE,MAAA;AAAO,OACrB,CAAA;AAAA,MACD,OAAA,EAAS,OAAO,EAAE,SAAA,EAAU,KAAM;AAChC,QAAA,OAAO;AAAA,UACL,MAAM,SAAA,CAAU,IAAA;AAAA,UAChB,QAAQ,SAAA,CAAU,MAAA;AAAA,UAClB,UAAA,EAAY,CAAC,CAAC,SAAA,CAAU,UAAA;AAAA,UACxB,WAAW,SAAA,CAAU;AAAA,SACvB;AAAA,MACF;AAAA,KACD,CAAA;AAED,IAAA,MAAM,kBAAkBG,gCAAA,CAAe;AAAA,MACrC,EAAA,EAAI,8BAAA;AAAA,MACJ,WAAA,EAAaH,MAAE,MAAA,CAAO;AAAA,QACpB,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA,QACf,UAAA,EAAYA,MAAE,MAAA,EAAO;AAAA,QACrB,YAAA,EAAcI,iCAAA;AAAA,QACd,MAAA,EAAQJ,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,QAC5B,SAAA,EAAWA,MAAE,MAAA,EAAO;AAAA,QACpB,QAAA,EAAUA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,QAC9B,gBAAA,EAAkBA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,QACtC,QAAA,EAAUA,MAAE,OAAA,EAAQ;AAAA,QACpB,oBAAA,EAAsBA,MAAE,OAAA;AAAQ,OACjC,CAAA;AAAA,MACD,YAAA,EAAcA,MAAE,MAAA,CAAO;AAAA,QACrB,IAAA,EAAMA,MAAE,MAAA,EAAO;AAAA,QACf,UAAA,EAAYA,MAAE,MAAA,EAAO;AAAA,QACrB,YAAA,EAAcI,iCAAA;AAAA,QACd,MAAA,EAAQJ,MAAE,MAAA,EAAO;AAAA,QACjB,MAAA,EAAQA,MAAE,MAAA,EAAO;AAAA,QACjB,UAAA,EAAYA,KAAA,CAAE,OAAA,EAAQ,CAAE,QAAA,EAAS;AAAA,QACjC,gBAAA,EAAkBA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,QACtC,SAAA,EAAWA,MAAE,MAAA,EAAO;AAAA,QACpB,QAAA,EAAUA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,QAC9B,gBAAA,EAAkBA,KAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,QACtC,QAAA,EAAUA,MAAE,OAAA;AAAQ,OACrB;AAAA,KACF,CAAA;AAED,IAAA,eAAA,CACG,IAAA,CAAK,WAAW,CAAA,CAChB,MAAA,CAAO;AAAA,MACN,CAAC,OAAO,EAAE,SAAA,EAAU,KAAM,CAAC,SAAA,CAAU,UAAA,IAAc,SAAA,CAAU,YAAA,KAAiB,OAAA,EAAS,SAAS,CAAA;AAAA,MAChG,CAAC,OAAO,EAAE,SAAA,EAAU,KAAM,CAAC,SAAA,CAAU,UAAA,IAAc,SAAA,CAAU,YAAA,KAAiB,UAAA,EAAY,YAAY,CAAA;AAAA,MACtG,CAAC,OAAO,EAAE,SAAA,EAAU,KAAM,CAAC,SAAA,CAAU,UAAA,IAAc,SAAA,CAAU,YAAA,KAAiB,MAAA,EAAQ,QAAQ,CAAA;AAAA,MAC9F,CAAC,OAAO,EAAE,WAAU,KAAM,SAAA,CAAU,YAAY,UAAU;AAAA,KAC3D,EACA,GAAA,CAAI;AAAA,MACH,IAAA,EAAM;AAAA,QACJ,IAAA,EAAM,CAAC,WAAA,EAAa,SAAA,EAAW,cAAc,QAAQ,CAAA;AAAA,QACrD,IAAA,EAAM;AAAA,OACR;AAAA,MACA,UAAA,EAAY;AAAA,QACV,IAAA,EAAM,CAAC,SAAA,EAAW,YAAA,EAAc,UAAU,UAAU,CAAA;AAAA,QACpD,IAAA,EAAM;AAAA,OACR;AAAA,MACA,gBAAA,EAAkB;AAAA,QAChB,MAAM,CAAC,WAAA,EAAa,SAAA,EAAW,YAAA,EAAc,UAAU,UAAU,CAAA;AAAA,QACjE,IAAA,EAAM;AAAA,OACR;AAAA,MACA,MAAA,EAAQ;AAAA,QACN,IAAA,EAAM,CAAC,SAAA,EAAW,YAAA,EAAc,UAAU,UAAU,CAAA;AAAA,QACpD,IAAA,EAAM;AAAA,OACR;AAAA,MACA,UAAA,EAAY;AAAA,QACV,IAAA,EAAM,CAAC,WAAA,EAAa,SAAA,EAAW,cAAc,QAAQ,CAAA;AAAA,QACrD,IAAA,EAAM;AAAA,OACR;AAAA,MACA,YAAA,EAAc;AAAA,QACZ,IAAA,EAAM,CAAC,WAAA,EAAa,SAAA,EAAW,cAAc,QAAQ,CAAA;AAAA,QACrD,IAAA,EAAM;AAAA,OACR;AAAA,MACA,SAAA,EAAW;AAAA,QACT,IAAA,EAAM,CAAC,WAAA,EAAa,SAAA,EAAW,cAAc,QAAQ,CAAA;AAAA,QACrD,IAAA,EAAM;AAAA,OACR;AAAA,MACA,QAAA,EAAU;AAAA,QACR,QAAA,EAAU,eAAA;AAAA,QACV,IAAA,EAAM;AAAA,OACR;AAAA,MACA,QAAA,EAAU;AAAA,QACR,QAAA,EAAU,eAAA;AAAA,QACV,IAAA,EAAM;AAAA,OACR;AAAA,MACA,gBAAA,EAAkB;AAAA,QAChB,QAAA,EAAU,eAAA;AAAA,QACV,IAAA,EAAM;AAAA;AACR,KACD,EACA,MAAA,EAAO;AAEV,IAAA,OAAO,eAAA;AAAA,EACT;AAAA,EAEA,MAAM,SACJ,QAAA,EACA;AAAA,IACE,cAAA;AAAA,IACA,QAAA;AAAA,IACA;AAAA,GACF,EACA;AACA,IAAA,MAAM,eAAA,GAAkB,IAAA,CAAK,cAAA,CAAe,EAAE,gBAAgB,CAAA;AAC9D,IAAA,MAAM,GAAA,GAAM,MAAM,eAAA,CAAgB,cAAA,EAAe;AAEjD,IAAA,MAAM,MAAA,GAAS,MAAM,IAAA,CAAK,SAAA,CAAU;AAAA,MAClC,cAAA,EAAgB,cAAA,IAAkB,IAAIF,gCAAA,EAAe;AAAA,MACrD,QAAA,EAAU,YAAY,GAAA,CAAI,KAAA;AAAA,MAC1B,UAAA,EAAY,cAAc,IAAA,CAAK,IAAA;AAAA,MAC/B;AAAA,KACD,CAAA;AAED,IAAA,MAAM,OAAA,GAAU,IAAA,CAAK,cAAA,CAAe,QAAQ,CAAA;AAE5C,IAAA,MAAM,MAAA,GAAS,MAAM,GAAA,CAAI,KAAA,CAAM;AAAA,MAC7B,SAAA,EAAW;AAAA,QACT,IAAA,EAAM,OAAA;AAAA,QACN,UAAA,EAAY,EAAA;AAAA,QACZ,YAAA,EAAc,MAAA;AAAA,QACd,SAAA,EAAW,CAAA;AAAA,QACX,UAAU,MAAA,EAAQ,EAAA;AAAA,QAClB,kBAAkB,MAAA,EAAQ,UAAA;AAAA,QAC1B,QAAA,EAAU,IAAA;AAAA,QACV,oBAAA,EAAsB;AAAA;AACxB,KACD,CAAA;AAED,IAAA,IAAI,MAAA,CAAO,WAAW,QAAA,EAAU;AAC9B,MAAA,MAAM,MAAA,CAAO,KAAA;AAAA,IACf;AAEA,IAAA,IAAI,MAAA,CAAO,WAAW,WAAA,EAAa;AACjC,MAAA,MAAM,IAAI,MAAM,oBAAoB,CAAA;AAAA,IACtC;AAEA,IAAA,OAAO;AAAA,MACL,IAAA,EAAM,OAAO,MAAA,CAAO,IAAA;AAAA,MACpB,MAAA,EAAQ,OAAO,MAAA,CAAO,MAAA;AAAA,MACtB,UAAA,EAAY,OAAO,MAAA,CAAO,UAAA;AAAA,MAC1B,YAAA,EAAc,OAAO,MAAA,CAAO;AAAA,KAC9B;AAAA,EACF;AAAA,EAEA,MAAM,OACJ,QAAA,EACA;AAAA,IACE,cAAA;AAAA,IACA,QAAA;AAAA,IACA;AAAA,GACF,EACA;AACA,IAAA,MAAM,eAAA,GAAkB,IAAA,CAAK,cAAA,CAAe,EAAE,gBAAgB,CAAA;AAC9D,IAAA,MAAM,GAAA,GAAM,MAAM,eAAA,CAAgB,cAAA,EAAe;AAEjD,IAAA,MAAM,MAAA,GAAS,MAAM,IAAA,CAAK,SAAA,CAAU;AAAA,MAClC,cAAA,EAAgB,cAAA,IAAkB,IAAIA,gCAAA,EAAe;AAAA,MACrD,QAAA,EAAU,YAAY,GAAA,CAAI,KAAA;AAAA,MAC1B,UAAA,EAAY,cAAc,IAAA,CAAK,IAAA;AAAA,MAC/B;AAAA,KACD,CAAA;AAED,IAAA,MAAM,OAAA,GAAU,IAAA,CAAK,cAAA,CAAe,QAAQ,CAAA;AAE5C,IAAA,OAAO,IAAI,MAAA,CAAO;AAAA,MAChB,SAAA,EAAW;AAAA,QACT,IAAA,EAAM,gEAAgE,OAAO,CAAA,CAAA;AAAA,QAC7E,UAAA,EAAY,EAAA;AAAA,QACZ,YAAA,EAAc,MAAA;AAAA,QACd,SAAA,EAAW,CAAA;AAAA,QACX,kBAAkB,MAAA,EAAQ,UAAA;AAAA,QAC1B,UAAU,MAAA,EAAQ,EAAA;AAAA,QAClB,QAAA,EAAU,IAAA;AAAA,QACV,oBAAA,EAAsB;AAAA;AACxB,KACD,CAAA;AAAA,EACH;AACF","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 the week of 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"]}
@@ -1,4 +1,4 @@
1
- import { Agent, createStep, createWorkflow, PRIMITIVE_TYPES } from '../../chunk-JJW5JU2G.js';
1
+ import { Agent, createStep, createWorkflow, PRIMITIVE_TYPES } from '../../chunk-JKLLXBOY.js';
2
2
  import { EMITTER_SYMBOL } from '../../chunk-NLNKQD2T.js';
3
3
  import { MessageList } from '../../chunk-BUY5X7DT.js';
4
4
  import { RuntimeContext } from '../../chunk-HLRWYUFN.js';
@@ -35,7 +35,7 @@ var NewAgentNetwork = class extends MastraBase {
35
35
  name: name || "NewAgentNetwork"
36
36
  });
37
37
  console.warn(
38
- `\u26A0\uFE0F DEPRECATION WARNING: AgentNetwork vNext will be deprecated on September 30th, 2025 and will be removed in a future version. Please use agent.network() instead.`
38
+ `\u26A0\uFE0F DEPRECATION WARNING: AgentNetwork vNext will be deprecated the week of September 30th, 2025 and will be removed in a future version. Please use agent.network() instead.`
39
39
  );
40
40
  this.id = id;
41
41
  this.name = name;