@mastra/react 1.12.0-alpha.10 → 1.12.0-alpha.11

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 (87) hide show
  1. package/dist/{accumulator-C8kIc450.js → accumulator-BfvVnXJr.js} +1 -2
  2. package/dist/{accumulator-C8kIc450.js.map → accumulator-BfvVnXJr.js.map} +1 -1
  3. package/dist/{accumulator-BQGsraqS.cjs → accumulator-CgLQ_3q3.cjs} +1 -2
  4. package/dist/{accumulator-BQGsraqS.cjs.map → accumulator-CgLQ_3q3.cjs.map} +1 -1
  5. package/dist/chat/index.cjs +1 -1
  6. package/dist/chat/index.js +1 -2
  7. package/dist/combine-by-ids-D_lp6Dvq.cjs.map +1 -1
  8. package/dist/hooks/agents/index.cjs +2 -2
  9. package/dist/hooks/agents/index.cjs.map +1 -1
  10. package/dist/hooks/agents/index.js +2 -2
  11. package/dist/hooks/agents/index.js.map +1 -1
  12. package/dist/hooks/auth/index.cjs +2 -2
  13. package/dist/hooks/auth/index.cjs.map +1 -1
  14. package/dist/hooks/auth/index.js +2 -2
  15. package/dist/hooks/auth/index.js.map +1 -1
  16. package/dist/hooks/capabilities/index.cjs +1 -1
  17. package/dist/hooks/capabilities/index.cjs.map +1 -1
  18. package/dist/hooks/capabilities/index.js +1 -1
  19. package/dist/hooks/capabilities/index.js.map +1 -1
  20. package/dist/hooks/configuration/index.cjs.map +1 -1
  21. package/dist/hooks/datasets/index.cjs +1 -1
  22. package/dist/hooks/datasets/index.cjs.map +1 -1
  23. package/dist/hooks/datasets/index.js +1 -1
  24. package/dist/hooks/datasets/index.js.map +1 -1
  25. package/dist/hooks/embedders/index.cjs.map +1 -1
  26. package/dist/hooks/experiments/index.cjs.map +1 -1
  27. package/dist/hooks/feedback/index.cjs.map +1 -1
  28. package/dist/hooks/llm/index.cjs.map +1 -1
  29. package/dist/hooks/logs/index.cjs.map +1 -1
  30. package/dist/hooks/mcps/index.cjs.map +1 -1
  31. package/dist/hooks/memory/index.cjs +10 -10
  32. package/dist/hooks/memory/index.cjs.map +1 -1
  33. package/dist/hooks/memory/index.js +10 -10
  34. package/dist/hooks/memory/index.js.map +1 -1
  35. package/dist/hooks/metrics/index.cjs +13 -11
  36. package/dist/hooks/metrics/index.cjs.map +1 -1
  37. package/dist/hooks/metrics/index.js +13 -11
  38. package/dist/hooks/metrics/index.js.map +1 -1
  39. package/dist/hooks/processors/index.cjs.map +1 -1
  40. package/dist/hooks/prompt-blocks/index.cjs.map +1 -1
  41. package/dist/hooks/query/index.cjs.map +1 -1
  42. package/dist/hooks/review/index.cjs.map +1 -1
  43. package/dist/hooks/schedules/index.cjs.map +1 -1
  44. package/dist/hooks/scores/index.cjs.map +1 -1
  45. package/dist/hooks/templates/index.cjs +20 -18
  46. package/dist/hooks/templates/index.cjs.map +1 -1
  47. package/dist/hooks/templates/index.js +20 -18
  48. package/dist/hooks/templates/index.js.map +1 -1
  49. package/dist/hooks/tool-providers/index.cjs +1 -1
  50. package/dist/hooks/tool-providers/index.cjs.map +1 -1
  51. package/dist/hooks/tool-providers/index.js +1 -1
  52. package/dist/hooks/tool-providers/index.js.map +1 -1
  53. package/dist/hooks/tools/index.cjs.map +1 -1
  54. package/dist/hooks/traces/index.cjs +4 -4
  55. package/dist/hooks/traces/index.cjs.map +1 -1
  56. package/dist/hooks/traces/index.js +4 -4
  57. package/dist/hooks/traces/index.js.map +1 -1
  58. package/dist/hooks/vectors/index.cjs.map +1 -1
  59. package/dist/hooks/voice/index.cjs.map +1 -1
  60. package/dist/hooks/workflows/index.cjs +1 -1
  61. package/dist/hooks/workflows/index.cjs.map +1 -1
  62. package/dist/hooks/workflows/index.js +1 -1
  63. package/dist/hooks/workspace/index.cjs +1 -1
  64. package/dist/hooks/workspace/index.cjs.map +1 -1
  65. package/dist/hooks/workspace/index.js +1 -1
  66. package/dist/hooks/workspace/index.js.map +1 -1
  67. package/dist/{hooks-CIutb3DO.cjs → hooks-B1i-oHae.cjs} +6 -4
  68. package/dist/hooks-B1i-oHae.cjs.map +1 -0
  69. package/dist/{hooks-FVbeHlov.js → hooks-CLfMO5cH.js} +6 -4
  70. package/dist/{hooks-FVbeHlov.js.map → hooks-CLfMO5cH.js.map} +1 -1
  71. package/dist/{hooks-_YevKidX.cjs → hooks-D8nOYPUd.cjs} +2 -2
  72. package/dist/hooks-D8nOYPUd.cjs.map +1 -0
  73. package/dist/{hooks-0L0RNfau.js → hooks-NaZLZreZ.js} +2 -2
  74. package/dist/{hooks-0L0RNfau.js.map → hooks-NaZLZreZ.js.map} +1 -1
  75. package/dist/index.cjs +3 -3
  76. package/dist/index.cjs.map +1 -1
  77. package/dist/index.js +3 -3
  78. package/dist/mastra-client-context-DzX3f0RF.cjs.map +1 -1
  79. package/dist/ui/index.cjs +4 -4
  80. package/dist/ui/index.cjs.map +1 -1
  81. package/dist/ui/index.js +3 -3
  82. package/dist/ui/index.js.map +1 -1
  83. package/dist/use-in-view-B6eJO9Zi.cjs.map +1 -1
  84. package/dist/voice-BOtUdMi8.cjs.map +1 -1
  85. package/package.json +4 -4
  86. package/dist/hooks-CIutb3DO.cjs.map +0 -1
  87. package/dist/hooks-_YevKidX.cjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"hooks-_YevKidX.cjs","names":["typedError","useMastraClient","mapWorkflowStreamChunkToWatchResult","useMastraClient"],"sources":["../src/lib/use-mutation.ts","../src/workflows/use-stream-workflow.ts","../src/workflows/hooks.ts"],"sourcesContent":["import { useState, useCallback, useRef } from 'react';\n\n/**\n * Represents the state of a mutation operation.\n * Mimics the essential return type of react-query's useMutation.\n */\nexport interface MutationState<TData, TError extends Error, TVariables> {\n /** Execute the mutation without waiting for the result */\n mutate: (variables: TVariables) => void;\n /** Execute the mutation and return a promise with the result */\n mutateAsync: (variables: TVariables) => Promise<TData>;\n /** Whether the mutation is currently executing */\n isPending: boolean;\n /** Whether the mutation completed successfully */\n isSuccess: boolean;\n /** Whether the mutation failed with an error */\n isError: boolean;\n /** The error if the mutation failed, null otherwise */\n error: TError | null;\n /** The data returned by the mutation if successful */\n data: TData | undefined;\n /** Reset the mutation state to initial values */\n reset: () => void;\n}\n\n/**\n * Internal helper hook that provides mutation-like functionality without react-query.\n * Tracks pending, success, and error states for async operations.\n */\nexport function useMutation<TData, TError extends Error, TVariables>(\n mutationFn: (variables: TVariables) => Promise<TData>,\n): MutationState<TData, TError, TVariables> {\n const [isPending, setIsPending] = useState(false);\n const [isSuccess, setIsSuccess] = useState(false);\n const [isError, setIsError] = useState(false);\n const [error, setError] = useState<TError | null>(null);\n const [data, setData] = useState<TData | undefined>(undefined);\n\n const mutationFnRef = useRef(mutationFn);\n mutationFnRef.current = mutationFn;\n\n const reset = useCallback(() => {\n setIsPending(false);\n setIsSuccess(false);\n setIsError(false);\n setError(null);\n setData(undefined);\n }, []);\n\n const mutateAsync = useCallback(async (variables: TVariables): Promise<TData> => {\n setIsPending(true);\n setIsSuccess(false);\n setIsError(false);\n setError(null);\n\n try {\n const result = await mutationFnRef.current(variables);\n setData(result);\n setIsSuccess(true);\n return result;\n } catch (err) {\n const typedError = err as TError;\n setError(typedError);\n setIsError(true);\n throw err;\n } finally {\n setIsPending(false);\n }\n }, []);\n\n const mutate = useCallback(\n (variables: TVariables) => {\n mutateAsync(variables).catch(() => {\n // Error is already captured in state\n });\n },\n [mutateAsync],\n );\n\n return {\n mutate,\n mutateAsync,\n isPending,\n isSuccess,\n isError,\n error,\n data,\n reset,\n };\n}\n","import type { StreamVNextChunkType } from '@mastra/client-js';\nimport { useState, useRef, useEffect, useCallback } from 'react';\nimport { mapWorkflowStreamChunkToWatchResult } from '../lib/mastra-db';\nimport { useMutation } from '../lib/use-mutation';\nimport { useMastraClient } from '../mastra-client-context';\nimport type {\n UseStreamWorkflowParams,\n WorkflowStreamResult,\n StreamWorkflowParams,\n ObserveWorkflowStreamParams,\n ResumeWorkflowStreamParams,\n TimeTravelWorkflowStreamParams,\n} from './types';\n\ntype StreamOperation = {\n controller: AbortController;\n reader?: ReadableStreamDefaultReader<StreamVNextChunkType>;\n};\n\nexport function useStreamWorkflow({ debugMode, tracingOptions, onError }: UseStreamWorkflowParams) {\n const client = useMastraClient();\n const [streamResult, setStreamResult] = useState<WorkflowStreamResult>();\n const [isStreaming, setIsStreaming] = useState(false);\n const activeStream = useRef<StreamOperation | undefined>(undefined);\n const isMountedRef = useRef(true);\n\n const closeActiveStream = useCallback(() => {\n const operation = activeStream.current;\n activeStream.current = undefined;\n if (!operation) return;\n operation.controller.abort();\n // An already errored transport may reject cancellation during disposal.\n void operation.reader?.cancel().catch(() => undefined);\n operation.reader?.releaseLock();\n operation.reader = undefined;\n }, []);\n\n useEffect(() => {\n isMountedRef.current = true;\n return () => {\n isMountedRef.current = false;\n closeActiveStream();\n };\n }, [closeActiveStream]);\n\n async function consumeStream(\n openStream: (signal: AbortSignal) => Promise<ReadableStream<StreamVNextChunkType> | undefined>,\n defaultMessage: string,\n ) {\n if (!isMountedRef.current) return;\n closeActiveStream();\n const operation: StreamOperation = { controller: new AbortController() };\n activeStream.current = operation;\n const { signal } = operation.controller;\n setIsStreaming(true);\n\n try {\n const stream = await openStream(signal);\n if (signal.aborted) {\n await stream?.cancel();\n return;\n }\n if (!stream) {\n onError?.(new Error('No stream returned'), 'No stream returned');\n return;\n }\n const reader = stream.getReader();\n operation.reader = reader;\n\n while (!signal.aborted) {\n const { done, value } = await reader.read();\n if (done || signal.aborted) break;\n setStreamResult(previous => mapWorkflowStreamChunkToWatchResult(previous, value));\n if (value.type === 'workflow-step-start') setIsStreaming(true);\n if (value.type === 'workflow-step-suspended') setIsStreaming(false);\n if (value.type === 'workflow-finish' && value.payload.workflowStatus === 'failed') {\n throw new Error(value.payload.metadata?.errorMessage || 'Workflow execution failed');\n }\n }\n } catch (error) {\n // Releasing an obsolete reader rejects its pending read; real transport TypeErrors must still surface.\n if (!signal.aborted) {\n if (!operation.reader) throw error;\n onError?.(error instanceof Error ? error : new Error(defaultMessage), defaultMessage);\n }\n } finally {\n operation.reader?.releaseLock();\n operation.reader = undefined;\n if (activeStream.current === operation) {\n activeStream.current = undefined;\n setIsStreaming(false);\n }\n }\n }\n\n const streamWorkflow = useMutation<void, Error, StreamWorkflowParams>(\n ({ workflowId, runId, inputData, initialState, requestContext, perStep, resourceId }) => {\n setStreamResult({ status: 'pending', input: inputData, steps: {} });\n return consumeStream(async signal => {\n const run = await client.getWorkflow(workflowId).createRun({ runId, resourceId });\n if (signal.aborted) return;\n return run.stream({\n inputData,\n initialState,\n requestContext,\n closeOnSuspend: true,\n tracingOptions,\n perStep: perStep ?? debugMode,\n resourceId,\n });\n }, 'Error streaming workflow');\n },\n );\n\n const observeWorkflowStream = useMutation<void, Error, ObserveWorkflowStreamParams>(\n async ({ workflowId, runId, storeRunResult }) => {\n if (!isMountedRef.current) return;\n setStreamResult(storeRunResult ?? undefined);\n if (storeRunResult?.status === 'suspended') {\n closeActiveStream();\n setIsStreaming(false);\n return;\n }\n await consumeStream(async signal => {\n const run = await client.getWorkflow(workflowId).createRun({ runId });\n if (signal.aborted) return;\n return run.observeStream();\n }, 'Error observing workflow');\n },\n );\n\n const resumeWorkflowStream = useMutation<void, Error, ResumeWorkflowStreamParams>(\n ({ workflowId, runId, step, resumeData, requestContext, perStep }) =>\n consumeStream(async signal => {\n const run = await client.getWorkflow(workflowId).createRun({ runId });\n if (signal.aborted) return;\n return run.resumeStream({ step, resumeData, requestContext, tracingOptions, perStep: perStep ?? debugMode });\n }, 'Error resuming workflow stream'),\n );\n\n const timeTravelWorkflowStream = useMutation<void, Error, TimeTravelWorkflowStreamParams>(\n ({ workflowId, requestContext, runId, perStep, ...params }) =>\n consumeStream(async signal => {\n const run = await client.getWorkflow(workflowId).createRun({ runId });\n if (signal.aborted) return;\n return run.timeTravelStream({\n ...params,\n perStep: perStep ?? debugMode,\n requestContext,\n tracingOptions,\n });\n }, 'Error time traveling workflow stream'),\n );\n\n const closeStreamsAndReset = useCallback(() => {\n closeActiveStream();\n setIsStreaming(false);\n setStreamResult(undefined);\n }, [closeActiveStream]);\n\n return {\n streamWorkflow,\n streamResult,\n isStreaming,\n observeWorkflowStream,\n closeStreamsAndReset,\n resumeWorkflowStream,\n timeTravelWorkflowStream,\n };\n}\n","import { useMutation } from '../lib/use-mutation';\nimport { useMastraClient } from '../mastra-client-context';\nimport type {\n CreateWorkflowRunParams,\n CreateWorkflowRunResult,\n CancelWorkflowRunParams,\n CancelWorkflowRunResult,\n} from './types';\n\nexport { useStreamWorkflow } from './use-stream-workflow';\n\n/**\n * Hook for creating workflow runs.\n * Returns a mutation for creating a new workflow run.\n *\n * @example\n * ```tsx\n * const createWorkflowRun = useCreateWorkflowRun();\n *\n * // Create a run\n * const { runId } = await createWorkflowRun.mutateAsync({\n * workflowId: 'my-workflow'\n * });\n * ```\n */\nexport function useCreateWorkflowRun() {\n const client = useMastraClient();\n\n return useMutation<CreateWorkflowRunResult, Error, CreateWorkflowRunParams>(\n async ({ workflowId, prevRunId, resourceId }) => {\n try {\n const workflow = client.getWorkflow(workflowId);\n const { runId: newRunId } = await workflow.createRun({ runId: prevRunId, resourceId });\n return { runId: newRunId };\n } catch (error) {\n console.error('Error creating workflow run:', error);\n throw error;\n }\n },\n );\n}\n\n/**\n * Hook for canceling workflow runs.\n * Returns a mutation for canceling a running workflow.\n *\n * @example\n * ```tsx\n * const cancelWorkflowRun = useCancelWorkflowRun();\n *\n * // Cancel a run\n * await cancelWorkflowRun.mutateAsync({\n * workflowId: 'my-workflow',\n * runId: 'run-123'\n * });\n * ```\n */\nexport function useCancelWorkflowRun() {\n const client = useMastraClient();\n\n return useMutation<CancelWorkflowRunResult, Error, CancelWorkflowRunParams>(async ({ workflowId, runId }) => {\n try {\n const workflow = client.getWorkflow(workflowId);\n const run = await workflow.createRun({ runId });\n return run.cancelRun();\n } catch (error) {\n console.error('Error canceling workflow run:', error);\n throw error;\n }\n });\n}\n"],"mappings":"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"}