@mastra/react 1.5.1-alpha.3 → 1.6.0-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.cjs CHANGED
@@ -1,5 +1,4 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_ui = require("./ui-C979LXC_.cjs");
3
2
  let _mastra_client_js = require("@mastra/client-js");
4
3
  let react = require("react");
5
4
  let react_jsx_runtime = require("react/jsx-runtime");
@@ -268,39 +267,47 @@ const mergeBgTaskMetadata = (existing, mode, args, otherMetadata) => {
268
267
  * `mapWorkflowStreamChunkToWatchResult` from the previous accumulator.
269
268
  */
270
269
  const mapWorkflowStreamChunkToWatchResult = (prev, chunk) => {
270
+ const previous = prev ?? {
271
+ status: "running",
272
+ input: void 0,
273
+ steps: {}
274
+ };
271
275
  if (chunk.type === "workflow-start") return {
272
- input: prev?.input,
276
+ input: previous.input,
273
277
  status: "running",
274
- steps: prev?.steps || {}
278
+ steps: previous.steps
275
279
  };
276
280
  if (chunk.type === "workflow-canceled") return {
277
- ...prev,
281
+ ...previous,
278
282
  status: "canceled"
279
283
  };
284
+ if (chunk.type === "workflow-paused") return {
285
+ ...previous,
286
+ status: "paused"
287
+ };
280
288
  if (chunk.type === "workflow-finish") {
281
289
  const finalStatus = chunk.payload.workflowStatus;
282
- const prevSteps = prev?.steps ?? {};
283
- const lastStep = Object.values(prevSteps).pop();
290
+ const lastStep = Object.values(previous.steps).pop();
284
291
  return {
285
- ...prev,
292
+ ...previous,
286
293
  status: chunk.payload.workflowStatus,
287
294
  ...finalStatus === "success" && lastStep?.status === "success" ? { result: lastStep?.output } : finalStatus === "failed" && lastStep?.status === "failed" ? { error: lastStep?.error } : finalStatus === "tripwire" && chunk.payload.tripwire ? { tripwire: chunk.payload.tripwire } : {}
288
295
  };
289
296
  }
290
297
  const { stepCallId: _stepCallId, stepName: _stepName, ...newPayload } = chunk.payload ?? {};
291
298
  const newSteps = {
292
- ...prev?.steps,
299
+ ...previous.steps,
293
300
  [chunk.payload.id]: {
294
- ...prev?.steps?.[chunk.payload.id],
301
+ ...previous.steps[chunk.payload.id],
295
302
  ...newPayload
296
303
  }
297
304
  };
298
305
  if (chunk.type === "workflow-step-start") return {
299
- ...prev,
306
+ ...previous,
300
307
  steps: newSteps
301
308
  };
302
309
  if (chunk.type === "workflow-step-suspended") {
303
- const suspendedStepIds = Object.entries(newSteps).flatMap(([stepId, stepResult]) => {
310
+ const suspended = Object.entries(newSteps).flatMap(([stepId, stepResult]) => {
304
311
  if (stepResult?.status === "suspended") {
305
312
  const nestedPath = stepResult?.suspendPayload?.__workflow_meta?.path;
306
313
  return nestedPath ? [[stepId, ...nestedPath]] : [[stepId]];
@@ -308,24 +315,24 @@ const mapWorkflowStreamChunkToWatchResult = (prev, chunk) => {
308
315
  return [];
309
316
  });
310
317
  return {
311
- ...prev,
318
+ ...previous,
312
319
  status: "suspended",
313
320
  steps: newSteps,
314
321
  suspendPayload: chunk.payload.suspendPayload,
315
- suspended: suspendedStepIds
322
+ suspended
316
323
  };
317
324
  }
318
325
  if (chunk.type === "workflow-step-waiting") return {
319
- ...prev,
326
+ ...previous,
320
327
  status: "waiting",
321
328
  steps: newSteps
322
329
  };
323
330
  if (chunk.type === "workflow-step-progress") return {
324
- ...prev,
331
+ ...previous,
325
332
  steps: {
326
- ...prev?.steps,
333
+ ...previous.steps,
327
334
  [chunk.payload.id]: {
328
- ...prev?.steps?.[chunk.payload.id],
335
+ ...previous.steps[chunk.payload.id],
329
336
  foreachProgress: {
330
337
  completedCount: chunk.payload.completedCount,
331
338
  totalCount: chunk.payload.totalCount,
@@ -337,10 +344,10 @@ const mapWorkflowStreamChunkToWatchResult = (prev, chunk) => {
337
344
  }
338
345
  };
339
346
  if (chunk.type === "workflow-step-result") return {
340
- ...prev,
347
+ ...previous,
341
348
  steps: newSteps
342
349
  };
343
- return prev;
350
+ return previous;
344
351
  };
345
352
  const signalContentsToUserMessages = (contents, metadata) => {
346
353
  const makeUserMessage = (parts) => ({
@@ -917,7 +924,7 @@ const accumulateChunk = ({ chunk, conversation, metadata }) => {
917
924
  const { toolName, toolCallId, args } = toolPart.toolInvocation;
918
925
  const payloadOutput = chunk.type === "background-task-output" ? chunk.payload.payload.payload.output : chunk.payload.output;
919
926
  if (payloadOutput?.type?.startsWith("workflow-")) {
920
- const existingWorkflowState = toolPart.toolInvocation.result || {};
927
+ const existingWorkflowState = toolPart.toolInvocation.result;
921
928
  const updated = mapWorkflowStreamChunkToWatchResult(existingWorkflowState, payloadOutput);
922
929
  parts[toolPartIndex] = {
923
930
  ...toolPart,
@@ -1147,8 +1154,7 @@ const accumulateChunk = ({ chunk, conversation, metadata }) => {
1147
1154
  case "network-validation-start":
1148
1155
  case "network-validation-end":
1149
1156
  case "network-object":
1150
- case "network-object-result":
1151
- case "tool-output-denied": return result;
1157
+ case "network-object-result": return result;
1152
1158
  default: return assertExhaustive(chunk, result);
1153
1159
  }
1154
1160
  };
@@ -2817,275 +2823,133 @@ function useMutation(mutationFn) {
2817
2823
  }
2818
2824
  //#endregion
2819
2825
  //#region src/workflows/use-stream-workflow.ts
2820
- /**
2821
- * Hook for streaming workflow execution with support for observing, resuming, and time-travel.
2822
- *
2823
- * @example
2824
- * ```tsx
2825
- * const {
2826
- * streamWorkflow,
2827
- * streamResult,
2828
- * isStreaming,
2829
- * observeWorkflowStream,
2830
- * closeStreamsAndReset,
2831
- * resumeWorkflowStream,
2832
- * timeTravelWorkflowStream,
2833
- * } = useStreamWorkflow({
2834
- * debugMode: true,
2835
- * tracingOptions: { enabled: true },
2836
- * onError: (error, defaultMessage) => console.error(defaultMessage, error),
2837
- * });
2838
- *
2839
- * // Start streaming a workflow
2840
- * await streamWorkflow.mutateAsync({
2841
- * workflowId: 'my-workflow',
2842
- * runId: 'run-123',
2843
- * inputData: { key: 'value' },
2844
- * requestContext: {},
2845
- * });
2846
- * ```
2847
- */
2848
2826
  function useStreamWorkflow({ debugMode, tracingOptions, onError }) {
2849
2827
  const client = useMastraClient();
2850
- const [streamResult, setStreamResult] = (0, react.useState)({});
2828
+ const [streamResult, setStreamResult] = (0, react.useState)();
2851
2829
  const [isStreaming, setIsStreaming] = (0, react.useState)(false);
2852
- const readerRef = (0, react.useRef)(null);
2853
- const observerRef = (0, react.useRef)(null);
2854
- const resumeStreamRef = (0, react.useRef)(null);
2855
- const timeTravelStreamRef = (0, react.useRef)(null);
2830
+ const activeStream = (0, react.useRef)(void 0);
2856
2831
  const isMountedRef = (0, react.useRef)(true);
2832
+ const closeActiveStream = (0, react.useCallback)(() => {
2833
+ const operation = activeStream.current;
2834
+ activeStream.current = void 0;
2835
+ if (!operation) return;
2836
+ operation.controller.abort();
2837
+ operation.reader?.cancel().catch(() => void 0);
2838
+ operation.reader?.releaseLock();
2839
+ operation.reader = void 0;
2840
+ }, []);
2857
2841
  (0, react.useEffect)(() => {
2858
2842
  isMountedRef.current = true;
2859
2843
  return () => {
2860
2844
  isMountedRef.current = false;
2861
- if (readerRef.current) {
2862
- try {
2863
- readerRef.current.releaseLock();
2864
- } catch {}
2865
- readerRef.current = null;
2866
- }
2867
- if (observerRef.current) {
2868
- try {
2869
- observerRef.current.releaseLock();
2870
- } catch {}
2871
- observerRef.current = null;
2872
- }
2873
- if (resumeStreamRef.current) {
2874
- try {
2875
- resumeStreamRef.current.releaseLock();
2876
- } catch {}
2877
- resumeStreamRef.current = null;
2878
- }
2879
- if (timeTravelStreamRef.current) {
2880
- try {
2881
- timeTravelStreamRef.current.releaseLock();
2882
- } catch {}
2883
- timeTravelStreamRef.current = null;
2884
- }
2845
+ closeActiveStream();
2885
2846
  };
2886
- }, []);
2887
- const handleStreamError = (0, react.useCallback)((err, defaultMessage, setStreamingState) => {
2888
- if (err instanceof TypeError) return;
2889
- const error = err instanceof Error ? err : new Error(defaultMessage);
2890
- onError?.(error, defaultMessage);
2891
- setStreamingState?.(false);
2892
- }, [onError]);
2893
- const handleWorkflowFinish = (0, react.useCallback)((value) => {
2894
- if (value.type === "workflow-finish") {
2895
- const streamStatus = value.payload?.workflowStatus;
2896
- const metadata = value.payload?.metadata;
2897
- setStreamResult((prev) => ({
2898
- ...prev,
2899
- status: streamStatus
2900
- }));
2901
- if (streamStatus === "failed") throw new Error(metadata?.errorMessage || "Workflow execution failed");
2902
- }
2903
- }, []);
2904
- const streamWorkflow = useMutation(async ({ workflowId, runId, inputData, initialState, requestContext: playgroundRequestContext, perStep }) => {
2905
- if (readerRef.current) readerRef.current.releaseLock();
2847
+ }, [closeActiveStream]);
2848
+ async function consumeStream(openStream, defaultMessage) {
2906
2849
  if (!isMountedRef.current) return;
2850
+ closeActiveStream();
2851
+ const operation = { controller: new AbortController() };
2852
+ activeStream.current = operation;
2853
+ const { signal } = operation.controller;
2907
2854
  setIsStreaming(true);
2908
- setStreamResult({ input: inputData });
2909
- const stream = await (await client.getWorkflow(workflowId).createRun({ runId })).stream({
2910
- inputData,
2911
- initialState,
2912
- requestContext: playgroundRequestContext,
2913
- closeOnSuspend: true,
2914
- tracingOptions,
2915
- perStep: perStep ?? debugMode
2916
- });
2917
- if (!stream) return handleStreamError(/* @__PURE__ */ new Error("No stream returned"), "No stream returned", setIsStreaming);
2918
- const reader = stream.getReader();
2919
- readerRef.current = reader;
2920
2855
  try {
2921
- while (true) {
2922
- if (!isMountedRef.current) break;
2856
+ const stream = await openStream(signal);
2857
+ if (signal.aborted) {
2858
+ await stream?.cancel();
2859
+ return;
2860
+ }
2861
+ if (!stream) {
2862
+ onError?.(/* @__PURE__ */ new Error("No stream returned"), "No stream returned");
2863
+ return;
2864
+ }
2865
+ const reader = stream.getReader();
2866
+ operation.reader = reader;
2867
+ while (!signal.aborted) {
2923
2868
  const { done, value } = await reader.read();
2924
- if (done) break;
2925
- if (isMountedRef.current) {
2926
- setStreamResult((prev) => {
2927
- return mapWorkflowStreamChunkToWatchResult(prev, value);
2928
- });
2929
- if (value.type === "workflow-step-start") setIsStreaming(true);
2930
- if (value.type === "workflow-step-suspended") setIsStreaming(false);
2931
- if (value.type === "workflow-finish") handleWorkflowFinish(value);
2932
- }
2869
+ if (done || signal.aborted) break;
2870
+ setStreamResult((previous) => mapWorkflowStreamChunkToWatchResult(previous, value));
2871
+ if (value.type === "workflow-step-start") setIsStreaming(true);
2872
+ if (value.type === "workflow-step-suspended") setIsStreaming(false);
2873
+ if (value.type === "workflow-finish" && value.payload.workflowStatus === "failed") throw new Error(value.payload.metadata?.errorMessage || "Workflow execution failed");
2874
+ }
2875
+ } catch (error) {
2876
+ if (!signal.aborted) {
2877
+ if (!operation.reader) throw error;
2878
+ onError?.(error instanceof Error ? error : new Error(defaultMessage), defaultMessage);
2933
2879
  }
2934
- } catch (err) {
2935
- handleStreamError(err, "Error streaming workflow");
2936
2880
  } finally {
2937
- if (isMountedRef.current) setIsStreaming(false);
2938
- if (readerRef.current) {
2939
- readerRef.current.releaseLock();
2940
- readerRef.current = null;
2881
+ operation.reader?.releaseLock();
2882
+ operation.reader = void 0;
2883
+ if (activeStream.current === operation) {
2884
+ activeStream.current = void 0;
2885
+ setIsStreaming(false);
2941
2886
  }
2942
2887
  }
2888
+ }
2889
+ const streamWorkflow = useMutation(({ workflowId, runId, inputData, initialState, requestContext, perStep }) => {
2890
+ setStreamResult({
2891
+ status: "pending",
2892
+ input: inputData,
2893
+ steps: {}
2894
+ });
2895
+ return consumeStream(async (signal) => {
2896
+ const run = await client.getWorkflow(workflowId).createRun({ runId });
2897
+ if (signal.aborted) return;
2898
+ return run.stream({
2899
+ inputData,
2900
+ initialState,
2901
+ requestContext,
2902
+ closeOnSuspend: true,
2903
+ tracingOptions,
2904
+ perStep: perStep ?? debugMode
2905
+ });
2906
+ }, "Error streaming workflow");
2943
2907
  });
2944
2908
  const observeWorkflowStream = useMutation(async ({ workflowId, runId, storeRunResult }) => {
2945
- if (observerRef.current) observerRef.current.releaseLock();
2946
2909
  if (!isMountedRef.current) return;
2947
- setIsStreaming(true);
2948
- setStreamResult(storeRunResult || {});
2910
+ setStreamResult(storeRunResult ?? void 0);
2949
2911
  if (storeRunResult?.status === "suspended") {
2912
+ closeActiveStream();
2950
2913
  setIsStreaming(false);
2951
2914
  return;
2952
2915
  }
2953
- const stream = await (await client.getWorkflow(workflowId).createRun({ runId })).observeStream();
2954
- if (!stream) return handleStreamError(/* @__PURE__ */ new Error("No stream returned"), "No stream returned", setIsStreaming);
2955
- const reader = stream.getReader();
2956
- observerRef.current = reader;
2957
- try {
2958
- while (true) {
2959
- if (!isMountedRef.current) break;
2960
- const { done, value } = await reader.read();
2961
- if (done) break;
2962
- if (isMountedRef.current) {
2963
- setStreamResult((prev) => {
2964
- return mapWorkflowStreamChunkToWatchResult(prev, value);
2965
- });
2966
- if (value.type === "workflow-step-start") setIsStreaming(true);
2967
- if (value.type === "workflow-step-suspended") setIsStreaming(false);
2968
- if (value.type === "workflow-finish") handleWorkflowFinish(value);
2969
- }
2970
- }
2971
- } catch (err) {
2972
- handleStreamError(err, "Error observing workflow");
2973
- } finally {
2974
- if (isMountedRef.current) setIsStreaming(false);
2975
- if (observerRef.current) {
2976
- observerRef.current.releaseLock();
2977
- observerRef.current = null;
2978
- }
2979
- }
2916
+ await consumeStream(async (signal) => {
2917
+ const run = await client.getWorkflow(workflowId).createRun({ runId });
2918
+ if (signal.aborted) return;
2919
+ return run.observeStream();
2920
+ }, "Error observing workflow");
2980
2921
  });
2981
- const resumeWorkflowStream = useMutation(async ({ workflowId, runId, step, resumeData, requestContext: playgroundRequestContext, perStep }) => {
2982
- if (resumeStreamRef.current) resumeStreamRef.current.releaseLock();
2983
- if (!isMountedRef.current) return;
2984
- setIsStreaming(true);
2985
- const stream = await (await client.getWorkflow(workflowId).createRun({ runId })).resumeStream({
2922
+ const resumeWorkflowStream = useMutation(({ workflowId, runId, step, resumeData, requestContext, perStep }) => consumeStream(async (signal) => {
2923
+ const run = await client.getWorkflow(workflowId).createRun({ runId });
2924
+ if (signal.aborted) return;
2925
+ return run.resumeStream({
2986
2926
  step,
2987
2927
  resumeData,
2988
- requestContext: playgroundRequestContext,
2928
+ requestContext,
2989
2929
  tracingOptions,
2990
2930
  perStep: perStep ?? debugMode
2991
2931
  });
2992
- if (!stream) return handleStreamError(/* @__PURE__ */ new Error("No stream returned"), "No stream returned", setIsStreaming);
2993
- const reader = stream.getReader();
2994
- resumeStreamRef.current = reader;
2995
- try {
2996
- while (true) {
2997
- if (!isMountedRef.current) break;
2998
- const { done, value } = await reader.read();
2999
- if (done) break;
3000
- if (isMountedRef.current) {
3001
- setStreamResult((prev) => {
3002
- return mapWorkflowStreamChunkToWatchResult(prev, value);
3003
- });
3004
- if (value.type === "workflow-step-start") setIsStreaming(true);
3005
- if (value.type === "workflow-step-suspended") setIsStreaming(false);
3006
- if (value.type === "workflow-finish") handleWorkflowFinish(value);
3007
- }
3008
- }
3009
- } catch (err) {
3010
- handleStreamError(err, "Error resuming workflow stream");
3011
- } finally {
3012
- if (isMountedRef.current) setIsStreaming(false);
3013
- if (resumeStreamRef.current) {
3014
- resumeStreamRef.current.releaseLock();
3015
- resumeStreamRef.current = null;
3016
- }
3017
- }
3018
- });
3019
- const timeTravelWorkflowStream = useMutation(async ({ workflowId, requestContext: playgroundRequestContext, runId, perStep, ...params }) => {
3020
- if (timeTravelStreamRef.current) timeTravelStreamRef.current.releaseLock();
3021
- if (!isMountedRef.current) return;
3022
- setIsStreaming(true);
3023
- const stream = await (await client.getWorkflow(workflowId).createRun({ runId })).timeTravelStream({
2932
+ }, "Error resuming workflow stream"));
2933
+ const timeTravelWorkflowStream = useMutation(({ workflowId, requestContext, runId, perStep, ...params }) => consumeStream(async (signal) => {
2934
+ const run = await client.getWorkflow(workflowId).createRun({ runId });
2935
+ if (signal.aborted) return;
2936
+ return run.timeTravelStream({
3024
2937
  ...params,
3025
2938
  perStep: perStep ?? debugMode,
3026
- requestContext: playgroundRequestContext,
2939
+ requestContext,
3027
2940
  tracingOptions
3028
2941
  });
3029
- if (!stream) return handleStreamError(/* @__PURE__ */ new Error("No stream returned"), "No stream returned", setIsStreaming);
3030
- const reader = stream.getReader();
3031
- timeTravelStreamRef.current = reader;
3032
- try {
3033
- while (true) {
3034
- if (!isMountedRef.current) break;
3035
- const { done, value } = await reader.read();
3036
- if (done) break;
3037
- if (isMountedRef.current) {
3038
- setStreamResult((prev) => {
3039
- return mapWorkflowStreamChunkToWatchResult(prev, value);
3040
- });
3041
- if (value.type === "workflow-step-start") setIsStreaming(true);
3042
- if (value.type === "workflow-step-suspended") setIsStreaming(false);
3043
- if (value.type === "workflow-finish") handleWorkflowFinish(value);
3044
- }
3045
- }
3046
- } catch (err) {
3047
- handleStreamError(err, "Error time traveling workflow stream");
3048
- } finally {
3049
- if (isMountedRef.current) setIsStreaming(false);
3050
- if (timeTravelStreamRef.current) {
3051
- timeTravelStreamRef.current.releaseLock();
3052
- timeTravelStreamRef.current = null;
3053
- }
3054
- }
3055
- });
2942
+ }, "Error time traveling workflow stream"));
3056
2943
  return {
3057
2944
  streamWorkflow,
3058
2945
  streamResult,
3059
2946
  isStreaming,
3060
2947
  observeWorkflowStream,
3061
2948
  closeStreamsAndReset: (0, react.useCallback)(() => {
2949
+ closeActiveStream();
3062
2950
  setIsStreaming(false);
3063
- setStreamResult({});
3064
- if (readerRef.current) {
3065
- try {
3066
- readerRef.current.releaseLock();
3067
- } catch {}
3068
- readerRef.current = null;
3069
- }
3070
- if (observerRef.current) {
3071
- try {
3072
- observerRef.current.releaseLock();
3073
- } catch {}
3074
- observerRef.current = null;
3075
- }
3076
- if (resumeStreamRef.current) {
3077
- try {
3078
- resumeStreamRef.current.releaseLock();
3079
- } catch {}
3080
- resumeStreamRef.current = null;
3081
- }
3082
- if (timeTravelStreamRef.current) {
3083
- try {
3084
- timeTravelStreamRef.current.releaseLock();
3085
- } catch {}
3086
- timeTravelStreamRef.current = null;
3087
- }
3088
- }, []),
2951
+ setStreamResult(void 0);
2952
+ }, [closeActiveStream]),
3089
2953
  resumeWorkflowStream,
3090
2954
  timeTravelWorkflowStream
3091
2955
  };
@@ -3422,62 +3286,8 @@ const useMastraSpeechToText = ({ agent, language }) => {
3422
3286
  };
3423
3287
  };
3424
3288
  //#endregion
3425
- exports.AgentIcon = require_ui.AgentIcon;
3426
3289
  exports.CLIENT_MESSAGE_ID_KEY = CLIENT_MESSAGE_ID_KEY;
3427
- exports.CodeBlock = require_ui.CodeBlock;
3428
- exports.CodeBlockClass = require_ui.CodeBlockClass;
3429
- exports.CodeCopyButton = require_ui.CodeCopyButton;
3430
- exports.Entity = require_ui.Entity;
3431
- exports.EntityCaret = require_ui.EntityCaret;
3432
- exports.EntityContent = require_ui.EntityContent;
3433
- exports.EntityContentClass = require_ui.EntityContentClass;
3434
- exports.EntityTrigger = require_ui.EntityTrigger;
3435
- exports.EntityTriggerClass = require_ui.EntityTriggerClass;
3436
- exports.EntityTriggerVariantClasses = require_ui.EntityTriggerVariantClasses;
3437
- exports.Entry = require_ui.Entry;
3438
- exports.EntryClass = require_ui.EntryClass;
3439
- exports.EntryTitle = require_ui.EntryTitle;
3440
- exports.EntryTitleClass = require_ui.EntryTitleClass;
3441
- exports.Icon = require_ui.Icon;
3442
- exports.IconButton = require_ui.IconButton;
3443
- exports.IconButtonClass = require_ui.IconButtonClass;
3444
- exports.IconSizes = require_ui.IconSizes;
3445
3290
  exports.MastraReactProvider = MastraReactProvider;
3446
- exports.Message = require_ui.Message;
3447
- exports.MessageActions = require_ui.MessageActions;
3448
- exports.MessageActionsClass = require_ui.MessageActionsClass;
3449
- exports.MessageClass = require_ui.MessageClass;
3450
- exports.MessageContent = require_ui.MessageContent;
3451
- exports.MessageContentClass = require_ui.MessageContentClass;
3452
- exports.MessageFactory = require_ui.MessageFactory;
3453
- exports.MessageList = require_ui.MessageList;
3454
- exports.MessageListClass = require_ui.MessageListClass;
3455
- exports.MessageStreaming = require_ui.MessageStreaming;
3456
- exports.MessageStreamingClass = require_ui.MessageStreamingClass;
3457
- exports.MessageUsage = require_ui.MessageUsage;
3458
- exports.MessageUsageClass = require_ui.MessageUsageClass;
3459
- exports.MessageUsageEntry = require_ui.MessageUsageEntry;
3460
- exports.MessageUsageEntryClass = require_ui.MessageUsageEntryClass;
3461
- exports.MessageUsageValue = require_ui.MessageUsageValue;
3462
- exports.MessageUsageValueClass = require_ui.MessageUsageValueClass;
3463
- exports.MessageUsages = require_ui.MessageUsages;
3464
- exports.MessageUsagesClass = require_ui.MessageUsagesClass;
3465
- exports.ToolApproval = require_ui.ToolApproval;
3466
- exports.ToolApprovalActions = require_ui.ToolApprovalActions;
3467
- exports.ToolApprovalActionsClass = require_ui.ToolApprovalActionsClass;
3468
- exports.ToolApprovalClass = require_ui.ToolApprovalClass;
3469
- exports.ToolApprovalContent = require_ui.ToolApprovalContent;
3470
- exports.ToolApprovalContentClass = require_ui.ToolApprovalContentClass;
3471
- exports.ToolApprovalHeader = require_ui.ToolApprovalHeader;
3472
- exports.ToolApprovalHeaderClass = require_ui.ToolApprovalHeaderClass;
3473
- exports.ToolApprovalTitle = require_ui.ToolApprovalTitle;
3474
- exports.ToolApprovalTitleClass = require_ui.ToolApprovalTitleClass;
3475
- exports.ToolsIcon = require_ui.ToolsIcon;
3476
- exports.Tooltip = require_ui.Tooltip;
3477
- exports.TooltipContent = require_ui.TooltipContent;
3478
- exports.TooltipContentClass = require_ui.TooltipContentClass;
3479
- exports.TooltipTrigger = require_ui.TooltipTrigger;
3480
- exports.WorkflowIcon = require_ui.WorkflowIcon;
3481
3291
  exports.WorkflowStepFactory = WorkflowStepFactory;
3482
3292
  exports.accumulateChunk = accumulateChunk;
3483
3293
  exports.accumulateNetworkChunk = accumulateNetworkChunk;
@@ -3490,7 +3300,6 @@ exports.recordMicrophoneToFile = recordMicrophoneToFile;
3490
3300
  exports.useCancelWorkflowRun = useCancelWorkflowRun;
3491
3301
  exports.useChat = useChat;
3492
3302
  exports.useCreateWorkflowRun = useCreateWorkflowRun;
3493
- exports.useEntity = require_ui.useEntity;
3494
3303
  exports.useMastraClient = useMastraClient;
3495
3304
  exports.useSpeechRecognition = useSpeechRecognition;
3496
3305
  exports.useStreamWorkflow = useStreamWorkflow;