@mastra/ai-sdk 0.0.0-fix-persist-session-cache-option-mcp-server-20251031182703 → 0.0.0-fix-9244-clickhouse-metadata-20251104220626
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 +16 -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 +81 -20
- 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 +81 -21
- package/dist/index.js.map +1 -1
- package/dist/to-ai-sdk-format.d.ts +15 -16
- package/dist/to-ai-sdk-format.d.ts.map +1 -1
- package/dist/transformers.d.ts +12 -1
- 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 +1 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/workflow-route.d.ts.map +1 -1
- package/package.json +15 -5
package/dist/index.js
CHANGED
|
@@ -8,6 +8,20 @@ import { DefaultGeneratedFile, DefaultGeneratedFileWithType } from '@mastra/core
|
|
|
8
8
|
var isDataChunkType = (chunk) => {
|
|
9
9
|
return chunk && typeof chunk === "object" && "type" in chunk && chunk.type?.startsWith("data-");
|
|
10
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
|
+
}
|
|
11
25
|
|
|
12
26
|
// src/helpers.ts
|
|
13
27
|
function convertMastraChunkToAISDKv5({
|
|
@@ -441,7 +455,7 @@ function AgentNetworkToAISDKTransformer() {
|
|
|
441
455
|
}
|
|
442
456
|
});
|
|
443
457
|
}
|
|
444
|
-
function AgentStreamToAISDKTransformer() {
|
|
458
|
+
function AgentStreamToAISDKTransformer(lastMessageId) {
|
|
445
459
|
let bufferedSteps = /* @__PURE__ */ new Map();
|
|
446
460
|
return new TransformStream({
|
|
447
461
|
transform(chunk, controller) {
|
|
@@ -452,9 +466,9 @@ function AgentStreamToAISDKTransformer() {
|
|
|
452
466
|
sendSources: false,
|
|
453
467
|
sendStart: true,
|
|
454
468
|
sendFinish: true,
|
|
455
|
-
responseMessageId:
|
|
456
|
-
onError() {
|
|
457
|
-
return
|
|
469
|
+
responseMessageId: lastMessageId,
|
|
470
|
+
onError(error) {
|
|
471
|
+
return safeParseErrorObject(error);
|
|
458
472
|
}
|
|
459
473
|
});
|
|
460
474
|
if (transformedChunk) {
|
|
@@ -636,7 +650,9 @@ function transformWorkflow(payload, bufferedWorkflows, isNested) {
|
|
|
636
650
|
name: payload.payload.id,
|
|
637
651
|
status: payload.payload.status,
|
|
638
652
|
input: payload.payload.payload ?? null,
|
|
639
|
-
output: null
|
|
653
|
+
output: null,
|
|
654
|
+
suspendPayload: null,
|
|
655
|
+
resumePayload: null
|
|
640
656
|
};
|
|
641
657
|
bufferedWorkflows.set(payload.runId, current);
|
|
642
658
|
return {
|
|
@@ -669,6 +685,27 @@ function transformWorkflow(payload, bufferedWorkflows, isNested) {
|
|
|
669
685
|
}
|
|
670
686
|
};
|
|
671
687
|
}
|
|
688
|
+
case "workflow-step-suspended": {
|
|
689
|
+
const current = bufferedWorkflows.get(payload.runId);
|
|
690
|
+
if (!current) return null;
|
|
691
|
+
current.steps[payload.payload.id] = {
|
|
692
|
+
...current.steps[payload.payload.id],
|
|
693
|
+
status: payload.payload.status,
|
|
694
|
+
suspendPayload: payload.payload.suspendPayload ?? null,
|
|
695
|
+
resumePayload: payload.payload.resumePayload ?? null,
|
|
696
|
+
output: null
|
|
697
|
+
};
|
|
698
|
+
return {
|
|
699
|
+
type: isNested ? "data-tool-workflow" : "data-workflow",
|
|
700
|
+
id: payload.runId,
|
|
701
|
+
data: {
|
|
702
|
+
name: current.name,
|
|
703
|
+
status: "suspended",
|
|
704
|
+
steps: current.steps,
|
|
705
|
+
output: null
|
|
706
|
+
}
|
|
707
|
+
};
|
|
708
|
+
}
|
|
672
709
|
case "workflow-finish": {
|
|
673
710
|
const current = bufferedWorkflows.get(payload.runId);
|
|
674
711
|
if (!current) return null;
|
|
@@ -743,7 +780,9 @@ function transformNetwork(payload, bufferedNetworks, isNested) {
|
|
|
743
780
|
name: payload.payload.agentId,
|
|
744
781
|
status: "running",
|
|
745
782
|
input: payload.payload.args || null,
|
|
746
|
-
output: null
|
|
783
|
+
output: null,
|
|
784
|
+
suspendPayload: null,
|
|
785
|
+
resumePayload: null
|
|
747
786
|
});
|
|
748
787
|
bufferedNetworks.set(payload.runId, current);
|
|
749
788
|
return {
|
|
@@ -761,7 +800,9 @@ function transformNetwork(payload, bufferedNetworks, isNested) {
|
|
|
761
800
|
name: payload.payload.name,
|
|
762
801
|
status: "running",
|
|
763
802
|
input: payload.payload.args || null,
|
|
764
|
-
output: null
|
|
803
|
+
output: null,
|
|
804
|
+
suspendPayload: null,
|
|
805
|
+
resumePayload: null
|
|
765
806
|
});
|
|
766
807
|
bufferedNetworks.set(payload.runId, current);
|
|
767
808
|
return {
|
|
@@ -779,7 +820,9 @@ function transformNetwork(payload, bufferedNetworks, isNested) {
|
|
|
779
820
|
name: payload.payload.args?.toolName,
|
|
780
821
|
status: "running",
|
|
781
822
|
input: payload.payload.args?.args || null,
|
|
782
|
-
output: null
|
|
823
|
+
output: null,
|
|
824
|
+
suspendPayload: null,
|
|
825
|
+
resumePayload: null
|
|
783
826
|
});
|
|
784
827
|
bufferedNetworks.set(payload.runId, current);
|
|
785
828
|
return {
|
|
@@ -798,7 +841,9 @@ function transformNetwork(payload, bufferedNetworks, isNested) {
|
|
|
798
841
|
name: payload.payload.agentId,
|
|
799
842
|
status: "success",
|
|
800
843
|
input: null,
|
|
801
|
-
output: payload.payload.result
|
|
844
|
+
output: payload.payload.result,
|
|
845
|
+
suspendPayload: null,
|
|
846
|
+
resumePayload: null
|
|
802
847
|
});
|
|
803
848
|
return {
|
|
804
849
|
type: isNested ? "data-tool-network" : "data-network",
|
|
@@ -818,7 +863,9 @@ function transformNetwork(payload, bufferedNetworks, isNested) {
|
|
|
818
863
|
name: payload.payload.toolName,
|
|
819
864
|
status: "success",
|
|
820
865
|
input: null,
|
|
821
|
-
output: payload.payload.result
|
|
866
|
+
output: payload.payload.result,
|
|
867
|
+
suspendPayload: null,
|
|
868
|
+
resumePayload: null
|
|
822
869
|
});
|
|
823
870
|
return {
|
|
824
871
|
type: isNested ? "data-tool-network" : "data-network",
|
|
@@ -837,7 +884,9 @@ function transformNetwork(payload, bufferedNetworks, isNested) {
|
|
|
837
884
|
name: payload.payload.name,
|
|
838
885
|
status: "success",
|
|
839
886
|
input: null,
|
|
840
|
-
output: payload.payload.result
|
|
887
|
+
output: payload.payload.result,
|
|
888
|
+
suspendPayload: null,
|
|
889
|
+
resumePayload: null
|
|
841
890
|
});
|
|
842
891
|
return {
|
|
843
892
|
type: isNested ? "data-tool-network" : "data-network",
|
|
@@ -906,8 +955,8 @@ function transformNetwork(payload, bufferedNetworks, isNested) {
|
|
|
906
955
|
}
|
|
907
956
|
}
|
|
908
957
|
|
|
909
|
-
// src/
|
|
910
|
-
function
|
|
958
|
+
// src/convert-streams.ts
|
|
959
|
+
function toAISdkV5Stream(stream, options = { from: "agent" }) {
|
|
911
960
|
const from = options?.from;
|
|
912
961
|
if (from === "workflow") {
|
|
913
962
|
return stream.pipeThrough(WorkflowStreamToAISDKTransformer());
|
|
@@ -916,7 +965,7 @@ function toAISdkFormat(stream, options = { from: "agent" }) {
|
|
|
916
965
|
return stream.pipeThrough(AgentNetworkToAISDKTransformer());
|
|
917
966
|
}
|
|
918
967
|
const agentReadable = "fullStream" in stream ? stream.fullStream : stream;
|
|
919
|
-
return agentReadable.pipeThrough(AgentStreamToAISDKTransformer());
|
|
968
|
+
return agentReadable.pipeThrough(AgentStreamToAISDKTransformer(options?.lastMessageId));
|
|
920
969
|
}
|
|
921
970
|
|
|
922
971
|
// src/chat-route.ts
|
|
@@ -1050,10 +1099,14 @@ function chatRoute({
|
|
|
1050
1099
|
...rest,
|
|
1051
1100
|
requestContext: requestContext || defaultOptions?.requestContext
|
|
1052
1101
|
});
|
|
1102
|
+
let lastMessageId;
|
|
1103
|
+
if (messages.length > 0 && messages[messages.length - 1].role === "assistant") {
|
|
1104
|
+
lastMessageId = messages[messages.length - 1].id;
|
|
1105
|
+
}
|
|
1053
1106
|
const uiMessageStream = createUIMessageStream({
|
|
1054
1107
|
originalMessages: messages,
|
|
1055
1108
|
execute: async ({ writer }) => {
|
|
1056
|
-
for await (const part of
|
|
1109
|
+
for await (const part of toAISdkV5Stream(result, { from: "agent", lastMessageId })) {
|
|
1057
1110
|
writer.write(part);
|
|
1058
1111
|
}
|
|
1059
1112
|
}
|
|
@@ -1113,7 +1166,7 @@ function workflowRoute({
|
|
|
1113
1166
|
}
|
|
1114
1167
|
},
|
|
1115
1168
|
handler: async (c) => {
|
|
1116
|
-
const { inputData, ...rest } = await c.req.json();
|
|
1169
|
+
const { inputData, resumeData, ...rest } = await c.req.json();
|
|
1117
1170
|
const mastra = c.get("mastra");
|
|
1118
1171
|
let workflowToUse = workflow;
|
|
1119
1172
|
if (!workflow) {
|
|
@@ -1132,11 +1185,11 @@ function workflowRoute({
|
|
|
1132
1185
|
if (!workflowObj) {
|
|
1133
1186
|
throw new Error(`Workflow ${workflowToUse} not found`);
|
|
1134
1187
|
}
|
|
1135
|
-
const run = await workflowObj.
|
|
1136
|
-
const stream = run.
|
|
1188
|
+
const run = await workflowObj.createRun();
|
|
1189
|
+
const stream = resumeData ? run.resumeStream({ resumeData, ...rest }) : run.stream({ inputData, ...rest });
|
|
1137
1190
|
const uiMessageStream = createUIMessageStream({
|
|
1138
1191
|
execute: async ({ writer }) => {
|
|
1139
|
-
for await (const part of
|
|
1192
|
+
for await (const part of toAISdkV5Stream(stream, { from: "workflow" })) {
|
|
1140
1193
|
writer.write(part);
|
|
1141
1194
|
}
|
|
1142
1195
|
}
|
|
@@ -1230,7 +1283,7 @@ function networkRoute({
|
|
|
1230
1283
|
});
|
|
1231
1284
|
const uiMessageStream = createUIMessageStream({
|
|
1232
1285
|
execute: async ({ writer }) => {
|
|
1233
|
-
for await (const part of
|
|
1286
|
+
for await (const part of toAISdkV5Stream(result, { from: "network" })) {
|
|
1234
1287
|
writer.write(part);
|
|
1235
1288
|
}
|
|
1236
1289
|
}
|
|
@@ -1240,6 +1293,13 @@ function networkRoute({
|
|
|
1240
1293
|
});
|
|
1241
1294
|
}
|
|
1242
1295
|
|
|
1243
|
-
|
|
1296
|
+
// src/to-ai-sdk-format.ts
|
|
1297
|
+
function toAISdkFormat() {
|
|
1298
|
+
throw new Error(
|
|
1299
|
+
'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.'
|
|
1300
|
+
);
|
|
1301
|
+
}
|
|
1302
|
+
|
|
1303
|
+
export { chatRoute, networkRoute, toAISdkFormat, toAISdkV5Stream as toAISdkStream, workflowRoute };
|
|
1244
1304
|
//# sourceMappingURL=index.js.map
|
|
1245
1305
|
//# sourceMappingURL=index.js.map
|