@mastra/react 1.0.0-beta.25 → 1.0.2

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.
Files changed (156) hide show
  1. package/CHANGELOG.md +2763 -3
  2. package/LICENSE.md +15 -0
  3. package/dist/agent/extractRunIdFromMessages.d.ts +10 -0
  4. package/dist/agent/extractRunIdFromMessages.d.ts.map +1 -0
  5. package/dist/agent/hooks.d.ts +91 -0
  6. package/dist/agent/hooks.d.ts.map +1 -0
  7. package/dist/agent/signal-data.d.ts +2 -0
  8. package/dist/agent/signal-data.d.ts.map +1 -0
  9. package/dist/{src/agent → agent}/types.d.ts +6 -1
  10. package/dist/agent/types.d.ts.map +1 -0
  11. package/dist/index.cjs +3743 -63
  12. package/dist/index.cjs.map +1 -1
  13. package/dist/index.d.ts +11 -2
  14. package/dist/index.d.ts.map +1 -0
  15. package/dist/index.js +3676 -1
  16. package/dist/index.js.map +1 -1
  17. package/dist/lib/mastra-db/accumulator.d.ts +48 -0
  18. package/dist/lib/mastra-db/accumulator.d.ts.map +1 -0
  19. package/dist/lib/mastra-db/formatCompletionFeedback.d.ts +19 -0
  20. package/dist/lib/mastra-db/formatCompletionFeedback.d.ts.map +1 -0
  21. package/dist/lib/mastra-db/fromCoreUserMessage.d.ts +14 -0
  22. package/dist/lib/mastra-db/fromCoreUserMessage.d.ts.map +1 -0
  23. package/dist/lib/mastra-db/index.d.ts +6 -0
  24. package/dist/lib/mastra-db/index.d.ts.map +1 -0
  25. package/dist/lib/mastra-db/types.d.ts +171 -0
  26. package/dist/lib/mastra-db/types.d.ts.map +1 -0
  27. package/dist/lib/use-mutation.d.ts +28 -0
  28. package/dist/lib/use-mutation.d.ts.map +1 -0
  29. package/dist/mastra-client-context.d.ts +26 -0
  30. package/dist/mastra-client-context.d.ts.map +1 -0
  31. package/dist/mastra-react-provider.d.ts +5 -0
  32. package/dist/mastra-react-provider.d.ts.map +1 -0
  33. package/dist/react.css +184 -322
  34. package/dist/{src/ui → ui}/Code/Code.d.ts +2 -1
  35. package/dist/ui/Code/Code.d.ts.map +1 -0
  36. package/dist/ui/Code/highlight.d.ts +4 -0
  37. package/dist/ui/Code/highlight.d.ts.map +1 -0
  38. package/dist/ui/Code/index.d.ts +2 -0
  39. package/dist/ui/Code/index.d.ts.map +1 -0
  40. package/dist/{src/ui → ui}/Entity/Entity.d.ts +2 -1
  41. package/dist/ui/Entity/Entity.d.ts.map +1 -0
  42. package/dist/{src/ui → ui}/Entity/Entry.d.ts +2 -1
  43. package/dist/ui/Entity/Entry.d.ts.map +1 -0
  44. package/dist/{src/ui → ui}/Entity/ToolApproval.d.ts +1 -0
  45. package/dist/ui/Entity/ToolApproval.d.ts.map +1 -0
  46. package/dist/{src/ui → ui}/Entity/context.d.ts +4 -3
  47. package/dist/ui/Entity/context.d.ts.map +1 -0
  48. package/dist/ui/Entity/index.d.ts +5 -0
  49. package/dist/ui/Entity/index.d.ts.map +1 -0
  50. package/dist/{src/ui → ui}/Entity/types.d.ts +1 -0
  51. package/dist/ui/Entity/types.d.ts.map +1 -0
  52. package/dist/{src/ui → ui}/Icon/Icon.d.ts +2 -1
  53. package/dist/ui/Icon/Icon.d.ts.map +1 -0
  54. package/dist/ui/Icon/index.d.ts +2 -0
  55. package/dist/ui/Icon/index.d.ts.map +1 -0
  56. package/dist/{src/ui → ui}/IconButton/IconButton.d.ts +2 -1
  57. package/dist/ui/IconButton/IconButton.d.ts.map +1 -0
  58. package/dist/ui/IconButton/index.d.ts +2 -0
  59. package/dist/ui/IconButton/index.d.ts.map +1 -0
  60. package/dist/{src/ui → ui}/Icons/AgentIcon.d.ts +2 -1
  61. package/dist/ui/Icons/AgentIcon.d.ts.map +1 -0
  62. package/dist/{src/ui → ui}/Icons/ToolsIcon.d.ts +2 -1
  63. package/dist/ui/Icons/ToolsIcon.d.ts.map +1 -0
  64. package/dist/{src/ui → ui}/Icons/WorkflowIcon.d.ts +2 -1
  65. package/dist/ui/Icons/WorkflowIcon.d.ts.map +1 -0
  66. package/dist/ui/Icons/index.d.ts +4 -0
  67. package/dist/ui/Icons/index.d.ts.map +1 -0
  68. package/dist/{src/ui → ui}/Message/Message.d.ts +2 -1
  69. package/dist/ui/Message/Message.d.ts.map +1 -0
  70. package/dist/ui/Message/index.d.ts +2 -0
  71. package/dist/ui/Message/index.d.ts.map +1 -0
  72. package/dist/ui/MessageFactory/MessageFactory.d.ts +22 -0
  73. package/dist/ui/MessageFactory/MessageFactory.d.ts.map +1 -0
  74. package/dist/ui/MessageFactory/index.d.ts +3 -0
  75. package/dist/ui/MessageFactory/index.d.ts.map +1 -0
  76. package/dist/ui/MessageFactory/types.d.ts +181 -0
  77. package/dist/ui/MessageFactory/types.d.ts.map +1 -0
  78. package/dist/{src/ui → ui}/Tooltip/Tooltip.d.ts +2 -1
  79. package/dist/ui/Tooltip/Tooltip.d.ts.map +1 -0
  80. package/dist/ui/Tooltip/index.d.ts +2 -0
  81. package/dist/ui/Tooltip/index.d.ts.map +1 -0
  82. package/dist/ui/index.d.ts +9 -0
  83. package/dist/ui/index.d.ts.map +1 -0
  84. package/dist/voice/index.d.ts +5 -0
  85. package/dist/voice/index.d.ts.map +1 -0
  86. package/dist/voice/play-stream-with-web-audio.d.ts +2 -0
  87. package/dist/voice/play-stream-with-web-audio.d.ts.map +1 -0
  88. package/dist/voice/record-mic-to-file.d.ts +2 -0
  89. package/dist/voice/record-mic-to-file.d.ts.map +1 -0
  90. package/dist/voice/use-speech-recognition.d.ts +20 -0
  91. package/dist/voice/use-speech-recognition.d.ts.map +1 -0
  92. package/dist/workflows/WorkflowStepFactory/WorkflowStepFactory.d.ts +8 -0
  93. package/dist/workflows/WorkflowStepFactory/WorkflowStepFactory.d.ts.map +1 -0
  94. package/dist/workflows/WorkflowStepFactory/index.d.ts +3 -0
  95. package/dist/workflows/WorkflowStepFactory/index.d.ts.map +1 -0
  96. package/dist/workflows/WorkflowStepFactory/types.d.ts +72 -0
  97. package/dist/workflows/WorkflowStepFactory/types.d.ts.map +1 -0
  98. package/dist/workflows/hooks.d.ts +34 -0
  99. package/dist/workflows/hooks.d.ts.map +1 -0
  100. package/dist/workflows/index.d.ts +4 -0
  101. package/dist/workflows/index.d.ts.map +1 -0
  102. package/dist/workflows/types.d.ts +122 -0
  103. package/dist/workflows/types.d.ts.map +1 -0
  104. package/dist/workflows/use-stream-workflow.d.ts +39 -0
  105. package/dist/workflows/use-stream-workflow.d.ts.map +1 -0
  106. package/package.json +35 -31
  107. package/dist/chunk-55VPMN3N-Ax1F4Y75.js +0 -249
  108. package/dist/chunk-55VPMN3N-Ax1F4Y75.js.map +0 -1
  109. package/dist/chunk-55VPMN3N-BHqoDkCq.cjs +0 -251
  110. package/dist/chunk-55VPMN3N-BHqoDkCq.cjs.map +0 -1
  111. package/dist/index-BaK_Y6TP.cjs +0 -185
  112. package/dist/index-BaK_Y6TP.cjs.map +0 -1
  113. package/dist/index-C1OzXW5i.js +0 -180
  114. package/dist/index-C1OzXW5i.js.map +0 -1
  115. package/dist/index-ChvWx-iU.cjs +0 -20711
  116. package/dist/index-ChvWx-iU.cjs.map +0 -1
  117. package/dist/index-D3JtF_Zl.js +0 -20628
  118. package/dist/index-D3JtF_Zl.js.map +0 -1
  119. package/dist/src/agent/hooks.d.ts +0 -65
  120. package/dist/src/index.d.ts +0 -6
  121. package/dist/src/lib/ai-sdk/index.d.ts +0 -4
  122. package/dist/src/lib/ai-sdk/memory/resolveInitialMessages.d.ts +0 -12
  123. package/dist/src/lib/ai-sdk/memory/resolveInitialMessages.test.d.ts +0 -1
  124. package/dist/src/lib/ai-sdk/transformers/AISdkNetworkTransformer.d.ts +0 -10
  125. package/dist/src/lib/ai-sdk/transformers/AISdkNetworkTransformer.test.d.ts +0 -1
  126. package/dist/src/lib/ai-sdk/transformers/types.d.ts +0 -10
  127. package/dist/src/lib/ai-sdk/types.d.ts +0 -106
  128. package/dist/src/lib/ai-sdk/utils/fromCoreUserMessageToUIMessage.d.ts +0 -10
  129. package/dist/src/lib/ai-sdk/utils/fromCoreUserMessageToUIMessage.test.d.ts +0 -1
  130. package/dist/src/lib/ai-sdk/utils/toAssistantUIMessage.d.ts +0 -14
  131. package/dist/src/lib/ai-sdk/utils/toAssistantUIMessage.test.d.ts +0 -1
  132. package/dist/src/lib/ai-sdk/utils/toUIMessage.d.ts +0 -17
  133. package/dist/src/lib/ai-sdk/utils/toUIMessage.test.d.ts +0 -1
  134. package/dist/src/mastra-client-context.d.ts +0 -10
  135. package/dist/src/mastra-react-provider.d.ts +0 -4
  136. package/dist/src/ui/Code/highlight.d.ts +0 -3
  137. package/dist/src/ui/Code/index.d.ts +0 -1
  138. package/dist/src/ui/Entity/Entity.stories.d.ts +0 -22
  139. package/dist/src/ui/Entity/index.d.ts +0 -4
  140. package/dist/src/ui/Icon/index.d.ts +0 -1
  141. package/dist/src/ui/IconButton/IconButton.stories.d.ts +0 -12
  142. package/dist/src/ui/IconButton/index.d.ts +0 -1
  143. package/dist/src/ui/Icons/index.d.ts +0 -3
  144. package/dist/src/ui/Message/Message.stories.d.ts +0 -13
  145. package/dist/src/ui/Message/index.d.ts +0 -1
  146. package/dist/src/ui/Tooltip/Tooltip.stories.d.ts +0 -12
  147. package/dist/src/ui/Tooltip/index.d.ts +0 -1
  148. package/dist/src/ui/index.d.ts +0 -7
  149. package/dist/token-6GSAFR2W-SPYPLMBM-CWoxKwfk.cjs +0 -64
  150. package/dist/token-6GSAFR2W-SPYPLMBM-CWoxKwfk.cjs.map +0 -1
  151. package/dist/token-6GSAFR2W-SPYPLMBM-ChURikIE.js +0 -60
  152. package/dist/token-6GSAFR2W-SPYPLMBM-ChURikIE.js.map +0 -1
  153. package/dist/token-util-NEHG7TUY-JRJTGTAB-BU9ZxL1w.cjs +0 -11
  154. package/dist/token-util-NEHG7TUY-JRJTGTAB-BU9ZxL1w.cjs.map +0 -1
  155. package/dist/token-util-NEHG7TUY-JRJTGTAB-hEay2AHp.js +0 -7
  156. package/dist/token-util-NEHG7TUY-JRJTGTAB-hEay2AHp.js.map +0 -1
