@mastra/react 0.4.1-alpha.1 → 0.4.1-alpha.10

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
@@ -67,39 +67,6 @@ var MastraReactProvider = ({
67
67
  );
68
68
  };
69
69
 
70
- // src/agent/extractRunIdFromMessages.ts
71
- var extractRunIdFromMessages = (messages) => {
72
- for (const message of messages) {
73
- const metadataSources = [
74
- message.metadata?.pendingToolApprovals,
75
- message.metadata?.requireApprovalMetadata,
76
- message.metadata?.suspendedTools
77
- ];
78
- for (const source of metadataSources) {
79
- if (!source || typeof source !== "object") continue;
80
- for (const suspensionData of Object.values(source)) {
81
- if (suspensionData && typeof suspensionData === "object" && typeof suspensionData.runId === "string" && suspensionData.runId.length > 0) {
82
- return suspensionData.runId;
83
- }
84
- }
85
- }
86
- }
87
- return void 0;
88
- };
89
-
90
- // src/agent/signal-data.ts
91
- function convertSignalDataToBase64String(content) {
92
- if (typeof content === "string") {
93
- return content;
94
- }
95
- const bytes = content instanceof ArrayBuffer ? new Uint8Array(content) : content;
96
- let binary = "";
97
- for (const byte of bytes) {
98
- binary += String.fromCharCode(byte);
99
- }
100
- return btoa(binary);
101
- }
102
-
103
70
  // src/lib/ai-sdk/utils/formatCompletionFeedback.ts
104
71
  var formatBaseCompletionFeedback = (result, maxIterationReached, formatScorerHeading, incompleteMessage) => {
105
72
  const lines = [];
@@ -511,6 +478,39 @@ var toUIMessage = ({ chunk, conversation, metadata }) => {
511
478
  }
512
479
  ];
513
480
  }
481
+ case "reasoning-start": {
482
+ const lastMessage = result[result.length - 1];
483
+ if (!lastMessage || lastMessage.role !== "assistant") {
484
+ const newMessage = {
485
+ id: `reasoning-${chunk.runId + Date.now()}`,
486
+ role: "assistant",
487
+ parts: [
488
+ {
489
+ type: "reasoning",
490
+ text: "",
491
+ state: "streaming",
492
+ providerMetadata: chunk.payload.providerMetadata
493
+ }
494
+ ],
495
+ metadata
496
+ };
497
+ return [...result, newMessage];
498
+ }
499
+ const parts = [...lastMessage.parts];
500
+ parts.push({
501
+ type: "reasoning",
502
+ text: "",
503
+ state: "streaming",
504
+ providerMetadata: chunk.payload.providerMetadata
505
+ });
506
+ return [
507
+ ...result.slice(0, -1),
508
+ {
509
+ ...lastMessage,
510
+ parts
511
+ }
512
+ ];
513
+ }
514
514
  case "reasoning-delta": {
515
515
  const lastMessage = result[result.length - 1];
516
516
  if (!lastMessage || lastMessage.role !== "assistant") {
@@ -554,6 +554,36 @@ var toUIMessage = ({ chunk, conversation, metadata }) => {
554
554
  }
555
555
  ];
556
556
  }
