@mastra/core 0.24.7-alpha.1 → 0.24.7-alpha.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.
- package/CHANGELOG.md +8 -0
- package/dist/agent/index.cjs +10 -10
- package/dist/agent/index.js +1 -1
- package/dist/agent/input-processor/index.cjs +6 -6
- package/dist/agent/input-processor/index.js +1 -1
- package/dist/{chunk-KQGP7VMN.js → chunk-2BY7C6Y7.js} +3 -3
- package/dist/{chunk-KQGP7VMN.js.map → chunk-2BY7C6Y7.js.map} +1 -1
- package/dist/{chunk-GWA56ELO.cjs → chunk-2YE6RNCZ.cjs} +4 -4
- package/dist/{chunk-GWA56ELO.cjs.map → chunk-2YE6RNCZ.cjs.map} +1 -1
- package/dist/{chunk-ZOQ6Q5Q3.js → chunk-2YN6HGEH.js} +3 -3
- package/dist/{chunk-ZOQ6Q5Q3.js.map → chunk-2YN6HGEH.js.map} +1 -1
- package/dist/{chunk-TR5CDVHO.cjs → chunk-CNIM7N4E.cjs} +4 -4
- package/dist/{chunk-TR5CDVHO.cjs.map → chunk-CNIM7N4E.cjs.map} +1 -1
- package/dist/{chunk-GOEAJJED.js → chunk-E5NCEJEJ.js} +3 -3
- package/dist/{chunk-GOEAJJED.js.map → chunk-E5NCEJEJ.js.map} +1 -1
- package/dist/{chunk-U57JN7JY.cjs → chunk-FQTJPLCW.cjs} +14 -14
- package/dist/{chunk-U57JN7JY.cjs.map → chunk-FQTJPLCW.cjs.map} +1 -1
- package/dist/{chunk-DYJA57WK.js → chunk-N6P5GJRO.js} +3 -3
- package/dist/{chunk-DYJA57WK.js.map → chunk-N6P5GJRO.js.map} +1 -1
- package/dist/{chunk-SJ3PJ5D6.cjs → chunk-X5JTTWMF.cjs} +9 -9
- package/dist/{chunk-SJ3PJ5D6.cjs.map → chunk-X5JTTWMF.cjs.map} +1 -1
- package/dist/{chunk-5UWR4YYL.js → chunk-Y2BH2LUD.js} +3 -3
- package/dist/chunk-Y2BH2LUD.js.map +1 -0
- package/dist/{chunk-AHQOJZT2.cjs → chunk-YYKN3NDZ.cjs} +3 -3
- package/dist/chunk-YYKN3NDZ.cjs.map +1 -0
- package/dist/index.cjs +24 -24
- package/dist/index.js +4 -4
- package/dist/loop/index.cjs +2 -2
- package/dist/loop/index.js +1 -1
- package/dist/mastra/index.cjs +2 -2
- package/dist/mastra/index.js +1 -1
- package/dist/processors/index.cjs +11 -11
- package/dist/processors/index.js +1 -1
- package/dist/relevance/index.cjs +4 -4
- package/dist/relevance/index.js +1 -1
- package/dist/scores/index.cjs +4 -4
- package/dist/scores/index.js +1 -1
- package/dist/scores/scoreTraces/index.cjs +3 -3
- package/dist/scores/scoreTraces/index.js +1 -1
- package/dist/stream/index.cjs +8 -8
- package/dist/stream/index.js +1 -1
- package/dist/workflows/evented/index.cjs +10 -10
- package/dist/workflows/evented/index.js +1 -1
- package/dist/workflows/index.cjs +17 -17
- package/dist/workflows/index.js +1 -1
- package/dist/workflows/legacy/index.cjs +22 -22
- package/dist/workflows/legacy/index.js +1 -1
- package/dist/workflows/workflow.d.ts.map +1 -1
- package/package.json +3 -3
- package/dist/chunk-5UWR4YYL.js.map +0 -1
- package/dist/chunk-AHQOJZT2.cjs.map +0 -1
|
@@ -342,7 +342,7 @@ condition,loopType:"dountil",serializedCondition:{id:`${step.id}-condition`,fn:c
|
|
|
342
342
|
*/async createRunAsync(options){if(this.stepFlow.length===0){throw new Error("Execution flow of workflow is not defined. Add steps to the workflow via .then(), .branch(), etc.");}if(!this.executionGraph.steps){throw new Error("Uncommitted step flow changes detected. Call .commit() to register the steps.");}const runIdToUse=options?.runId||this.#mastra?.generateId()||crypto2.randomUUID();const run=this.#runs.get(runIdToUse)??new Run({workflowId:this.id,stateSchema:this.stateSchema,inputSchema:this.inputSchema,runId:runIdToUse,resourceId:options?.resourceId,executionEngine:this.executionEngine,executionGraph:this.executionGraph,mastra:this.#mastra,retryConfig:this.retryConfig,serializedStepGraph:this.serializedStepGraph,disableScorers:options?.disableScorers,cleanup:()=>this.#runs.delete(runIdToUse),tracingPolicy:this.#options?.tracingPolicy,workflowSteps:this.steps,validateInputs:this.#options?.validateInputs,workflowEngineType:this.engineType});this.#runs.set(runIdToUse,run);const shouldPersistSnapshot=this.#options.shouldPersistSnapshot({workflowStatus:run.workflowRunStatus,stepResults:{}});const workflowSnapshotInStorage=await this.getWorkflowRunExecutionResult(runIdToUse,false);if(!workflowSnapshotInStorage&&shouldPersistSnapshot){await this.mastra?.getStorage()?.persistWorkflowSnapshot({workflowName:this.id,runId:runIdToUse,resourceId:options?.resourceId,snapshot:{runId:runIdToUse,status:"pending",value:{},context:this.#nestedWorkflowInput?{input:this.#nestedWorkflowInput}:{},activePaths:[],activeStepsPath:{},serializedStepGraph:this.serializedStepGraph,suspendedPaths:{},resumeLabels:{},waitingPaths:{},result:void 0,error:void 0,// @ts-ignore
|
|
343
343
|
timestamp:Date.now()}});}return run;}async getScorers({runtimeContext=new chunkGPWMM745_cjs.RuntimeContext()}={}){const steps=this.steps;if(!steps||Object.keys(steps).length===0){return {};}const scorers={};for(const step of Object.values(steps)){if(step.scorers){let scorersToUse=step.scorers;if(typeof scorersToUse==="function"){scorersToUse=await scorersToUse({runtimeContext});}for(const[id,scorer]of Object.entries(scorersToUse)){scorers[id]=scorer;}}}return scorers;}// This method should only be called internally for nested workflow execution, as well as from mastra server handlers
|
|
344
344
|
// To run a workflow use `.createRunAsync` and then `.start` or `.resume`
|
|
345
|
-
async execute({runId,inputData,resumeData,state,setState,suspend,restart,resume,timeTravel,[chunkABJOUEVA_cjs.EMITTER_SYMBOL]:emitter,mastra,runtimeContext,abort,abortSignal,runCount,tracingContext,writer,validateInputs}){this.__registerMastra(mastra);if(validateInputs){this.#options={...(this.#options||{}),validateInputs};}this.executionEngine.options={...(this.executionEngine.options||{}),validateInputs:validateInputs??false};const isResume=!!(resume?.steps&&resume.steps.length>0)||!!resume?.label||!!(resume?.steps&&resume.steps.length===0&&(!runCount||runCount===0));if(!restart&&!isResume){this.#nestedWorkflowInput=inputData;}const isTimeTravel=!!(timeTravel&&timeTravel.steps.length>0);const run=isResume?await this.createRunAsync({runId:resume.runId}):await this.createRunAsync({runId});const nestedAbortCb=()=>{abort();};run.abortController.signal.addEventListener("abort",nestedAbortCb);abortSignal.addEventListener("abort",async()=>{run.abortController.signal.removeEventListener("abort",nestedAbortCb);await run.cancel();});const unwatchV2=run.watch(event=>{emitter.emit("nested-watch-v2",{event,workflowId:this.id});},"watch-v2");const unwatch=run.watch(event=>{emitter.emit("nested-watch",{event,workflowId:this.id,runId:run.runId,isResume:!!resume?.steps?.length});},"watch");if(runCount&&runCount>0&&isResume&&runtimeContext){runtimeContext.set("__mastraWorflowInputData",inputData);}let res;if(isTimeTravel){res=await run.timeTravel({inputData:timeTravel?.inputData,resumeData:timeTravel?.resumeData,initialState:state,step:timeTravel?.steps,context:timeTravel?.nestedStepResults?.[this.id]??{},nestedStepsContext:timeTravel?.nestedStepResults,runtimeContext,tracingContext,writableStream:writer,outputOptions:{includeState:true,includeResumeLabels:true}});}else if(restart){res=await run.restart({runtimeContext,tracingContext,writableStream:writer});}else if(isResume){res=await run.resume({resumeData,step:resume.steps?.length>0?resume.steps:void 0,runtimeContext,tracingContext,outputOptions:{includeState:true,includeResumeLabels:true},label:resume.label});}else {res=await run.start({inputData,runtimeContext,tracingContext,writableStream:writer,initialState:state,outputOptions:{includeState:true,includeResumeLabels:true}});}unwatch();unwatchV2();const suspendedSteps=Object.entries(res.steps).filter(([_stepName,stepResult])=>{const stepRes=stepResult;return stepRes?.status==="suspended";});if(res.state){setState(res.state);}if(suspendedSteps?.length){for(const[stepName,stepResult]of suspendedSteps){const suspendPath=[stepName,...(stepResult?.suspendPayload?.__workflow_meta?.path??[])];await suspend({...stepResult?.suspendPayload,__workflow_meta:{runId:run.runId,path:suspendPath}},{resumeLabel:Object.keys(res.resumeLabels??{})});}}if(res.status==="failed"){throw res.error;}return res.status==="success"?res.result:void 0;}async getWorkflowRuns(args){const storage=this.#mastra?.getStorage();if(!storage){this.logger.debug("Cannot get workflow runs. Mastra storage is not initialized");return {runs:[],total:0};}return storage.getWorkflowRuns({workflowName:this.id,...(args??{})});}async getActiveWorkflowRuns(){const runningRuns=await this.getWorkflowRuns({status:"running"});const waitingRuns=await this.getWorkflowRuns({status:"waiting"});return {runs:[...runningRuns.runs,...waitingRuns.runs],total:runningRuns.total+waitingRuns.total};}async restartAllActiveWorkflowRuns(){if(this.engineType!=="default"){this.logger.debug(`Cannot restart active workflow runs for ${this.engineType} engine`);return;}const activeRuns=await this.getActiveWorkflowRuns();if(activeRuns.runs.length>0){this.logger.debug(`Restarting ${activeRuns.runs.length} active workflow run${activeRuns.runs.length>1?"s":""}`);}for(const runSnapshot of activeRuns.runs){try{const run=await this.createRunAsync({runId:runSnapshot.runId});await run.restart();this.logger.debug(`Restarted ${this.id} workflow run ${runSnapshot.runId}`);}catch(error){this.logger.error(`Failed to restart ${this.id} workflow run ${runSnapshot.runId}: ${error}`);}}}async getWorkflowRunById(runId){const storage=this.#mastra?.getStorage();if(!storage){this.logger.debug("Cannot get workflow runs from storage. Mastra storage is not initialized");return this.#runs.get(runId)?{...this.#runs.get(runId),workflowName:this.id}:null;}const run=await storage.getWorkflowRunById({runId,workflowName:this.id});return run??(this.#runs.get(runId)?{...this.#runs.get(runId),workflowName:this.id}:null);}async getWorkflowRunSteps({runId,workflowId}){const storage=this.#mastra?.getStorage();if(!storage){this.logger.debug("Cannot get workflow run steps. Mastra storage is not initialized");return {};}const run=await storage.getWorkflowRunById({runId,workflowName:workflowId});let snapshot=run?.snapshot;if(!snapshot){return {};}if(typeof snapshot==="string"){try{snapshot=JSON.parse(snapshot);}catch(e){this.logger.debug("Cannot get workflow run execution result. Snapshot is not a valid JSON string",e);return {};}}const{serializedStepGraph,context}=snapshot;const{input,...steps}=context;let finalSteps={};for(const step of Object.keys(steps)){const stepGraph=serializedStepGraph.find(stepGraph2=>stepGraph2?.step?.id===step);finalSteps[step]=steps[step];if(stepGraph&&stepGraph?.step?.component==="WORKFLOW"){const nestedSteps=await this.getWorkflowRunSteps({runId,workflowId:step});if(nestedSteps){const updatedNestedSteps=Object.entries(nestedSteps).reduce((acc,[key,value])=>{acc[`${step}.${key}`]=value;return acc;},{});finalSteps={...finalSteps,...updatedNestedSteps};}}}return finalSteps;}async getWorkflowRunExecutionResult(runId,withNestedWorkflows=true){const storage=this.#mastra?.getStorage();if(!storage){this.logger.debug("Cannot get workflow run execution result. Mastra storage is not initialized");return null;}const run=await storage.getWorkflowRunById({runId,workflowName:this.id});let snapshot=run?.snapshot;if(!snapshot){return null;}if(typeof snapshot==="string"){try{snapshot=JSON.parse(snapshot);}catch(e){this.logger.debug("Cannot get workflow run execution result. Snapshot is not a valid JSON string",e);return null;}}const fullSteps=withNestedWorkflows?await this.getWorkflowRunSteps({runId,workflowId:this.id}):snapshot.context;return {status:snapshot.status,result:snapshot.result,error:snapshot.error,payload:snapshot.context?.input,steps:fullSteps,activeStepsPath:snapshot.activeStepsPath,serializedStepGraph:snapshot.serializedStepGraph};}};var Run=class{#abortController;emitter;/**
|
|
345
|
+
async execute({runId,inputData,resumeData,state,setState,suspend,restart,resume,timeTravel,[chunkABJOUEVA_cjs.EMITTER_SYMBOL]:emitter,mastra,runtimeContext,abort,abortSignal,runCount,tracingContext,writer,validateInputs}){this.__registerMastra(mastra);if(validateInputs){this.#options={...(this.#options||{}),validateInputs};}this.executionEngine.options={...(this.executionEngine.options||{}),validateInputs:validateInputs??false};const isResume=!!(resume?.steps&&resume.steps.length>0)||!!resume?.label||!!(resume?.steps&&resume.steps.length===0&&(!runCount||runCount===0));if(!restart&&!isResume){this.#nestedWorkflowInput=inputData;}const isTimeTravel=!!(timeTravel&&timeTravel.steps.length>0);const run=isResume?await this.createRunAsync({runId:resume.runId}):await this.createRunAsync({runId});const nestedAbortCb=()=>{abort();};run.abortController.signal.addEventListener("abort",nestedAbortCb);abortSignal.addEventListener("abort",async()=>{run.abortController.signal.removeEventListener("abort",nestedAbortCb);await run.cancel();});const unwatchV2=run.watch(event=>{emitter.emit("nested-watch-v2",{event,workflowId:this.id});},"watch-v2");const unwatch=run.watch(event=>{emitter.emit("nested-watch",{event,workflowId:this.id,runId:run.runId,isResume:!!resume?.steps?.length});},"watch");if(runCount&&runCount>0&&isResume&&runtimeContext){runtimeContext.set("__mastraWorflowInputData",inputData);}let res;if(isTimeTravel){res=await run.timeTravel({inputData:timeTravel?.inputData,resumeData:timeTravel?.resumeData,initialState:state,step:timeTravel?.steps,context:timeTravel?.nestedStepResults?.[this.id]??{},nestedStepsContext:timeTravel?.nestedStepResults,runtimeContext,tracingContext,writableStream:writer,outputOptions:{includeState:true,includeResumeLabels:true}});}else if(restart){res=await run.restart({runtimeContext,tracingContext,writableStream:writer});}else if(isResume){res=await run.resume({resumeData,step:resume.steps?.length>0?resume.steps:void 0,runtimeContext,tracingContext,writableStream:writer,outputOptions:{includeState:true,includeResumeLabels:true},label:resume.label});}else {res=await run.start({inputData,runtimeContext,tracingContext,writableStream:writer,initialState:state,outputOptions:{includeState:true,includeResumeLabels:true}});}unwatch();unwatchV2();const suspendedSteps=Object.entries(res.steps).filter(([_stepName,stepResult])=>{const stepRes=stepResult;return stepRes?.status==="suspended";});if(res.state){setState(res.state);}if(suspendedSteps?.length){for(const[stepName,stepResult]of suspendedSteps){const suspendPath=[stepName,...(stepResult?.suspendPayload?.__workflow_meta?.path??[])];await suspend({...stepResult?.suspendPayload,__workflow_meta:{runId:run.runId,path:suspendPath}},{resumeLabel:Object.keys(res.resumeLabels??{})});}}if(res.status==="failed"){throw res.error;}return res.status==="success"?res.result:void 0;}async getWorkflowRuns(args){const storage=this.#mastra?.getStorage();if(!storage){this.logger.debug("Cannot get workflow runs. Mastra storage is not initialized");return {runs:[],total:0};}return storage.getWorkflowRuns({workflowName:this.id,...(args??{})});}async getActiveWorkflowRuns(){const runningRuns=await this.getWorkflowRuns({status:"running"});const waitingRuns=await this.getWorkflowRuns({status:"waiting"});return {runs:[...runningRuns.runs,...waitingRuns.runs],total:runningRuns.total+waitingRuns.total};}async restartAllActiveWorkflowRuns(){if(this.engineType!=="default"){this.logger.debug(`Cannot restart active workflow runs for ${this.engineType} engine`);return;}const activeRuns=await this.getActiveWorkflowRuns();if(activeRuns.runs.length>0){this.logger.debug(`Restarting ${activeRuns.runs.length} active workflow run${activeRuns.runs.length>1?"s":""}`);}for(const runSnapshot of activeRuns.runs){try{const run=await this.createRunAsync({runId:runSnapshot.runId});await run.restart();this.logger.debug(`Restarted ${this.id} workflow run ${runSnapshot.runId}`);}catch(error){this.logger.error(`Failed to restart ${this.id} workflow run ${runSnapshot.runId}: ${error}`);}}}async getWorkflowRunById(runId){const storage=this.#mastra?.getStorage();if(!storage){this.logger.debug("Cannot get workflow runs from storage. Mastra storage is not initialized");return this.#runs.get(runId)?{...this.#runs.get(runId),workflowName:this.id}:null;}const run=await storage.getWorkflowRunById({runId,workflowName:this.id});return run??(this.#runs.get(runId)?{...this.#runs.get(runId),workflowName:this.id}:null);}async getWorkflowRunSteps({runId,workflowId}){const storage=this.#mastra?.getStorage();if(!storage){this.logger.debug("Cannot get workflow run steps. Mastra storage is not initialized");return {};}const run=await storage.getWorkflowRunById({runId,workflowName:workflowId});let snapshot=run?.snapshot;if(!snapshot){return {};}if(typeof snapshot==="string"){try{snapshot=JSON.parse(snapshot);}catch(e){this.logger.debug("Cannot get workflow run execution result. Snapshot is not a valid JSON string",e);return {};}}const{serializedStepGraph,context}=snapshot;const{input,...steps}=context;let finalSteps={};for(const step of Object.keys(steps)){const stepGraph=serializedStepGraph.find(stepGraph2=>stepGraph2?.step?.id===step);finalSteps[step]=steps[step];if(stepGraph&&stepGraph?.step?.component==="WORKFLOW"){const nestedSteps=await this.getWorkflowRunSteps({runId,workflowId:step});if(nestedSteps){const updatedNestedSteps=Object.entries(nestedSteps).reduce((acc,[key,value])=>{acc[`${step}.${key}`]=value;return acc;},{});finalSteps={...finalSteps,...updatedNestedSteps};}}}return finalSteps;}async getWorkflowRunExecutionResult(runId,withNestedWorkflows=true){const storage=this.#mastra?.getStorage();if(!storage){this.logger.debug("Cannot get workflow run execution result. Mastra storage is not initialized");return null;}const run=await storage.getWorkflowRunById({runId,workflowName:this.id});let snapshot=run?.snapshot;if(!snapshot){return null;}if(typeof snapshot==="string"){try{snapshot=JSON.parse(snapshot);}catch(e){this.logger.debug("Cannot get workflow run execution result. Snapshot is not a valid JSON string",e);return null;}}const fullSteps=withNestedWorkflows?await this.getWorkflowRunSteps({runId,workflowId:this.id}):snapshot.context;return {status:snapshot.status,result:snapshot.result,error:snapshot.error,payload:snapshot.context?.input,steps:fullSteps,activeStepsPath:snapshot.activeStepsPath,serializedStepGraph:snapshot.serializedStepGraph};}};var Run=class{#abortController;emitter;/**
|
|
346
346
|
* Unique identifier for this workflow
|
|
347
347
|
*/workflowId;/**
|
|
348
348
|
* Unique identifier for this run
|
|
@@ -1314,5 +1314,5 @@ exports.updateStepInHierarchy = updateStepInHierarchy;
|
|
|
1314
1314
|
exports.validateStepInput = validateStepInput;
|
|
1315
1315
|
exports.validateStepResumeData = validateStepResumeData;
|
|
1316
1316
|
exports.workflowToStep = workflowToStep;
|
|
1317
|
-
//# sourceMappingURL=chunk-
|
|
1318
|
-
//# sourceMappingURL=chunk-
|
|
1317
|
+
//# sourceMappingURL=chunk-YYKN3NDZ.cjs.map
|
|
1318
|
+
//# sourceMappingURL=chunk-YYKN3NDZ.cjs.map
|