@mastra/core 0.16.2 → 0.16.3-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +34 -0
- package/dist/agent/agent.d.ts +316 -0
- package/dist/agent/agent.d.ts.map +1 -0
- package/dist/agent/agent.types.d.ts +19 -2
- package/dist/agent/agent.types.d.ts.map +1 -1
- package/dist/agent/index.cjs +11 -11
- package/dist/agent/index.d.ts +4 -313
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/index.js +2 -2
- package/dist/agent/input-processor/index.cjs +6 -6
- package/dist/agent/input-processor/index.js +1 -1
- package/dist/agent/types.d.ts +8 -1
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/ai-tracing/base.d.ts.map +1 -1
- package/dist/ai-tracing/context.d.ts.map +1 -1
- package/dist/ai-tracing/default.d.ts +1 -2
- package/dist/ai-tracing/default.d.ts.map +1 -1
- package/dist/ai-tracing/exporters/cloud.d.ts +32 -0
- package/dist/ai-tracing/exporters/cloud.d.ts.map +1 -0
- package/dist/ai-tracing/exporters/default.d.ts.map +1 -1
- package/dist/ai-tracing/exporters/index.d.ts +2 -0
- package/dist/ai-tracing/exporters/index.d.ts.map +1 -1
- package/dist/ai-tracing/index.cjs +36 -40
- package/dist/ai-tracing/index.js +1 -1
- package/dist/ai-tracing/no-op.d.ts +1 -0
- package/dist/ai-tracing/no-op.d.ts.map +1 -1
- package/dist/ai-tracing/registry.d.ts.map +1 -1
- package/dist/ai-tracing/types.d.ts +39 -14
- package/dist/ai-tracing/types.d.ts.map +1 -1
- package/dist/ai-tracing/utils.d.ts +29 -19
- package/dist/ai-tracing/utils.d.ts.map +1 -1
- package/dist/{chunk-YI3AIJJL.js → chunk-3JG5JEKX.js} +3 -3
- package/dist/{chunk-YI3AIJJL.js.map → chunk-3JG5JEKX.js.map} +1 -1
- package/dist/{chunk-RVNDGKE5.js → chunk-3WWYKE4R.js} +3 -3
- package/dist/{chunk-RVNDGKE5.js.map → chunk-3WWYKE4R.js.map} +1 -1
- package/dist/{chunk-YBKHXKRR.js → chunk-4MVIJIOL.js} +3 -3
- package/dist/{chunk-YBKHXKRR.js.map → chunk-4MVIJIOL.js.map} +1 -1
- package/dist/chunk-4WQYXT2I.cjs +12 -0
- package/dist/chunk-4WQYXT2I.cjs.map +1 -0
- package/dist/{chunk-YYRE76UM.js → chunk-6SPMCTI2.js} +4 -4
- package/dist/{chunk-YYRE76UM.js.map → chunk-6SPMCTI2.js.map} +1 -1
- package/dist/{chunk-P67M4R6G.js → chunk-ASFX33CM.js} +5 -5
- package/dist/{chunk-P67M4R6G.js.map → chunk-ASFX33CM.js.map} +1 -1
- package/dist/{chunk-SJO2HEVU.cjs → chunk-AV5QBG6P.cjs} +185 -125
- package/dist/chunk-AV5QBG6P.cjs.map +1 -0
- package/dist/{chunk-OYHHJUTH.cjs → chunk-EJB4UMEV.cjs} +12 -12
- package/dist/{chunk-OYHHJUTH.cjs.map → chunk-EJB4UMEV.cjs.map} +1 -1
- package/dist/{chunk-JLVFFZT7.cjs → chunk-GOA5GU6X.cjs} +4 -4
- package/dist/{chunk-JLVFFZT7.cjs.map → chunk-GOA5GU6X.cjs.map} +1 -1
- package/dist/{chunk-D3UG2YLU.cjs → chunk-HT57W63C.cjs} +4 -4
- package/dist/{chunk-D3UG2YLU.cjs.map → chunk-HT57W63C.cjs.map} +1 -1
- package/dist/{chunk-ZIDWSQFD.cjs → chunk-HYKEC3OC.cjs} +8 -8
- package/dist/{chunk-ZIDWSQFD.cjs.map → chunk-HYKEC3OC.cjs.map} +1 -1
- package/dist/chunk-KETY3ZMA.cjs +808 -0
- package/dist/chunk-KETY3ZMA.cjs.map +1 -0
- package/dist/{chunk-IMDDMIVR.cjs → chunk-L52VPDJB.cjs} +6 -6
- package/dist/{chunk-IMDDMIVR.cjs.map → chunk-L52VPDJB.cjs.map} +1 -1
- package/dist/chunk-NEBAQHIS.js +737 -0
- package/dist/chunk-NEBAQHIS.js.map +1 -0
- package/dist/chunk-PJKCPRYF.js +3 -0
- package/dist/chunk-PJKCPRYF.js.map +1 -0
- package/dist/{chunk-6RVOPJVP.cjs → chunk-PUTAA3ZN.cjs} +7 -7
- package/dist/{chunk-6RVOPJVP.cjs.map → chunk-PUTAA3ZN.cjs.map} +1 -1
- package/dist/{chunk-DUABZASJ.js → chunk-RAR5G5S3.js} +4 -4
- package/dist/{chunk-DUABZASJ.js.map → chunk-RAR5G5S3.js.map} +1 -1
- package/dist/{chunk-UGCG7DI3.cjs → chunk-VVUCWRGD.cjs} +855 -87
- package/dist/chunk-VVUCWRGD.cjs.map +1 -0
- package/dist/{chunk-2NKNTPFR.js → chunk-W5K2KOZX.js} +834 -85
- package/dist/chunk-W5K2KOZX.js.map +1 -0
- package/dist/{chunk-BQ43NQXK.js → chunk-WAN6BRTN.js} +182 -122
- package/dist/chunk-WAN6BRTN.js.map +1 -0
- package/dist/index.cjs +38 -38
- package/dist/index.js +7 -7
- package/dist/llm/model/base.types.d.ts +6 -4
- package/dist/llm/model/base.types.d.ts.map +1 -1
- package/dist/llm/model/model.d.ts +0 -2
- package/dist/llm/model/model.d.ts.map +1 -1
- package/dist/llm/model/model.loop.d.ts.map +1 -1
- package/dist/loop/index.cjs +2 -2
- package/dist/loop/index.js +1 -1
- package/dist/loop/loop.d.ts.map +1 -1
- package/dist/loop/network/index.d.ts +139 -0
- package/dist/loop/network/index.d.ts.map +1 -0
- package/dist/loop/types.d.ts +2 -0
- package/dist/loop/types.d.ts.map +1 -1
- package/dist/loop/workflow/llm-execution.d.ts +5 -5
- package/dist/loop/workflow/llm-execution.d.ts.map +1 -1
- package/dist/loop/workflow/outer-llm-step.d.ts +2 -2
- package/dist/loop/workflow/schema.d.ts +12 -12
- package/dist/loop/workflow/stream.d.ts.map +1 -1
- package/dist/loop/workflow/tool-call-step.d.ts +10 -10
- package/dist/mastra/index.cjs +2 -2
- package/dist/mastra/index.js +1 -1
- package/dist/memory/index.cjs +4 -4
- package/dist/memory/index.js +1 -1
- package/dist/network/index.cjs +6 -3
- package/dist/network/index.cjs.map +1 -1
- package/dist/network/index.js +5 -2
- package/dist/network/index.js.map +1 -1
- package/dist/network/network.d.ts.map +1 -1
- package/dist/network/vNext/index.cjs +32 -30
- package/dist/network/vNext/index.cjs.map +1 -1
- package/dist/network/vNext/index.d.ts +7 -7
- package/dist/network/vNext/index.d.ts.map +1 -1
- package/dist/network/vNext/index.js +5 -3
- package/dist/network/vNext/index.js.map +1 -1
- package/dist/processors/index.cjs +8 -8
- package/dist/processors/index.js +2 -2
- package/dist/processors/runner.d.ts +2 -2
- package/dist/processors/runner.d.ts.map +1 -1
- package/dist/relevance/index.cjs +4 -4
- package/dist/relevance/index.js +1 -1
- package/dist/scores/index.cjs +8 -8
- package/dist/scores/index.js +1 -1
- package/dist/scores/types.d.ts +2 -2
- package/dist/storage/index.cjs +3 -3
- package/dist/storage/index.js +1 -1
- package/dist/stream/MastraWorkflowStream.d.ts +1 -1
- package/dist/stream/base/output-format-handlers.d.ts.map +1 -1
- package/dist/stream/base/output.d.ts +13 -3
- package/dist/stream/base/output.d.ts.map +1 -1
- package/dist/stream/base/schema.d.ts +3 -2
- package/dist/stream/base/schema.d.ts.map +1 -1
- package/dist/stream/index.cjs +3 -3
- package/dist/stream/index.d.ts +1 -1
- package/dist/stream/index.d.ts.map +1 -1
- package/dist/stream/index.js +1 -1
- package/dist/stream/types.d.ts +139 -1
- package/dist/stream/types.d.ts.map +1 -1
- package/dist/test-utils/llm-mock.cjs +2 -2
- package/dist/test-utils/llm-mock.js +1 -1
- package/dist/utils.cjs +17 -17
- package/dist/utils.js +1 -1
- package/dist/workflows/default.d.ts +3 -2
- package/dist/workflows/default.d.ts.map +1 -1
- package/dist/workflows/evented/index.cjs +10 -10
- package/dist/workflows/evented/index.js +1 -1
- package/dist/workflows/execution-engine.d.ts +2 -2
- package/dist/workflows/execution-engine.d.ts.map +1 -1
- package/dist/workflows/index.cjs +10 -10
- package/dist/workflows/index.js +1 -1
- package/dist/workflows/legacy/index.cjs +22 -22
- package/dist/workflows/legacy/index.js +1 -1
- package/dist/workflows/legacy/machine.d.ts +1 -1
- package/dist/workflows/legacy/workflow.d.ts +1 -1
- package/dist/workflows/types.d.ts +5 -4
- package/dist/workflows/types.d.ts.map +1 -1
- package/dist/workflows/workflow.d.ts +8 -4
- package/dist/workflows/workflow.d.ts.map +1 -1
- package/dist/zod-to-json.cjs +2 -2
- package/dist/zod-to-json.cjs.map +1 -1
- package/dist/zod-to-json.js +1 -1
- package/dist/zod-to-json.js.map +1 -1
- package/package.json +5 -5
- package/dist/chunk-2NKNTPFR.js.map +0 -1
- package/dist/chunk-3MSZBGO3.js +0 -15991
- package/dist/chunk-3MSZBGO3.js.map +0 -1
- package/dist/chunk-BJASJTXK.cjs +0 -16061
- package/dist/chunk-BJASJTXK.cjs.map +0 -1
- package/dist/chunk-BQ43NQXK.js.map +0 -1
- package/dist/chunk-KB4IEMPV.cjs +0 -548
- package/dist/chunk-KB4IEMPV.cjs.map +0 -1
- package/dist/chunk-SJO2HEVU.cjs.map +0 -1
- package/dist/chunk-TDLB5JKT.js +0 -527
- package/dist/chunk-TDLB5JKT.js.map +0 -1
- package/dist/chunk-UGCG7DI3.cjs.map +0 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkKETY3ZMA_cjs = require('../../chunk-KETY3ZMA.cjs');
|
|
4
4
|
var chunkABJOUEVA_cjs = require('../../chunk-ABJOUEVA.cjs');
|
|
5
|
-
var
|
|
5
|
+
var chunkHT57W63C_cjs = require('../../chunk-HT57W63C.cjs');
|
|
6
6
|
var chunkGPWMM745_cjs = require('../../chunk-GPWMM745.cjs');
|
|
7
7
|
var chunkKXCUCBEI_cjs = require('../../chunk-KXCUCBEI.cjs');
|
|
8
8
|
var chunkV5WKCX3G_cjs = require('../../chunk-V5WKCX3G.cjs');
|
|
@@ -10,7 +10,6 @@ var crypto = require('crypto');
|
|
|
10
10
|
var zodToJson = require('@mastra/schema-compat/zod-to-json');
|
|
11
11
|
var zod = require('zod');
|
|
12
12
|
|
|
13
|
-
var RESOURCE_TYPES = zod.z.enum(["agent", "workflow", "none", "tool", "none"]);
|
|
14
13
|
var NewAgentNetwork = class extends chunkKXCUCBEI_cjs.MastraBase {
|
|
15
14
|
id;
|
|
16
15
|
name;
|
|
@@ -37,6 +36,9 @@ var NewAgentNetwork = class extends chunkKXCUCBEI_cjs.MastraBase {
|
|
|
37
36
|
component: chunkV5WKCX3G_cjs.RegisteredLogger.NETWORK,
|
|
38
37
|
name: name || "NewAgentNetwork"
|
|
39
38
|
});
|
|
39
|
+
console.warn(
|
|
40
|
+
`\u26A0\uFE0F DEPRECATION WARNING: AgentNetwork vNext will be deprecated on September 16th, 2025 and will be removed in a future version. Please use agent.network() instead.`
|
|
41
|
+
);
|
|
40
42
|
this.id = id;
|
|
41
43
|
this.name = name;
|
|
42
44
|
this.#instructions = instructions;
|
|
@@ -103,7 +105,7 @@ var NewAgentNetwork = class extends chunkKXCUCBEI_cjs.MastraBase {
|
|
|
103
105
|
format: "v2"
|
|
104
106
|
});
|
|
105
107
|
} else {
|
|
106
|
-
const messageList = new
|
|
108
|
+
const messageList = new chunkHT57W63C_cjs.MessageList({
|
|
107
109
|
threadId: thread?.id,
|
|
108
110
|
resourceId: thread?.resourceId
|
|
109
111
|
});
|
|
@@ -210,7 +212,7 @@ var NewAgentNetwork = class extends chunkKXCUCBEI_cjs.MastraBase {
|
|
|
210
212
|
|
|
211
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.
|
|
212
214
|
`;
|
|
213
|
-
return new
|
|
215
|
+
return new chunkKETY3ZMA_cjs.Agent({
|
|
214
216
|
name: "routing-agent",
|
|
215
217
|
instructions,
|
|
216
218
|
model: this.#model,
|
|
@@ -226,7 +228,7 @@ var NewAgentNetwork = class extends chunkKXCUCBEI_cjs.MastraBase {
|
|
|
226
228
|
resourceId
|
|
227
229
|
}) {
|
|
228
230
|
const networkWorkflow = this.createWorkflow({ runtimeContext });
|
|
229
|
-
const finalStep =
|
|
231
|
+
const finalStep = chunkKETY3ZMA_cjs.createStep({
|
|
230
232
|
id: "final-step",
|
|
231
233
|
inputSchema: networkWorkflow.outputSchema,
|
|
232
234
|
outputSchema: networkWorkflow.outputSchema,
|
|
@@ -240,12 +242,12 @@ var NewAgentNetwork = class extends chunkKXCUCBEI_cjs.MastraBase {
|
|
|
240
242
|
return inputData;
|
|
241
243
|
}
|
|
242
244
|
});
|
|
243
|
-
const mainWorkflow =
|
|
245
|
+
const mainWorkflow = chunkKETY3ZMA_cjs.createWorkflow({
|
|
244
246
|
id: "Agent-Network-Main-Workflow",
|
|
245
247
|
inputSchema: zod.z.object({
|
|
246
248
|
iteration: zod.z.number(),
|
|
247
249
|
task: zod.z.string(),
|
|
248
|
-
resourceType: RESOURCE_TYPES,
|
|
250
|
+
resourceType: chunkKETY3ZMA_cjs.RESOURCE_TYPES,
|
|
249
251
|
threadId: zod.z.string().optional(),
|
|
250
252
|
threadResourceId: zod.z.string().optional()
|
|
251
253
|
}),
|
|
@@ -285,7 +287,7 @@ var NewAgentNetwork = class extends chunkKXCUCBEI_cjs.MastraBase {
|
|
|
285
287
|
resourceId
|
|
286
288
|
}) {
|
|
287
289
|
const networkWorkflow = this.createWorkflow({ runtimeContext });
|
|
288
|
-
const finalStep =
|
|
290
|
+
const finalStep = chunkKETY3ZMA_cjs.createStep({
|
|
289
291
|
id: "final-step",
|
|
290
292
|
inputSchema: networkWorkflow.outputSchema,
|
|
291
293
|
outputSchema: networkWorkflow.outputSchema,
|
|
@@ -299,13 +301,13 @@ var NewAgentNetwork = class extends chunkKXCUCBEI_cjs.MastraBase {
|
|
|
299
301
|
return inputData;
|
|
300
302
|
}
|
|
301
303
|
});
|
|
302
|
-
const mainWorkflow =
|
|
304
|
+
const mainWorkflow = chunkKETY3ZMA_cjs.createWorkflow({
|
|
303
305
|
id: "Agent-Network-Main-Workflow",
|
|
304
306
|
inputSchema: zod.z.object({
|
|
305
307
|
iteration: zod.z.number(),
|
|
306
308
|
task: zod.z.string(),
|
|
307
309
|
resourceId: zod.z.string(),
|
|
308
|
-
resourceType: RESOURCE_TYPES,
|
|
310
|
+
resourceType: chunkKETY3ZMA_cjs.RESOURCE_TYPES,
|
|
309
311
|
result: zod.z.string().optional(),
|
|
310
312
|
threadId: zod.z.string().optional(),
|
|
311
313
|
threadResourceId: zod.z.string().optional(),
|
|
@@ -315,7 +317,7 @@ var NewAgentNetwork = class extends chunkKXCUCBEI_cjs.MastraBase {
|
|
|
315
317
|
outputSchema: zod.z.object({
|
|
316
318
|
task: zod.z.string(),
|
|
317
319
|
resourceId: zod.z.string(),
|
|
318
|
-
resourceType: RESOURCE_TYPES,
|
|
320
|
+
resourceType: chunkKETY3ZMA_cjs.RESOURCE_TYPES,
|
|
319
321
|
prompt: zod.z.string(),
|
|
320
322
|
result: zod.z.string(),
|
|
321
323
|
isComplete: zod.z.boolean().optional(),
|
|
@@ -349,12 +351,12 @@ var NewAgentNetwork = class extends chunkKXCUCBEI_cjs.MastraBase {
|
|
|
349
351
|
createWorkflow({ runtimeContext }) {
|
|
350
352
|
const runId = this.#mastra?.generateId() || crypto.randomUUID();
|
|
351
353
|
const runtimeContextToUse = runtimeContext || new chunkGPWMM745_cjs.RuntimeContext();
|
|
352
|
-
const routingStep =
|
|
354
|
+
const routingStep = chunkKETY3ZMA_cjs.createStep({
|
|
353
355
|
id: "routing-step",
|
|
354
356
|
inputSchema: zod.z.object({
|
|
355
357
|
task: zod.z.string(),
|
|
356
358
|
resourceId: zod.z.string(),
|
|
357
|
-
resourceType: RESOURCE_TYPES,
|
|
359
|
+
resourceType: chunkKETY3ZMA_cjs.RESOURCE_TYPES,
|
|
358
360
|
result: zod.z.string().optional(),
|
|
359
361
|
iteration: zod.z.number(),
|
|
360
362
|
threadId: zod.z.string().optional(),
|
|
@@ -365,7 +367,7 @@ var NewAgentNetwork = class extends chunkKXCUCBEI_cjs.MastraBase {
|
|
|
365
367
|
outputSchema: zod.z.object({
|
|
366
368
|
task: zod.z.string(),
|
|
367
369
|
resourceId: zod.z.string(),
|
|
368
|
-
resourceType: RESOURCE_TYPES,
|
|
370
|
+
resourceType: chunkKETY3ZMA_cjs.RESOURCE_TYPES,
|
|
369
371
|
prompt: zod.z.string(),
|
|
370
372
|
result: zod.z.string(),
|
|
371
373
|
isComplete: zod.z.boolean().optional(),
|
|
@@ -454,7 +456,7 @@ ${completionResult.object.finalResult}` : ""}
|
|
|
454
456
|
const options = {
|
|
455
457
|
output: zod.z.object({
|
|
456
458
|
resourceId: zod.z.string(),
|
|
457
|
-
resourceType: RESOURCE_TYPES,
|
|
459
|
+
resourceType: chunkKETY3ZMA_cjs.RESOURCE_TYPES,
|
|
458
460
|
prompt: zod.z.string(),
|
|
459
461
|
selectionReason: zod.z.string()
|
|
460
462
|
}),
|
|
@@ -479,12 +481,12 @@ ${completionResult.object.finalResult}` : ""}
|
|
|
479
481
|
};
|
|
480
482
|
}
|
|
481
483
|
});
|
|
482
|
-
const agentStep =
|
|
484
|
+
const agentStep = chunkKETY3ZMA_cjs.createStep({
|
|
483
485
|
id: "agent-step",
|
|
484
486
|
inputSchema: zod.z.object({
|
|
485
487
|
task: zod.z.string(),
|
|
486
488
|
resourceId: zod.z.string(),
|
|
487
|
-
resourceType: RESOURCE_TYPES,
|
|
489
|
+
resourceType: chunkKETY3ZMA_cjs.RESOURCE_TYPES,
|
|
488
490
|
prompt: zod.z.string(),
|
|
489
491
|
result: zod.z.string(),
|
|
490
492
|
isComplete: zod.z.boolean().optional(),
|
|
@@ -494,7 +496,7 @@ ${completionResult.object.finalResult}` : ""}
|
|
|
494
496
|
outputSchema: zod.z.object({
|
|
495
497
|
task: zod.z.string(),
|
|
496
498
|
resourceId: zod.z.string(),
|
|
497
|
-
resourceType: RESOURCE_TYPES,
|
|
499
|
+
resourceType: chunkKETY3ZMA_cjs.RESOURCE_TYPES,
|
|
498
500
|
result: zod.z.string(),
|
|
499
501
|
isComplete: zod.z.boolean().optional(),
|
|
500
502
|
iteration: zod.z.number()
|
|
@@ -615,12 +617,12 @@ ${completionResult.object.finalResult}` : ""}
|
|
|
615
617
|
};
|
|
616
618
|
}
|
|
617
619
|
});
|
|
618
|
-
const workflowStep =
|
|
620
|
+
const workflowStep = chunkKETY3ZMA_cjs.createStep({
|
|
619
621
|
id: "workflow-step",
|
|
620
622
|
inputSchema: zod.z.object({
|
|
621
623
|
task: zod.z.string(),
|
|
622
624
|
resourceId: zod.z.string(),
|
|
623
|
-
resourceType: RESOURCE_TYPES,
|
|
625
|
+
resourceType: chunkKETY3ZMA_cjs.RESOURCE_TYPES,
|
|
624
626
|
prompt: zod.z.string(),
|
|
625
627
|
result: zod.z.string(),
|
|
626
628
|
isComplete: zod.z.boolean().optional(),
|
|
@@ -630,7 +632,7 @@ ${completionResult.object.finalResult}` : ""}
|
|
|
630
632
|
outputSchema: zod.z.object({
|
|
631
633
|
task: zod.z.string(),
|
|
632
634
|
resourceId: zod.z.string(),
|
|
633
|
-
resourceType: RESOURCE_TYPES,
|
|
635
|
+
resourceType: chunkKETY3ZMA_cjs.RESOURCE_TYPES,
|
|
634
636
|
result: zod.z.string(),
|
|
635
637
|
isComplete: zod.z.boolean().optional(),
|
|
636
638
|
iteration: zod.z.number()
|
|
@@ -737,12 +739,12 @@ ${completionResult.object.finalResult}` : ""}
|
|
|
737
739
|
};
|
|
738
740
|
}
|
|
739
741
|
});
|
|
740
|
-
const toolStep =
|
|
742
|
+
const toolStep = chunkKETY3ZMA_cjs.createStep({
|
|
741
743
|
id: "toolStep",
|
|
742
744
|
inputSchema: zod.z.object({
|
|
743
745
|
task: zod.z.string(),
|
|
744
746
|
resourceId: zod.z.string(),
|
|
745
|
-
resourceType: RESOURCE_TYPES,
|
|
747
|
+
resourceType: chunkKETY3ZMA_cjs.RESOURCE_TYPES,
|
|
746
748
|
prompt: zod.z.string(),
|
|
747
749
|
result: zod.z.string(),
|
|
748
750
|
isComplete: zod.z.boolean().optional(),
|
|
@@ -752,7 +754,7 @@ ${completionResult.object.finalResult}` : ""}
|
|
|
752
754
|
outputSchema: zod.z.object({
|
|
753
755
|
task: zod.z.string(),
|
|
754
756
|
resourceId: zod.z.string(),
|
|
755
|
-
resourceType: RESOURCE_TYPES,
|
|
757
|
+
resourceType: chunkKETY3ZMA_cjs.RESOURCE_TYPES,
|
|
756
758
|
result: zod.z.string(),
|
|
757
759
|
isComplete: zod.z.boolean().optional(),
|
|
758
760
|
iteration: zod.z.number()
|
|
@@ -809,12 +811,12 @@ ${completionResult.object.finalResult}` : ""}
|
|
|
809
811
|
};
|
|
810
812
|
}
|
|
811
813
|
});
|
|
812
|
-
const finishStep =
|
|
814
|
+
const finishStep = chunkKETY3ZMA_cjs.createStep({
|
|
813
815
|
id: "finish-step",
|
|
814
816
|
inputSchema: zod.z.object({
|
|
815
817
|
task: zod.z.string(),
|
|
816
818
|
resourceId: zod.z.string(),
|
|
817
|
-
resourceType: RESOURCE_TYPES,
|
|
819
|
+
resourceType: chunkKETY3ZMA_cjs.RESOURCE_TYPES,
|
|
818
820
|
prompt: zod.z.string(),
|
|
819
821
|
result: zod.z.string(),
|
|
820
822
|
isComplete: zod.z.boolean().optional(),
|
|
@@ -836,12 +838,12 @@ ${completionResult.object.finalResult}` : ""}
|
|
|
836
838
|
};
|
|
837
839
|
}
|
|
838
840
|
});
|
|
839
|
-
const networkWorkflow =
|
|
841
|
+
const networkWorkflow = chunkKETY3ZMA_cjs.createWorkflow({
|
|
840
842
|
id: "Agent-Network-Outer-Workflow",
|
|
841
843
|
inputSchema: zod.z.object({
|
|
842
844
|
task: zod.z.string(),
|
|
843
845
|
resourceId: zod.z.string(),
|
|
844
|
-
resourceType: RESOURCE_TYPES,
|
|
846
|
+
resourceType: chunkKETY3ZMA_cjs.RESOURCE_TYPES,
|
|
845
847
|
result: zod.z.string().optional(),
|
|
846
848
|
iteration: zod.z.number(),
|
|
847
849
|
threadId: zod.z.string().optional(),
|
|
@@ -852,7 +854,7 @@ ${completionResult.object.finalResult}` : ""}
|
|
|
852
854
|
outputSchema: zod.z.object({
|
|
853
855
|
task: zod.z.string(),
|
|
854
856
|
resourceId: zod.z.string(),
|
|
855
|
-
resourceType: RESOURCE_TYPES,
|
|
857
|
+
resourceType: chunkKETY3ZMA_cjs.RESOURCE_TYPES,
|
|
856
858
|
prompt: zod.z.string(),
|
|
857
859
|
result: zod.z.string(),
|
|
858
860
|
isComplete: zod.z.boolean().optional(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/network/vNext/index.ts"],"names":["z","MastraBase","RegisteredLogger","randomUUID","MessageList","RuntimeContext","zodToJsonSchema","Agent","createStep","createWorkflow","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 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\nconst RESOURCE_TYPES = z.enum(['agent', 'workflow', 'none', 'tool', 'none']);\n\nexport class NewAgentNetwork extends MastraBase {\n id: string;\n name: string;\n #instructions: DynamicArgument<string>;\n #model: DynamicArgument<MastraLanguageModel>;\n #agents: DynamicArgument<Record<string, Agent>>;\n #defaultAgent: DynamicArgument<Agent> | undefined;\n #workflows: DynamicArgument<Record<string, Workflow>> | undefined;\n #tools: DynamicArgument<Record<string, Tool>> | undefined;\n #memory?: DynamicArgument<MastraMemory>;\n #mastra?: Mastra;\n\n constructor({\n id,\n name,\n instructions,\n model,\n agents,\n workflows,\n memory,\n tools,\n defaultAgent,\n }: NewAgentNetworkConfig) {\n super({\n component: RegisteredLogger.NETWORK,\n name: name || 'NewAgentNetwork',\n });\n\n this.id = id;\n this.name = name;\n this.#instructions = instructions;\n this.#model = model;\n this.#agents = agents;\n this.#workflows = workflows;\n this.#memory = memory;\n this.#tools = tools;\n this.#defaultAgent = defaultAgent;\n }\n\n __registerMastra(mastra: Mastra) {\n this.#mastra = mastra;\n }\n\n private getLastMessage(messages: MessageListInput) {\n let message = '';\n if (typeof messages === 'string') {\n message = messages;\n } else {\n const lastMessage = Array.isArray(messages) ? messages[messages.length - 1] : messages;\n if (typeof lastMessage === 'string') {\n message = lastMessage;\n } else if (lastMessage && `content` in lastMessage && lastMessage?.content) {\n const lastMessageContent = lastMessage.content;\n if (typeof lastMessageContent === 'string') {\n message = lastMessageContent;\n } else if (Array.isArray(lastMessageContent)) {\n const lastPart = lastMessageContent[lastMessageContent.length - 1];\n if (lastPart?.type === 'text') {\n message = lastPart.text;\n }\n }\n }\n }\n\n return message;\n }\n\n private async beforeRun({\n runtimeContext,\n threadId,\n resourceId,\n messages,\n }: {\n runtimeContext: RuntimeContext;\n threadId: string;\n resourceId: string;\n messages: MessageListInput;\n }) {\n const memory = await this.getMemory({ runtimeContext });\n let thread = await memory?.getThreadById({ threadId });\n if (!thread) {\n thread = await memory?.createThread({\n threadId,\n title: '',\n resourceId,\n });\n }\n if (typeof messages === 'string') {\n await memory?.saveMessages({\n messages: [\n {\n id: this.#mastra?.generateId() || randomUUID(),\n type: 'text',\n role: 'user',\n content: { parts: [{ type: 'text', text: messages }], format: 2 },\n createdAt: new Date(),\n threadId: thread?.id,\n resourceId: thread?.resourceId,\n },\n ] as MastraMessageV2[],\n format: 'v2',\n });\n } else {\n const messageList = new MessageList({\n threadId: thread?.id,\n resourceId: thread?.resourceId,\n });\n messageList.add(messages, 'user');\n const messagesToSave = messageList.get.all.v2();\n\n await memory?.saveMessages({\n messages: messagesToSave,\n format: 'v2',\n });\n }\n\n return thread;\n }\n\n async getAgents({ runtimeContext }: { runtimeContext?: RuntimeContext }) {\n let agentsToUse: Record<string, Agent>;\n\n if (typeof this.#agents === 'function') {\n agentsToUse = await this.#agents({ runtimeContext: runtimeContext || new RuntimeContext() });\n } else {\n agentsToUse = this.#agents;\n }\n\n return agentsToUse;\n }\n\n async getWorkflows({ runtimeContext }: { runtimeContext?: RuntimeContext }) {\n let workflowsToUse: Record<string, Workflow>;\n\n if (typeof this.#workflows === 'function') {\n workflowsToUse = await this.#workflows({ runtimeContext: runtimeContext || new RuntimeContext() });\n } else {\n workflowsToUse = this.#workflows || {};\n }\n\n return workflowsToUse;\n }\n\n async getTools({ runtimeContext }: { runtimeContext?: RuntimeContext }) {\n let toolsToUse: Record<string, Tool>;\n\n if (typeof this.#tools === 'function') {\n toolsToUse = await this.#tools({ runtimeContext: runtimeContext || new RuntimeContext() });\n } else {\n toolsToUse = this.#tools || {};\n }\n\n return toolsToUse;\n }\n\n async getMemory({ runtimeContext }: { runtimeContext?: RuntimeContext }) {\n let memoryToUse: MastraMemory;\n\n if (!this.#memory) {\n return;\n }\n\n if (typeof this.#memory === 'function') {\n memoryToUse = await this.#memory({ runtimeContext: runtimeContext || new RuntimeContext() });\n } else {\n memoryToUse = this.#memory;\n }\n\n return memoryToUse;\n }\n\n async getInstructions({ runtimeContext }: { runtimeContext?: RuntimeContext }) {\n let instructionsToUse = this.#instructions;\n\n if (typeof instructionsToUse === 'function') {\n instructionsToUse = await instructionsToUse({ runtimeContext: runtimeContext || new RuntimeContext() });\n }\n\n return instructionsToUse;\n }\n\n async getRoutingAgent({ runtimeContext }: { runtimeContext?: RuntimeContext }) {\n const instructionsToUse = await this.getInstructions({ runtimeContext: runtimeContext || new RuntimeContext() });\n const memoryToUse = await this.getMemory({ runtimeContext: runtimeContext || new RuntimeContext() });\n const agentsToUse = await this.getAgents({ runtimeContext: runtimeContext || new RuntimeContext() });\n const workflowsToUse = await this.getWorkflows({ runtimeContext: runtimeContext || new RuntimeContext() });\n const toolsToUse = await this.getTools({ runtimeContext: runtimeContext || new RuntimeContext() });\n\n const agentList = Object.entries(agentsToUse)\n .map(([name, agent]) => {\n // Use agent name instead of description since description might not exist\n return ` - **${name}**: ${agent.getDescription()}`;\n })\n .join('\\n');\n\n const workflowList = Object.entries(workflowsToUse)\n .map(([name, workflow]) => {\n return ` - **${name}**: ${workflow.description}, input schema: ${JSON.stringify(\n zodToJsonSchema(workflow.inputSchema),\n )}`;\n })\n .join('\\n');\n\n const toolList = Object.entries(toolsToUse)\n .map(([name, tool]) => {\n return ` - **${name}**: ${tool.description}, input schema: ${JSON.stringify(\n zodToJsonSchema(tool.inputSchema || z.object({})),\n )}`;\n })\n .join('\\n');\n\n const instructions = `\n You are a router in a network of specialized AI agents. \n Your job is to decide which agent should handle each step of a task.\n\n If asking for completion of a task, make sure to follow system instructions closely.\n \n ## System Instructions\n ${instructionsToUse}\n\n You can only pick agents and workflows that are available in the lists below. Never call any agents or workflows that are not available in the lists below.\n\n ## Available Agents in Network\n ${agentList}\n\n ## Available Workflows in Network (make sure to use inputs corresponding to the input schema when calling a workflow)\n ${workflowList}\n\n ## Available Tools in Network (make sure to use inputs corresponding to the input schema when calling a tool)\n ${toolList}\n\n ${\n this.#defaultAgent\n ? `If none of the agents or workflows are appropriate, call the default agent: ${this.#defaultAgent.name}.` +\n `This should not be done lightly. You should only do this if you have exhausted all other options.`\n : ''\n }\n\n If you have multiple entries that need to be called with a workflow or agent, call them separately with each input.\n When calling a workflow, the prompt should be a JSON value that corresponds to the input schema of the workflow. The JSON value is stringified.\n When calling a tool, the prompt should be a JSON value that corresponds to the input schema of the tool. The JSON value is stringified.\n When calling an agent, the prompt should be a text value, like you would call an LLM in a chat interface.\n\n Keep in mind that the user only sees the final result of the task. When reviewing completion, you should know that the user will not see the intermediate results.\n `;\n\n return new Agent({\n name: 'routing-agent',\n instructions,\n model: this.#model,\n memory: memoryToUse,\n // @ts-ignore\n _agentNetworkAppend: true,\n });\n }\n\n async loop(\n messages: MessageListInput,\n {\n runtimeContext,\n maxIterations,\n threadId,\n resourceId,\n }: {\n runtimeContext?: RuntimeContext;\n maxIterations?: number;\n threadId?: string;\n resourceId?: string;\n },\n ) {\n const networkWorkflow = this.createWorkflow({ runtimeContext });\n\n const finalStep = createStep({\n id: 'final-step',\n inputSchema: networkWorkflow.outputSchema,\n outputSchema: networkWorkflow.outputSchema,\n execute: async ({ inputData }) => {\n if (maxIterations && inputData.iteration >= maxIterations) {\n return {\n ...inputData,\n completionReason: `Max iterations reached: ${maxIterations}`,\n };\n }\n\n return inputData;\n },\n });\n\n const mainWorkflow = createWorkflow({\n id: 'Agent-Network-Main-Workflow',\n inputSchema: z.object({\n iteration: z.number(),\n task: z.string(),\n resourceType: RESOURCE_TYPES,\n threadId: z.string().optional(),\n threadResourceId: z.string().optional(),\n }),\n outputSchema: networkWorkflow.outputSchema,\n })\n .dountil(networkWorkflow, async ({ inputData }) => {\n return inputData.isComplete || (maxIterations && inputData.iteration >= maxIterations);\n })\n .then(finalStep)\n .commit();\n\n const run = mainWorkflow.createRun();\n\n const thread = await this.beforeRun({\n runtimeContext: runtimeContext || new RuntimeContext(),\n threadId: threadId || run.runId,\n resourceId: resourceId || this.name,\n messages,\n });\n\n const message = this.getLastMessage(messages);\n\n const result = await run.start({\n inputData: {\n task: message,\n resourceType: 'none',\n iteration: 0,\n threadResourceId: thread?.resourceId,\n threadId: thread?.id,\n },\n });\n\n if (result.status === 'failed') {\n throw result.error;\n }\n\n if (result.status === 'suspended') {\n throw new Error('Workflow suspended');\n }\n\n return result;\n }\n\n async loopStream(\n messages: MessageListInput,\n {\n runtimeContext,\n maxIterations,\n threadId,\n resourceId,\n }: {\n runtimeContext?: RuntimeContext;\n maxIterations?: number;\n threadId?: string;\n resourceId?: string;\n },\n ) {\n const networkWorkflow = this.createWorkflow({ runtimeContext });\n\n const finalStep = createStep({\n id: 'final-step',\n inputSchema: networkWorkflow.outputSchema,\n outputSchema: networkWorkflow.outputSchema,\n execute: async ({ inputData }) => {\n if (maxIterations && inputData.iteration >= maxIterations) {\n return {\n ...inputData,\n completionReason: `Max iterations reached: ${maxIterations}`,\n };\n }\n\n return inputData;\n },\n });\n\n const mainWorkflow = createWorkflow({\n id: 'Agent-Network-Main-Workflow',\n inputSchema: z.object({\n iteration: z.number(),\n task: z.string(),\n resourceId: z.string(),\n resourceType: RESOURCE_TYPES,\n result: z.string().optional(),\n threadId: z.string().optional(),\n threadResourceId: z.string().optional(),\n isOneOff: z.boolean(),\n verboseIntrospection: z.boolean(),\n }),\n outputSchema: z.object({\n task: z.string(),\n resourceId: z.string(),\n resourceType: RESOURCE_TYPES,\n prompt: z.string(),\n result: z.string(),\n isComplete: z.boolean().optional(),\n completionReason: z.string().optional(),\n iteration: z.number(),\n }),\n })\n .dountil(networkWorkflow, async ({ inputData }) => {\n return inputData.isComplete || (maxIterations && inputData.iteration >= maxIterations);\n })\n .then(finalStep)\n .commit();\n\n const run = mainWorkflow.createRun();\n\n const thread = await this.beforeRun({\n runtimeContext: runtimeContext || new RuntimeContext(),\n threadId: threadId || run.runId,\n resourceId: resourceId || this.name,\n messages,\n });\n\n const message = this.getLastMessage(messages);\n\n return run.stream({\n inputData: {\n task: message,\n resourceId: '',\n resourceType: 'none',\n iteration: 0,\n threadResourceId: thread?.resourceId,\n threadId: thread?.id,\n isOneOff: false,\n verboseIntrospection: true,\n },\n });\n }\n\n createWorkflow({ runtimeContext }: { runtimeContext?: RuntimeContext }) {\n const runId = this.#mastra?.generateId() || randomUUID();\n\n const runtimeContextToUse = runtimeContext || new RuntimeContext();\n\n const routingStep = createStep({\n id: 'routing-step',\n inputSchema: z.object({\n task: z.string(),\n resourceId: z.string(),\n resourceType: RESOURCE_TYPES,\n result: z.string().optional(),\n iteration: z.number(),\n threadId: z.string().optional(),\n threadResourceId: z.string().optional(),\n isOneOff: z.boolean(),\n verboseIntrospection: z.boolean(),\n }),\n outputSchema: z.object({\n task: z.string(),\n resourceId: z.string(),\n resourceType: RESOURCE_TYPES,\n prompt: z.string(),\n result: z.string(),\n isComplete: z.boolean().optional(),\n selectionReason: z.string(),\n iteration: z.number(),\n }),\n execute: async ({ inputData, getInitData }) => {\n const initData = await getInitData();\n\n const routingAgent = await this.getRoutingAgent({ runtimeContext: runtimeContextToUse });\n\n const model = await routingAgent.getModel();\n\n const completionSchema = z.object({\n isComplete: z.boolean(),\n finalResult: z.string(),\n completionReason: z.string(),\n });\n let completionResult;\n if (inputData.resourceType !== 'none' && inputData?.result) {\n // Check if the task is complete\n const completionPrompt = `\n The ${inputData.resourceType} ${inputData.resourceId} has contributed to the task.\n This is the result from the agent: ${inputData.result}\n\n You need to evaluate that our task is complete. Pay very close attention to the SYSTEM INSTRUCTIONS for when the task is considered complete. Only return true if the task is complete according to the system instructions. Pay close attention to the finalResult and completionReason.\n Original task: ${inputData.task}\n\n {\n \"isComplete\": boolean,\n \"completionReason\": string,\n \"finalResult\": string\n }\n `;\n\n if (model.specificationVersion === 'v2') {\n completionResult = await routingAgent.generateVNext([{ role: 'assistant', content: completionPrompt }], {\n output: completionSchema,\n threadId: initData?.threadId ?? runId,\n resourceId: initData?.threadResourceId ?? this.name,\n runtimeContext: runtimeContextToUse,\n });\n } else {\n completionResult = await routingAgent.generate([{ role: 'assistant', content: completionPrompt }], {\n output: completionSchema,\n threadId: initData?.threadId ?? runId,\n resourceId: initData?.threadResourceId ?? this.name,\n runtimeContext: runtimeContextToUse,\n });\n }\n\n if (completionResult.object.isComplete) {\n return {\n task: inputData.task,\n resourceId: '',\n resourceType: 'none' as z.infer<typeof RESOURCE_TYPES>,\n prompt: '',\n result: completionResult.object.finalResult,\n isComplete: true,\n selectionReason: completionResult.object.completionReason,\n iteration: inputData.iteration + 1,\n };\n }\n }\n\n let result;\n const prompt: MessageListInput = [\n {\n role: 'assistant',\n content: `\n ${inputData.isOneOff ? 'You are executing just one primitive based on the user task. Make sure to pick the primitive that is the best suited to accomplish the whole task. Primitives that execute only part of the task should be avoided.' : 'You will be calling just *one* primitive at a time to accomplish the user task, every call to you is one decision in the process of accomplishing the user task. Make sure to pick primitives that are the best suited to accomplish the whole task. Completeness is the highest priority.'}\n\n The user has given you the following task: \n ${inputData.task}\n ${completionResult ? `\\n\\n${completionResult.object.finalResult}` : ''}\n\n Please select the most appropriate primitive to handle this task and the prompt to be sent to the primitive.\n If you are calling the same agent again, make sure to adjust the prompt to be more specific.\n\n {\n \"resourceId\": string,\n \"resourceType\": \"agent\" | \"workflow\" | \"tool\",\n \"prompt\": string,\n \"selectionReason\": string\n }\n\n The 'selectionReason' property should explain why you picked the primitive${inputData.verboseIntrospection ? ', as well as why the other primitives were not picked.' : '.'}\n `,\n },\n ];\n\n const options = {\n output: z.object({\n resourceId: z.string(),\n resourceType: RESOURCE_TYPES,\n prompt: z.string(),\n selectionReason: z.string(),\n }),\n threadId: initData?.threadId ?? runId,\n resourceId: initData?.threadResourceId ?? this.name,\n runtimeContext: runtimeContextToUse,\n };\n\n if (model.specificationVersion === 'v2') {\n result = await routingAgent.generateVNext(prompt, options);\n } else {\n result = await routingAgent.generate(prompt, options);\n }\n\n return {\n task: inputData.task,\n result: '',\n resourceId: result.object.resourceId,\n resourceType: result.object.resourceType,\n prompt: result.object.prompt,\n isComplete: result.object.resourceId === 'none' && result.object.resourceType === 'none' ? true : false,\n selectionReason: result.object.selectionReason,\n iteration: inputData.iteration + 1,\n };\n },\n });\n\n const agentStep = createStep({\n id: 'agent-step',\n inputSchema: z.object({\n task: z.string(),\n resourceId: z.string(),\n resourceType: RESOURCE_TYPES,\n prompt: z.string(),\n result: z.string(),\n isComplete: z.boolean().optional(),\n selectionReason: z.string(),\n iteration: z.number(),\n }),\n outputSchema: z.object({\n task: z.string(),\n resourceId: z.string(),\n resourceType: RESOURCE_TYPES,\n result: z.string(),\n isComplete: z.boolean().optional(),\n iteration: z.number(),\n }),\n execute: async ({ inputData, [EMITTER_SYMBOL]: emitter, getInitData }) => {\n const agentsMap = await this.getAgents({ runtimeContext: runtimeContextToUse });\n const agentId = inputData.resourceId;\n\n const agent = agentsMap[inputData.resourceId];\n\n if (!agent) {\n throw new Error(`Agent ${agentId} not found`);\n }\n\n let streamPromise = {} as {\n promise: Promise<string>;\n resolve: (value: string) => void;\n reject: (reason?: any) => void;\n };\n\n streamPromise.promise = new Promise((resolve, reject) => {\n streamPromise.resolve = resolve;\n streamPromise.reject = reject;\n });\n const toolData = {\n name: agent.name,\n args: inputData,\n };\n await emitter.emit('watch-v2', {\n type: 'tool-call-streaming-start',\n ...toolData,\n });\n\n const model = await agent.getModel();\n\n let result;\n\n if (model.specificationVersion === 'v2') {\n result = await agent.streamVNext(inputData.prompt, {\n // resourceId: inputData.resourceId,\n // threadId: inputData.threadId,\n runtimeContext: runtimeContextToUse,\n onFinish: result => {\n streamPromise.resolve(result.text);\n },\n });\n\n for await (const chunk of result.fullStream) {\n switch (chunk.type) {\n case 'text-delta':\n await emitter.emit('watch-v2', {\n type: 'tool-call-delta',\n ...toolData,\n argsTextDelta: chunk.payload.text,\n });\n break;\n\n case 'step-start':\n case 'step-finish':\n case 'finish':\n case 'tool-call':\n case 'tool-result':\n case 'tool-call-input-streaming-start':\n case 'tool-call-delta':\n break;\n case 'source':\n case 'file':\n default:\n await emitter.emit('watch-v2', chunk);\n break;\n }\n }\n } else {\n result = await agent.stream(inputData.prompt, {\n // resourceId: inputData.resourceId,\n // threadId: inputData.threadId,\n runtimeContext: runtimeContextToUse,\n onFinish: result => {\n streamPromise.resolve(result.text);\n },\n });\n\n for await (const chunk of result.fullStream) {\n switch (chunk.type) {\n case 'text-delta':\n await emitter.emit('watch-v2', {\n type: 'tool-call-delta',\n ...toolData,\n argsTextDelta: chunk.textDelta,\n });\n break;\n\n case 'step-start':\n case 'step-finish':\n case 'finish':\n case 'tool-call':\n case 'tool-result':\n case 'tool-call-streaming-start':\n case 'tool-call-delta':\n break;\n case 'source':\n case 'file':\n default:\n await emitter.emit('watch-v2', chunk);\n break;\n }\n }\n }\n\n const finalResult = await streamPromise.promise;\n\n const memory = await this.getMemory({ runtimeContext: runtimeContext || new RuntimeContext() });\n const initData = await getInitData();\n await memory?.saveMessages({\n messages: [\n {\n id: this.#mastra?.generateId() || randomUUID(),\n type: 'text',\n role: 'assistant',\n content: { parts: [{ type: 'text', text: finalResult }], format: 2 },\n createdAt: new Date(),\n threadId: initData.threadId || runId,\n resourceId: initData.threadResourceId || this.name,\n },\n ] as MastraMessageV2[],\n format: 'v2',\n });\n\n return {\n task: inputData.task,\n resourceId: inputData.resourceId,\n resourceType: inputData.resourceType,\n result: finalResult,\n isComplete: false,\n iteration: inputData.iteration,\n };\n },\n });\n\n const workflowStep = createStep({\n id: 'workflow-step',\n inputSchema: z.object({\n task: z.string(),\n resourceId: z.string(),\n resourceType: RESOURCE_TYPES,\n prompt: z.string(),\n result: z.string(),\n isComplete: z.boolean().optional(),\n selectionReason: z.string(),\n iteration: z.number(),\n }),\n outputSchema: z.object({\n task: z.string(),\n resourceId: z.string(),\n resourceType: RESOURCE_TYPES,\n result: z.string(),\n isComplete: z.boolean().optional(),\n iteration: z.number(),\n }),\n execute: async ({ inputData, [EMITTER_SYMBOL]: emitter, getInitData }) => {\n const workflowsMap = await this.getWorkflows({ runtimeContext: runtimeContextToUse });\n const wf = workflowsMap[inputData.resourceId];\n\n if (!wf) {\n throw new Error(`Workflow ${inputData.resourceId} not found`);\n }\n\n let input;\n try {\n input = JSON.parse(inputData.prompt);\n } catch (e: unknown) {\n console.error(e);\n throw new Error(`Invalid task input: ${inputData.task}`);\n }\n\n let streamPromise = {} as {\n promise: Promise<any>;\n resolve: (value: any) => void;\n reject: (reason?: any) => void;\n };\n\n streamPromise.promise = new Promise((resolve, reject) => {\n streamPromise.resolve = resolve;\n streamPromise.reject = reject;\n });\n const toolData = {\n name: wf.name,\n args: inputData,\n };\n await emitter.emit('watch-v2', {\n type: 'tool-call-streaming-start',\n ...toolData,\n });\n const run = wf.createRun();\n const { stream, getWorkflowState } = run.stream({\n inputData: input,\n runtimeContext: runtimeContextToUse,\n });\n\n let result: any;\n let stepResults: Record<string, any> = {};\n for await (const chunk of stream) {\n const c: any = chunk;\n // const c = chunk;\n switch (c.type) {\n case 'text-delta':\n await emitter.emit('watch-v2', {\n type: 'tool-call-delta',\n ...toolData,\n argsTextDelta: c.textDelta,\n });\n break;\n\n case 'step-result':\n if (c?.payload?.output) {\n result = c?.payload?.output;\n stepResults[c?.payload?.id] = c?.payload?.output;\n }\n await emitter.emit('watch-v2', c);\n break;\n case 'finish':\n streamPromise.resolve(result);\n break;\n\n case 'start':\n case 'step-start':\n case 'step-finish':\n case 'tool-call':\n case 'tool-result':\n case 'tool-call-streaming-start':\n case 'tool-call-delta':\n case 'source':\n case 'file':\n default:\n await emitter.emit('watch-v2', c);\n break;\n }\n }\n\n let runSuccess = true;\n const runResult = await streamPromise.promise;\n\n const workflowState = await getWorkflowState();\n if (workflowState.status === 'failed') {\n runSuccess = false;\n }\n\n const finalResult = JSON.stringify({\n runId: run.runId,\n runResult,\n runSuccess,\n });\n\n const memory = await this.getMemory({ runtimeContext: runtimeContext || new RuntimeContext() });\n const initData = await getInitData();\n await memory?.saveMessages({\n messages: [\n {\n id: this.#mastra?.generateId() || randomUUID(),\n type: 'text',\n role: 'assistant',\n content: { parts: [{ type: 'text', text: finalResult }], format: 2 },\n createdAt: new Date(),\n threadId: initData.threadId || runId,\n resourceId: initData.threadResourceId || this.name,\n },\n ] as MastraMessageV2[],\n format: 'v2',\n });\n\n return {\n result: finalResult || '',\n task: inputData.task,\n resourceId: inputData.resourceId,\n resourceType: inputData.resourceType,\n isComplete: false,\n iteration: inputData.iteration,\n };\n },\n });\n\n const toolStep = createStep({\n id: 'toolStep',\n inputSchema: z.object({\n task: z.string(),\n resourceId: z.string(),\n resourceType: RESOURCE_TYPES,\n prompt: z.string(),\n result: z.string(),\n isComplete: z.boolean().optional(),\n selectionReason: z.string(),\n iteration: z.number(),\n }),\n outputSchema: z.object({\n task: z.string(),\n resourceId: z.string(),\n resourceType: RESOURCE_TYPES,\n result: z.string(),\n isComplete: z.boolean().optional(),\n iteration: z.number(),\n }),\n execute: async ({ inputData, getInitData }) => {\n const toolsMap = await this.getTools({ runtimeContext: runtimeContextToUse });\n const tool = toolsMap[inputData.resourceId];\n\n if (!tool) {\n throw new Error(`Tool ${inputData.resourceId} not found`);\n }\n\n if (!tool.execute) {\n throw new Error(`Tool ${inputData.resourceId} does not have an execute function`);\n }\n\n let inputDataToUse: any;\n try {\n inputDataToUse = JSON.parse(inputData.prompt);\n } catch (e: unknown) {\n console.error(e);\n throw new Error(`Invalid task input: ${inputData.task}`);\n }\n\n const finalResult: any = await tool.execute({\n runtimeContext: runtimeContextToUse,\n mastra: this.#mastra,\n resourceId: inputData.resourceId,\n threadId: runId,\n runId,\n context: inputDataToUse,\n // TODO: Pass proper tracing context when network supports tracing\n tracingContext: { currentSpan: undefined },\n });\n\n const memory = await this.getMemory({ runtimeContext: runtimeContext || new RuntimeContext() });\n const initData = await getInitData();\n await memory?.saveMessages({\n messages: [\n {\n id: this.#mastra?.generateId() || randomUUID(),\n type: 'text',\n role: 'assistant',\n content: { parts: [{ type: 'text', text: JSON.stringify(finalResult) }], format: 2 },\n createdAt: new Date(),\n threadId: initData.threadId || runId,\n resourceId: initData.threadResourceId || this.name,\n },\n ] as MastraMessageV2[],\n format: 'v2',\n });\n\n return {\n task: inputData.task,\n resourceId: inputData.resourceId,\n resourceType: inputData.resourceType,\n result: finalResult,\n isComplete: false,\n iteration: inputData.iteration,\n };\n },\n });\n\n const finishStep = createStep({\n id: 'finish-step',\n inputSchema: z.object({\n task: z.string(),\n resourceId: z.string(),\n resourceType: RESOURCE_TYPES,\n prompt: z.string(),\n result: z.string(),\n isComplete: z.boolean().optional(),\n selectionReason: z.string(),\n iteration: z.number(),\n }),\n outputSchema: z.object({\n task: z.string(),\n result: z.string(),\n isComplete: z.boolean(),\n iteration: z.number(),\n }),\n execute: async ({ inputData }) => {\n return {\n task: inputData.task,\n result: inputData.result,\n isComplete: !!inputData.isComplete,\n iteration: inputData.iteration,\n };\n },\n });\n\n const networkWorkflow = createWorkflow({\n id: 'Agent-Network-Outer-Workflow',\n inputSchema: z.object({\n task: z.string(),\n resourceId: z.string(),\n resourceType: RESOURCE_TYPES,\n result: z.string().optional(),\n iteration: z.number(),\n threadId: z.string().optional(),\n threadResourceId: z.string().optional(),\n isOneOff: z.boolean(),\n verboseIntrospection: z.boolean(),\n }),\n outputSchema: z.object({\n task: z.string(),\n resourceId: z.string(),\n resourceType: RESOURCE_TYPES,\n prompt: z.string(),\n result: z.string(),\n isComplete: z.boolean().optional(),\n completionReason: z.string().optional(),\n iteration: z.number(),\n threadId: z.string().optional(),\n threadResourceId: z.string().optional(),\n isOneOff: z.boolean(),\n }),\n });\n\n networkWorkflow\n .then(routingStep)\n .branch([\n [async ({ inputData }) => !inputData.isComplete && inputData.resourceType === 'agent', agentStep],\n [async ({ inputData }) => !inputData.isComplete && inputData.resourceType === 'workflow', workflowStep],\n [async ({ inputData }) => !inputData.isComplete && inputData.resourceType === 'tool', toolStep],\n [async ({ inputData }) => inputData.isComplete, finishStep],\n ])\n .map({\n task: {\n step: [routingStep, agentStep, workflowStep, toolStep],\n path: 'task',\n },\n isComplete: {\n step: [agentStep, workflowStep, toolStep, finishStep],\n path: 'isComplete',\n },\n completionReason: {\n step: [routingStep, agentStep, workflowStep, toolStep, finishStep],\n path: 'completionReason',\n },\n result: {\n step: [agentStep, workflowStep, toolStep, finishStep],\n path: 'result',\n },\n resourceId: {\n step: [routingStep, agentStep, workflowStep, toolStep],\n path: 'resourceId',\n },\n resourceType: {\n step: [routingStep, agentStep, workflowStep, toolStep],\n path: 'resourceType',\n },\n iteration: {\n step: [routingStep, agentStep, workflowStep, toolStep],\n path: 'iteration',\n },\n isOneOff: {\n initData: networkWorkflow,\n path: 'isOneOff',\n },\n threadId: {\n initData: networkWorkflow,\n path: 'threadId',\n },\n threadResourceId: {\n initData: networkWorkflow,\n path: 'threadResourceId',\n },\n })\n .commit();\n\n return networkWorkflow;\n }\n\n async generate(\n messages: MessageListInput,\n {\n runtimeContext,\n threadId,\n resourceId,\n }: { runtimeContext?: RuntimeContext; threadId?: string; resourceId?: string },\n ) {\n const networkWorkflow = this.createWorkflow({ runtimeContext });\n const run = networkWorkflow.createRun();\n\n const thread = await this.beforeRun({\n runtimeContext: runtimeContext || new RuntimeContext(),\n threadId: threadId || run.runId,\n resourceId: resourceId || this.name,\n messages,\n });\n\n const message = this.getLastMessage(messages);\n\n const result = await run.start({\n inputData: {\n task: message,\n resourceId: '',\n resourceType: 'none',\n iteration: 0,\n threadId: thread?.id,\n threadResourceId: thread?.resourceId,\n isOneOff: true,\n verboseIntrospection: true,\n },\n });\n\n if (result.status === 'failed') {\n throw result.error;\n }\n\n if (result.status === 'suspended') {\n throw new Error('Workflow suspended');\n }\n\n return {\n task: result.result.task,\n result: result.result.result,\n resourceId: result.result.resourceId,\n resourceType: result.result.resourceType,\n };\n }\n\n async stream(\n messages: MessageListInput,\n {\n runtimeContext,\n threadId,\n resourceId,\n }: { runtimeContext?: RuntimeContext; resourceId?: string; threadId?: string },\n ) {\n const networkWorkflow = this.createWorkflow({ runtimeContext });\n const run = networkWorkflow.createRun();\n\n const thread = await this.beforeRun({\n runtimeContext: runtimeContext || new RuntimeContext(),\n threadId: threadId || run.runId,\n resourceId: resourceId || this.name,\n messages,\n });\n\n const message = this.getLastMessage(messages);\n\n return run.stream({\n inputData: {\n task: `You are executing just one primitive based on the following: ${message}`,\n resourceId: '',\n resourceType: 'none',\n iteration: 0,\n threadResourceId: thread?.resourceId,\n threadId: thread?.id,\n isOneOff: true,\n verboseIntrospection: true,\n },\n });\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../src/network/vNext/index.ts"],"names":["MastraBase","RegisteredLogger","randomUUID","MessageList","RuntimeContext","zodToJsonSchema","z","Agent","createStep","createWorkflow","RESOURCE_TYPES","EMITTER_SYMBOL","result"],"mappings":"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","file":"index.cjs","sourcesContent":["import { randomUUID } from 'crypto';\nimport { zodToJsonSchema } from '@mastra/schema-compat/zod-to-json';\nimport { z } from 'zod';\nimport { Agent, MessageList } from '../../agent';\nimport type { MessageListInput } from '../../agent/message-list';\nimport { MastraBase } from '../../base';\nimport type { MastraLanguageModel } from '../../llm/model/shared.types';\nimport { RegisteredLogger } from '../../logger';\nimport { RESOURCE_TYPES } from '../../loop/types';\nimport type { Mastra } from '../../mastra';\nimport type { MastraMessageV2, MastraMemory } from '../../memory';\nimport { RuntimeContext } from '../../runtime-context';\nimport type { Tool } from '../../tools';\nimport type { DynamicArgument } from '../../types';\nimport type { Workflow } from '../../workflows';\nimport { EMITTER_SYMBOL } from '../../workflows/constants';\nimport { createWorkflow, createStep } from '../../workflows/workflow';\n\ninterface NewAgentNetworkConfig {\n id: string;\n name: string;\n instructions: DynamicArgument<string>;\n model: DynamicArgument<MastraLanguageModel>;\n agents: DynamicArgument<Record<string, Agent>>;\n workflows?: DynamicArgument<Record<string, Workflow>>;\n tools?: DynamicArgument<Record<string, Tool<any, any, any>>>;\n memory?: DynamicArgument<MastraMemory>;\n defaultAgent?: DynamicArgument<Agent>;\n}\n\nexport class NewAgentNetwork extends MastraBase {\n id: string;\n name: string;\n #instructions: DynamicArgument<string>;\n #model: DynamicArgument<MastraLanguageModel>;\n #agents: DynamicArgument<Record<string, Agent>>;\n #defaultAgent: DynamicArgument<Agent> | undefined;\n #workflows: DynamicArgument<Record<string, Workflow>> | undefined;\n #tools: DynamicArgument<Record<string, Tool>> | undefined;\n #memory?: DynamicArgument<MastraMemory>;\n #mastra?: Mastra;\n\n constructor({\n id,\n name,\n instructions,\n model,\n agents,\n workflows,\n memory,\n tools,\n defaultAgent,\n }: NewAgentNetworkConfig) {\n super({\n component: RegisteredLogger.NETWORK,\n name: name || 'NewAgentNetwork',\n });\n\n console.warn(\n `⚠️ DEPRECATION WARNING: AgentNetwork vNext will be deprecated on September 16th, 2025 and will be removed in a future version. Please use agent.network() instead.`,\n );\n\n this.id = id;\n this.name = name;\n this.#instructions = instructions;\n this.#model = model;\n this.#agents = agents;\n this.#workflows = workflows;\n this.#memory = memory;\n this.#tools = tools;\n this.#defaultAgent = defaultAgent;\n }\n\n __registerMastra(mastra: Mastra) {\n this.#mastra = mastra;\n }\n\n private getLastMessage(messages: MessageListInput) {\n let message = '';\n if (typeof messages === 'string') {\n message = messages;\n } else {\n const lastMessage = Array.isArray(messages) ? messages[messages.length - 1] : messages;\n if (typeof lastMessage === 'string') {\n message = lastMessage;\n } else if (lastMessage && `content` in lastMessage && lastMessage?.content) {\n const lastMessageContent = lastMessage.content;\n if (typeof lastMessageContent === 'string') {\n message = lastMessageContent;\n } else if (Array.isArray(lastMessageContent)) {\n const lastPart = lastMessageContent[lastMessageContent.length - 1];\n if (lastPart?.type === 'text') {\n message = lastPart.text;\n }\n }\n }\n }\n\n return message;\n }\n\n private async beforeRun({\n runtimeContext,\n threadId,\n resourceId,\n messages,\n }: {\n runtimeContext: RuntimeContext;\n threadId: string;\n resourceId: string;\n messages: MessageListInput;\n }) {\n const memory = await this.getMemory({ runtimeContext });\n let thread = await memory?.getThreadById({ threadId });\n if (!thread) {\n thread = await memory?.createThread({\n threadId,\n title: '',\n resourceId,\n });\n }\n if (typeof messages === 'string') {\n await memory?.saveMessages({\n messages: [\n {\n id: this.#mastra?.generateId() || randomUUID(),\n type: 'text',\n role: 'user',\n content: { parts: [{ type: 'text', text: messages }], format: 2 },\n createdAt: new Date(),\n threadId: thread?.id,\n resourceId: thread?.resourceId,\n },\n ] as MastraMessageV2[],\n format: 'v2',\n });\n } else {\n const messageList = new MessageList({\n threadId: thread?.id,\n resourceId: thread?.resourceId,\n });\n messageList.add(messages, 'user');\n const messagesToSave = messageList.get.all.v2();\n\n await memory?.saveMessages({\n messages: messagesToSave,\n format: 'v2',\n });\n }\n\n return thread;\n }\n\n async getAgents({ runtimeContext }: { runtimeContext?: RuntimeContext }) {\n let agentsToUse: Record<string, Agent>;\n\n if (typeof this.#agents === 'function') {\n agentsToUse = await this.#agents({ runtimeContext: runtimeContext || new RuntimeContext() });\n } else {\n agentsToUse = this.#agents;\n }\n\n return agentsToUse;\n }\n\n async getWorkflows({ runtimeContext }: { runtimeContext?: RuntimeContext }) {\n let workflowsToUse: Record<string, Workflow>;\n\n if (typeof this.#workflows === 'function') {\n workflowsToUse = await this.#workflows({ runtimeContext: runtimeContext || new RuntimeContext() });\n } else {\n workflowsToUse = this.#workflows || {};\n }\n\n return workflowsToUse;\n }\n\n async getTools({ runtimeContext }: { runtimeContext?: RuntimeContext }) {\n let toolsToUse: Record<string, Tool>;\n\n if (typeof this.#tools === 'function') {\n toolsToUse = await this.#tools({ runtimeContext: runtimeContext || new RuntimeContext() });\n } else {\n toolsToUse = this.#tools || {};\n }\n\n return toolsToUse;\n }\n\n async getMemory({ runtimeContext }: { runtimeContext?: RuntimeContext }) {\n let memoryToUse: MastraMemory;\n\n if (!this.#memory) {\n return;\n }\n\n if (typeof this.#memory === 'function') {\n memoryToUse = await this.#memory({ runtimeContext: runtimeContext || new RuntimeContext() });\n } else {\n memoryToUse = this.#memory;\n }\n\n return memoryToUse;\n }\n\n async getInstructions({ runtimeContext }: { runtimeContext?: RuntimeContext }) {\n let instructionsToUse = this.#instructions;\n\n if (typeof instructionsToUse === 'function') {\n instructionsToUse = await instructionsToUse({ runtimeContext: runtimeContext || new RuntimeContext() });\n }\n\n return instructionsToUse;\n }\n\n async getRoutingAgent({ runtimeContext }: { runtimeContext?: RuntimeContext }) {\n const instructionsToUse = await this.getInstructions({ runtimeContext: runtimeContext || new RuntimeContext() });\n const memoryToUse = await this.getMemory({ runtimeContext: runtimeContext || new RuntimeContext() });\n const agentsToUse = await this.getAgents({ runtimeContext: runtimeContext || new RuntimeContext() });\n const workflowsToUse = await this.getWorkflows({ runtimeContext: runtimeContext || new RuntimeContext() });\n const toolsToUse = await this.getTools({ runtimeContext: runtimeContext || new RuntimeContext() });\n\n const agentList = Object.entries(agentsToUse)\n .map(([name, agent]) => {\n // Use agent name instead of description since description might not exist\n return ` - **${name}**: ${agent.getDescription()}`;\n })\n .join('\\n');\n\n const workflowList = Object.entries(workflowsToUse)\n .map(([name, workflow]) => {\n return ` - **${name}**: ${workflow.description}, input schema: ${JSON.stringify(\n zodToJsonSchema(workflow.inputSchema),\n )}`;\n })\n .join('\\n');\n\n const toolList = Object.entries(toolsToUse)\n .map(([name, tool]) => {\n return ` - **${name}**: ${tool.description}, input schema: ${JSON.stringify(\n zodToJsonSchema(tool.inputSchema || z.object({})),\n )}`;\n })\n .join('\\n');\n\n const instructions = `\n You are a router in a network of specialized AI agents. \n Your job is to decide which agent should handle each step of a task.\n\n If asking for completion of a task, make sure to follow system instructions closely.\n \n ## System Instructions\n ${instructionsToUse}\n\n You can only pick agents and workflows that are available in the lists below. Never call any agents or workflows that are not available in the lists below.\n\n ## Available Agents in Network\n ${agentList}\n\n ## Available Workflows in Network (make sure to use inputs corresponding to the input schema when calling a workflow)\n ${workflowList}\n\n ## Available Tools in Network (make sure to use inputs corresponding to the input schema when calling a tool)\n ${toolList}\n\n ${\n this.#defaultAgent\n ? `If none of the agents or workflows are appropriate, call the default agent: ${this.#defaultAgent.name}.` +\n `This should not be done lightly. You should only do this if you have exhausted all other options.`\n : ''\n }\n\n If you have multiple entries that need to be called with a workflow or agent, call them separately with each input.\n When calling a workflow, the prompt should be a JSON value that corresponds to the input schema of the workflow. The JSON value is stringified.\n When calling a tool, the prompt should be a JSON value that corresponds to the input schema of the tool. The JSON value is stringified.\n When calling an agent, the prompt should be a text value, like you would call an LLM in a chat interface.\n\n Keep in mind that the user only sees the final result of the task. When reviewing completion, you should know that the user will not see the intermediate results.\n `;\n\n return new Agent({\n name: 'routing-agent',\n instructions,\n model: this.#model,\n memory: memoryToUse,\n // @ts-ignore\n _agentNetworkAppend: true,\n });\n }\n\n async loop(\n messages: MessageListInput,\n {\n runtimeContext,\n maxIterations,\n threadId,\n resourceId,\n }: {\n runtimeContext?: RuntimeContext;\n maxIterations?: number;\n threadId?: string;\n resourceId?: string;\n },\n ) {\n const networkWorkflow = this.createWorkflow({ runtimeContext });\n\n const finalStep = createStep({\n id: 'final-step',\n inputSchema: networkWorkflow.outputSchema,\n outputSchema: networkWorkflow.outputSchema,\n execute: async ({ inputData }) => {\n if (maxIterations && inputData.iteration >= maxIterations) {\n return {\n ...inputData,\n completionReason: `Max iterations reached: ${maxIterations}`,\n };\n }\n\n return inputData;\n },\n });\n\n const mainWorkflow = createWorkflow({\n id: 'Agent-Network-Main-Workflow',\n inputSchema: z.object({\n iteration: z.number(),\n task: z.string(),\n resourceType: RESOURCE_TYPES,\n threadId: z.string().optional(),\n threadResourceId: z.string().optional(),\n }),\n outputSchema: networkWorkflow.outputSchema,\n })\n .dountil(networkWorkflow, async ({ inputData }) => {\n return inputData.isComplete || (maxIterations && inputData.iteration >= maxIterations);\n })\n .then(finalStep)\n .commit();\n\n const run = mainWorkflow.createRun();\n\n const thread = await this.beforeRun({\n runtimeContext: runtimeContext || new RuntimeContext(),\n threadId: threadId || run.runId,\n resourceId: resourceId || this.name,\n messages,\n });\n\n const message = this.getLastMessage(messages);\n\n const result = await run.start({\n inputData: {\n task: message,\n resourceType: 'none',\n iteration: 0,\n threadResourceId: thread?.resourceId,\n threadId: thread?.id,\n },\n });\n\n if (result.status === 'failed') {\n throw result.error;\n }\n\n if (result.status === 'suspended') {\n throw new Error('Workflow suspended');\n }\n\n return result;\n }\n\n async loopStream(\n messages: MessageListInput,\n {\n runtimeContext,\n maxIterations,\n threadId,\n resourceId,\n }: {\n runtimeContext?: RuntimeContext;\n maxIterations?: number;\n threadId?: string;\n resourceId?: string;\n },\n ) {\n const networkWorkflow = this.createWorkflow({ runtimeContext });\n\n const finalStep = createStep({\n id: 'final-step',\n inputSchema: networkWorkflow.outputSchema,\n outputSchema: networkWorkflow.outputSchema,\n execute: async ({ inputData }) => {\n if (maxIterations && inputData.iteration >= maxIterations) {\n return {\n ...inputData,\n completionReason: `Max iterations reached: ${maxIterations}`,\n };\n }\n\n return inputData;\n },\n });\n\n const mainWorkflow = createWorkflow({\n id: 'Agent-Network-Main-Workflow',\n inputSchema: z.object({\n iteration: z.number(),\n task: z.string(),\n resourceId: z.string(),\n resourceType: RESOURCE_TYPES,\n result: z.string().optional(),\n threadId: z.string().optional(),\n threadResourceId: z.string().optional(),\n isOneOff: z.boolean(),\n verboseIntrospection: z.boolean(),\n }),\n outputSchema: z.object({\n task: z.string(),\n resourceId: z.string(),\n resourceType: RESOURCE_TYPES,\n prompt: z.string(),\n result: z.string(),\n isComplete: z.boolean().optional(),\n completionReason: z.string().optional(),\n iteration: z.number(),\n }),\n })\n .dountil(networkWorkflow, async ({ inputData }) => {\n return inputData.isComplete || (maxIterations && inputData.iteration >= maxIterations);\n })\n .then(finalStep)\n .commit();\n\n const run = mainWorkflow.createRun();\n\n const thread = await this.beforeRun({\n runtimeContext: runtimeContext || new RuntimeContext(),\n threadId: threadId || run.runId,\n resourceId: resourceId || this.name,\n messages,\n });\n\n const message = this.getLastMessage(messages);\n\n return run.stream({\n inputData: {\n task: message,\n resourceId: '',\n resourceType: 'none',\n iteration: 0,\n threadResourceId: thread?.resourceId,\n threadId: thread?.id,\n isOneOff: false,\n verboseIntrospection: true,\n },\n });\n }\n\n createWorkflow({ runtimeContext }: { runtimeContext?: RuntimeContext }) {\n const runId = this.#mastra?.generateId() || randomUUID();\n\n const runtimeContextToUse = runtimeContext || new RuntimeContext();\n\n const routingStep = createStep({\n id: 'routing-step',\n inputSchema: z.object({\n task: z.string(),\n resourceId: z.string(),\n resourceType: RESOURCE_TYPES,\n result: z.string().optional(),\n iteration: z.number(),\n threadId: z.string().optional(),\n threadResourceId: z.string().optional(),\n isOneOff: z.boolean(),\n verboseIntrospection: z.boolean(),\n }),\n outputSchema: z.object({\n task: z.string(),\n resourceId: z.string(),\n resourceType: RESOURCE_TYPES,\n prompt: z.string(),\n result: z.string(),\n isComplete: z.boolean().optional(),\n selectionReason: z.string(),\n iteration: z.number(),\n }),\n execute: async ({ inputData, getInitData }) => {\n const initData = await getInitData();\n\n const routingAgent = await this.getRoutingAgent({ runtimeContext: runtimeContextToUse });\n\n const model = await routingAgent.getModel();\n\n const completionSchema = z.object({\n isComplete: z.boolean(),\n finalResult: z.string(),\n completionReason: z.string(),\n });\n let completionResult;\n if (inputData.resourceType !== 'none' && inputData?.result) {\n // Check if the task is complete\n const completionPrompt = `\n The ${inputData.resourceType} ${inputData.resourceId} has contributed to the task.\n This is the result from the agent: ${inputData.result}\n\n You need to evaluate that our task is complete. Pay very close attention to the SYSTEM INSTRUCTIONS for when the task is considered complete. Only return true if the task is complete according to the system instructions. Pay close attention to the finalResult and completionReason.\n Original task: ${inputData.task}\n\n {\n \"isComplete\": boolean,\n \"completionReason\": string,\n \"finalResult\": string\n }\n `;\n\n if (model.specificationVersion === 'v2') {\n completionResult = await routingAgent.generateVNext([{ role: 'assistant', content: completionPrompt }], {\n output: completionSchema,\n threadId: initData?.threadId ?? runId,\n resourceId: initData?.threadResourceId ?? this.name,\n runtimeContext: runtimeContextToUse,\n });\n } else {\n completionResult = await routingAgent.generate([{ role: 'assistant', content: completionPrompt }], {\n output: completionSchema,\n threadId: initData?.threadId ?? runId,\n resourceId: initData?.threadResourceId ?? this.name,\n runtimeContext: runtimeContextToUse,\n });\n }\n\n if (completionResult.object.isComplete) {\n return {\n task: inputData.task,\n resourceId: '',\n resourceType: 'none' as z.infer<typeof RESOURCE_TYPES>,\n prompt: '',\n result: completionResult.object.finalResult,\n isComplete: true,\n selectionReason: completionResult.object.completionReason,\n iteration: inputData.iteration + 1,\n };\n }\n }\n\n let result;\n const prompt: MessageListInput = [\n {\n role: 'assistant',\n content: `\n ${inputData.isOneOff ? 'You are executing just one primitive based on the user task. Make sure to pick the primitive that is the best suited to accomplish the whole task. Primitives that execute only part of the task should be avoided.' : 'You will be calling just *one* primitive at a time to accomplish the user task, every call to you is one decision in the process of accomplishing the user task. Make sure to pick primitives that are the best suited to accomplish the whole task. Completeness is the highest priority.'}\n\n The user has given you the following task: \n ${inputData.task}\n ${completionResult ? `\\n\\n${completionResult.object.finalResult}` : ''}\n\n Please select the most appropriate primitive to handle this task and the prompt to be sent to the primitive.\n If you are calling the same agent again, make sure to adjust the prompt to be more specific.\n\n {\n \"resourceId\": string,\n \"resourceType\": \"agent\" | \"workflow\" | \"tool\",\n \"prompt\": string,\n \"selectionReason\": string\n }\n\n The 'selectionReason' property should explain why you picked the primitive${inputData.verboseIntrospection ? ', as well as why the other primitives were not picked.' : '.'}\n `,\n },\n ];\n\n const options = {\n output: z.object({\n resourceId: z.string(),\n resourceType: RESOURCE_TYPES,\n prompt: z.string(),\n selectionReason: z.string(),\n }),\n threadId: initData?.threadId ?? runId,\n resourceId: initData?.threadResourceId ?? this.name,\n runtimeContext: runtimeContextToUse,\n };\n\n if (model.specificationVersion === 'v2') {\n result = await routingAgent.generateVNext(prompt, options);\n } else {\n result = await routingAgent.generate(prompt, options);\n }\n\n return {\n task: inputData.task,\n result: '',\n resourceId: result.object.resourceId,\n resourceType: result.object.resourceType,\n prompt: result.object.prompt,\n isComplete: result.object.resourceId === 'none' && result.object.resourceType === 'none' ? true : false,\n selectionReason: result.object.selectionReason,\n iteration: inputData.iteration + 1,\n };\n },\n });\n\n const agentStep = createStep({\n id: 'agent-step',\n inputSchema: z.object({\n task: z.string(),\n resourceId: z.string(),\n resourceType: RESOURCE_TYPES,\n prompt: z.string(),\n result: z.string(),\n isComplete: z.boolean().optional(),\n selectionReason: z.string(),\n iteration: z.number(),\n }),\n outputSchema: z.object({\n task: z.string(),\n resourceId: z.string(),\n resourceType: RESOURCE_TYPES,\n result: z.string(),\n isComplete: z.boolean().optional(),\n iteration: z.number(),\n }),\n execute: async ({ inputData, [EMITTER_SYMBOL]: emitter, getInitData }) => {\n const agentsMap = await this.getAgents({ runtimeContext: runtimeContextToUse });\n const agentId = inputData.resourceId;\n\n const agent = agentsMap[inputData.resourceId];\n\n if (!agent) {\n throw new Error(`Agent ${agentId} not found`);\n }\n\n let streamPromise = {} as {\n promise: Promise<string>;\n resolve: (value: string) => void;\n reject: (reason?: any) => void;\n };\n\n streamPromise.promise = new Promise((resolve, reject) => {\n streamPromise.resolve = resolve;\n streamPromise.reject = reject;\n });\n const toolData = {\n name: agent.name,\n args: inputData,\n };\n await emitter.emit('watch-v2', {\n type: 'tool-call-streaming-start',\n ...toolData,\n });\n\n const model = await agent.getModel();\n\n let result;\n\n if (model.specificationVersion === 'v2') {\n result = await agent.streamVNext(inputData.prompt, {\n // resourceId: inputData.resourceId,\n // threadId: inputData.threadId,\n runtimeContext: runtimeContextToUse,\n onFinish: result => {\n streamPromise.resolve(result.text);\n },\n });\n\n for await (const chunk of result.fullStream) {\n switch (chunk.type) {\n case 'text-delta':\n await emitter.emit('watch-v2', {\n type: 'tool-call-delta',\n ...toolData,\n argsTextDelta: chunk.payload.text,\n });\n break;\n\n case 'step-start':\n case 'step-finish':\n case 'finish':\n case 'tool-call':\n case 'tool-result':\n case 'tool-call-input-streaming-start':\n case 'tool-call-delta':\n break;\n case 'source':\n case 'file':\n default:\n await emitter.emit('watch-v2', chunk);\n break;\n }\n }\n } else {\n result = await agent.stream(inputData.prompt, {\n // resourceId: inputData.resourceId,\n // threadId: inputData.threadId,\n runtimeContext: runtimeContextToUse,\n onFinish: result => {\n streamPromise.resolve(result.text);\n },\n });\n\n for await (const chunk of result.fullStream) {\n switch (chunk.type) {\n case 'text-delta':\n await emitter.emit('watch-v2', {\n type: 'tool-call-delta',\n ...toolData,\n argsTextDelta: chunk.textDelta,\n });\n break;\n\n case 'step-start':\n case 'step-finish':\n case 'finish':\n case 'tool-call':\n case 'tool-result':\n case 'tool-call-streaming-start':\n case 'tool-call-delta':\n break;\n case 'source':\n case 'file':\n default:\n await emitter.emit('watch-v2', chunk);\n break;\n }\n }\n }\n\n const finalResult = await streamPromise.promise;\n\n const memory = await this.getMemory({ runtimeContext: runtimeContext || new RuntimeContext() });\n const initData = await getInitData();\n await memory?.saveMessages({\n messages: [\n {\n id: this.#mastra?.generateId() || randomUUID(),\n type: 'text',\n role: 'assistant',\n content: { parts: [{ type: 'text', text: finalResult }], format: 2 },\n createdAt: new Date(),\n threadId: initData.threadId || runId,\n resourceId: initData.threadResourceId || this.name,\n },\n ] as MastraMessageV2[],\n format: 'v2',\n });\n\n return {\n task: inputData.task,\n resourceId: inputData.resourceId,\n resourceType: inputData.resourceType,\n result: finalResult,\n isComplete: false,\n iteration: inputData.iteration,\n };\n },\n });\n\n const workflowStep = createStep({\n id: 'workflow-step',\n inputSchema: z.object({\n task: z.string(),\n resourceId: z.string(),\n resourceType: RESOURCE_TYPES,\n prompt: z.string(),\n result: z.string(),\n isComplete: z.boolean().optional(),\n selectionReason: z.string(),\n iteration: z.number(),\n }),\n outputSchema: z.object({\n task: z.string(),\n resourceId: z.string(),\n resourceType: RESOURCE_TYPES,\n result: z.string(),\n isComplete: z.boolean().optional(),\n iteration: z.number(),\n }),\n execute: async ({ inputData, [EMITTER_SYMBOL]: emitter, getInitData }) => {\n const workflowsMap = await this.getWorkflows({ runtimeContext: runtimeContextToUse });\n const wf = workflowsMap[inputData.resourceId];\n\n if (!wf) {\n throw new Error(`Workflow ${inputData.resourceId} not found`);\n }\n\n let input;\n try {\n input = JSON.parse(inputData.prompt);\n } catch (e: unknown) {\n console.error(e);\n throw new Error(`Invalid task input: ${inputData.task}`);\n }\n\n let streamPromise = {} as {\n promise: Promise<any>;\n resolve: (value: any) => void;\n reject: (reason?: any) => void;\n };\n\n streamPromise.promise = new Promise((resolve, reject) => {\n streamPromise.resolve = resolve;\n streamPromise.reject = reject;\n });\n const toolData = {\n name: wf.name,\n args: inputData,\n };\n await emitter.emit('watch-v2', {\n type: 'tool-call-streaming-start',\n ...toolData,\n });\n const run = wf.createRun();\n const { stream, getWorkflowState } = run.stream({\n inputData: input,\n runtimeContext: runtimeContextToUse,\n });\n\n let result: any;\n let stepResults: Record<string, any> = {};\n for await (const chunk of stream) {\n const c: any = chunk;\n // const c = chunk;\n switch (c.type) {\n case 'text-delta':\n await emitter.emit('watch-v2', {\n type: 'tool-call-delta',\n ...toolData,\n argsTextDelta: c.textDelta,\n });\n break;\n\n case 'step-result':\n if (c?.payload?.output) {\n result = c?.payload?.output;\n stepResults[c?.payload?.id] = c?.payload?.output;\n }\n await emitter.emit('watch-v2', c);\n break;\n case 'finish':\n streamPromise.resolve(result);\n break;\n\n case 'start':\n case 'step-start':\n case 'step-finish':\n case 'tool-call':\n case 'tool-result':\n case 'tool-call-streaming-start':\n case 'tool-call-delta':\n case 'source':\n case 'file':\n default:\n await emitter.emit('watch-v2', c);\n break;\n }\n }\n\n let runSuccess = true;\n const runResult = await streamPromise.promise;\n\n const workflowState = await getWorkflowState();\n if (workflowState.status === 'failed') {\n runSuccess = false;\n }\n\n const finalResult = JSON.stringify({\n runId: run.runId,\n runResult,\n runSuccess,\n });\n\n const memory = await this.getMemory({ runtimeContext: runtimeContext || new RuntimeContext() });\n const initData = await getInitData();\n await memory?.saveMessages({\n messages: [\n {\n id: this.#mastra?.generateId() || randomUUID(),\n type: 'text',\n role: 'assistant',\n content: { parts: [{ type: 'text', text: finalResult }], format: 2 },\n createdAt: new Date(),\n threadId: initData.threadId || runId,\n resourceId: initData.threadResourceId || this.name,\n },\n ] as MastraMessageV2[],\n format: 'v2',\n });\n\n return {\n result: finalResult || '',\n task: inputData.task,\n resourceId: inputData.resourceId,\n resourceType: inputData.resourceType,\n isComplete: false,\n iteration: inputData.iteration,\n };\n },\n });\n\n const toolStep = createStep({\n id: 'toolStep',\n inputSchema: z.object({\n task: z.string(),\n resourceId: z.string(),\n resourceType: RESOURCE_TYPES,\n prompt: z.string(),\n result: z.string(),\n isComplete: z.boolean().optional(),\n selectionReason: z.string(),\n iteration: z.number(),\n }),\n outputSchema: z.object({\n task: z.string(),\n resourceId: z.string(),\n resourceType: RESOURCE_TYPES,\n result: z.string(),\n isComplete: z.boolean().optional(),\n iteration: z.number(),\n }),\n execute: async ({ inputData, getInitData }) => {\n const toolsMap = await this.getTools({ runtimeContext: runtimeContextToUse });\n const tool = toolsMap[inputData.resourceId];\n\n if (!tool) {\n throw new Error(`Tool ${inputData.resourceId} not found`);\n }\n\n if (!tool.execute) {\n throw new Error(`Tool ${inputData.resourceId} does not have an execute function`);\n }\n\n let inputDataToUse: any;\n try {\n inputDataToUse = JSON.parse(inputData.prompt);\n } catch (e: unknown) {\n console.error(e);\n throw new Error(`Invalid task input: ${inputData.task}`);\n }\n\n const finalResult: any = await tool.execute({\n runtimeContext: runtimeContextToUse,\n mastra: this.#mastra,\n resourceId: inputData.resourceId,\n threadId: runId,\n runId,\n context: inputDataToUse,\n // TODO: Pass proper tracing context when network supports tracing\n tracingContext: { currentSpan: undefined },\n });\n\n const memory = await this.getMemory({ runtimeContext: runtimeContext || new RuntimeContext() });\n const initData = await getInitData();\n await memory?.saveMessages({\n messages: [\n {\n id: this.#mastra?.generateId() || randomUUID(),\n type: 'text',\n role: 'assistant',\n content: { parts: [{ type: 'text', text: JSON.stringify(finalResult) }], format: 2 },\n createdAt: new Date(),\n threadId: initData.threadId || runId,\n resourceId: initData.threadResourceId || this.name,\n },\n ] as MastraMessageV2[],\n format: 'v2',\n });\n\n return {\n task: inputData.task,\n resourceId: inputData.resourceId,\n resourceType: inputData.resourceType,\n result: finalResult,\n isComplete: false,\n iteration: inputData.iteration,\n };\n },\n });\n\n const finishStep = createStep({\n id: 'finish-step',\n inputSchema: z.object({\n task: z.string(),\n resourceId: z.string(),\n resourceType: RESOURCE_TYPES,\n prompt: z.string(),\n result: z.string(),\n isComplete: z.boolean().optional(),\n selectionReason: z.string(),\n iteration: z.number(),\n }),\n outputSchema: z.object({\n task: z.string(),\n result: z.string(),\n isComplete: z.boolean(),\n iteration: z.number(),\n }),\n execute: async ({ inputData }) => {\n return {\n task: inputData.task,\n result: inputData.result,\n isComplete: !!inputData.isComplete,\n iteration: inputData.iteration,\n };\n },\n });\n\n const networkWorkflow = createWorkflow({\n id: 'Agent-Network-Outer-Workflow',\n inputSchema: z.object({\n task: z.string(),\n resourceId: z.string(),\n resourceType: RESOURCE_TYPES,\n result: z.string().optional(),\n iteration: z.number(),\n threadId: z.string().optional(),\n threadResourceId: z.string().optional(),\n isOneOff: z.boolean(),\n verboseIntrospection: z.boolean(),\n }),\n outputSchema: z.object({\n task: z.string(),\n resourceId: z.string(),\n resourceType: RESOURCE_TYPES,\n prompt: z.string(),\n result: z.string(),\n isComplete: z.boolean().optional(),\n completionReason: z.string().optional(),\n iteration: z.number(),\n threadId: z.string().optional(),\n threadResourceId: z.string().optional(),\n isOneOff: z.boolean(),\n }),\n });\n\n networkWorkflow\n .then(routingStep)\n .branch([\n [async ({ inputData }) => !inputData.isComplete && inputData.resourceType === 'agent', agentStep],\n [async ({ inputData }) => !inputData.isComplete && inputData.resourceType === 'workflow', workflowStep],\n [async ({ inputData }) => !inputData.isComplete && inputData.resourceType === 'tool', toolStep],\n [async ({ inputData }) => inputData.isComplete, finishStep],\n ])\n .map({\n task: {\n step: [routingStep, agentStep, workflowStep, toolStep],\n path: 'task',\n },\n isComplete: {\n step: [agentStep, workflowStep, toolStep, finishStep],\n path: 'isComplete',\n },\n completionReason: {\n step: [routingStep, agentStep, workflowStep, toolStep, finishStep],\n path: 'completionReason',\n },\n result: {\n step: [agentStep, workflowStep, toolStep, finishStep],\n path: 'result',\n },\n resourceId: {\n step: [routingStep, agentStep, workflowStep, toolStep],\n path: 'resourceId',\n },\n resourceType: {\n step: [routingStep, agentStep, workflowStep, toolStep],\n path: 'resourceType',\n },\n iteration: {\n step: [routingStep, agentStep, workflowStep, toolStep],\n path: 'iteration',\n },\n isOneOff: {\n initData: networkWorkflow,\n path: 'isOneOff',\n },\n threadId: {\n initData: networkWorkflow,\n path: 'threadId',\n },\n threadResourceId: {\n initData: networkWorkflow,\n path: 'threadResourceId',\n },\n })\n .commit();\n\n return networkWorkflow;\n }\n\n async generate(\n messages: MessageListInput,\n {\n runtimeContext,\n threadId,\n resourceId,\n }: { runtimeContext?: RuntimeContext; threadId?: string; resourceId?: string },\n ) {\n const networkWorkflow = this.createWorkflow({ runtimeContext });\n const run = networkWorkflow.createRun();\n\n const thread = await this.beforeRun({\n runtimeContext: runtimeContext || new RuntimeContext(),\n threadId: threadId || run.runId,\n resourceId: resourceId || this.name,\n messages,\n });\n\n const message = this.getLastMessage(messages);\n\n const result = await run.start({\n inputData: {\n task: message,\n resourceId: '',\n resourceType: 'none',\n iteration: 0,\n threadId: thread?.id,\n threadResourceId: thread?.resourceId,\n isOneOff: true,\n verboseIntrospection: true,\n },\n });\n\n if (result.status === 'failed') {\n throw result.error;\n }\n\n if (result.status === 'suspended') {\n throw new Error('Workflow suspended');\n }\n\n return {\n task: result.result.task,\n result: result.result.result,\n resourceId: result.result.resourceId,\n resourceType: result.result.resourceType,\n };\n }\n\n async stream(\n messages: MessageListInput,\n {\n runtimeContext,\n threadId,\n resourceId,\n }: { runtimeContext?: RuntimeContext; resourceId?: string; threadId?: string },\n ) {\n const networkWorkflow = this.createWorkflow({ runtimeContext });\n const run = networkWorkflow.createRun();\n\n const thread = await this.beforeRun({\n runtimeContext: runtimeContext || new RuntimeContext(),\n threadId: threadId || run.runId,\n resourceId: resourceId || this.name,\n messages,\n });\n\n const message = this.getLastMessage(messages);\n\n return run.stream({\n inputData: {\n task: `You are executing just one primitive based on the following: ${message}`,\n resourceId: '',\n resourceType: 'none',\n iteration: 0,\n threadResourceId: thread?.resourceId,\n threadId: thread?.id,\n isOneOff: true,\n verboseIntrospection: true,\n },\n });\n }\n}\n"]}
|
|
@@ -67,9 +67,9 @@ export declare class NewAgentNetwork extends MastraBase {
|
|
|
67
67
|
completionReason?: string | undefined;
|
|
68
68
|
};
|
|
69
69
|
steps: {
|
|
70
|
-
[x: string]: import("../..").StepResult<
|
|
70
|
+
[x: string]: import("../..").StepResult<unknown, unknown, unknown, unknown> | import("../..").StepResult<any, any, any, any>;
|
|
71
71
|
};
|
|
72
|
-
}>;
|
|
72
|
+
} & import("../../ai-tracing").TracingProperties>;
|
|
73
73
|
loopStream(messages: MessageListInput, { runtimeContext, maxIterations, threadId, resourceId, }: {
|
|
74
74
|
runtimeContext?: RuntimeContext;
|
|
75
75
|
maxIterations?: number;
|
|
@@ -80,7 +80,7 @@ export declare class NewAgentNetwork extends MastraBase {
|
|
|
80
80
|
getWorkflowState: () => Promise<import("../..").WorkflowResult<z.ZodObject<{
|
|
81
81
|
task: z.ZodString;
|
|
82
82
|
resourceId: z.ZodString;
|
|
83
|
-
resourceType: z.ZodEnum<["agent", "workflow", "none", "tool"
|
|
83
|
+
resourceType: z.ZodEnum<["agent", "workflow", "none", "tool"]>;
|
|
84
84
|
prompt: z.ZodString;
|
|
85
85
|
result: z.ZodString;
|
|
86
86
|
isComplete: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -111,7 +111,7 @@ export declare class NewAgentNetwork extends MastraBase {
|
|
|
111
111
|
}): Workflow<import("../..").DefaultEngineType, import("../..").Step<string, any, any, any, any, import("../..").DefaultEngineType>[], "Agent-Network-Outer-Workflow", z.ZodObject<{
|
|
112
112
|
task: z.ZodString;
|
|
113
113
|
resourceId: z.ZodString;
|
|
114
|
-
resourceType: z.ZodEnum<["agent", "workflow", "none", "tool"
|
|
114
|
+
resourceType: z.ZodEnum<["agent", "workflow", "none", "tool"]>;
|
|
115
115
|
result: z.ZodOptional<z.ZodString>;
|
|
116
116
|
iteration: z.ZodNumber;
|
|
117
117
|
threadId: z.ZodOptional<z.ZodString>;
|
|
@@ -141,7 +141,7 @@ export declare class NewAgentNetwork extends MastraBase {
|
|
|
141
141
|
}>, z.ZodObject<{
|
|
142
142
|
task: z.ZodString;
|
|
143
143
|
resourceId: z.ZodString;
|
|
144
|
-
resourceType: z.ZodEnum<["agent", "workflow", "none", "tool"
|
|
144
|
+
resourceType: z.ZodEnum<["agent", "workflow", "none", "tool"]>;
|
|
145
145
|
prompt: z.ZodString;
|
|
146
146
|
result: z.ZodString;
|
|
147
147
|
isComplete: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -177,7 +177,7 @@ export declare class NewAgentNetwork extends MastraBase {
|
|
|
177
177
|
}>, z.ZodObject<{
|
|
178
178
|
task: z.ZodString;
|
|
179
179
|
resourceId: z.ZodString;
|
|
180
|
-
resourceType: z.ZodEnum<["agent", "workflow", "none", "tool"
|
|
180
|
+
resourceType: z.ZodEnum<["agent", "workflow", "none", "tool"]>;
|
|
181
181
|
result: z.ZodOptional<z.ZodString>;
|
|
182
182
|
iteration: z.ZodNumber;
|
|
183
183
|
threadId: z.ZodOptional<z.ZodString>;
|
|
@@ -224,7 +224,7 @@ export declare class NewAgentNetwork extends MastraBase {
|
|
|
224
224
|
getWorkflowState: () => Promise<import("../..").WorkflowResult<z.ZodObject<{
|
|
225
225
|
task: z.ZodString;
|
|
226
226
|
resourceId: z.ZodString;
|
|
227
|
-
resourceType: z.ZodEnum<["agent", "workflow", "none", "tool"
|
|
227
|
+
resourceType: z.ZodEnum<["agent", "workflow", "none", "tool"]>;
|
|
228
228
|
prompt: z.ZodString;
|
|
229
229
|
result: z.ZodString;
|
|
230
230
|
isComplete: z.ZodOptional<z.ZodBoolean>;
|