@mastra/react 0.0.0-netlify-no-bundle-20251127120354 → 0.0.0-partial-response-backport-20251204204441

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
@@ -438,10 +438,11 @@ const toUIMessage = ({ chunk, conversation, metadata }) => {
438
438
  const lastMessage = result[result.length - 1];
439
439
  if (!lastMessage || lastMessage.role !== "assistant") return result;
440
440
  const parts = lastMessage.parts.map((part) => {
441
- if (typeof part === "object" && part !== null && "type" in part && "state" in part && part.state === "streaming") {
442
- if (part.type === "text" || part.type === "reasoning") {
443
- return { ...part, state: "done" };
444
- }
441
+ if (part.type === "text" && part.state === "streaming") {
442
+ return { ...part, state: "done" };
443
+ }
444
+ if (part.type === "reasoning" && part.state === "streaming") {
445
+ return { ...part, state: "done" };
445
446
  }
446
447
  return part;
447
448
  });
@@ -613,23 +614,13 @@ const toAssistantUIMessage = (message) => {
613
614
  };
614
615
  }
615
616
  if (part.type === "file") {
616
- const type = part.mediaType.includes("image/") ? "image" : "file";
617
- if (type === "file") {
618
- return {
619
- type,
620
- mimeType: part.mediaType,
621
- data: part.url,
622
- // Use URL as data source
623
- metadata: message.metadata
624
- };
625
- }
626
- if (type === "image") {
627
- return {
628
- type,
629
- image: part.url,
630
- metadata: message.metadata
631
- };
632
- }
617
+ return {
618
+ type: "file",
619
+ mimeType: part.mediaType,
620
+ data: part.url,
621
+ // Use URL as data source
622
+ metadata: message.metadata
623
+ };
633
624
  }
634
625
  if (part.type === "dynamic-tool") {
635
626
  const baseToolCall = {
@@ -720,9 +711,7 @@ const toAssistantUIMessage = (message) => {
720
711
 
721
712
  const resolveInitialMessages = (messages) => {
722
713
  return messages.map((message) => {
723
- const networkPart = message.parts.find(
724
- (part) => typeof part === "object" && part !== null && "type" in part && part.type === "text" && "text" in part && typeof part.text === "string" && part.text.includes('"isNetwork":true')
725
- );
714
+ const networkPart = message.parts.find((part) => part.type === "text" && part.text.includes('"isNetwork":true'));
726
715
  if (networkPart && networkPart.type === "text") {
727
716
  try {
728
717
  const json = JSON.parse(networkPart.text);
@@ -1207,51 +1196,6 @@ class AISdkNetworkTransformer {
1207
1196
  };
1208
1197
  }
1209
1198
 
1210
- const fromCoreUserMessageToUIMessage = (coreUserMessage) => {
1211
- const id = `user-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`;
1212
- const parts = typeof coreUserMessage.content === "string" ? [
1213
- {
1214
- type: "text",
1215
- text: coreUserMessage.content
1216
- }
1217
- ] : coreUserMessage.content.map((part) => {
1218
- switch (part.type) {
1219
- case "text": {
1220
- return {
1221
- type: "text",
1222
- text: part.text
1223
- };
1224
- }
1225
- case "image": {
1226
- const url = typeof part.image === "string" ? part.image : part.image instanceof URL ? part.image.toString() : "";
1227
- return {
1228
- type: "file",
1229
- mediaType: part.mimeType ?? "image/*",
1230
- url
1231
- };
1232
- }
1233
- case "file": {
1234
- const url = typeof part.data === "string" ? part.data : part.data instanceof URL ? part.data.toString() : "";
1235
- return {
1236
- type: "file",
1237
- mediaType: part.mimeType,
1238
- url,
1239
- ...part.filename !== void 0 ? { filename: part.filename } : {}
1240
- };
1241
- }
1242
- default: {
1243
- const exhaustiveCheck = part;
1244
- throw new Error(`Unhandled content part type: ${exhaustiveCheck.type}`);
1245
- }
1246
- }
1247
- });
1248
- return {
1249
- id,
1250
- role: "user",
1251
- parts
1252
- };
1253
- };
1254
-
1255
1199
  const useChat = ({ agentId, resourceId, initializeMessages }) => {
1256
1200
  const extractRunIdFromMessages = (messages2) => {
1257
1201
  for (const message of messages2) {
@@ -1275,7 +1219,7 @@ const useChat = ({ agentId, resourceId, initializeMessages }) => {
1275
1219
  const [isRunning, setIsRunning] = useState(false);
1276
1220
  const generate = async ({
1277
1221
  coreUserMessages,
1278
- requestContext,
1222
+ runtimeContext,
1279
1223
  threadId,
1280
1224
  modelSettings,
1281
1225
  signal,
@@ -1313,7 +1257,7 @@ const useChat = ({ agentId, resourceId, initializeMessages }) => {
1313
1257
  topP
1314
1258
  },
1315
1259
  instructions,
1316
- requestContext,
1260
+ runtimeContext,
1317
1261
  ...threadId ? { threadId, resourceId: resourceId || agentId } : {},
1318
1262
  providerOptions
1319
1263
  });
@@ -1329,7 +1273,7 @@ const useChat = ({ agentId, resourceId, initializeMessages }) => {
1329
1273
  setMessages((prev) => [...prev, ...mastraUIMessages]);
1330
1274
  }
1331
1275
  };
1332
- const stream = async ({ coreUserMessages, requestContext, threadId, onChunk, modelSettings, signal }) => {
1276
+ const stream = async ({ coreUserMessages, runtimeContext, threadId, onChunk, modelSettings, signal }) => {
1333
1277
  const {
1334
1278
  frequencyPenalty,
1335
1279
  presencePenalty,
@@ -1364,7 +1308,7 @@ const useChat = ({ agentId, resourceId, initializeMessages }) => {
1364
1308
  topP
1365
1309
  },
1366
1310
  instructions,
1367
- requestContext,
1311
+ runtimeContext,
1368
1312
  ...threadId ? { threadId, resourceId: resourceId || agentId } : {},
1369
1313
  providerOptions,
1370
1314
  requireToolApproval
@@ -1381,7 +1325,7 @@ const useChat = ({ agentId, resourceId, initializeMessages }) => {
1381
1325
  };
1382
1326
  const network = async ({
1383
1327
  coreUserMessages,
1384
- requestContext,
1328
+ runtimeContext,
1385
1329
  threadId,
1386
1330
  onNetworkChunk,
1387
1331
  modelSettings,
@@ -1408,7 +1352,7 @@ const useChat = ({ agentId, resourceId, initializeMessages }) => {
1408
1352
  topP
1409
1353
  },
1410
1354
  runId,
1411
- requestContext,
1355
+ runtimeContext,
1412
1356
  ...threadId ? { thread: threadId, resourceId: resourceId || agentId } : {}
1413
1357
  });
1414
1358
  const transformer = new AISdkNetworkTransformer();
@@ -1461,18 +1405,14 @@ const useChat = ({ agentId, resourceId, initializeMessages }) => {
1461
1405
  };
1462
1406
  const sendMessage = async ({ mode = "stream", ...args }) => {
1463
1407
  const nextMessage = { role: "user", content: [{ type: "text", text: args.message }] };
1464
- const coreUserMessages = [nextMessage];
1465
- if (args.coreUserMessages) {
1466
- coreUserMessages.push(...args.coreUserMessages);
1467
- }
1468
- const uiMessages = coreUserMessages.map(fromCoreUserMessageToUIMessage);
1469
- setMessages((s) => [...s, ...uiMessages]);
1408
+ const messages2 = args.coreUserMessages ? [nextMessage, ...args.coreUserMessages] : [nextMessage];
1409
+ setMessages((s) => [...s, { role: "user", parts: [{ type: "text", text: args.message }] }]);
1470
1410
  if (mode === "generate") {
1471
- await generate({ ...args, coreUserMessages });
1411
+ await generate({ ...args, coreUserMessages: messages2 });
1472
1412
  } else if (mode === "stream") {
1473
- await stream({ ...args, coreUserMessages });
1413
+ await stream({ ...args, coreUserMessages: messages2 });
1474
1414
  } else if (mode === "network") {
1475
- await network({ ...args, coreUserMessages });
1415
+ await network({ ...args, coreUserMessages: messages2 });
1476
1416
  }
1477
1417
  };
1478
1418
  return {