@@ -0,0 +1,72 @@
1
+ import type { SerializedStep, SerializedStepFlowEntry, SerializedStepResult, StepResult, WorkflowRunStatus } from '@mastra/core/workflows';
2
+ import type { ReactNode } from 'react';
3
+ export type WorkflowStepResult = StepResult<unknown, unknown, unknown, unknown> | SerializedStepResult<unknown, unknown, unknown, unknown>;
4
+ export type ResolvedWorkflowStepBase<TKind extends string, TFlow extends SerializedStepFlowEntry = SerializedStepFlowEntry, TResult extends WorkflowStepResult = WorkflowStepResult> = {
5
+ kind: TKind;
6
+ id: string;
7
+ step?: SerializedStep;
8
+ flow: TFlow;
9
+ result?: TResult;
10
+ workflowStatus?: WorkflowRunStatus;
11
+ };
12
+ export type ResolvedWorkflowRegularStep = ResolvedWorkflowStepBase<'step', Extract<SerializedStepFlowEntry, {
13
+ type: 'step';
14
+ }>>;
15
+ export type ResolvedWorkflowMapStep = ResolvedWorkflowStepBase<'map-step', Extract<SerializedStepFlowEntry, {
16
+ type: 'step';
17
+ }>>;
18
+ export type ResolvedWorkflowForEachStep = ResolvedWorkflowStepBase<'foreach-step', Extract<SerializedStepFlowEntry, {
19
+ type: 'foreach';
20
+ }>>;
21
+ export type ResolvedWorkflowParallelStep = ResolvedWorkflowStepBase<'parallel-step', Extract<SerializedStepFlowEntry, {
22
+ type: 'parallel';
23
+ }>>;
24
+ export type ResolvedWorkflowConditionalStep = ResolvedWorkflowStepBase<'conditional', Extract<SerializedStepFlowEntry, {
25
+ type: 'conditional';
26
+ }>>;
27
+ export type ResolvedWorkflowLoopStep = ResolvedWorkflowStepBase<'loop-step', Extract<SerializedStepFlowEntry, {
28
+ type: 'loop';
29
+ }>>;
30
+ export type ResolvedWorkflowSleepStep = ResolvedWorkflowStepBase<'sleep-step', Extract<SerializedStepFlowEntry, {
31
+ type: 'sleep';
32
+ }>>;
33
+ export type ResolvedWorkflowSleepUntilStep = ResolvedWorkflowStepBase<'sleep-until-step', Extract<SerializedStepFlowEntry, {
34
+ type: 'sleepUntil';
35
+ }>>;
36
+ export type ResolvedWorkflowNestedWorkflowStep = ResolvedWorkflowStepBase<'nested-workflow-step', Extract<SerializedStepFlowEntry, {
37
+ type: 'step';
38
+ }>>;
39
+ export type ResolvedWorkflowUnknownStep = ResolvedWorkflowStepBase<'unknown-step'>;
40
+ export type ResolvedWorkflowStep = ResolvedWorkflowRegularStep | ResolvedWorkflowMapStep | ResolvedWorkflowForEachStep | ResolvedWorkflowParallelStep | ResolvedWorkflowConditionalStep | ResolvedWorkflowLoopStep | ResolvedWorkflowSleepStep | ResolvedWorkflowSleepUntilStep | ResolvedWorkflowNestedWorkflowStep | ResolvedWorkflowUnknownStep;
41
+ export type WorkflowStepRenderer<TStep extends ResolvedWorkflowStep> = (step: TStep) => ReactNode;
42
+ export type WorkflowStepRenderers<TStep extends ResolvedWorkflowStep = ResolvedWorkflowStep> = {
43
+ Step?: WorkflowStepRenderer<Extract<TStep, {
44
+ kind: 'step';
45
+ }>>;
46
+ MapStep?: WorkflowStepRenderer<Extract<TStep, {
47
+ kind: 'map-step';
48
+ }>>;
49
+ ForEachStep?: WorkflowStepRenderer<Extract<TStep, {
50
+ kind: 'foreach-step';
51
+ }>>;
52
+ ParallelStep?: WorkflowStepRenderer<Extract<TStep, {
53
+ kind: 'parallel-step';
54
+ }>>;
55
+ Conditional?: WorkflowStepRenderer<Extract<TStep, {
56
+ kind: 'conditional';
57
+ }>>;
58
+ LoopStep?: WorkflowStepRenderer<Extract<TStep, {
59
+ kind: 'loop-step';
60
+ }>>;
61
+ SleepStep?: WorkflowStepRenderer<Extract<TStep, {
62
+ kind: 'sleep-step';
63
+ }>>;
64
+ SleepUntilStep?: WorkflowStepRenderer<Extract<TStep, {
65
+ kind: 'sleep-until-step';
66
+ }>>;
67
+ NestedWorkflowStep?: WorkflowStepRenderer<Extract<TStep, {
68
+ kind: 'nested-workflow-step';
69
+ }>>;
70
+ UnknownStep?: WorkflowStepRenderer<TStep>;
71
+ };
72
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/workflows/WorkflowStepFactory/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import type { CreateWorkflowRunParams, CreateWorkflowRunResult, CancelWorkflowRunParams, CancelWorkflowRunResult } from './types.js';
2
+ export { useStreamWorkflow } from './use-stream-workflow.js';
3
+ /**
4
+ * Hook for creating workflow runs.
5
+ * Returns a mutation for creating a new workflow run.
6
+ *
7
+ * @example
8
+ * ```tsx
9
+ * const createWorkflowRun = useCreateWorkflowRun();
10
+ *
11
+ * // Create a run
12
+ * const { runId } = await createWorkflowRun.mutateAsync({
13
+ * workflowId: 'my-workflow'
14
+ * });
15
+ * ```
16
+ */
17
+ export declare function useCreateWorkflowRun(): import("../lib/use-mutation").MutationState<CreateWorkflowRunResult, Error, CreateWorkflowRunParams>;
18
+ /**
19
+ * Hook for canceling workflow runs.
20
+ * Returns a mutation for canceling a running workflow.
21
+ *
22
+ * @example
23
+ * ```tsx
24
+ * const cancelWorkflowRun = useCancelWorkflowRun();
25
+ *
26
+ * // Cancel a run
27
+ * await cancelWorkflowRun.mutateAsync({
28
+ * workflowId: 'my-workflow',
29
+ * runId: 'run-123'
30
+ * });
31
+ * ```
32
+ */
33
+ export declare function useCancelWorkflowRun(): import("../lib/use-mutation").MutationState<CancelWorkflowRunResult, Error, CancelWorkflowRunParams>;
34
+ //# sourceMappingURL=hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/workflows/hooks.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,EACxB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,yGAanC;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,yGAanC"}
@@ -0,0 +1,4 @@
1
+ export * from './hooks.js';
2
+ export * from './types.js';
3
+ export * from './WorkflowStepFactory/index.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/workflows/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,122 @@
1
+ import type { TimeTravelParams } from '@mastra/client-js';
2
+ import type { TracingOptions } from '@mastra/core/observability';
3
+ import type { WorkflowStreamResult as CoreWorkflowStreamResult } from '@mastra/core/workflows';
4
+ /**
5
+ * Workflow stream result type alias.
6
+ */
7
+ export type WorkflowStreamResult = CoreWorkflowStreamResult<any, any, any, any>;
8
+ /**
9
+ * Parameters for the useStreamWorkflow hook.
10
+ */
11
+ export interface UseStreamWorkflowParams {
12
+ /** Whether to enable debug mode for per-step execution */
13
+ debugMode: boolean;
14
+ /** Optional tracing options for observability */
15
+ tracingOptions?: TracingOptions;
16
+ /** Optional error handler callback */
17
+ onError?: (error: Error, defaultMessage: string) => void;
18
+ }
19
+ /**
20
+ * Parameters for streaming a workflow.
21
+ */
22
+ export interface StreamWorkflowParams {
23
+ /** The ID of the workflow */
24
+ workflowId: string;
25
+ /** The ID of the run */
26
+ runId: string;
27
+ /** Input data for the workflow */
28
+ inputData: Record<string, unknown>;
29
+ /** Optional initial state */
30
+ initialState?: Record<string, unknown>;
31
+ /** Request context to pass to the workflow */
32
+ requestContext: Record<string, unknown>;
33
+ /** Optional flag to enable per-step execution */
34
+ perStep?: boolean;
35
+ }
36
+ /**
37
+ * Parameters for observing a workflow stream.
38
+ */
39
+ export interface ObserveWorkflowStreamParams {
40
+ /** The ID of the workflow */
41
+ workflowId: string;
42
+ /** The ID of the run */
43
+ runId: string;
44
+ /** Optional stored run result to resume from */
45
+ storeRunResult: WorkflowStreamResult | null;
46
+ }
47
+ /**
48
+ * Parameters for resuming a workflow stream.
49
+ */
50
+ export interface ResumeWorkflowStreamParams {
51
+ /** The ID of the workflow */
52
+ workflowId: string;
53
+ /** The ID of the run */
54
+ runId: string;
55
+ /** The step or steps to resume */
56
+ step: string | string[];
57
+ /** Data to resume with */
58
+ resumeData: Record<string, unknown>;
59
+ /** Request context to pass to the workflow */
60
+ requestContext: Record<string, unknown>;
61
+ /** Optional flag to enable per-step execution */
62
+ perStep?: boolean;
63
+ }
64
+ /**
65
+ * Parameters for time-traveling a workflow stream.
66
+ */
67
+ export interface TimeTravelWorkflowStreamParams extends Omit<TimeTravelParams, 'requestContext'> {
68
+ /** The ID of the workflow */
69
+ workflowId: string;
70
+ /** Request context to pass to the workflow */
71
+ requestContext: Record<string, unknown>;
72
+ /** Optional run ID */
73
+ runId?: string;
74
+ /** Optional flag to enable per-step execution */
75
+ perStep?: boolean;
76
+ }
77
+ /**
78
+ * Parameters for creating a workflow run.
79
+ */
80
+ export interface CreateWorkflowRunParams {
81
+ /** The ID of the workflow to create a run for */
82
+ workflowId: string;
83
+ /** Optional previous run ID to continue from */
84
+ prevRunId?: string;
85
+ }
86
+ /**
87
+ * Result of creating a workflow run.
88
+ */
89
+ export interface CreateWorkflowRunResult {
90
+ /** The ID of the newly created run */
91
+ runId: string;
92
+ }
93
+ /**
94
+ * Parameters for starting a workflow run.
95
+ */
96
+ export interface StartWorkflowRunParams {
97
+ /** The ID of the workflow */
98
+ workflowId: string;
99
+ /** The ID of the run to start */
100
+ runId: string;
101
+ /** Input data for the workflow */
102
+ input: Record<string, unknown>;
103
+ /** Optional request context to pass to the workflow */
104
+ requestContext?: Record<string, unknown>;
105
+ }
106
+ /**
107
+ * Parameters for canceling a workflow run.
108
+ */
109
+ export interface CancelWorkflowRunParams {
110
+ /** The ID of the workflow */
111
+ workflowId: string;
112
+ /** The ID of the run to cancel */
113
+ runId: string;
114
+ }
115
+ /**
116
+ * Result of canceling a workflow run.
117
+ */
118
+ export interface CancelWorkflowRunResult {
119
+ /** Confirmation message */
120
+ message: string;
121
+ }
122
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/workflows/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import type { UseStreamWorkflowParams, WorkflowStreamResult, StreamWorkflowParams, ObserveWorkflowStreamParams, ResumeWorkflowStreamParams, TimeTravelWorkflowStreamParams } from './types.js';
2
+ /**
3
+ * Hook for streaming workflow execution with support for observing, resuming, and time-travel.
4
+ *
5
+ * @example
6
+ * ```tsx
7
+ * const {
8
+ * streamWorkflow,
9
+ * streamResult,
10
+ * isStreaming,
11
+ * observeWorkflowStream,
12
+ * closeStreamsAndReset,
13
+ * resumeWorkflowStream,
14
+ * timeTravelWorkflowStream,
15
+ * } = useStreamWorkflow({
16
+ * debugMode: true,
17
+ * tracingOptions: { enabled: true },
18
+ * onError: (error, defaultMessage) => console.error(defaultMessage, error),
19
+ * });
20
+ *
21
+ * // Start streaming a workflow
22
+ * await streamWorkflow.mutateAsync({
23
+ * workflowId: 'my-workflow',
24
+ * runId: 'run-123',
25
+ * inputData: { key: 'value' },
26
+ * requestContext: {},
27
+ * });
28
+ * ```
29
+ */
30
+ export declare function useStreamWorkflow({ debugMode, tracingOptions, onError }: UseStreamWorkflowParams): {
31
+ streamWorkflow: import("../lib/use-mutation").MutationState<void, Error, StreamWorkflowParams>;
32
+ streamResult: WorkflowStreamResult;
33
+ isStreaming: boolean;
34
+ observeWorkflowStream: import("../lib/use-mutation").MutationState<void, Error, ObserveWorkflowStreamParams>;
35
+ closeStreamsAndReset: () => void;
36
+ resumeWorkflowStream: import("../lib/use-mutation").MutationState<void, Error, ResumeWorkflowStreamParams>;
37
+ timeTravelWorkflowStream: import("../lib/use-mutation").MutationState<void, Error, TimeTravelWorkflowStreamParams>;
38
+ };
39
+ //# sourceMappingURL=use-stream-workflow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-stream-workflow.d.ts","sourceRoot":"","sources":["../../src/workflows/use-stream-workflow.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EACpB,2BAA2B,EAC3B,0BAA0B,EAC1B,8BAA8B,EAC/B,MAAM,SAAS,CAAC;AAEjB;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,EAAE,uBAAuB;;;;;;;;EAkZhG"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mastra/react",
3
- "version": "1.0.0-beta.25",
3
+ "version": "1.0.2",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/mastra-ai/mastra.git",
@@ -34,41 +34,44 @@
34
34
  ],
