@mastra/react 0.2.36-alpha.3 → 0.2.36-alpha.4

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
@@ -689,17 +689,29 @@ var toUIMessage = ({ chunk, conversation, metadata }) => {
689
689
  }
690
690
  ];
691
691
  }
692
- case "tool-call-suspended": {
693
- const lastMessage = result[result.length - 1];
694
- if (!lastMessage || lastMessage.role !== "assistant") return result;
695
- const lastSuspendedTools = lastMessage.metadata?.mode === "stream" ? lastMessage.metadata?.suspendedTools : {};
696
- return [
697
- ...result.slice(0, -1),
698
- {
699
- ...lastMessage,
700
- metadata: {
701
- ...lastMessage.metadata,
702
- mode: "stream",
692
+ case "tool-call-suspended":
693
+ case "background-task-suspended": {
694
+ const isBgTaskEvent = chunk.type === "background-task-suspended";
695
+ const location = isBgTaskEvent ? locateToolPart(result, chunk.payload.toolCallId, isBgTaskEvent) : { messageIndex: result.length - 1 };
696
+ if (!location) return result;
697
+ const { messageIndex } = location;
698
+ const targetMessage = result[messageIndex];
699
+ if (!targetMessage || targetMessage.role !== "assistant") return result;
700
+ const lastSuspendedTools = targetMessage.metadata?.mode === "stream" ? targetMessage.metadata?.suspendedTools : {};
701
+ const nextMessage = {
702
+ ...targetMessage,
703
+ metadata: mergeBgTaskMetadata(
704
+ targetMessage.metadata,
705
+ "stream",
706
+ {
707
+ resetRunningCount: isBgTaskEvent,
708
+ perTaskEntry: isBgTaskEvent ? {
709
+ toolCallId: chunk.payload.toolCallId,
710
+ suspendedAt: chunk.payload.suspendedAt,
711
+ taskId: chunk.payload.taskId
712
+ } : void 0
713
+ },
714
+ {
703
715
  suspendedTools: {
704
716
  ...lastSuspendedTools,
705
717
  [chunk.payload.toolName]: {
@@ -711,8 +723,9 @@ var toUIMessage = ({ chunk, conversation, metadata }) => {
711
723
  }
712
724
  }
713
725
  }
714
- }
715
- ];
726
+ )
727
+ };
728
+ return [...result.slice(0, messageIndex), nextMessage, ...result.slice(messageIndex + 1)];
716
729
  }
717
730
  case "finish": {
718
731
  const lastMessage = result[result.length - 1];
@@ -904,22 +917,24 @@ var locateToolPart = (messages, toolCallId, allowMetadataOnlyMatch) => {
904
917
  }
905
918
  return { messageIndex, toolPartIndex };
906
919
  };
907
- var mergeBgTaskMetadata = (existing, mode, args) => {
920
+ var mergeBgTaskMetadata = (existing, mode, args, otherMetadata) => {
908
921
  const existingAny = existing ?? {};
909
922
  const existingBgTasks = existingAny.backgroundTasks ?? {};
910
923
  const nextBgTasks = { ...existingBgTasks };
911
924
  if (args.perTaskEntry) {
912
- const { toolCallId, startedAt, completedAt, taskId } = args.perTaskEntry;
925
+ const { toolCallId, startedAt, completedAt, taskId, suspendedAt } = args.perTaskEntry;
913
926
  const prev = existingBgTasks[toolCallId] ?? { taskId };
914
927
  nextBgTasks[toolCallId] = {
915
928
  ...prev,
916
929
  taskId,
917
930
  ...startedAt !== void 0 ? { startedAt } : {},
918
- ...completedAt !== void 0 ? { completedAt } : {}
931
+ ...completedAt !== void 0 ? { completedAt } : {},
932
+ ...suspendedAt !== void 0 ? { suspendedAt } : {}
919
933
  };
920
934
  }
921
935
  return {
922
936
  ...existingAny,
937
+ ...otherMetadata ?? {},
923
938
  mode,
924
939
  ...args.resetRunningCount ? { runningBackgroundTasksCount: void 0 } : {},
925
940
  backgroundTasks: nextBgTasks