@mastra/core 0.16.2 → 0.16.3-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +44 -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-JLVFFZT7.cjs → chunk-2LEMTQEN.cjs} +4 -4
- package/dist/{chunk-JLVFFZT7.cjs.map → chunk-2LEMTQEN.cjs.map} +1 -1
- package/dist/{chunk-6RVOPJVP.cjs → chunk-37GX66ZQ.cjs} +7 -7
- package/dist/{chunk-6RVOPJVP.cjs.map → chunk-37GX66ZQ.cjs.map} +1 -1
- package/dist/{chunk-IMDDMIVR.cjs → chunk-3CYEVZGC.cjs} +6 -6
- package/dist/{chunk-IMDDMIVR.cjs.map → chunk-3CYEVZGC.cjs.map} +1 -1
- package/dist/{chunk-P67M4R6G.js → chunk-46ZMVRXN.js} +5 -5
- package/dist/{chunk-P67M4R6G.js.map → chunk-46ZMVRXN.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-6ILOFPTU.js} +4 -4
- package/dist/{chunk-YYRE76UM.js.map → chunk-6ILOFPTU.js.map} +1 -1
- package/dist/{chunk-YI3AIJJL.js → chunk-7ARB2XCY.js} +4 -4
- package/dist/chunk-7ARB2XCY.js.map +1 -0
- package/dist/{chunk-SJO2HEVU.cjs → chunk-AV5QBG6P.cjs} +185 -125
- package/dist/chunk-AV5QBG6P.cjs.map +1 -0
- package/dist/{chunk-RVNDGKE5.js → chunk-BE6HGZV7.js} +3 -3
- package/dist/{chunk-RVNDGKE5.js.map → chunk-BE6HGZV7.js.map} +1 -1
- package/dist/chunk-CM4UEIAB.cjs +808 -0
- package/dist/chunk-CM4UEIAB.cjs.map +1 -0
- package/dist/{chunk-DUABZASJ.js → chunk-DWGGSV3L.js} +4 -4
- package/dist/{chunk-DUABZASJ.js.map → chunk-DWGGSV3L.js.map} +1 -1
- package/dist/chunk-HHRWDBFK.js +737 -0
- package/dist/chunk-HHRWDBFK.js.map +1 -0
- package/dist/{chunk-D3UG2YLU.cjs → chunk-I77GWNQI.cjs} +5 -5
- package/dist/chunk-I77GWNQI.cjs.map +1 -0
- package/dist/chunk-PJKCPRYF.js +3 -0
- package/dist/chunk-PJKCPRYF.js.map +1 -0
- package/dist/{chunk-ZIDWSQFD.cjs → chunk-PPMRSBCA.cjs} +8 -8
- package/dist/{chunk-ZIDWSQFD.cjs.map → chunk-PPMRSBCA.cjs.map} +1 -1
- package/dist/{chunk-YBKHXKRR.js → chunk-SLQGF75B.js} +3 -3
- package/dist/{chunk-YBKHXKRR.js.map → chunk-SLQGF75B.js.map} +1 -1
- package/dist/{chunk-OYHHJUTH.cjs → chunk-VK7LOYGD.cjs} +12 -12
- package/dist/{chunk-OYHHJUTH.cjs.map → chunk-VK7LOYGD.cjs.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/test-utils/streamObject.d.ts.map +1 -1
- 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-D3UG2YLU.cjs.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
- package/dist/chunk-YI3AIJJL.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm-execution.d.ts","sourceRoot":"","sources":["../../../src/loop/workflow/llm-execution.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAMrC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAI7D,OAAO,KAAK,EAAc,WAAW,EAAE,MAAM,UAAU,CAAC;AAwVxD,wBAAgB,sBAAsB,CACpC,KAAK,SAAS,OAAO,GAAG,OAAO,EAC/B,MAAM,SAAS,YAAY,GAAG,SAAS,GAAG,SAAS,EACnD,EACA,KAAK,EACL,SAAS,EACT,SAAS,EACT,KAAK,EACL,eAAe,EACf,kBAAkB,EAClB,KAAK,EACL,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,OAAO,EACP,iBAAiB,EACjB,UAAU,EACV,MAAM,EACN,OAAO,EACP,eAAe,EACf,mBAAmB,GACpB,EAAE,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"llm-execution.d.ts","sourceRoot":"","sources":["../../../src/loop/workflow/llm-execution.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAMrC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAI7D,OAAO,KAAK,EAAc,WAAW,EAAE,MAAM,UAAU,CAAC;AAwVxD,wBAAgB,sBAAsB,CACpC,KAAK,SAAS,OAAO,GAAG,OAAO,EAC/B,MAAM,SAAS,YAAY,GAAG,SAAS,GAAG,SAAS,EACnD,EACA,KAAK,EACL,SAAS,EACT,SAAS,EACT,KAAK,EACL,eAAe,EACf,kBAAkB,EAClB,KAAK,EACL,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,OAAO,EACP,iBAAiB,EACjB,UAAU,EACV,MAAM,EACN,gBAAgB,EAChB,OAAO,EACP,eAAe,EACf,mBAAmB,GACpB,EAAE,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6JA0T5B"}
|
|
@@ -21,22 +21,22 @@ export declare function createOuterLLMWorkflow<Tools extends ToolSet = ToolSet,
|
|
|
21
21
|
metadata: z.ZodAny;
|
|
22
22
|
stepResult: z.ZodOptional<z.ZodAny>;
|
|
23
23
|
}, "strip", z.ZodTypeAny, {
|
|
24
|
+
messageId: string;
|
|
24
25
|
messages: {
|
|
25
26
|
user: any[];
|
|
26
27
|
all: any[];
|
|
27
28
|
nonUser: any[];
|
|
28
29
|
};
|
|
29
|
-
messageId: string;
|
|
30
30
|
output?: any;
|
|
31
31
|
metadata?: any;
|
|
32
32
|
stepResult?: any;
|
|
33
33
|
}, {
|
|
34
|
+
messageId: string;
|
|
34
35
|
messages: {
|
|
35
36
|
user: any[];
|
|
36
37
|
all: any[];
|
|
37
38
|
nonUser: any[];
|
|
38
39
|
};
|
|
39
|
-
messageId: string;
|
|
40
40
|
output?: any;
|
|
41
41
|
metadata?: any;
|
|
42
42
|
stepResult?: any;
|
|
@@ -18,22 +18,22 @@ export declare const llmIterationOutputSchema: z.ZodObject<{
|
|
|
18
18
|
metadata: z.ZodAny;
|
|
19
19
|
stepResult: z.ZodOptional<z.ZodAny>;
|
|
20
20
|
}, "strip", z.ZodTypeAny, {
|
|
21
|
+
messageId: string;
|
|
21
22
|
messages: {
|
|
22
23
|
user: any[];
|
|
23
24
|
all: any[];
|
|
24
25
|
nonUser: any[];
|
|
25
26
|
};
|
|
26
|
-
messageId: string;
|
|
27
27
|
output?: any;
|
|
28
28
|
metadata?: any;
|
|
29
29
|
stepResult?: any;
|
|
30
30
|
}, {
|
|
31
|
+
messageId: string;
|
|
31
32
|
messages: {
|
|
32
33
|
user: any[];
|
|
33
34
|
all: any[];
|
|
34
35
|
nonUser: any[];
|
|
35
36
|
};
|
|
36
|
-
messageId: string;
|
|
37
37
|
output?: any;
|
|
38
38
|
metadata?: any;
|
|
39
39
|
stepResult?: any;
|
|
@@ -48,17 +48,17 @@ export declare const toolCallInputSchema: z.ZodObject<{
|
|
|
48
48
|
}, "strip", z.ZodTypeAny, {
|
|
49
49
|
toolCallId: string;
|
|
50
50
|
toolName: string;
|
|
51
|
-
output?: any;
|
|
52
|
-
args?: any;
|
|
53
51
|
providerMetadata?: any;
|
|
54
52
|
providerExecuted?: boolean | undefined;
|
|
53
|
+
output?: any;
|
|
54
|
+
args?: any;
|
|
55
55
|
}, {
|
|
56
56
|
toolCallId: string;
|
|
57
57
|
toolName: string;
|
|
58
|
-
output?: any;
|
|
59
|
-
args?: any;
|
|
60
58
|
providerMetadata?: any;
|
|
61
59
|
providerExecuted?: boolean | undefined;
|
|
60
|
+
output?: any;
|
|
61
|
+
args?: any;
|
|
62
62
|
}>;
|
|
63
63
|
export declare const toolCallOutputSchema: z.ZodObject<{
|
|
64
64
|
toolCallId: z.ZodString;
|
|
@@ -74,19 +74,19 @@ export declare const toolCallOutputSchema: z.ZodObject<{
|
|
|
74
74
|
toolCallId: string;
|
|
75
75
|
toolName: string;
|
|
76
76
|
error?: any;
|
|
77
|
-
result?: any;
|
|
78
|
-
output?: any;
|
|
79
|
-
args?: any;
|
|
80
77
|
providerMetadata?: any;
|
|
81
78
|
providerExecuted?: boolean | undefined;
|
|
79
|
+
output?: any;
|
|
80
|
+
args?: any;
|
|
81
|
+
result?: any;
|
|
82
82
|
}, {
|
|
83
83
|
toolCallId: string;
|
|
84
84
|
toolName: string;
|
|
85
85
|
error?: any;
|
|
86
|
-
result?: any;
|
|
87
|
-
output?: any;
|
|
88
|
-
args?: any;
|
|
89
86
|
providerMetadata?: any;
|
|
90
87
|
providerExecuted?: boolean | undefined;
|
|
88
|
+
output?: any;
|
|
89
|
+
args?: any;
|
|
90
|
+
result?: any;
|
|
91
91
|
}>;
|
|
92
92
|
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../../src/loop/workflow/stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAErC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAGpD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAIxC,wBAAgB,kBAAkB,CAChC,KAAK,SAAS,OAAO,GAAG,OAAO,EAC/B,MAAM,SAAS,YAAY,GAAG,SAAS,GAAG,SAAS,EACnD,EACA,kBAAkB,EAClB,KAAK,EACL,UAAU,EACV,aAAa,EACb,SAAS,EACT,eAAe,EACf,SAAS,EACT,GAAG,IAAI,EACR,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../../src/loop/workflow/stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAErC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAGpD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAIxC,wBAAgB,kBAAkB,CAChC,KAAK,SAAS,OAAO,GAAG,OAAO,EAC/B,MAAM,SAAS,YAAY,GAAG,SAAS,GAAG,SAAS,EACnD,EACA,kBAAkB,EAClB,KAAK,EACL,UAAU,EACV,aAAa,EACb,SAAS,EACT,eAAe,EACf,SAAS,EACT,GAAG,IAAI,EACR,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,6BAqKxB"}
|
|
@@ -11,17 +11,17 @@ export declare function createToolCallStep<Tools extends ToolSet = ToolSet, OUTP
|
|
|
11
11
|
}, "strip", import("zod").ZodTypeAny, {
|
|
12
12
|
toolCallId: string;
|
|
13
13
|
toolName: string;
|
|
14
|
-
output?: any;
|
|
15
|
-
args?: any;
|
|
16
14
|
providerMetadata?: any;
|
|
17
15
|
providerExecuted?: boolean | undefined;
|
|
16
|
+
output?: any;
|
|
17
|
+
args?: any;
|
|
18
18
|
}, {
|
|
19
19
|
toolCallId: string;
|
|
20
20
|
toolName: string;
|
|
21
|
-
output?: any;
|
|
22
|
-
args?: any;
|
|
23
21
|
providerMetadata?: any;
|
|
24
22
|
providerExecuted?: boolean | undefined;
|
|
23
|
+
output?: any;
|
|
24
|
+
args?: any;
|
|
25
25
|
}>, import("zod").ZodObject<{
|
|
26
26
|
toolCallId: import("zod").ZodString;
|
|
27
27
|
toolName: import("zod").ZodString;
|
|
@@ -36,19 +36,19 @@ export declare function createToolCallStep<Tools extends ToolSet = ToolSet, OUTP
|
|
|
36
36
|
toolCallId: string;
|
|
37
37
|
toolName: string;
|
|
38
38
|
error?: any;
|
|
39
|
-
result?: any;
|
|
40
|
-
output?: any;
|
|
41
|
-
args?: any;
|
|
42
39
|
providerMetadata?: any;
|
|
43
40
|
providerExecuted?: boolean | undefined;
|
|
41
|
+
output?: any;
|
|
42
|
+
args?: any;
|
|
43
|
+
result?: any;
|
|
44
44
|
}, {
|
|
45
45
|
toolCallId: string;
|
|
46
46
|
toolName: string;
|
|
47
47
|
error?: any;
|
|
48
|
-
result?: any;
|
|
49
|
-
output?: any;
|
|
50
|
-
args?: any;
|
|
51
48
|
providerMetadata?: any;
|
|
52
49
|
providerExecuted?: boolean | undefined;
|
|
50
|
+
output?: any;
|
|
51
|
+
args?: any;
|
|
52
|
+
result?: any;
|
|
53
53
|
}>, import("zod").ZodType<any, import("zod").ZodTypeDef, any>, import("zod").ZodType<any, import("zod").ZodTypeDef, any>, import("../..").DefaultEngineType>;
|
|
54
54
|
//# sourceMappingURL=tool-call-step.d.ts.map
|
package/dist/mastra/index.cjs
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkVK7LOYGD_cjs = require('../chunk-VK7LOYGD.cjs');
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
Object.defineProperty(exports, "Mastra", {
|
|
8
8
|
enumerable: true,
|
|
9
|
-
get: function () { return
|
|
9
|
+
get: function () { return chunkVK7LOYGD_cjs.Mastra; }
|
|
10
10
|
});
|
|
11
11
|
//# sourceMappingURL=index.cjs.map
|
|
12
12
|
//# sourceMappingURL=index.cjs.map
|
package/dist/mastra/index.js
CHANGED
package/dist/memory/index.cjs
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunk3CYEVZGC_cjs = require('../chunk-3CYEVZGC.cjs');
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
Object.defineProperty(exports, "MastraMemory", {
|
|
8
8
|
enumerable: true,
|
|
9
|
-
get: function () { return
|
|
9
|
+
get: function () { return chunk3CYEVZGC_cjs.MastraMemory; }
|
|
10
10
|
});
|
|
11
11
|
Object.defineProperty(exports, "MemoryProcessor", {
|
|
12
12
|
enumerable: true,
|
|
13
|
-
get: function () { return
|
|
13
|
+
get: function () { return chunk3CYEVZGC_cjs.MemoryProcessor; }
|
|
14
14
|
});
|
|
15
15
|
Object.defineProperty(exports, "memoryDefaultOptions", {
|
|
16
16
|
enumerable: true,
|
|
17
|
-
get: function () { return
|
|
17
|
+
get: function () { return chunk3CYEVZGC_cjs.memoryDefaultOptions; }
|
|
18
18
|
});
|
|
19
19
|
//# sourceMappingURL=index.cjs.map
|
|
20
20
|
//# sourceMappingURL=index.cjs.map
|
package/dist/memory/index.js
CHANGED
package/dist/network/index.cjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var chunkABRPHTOG_cjs = require('../chunk-ABRPHTOG.cjs');
|
|
3
|
+
var chunkCM4UEIAB_cjs = require('../chunk-CM4UEIAB.cjs');
|
|
5
4
|
var chunkC73WLCY3_cjs = require('../chunk-C73WLCY3.cjs');
|
|
5
|
+
var chunkABRPHTOG_cjs = require('../chunk-ABRPHTOG.cjs');
|
|
6
6
|
var chunkKXCUCBEI_cjs = require('../chunk-KXCUCBEI.cjs');
|
|
7
7
|
var chunkV5WKCX3G_cjs = require('../chunk-V5WKCX3G.cjs');
|
|
8
8
|
var zod = require('zod');
|
|
@@ -15,10 +15,13 @@ var AgentNetwork = class extends chunkKXCUCBEI_cjs.MastraBase {
|
|
|
15
15
|
#agentHistory = {};
|
|
16
16
|
constructor(config) {
|
|
17
17
|
super({ component: chunkV5WKCX3G_cjs.RegisteredLogger.NETWORK, name: config.name || "AgentNetwork" });
|
|
18
|
+
console.warn(
|
|
19
|
+
`\u26A0\uFE0F DEPRECATION WARNING: AgentNetwork will be deprecated on September 16th, 2025 and will be removed in a future version. Please use agent.network() instead.`
|
|
20
|
+
);
|
|
18
21
|
this.#instructions = config.instructions;
|
|
19
22
|
this.#agents = config.agents;
|
|
20
23
|
this.#model = config.model;
|
|
21
|
-
this.#routingAgent = new
|
|
24
|
+
this.#routingAgent = new chunkCM4UEIAB_cjs.Agent({
|
|
22
25
|
name: config.name,
|
|
23
26
|
instructions: this.getInstructions(),
|
|
24
27
|
model: this.#model,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/network/network.ts"],"names":["MastraBase","RegisteredLogger","Agent","createTool","z","agent","MastraError"],"mappings":"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","file":"index.cjs","sourcesContent":["import type {\n CoreMessage,\n GenerateObjectResult,\n GenerateTextResult,\n LanguageModelV1,\n StreamObjectResult,\n StreamTextResult,\n} from 'ai';\nimport type { JSONSchema7 } from 'json-schema';\nimport { z } from 'zod';\nimport type { ZodSchema } from 'zod';\n\nimport { Agent } from '../agent';\nimport type { AgentGenerateOptions, AgentStreamOptions } from '../agent';\nimport type { MessageListInput } from '../agent/message-list';\nimport { MastraBase } from '../base';\nimport { MastraError, ErrorDomain, ErrorCategory } from '../error';\n\nimport type { GenerateReturn } from '../llm/model/base.types';\nimport { RegisteredLogger } from '../logger';\nimport type { Mastra } from '../mastra';\nimport type { RuntimeContext } from '../runtime-context';\nimport { createTool } from '../tools';\nimport type { ToolAction } from '../tools';\nimport type { AgentNetworkConfig } from './types';\n\nexport class AgentNetwork extends MastraBase {\n #instructions: string;\n #agents: Agent[];\n #model: LanguageModelV1;\n #routingAgent: Agent;\n #agentHistory: Record<\n string,\n Array<{\n input: string;\n output: string;\n timestamp: string;\n }>\n > = {};\n\n constructor(config: AgentNetworkConfig) {\n super({ component: RegisteredLogger.NETWORK, name: config.name || 'AgentNetwork' });\n\n this.#instructions = config.instructions;\n this.#agents = config.agents;\n this.#model = config.model;\n\n this.#routingAgent = new Agent({\n name: config.name,\n instructions: this.getInstructions(),\n model: this.#model,\n tools: this.getTools() as Record<string, ToolAction>,\n });\n }\n\n formatAgentId(name: string) {\n return name.replace(/[^a-zA-Z0-9_-]/g, '_');\n }\n\n getTools() {\n return {\n transmit: createTool({\n id: 'transmit',\n description: 'Call one or more specialized agents to handle specific tasks',\n inputSchema: z.object({\n actions: z.array(\n z.object({\n agent: z.string().describe('The name of the agent to call'),\n input: z.string().describe('The input to pass to the agent'),\n includeHistory: z\n .boolean()\n .optional()\n .describe('Whether to include previous agent outputs in the context'),\n }),\n ),\n }),\n execute: async ({ context, runtimeContext }) => {\n try {\n // Extract the actions from the context\n const actions = context.actions;\n\n this.logger.debug(`Executing ${actions.length} specialized agents`);\n\n // Execute each agent in parallel and collect results\n const results = await Promise.all(\n actions.map(action =>\n this.executeAgent(\n action.agent,\n [{ role: 'user', content: action.input }],\n action.includeHistory,\n runtimeContext,\n ),\n ),\n );\n\n this.logger.debug('Results:', { results });\n\n // Store the results in the agent history for future reference\n actions.forEach((action, index) => {\n this.#addToAgentHistory(action.agent, {\n input: action.input,\n output: results[index] || '', // Ensure output is always a string\n });\n });\n\n // Format the results with agent names for clarity\n return actions.map((action, index) => `[${action.agent}]: ${results[index]}`).join('\\n\\n');\n } catch (err) {\n // Properly type the error\n const error = err as Error;\n this.logger.error('Error in transmit tool:', { error });\n return `Error executing agents: ${error.message}`;\n }\n },\n }),\n } as const;\n }\n\n #addToAgentHistory(agentId: string, interaction: { input: string; output: string }) {\n if (!this.#agentHistory[agentId]) {\n this.#agentHistory[agentId] = [];\n }\n // Add timestamp to the interaction\n this.#agentHistory[agentId].push({\n ...interaction,\n timestamp: new Date().toISOString(),\n });\n }\n\n getAgentHistory(agentId: string) {\n return this.#agentHistory[agentId] || [];\n }\n\n #clearNetworkHistoryBeforeRun() {\n this.#agentHistory = {};\n }\n\n /**\n * Get the history of all agent interactions that have occurred in this network\n * @returns A record of agent interactions, keyed by agent ID\n */\n getAgentInteractionHistory() {\n return { ...this.#agentHistory };\n }\n\n /**\n * Get a summary of agent interactions in a more readable format, displayed chronologically\n * @returns A formatted string with all agent interactions in chronological order\n */\n getAgentInteractionSummary() {\n const history = this.#agentHistory;\n const agentIds = Object.keys(history);\n\n if (agentIds.length === 0) {\n return 'No agent interactions have occurred yet.';\n }\n\n // Collect all interactions with their agent IDs\n const allInteractions: Array<{\n agentId: string;\n interaction: { input: string; output: string; timestamp: string };\n index: number;\n // We'll use a global sequence number to track the true chronological order\n sequence: number;\n }> = [];\n\n // Track the global sequence of interactions\n let globalSequence = 0;\n\n // Gather all interactions with their source agent\n agentIds.forEach(agentId => {\n const interactions = history[agentId] || [];\n interactions.forEach((interaction, index) => {\n allInteractions.push({\n agentId,\n interaction,\n index,\n // Assign a sequence number based on when it was added to the history\n sequence: globalSequence++,\n });\n });\n });\n\n // Sort by timestamp for true chronological order\n allInteractions.sort((a, b) => {\n // Compare timestamps if available\n if (a.interaction.timestamp && b.interaction.timestamp) {\n return new Date(a.interaction.timestamp).getTime() - new Date(b.interaction.timestamp).getTime();\n }\n // Fall back to sequence number if timestamps aren't available\n return a.sequence - b.sequence;\n });\n\n // Format the chronological summary\n if (allInteractions.length === 0) {\n return 'No agent interactions have occurred yet.';\n }\n\n return (\n '# Chronological Agent Interactions\\n\\n' +\n allInteractions\n .map(\n (item, i) =>\n `## Step ${i + 1}: Agent ${item.agentId} at ${item.interaction.timestamp}\\n` +\n `**Input:** ${item.interaction.input.substring(0, 100)}${item.interaction.input.length > 100 ? '...' : ''}\\n\\n` +\n `**Output:** ${item.interaction.output.substring(0, 100)}${item.interaction.output.length > 100 ? '...' : ''}`,\n )\n .join('\\n\\n')\n );\n }\n\n async executeAgent(agentId: string, input: CoreMessage[], includeHistory = false, runtimeContext?: RuntimeContext) {\n try {\n // Find the agent by its formatted ID\n const agent = this.#agents.find(agent => this.formatAgentId(agent.name) === agentId);\n\n if (!agent) {\n const error = new MastraError({\n id: 'AGENT_NETWORK_EXECUTE_UNKNOWN_AGENT',\n domain: ErrorDomain.AGENT_NETWORK,\n category: ErrorCategory.USER,\n text: `Agent \"${agentId}\" not found.`,\n });\n this.logger.trackException?.(error);\n throw error;\n }\n\n // If requested, include relevant history from other agents\n let messagesWithContext = [...input];\n\n if (includeHistory) {\n // Get all agent histories\n const allHistory = Object.entries(this.#agentHistory);\n\n if (allHistory.length > 0) {\n // Add a system message with the context from other agents\n const contextMessage = {\n role: 'system' as const,\n content: `Previous agent interactions:\\n\\n${allHistory\n .map(([agentName, interactions]) => {\n return `## ${agentName}\\n${interactions\n .map(\n (interaction, i) =>\n `Interaction ${i + 1} (${interaction.timestamp || 'No timestamp'}):\\n- Input: ${interaction.input}\\n- Output: ${interaction.output}`,\n )\n .join('\\n\\n')}`;\n })\n .join('\\n\\n')}`,\n };\n\n // Add the context message before the user input\n messagesWithContext = [contextMessage, ...messagesWithContext];\n }\n }\n\n // Generate a response from the agent\n const result = await agent.generate(messagesWithContext, { runtimeContext });\n\n return result.text;\n } catch (err) {\n // Properly type the error\n const error = err as Error;\n this.logger.error(`Error executing agent \"${agentId}\":`, { error });\n return `Unable to execute agent \"${agentId}\": ${error.message}`;\n }\n }\n\n getInstructions() {\n // Create a formatted list of available agents with their names\n const agentList = this.#agents\n .map(agent => {\n const id = this.formatAgentId(agent.name);\n // Use agent name instead of description since description might not exist\n return ` - **${id}**: ${agent.name}`;\n })\n .join('\\n');\n\n return `\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 ## System Instructions\n ${this.#instructions}\n \n ## Available Specialized Agents\n You can call these agents using the \"transmit\" tool:\n ${agentList}\n \n ## How to Use the \"transmit\" Tool\n \n The \"transmit\" tool allows you to call one or more specialized agents.\n \n ### Single Agent Call\n To call a single agent, use this format:\n \\`\\`\\`json\n {\n \"actions\": [\n {\n \"agent\": \"agent_name\",\n \"input\": \"detailed instructions for the agent\"\n }\n ]\n }\n \\`\\`\\`\n \n ### Multiple Parallel Agent Calls\n To call multiple agents in parallel, use this format:\n \\`\\`\\`json\n {\n \"actions\": [\n {\n \"agent\": \"first_agent_name\",\n \"input\": \"detailed instructions for the first agent\"\n },\n {\n \"agent\": \"second_agent_name\",\n \"input\": \"detailed instructions for the second agent\"\n }\n ]\n }\n \\`\\`\\`\n \n ## Context Sharing\n \n When calling an agent, you can choose to include the output from previous agents in the context.\n This allows the agent to take into account the results from previous steps.\n \n To include context, add the \"includeHistory\" field to the action and set it to true:\n \\`\\`\\`json\n {\n \"actions\": [\n {\n \"agent\": \"agent_name\",\n \"input\": \"detailed instructions for the agent\",\n \"includeHistory\": true\n }\n ]\n }\n \\`\\`\\`\n \n ## Best Practices\n 1. Break down complex tasks into smaller steps\n 2. Choose the most appropriate agent for each step\n 3. Provide clear, detailed instructions to each agent\n 4. Synthesize the results from multiple agents when needed\n 5. Provide a final summary or answer to the user\n \n ## Workflow\n 1. Analyze the user's request\n 2. Identify which specialized agent(s) can help\n 3. Call the appropriate agent(s) using the transmit tool\n 4. Review the agent's response\n 5. Either call more agents or provide a final answer\n `;\n }\n\n getRoutingAgent() {\n return this.#routingAgent;\n }\n\n getAgents() {\n return this.#agents;\n }\n\n async generate(\n messages: MessageListInput,\n args?: AgentGenerateOptions<undefined, undefined> & { output?: never; experimental_output?: never },\n ): Promise<GenerateTextResult<any, undefined>>;\n async generate<OUTPUT extends ZodSchema | JSONSchema7>(\n messages: MessageListInput,\n args?: AgentGenerateOptions<OUTPUT, undefined> & { output?: OUTPUT; experimental_output?: never },\n ): Promise<GenerateObjectResult<OUTPUT>>;\n async generate<EXPERIMENTAL_OUTPUT extends ZodSchema | JSONSchema7>(\n messages: MessageListInput,\n args?: AgentGenerateOptions<undefined, EXPERIMENTAL_OUTPUT> & {\n output?: never;\n experimental_output?: EXPERIMENTAL_OUTPUT;\n },\n ): Promise<GenerateTextResult<any, EXPERIMENTAL_OUTPUT>>;\n async generate<\n OUTPUT extends ZodSchema | JSONSchema7 | undefined = undefined,\n EXPERIMENTAL_OUTPUT extends ZodSchema | JSONSchema7 | undefined = undefined,\n >(\n messages: MessageListInput,\n args?: AgentGenerateOptions<OUTPUT, EXPERIMENTAL_OUTPUT>,\n ): Promise<GenerateReturn<any, OUTPUT, EXPERIMENTAL_OUTPUT>> {\n this.#clearNetworkHistoryBeforeRun();\n this.logger.debug(`AgentNetwork: Starting generation with ${this.#agents.length} available agents`);\n\n const ops = {\n maxSteps: this.#agents?.length * 10, // Default to 10 steps per agent\n ...args,\n };\n\n // Log the start of the routing process\n this.logger.debug(`AgentNetwork: Routing with max steps: ${ops.maxSteps}`);\n\n // Generate a response using the routing agent\n const result = await this.#routingAgent.generate(\n messages,\n ops as AgentGenerateOptions<OUTPUT, EXPERIMENTAL_OUTPUT> & { output?: never; experimental_output?: never },\n );\n\n // Log completion\n this.logger.debug(`AgentNetwork: Generation complete with ${result.steps?.length || 0} steps`);\n\n return result as unknown as GenerateReturn<any, OUTPUT, EXPERIMENTAL_OUTPUT>;\n }\n\n async stream<\n OUTPUT extends ZodSchema | JSONSchema7 | undefined = undefined,\n EXPERIMENTAL_OUTPUT extends ZodSchema | JSONSchema7 | undefined = undefined,\n >(\n messages: MessageListInput,\n args?: AgentStreamOptions<OUTPUT, EXPERIMENTAL_OUTPUT> & { output?: never; experimental_output?: never },\n ): Promise<StreamTextResult<any, OUTPUT extends ZodSchema ? z.infer<OUTPUT> : unknown>>;\n async stream<\n OUTPUT extends ZodSchema | JSONSchema7 | undefined = undefined,\n EXPERIMENTAL_OUTPUT extends ZodSchema | JSONSchema7 | undefined = undefined,\n >(\n messages: MessageListInput,\n args?: AgentStreamOptions<OUTPUT, EXPERIMENTAL_OUTPUT> & { output?: OUTPUT; experimental_output?: never },\n ): Promise<StreamObjectResult<any, OUTPUT extends ZodSchema ? z.infer<OUTPUT> : unknown, any>>;\n async stream<\n OUTPUT extends ZodSchema | JSONSchema7 | undefined = undefined,\n EXPERIMENTAL_OUTPUT extends ZodSchema | JSONSchema7 | undefined = undefined,\n >(\n messages: MessageListInput,\n args?: AgentStreamOptions<OUTPUT, EXPERIMENTAL_OUTPUT> & {\n output?: never;\n experimental_output?: EXPERIMENTAL_OUTPUT;\n },\n ): Promise<\n StreamTextResult<any, OUTPUT extends ZodSchema ? z.infer<OUTPUT> : unknown> & {\n partialObjectStream: StreamTextResult<\n any,\n OUTPUT extends ZodSchema\n ? z.infer<OUTPUT>\n : EXPERIMENTAL_OUTPUT extends ZodSchema\n ? z.infer<EXPERIMENTAL_OUTPUT>\n : unknown\n >['experimental_partialOutputStream'];\n }\n >;\n async stream<\n OUTPUT extends ZodSchema | JSONSchema7 | undefined = undefined,\n EXPERIMENTAL_OUTPUT extends ZodSchema | JSONSchema7 | undefined = undefined,\n >(\n messages: MessageListInput,\n args?: AgentStreamOptions<OUTPUT, EXPERIMENTAL_OUTPUT>,\n ): Promise<\n | StreamTextResult<any, OUTPUT extends ZodSchema ? z.infer<OUTPUT> : unknown>\n | StreamObjectResult<any, OUTPUT extends ZodSchema ? z.infer<OUTPUT> : unknown, any>\n > {\n this.#clearNetworkHistoryBeforeRun();\n this.logger.debug(`AgentNetwork: Starting generation with ${this.#agents.length} available agents`);\n\n const ops: AgentStreamOptions<OUTPUT, EXPERIMENTAL_OUTPUT> = {\n maxSteps: this.#agents?.length * 10, // Default to 10 steps per agent\n ...args,\n };\n\n // Log the start of the routing process\n this.logger.debug(`AgentNetwork: Routing with max steps: ${ops.maxSteps}`);\n\n // Generate a response using the routing agent\n const result = await this.#routingAgent.stream(\n messages,\n ops as AgentStreamOptions<OUTPUT, EXPERIMENTAL_OUTPUT> & { output?: never; experimental_output?: never },\n );\n\n return result as unknown as\n | StreamTextResult<any, OUTPUT extends ZodSchema ? z.infer<OUTPUT> : unknown>\n | StreamObjectResult<any, OUTPUT extends ZodSchema ? z.infer<OUTPUT> : unknown, any>;\n }\n\n __registerMastra(p: Mastra) {\n this.__setLogger(p.getLogger());\n this.#routingAgent.__registerMastra(p);\n // Register primitives for each agent in the network\n for (const agent of this.#agents) {\n if (typeof agent.__registerMastra === 'function') {\n agent.__registerMastra(p);\n }\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/network/network.ts"],"names":["MastraBase","RegisteredLogger","Agent","createTool","z","agent","MastraError"],"mappings":"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","file":"index.cjs","sourcesContent":["import type {\n CoreMessage,\n GenerateObjectResult,\n GenerateTextResult,\n LanguageModelV1,\n StreamObjectResult,\n StreamTextResult,\n} from 'ai';\nimport type { JSONSchema7 } from 'json-schema';\nimport { z } from 'zod';\nimport type { ZodSchema } from 'zod';\n\nimport { Agent } from '../agent';\nimport type { AgentGenerateOptions, AgentStreamOptions } from '../agent';\nimport type { MessageListInput } from '../agent/message-list';\nimport { MastraBase } from '../base';\nimport { MastraError, ErrorDomain, ErrorCategory } from '../error';\n\nimport type { GenerateReturn } from '../llm/model/base.types';\nimport { RegisteredLogger } from '../logger';\nimport type { Mastra } from '../mastra';\nimport type { RuntimeContext } from '../runtime-context';\nimport { createTool } from '../tools';\nimport type { ToolAction } from '../tools';\nimport type { AgentNetworkConfig } from './types';\n\nexport class AgentNetwork extends MastraBase {\n #instructions: string;\n #agents: Agent[];\n #model: LanguageModelV1;\n #routingAgent: Agent;\n #agentHistory: Record<\n string,\n Array<{\n input: string;\n output: string;\n timestamp: string;\n }>\n > = {};\n\n constructor(config: AgentNetworkConfig) {\n super({ component: RegisteredLogger.NETWORK, name: config.name || 'AgentNetwork' });\n\n console.warn(\n `⚠️ DEPRECATION WARNING: AgentNetwork will be deprecated on September 16th, 2025 and will be removed in a future version. Please use agent.network() instead.`,\n );\n\n this.#instructions = config.instructions;\n this.#agents = config.agents;\n this.#model = config.model;\n\n this.#routingAgent = new Agent({\n name: config.name,\n instructions: this.getInstructions(),\n model: this.#model,\n tools: this.getTools() as Record<string, ToolAction>,\n });\n }\n\n formatAgentId(name: string) {\n return name.replace(/[^a-zA-Z0-9_-]/g, '_');\n }\n\n getTools() {\n return {\n transmit: createTool({\n id: 'transmit',\n description: 'Call one or more specialized agents to handle specific tasks',\n inputSchema: z.object({\n actions: z.array(\n z.object({\n agent: z.string().describe('The name of the agent to call'),\n input: z.string().describe('The input to pass to the agent'),\n includeHistory: z\n .boolean()\n .optional()\n .describe('Whether to include previous agent outputs in the context'),\n }),\n ),\n }),\n execute: async ({ context, runtimeContext }) => {\n try {\n // Extract the actions from the context\n const actions = context.actions;\n\n this.logger.debug(`Executing ${actions.length} specialized agents`);\n\n // Execute each agent in parallel and collect results\n const results = await Promise.all(\n actions.map(action =>\n this.executeAgent(\n action.agent,\n [{ role: 'user', content: action.input }],\n action.includeHistory,\n runtimeContext,\n ),\n ),\n );\n\n this.logger.debug('Results:', { results });\n\n // Store the results in the agent history for future reference\n actions.forEach((action, index) => {\n this.#addToAgentHistory(action.agent, {\n input: action.input,\n output: results[index] || '', // Ensure output is always a string\n });\n });\n\n // Format the results with agent names for clarity\n return actions.map((action, index) => `[${action.agent}]: ${results[index]}`).join('\\n\\n');\n } catch (err) {\n // Properly type the error\n const error = err as Error;\n this.logger.error('Error in transmit tool:', { error });\n return `Error executing agents: ${error.message}`;\n }\n },\n }),\n } as const;\n }\n\n #addToAgentHistory(agentId: string, interaction: { input: string; output: string }) {\n if (!this.#agentHistory[agentId]) {\n this.#agentHistory[agentId] = [];\n }\n // Add timestamp to the interaction\n this.#agentHistory[agentId].push({\n ...interaction,\n timestamp: new Date().toISOString(),\n });\n }\n\n getAgentHistory(agentId: string) {\n return this.#agentHistory[agentId] || [];\n }\n\n #clearNetworkHistoryBeforeRun() {\n this.#agentHistory = {};\n }\n\n /**\n * Get the history of all agent interactions that have occurred in this network\n * @returns A record of agent interactions, keyed by agent ID\n */\n getAgentInteractionHistory() {\n return { ...this.#agentHistory };\n }\n\n /**\n * Get a summary of agent interactions in a more readable format, displayed chronologically\n * @returns A formatted string with all agent interactions in chronological order\n */\n getAgentInteractionSummary() {\n const history = this.#agentHistory;\n const agentIds = Object.keys(history);\n\n if (agentIds.length === 0) {\n return 'No agent interactions have occurred yet.';\n }\n\n // Collect all interactions with their agent IDs\n const allInteractions: Array<{\n agentId: string;\n interaction: { input: string; output: string; timestamp: string };\n index: number;\n // We'll use a global sequence number to track the true chronological order\n sequence: number;\n }> = [];\n\n // Track the global sequence of interactions\n let globalSequence = 0;\n\n // Gather all interactions with their source agent\n agentIds.forEach(agentId => {\n const interactions = history[agentId] || [];\n interactions.forEach((interaction, index) => {\n allInteractions.push({\n agentId,\n interaction,\n index,\n // Assign a sequence number based on when it was added to the history\n sequence: globalSequence++,\n });\n });\n });\n\n // Sort by timestamp for true chronological order\n allInteractions.sort((a, b) => {\n // Compare timestamps if available\n if (a.interaction.timestamp && b.interaction.timestamp) {\n return new Date(a.interaction.timestamp).getTime() - new Date(b.interaction.timestamp).getTime();\n }\n // Fall back to sequence number if timestamps aren't available\n return a.sequence - b.sequence;\n });\n\n // Format the chronological summary\n if (allInteractions.length === 0) {\n return 'No agent interactions have occurred yet.';\n }\n\n return (\n '# Chronological Agent Interactions\\n\\n' +\n allInteractions\n .map(\n (item, i) =>\n `## Step ${i + 1}: Agent ${item.agentId} at ${item.interaction.timestamp}\\n` +\n `**Input:** ${item.interaction.input.substring(0, 100)}${item.interaction.input.length > 100 ? '...' : ''}\\n\\n` +\n `**Output:** ${item.interaction.output.substring(0, 100)}${item.interaction.output.length > 100 ? '...' : ''}`,\n )\n .join('\\n\\n')\n );\n }\n\n async executeAgent(agentId: string, input: CoreMessage[], includeHistory = false, runtimeContext?: RuntimeContext) {\n try {\n // Find the agent by its formatted ID\n const agent = this.#agents.find(agent => this.formatAgentId(agent.name) === agentId);\n\n if (!agent) {\n const error = new MastraError({\n id: 'AGENT_NETWORK_EXECUTE_UNKNOWN_AGENT',\n domain: ErrorDomain.AGENT_NETWORK,\n category: ErrorCategory.USER,\n text: `Agent \"${agentId}\" not found.`,\n });\n this.logger.trackException?.(error);\n throw error;\n }\n\n // If requested, include relevant history from other agents\n let messagesWithContext = [...input];\n\n if (includeHistory) {\n // Get all agent histories\n const allHistory = Object.entries(this.#agentHistory);\n\n if (allHistory.length > 0) {\n // Add a system message with the context from other agents\n const contextMessage = {\n role: 'system' as const,\n content: `Previous agent interactions:\\n\\n${allHistory\n .map(([agentName, interactions]) => {\n return `## ${agentName}\\n${interactions\n .map(\n (interaction, i) =>\n `Interaction ${i + 1} (${interaction.timestamp || 'No timestamp'}):\\n- Input: ${interaction.input}\\n- Output: ${interaction.output}`,\n )\n .join('\\n\\n')}`;\n })\n .join('\\n\\n')}`,\n };\n\n // Add the context message before the user input\n messagesWithContext = [contextMessage, ...messagesWithContext];\n }\n }\n\n // Generate a response from the agent\n const result = await agent.generate(messagesWithContext, { runtimeContext });\n\n return result.text;\n } catch (err) {\n // Properly type the error\n const error = err as Error;\n this.logger.error(`Error executing agent \"${agentId}\":`, { error });\n return `Unable to execute agent \"${agentId}\": ${error.message}`;\n }\n }\n\n getInstructions() {\n // Create a formatted list of available agents with their names\n const agentList = this.#agents\n .map(agent => {\n const id = this.formatAgentId(agent.name);\n // Use agent name instead of description since description might not exist\n return ` - **${id}**: ${agent.name}`;\n })\n .join('\\n');\n\n return `\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 ## System Instructions\n ${this.#instructions}\n \n ## Available Specialized Agents\n You can call these agents using the \"transmit\" tool:\n ${agentList}\n \n ## How to Use the \"transmit\" Tool\n \n The \"transmit\" tool allows you to call one or more specialized agents.\n \n ### Single Agent Call\n To call a single agent, use this format:\n \\`\\`\\`json\n {\n \"actions\": [\n {\n \"agent\": \"agent_name\",\n \"input\": \"detailed instructions for the agent\"\n }\n ]\n }\n \\`\\`\\`\n \n ### Multiple Parallel Agent Calls\n To call multiple agents in parallel, use this format:\n \\`\\`\\`json\n {\n \"actions\": [\n {\n \"agent\": \"first_agent_name\",\n \"input\": \"detailed instructions for the first agent\"\n },\n {\n \"agent\": \"second_agent_name\",\n \"input\": \"detailed instructions for the second agent\"\n }\n ]\n }\n \\`\\`\\`\n \n ## Context Sharing\n \n When calling an agent, you can choose to include the output from previous agents in the context.\n This allows the agent to take into account the results from previous steps.\n \n To include context, add the \"includeHistory\" field to the action and set it to true:\n \\`\\`\\`json\n {\n \"actions\": [\n {\n \"agent\": \"agent_name\",\n \"input\": \"detailed instructions for the agent\",\n \"includeHistory\": true\n }\n ]\n }\n \\`\\`\\`\n \n ## Best Practices\n 1. Break down complex tasks into smaller steps\n 2. Choose the most appropriate agent for each step\n 3. Provide clear, detailed instructions to each agent\n 4. Synthesize the results from multiple agents when needed\n 5. Provide a final summary or answer to the user\n \n ## Workflow\n 1. Analyze the user's request\n 2. Identify which specialized agent(s) can help\n 3. Call the appropriate agent(s) using the transmit tool\n 4. Review the agent's response\n 5. Either call more agents or provide a final answer\n `;\n }\n\n getRoutingAgent() {\n return this.#routingAgent;\n }\n\n getAgents() {\n return this.#agents;\n }\n\n async generate(\n messages: MessageListInput,\n args?: AgentGenerateOptions<undefined, undefined> & { output?: never; experimental_output?: never },\n ): Promise<GenerateTextResult<any, undefined>>;\n async generate<OUTPUT extends ZodSchema | JSONSchema7>(\n messages: MessageListInput,\n args?: AgentGenerateOptions<OUTPUT, undefined> & { output?: OUTPUT; experimental_output?: never },\n ): Promise<GenerateObjectResult<OUTPUT>>;\n async generate<EXPERIMENTAL_OUTPUT extends ZodSchema | JSONSchema7>(\n messages: MessageListInput,\n args?: AgentGenerateOptions<undefined, EXPERIMENTAL_OUTPUT> & {\n output?: never;\n experimental_output?: EXPERIMENTAL_OUTPUT;\n },\n ): Promise<GenerateTextResult<any, EXPERIMENTAL_OUTPUT>>;\n async generate<\n OUTPUT extends ZodSchema | JSONSchema7 | undefined = undefined,\n EXPERIMENTAL_OUTPUT extends ZodSchema | JSONSchema7 | undefined = undefined,\n >(\n messages: MessageListInput,\n args?: AgentGenerateOptions<OUTPUT, EXPERIMENTAL_OUTPUT>,\n ): Promise<GenerateReturn<any, OUTPUT, EXPERIMENTAL_OUTPUT>> {\n this.#clearNetworkHistoryBeforeRun();\n this.logger.debug(`AgentNetwork: Starting generation with ${this.#agents.length} available agents`);\n\n const ops = {\n maxSteps: this.#agents?.length * 10, // Default to 10 steps per agent\n ...args,\n };\n\n // Log the start of the routing process\n this.logger.debug(`AgentNetwork: Routing with max steps: ${ops.maxSteps}`);\n\n // Generate a response using the routing agent\n const result = await this.#routingAgent.generate(\n messages,\n ops as AgentGenerateOptions<OUTPUT, EXPERIMENTAL_OUTPUT> & { output?: never; experimental_output?: never },\n );\n\n // Log completion\n this.logger.debug(`AgentNetwork: Generation complete with ${result.steps?.length || 0} steps`);\n\n return result as unknown as GenerateReturn<any, OUTPUT, EXPERIMENTAL_OUTPUT>;\n }\n\n async stream<\n OUTPUT extends ZodSchema | JSONSchema7 | undefined = undefined,\n EXPERIMENTAL_OUTPUT extends ZodSchema | JSONSchema7 | undefined = undefined,\n >(\n messages: MessageListInput,\n args?: AgentStreamOptions<OUTPUT, EXPERIMENTAL_OUTPUT> & { output?: never; experimental_output?: never },\n ): Promise<StreamTextResult<any, OUTPUT extends ZodSchema ? z.infer<OUTPUT> : unknown>>;\n async stream<\n OUTPUT extends ZodSchema | JSONSchema7 | undefined = undefined,\n EXPERIMENTAL_OUTPUT extends ZodSchema | JSONSchema7 | undefined = undefined,\n >(\n messages: MessageListInput,\n args?: AgentStreamOptions<OUTPUT, EXPERIMENTAL_OUTPUT> & { output?: OUTPUT; experimental_output?: never },\n ): Promise<StreamObjectResult<any, OUTPUT extends ZodSchema ? z.infer<OUTPUT> : unknown, any>>;\n async stream<\n OUTPUT extends ZodSchema | JSONSchema7 | undefined = undefined,\n EXPERIMENTAL_OUTPUT extends ZodSchema | JSONSchema7 | undefined = undefined,\n >(\n messages: MessageListInput,\n args?: AgentStreamOptions<OUTPUT, EXPERIMENTAL_OUTPUT> & {\n output?: never;\n experimental_output?: EXPERIMENTAL_OUTPUT;\n },\n ): Promise<\n StreamTextResult<any, OUTPUT extends ZodSchema ? z.infer<OUTPUT> : unknown> & {\n partialObjectStream: StreamTextResult<\n any,\n OUTPUT extends ZodSchema\n ? z.infer<OUTPUT>\n : EXPERIMENTAL_OUTPUT extends ZodSchema\n ? z.infer<EXPERIMENTAL_OUTPUT>\n : unknown\n >['experimental_partialOutputStream'];\n }\n >;\n async stream<\n OUTPUT extends ZodSchema | JSONSchema7 | undefined = undefined,\n EXPERIMENTAL_OUTPUT extends ZodSchema | JSONSchema7 | undefined = undefined,\n >(\n messages: MessageListInput,\n args?: AgentStreamOptions<OUTPUT, EXPERIMENTAL_OUTPUT>,\n ): Promise<\n | StreamTextResult<any, OUTPUT extends ZodSchema ? z.infer<OUTPUT> : unknown>\n | StreamObjectResult<any, OUTPUT extends ZodSchema ? z.infer<OUTPUT> : unknown, any>\n > {\n this.#clearNetworkHistoryBeforeRun();\n this.logger.debug(`AgentNetwork: Starting generation with ${this.#agents.length} available agents`);\n\n const ops: AgentStreamOptions<OUTPUT, EXPERIMENTAL_OUTPUT> = {\n maxSteps: this.#agents?.length * 10, // Default to 10 steps per agent\n ...args,\n };\n\n // Log the start of the routing process\n this.logger.debug(`AgentNetwork: Routing with max steps: ${ops.maxSteps}`);\n\n // Generate a response using the routing agent\n const result = await this.#routingAgent.stream(\n messages,\n ops as AgentStreamOptions<OUTPUT, EXPERIMENTAL_OUTPUT> & { output?: never; experimental_output?: never },\n );\n\n return result as unknown as\n | StreamTextResult<any, OUTPUT extends ZodSchema ? z.infer<OUTPUT> : unknown>\n | StreamObjectResult<any, OUTPUT extends ZodSchema ? z.infer<OUTPUT> : unknown, any>;\n }\n\n __registerMastra(p: Mastra) {\n this.__setLogger(p.getLogger());\n this.#routingAgent.__registerMastra(p);\n // Register primitives for each agent in the network\n for (const agent of this.#agents) {\n if (typeof agent.__registerMastra === 'function') {\n agent.__registerMastra(p);\n }\n }\n }\n}\n"]}
|
package/dist/network/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Agent } from '../chunk-
|
|
2
|
-
import { createTool } from '../chunk-BJGHUKKM.js';
|
|
1
|
+
import { Agent } from '../chunk-HHRWDBFK.js';
|
|
3
2
|
import { MastraError } from '../chunk-MCOVMKIS.js';
|
|
3
|
+
import { createTool } from '../chunk-BJGHUKKM.js';
|
|
4
4
|
import { MastraBase } from '../chunk-6GF5M4GX.js';
|
|
5
5
|
import { RegisteredLogger } from '../chunk-X3GXU6TZ.js';
|
|
6
6
|
import { z } from 'zod';
|
|
@@ -13,6 +13,9 @@ var AgentNetwork = class extends MastraBase {
|
|
|
13
13
|
#agentHistory = {};
|
|
14
14
|
constructor(config) {
|
|
15
15
|
super({ component: RegisteredLogger.NETWORK, name: config.name || "AgentNetwork" });
|
|
16
|
+
console.warn(
|
|
17
|
+
`\u26A0\uFE0F DEPRECATION WARNING: AgentNetwork will be deprecated on September 16th, 2025 and will be removed in a future version. Please use agent.network() instead.`
|
|
18
|
+
);
|
|
16
19
|
this.#instructions = config.instructions;
|
|
17
20
|
this.#agents = config.agents;
|
|
18
21
|
this.#model = config.model;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/network/network.ts"],"names":["agent"],"mappings":"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","file":"index.js","sourcesContent":["import type {\n CoreMessage,\n GenerateObjectResult,\n GenerateTextResult,\n LanguageModelV1,\n StreamObjectResult,\n StreamTextResult,\n} from 'ai';\nimport type { JSONSchema7 } from 'json-schema';\nimport { z } from 'zod';\nimport type { ZodSchema } from 'zod';\n\nimport { Agent } from '../agent';\nimport type { AgentGenerateOptions, AgentStreamOptions } from '../agent';\nimport type { MessageListInput } from '../agent/message-list';\nimport { MastraBase } from '../base';\nimport { MastraError, ErrorDomain, ErrorCategory } from '../error';\n\nimport type { GenerateReturn } from '../llm/model/base.types';\nimport { RegisteredLogger } from '../logger';\nimport type { Mastra } from '../mastra';\nimport type { RuntimeContext } from '../runtime-context';\nimport { createTool } from '../tools';\nimport type { ToolAction } from '../tools';\nimport type { AgentNetworkConfig } from './types';\n\nexport class AgentNetwork extends MastraBase {\n #instructions: string;\n #agents: Agent[];\n #model: LanguageModelV1;\n #routingAgent: Agent;\n #agentHistory: Record<\n string,\n Array<{\n input: string;\n output: string;\n timestamp: string;\n }>\n > = {};\n\n constructor(config: AgentNetworkConfig) {\n super({ component: RegisteredLogger.NETWORK, name: config.name || 'AgentNetwork' });\n\n this.#instructions = config.instructions;\n this.#agents = config.agents;\n this.#model = config.model;\n\n this.#routingAgent = new Agent({\n name: config.name,\n instructions: this.getInstructions(),\n model: this.#model,\n tools: this.getTools() as Record<string, ToolAction>,\n });\n }\n\n formatAgentId(name: string) {\n return name.replace(/[^a-zA-Z0-9_-]/g, '_');\n }\n\n getTools() {\n return {\n transmit: createTool({\n id: 'transmit',\n description: 'Call one or more specialized agents to handle specific tasks',\n inputSchema: z.object({\n actions: z.array(\n z.object({\n agent: z.string().describe('The name of the agent to call'),\n input: z.string().describe('The input to pass to the agent'),\n includeHistory: z\n .boolean()\n .optional()\n .describe('Whether to include previous agent outputs in the context'),\n }),\n ),\n }),\n execute: async ({ context, runtimeContext }) => {\n try {\n // Extract the actions from the context\n const actions = context.actions;\n\n this.logger.debug(`Executing ${actions.length} specialized agents`);\n\n // Execute each agent in parallel and collect results\n const results = await Promise.all(\n actions.map(action =>\n this.executeAgent(\n action.agent,\n [{ role: 'user', content: action.input }],\n action.includeHistory,\n runtimeContext,\n ),\n ),\n );\n\n this.logger.debug('Results:', { results });\n\n // Store the results in the agent history for future reference\n actions.forEach((action, index) => {\n this.#addToAgentHistory(action.agent, {\n input: action.input,\n output: results[index] || '', // Ensure output is always a string\n });\n });\n\n // Format the results with agent names for clarity\n return actions.map((action, index) => `[${action.agent}]: ${results[index]}`).join('\\n\\n');\n } catch (err) {\n // Properly type the error\n const error = err as Error;\n this.logger.error('Error in transmit tool:', { error });\n return `Error executing agents: ${error.message}`;\n }\n },\n }),\n } as const;\n }\n\n #addToAgentHistory(agentId: string, interaction: { input: string; output: string }) {\n if (!this.#agentHistory[agentId]) {\n this.#agentHistory[agentId] = [];\n }\n // Add timestamp to the interaction\n this.#agentHistory[agentId].push({\n ...interaction,\n timestamp: new Date().toISOString(),\n });\n }\n\n getAgentHistory(agentId: string) {\n return this.#agentHistory[agentId] || [];\n }\n\n #clearNetworkHistoryBeforeRun() {\n this.#agentHistory = {};\n }\n\n /**\n * Get the history of all agent interactions that have occurred in this network\n * @returns A record of agent interactions, keyed by agent ID\n */\n getAgentInteractionHistory() {\n return { ...this.#agentHistory };\n }\n\n /**\n * Get a summary of agent interactions in a more readable format, displayed chronologically\n * @returns A formatted string with all agent interactions in chronological order\n */\n getAgentInteractionSummary() {\n const history = this.#agentHistory;\n const agentIds = Object.keys(history);\n\n if (agentIds.length === 0) {\n return 'No agent interactions have occurred yet.';\n }\n\n // Collect all interactions with their agent IDs\n const allInteractions: Array<{\n agentId: string;\n interaction: { input: string; output: string; timestamp: string };\n index: number;\n // We'll use a global sequence number to track the true chronological order\n sequence: number;\n }> = [];\n\n // Track the global sequence of interactions\n let globalSequence = 0;\n\n // Gather all interactions with their source agent\n agentIds.forEach(agentId => {\n const interactions = history[agentId] || [];\n interactions.forEach((interaction, index) => {\n allInteractions.push({\n agentId,\n interaction,\n index,\n // Assign a sequence number based on when it was added to the history\n sequence: globalSequence++,\n });\n });\n });\n\n // Sort by timestamp for true chronological order\n allInteractions.sort((a, b) => {\n // Compare timestamps if available\n if (a.interaction.timestamp && b.interaction.timestamp) {\n return new Date(a.interaction.timestamp).getTime() - new Date(b.interaction.timestamp).getTime();\n }\n // Fall back to sequence number if timestamps aren't available\n return a.sequence - b.sequence;\n });\n\n // Format the chronological summary\n if (allInteractions.length === 0) {\n return 'No agent interactions have occurred yet.';\n }\n\n return (\n '# Chronological Agent Interactions\\n\\n' +\n allInteractions\n .map(\n (item, i) =>\n `## Step ${i + 1}: Agent ${item.agentId} at ${item.interaction.timestamp}\\n` +\n `**Input:** ${item.interaction.input.substring(0, 100)}${item.interaction.input.length > 100 ? '...' : ''}\\n\\n` +\n `**Output:** ${item.interaction.output.substring(0, 100)}${item.interaction.output.length > 100 ? '...' : ''}`,\n )\n .join('\\n\\n')\n );\n }\n\n async executeAgent(agentId: string, input: CoreMessage[], includeHistory = false, runtimeContext?: RuntimeContext) {\n try {\n // Find the agent by its formatted ID\n const agent = this.#agents.find(agent => this.formatAgentId(agent.name) === agentId);\n\n if (!agent) {\n const error = new MastraError({\n id: 'AGENT_NETWORK_EXECUTE_UNKNOWN_AGENT',\n domain: ErrorDomain.AGENT_NETWORK,\n category: ErrorCategory.USER,\n text: `Agent \"${agentId}\" not found.`,\n });\n this.logger.trackException?.(error);\n throw error;\n }\n\n // If requested, include relevant history from other agents\n let messagesWithContext = [...input];\n\n if (includeHistory) {\n // Get all agent histories\n const allHistory = Object.entries(this.#agentHistory);\n\n if (allHistory.length > 0) {\n // Add a system message with the context from other agents\n const contextMessage = {\n role: 'system' as const,\n content: `Previous agent interactions:\\n\\n${allHistory\n .map(([agentName, interactions]) => {\n return `## ${agentName}\\n${interactions\n .map(\n (interaction, i) =>\n `Interaction ${i + 1} (${interaction.timestamp || 'No timestamp'}):\\n- Input: ${interaction.input}\\n- Output: ${interaction.output}`,\n )\n .join('\\n\\n')}`;\n })\n .join('\\n\\n')}`,\n };\n\n // Add the context message before the user input\n messagesWithContext = [contextMessage, ...messagesWithContext];\n }\n }\n\n // Generate a response from the agent\n const result = await agent.generate(messagesWithContext, { runtimeContext });\n\n return result.text;\n } catch (err) {\n // Properly type the error\n const error = err as Error;\n this.logger.error(`Error executing agent \"${agentId}\":`, { error });\n return `Unable to execute agent \"${agentId}\": ${error.message}`;\n }\n }\n\n getInstructions() {\n // Create a formatted list of available agents with their names\n const agentList = this.#agents\n .map(agent => {\n const id = this.formatAgentId(agent.name);\n // Use agent name instead of description since description might not exist\n return ` - **${id}**: ${agent.name}`;\n })\n .join('\\n');\n\n return `\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 ## System Instructions\n ${this.#instructions}\n \n ## Available Specialized Agents\n You can call these agents using the \"transmit\" tool:\n ${agentList}\n \n ## How to Use the \"transmit\" Tool\n \n The \"transmit\" tool allows you to call one or more specialized agents.\n \n ### Single Agent Call\n To call a single agent, use this format:\n \\`\\`\\`json\n {\n \"actions\": [\n {\n \"agent\": \"agent_name\",\n \"input\": \"detailed instructions for the agent\"\n }\n ]\n }\n \\`\\`\\`\n \n ### Multiple Parallel Agent Calls\n To call multiple agents in parallel, use this format:\n \\`\\`\\`json\n {\n \"actions\": [\n {\n \"agent\": \"first_agent_name\",\n \"input\": \"detailed instructions for the first agent\"\n },\n {\n \"agent\": \"second_agent_name\",\n \"input\": \"detailed instructions for the second agent\"\n }\n ]\n }\n \\`\\`\\`\n \n ## Context Sharing\n \n When calling an agent, you can choose to include the output from previous agents in the context.\n This allows the agent to take into account the results from previous steps.\n \n To include context, add the \"includeHistory\" field to the action and set it to true:\n \\`\\`\\`json\n {\n \"actions\": [\n {\n \"agent\": \"agent_name\",\n \"input\": \"detailed instructions for the agent\",\n \"includeHistory\": true\n }\n ]\n }\n \\`\\`\\`\n \n ## Best Practices\n 1. Break down complex tasks into smaller steps\n 2. Choose the most appropriate agent for each step\n 3. Provide clear, detailed instructions to each agent\n 4. Synthesize the results from multiple agents when needed\n 5. Provide a final summary or answer to the user\n \n ## Workflow\n 1. Analyze the user's request\n 2. Identify which specialized agent(s) can help\n 3. Call the appropriate agent(s) using the transmit tool\n 4. Review the agent's response\n 5. Either call more agents or provide a final answer\n `;\n }\n\n getRoutingAgent() {\n return this.#routingAgent;\n }\n\n getAgents() {\n return this.#agents;\n }\n\n async generate(\n messages: MessageListInput,\n args?: AgentGenerateOptions<undefined, undefined> & { output?: never; experimental_output?: never },\n ): Promise<GenerateTextResult<any, undefined>>;\n async generate<OUTPUT extends ZodSchema | JSONSchema7>(\n messages: MessageListInput,\n args?: AgentGenerateOptions<OUTPUT, undefined> & { output?: OUTPUT; experimental_output?: never },\n ): Promise<GenerateObjectResult<OUTPUT>>;\n async generate<EXPERIMENTAL_OUTPUT extends ZodSchema | JSONSchema7>(\n messages: MessageListInput,\n args?: AgentGenerateOptions<undefined, EXPERIMENTAL_OUTPUT> & {\n output?: never;\n experimental_output?: EXPERIMENTAL_OUTPUT;\n },\n ): Promise<GenerateTextResult<any, EXPERIMENTAL_OUTPUT>>;\n async generate<\n OUTPUT extends ZodSchema | JSONSchema7 | undefined = undefined,\n EXPERIMENTAL_OUTPUT extends ZodSchema | JSONSchema7 | undefined = undefined,\n >(\n messages: MessageListInput,\n args?: AgentGenerateOptions<OUTPUT, EXPERIMENTAL_OUTPUT>,\n ): Promise<GenerateReturn<any, OUTPUT, EXPERIMENTAL_OUTPUT>> {\n this.#clearNetworkHistoryBeforeRun();\n this.logger.debug(`AgentNetwork: Starting generation with ${this.#agents.length} available agents`);\n\n const ops = {\n maxSteps: this.#agents?.length * 10, // Default to 10 steps per agent\n ...args,\n };\n\n // Log the start of the routing process\n this.logger.debug(`AgentNetwork: Routing with max steps: ${ops.maxSteps}`);\n\n // Generate a response using the routing agent\n const result = await this.#routingAgent.generate(\n messages,\n ops as AgentGenerateOptions<OUTPUT, EXPERIMENTAL_OUTPUT> & { output?: never; experimental_output?: never },\n );\n\n // Log completion\n this.logger.debug(`AgentNetwork: Generation complete with ${result.steps?.length || 0} steps`);\n\n return result as unknown as GenerateReturn<any, OUTPUT, EXPERIMENTAL_OUTPUT>;\n }\n\n async stream<\n OUTPUT extends ZodSchema | JSONSchema7 | undefined = undefined,\n EXPERIMENTAL_OUTPUT extends ZodSchema | JSONSchema7 | undefined = undefined,\n >(\n messages: MessageListInput,\n args?: AgentStreamOptions<OUTPUT, EXPERIMENTAL_OUTPUT> & { output?: never; experimental_output?: never },\n ): Promise<StreamTextResult<any, OUTPUT extends ZodSchema ? z.infer<OUTPUT> : unknown>>;\n async stream<\n OUTPUT extends ZodSchema | JSONSchema7 | undefined = undefined,\n EXPERIMENTAL_OUTPUT extends ZodSchema | JSONSchema7 | undefined = undefined,\n >(\n messages: MessageListInput,\n args?: AgentStreamOptions<OUTPUT, EXPERIMENTAL_OUTPUT> & { output?: OUTPUT; experimental_output?: never },\n ): Promise<StreamObjectResult<any, OUTPUT extends ZodSchema ? z.infer<OUTPUT> : unknown, any>>;\n async stream<\n OUTPUT extends ZodSchema | JSONSchema7 | undefined = undefined,\n EXPERIMENTAL_OUTPUT extends ZodSchema | JSONSchema7 | undefined = undefined,\n >(\n messages: MessageListInput,\n args?: AgentStreamOptions<OUTPUT, EXPERIMENTAL_OUTPUT> & {\n output?: never;\n experimental_output?: EXPERIMENTAL_OUTPUT;\n },\n ): Promise<\n StreamTextResult<any, OUTPUT extends ZodSchema ? z.infer<OUTPUT> : unknown> & {\n partialObjectStream: StreamTextResult<\n any,\n OUTPUT extends ZodSchema\n ? z.infer<OUTPUT>\n : EXPERIMENTAL_OUTPUT extends ZodSchema\n ? z.infer<EXPERIMENTAL_OUTPUT>\n : unknown\n >['experimental_partialOutputStream'];\n }\n >;\n async stream<\n OUTPUT extends ZodSchema | JSONSchema7 | undefined = undefined,\n EXPERIMENTAL_OUTPUT extends ZodSchema | JSONSchema7 | undefined = undefined,\n >(\n messages: MessageListInput,\n args?: AgentStreamOptions<OUTPUT, EXPERIMENTAL_OUTPUT>,\n ): Promise<\n | StreamTextResult<any, OUTPUT extends ZodSchema ? z.infer<OUTPUT> : unknown>\n | StreamObjectResult<any, OUTPUT extends ZodSchema ? z.infer<OUTPUT> : unknown, any>\n > {\n this.#clearNetworkHistoryBeforeRun();\n this.logger.debug(`AgentNetwork: Starting generation with ${this.#agents.length} available agents`);\n\n const ops: AgentStreamOptions<OUTPUT, EXPERIMENTAL_OUTPUT> = {\n maxSteps: this.#agents?.length * 10, // Default to 10 steps per agent\n ...args,\n };\n\n // Log the start of the routing process\n this.logger.debug(`AgentNetwork: Routing with max steps: ${ops.maxSteps}`);\n\n // Generate a response using the routing agent\n const result = await this.#routingAgent.stream(\n messages,\n ops as AgentStreamOptions<OUTPUT, EXPERIMENTAL_OUTPUT> & { output?: never; experimental_output?: never },\n );\n\n return result as unknown as\n | StreamTextResult<any, OUTPUT extends ZodSchema ? z.infer<OUTPUT> : unknown>\n | StreamObjectResult<any, OUTPUT extends ZodSchema ? z.infer<OUTPUT> : unknown, any>;\n }\n\n __registerMastra(p: Mastra) {\n this.__setLogger(p.getLogger());\n this.#routingAgent.__registerMastra(p);\n // Register primitives for each agent in the network\n for (const agent of this.#agents) {\n if (typeof agent.__registerMastra === 'function') {\n agent.__registerMastra(p);\n }\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/network/network.ts"],"names":["agent"],"mappings":"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","file":"index.js","sourcesContent":["import type {\n CoreMessage,\n GenerateObjectResult,\n GenerateTextResult,\n LanguageModelV1,\n StreamObjectResult,\n StreamTextResult,\n} from 'ai';\nimport type { JSONSchema7 } from 'json-schema';\nimport { z } from 'zod';\nimport type { ZodSchema } from 'zod';\n\nimport { Agent } from '../agent';\nimport type { AgentGenerateOptions, AgentStreamOptions } from '../agent';\nimport type { MessageListInput } from '../agent/message-list';\nimport { MastraBase } from '../base';\nimport { MastraError, ErrorDomain, ErrorCategory } from '../error';\n\nimport type { GenerateReturn } from '../llm/model/base.types';\nimport { RegisteredLogger } from '../logger';\nimport type { Mastra } from '../mastra';\nimport type { RuntimeContext } from '../runtime-context';\nimport { createTool } from '../tools';\nimport type { ToolAction } from '../tools';\nimport type { AgentNetworkConfig } from './types';\n\nexport class AgentNetwork extends MastraBase {\n #instructions: string;\n #agents: Agent[];\n #model: LanguageModelV1;\n #routingAgent: Agent;\n #agentHistory: Record<\n string,\n Array<{\n input: string;\n output: string;\n timestamp: string;\n }>\n > = {};\n\n constructor(config: AgentNetworkConfig) {\n super({ component: RegisteredLogger.NETWORK, name: config.name || 'AgentNetwork' });\n\n console.warn(\n `⚠️ DEPRECATION WARNING: AgentNetwork will be deprecated on September 16th, 2025 and will be removed in a future version. Please use agent.network() instead.`,\n );\n\n this.#instructions = config.instructions;\n this.#agents = config.agents;\n this.#model = config.model;\n\n this.#routingAgent = new Agent({\n name: config.name,\n instructions: this.getInstructions(),\n model: this.#model,\n tools: this.getTools() as Record<string, ToolAction>,\n });\n }\n\n formatAgentId(name: string) {\n return name.replace(/[^a-zA-Z0-9_-]/g, '_');\n }\n\n getTools() {\n return {\n transmit: createTool({\n id: 'transmit',\n description: 'Call one or more specialized agents to handle specific tasks',\n inputSchema: z.object({\n actions: z.array(\n z.object({\n agent: z.string().describe('The name of the agent to call'),\n input: z.string().describe('The input to pass to the agent'),\n includeHistory: z\n .boolean()\n .optional()\n .describe('Whether to include previous agent outputs in the context'),\n }),\n ),\n }),\n execute: async ({ context, runtimeContext }) => {\n try {\n // Extract the actions from the context\n const actions = context.actions;\n\n this.logger.debug(`Executing ${actions.length} specialized agents`);\n\n // Execute each agent in parallel and collect results\n const results = await Promise.all(\n actions.map(action =>\n this.executeAgent(\n action.agent,\n [{ role: 'user', content: action.input }],\n action.includeHistory,\n runtimeContext,\n ),\n ),\n );\n\n this.logger.debug('Results:', { results });\n\n // Store the results in the agent history for future reference\n actions.forEach((action, index) => {\n this.#addToAgentHistory(action.agent, {\n input: action.input,\n output: results[index] || '', // Ensure output is always a string\n });\n });\n\n // Format the results with agent names for clarity\n return actions.map((action, index) => `[${action.agent}]: ${results[index]}`).join('\\n\\n');\n } catch (err) {\n // Properly type the error\n const error = err as Error;\n this.logger.error('Error in transmit tool:', { error });\n return `Error executing agents: ${error.message}`;\n }\n },\n }),\n } as const;\n }\n\n #addToAgentHistory(agentId: string, interaction: { input: string; output: string }) {\n if (!this.#agentHistory[agentId]) {\n this.#agentHistory[agentId] = [];\n }\n // Add timestamp to the interaction\n this.#agentHistory[agentId].push({\n ...interaction,\n timestamp: new Date().toISOString(),\n });\n }\n\n getAgentHistory(agentId: string) {\n return this.#agentHistory[agentId] || [];\n }\n\n #clearNetworkHistoryBeforeRun() {\n this.#agentHistory = {};\n }\n\n /**\n * Get the history of all agent interactions that have occurred in this network\n * @returns A record of agent interactions, keyed by agent ID\n */\n getAgentInteractionHistory() {\n return { ...this.#agentHistory };\n }\n\n /**\n * Get a summary of agent interactions in a more readable format, displayed chronologically\n * @returns A formatted string with all agent interactions in chronological order\n */\n getAgentInteractionSummary() {\n const history = this.#agentHistory;\n const agentIds = Object.keys(history);\n\n if (agentIds.length === 0) {\n return 'No agent interactions have occurred yet.';\n }\n\n // Collect all interactions with their agent IDs\n const allInteractions: Array<{\n agentId: string;\n interaction: { input: string; output: string; timestamp: string };\n index: number;\n // We'll use a global sequence number to track the true chronological order\n sequence: number;\n }> = [];\n\n // Track the global sequence of interactions\n let globalSequence = 0;\n\n // Gather all interactions with their source agent\n agentIds.forEach(agentId => {\n const interactions = history[agentId] || [];\n interactions.forEach((interaction, index) => {\n allInteractions.push({\n agentId,\n interaction,\n index,\n // Assign a sequence number based on when it was added to the history\n sequence: globalSequence++,\n });\n });\n });\n\n // Sort by timestamp for true chronological order\n allInteractions.sort((a, b) => {\n // Compare timestamps if available\n if (a.interaction.timestamp && b.interaction.timestamp) {\n return new Date(a.interaction.timestamp).getTime() - new Date(b.interaction.timestamp).getTime();\n }\n // Fall back to sequence number if timestamps aren't available\n return a.sequence - b.sequence;\n });\n\n // Format the chronological summary\n if (allInteractions.length === 0) {\n return 'No agent interactions have occurred yet.';\n }\n\n return (\n '# Chronological Agent Interactions\\n\\n' +\n allInteractions\n .map(\n (item, i) =>\n `## Step ${i + 1}: Agent ${item.agentId} at ${item.interaction.timestamp}\\n` +\n `**Input:** ${item.interaction.input.substring(0, 100)}${item.interaction.input.length > 100 ? '...' : ''}\\n\\n` +\n `**Output:** ${item.interaction.output.substring(0, 100)}${item.interaction.output.length > 100 ? '...' : ''}`,\n )\n .join('\\n\\n')\n );\n }\n\n async executeAgent(agentId: string, input: CoreMessage[], includeHistory = false, runtimeContext?: RuntimeContext) {\n try {\n // Find the agent by its formatted ID\n const agent = this.#agents.find(agent => this.formatAgentId(agent.name) === agentId);\n\n if (!agent) {\n const error = new MastraError({\n id: 'AGENT_NETWORK_EXECUTE_UNKNOWN_AGENT',\n domain: ErrorDomain.AGENT_NETWORK,\n category: ErrorCategory.USER,\n text: `Agent \"${agentId}\" not found.`,\n });\n this.logger.trackException?.(error);\n throw error;\n }\n\n // If requested, include relevant history from other agents\n let messagesWithContext = [...input];\n\n if (includeHistory) {\n // Get all agent histories\n const allHistory = Object.entries(this.#agentHistory);\n\n if (allHistory.length > 0) {\n // Add a system message with the context from other agents\n const contextMessage = {\n role: 'system' as const,\n content: `Previous agent interactions:\\n\\n${allHistory\n .map(([agentName, interactions]) => {\n return `## ${agentName}\\n${interactions\n .map(\n (interaction, i) =>\n `Interaction ${i + 1} (${interaction.timestamp || 'No timestamp'}):\\n- Input: ${interaction.input}\\n- Output: ${interaction.output}`,\n )\n .join('\\n\\n')}`;\n })\n .join('\\n\\n')}`,\n };\n\n // Add the context message before the user input\n messagesWithContext = [contextMessage, ...messagesWithContext];\n }\n }\n\n // Generate a response from the agent\n const result = await agent.generate(messagesWithContext, { runtimeContext });\n\n return result.text;\n } catch (err) {\n // Properly type the error\n const error = err as Error;\n this.logger.error(`Error executing agent \"${agentId}\":`, { error });\n return `Unable to execute agent \"${agentId}\": ${error.message}`;\n }\n }\n\n getInstructions() {\n // Create a formatted list of available agents with their names\n const agentList = this.#agents\n .map(agent => {\n const id = this.formatAgentId(agent.name);\n // Use agent name instead of description since description might not exist\n return ` - **${id}**: ${agent.name}`;\n })\n .join('\\n');\n\n return `\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 ## System Instructions\n ${this.#instructions}\n \n ## Available Specialized Agents\n You can call these agents using the \"transmit\" tool:\n ${agentList}\n \n ## How to Use the \"transmit\" Tool\n \n The \"transmit\" tool allows you to call one or more specialized agents.\n \n ### Single Agent Call\n To call a single agent, use this format:\n \\`\\`\\`json\n {\n \"actions\": [\n {\n \"agent\": \"agent_name\",\n \"input\": \"detailed instructions for the agent\"\n }\n ]\n }\n \\`\\`\\`\n \n ### Multiple Parallel Agent Calls\n To call multiple agents in parallel, use this format:\n \\`\\`\\`json\n {\n \"actions\": [\n {\n \"agent\": \"first_agent_name\",\n \"input\": \"detailed instructions for the first agent\"\n },\n {\n \"agent\": \"second_agent_name\",\n \"input\": \"detailed instructions for the second agent\"\n }\n ]\n }\n \\`\\`\\`\n \n ## Context Sharing\n \n When calling an agent, you can choose to include the output from previous agents in the context.\n This allows the agent to take into account the results from previous steps.\n \n To include context, add the \"includeHistory\" field to the action and set it to true:\n \\`\\`\\`json\n {\n \"actions\": [\n {\n \"agent\": \"agent_name\",\n \"input\": \"detailed instructions for the agent\",\n \"includeHistory\": true\n }\n ]\n }\n \\`\\`\\`\n \n ## Best Practices\n 1. Break down complex tasks into smaller steps\n 2. Choose the most appropriate agent for each step\n 3. Provide clear, detailed instructions to each agent\n 4. Synthesize the results from multiple agents when needed\n 5. Provide a final summary or answer to the user\n \n ## Workflow\n 1. Analyze the user's request\n 2. Identify which specialized agent(s) can help\n 3. Call the appropriate agent(s) using the transmit tool\n 4. Review the agent's response\n 5. Either call more agents or provide a final answer\n `;\n }\n\n getRoutingAgent() {\n return this.#routingAgent;\n }\n\n getAgents() {\n return this.#agents;\n }\n\n async generate(\n messages: MessageListInput,\n args?: AgentGenerateOptions<undefined, undefined> & { output?: never; experimental_output?: never },\n ): Promise<GenerateTextResult<any, undefined>>;\n async generate<OUTPUT extends ZodSchema | JSONSchema7>(\n messages: MessageListInput,\n args?: AgentGenerateOptions<OUTPUT, undefined> & { output?: OUTPUT; experimental_output?: never },\n ): Promise<GenerateObjectResult<OUTPUT>>;\n async generate<EXPERIMENTAL_OUTPUT extends ZodSchema | JSONSchema7>(\n messages: MessageListInput,\n args?: AgentGenerateOptions<undefined, EXPERIMENTAL_OUTPUT> & {\n output?: never;\n experimental_output?: EXPERIMENTAL_OUTPUT;\n },\n ): Promise<GenerateTextResult<any, EXPERIMENTAL_OUTPUT>>;\n async generate<\n OUTPUT extends ZodSchema | JSONSchema7 | undefined = undefined,\n EXPERIMENTAL_OUTPUT extends ZodSchema | JSONSchema7 | undefined = undefined,\n >(\n messages: MessageListInput,\n args?: AgentGenerateOptions<OUTPUT, EXPERIMENTAL_OUTPUT>,\n ): Promise<GenerateReturn<any, OUTPUT, EXPERIMENTAL_OUTPUT>> {\n this.#clearNetworkHistoryBeforeRun();\n this.logger.debug(`AgentNetwork: Starting generation with ${this.#agents.length} available agents`);\n\n const ops = {\n maxSteps: this.#agents?.length * 10, // Default to 10 steps per agent\n ...args,\n };\n\n // Log the start of the routing process\n this.logger.debug(`AgentNetwork: Routing with max steps: ${ops.maxSteps}`);\n\n // Generate a response using the routing agent\n const result = await this.#routingAgent.generate(\n messages,\n ops as AgentGenerateOptions<OUTPUT, EXPERIMENTAL_OUTPUT> & { output?: never; experimental_output?: never },\n );\n\n // Log completion\n this.logger.debug(`AgentNetwork: Generation complete with ${result.steps?.length || 0} steps`);\n\n return result as unknown as GenerateReturn<any, OUTPUT, EXPERIMENTAL_OUTPUT>;\n }\n\n async stream<\n OUTPUT extends ZodSchema | JSONSchema7 | undefined = undefined,\n EXPERIMENTAL_OUTPUT extends ZodSchema | JSONSchema7 | undefined = undefined,\n >(\n messages: MessageListInput,\n args?: AgentStreamOptions<OUTPUT, EXPERIMENTAL_OUTPUT> & { output?: never; experimental_output?: never },\n ): Promise<StreamTextResult<any, OUTPUT extends ZodSchema ? z.infer<OUTPUT> : unknown>>;\n async stream<\n OUTPUT extends ZodSchema | JSONSchema7 | undefined = undefined,\n EXPERIMENTAL_OUTPUT extends ZodSchema | JSONSchema7 | undefined = undefined,\n >(\n messages: MessageListInput,\n args?: AgentStreamOptions<OUTPUT, EXPERIMENTAL_OUTPUT> & { output?: OUTPUT; experimental_output?: never },\n ): Promise<StreamObjectResult<any, OUTPUT extends ZodSchema ? z.infer<OUTPUT> : unknown, any>>;\n async stream<\n OUTPUT extends ZodSchema | JSONSchema7 | undefined = undefined,\n EXPERIMENTAL_OUTPUT extends ZodSchema | JSONSchema7 | undefined = undefined,\n >(\n messages: MessageListInput,\n args?: AgentStreamOptions<OUTPUT, EXPERIMENTAL_OUTPUT> & {\n output?: never;\n experimental_output?: EXPERIMENTAL_OUTPUT;\n },\n ): Promise<\n StreamTextResult<any, OUTPUT extends ZodSchema ? z.infer<OUTPUT> : unknown> & {\n partialObjectStream: StreamTextResult<\n any,\n OUTPUT extends ZodSchema\n ? z.infer<OUTPUT>\n : EXPERIMENTAL_OUTPUT extends ZodSchema\n ? z.infer<EXPERIMENTAL_OUTPUT>\n : unknown\n >['experimental_partialOutputStream'];\n }\n >;\n async stream<\n OUTPUT extends ZodSchema | JSONSchema7 | undefined = undefined,\n EXPERIMENTAL_OUTPUT extends ZodSchema | JSONSchema7 | undefined = undefined,\n >(\n messages: MessageListInput,\n args?: AgentStreamOptions<OUTPUT, EXPERIMENTAL_OUTPUT>,\n ): Promise<\n | StreamTextResult<any, OUTPUT extends ZodSchema ? z.infer<OUTPUT> : unknown>\n | StreamObjectResult<any, OUTPUT extends ZodSchema ? z.infer<OUTPUT> : unknown, any>\n > {\n this.#clearNetworkHistoryBeforeRun();\n this.logger.debug(`AgentNetwork: Starting generation with ${this.#agents.length} available agents`);\n\n const ops: AgentStreamOptions<OUTPUT, EXPERIMENTAL_OUTPUT> = {\n maxSteps: this.#agents?.length * 10, // Default to 10 steps per agent\n ...args,\n };\n\n // Log the start of the routing process\n this.logger.debug(`AgentNetwork: Routing with max steps: ${ops.maxSteps}`);\n\n // Generate a response using the routing agent\n const result = await this.#routingAgent.stream(\n messages,\n ops as AgentStreamOptions<OUTPUT, EXPERIMENTAL_OUTPUT> & { output?: never; experimental_output?: never },\n );\n\n return result as unknown as\n | StreamTextResult<any, OUTPUT extends ZodSchema ? z.infer<OUTPUT> : unknown>\n | StreamObjectResult<any, OUTPUT extends ZodSchema ? z.infer<OUTPUT> : unknown, any>;\n }\n\n __registerMastra(p: Mastra) {\n this.__setLogger(p.getLogger());\n this.#routingAgent.__registerMastra(p);\n // Register primitives for each agent in the network\n for (const agent of this.#agents) {\n if (typeof agent.__registerMastra === 'function') {\n agent.__registerMastra(p);\n }\n }\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../src/network/network.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,oBAAoB,EACpB,kBAAkB,EAElB,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,IAAI,CAAC;AACZ,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAErC,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,KAAK,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAKrC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD,qBAAa,YAAa,SAAQ,UAAU;;gBAc9B,MAAM,EAAE,kBAAkB;
|
|
1
|
+
{"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../src/network/network.ts"],"names":[],"mappings":"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"}
|