35
35
  "dependencies": {
36
36
  "@lukeed/uuid": "^2.0.1",
37
- "@radix-ui/react-tooltip": "^1.2.7",
37
+ "@radix-ui/react-tooltip": "^1.2.8",
38
38
  "hast-util-to-jsx-runtime": "^2.3.6",
39
39
  "lucide-react": "^0.522.0",
40
40
  "shiki": "^1.29.2",
41
- "tailwind-merge": "^3.3.1",
42
- "@mastra/client-js": "1.0.0-beta.25"
41
+ "tailwind-merge": "^3.5.0",
42
+ "@mastra/client-js": "1.25.0"
43
43
  },
44
44
  "peerDependencies": {
45
+ "@mastra/core": ">=1.8.0-0 <2.0.0-0",
45
46
  "react": ">=19.0.0",
46
47
  "react-dom": ">=19.0.0",
47
48
  "zod": "^3.25.0 || ^4.0.0"
48
49
  },
49
50
  "devDependencies": {
50
- "@ai-sdk/react": "^2.0.57",
51
- "@assistant-ui/react": "^0.11.47",
52
- "@storybook/react-vite": "^9.1.16",
53
- "@tailwindcss/vite": "^4.1.17",
54
- "@types/react": "^19.1.13",
55
- "@types/react-dom": "^19.1.9",
56
- "@vitejs/plugin-react": "^5.1.2",
57
- "@vitest/coverage-v8": "4.0.12",
58
- "@vitest/ui": "4.0.12",
59
- "eslint": "^9.37.0",
60
- "eslint-plugin-storybook": "^10.1.11",
61
- "react": ">=19.0.0",
62
- "react-dom": ">=19.0.0",
63
- "rollup-plugin-node-externals": "^8.0.1",
64
- "storybook": "^9.1.10",
65
- "tailwindcss": "^4",
66
- "typescript": "^5.9.3",
67
- "vite": "^7.3.0",
68
- "vite-plugin-dts": "^4.5.4",
69
- "vitest": "4.0.16",
70
- "zod": "^3.25.0",
71
- "@mastra/core": "1.0.0-beta.25"
51
+ "@storybook/react-vite": "^9.1.20",
52
+ "@tailwindcss/cli": "^4.2.2",
53
+ "@tailwindcss/vite": "^4.2.2",
54
+ "@testing-library/react": "^16.3.2",
55
+ "@types/react": "^19.2.14",
56
+ "@types/react-dom": "^19.2.3",
57
+ "@vitejs/plugin-react": "^5.2.0",
58
+ "@vitest/coverage-v8": "4.1.8",
59
+ "@vitest/ui": "4.1.8",
60
+ "eslint": "^10.4.1",
61
+ "eslint-plugin-storybook": "^10.4.2",
62
+ "jsdom": "^26.1.0",
63
+ "react": "^19.2.5",
64
+ "react-dom": "^19.2.5",
65
+ "storybook": "^9.1.20",
66
+ "tailwindcss": "^4.2.2",
67
+ "tsup": "^8.5.1",
68
+ "typescript": "^6.0.3",
69
+ "vite": "^7.3.1",
70
+ "vitest": "4.1.8",
71
+ "zod": "^3.25.76",
72
+ "@internal/lint": "0.0.105",
73
+ "@mastra/core": "1.43.0",
74
+ "@internal/types-builder": "0.0.80"
72
75
  },
