@mastra/ai-sdk 0.0.0-error-handler-fix-20251020202607 → 0.0.0-export-agent-memory-from-local-studio-20251112153946
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 +119 -3
- package/dist/chat-route.d.ts.map +1 -1
- package/dist/convert-messages.d.ts +10 -0
- package/dist/convert-messages.d.ts.map +1 -0
- package/dist/convert-streams.d.ts +18 -0
- package/dist/convert-streams.d.ts.map +1 -0
- package/dist/helpers.d.ts +1 -2
- package/dist/helpers.d.ts.map +1 -1
- package/dist/index.cjs +193 -79
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +193 -80
- package/dist/index.js.map +1 -1
- package/dist/network-route.d.ts.map +1 -1
- package/dist/to-ai-sdk-format.d.ts +15 -13
- package/dist/to-ai-sdk-format.d.ts.map +1 -1
- package/dist/transformers.d.ts +50 -43
- package/dist/transformers.d.ts.map +1 -1
- package/dist/ui.cjs +16 -0
- package/dist/ui.cjs.map +1 -0
- package/dist/ui.d.ts +2 -0
- package/dist/ui.d.ts.map +1 -0
- package/dist/ui.js +13 -0
- package/dist/ui.js.map +1 -0
- package/dist/utils.d.ts +10 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/workflow-route.d.ts.map +1 -1
- package/package.json +18 -5
package/dist/index.js
CHANGED
|
@@ -3,6 +3,33 @@ import { createUIMessageStream, createUIMessageStreamResponse } from 'ai';
|
|
|
3
3
|
import { DefaultGeneratedFile, DefaultGeneratedFileWithType } from '@mastra/core/stream';
|
|
4
4
|
|
|
5
5
|
// src/chat-route.ts
|
|
6
|
+
|
|
7
|
+
// src/utils.ts
|
|
8
|
+
var isDataChunkType = (chunk) => {
|
|
9
|
+
return chunk && typeof chunk === "object" && "type" in chunk && chunk.type?.startsWith("data-");
|
|
10
|
+
};
|
|
11
|
+
function safeParseErrorObject(obj) {
|
|
12
|
+
if (typeof obj !== "object" || obj === null) {
|
|
13
|
+
return String(obj);
|
|
14
|
+
}
|
|
15
|
+
try {
|
|
16
|
+
const stringified = JSON.stringify(obj);
|
|
17
|
+
if (stringified === "{}") {
|
|
18
|
+
return String(obj);
|
|
19
|
+
}
|
|
20
|
+
return stringified;
|
|
21
|
+
} catch {
|
|
22
|
+
return String(obj);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
var isAgentExecutionDataChunkType = (chunk) => {
|
|
26
|
+
return chunk && typeof chunk === "object" && "type" in chunk && chunk.type?.startsWith("agent-execution-event-") && "payload" in chunk && typeof chunk.payload === "object" && "type" in chunk.payload && chunk.payload.type?.startsWith("data-");
|
|
27
|
+
};
|
|
28
|
+
var isWorkflowExecutionDataChunkType = (chunk) => {
|
|
29
|
+
return chunk && typeof chunk === "object" && "type" in chunk && chunk.type?.startsWith("workflow-execution-event-") && "payload" in chunk && typeof chunk.payload === "object" && "type" in chunk.payload && chunk.payload.type?.startsWith("data-");
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
// src/helpers.ts
|
|
6
33
|
function convertMastraChunkToAISDKv5({
|
|
7
34
|
chunk,
|
|
8
35
|
mode = "stream"
|
|
@@ -330,6 +357,14 @@ function convertFullStreamChunkToUIMessageStream({
|
|
|
330
357
|
toolCallId: part.toolCallId,
|
|
331
358
|
payload: part.output
|
|
332
359
|
};
|
|
360
|
+
} else if (isDataChunkType(part.output)) {
|
|
361
|
+
if (!("data" in part.output)) {
|
|
362
|
+
throw new Error(
|
|
363
|
+
`UI Messages require a data property when using data- prefixed chunks
|
|
364
|
+
${JSON.stringify(part)}`
|
|
365
|
+
);
|
|
366
|
+
}
|
|
367
|
+
return part.output;
|
|
333
368
|
}
|
|
334
369
|
return;
|
|
335
370
|
}
|
|
@@ -381,7 +416,7 @@ function convertFullStreamChunkToUIMessageStream({
|
|
|
381
416
|
return;
|
|
382
417
|
}
|
|
383
418
|
default: {
|
|
384
|
-
if (
|
|
419
|
+
if (isDataChunkType(part)) {
|
|
385
420
|
if (!("data" in part)) {
|
|
386
421
|
throw new Error(
|
|
387
422
|
`UI Messages require a data property when using data- prefixed chunks
|
|
@@ -434,7 +469,7 @@ function AgentNetworkToAISDKTransformer() {
|
|
|
434
469
|
}
|
|
435
470
|
});
|
|
436
471
|
}
|
|
437
|
-
function AgentStreamToAISDKTransformer() {
|
|
472
|
+
function AgentStreamToAISDKTransformer(lastMessageId) {
|
|
438
473
|
let bufferedSteps = /* @__PURE__ */ new Map();
|
|
439
474
|
return new TransformStream({
|
|
440
475
|
transform(chunk, controller) {
|
|
@@ -445,9 +480,9 @@ function AgentStreamToAISDKTransformer() {
|
|
|
445
480
|
sendSources: false,
|
|
446
481
|
sendStart: true,
|
|
447
482
|
sendFinish: true,
|
|
448
|
-
responseMessageId:
|
|
449
|
-
onError() {
|
|
450
|
-
return
|
|
483
|
+
responseMessageId: lastMessageId,
|
|
484
|
+
onError(error) {
|
|
485
|
+
return safeParseErrorObject(error);
|
|
451
486
|
}
|
|
452
487
|
});
|
|
453
488
|
if (transformedChunk) {
|
|
@@ -629,7 +664,9 @@ function transformWorkflow(payload, bufferedWorkflows, isNested) {
|
|
|
629
664
|
name: payload.payload.id,
|
|
630
665
|
status: payload.payload.status,
|
|
631
666
|
input: payload.payload.payload ?? null,
|
|
632
|
-
output: null
|
|
667
|
+
output: null,
|
|
668
|
+
suspendPayload: null,
|
|
669
|
+
resumePayload: null
|
|
633
670
|
};
|
|
634
671
|
bufferedWorkflows.set(payload.runId, current);
|
|
635
672
|
return {
|
|
@@ -662,6 +699,27 @@ function transformWorkflow(payload, bufferedWorkflows, isNested) {
|
|
|
662
699
|
}
|
|
663
700
|
};
|
|
664
701
|
}
|
|
702
|
+
case "workflow-step-suspended": {
|
|
703
|
+
const current = bufferedWorkflows.get(payload.runId);
|
|
704
|
+
if (!current) return null;
|
|
705
|
+
current.steps[payload.payload.id] = {
|
|
706
|
+
...current.steps[payload.payload.id],
|
|
707
|
+
status: payload.payload.status,
|
|
708
|
+
suspendPayload: payload.payload.suspendPayload ?? null,
|
|
709
|
+
resumePayload: payload.payload.resumePayload ?? null,
|
|
710
|
+
output: null
|
|
711
|
+
};
|
|
712
|
+
return {
|
|
713
|
+
type: isNested ? "data-tool-workflow" : "data-workflow",
|
|
714
|
+
id: payload.runId,
|
|
715
|
+
data: {
|
|
716
|
+
name: current.name,
|
|
717
|
+
status: "suspended",
|
|
718
|
+
steps: current.steps,
|
|
719
|
+
output: null
|
|
720
|
+
}
|
|
721
|
+
};
|
|
722
|
+
}
|
|
665
723
|
case "workflow-finish": {
|
|
666
724
|
const current = bufferedWorkflows.get(payload.runId);
|
|
667
725
|
if (!current) return null;
|
|
@@ -676,26 +734,39 @@ function transformWorkflow(payload, bufferedWorkflows, isNested) {
|
|
|
676
734
|
}
|
|
677
735
|
};
|
|
678
736
|
}
|
|
679
|
-
default:
|
|
737
|
+
default: {
|
|
738
|
+
if (isDataChunkType(payload)) {
|
|
739
|
+
if (!("data" in payload)) {
|
|
740
|
+
throw new Error(
|
|
741
|
+
`UI Messages require a data property when using data- prefixed chunks
|
|
742
|
+
${JSON.stringify(payload)}`
|
|
743
|
+
);
|
|
744
|
+
}
|
|
745
|
+
return payload;
|
|
746
|
+
}
|
|
680
747
|
return null;
|
|
748
|
+
}
|
|
681
749
|
}
|
|
682
750
|
}
|
|
683
751
|
function transformNetwork(payload, bufferedNetworks, isNested) {
|
|
684
752
|
switch (payload.type) {
|
|
685
753
|
case "routing-agent-start": {
|
|
686
|
-
if (!bufferedNetworks.has(payload.
|
|
687
|
-
bufferedNetworks.set(payload.
|
|
754
|
+
if (!bufferedNetworks.has(payload.runId)) {
|
|
755
|
+
bufferedNetworks.set(payload.runId, {
|
|
688
756
|
name: payload.payload.agentId,
|
|
689
|
-
steps: []
|
|
757
|
+
steps: [],
|
|
758
|
+
usage: null,
|
|
759
|
+
output: null
|
|
690
760
|
});
|
|
691
761
|
}
|
|
692
762
|
return {
|
|
693
763
|
type: isNested ? "data-tool-network" : "data-network",
|
|
694
|
-
id: payload.
|
|
764
|
+
id: payload.runId,
|
|
695
765
|
data: {
|
|
696
|
-
name: bufferedNetworks.get(payload.
|
|
766
|
+
name: bufferedNetworks.get(payload.runId).name,
|
|
697
767
|
status: "running",
|
|
698
|
-
|
|
768
|
+
usage: null,
|
|
769
|
+
steps: bufferedNetworks.get(payload.runId).steps,
|
|
699
770
|
output: null
|
|
700
771
|
}
|
|
701
772
|
};
|
|
@@ -718,62 +789,62 @@ function transformNetwork(payload, bufferedNetworks, isNested) {
|
|
|
718
789
|
};
|
|
719
790
|
}
|
|
720
791
|
case "agent-execution-start": {
|
|
721
|
-
const current = bufferedNetworks.get(payload.
|
|
792
|
+
const current = bufferedNetworks.get(payload.runId) || { name: "", steps: [], usage: null, output: null };
|
|
722
793
|
current.steps.push({
|
|
723
794
|
name: payload.payload.agentId,
|
|
724
795
|
status: "running",
|
|
725
796
|
input: payload.payload.args || null,
|
|
726
|
-
output: null
|
|
797
|
+
output: null,
|
|
798
|
+
suspendPayload: null,
|
|
799
|
+
resumePayload: null
|
|
727
800
|
});
|
|
728
|
-
bufferedNetworks.set(payload.
|
|
801
|
+
bufferedNetworks.set(payload.runId, current);
|
|
729
802
|
return {
|
|
730
803
|
type: isNested ? "data-tool-network" : "data-network",
|
|
731
|
-
id: payload.
|
|
804
|
+
id: payload.runId,
|
|
732
805
|
data: {
|
|
733
|
-
|
|
734
|
-
status: "running"
|
|
735
|
-
steps: current.steps,
|
|
736
|
-
output: null
|
|
806
|
+
...current,
|
|
807
|
+
status: "running"
|
|
737
808
|
}
|
|
738
809
|
};
|
|
739
810
|
}
|
|
740
811
|
case "workflow-execution-start": {
|
|
741
|
-
const current = bufferedNetworks.get(payload.
|
|
812
|
+
const current = bufferedNetworks.get(payload.runId) || { name: "", steps: [], usage: null, output: null };
|
|
742
813
|
current.steps.push({
|
|
743
814
|
name: payload.payload.name,
|
|
744
815
|
status: "running",
|
|
745
816
|
input: payload.payload.args || null,
|
|
746
|
-
output: null
|
|
817
|
+
output: null,
|
|
818
|
+
suspendPayload: null,
|
|
819
|
+
resumePayload: null
|
|
747
820
|
});
|
|
748
|
-
bufferedNetworks.set(payload.
|
|
821
|
+
bufferedNetworks.set(payload.runId, current);
|
|
749
822
|
return {
|
|
750
823
|
type: isNested ? "data-tool-network" : "data-network",
|
|
751
|
-
id: payload.
|
|
824
|
+
id: payload.runId,
|
|
752
825
|
data: {
|
|
753
|
-
|
|
754
|
-
status: "running"
|
|
755
|
-
steps: current.steps,
|
|
756
|
-
output: null
|
|
826
|
+
...current,
|
|
827
|
+
status: "running"
|
|
757
828
|
}
|
|
758
829
|
};
|
|
759
830
|
}
|
|
760
831
|
case "tool-execution-start": {
|
|
761
|
-
const current = bufferedNetworks.get(payload.
|
|
832
|
+
const current = bufferedNetworks.get(payload.runId) || { name: "", steps: [], usage: null, output: null };
|
|
762
833
|
current.steps.push({
|
|
763
834
|
name: payload.payload.args?.toolName,
|
|
764
835
|
status: "running",
|
|
765
836
|
input: payload.payload.args?.args || null,
|
|
766
|
-
output: null
|
|
837
|
+
output: null,
|
|
838
|
+
suspendPayload: null,
|
|
839
|
+
resumePayload: null
|
|
767
840
|
});
|
|
768
|
-
bufferedNetworks.set(payload.
|
|
841
|
+
bufferedNetworks.set(payload.runId, current);
|
|
769
842
|
return {
|
|
770
843
|
type: isNested ? "data-tool-network" : "data-network",
|
|
771
|
-
id: payload.
|
|
844
|
+
id: payload.runId,
|
|
772
845
|
data: {
|
|
773
|
-
|
|
774
|
-
status: "running"
|
|
775
|
-
steps: current.steps,
|
|
776
|
-
output: null
|
|
846
|
+
...current,
|
|
847
|
+
status: "running"
|
|
777
848
|
}
|
|
778
849
|
};
|
|
779
850
|
}
|
|
@@ -784,16 +855,18 @@ function transformNetwork(payload, bufferedNetworks, isNested) {
|
|
|
784
855
|
name: payload.payload.agentId,
|
|
785
856
|
status: "success",
|
|
786
857
|
input: null,
|
|
787
|
-
output: payload.payload.result
|
|
858
|
+
output: payload.payload.result,
|
|
859
|
+
suspendPayload: null,
|
|
860
|
+
resumePayload: null
|
|
788
861
|
});
|
|
789
862
|
return {
|
|
790
863
|
type: isNested ? "data-tool-network" : "data-network",
|
|
791
864
|
id: payload.runId,
|
|
792
865
|
data: {
|
|
793
|
-
|
|
866
|
+
...current,
|
|
867
|
+
usage: payload.payload?.usage ?? current.usage,
|
|
794
868
|
status: "running",
|
|
795
|
-
|
|
796
|
-
output: payload.payload.result ?? null
|
|
869
|
+
output: payload.payload.result ?? current.output
|
|
797
870
|
}
|
|
798
871
|
};
|
|
799
872
|
}
|
|
@@ -804,16 +877,17 @@ function transformNetwork(payload, bufferedNetworks, isNested) {
|
|
|
804
877
|
name: payload.payload.toolName,
|
|
805
878
|
status: "success",
|
|
806
879
|
input: null,
|
|
807
|
-
output: payload.payload.result
|
|
880
|
+
output: payload.payload.result,
|
|
881
|
+
suspendPayload: null,
|
|
882
|
+
resumePayload: null
|
|
808
883
|
});
|
|
809
884
|
return {
|
|
810
885
|
type: isNested ? "data-tool-network" : "data-network",
|
|
811
886
|
id: payload.runId,
|
|
812
887
|
data: {
|
|
813
|
-
|
|
888
|
+
...current,
|
|
814
889
|
status: "running",
|
|
815
|
-
|
|
816
|
-
output: payload.payload.result ?? null
|
|
890
|
+
output: payload.payload.result ?? current.output
|
|
817
891
|
}
|
|
818
892
|
};
|
|
819
893
|
}
|
|
@@ -824,44 +898,45 @@ function transformNetwork(payload, bufferedNetworks, isNested) {
|
|
|
824
898
|
name: payload.payload.name,
|
|
825
899
|
status: "success",
|
|
826
900
|
input: null,
|
|
827
|
-
output: payload.payload.result
|
|
901
|
+
output: payload.payload.result,
|
|
902
|
+
suspendPayload: null,
|
|
903
|
+
resumePayload: null
|
|
828
904
|
});
|
|
829
905
|
return {
|
|
830
906
|
type: isNested ? "data-tool-network" : "data-network",
|
|
831
907
|
id: payload.runId,
|
|
832
908
|
data: {
|
|
833
|
-
|
|
909
|
+
...current,
|
|
910
|
+
usage: payload.payload?.usage ?? current.usage,
|
|
834
911
|
status: "running",
|
|
835
|
-
|
|
836
|
-
output: payload.payload.result ?? null
|
|
912
|
+
output: payload.payload.result ?? current.output
|
|
837
913
|
}
|
|
838
914
|
};
|
|
839
915
|
}
|
|
840
916
|
case "routing-agent-end": {
|
|
841
|
-
const current = bufferedNetworks.get(payload.
|
|
917
|
+
const current = bufferedNetworks.get(payload.runId);
|
|
842
918
|
if (!current) return null;
|
|
843
919
|
return {
|
|
844
920
|
type: isNested ? "data-tool-network" : "data-network",
|
|
845
|
-
id: payload.
|
|
921
|
+
id: payload.runId,
|
|
846
922
|
data: {
|
|
847
|
-
|
|
923
|
+
...current,
|
|
848
924
|
status: "finished",
|
|
849
|
-
|
|
850
|
-
output: payload.payload?.result ??
|
|
925
|
+
usage: payload.payload?.usage ?? current.usage,
|
|
926
|
+
output: payload.payload?.result ?? current.output
|
|
851
927
|
}
|
|
852
928
|
};
|
|
853
929
|
}
|
|
854
930
|
case "network-execution-event-step-finish": {
|
|
855
|
-
const current = bufferedNetworks.get(payload.
|
|
931
|
+
const current = bufferedNetworks.get(payload.runId);
|
|
856
932
|
if (!current) return null;
|
|
857
933
|
return {
|
|
858
934
|
type: isNested ? "data-tool-network" : "data-network",
|
|
859
|
-
id: payload.
|
|
935
|
+
id: payload.runId,
|
|
860
936
|
data: {
|
|
861
|
-
|
|
937
|
+
...current,
|
|
862
938
|
status: "finished",
|
|
863
|
-
|
|
864
|
-
output: payload.payload?.result ?? null
|
|
939
|
+
output: payload.payload?.result ?? current.output
|
|
865
940
|
}
|
|
866
941
|
};
|
|
867
942
|
}
|
|
@@ -872,20 +947,48 @@ function transformNetwork(payload, bufferedNetworks, isNested) {
|
|
|
872
947
|
type: isNested ? "data-tool-network" : "data-network",
|
|
873
948
|
id: payload.runId,
|
|
874
949
|
data: {
|
|
875
|
-
|
|
950
|
+
...current,
|
|
951
|
+
usage: payload.payload?.usage ?? current.usage,
|
|
876
952
|
status: "finished",
|
|
877
|
-
|
|
878
|
-
output: payload.payload?.result ?? null
|
|
953
|
+
output: payload.payload?.result ?? current.output
|
|
879
954
|
}
|
|
880
955
|
};
|
|
881
956
|
}
|
|
882
|
-
default:
|
|
957
|
+
default: {
|
|
958
|
+
if (isDataChunkType(payload)) {
|
|
959
|
+
if (!("data" in payload)) {
|
|
960
|
+
throw new Error(
|
|
961
|
+
`UI Messages require a data property when using data- prefixed chunks
|
|
962
|
+
${JSON.stringify(payload)}`
|
|
963
|
+
);
|
|
964
|
+
}
|
|
965
|
+
return payload;
|
|
966
|
+
}
|
|
967
|
+
if (isAgentExecutionDataChunkType(payload)) {
|
|
968
|
+
if (!("data" in payload.payload)) {
|
|
969
|
+
throw new Error(
|
|
970
|
+
`UI Messages require a data property when using data- prefixed chunks
|
|
971
|
+
${JSON.stringify(payload)}`
|
|
972
|
+
);
|
|
973
|
+
}
|
|
974
|
+
return payload.payload;
|
|
975
|
+
}
|
|
976
|
+
if (isWorkflowExecutionDataChunkType(payload)) {
|
|
977
|
+
if (!("data" in payload.payload)) {
|
|
978
|
+
throw new Error(
|
|
979
|
+
`UI Messages require a data property when using data- prefixed chunks
|
|
980
|
+
${JSON.stringify(payload)}`
|
|
981
|
+
);
|
|
982
|
+
}
|
|
983
|
+
return payload.payload;
|
|
984
|
+
}
|
|
883
985
|
return null;
|
|
986
|
+
}
|
|
884
987
|
}
|
|
885
988
|
}
|
|
886
989
|
|
|
887
|
-
// src/
|
|
888
|
-
function
|
|
990
|
+
// src/convert-streams.ts
|
|
991
|
+
function toAISdkV5Stream(stream, options = { from: "agent" }) {
|
|
889
992
|
const from = options?.from;
|
|
890
993
|
if (from === "workflow") {
|
|
891
994
|
return stream.pipeThrough(WorkflowStreamToAISDKTransformer());
|
|
@@ -894,7 +997,7 @@ function toAISdkFormat(stream, options = { from: "agent" }) {
|
|
|
894
997
|
return stream.pipeThrough(AgentNetworkToAISDKTransformer());
|
|
895
998
|
}
|
|
896
999
|
const agentReadable = "fullStream" in stream ? stream.fullStream : stream;
|
|
897
|
-
return agentReadable.pipeThrough(AgentStreamToAISDKTransformer());
|
|
1000
|
+
return agentReadable.pipeThrough(AgentStreamToAISDKTransformer(options?.lastMessageId));
|
|
898
1001
|
}
|
|
899
1002
|
|
|
900
1003
|
// src/chat-route.ts
|
|
@@ -1002,7 +1105,7 @@ function chatRoute({
|
|
|
1002
1105
|
handler: async (c) => {
|
|
1003
1106
|
const { messages, ...rest } = await c.req.json();
|
|
1004
1107
|
const mastra = c.get("mastra");
|
|
1005
|
-
const
|
|
1108
|
+
const requestContext = c.get("requestContext");
|
|
1006
1109
|
let agentToUse = agent;
|
|
1007
1110
|
if (!agent) {
|
|
1008
1111
|
const agentId = c.req.param("agentId");
|
|
@@ -1013,8 +1116,8 @@ function chatRoute({
|
|
|
1013
1116
|
`Fixed agent ID was set together with an agentId path parameter. This can lead to unexpected behavior.`
|
|
1014
1117
|
);
|
|
1015
1118
|
}
|
|
1016
|
-
if (
|
|
1017
|
-
mastra.getLogger()?.warn(`"
|
|
1119
|
+
if (requestContext && defaultOptions?.requestContext) {
|
|
1120
|
+
mastra.getLogger()?.warn(`"requestContext" set in the route options will be overridden by the request's "requestContext".`);
|
|
1018
1121
|
}
|
|
1019
1122
|
if (!agentToUse) {
|
|
1020
1123
|
throw new Error("Agent ID is required");
|
|
@@ -1026,12 +1129,16 @@ function chatRoute({
|
|
|
1026
1129
|
const result = await agentObj.stream(messages, {
|
|
1027
1130
|
...defaultOptions,
|
|
1028
1131
|
...rest,
|
|
1029
|
-
|
|
1132
|
+
requestContext: requestContext || defaultOptions?.requestContext
|
|
1030
1133
|
});
|
|
1134
|
+
let lastMessageId;
|
|
1135
|
+
if (messages.length > 0 && messages[messages.length - 1].role === "assistant") {
|
|
1136
|
+
lastMessageId = messages[messages.length - 1].id;
|
|
1137
|
+
}
|
|
1031
1138
|
const uiMessageStream = createUIMessageStream({
|
|
1032
1139
|
originalMessages: messages,
|
|
1033
1140
|
execute: async ({ writer }) => {
|
|
1034
|
-
for await (const part of
|
|
1141
|
+
for await (const part of toAISdkV5Stream(result, { from: "agent", lastMessageId })) {
|
|
1035
1142
|
writer.write(part);
|
|
1036
1143
|
}
|
|
1037
1144
|
}
|
|
@@ -1072,7 +1179,7 @@ function workflowRoute({
|
|
|
1072
1179
|
type: "object",
|
|
1073
1180
|
properties: {
|
|
1074
1181
|
inputData: { type: "object", additionalProperties: true },
|
|
1075
|
-
|
|
1182
|
+
requestContext: { type: "object", additionalProperties: true },
|
|
1076
1183
|
tracingOptions: { type: "object", additionalProperties: true }
|
|
1077
1184
|
}
|
|
1078
1185
|
}
|
|
@@ -1091,7 +1198,7 @@ function workflowRoute({
|
|
|
1091
1198
|
}
|
|
1092
1199
|
},
|
|
1093
1200
|
handler: async (c) => {
|
|
1094
|
-
const { inputData, ...rest } = await c.req.json();
|
|
1201
|
+
const { inputData, resumeData, ...rest } = await c.req.json();
|
|
1095
1202
|
const mastra = c.get("mastra");
|
|
1096
1203
|
let workflowToUse = workflow;
|
|
1097
1204
|
if (!workflow) {
|
|
@@ -1110,11 +1217,11 @@ function workflowRoute({
|
|
|
1110
1217
|
if (!workflowObj) {
|
|
1111
1218
|
throw new Error(`Workflow ${workflowToUse} not found`);
|
|
1112
1219
|
}
|
|
1113
|
-
const run = await workflowObj.
|
|
1114
|
-
const stream = run.
|
|
1220
|
+
const run = await workflowObj.createRun();
|
|
1221
|
+
const stream = resumeData ? run.resumeStream({ resumeData, ...rest }) : run.stream({ inputData, ...rest });
|
|
1115
1222
|
const uiMessageStream = createUIMessageStream({
|
|
1116
1223
|
execute: async ({ writer }) => {
|
|
1117
|
-
for await (const part of
|
|
1224
|
+
for await (const part of toAISdkV5Stream(stream, { from: "workflow" })) {
|
|
1118
1225
|
writer.write(part);
|
|
1119
1226
|
}
|
|
1120
1227
|
}
|
|
@@ -1154,13 +1261,12 @@ function networkRoute({
|
|
|
1154
1261
|
type: "object",
|
|
1155
1262
|
properties: {
|
|
1156
1263
|
messages: { type: "array", items: { type: "object" } },
|
|
1157
|
-
|
|
1264
|
+
requestContext: { type: "object", additionalProperties: true },
|
|
1158
1265
|
runId: { type: "string" },
|
|
1159
1266
|
maxSteps: { type: "number" },
|
|
1160
1267
|
threadId: { type: "string" },
|
|
1161
1268
|
resourceId: { type: "string" },
|
|
1162
1269
|
modelSettings: { type: "object", additionalProperties: true },
|
|
1163
|
-
telemetry: { type: "object", additionalProperties: true },
|
|
1164
1270
|
tools: { type: "array", items: { type: "object" } }
|
|
1165
1271
|
},
|
|
1166
1272
|
required: ["messages"]
|
|
@@ -1209,7 +1315,7 @@ function networkRoute({
|
|
|
1209
1315
|
});
|
|
1210
1316
|
const uiMessageStream = createUIMessageStream({
|
|
1211
1317
|
execute: async ({ writer }) => {
|
|
1212
|
-
for await (const part of
|
|
1318
|
+
for await (const part of toAISdkV5Stream(result, { from: "network" })) {
|
|
1213
1319
|
writer.write(part);
|
|
1214
1320
|
}
|
|
1215
1321
|
}
|
|
@@ -1219,6 +1325,13 @@ function networkRoute({
|
|
|
1219
1325
|
});
|
|
1220
1326
|
}
|
|
1221
1327
|
|
|
1222
|
-
|
|
1328
|
+
// src/to-ai-sdk-format.ts
|
|
1329
|
+
function toAISdkFormat() {
|
|
1330
|
+
throw new Error(
|
|
1331
|
+
'toAISdkFormat() has been deprecated. Please use toAISdkStream() instead.\n\nMigration:\n import { toAISdkFormat } from "@mastra/ai-sdk";\n // Change to:\n import { toAISdkStream } from "@mastra/ai-sdk";\n\nThe function signature remains the same.'
|
|
1332
|
+
);
|
|
1333
|
+
}
|
|
1334
|
+
|
|
1335
|
+
export { chatRoute, networkRoute, toAISdkFormat, toAISdkV5Stream as toAISdkStream, workflowRoute };
|
|
1223
1336
|
//# sourceMappingURL=index.js.map
|
|
1224
1337
|
//# sourceMappingURL=index.js.map
|