557
+ case "reasoning-end": {
558
+ const lastMessage = result[result.length - 1];
559
+ if (!lastMessage || lastMessage.role !== "assistant") return result;
560
+ const parts = [...lastMessage.parts];
561
+ const reasoningPartIndex = parts.findLastIndex(
562
+ (part) => part.type === "reasoning" && part.state === "streaming"
563
+ );
564
+ if (reasoningPartIndex === -1) return result;
565
+ const reasoningPart = parts[reasoningPartIndex];
566
+ if (reasoningPart.type !== "reasoning") return result;
567
+ const existingMetadata = reasoningPart.providerMetadata;
568
+ const endMetadata = chunk.payload.providerMetadata;
569
+ parts[reasoningPartIndex] = {
570
+ ...reasoningPart,
571
+ state: "done",
572
+ ...existingMetadata || endMetadata ? {
573
+ providerMetadata: {
574
+ ...existingMetadata ?? {},
575
+ ...endMetadata ?? {}
576
+ }
577
+ } : {}
578
+ };
579
+ return [
580
+ ...result.slice(0, -1),
581
+ {
582
+ ...lastMessage,
583
+ parts
584
+ }
585
+ ];
586
+ }
557
587
  case "tool-call": {
558
588
  const lastMessage = result[result.length - 1];
559
589
  if (!lastMessage || lastMessage.role !== "assistant") {
@@ -1956,6 +1986,39 @@ var fromCoreUserMessageToUIMessage = (coreUserMessage) => {
1956
1986
  };
1957
1987
  };
1958
1988
 
1989
+ // src/agent/extractRunIdFromMessages.ts
1990
+ var extractRunIdFromMessages = (messages) => {
1991
+ for (const message of messages) {
1992
+ const metadataSources = [
1993
+ message.metadata?.pendingToolApprovals,
1994
+ message.metadata?.requireApprovalMetadata,
1995
+ message.metadata?.suspendedTools
1996
+ ];
1997
+ for (const source of metadataSources) {
1998
+ if (!source || typeof source !== "object") continue;
1999
+ for (const suspensionData of Object.values(source)) {
2000
+ if (suspensionData && typeof suspensionData === "object" && typeof suspensionData.runId === "string" && suspensionData.runId.length > 0) {
2001
+ return suspensionData.runId;
2002
+ }
2003
+ }
2004
+ }
2005
+ }
2006
+ return void 0;
2007
+ };
2008
+
2009
+ // src/agent/signal-data.ts
2010
+ function convertSignalDataToBase64String(content) {
2011
+ if (typeof content === "string") {
2012
+ return content;
2013
+ }
2014
+ const bytes = content instanceof ArrayBuffer ? new Uint8Array(content) : content;
2015
+ let binary = "";
2016
+ for (const byte of bytes) {
2017
+ binary += String.fromCharCode(byte);
2018
+ }
2019
+ return btoa(binary);
2020
+ }
2021
+
1959
2022
  // src/agent/hooks.ts
1960
2023
  var isThreadSignalUnsupportedError = (error) => {
1961
2024
  const candidate = error;
@@ -1971,6 +2034,7 @@ var useChat = ({
1971
2034
  threadId,
1972
2035
  initialMessages,
1973
2036
  requestContext: propsRequestContext,
2037
+ clientTools: hookClientTools,
1974
2038
  onSignalSent,
1975
2039
  onSignalEcho,
1976
2040
  onThreadSignalsUnsupported,
@@ -2164,6 +2228,7 @@ var useChat = ({
2164
2228
  requireToolApproval
2165
2229
  } = modelSettings || {};
2166
2230
  const resolvedRequestContext = requestContext ?? propsRequestContext;
2231
+ const resolvedClientTools = clientTools ?? hookClientTools;
2167
2232
  _requestContext.current = resolvedRequestContext;
2168
2233
  setIsRunning(true);
2169
2234
  const clientWithAbort = new MastraClient({
@@ -2191,7 +2256,7 @@ var useChat = ({
2191
2256
  providerOptions,
2192
2257
  tracingOptions,
2193
2258
  requireToolApproval,
2194
- clientTools
2259
+ clientTools: resolvedClientTools
2195
2260
  });
2196
2261
  if (response.finishReason === "suspended" && response.suspendPayload) {
2197
2262
  const { toolCallId, toolName, args } = response.suspendPayload;
@@ -2251,6 +2316,23 @@ var useChat = ({
2251
2316
  requireToolApproval
2252
2317
  } = modelSettings || {};
2253
2318
  const resolvedRequestContext = requestContext ?? propsRequestContext;
2319
+ const resolvedClientTools = clientTools ?? hookClientTools;
2320
+ const signalContinuationOptions = {
2321
+ maxSteps,
2322
+ modelSettings: {
2323
+ frequencyPenalty,
2324
+ presencePenalty,
2325
+ maxRetries,
2326
+ maxOutputTokens: maxTokens,
2327
+ temperature,
2328
+ topK,
2329
+ topP
2330
+ },
2331
+ instructions,
2332
+ providerOptions,
2333
+ requireToolApproval,
2334
+ tracingOptions
2335
+ };
2254
2336
  _requestContext.current = resolvedRequestContext;
2255
2337
  setIsRunning(true);
2256
2338
  _streamAbortRef.current?.abort();
@@ -2285,7 +2367,7 @@ var useChat = ({
2285
2367
  providerOptions,
2286
2368
  requireToolApproval,
2287
2369
  tracingOptions,
2288
- clientTools
2370
+ clientTools: resolvedClientTools
2289
2371
  });
2290
2372
  _onChunk.current = onChunk;
2291
2373
  _currentRunId.current = runId;
@@ -2320,21 +2402,9 @@ var useChat = ({
2320
2402
  threadId: threadId2,
2321
2403
  ifIdle: {
2322
2404
  streamOptions: {
2323
- maxSteps,
2324
- modelSettings: {
2325
- frequencyPenalty,
2326
- presencePenalty,
2327
- maxRetries,
2328
- maxOutputTokens: maxTokens,
2329
- temperature,
2330
- topK,
2331
- topP
2332
- },
2333
- instructions,
2405
+ ...signalContinuationOptions,
2334
2406
  requestContext: resolvedRequestContext,
2335
- providerOptions,
2336
- requireToolApproval,
2337
- tracingOptions
2407
+ clientTools: resolvedClientTools
2338
2408
  }
2339
2409
  }
2340
2410
  });