73
76
  "eslintConfig": {
74
77
  "extends": [
@@ -79,12 +82,13 @@
79
82
  "node": ">=22.13.0"
80
83
  },
81
84
  "scripts": {
82
- "build": "vite build",
83
- "dev": "vite build --watch",
85
+ "lint": "eslint .",
86
+ "build": "echo 'Use turbo to run build'",
87
+ "build:js": "tsup --config tsup.config.ts",
88
+ "build:css": "tailwindcss -i src/ui/index.css -o dist/react.css",
89
+ "dev": "tsup --config tsup.config.ts --watch",
84
90
  "test": "vitest",
85
- "test:watch": "vitest --watch",
86
- "test:ui": "vitest --ui",
87
- "test:coverage": "vitest --coverage",
91
+ "test:unit": "vitest run",
88
92
  "storybook": "storybook dev -p 6006",
89
93
  "build-storybook": "storybook build"
90
94
  }
@@ -1,249 +0,0 @@
1
- import { _ as __commonJS, a as __require2, r as require_token_error } from './index-D3JtF_Zl.js';
2
-
3
- // ../_vendored/ai_v5/dist/chunk-OL3SSKUZ.js
4
- var require_token_io = __commonJS({
5
- "../../../node_modules/.pnpm/@vercel+oidc@3.0.5/node_modules/@vercel/oidc/dist/token-io.js"(exports, module) {
6
- var __create = Object.create;
7
- var __defProp = Object.defineProperty;
8
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
9
- var __getOwnPropNames = Object.getOwnPropertyNames;
10
- var __getProtoOf = Object.getPrototypeOf;
11
- var __hasOwnProp = Object.prototype.hasOwnProperty;
12
- var __export = (target, all) => {
13
- for (var name in all)
14
- __defProp(target, name, { get: all[name], enumerable: true });
15
- };
16
- var __copyProps = (to, from, except, desc) => {
17
- if (from && typeof from === "object" || typeof from === "function") {
18
- for (let key of __getOwnPropNames(from))
19
- if (!__hasOwnProp.call(to, key) && key !== except)
20
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
21
- }
22
- return to;
23
- };
24
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
25
- // If the importer is in node compatibility mode or this is not an ESM
26
- // file that has been converted to a CommonJS file using a Babel-
27
- // compatible transform (i.e. "__esModule" has not been set), then set
28
- // "default" to the CommonJS "module.exports" for node compatibility.
29
- !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
30
- mod
31
- ));
32
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
33
- var token_io_exports = {};
34
- __export(token_io_exports, {
35
- findRootDir: () => findRootDir,
36
- getUserDataDir: () => getUserDataDir
37
- });
38
- module.exports = __toCommonJS(token_io_exports);
39
- var import_path = __toESM(__require2("path"));
40
- var import_fs = __toESM(__require2("fs"));
41
- var import_os = __toESM(__require2("os"));
42
- var import_token_error = require_token_error();
43
- function findRootDir() {
44
- try {
45
- let dir = process.cwd();
46
- while (dir !== import_path.default.dirname(dir)) {
47
- const pkgPath = import_path.default.join(dir, ".vercel");
48
- if (import_fs.default.existsSync(pkgPath)) {
49
- return dir;
50
- }
51
- dir = import_path.default.dirname(dir);
52
- }
53
- } catch (e) {
54
- throw new import_token_error.VercelOidcTokenError(
55
- "Token refresh only supported in node server environments"
56
- );
57
- }
58
- throw new import_token_error.VercelOidcTokenError("Unable to find root directory");
59
- }
60
- function getUserDataDir() {
61
- if (process.env.XDG_DATA_HOME) {
62
- return process.env.XDG_DATA_HOME;
63
- }
64
- switch (import_os.default.platform()) {
65
- case "darwin":
66
- return import_path.default.join(import_os.default.homedir(), "Library/Application Support");
67
- case "linux":
68
- return import_path.default.join(import_os.default.homedir(), ".local/share");
69
- case "win32":
70
- if (process.env.LOCALAPPDATA) {
71
- return process.env.LOCALAPPDATA;
72
- }
73
- return null;
74
- default:
75
- return null;
76
- }
77
- }
78
- }
79
- });
80
- var require_token_util = __commonJS({
81
- "../../../node_modules/.pnpm/@vercel+oidc@3.0.5/node_modules/@vercel/oidc/dist/token-util.js"(exports, module) {
82
- var __create = Object.create;
83
- var __defProp = Object.defineProperty;
84
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
85
- var __getOwnPropNames = Object.getOwnPropertyNames;
86
- var __getProtoOf = Object.getPrototypeOf;
87
- var __hasOwnProp = Object.prototype.hasOwnProperty;
88
- var __export = (target, all) => {
89
- for (var name in all)
90
- __defProp(target, name, { get: all[name], enumerable: true });
91
- };
92
- var __copyProps = (to, from, except, desc) => {
93
- if (from && typeof from === "object" || typeof from === "function") {
94
- for (let key of __getOwnPropNames(from))
95
- if (!__hasOwnProp.call(to, key) && key !== except)
96
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
97
- }
98
- return to;
99
- };
100
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
101
- // If the importer is in node compatibility mode or this is not an ESM
102
- // file that has been converted to a CommonJS file using a Babel-
103
- // compatible transform (i.e. "__esModule" has not been set), then set
104
- // "default" to the CommonJS "module.exports" for node compatibility.
105
- !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
106
- mod
107
- ));
108
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
109
- var token_util_exports = {};
110
- __export(token_util_exports, {
111
- assertVercelOidcTokenResponse: () => assertVercelOidcTokenResponse,
112
- findProjectInfo: () => findProjectInfo,
113
- getTokenPayload: () => getTokenPayload,
114
- getVercelCliToken: () => getVercelCliToken,
115
- getVercelDataDir: () => getVercelDataDir,
116
- getVercelOidcToken: () => getVercelOidcToken,
117
- isExpired: () => isExpired,
118
- loadToken: () => loadToken,
119
- saveToken: () => saveToken
120
- });
121
- module.exports = __toCommonJS(token_util_exports);
122
- var path = __toESM(__require2("path"));
123
- var fs = __toESM(__require2("fs"));
124
- var import_token_error = require_token_error();
125
- var import_token_io = require_token_io();
126
- function getVercelDataDir() {
127
- const vercelFolder = "com.vercel.cli";
128
- const dataDir = (0, import_token_io.getUserDataDir)();
129
- if (!dataDir) {
130
- return null;
131
- }
132
- return path.join(dataDir, vercelFolder);
133
- }
134
- function getVercelCliToken() {
135
- const dataDir = getVercelDataDir();
136
- if (!dataDir) {
137
- return null;
138
- }
139
- const tokenPath = path.join(dataDir, "auth.json");
140
- if (!fs.existsSync(tokenPath)) {
141
- return null;
142
- }
143
- const token = fs.readFileSync(tokenPath, "utf8");
144
- if (!token) {
145
- return null;
146
- }
147
- return JSON.parse(token).token;
148
- }
149
- async function getVercelOidcToken(authToken, projectId, teamId) {
150
- try {
151
- const url = `https://api.vercel.com/v1/projects/${projectId}/token?source=vercel-oidc-refresh${teamId ? `&teamId=${teamId}` : ""}`;
152
- const res = await fetch(url, {
153
- method: "POST",
154
- headers: {
155
- Authorization: `Bearer ${authToken}`
156
- }
157
- });
158
- if (!res.ok) {
159
- throw new import_token_error.VercelOidcTokenError(
160
- `Failed to refresh OIDC token: ${res.statusText}`
161
- );
162
- }
163
- const tokenRes = await res.json();
164
- assertVercelOidcTokenResponse(tokenRes);
165
- return tokenRes;
166
- } catch (e) {
167
- throw new import_token_error.VercelOidcTokenError(`Failed to refresh OIDC token`, e);
168
- }
169
- }
170
- function assertVercelOidcTokenResponse(res) {
171
- if (!res || typeof res !== "object") {
172
- throw new TypeError("Expected an object");
173
- }
174
- if (!("token" in res) || typeof res.token !== "string") {
175
- throw new TypeError("Expected a string-valued token property");
176
- }
177
- }
178
- function findProjectInfo() {
179
- const dir = (0, import_token_io.findRootDir)();
180
- if (!dir) {
181
- throw new import_token_error.VercelOidcTokenError("Unable to find root directory");
182
- }
183
- try {
184
- const prjPath = path.join(dir, ".vercel", "project.json");
185
- if (!fs.existsSync(prjPath)) {
186
- throw new import_token_error.VercelOidcTokenError("project.json not found");
187
- }
188
- const prj = JSON.parse(fs.readFileSync(prjPath, "utf8"));
189
- if (typeof prj.projectId !== "string" && typeof prj.orgId !== "string") {
190
- throw new TypeError("Expected a string-valued projectId property");
191
- }
192
- return { projectId: prj.projectId, teamId: prj.orgId };
193
- } catch (e) {
194
- throw new import_token_error.VercelOidcTokenError(`Unable to find project ID`, e);
195
- }
196
- }
197
- function saveToken(token, projectId) {
198
- try {
199
- const dir = (0, import_token_io.getUserDataDir)();
200
- if (!dir) {
201
- throw new import_token_error.VercelOidcTokenError("Unable to find user data directory");
202
- }
203
- const tokenPath = path.join(dir, "com.vercel.token", `${projectId}.json`);
204
- const tokenJson = JSON.stringify(token);
205
- fs.mkdirSync(path.dirname(tokenPath), { mode: 504, recursive: true });
206
- fs.writeFileSync(tokenPath, tokenJson);
207
- fs.chmodSync(tokenPath, 432);
208
- return;
209
- } catch (e) {
210
- throw new import_token_error.VercelOidcTokenError(`Failed to save token`, e);
211
- }
212
- }
213
- function loadToken(projectId) {
214
- try {
215
- const dir = (0, import_token_io.getUserDataDir)();
216
- if (!dir) {
217
- return null;
218
- }
219
- const tokenPath = path.join(dir, "com.vercel.token", `${projectId}.json`);
220
- if (!fs.existsSync(tokenPath)) {
221
- return null;
222
- }
223
- const token = JSON.parse(fs.readFileSync(tokenPath, "utf8"));
224
- assertVercelOidcTokenResponse(token);
225
- return token;
226
- } catch (e) {
227
- throw new import_token_error.VercelOidcTokenError(`Failed to load token`, e);
228
- }
229
- }
230
- function getTokenPayload(token) {
231
- const tokenParts = token.split(".");
232
- if (tokenParts.length !== 3) {
233
- throw new import_token_error.VercelOidcTokenError("Invalid token");
234
- }
235
- const base64 = tokenParts[1].replace(/-/g, "+").replace(/_/g, "/");
236
- const padded = base64.padEnd(
237
- base64.length + (4 - base64.length % 4) % 4,
238
- "="
239
- );
240
- return JSON.parse(Buffer.from(padded, "base64").toString("utf8"));
241
- }
242
- function isExpired(token) {
243
- return token.exp * 1e3 < Date.now();
244
- }
245
- }
246
- });
247
-
248
- export { require_token_util as r };
249
- //# sourceMappingURL=chunk-55VPMN3N-Ax1F4Y75.js.map