@mastra/ai-sdk 0.0.0-fix-persist-session-cache-option-mcp-server-20251031182703 → 0.0.0-fix-9244-clickhouse-metadata-20251104213434

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/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: chunk.runId,
456
- onError() {
457
- return "Error";
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/to-ai-sdk-format.ts
910
- function toAISdkFormat(stream, options = { from: "agent" }) {
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 toAISdkFormat(result, { from: "agent" })) {
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.createRunAsync();
1136
- const stream = run.streamVNext({ inputData, ...rest });
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 toAISdkFormat(stream, { from: "workflow" })) {
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 toAISdkFormat(result, { from: "network" })) {
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
- export { chatRoute, networkRoute, toAISdkFormat, workflowRoute };
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