@mastra/inngest 0.0.0-transpile-packages-20250724123433 → 0.0.0-transpile-packages-20250731152758

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 CHANGED
@@ -1,6 +1,76 @@
1
1
  # @mastra/inngest
2
2
 
3
- ## 0.0.0-transpile-packages-20250724123433
3
+ ## 0.0.0-transpile-packages-20250731152758
4
+
5
+ ### Patch Changes
6
+
7
+ - 7257912: dependencies updates:
8
+ - Updated dependency [`inngest@^3.40.1` ↗︎](https://www.npmjs.com/package/inngest/v/3.40.1) (from `^3.40.0`, in `dependencies`)
9
+ - Updated dependencies [33dcb07]
10
+ - Updated dependencies [d0d9500]
11
+ - Updated dependencies [d30b1a0]
12
+ - Updated dependencies [bff87f7]
13
+ - Updated dependencies [85bb6ba]
14
+ - Updated dependencies [b4a8df0]
15
+ - @mastra/core@0.0.0-transpile-packages-20250731152758
16
+
17
+ ## 0.11.8-alpha.0
18
+
19
+ ### Patch Changes
20
+
21
+ - 7257912: dependencies updates:
22
+ - Updated dependency [`inngest@^3.40.1` ↗︎](https://www.npmjs.com/package/inngest/v/3.40.1) (from `^3.40.0`, in `dependencies`)
23
+ - Updated dependencies [33dcb07]
24
+ - Updated dependencies [d30b1a0]
25
+ - Updated dependencies [bff87f7]
26
+ - Updated dependencies [b4a8df0]
27
+ - @mastra/core@0.12.1-alpha.0
28
+
29
+ ## 0.11.7
30
+
31
+ ### Patch Changes
32
+
33
+ - f42c4c2: update peer deps for packages to latest core range
34
+ - Updated dependencies [510e2c8]
35
+ - Updated dependencies [2f72fb2]
36
+ - Updated dependencies [27cc97a]
37
+ - Updated dependencies [3f89307]
38
+ - Updated dependencies [9eda7d4]
39
+ - Updated dependencies [9d49408]
40
+ - Updated dependencies [41daa63]
41
+ - Updated dependencies [ad0a58b]
42
+ - Updated dependencies [254a36b]
43
+ - Updated dependencies [2ecf658]
44
+ - Updated dependencies [7a7754f]
45
+ - Updated dependencies [fc92d80]
46
+ - Updated dependencies [e0f73c6]
47
+ - Updated dependencies [0b89602]
48
+ - Updated dependencies [4d37822]
49
+ - Updated dependencies [23a6a7c]
50
+ - Updated dependencies [cda801d]
51
+ - Updated dependencies [a77c823]
52
+ - Updated dependencies [ff9c125]
53
+ - Updated dependencies [09bca64]
54
+ - Updated dependencies [b8efbb9]
55
+ - Updated dependencies [71466e7]
56
+ - Updated dependencies [0c99fbe]
57
+ - @mastra/core@0.12.0
58
+
59
+ ## 0.11.7-alpha.0
60
+
61
+ ### Patch Changes
62
+
63
+ - f42c4c2: update peer deps for packages to latest core range
64
+ - @mastra/core@0.12.0-alpha.5
65
+
66
+ ## 0.11.6
67
+
68
+ ### Patch Changes
69
+
70
+ - ce088f5: Update all peerdeps to latest core
71
+ - @mastra/core@0.11.1
72
+
73
+ ## 0.11.5
4
74
 
5
75
  ### Patch Changes
6
76
 
@@ -8,20 +78,50 @@
8
78
  - Updated dependencies [f248d53]
9
79
  - Updated dependencies [2affc57]
10
80
  - Updated dependencies [66e13e3]
81
+ - Updated dependencies [edd9482]
11
82
  - Updated dependencies [18344d7]
83
+ - Updated dependencies [9d372c2]
12
84
  - Updated dependencies [40c2525]
13
85
  - Updated dependencies [e473f27]
86
+ - Updated dependencies [032cb66]
14
87
  - Updated dependencies [703ac71]
15
88
  - Updated dependencies [a723d69]
16
89
  - Updated dependencies [7827943]
17
90
  - Updated dependencies [5889a31]
18
91
  - Updated dependencies [bf1e7e7]
92
+ - Updated dependencies [65e3395]
19
93
  - Updated dependencies [4933192]
20
94
  - Updated dependencies [d1c77a4]
95
+ - Updated dependencies [bea9dd1]
21
96
  - Updated dependencies [dcd4802]
22
97
  - Updated dependencies [cbddd18]
23
98
  - Updated dependencies [7ba91fa]
24
- - @mastra/core@0.0.0-transpile-packages-20250724123433
99
+ - @mastra/core@0.11.0
100
+
101
+ ## 0.11.5-alpha.0
102
+
103
+ ### Patch Changes
104
+
105
+ - a723d69: Pass workflowId through
106
+ - Updated dependencies [f248d53]
107
+ - Updated dependencies [2affc57]
108
+ - Updated dependencies [66e13e3]
109
+ - Updated dependencies [edd9482]
110
+ - Updated dependencies [18344d7]
111
+ - Updated dependencies [9d372c2]
112
+ - Updated dependencies [40c2525]
113
+ - Updated dependencies [e473f27]
114
+ - Updated dependencies [032cb66]
115
+ - Updated dependencies [703ac71]
116
+ - Updated dependencies [a723d69]
117
+ - Updated dependencies [5889a31]
118
+ - Updated dependencies [65e3395]
119
+ - Updated dependencies [4933192]
120
+ - Updated dependencies [d1c77a4]
121
+ - Updated dependencies [bea9dd1]
122
+ - Updated dependencies [dcd4802]
123
+ - Updated dependencies [7ba91fa]
124
+ - @mastra/core@0.11.0-alpha.2
25
125
 
26
126
  ## 0.11.4
27
127
 
package/dist/index.cjs CHANGED
@@ -651,7 +651,8 @@ var InngestExecutionEngine = class extends workflows.DefaultExecutionEngine {
651
651
  prevOutput,
652
652
  emitter,
653
653
  abortController,
654
- runtimeContext
654
+ runtimeContext,
655
+ writableStream
655
656
  }) {
656
657
  return super.executeStep({
657
658
  workflowId,
@@ -663,7 +664,8 @@ var InngestExecutionEngine = class extends workflows.DefaultExecutionEngine {
663
664
  prevOutput,
664
665
  emitter,
665
666
  abortController,
666
- runtimeContext
667
+ runtimeContext,
668
+ writableStream
667
669
  });
668
670
  }
669
671
  // async executeSleep({ id, duration }: { id: string; duration: number }): Promise<void> {
@@ -677,10 +679,12 @@ var InngestExecutionEngine = class extends workflows.DefaultExecutionEngine {
677
679
  stepResults,
678
680
  emitter,
679
681
  abortController,
680
- runtimeContext
682
+ runtimeContext,
683
+ writableStream
681
684
  }) {
682
685
  let { duration, fn } = entry;
683
686
  if (fn) {
687
+ const stepCallId = crypto.randomUUID();
684
688
  duration = await this.inngestStep.run(`workflow.${workflowId}.sleep.${entry.id}`, async () => {
685
689
  return await fn({
686
690
  runId,
@@ -710,7 +714,16 @@ var InngestExecutionEngine = class extends workflows.DefaultExecutionEngine {
710
714
  },
711
715
  [_constants.EMITTER_SYMBOL]: emitter,
712
716
  engine: { step: this.inngestStep },
713
- abortSignal: abortController?.signal
717
+ abortSignal: abortController?.signal,
718
+ writer: new tools.ToolStream(
719
+ {
720
+ prefix: "step",
721
+ callId: stepCallId,
722
+ name: "sleep",
723
+ runId
724
+ },
725
+ writableStream
726
+ )
714
727
  });
715
728
  });
716
729
  }
@@ -724,11 +737,13 @@ var InngestExecutionEngine = class extends workflows.DefaultExecutionEngine {
724
737
  stepResults,
725
738
  emitter,
726
739
  abortController,
727
- runtimeContext
740
+ runtimeContext,
741
+ writableStream
728
742
  }) {
729
743
  let { date, fn } = entry;
730
744
  if (fn) {
731
745
  date = await this.inngestStep.run(`workflow.${workflowId}.sleepUntil.${entry.id}`, async () => {
746
+ const stepCallId = crypto.randomUUID();
732
747
  return await fn({
733
748
  runId,
734
749
  workflowId,
@@ -757,7 +772,16 @@ var InngestExecutionEngine = class extends workflows.DefaultExecutionEngine {
757
772
  },
758
773
  [_constants.EMITTER_SYMBOL]: emitter,
759
774
  engine: { step: this.inngestStep },
760
- abortSignal: abortController?.signal
775
+ abortSignal: abortController?.signal,
776
+ writer: new tools.ToolStream(
777
+ {
778
+ prefix: "step",
779
+ callId: stepCallId,
780
+ name: "sleep",
781
+ runId
782
+ },
783
+ writableStream
784
+ )
761
785
  });
762
786
  });
763
787
  }
@@ -784,7 +808,8 @@ var InngestExecutionEngine = class extends workflows.DefaultExecutionEngine {
784
808
  prevOutput,
785
809
  emitter,
786
810
  abortController,
787
- runtimeContext
811
+ runtimeContext,
812
+ writableStream
788
813
  }) {
789
814
  const startedAt = await this.inngestStep.run(
790
815
  `workflow.${executionContext.workflowId}.run.${executionContext.runId}.step.${step.id}.running_ev`,
@@ -1003,6 +1028,7 @@ var InngestExecutionEngine = class extends workflows.DefaultExecutionEngine {
1003
1028
  runId: executionContext.runId,
1004
1029
  mastra: this.mastra,
1005
1030
  runtimeContext,
1031
+ writableStream,
1006
1032
  inputData: prevOutput,
1007
1033
  resumeData: resume?.steps[0] === step.id ? resume?.resumePayload : void 0,
1008
1034
  getInitData: () => stepResults?.input,
@@ -1162,7 +1188,8 @@ var InngestExecutionEngine = class extends workflows.DefaultExecutionEngine {
1162
1188
  executionContext,
1163
1189
  emitter,
1164
1190
  abortController,
1165
- runtimeContext
1191
+ runtimeContext,
1192
+ writableStream
1166
1193
  }) {
1167
1194
  let execResults;
1168
1195
  const truthyIndexes = (await Promise.all(
@@ -1199,7 +1226,16 @@ var InngestExecutionEngine = class extends workflows.DefaultExecutionEngine {
1199
1226
  engine: {
1200
1227
  step: this.inngestStep
1201
1228
  },
1202
- abortSignal: abortController.signal
1229
+ abortSignal: abortController.signal,
1230
+ writer: new tools.ToolStream(
1231
+ {
1232
+ prefix: "step",
1233
+ callId: crypto.randomUUID(),
1234
+ name: "conditional",
1235
+ runId
1236
+ },
1237
+ writableStream
1238
+ )
1203
1239
  });
1204
1240
  return result ? index : null;
1205
1241
  } catch (e) {
@@ -1229,7 +1265,8 @@ var InngestExecutionEngine = class extends workflows.DefaultExecutionEngine {
1229
1265
  },
1230
1266
  emitter,
1231
1267
  abortController,
1232
- runtimeContext
1268
+ runtimeContext,
1269
+ writableStream
1233
1270
  })
1234
1271
  )
1235
1272
  );
@@ -1260,3 +1297,5 @@ exports.InngestWorkflow = InngestWorkflow;
1260
1297
  exports.createStep = createStep;
1261
1298
  exports.init = init;
1262
1299
  exports.serve = serve;
1300
+ //# sourceMappingURL=index.cjs.map
1301
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts"],"names":["inngestServe","Run","subscribe","Workflow","randomUUID","event","RuntimeContext","Tool","z","EMITTER_SYMBOL","DefaultExecutionEngine","ToolStream","startedAt","stepRes","step","result"],"mappings":"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","file":"index.cjs","sourcesContent":["import { randomUUID } from 'crypto';\nimport type { ReadableStream } from 'node:stream/web';\nimport { subscribe } from '@inngest/realtime';\nimport type { Agent, Mastra, ToolExecutionContext, WorkflowRun, WorkflowRuns } from '@mastra/core';\nimport { RuntimeContext } from '@mastra/core/di';\nimport { Tool, ToolStream } from '@mastra/core/tools';\nimport { Workflow, Run, DefaultExecutionEngine } from '@mastra/core/workflows';\nimport type {\n ExecuteFunction,\n ExecutionContext,\n ExecutionEngine,\n ExecutionGraph,\n Step,\n WorkflowConfig,\n StepFlowEntry,\n StepResult,\n WorkflowResult,\n SerializedStepFlowEntry,\n StepFailure,\n Emitter,\n WatchEvent,\n StreamEvent,\n ChunkType,\n} from '@mastra/core/workflows';\nimport { EMITTER_SYMBOL } from '@mastra/core/workflows/_constants';\nimport type { Span } from '@opentelemetry/api';\nimport type { Inngest, BaseContext } from 'inngest';\nimport { serve as inngestServe } from 'inngest/hono';\nimport { z } from 'zod';\n\nexport type InngestEngineType = {\n step: any;\n};\n\nexport function serve({ mastra, inngest }: { mastra: Mastra; inngest: Inngest }): ReturnType<typeof inngestServe> {\n const wfs = mastra.getWorkflows();\n const functions = Array.from(\n new Set(\n Object.values(wfs).flatMap(wf => {\n if (wf instanceof InngestWorkflow) {\n wf.__registerMastra(mastra);\n return wf.getFunctions();\n }\n return [];\n }),\n ),\n );\n return inngestServe({\n client: inngest,\n functions,\n });\n}\n\nexport class InngestRun<\n TEngineType = InngestEngineType,\n TSteps extends Step<string, any, any>[] = Step<string, any, any>[],\n TInput extends z.ZodType<any> = z.ZodType<any>,\n TOutput extends z.ZodType<any> = z.ZodType<any>,\n> extends Run<TEngineType, TSteps, TInput, TOutput> {\n private inngest: Inngest;\n serializedStepGraph: SerializedStepFlowEntry[];\n #mastra: Mastra;\n\n constructor(\n params: {\n workflowId: string;\n runId: string;\n executionEngine: ExecutionEngine;\n executionGraph: ExecutionGraph;\n serializedStepGraph: SerializedStepFlowEntry[];\n mastra?: Mastra;\n retryConfig?: {\n attempts?: number;\n delay?: number;\n };\n cleanup?: () => void;\n },\n inngest: Inngest,\n ) {\n super(params);\n this.inngest = inngest;\n this.serializedStepGraph = params.serializedStepGraph;\n this.#mastra = params.mastra!;\n }\n\n async getRuns(eventId: string) {\n const response = await fetch(`${this.inngest.apiBaseUrl ?? 'https://api.inngest.com'}/v1/events/${eventId}/runs`, {\n headers: {\n Authorization: `Bearer ${process.env.INNGEST_SIGNING_KEY}`,\n },\n });\n const json = await response.json();\n return (json as any).data;\n }\n\n async getRunOutput(eventId: string) {\n let runs = await this.getRuns(eventId);\n\n while (runs?.[0]?.status !== 'Completed' || runs?.[0]?.event_id !== eventId) {\n await new Promise(resolve => setTimeout(resolve, 1000));\n runs = await this.getRuns(eventId);\n if (runs?.[0]?.status === 'Failed') {\n console.log('run', runs?.[0]);\n throw new Error(`Function run ${runs?.[0]?.status}`);\n } else if (runs?.[0]?.status === 'Cancelled') {\n const snapshot = await this.#mastra?.storage?.loadWorkflowSnapshot({\n workflowName: this.workflowId,\n runId: this.runId,\n });\n return { output: { result: { steps: snapshot?.context, status: 'canceled' } } };\n }\n }\n return runs?.[0];\n }\n\n async sendEvent(event: string, data: any) {\n await this.inngest.send({\n name: `user-event-${event}`,\n data,\n });\n }\n\n async cancel() {\n await this.inngest.send({\n name: `cancel.workflow.${this.workflowId}`,\n data: {\n runId: this.runId,\n },\n });\n\n const snapshot = await this.#mastra?.storage?.loadWorkflowSnapshot({\n workflowName: this.workflowId,\n runId: this.runId,\n });\n if (snapshot) {\n await this.#mastra?.storage?.persistWorkflowSnapshot({\n workflowName: this.workflowId,\n runId: this.runId,\n snapshot: {\n ...snapshot,\n status: 'canceled' as any,\n },\n });\n }\n }\n\n async start({\n inputData,\n }: {\n inputData?: z.infer<TInput>;\n runtimeContext?: RuntimeContext;\n }): Promise<WorkflowResult<TOutput, TSteps>> {\n await this.#mastra.getStorage()?.persistWorkflowSnapshot({\n workflowName: this.workflowId,\n runId: this.runId,\n snapshot: {\n runId: this.runId,\n serializedStepGraph: this.serializedStepGraph,\n value: {},\n context: {} as any,\n activePaths: [],\n suspendedPaths: {},\n timestamp: Date.now(),\n status: 'running',\n },\n });\n\n const eventOutput = await this.inngest.send({\n name: `workflow.${this.workflowId}`,\n data: {\n inputData,\n runId: this.runId,\n },\n });\n\n const eventId = eventOutput.ids[0];\n if (!eventId) {\n throw new Error('Event ID is not set');\n }\n const runOutput = await this.getRunOutput(eventId);\n const result = runOutput?.output?.result;\n if (result.status === 'failed') {\n result.error = new Error(result.error);\n }\n\n if (result.status !== 'suspended') {\n this.cleanup?.();\n }\n return result;\n }\n\n async resume<TResumeSchema extends z.ZodType<any>>(params: {\n resumeData?: z.infer<TResumeSchema>;\n step:\n | Step<string, any, any, TResumeSchema, any>\n | [...Step<string, any, any, any, any>[], Step<string, any, any, TResumeSchema, any>]\n | string\n | string[];\n runtimeContext?: RuntimeContext;\n }): Promise<WorkflowResult<TOutput, TSteps>> {\n const p = this._resume(params).then(result => {\n if (result.status !== 'suspended') {\n this.closeStreamAction?.().catch(() => {});\n }\n\n return result;\n });\n\n this.executionResults = p;\n return p;\n }\n\n async _resume<TResumeSchema extends z.ZodType<any>>(params: {\n resumeData?: z.infer<TResumeSchema>;\n step:\n | Step<string, any, any, TResumeSchema, any>\n | [...Step<string, any, any, any, any>[], Step<string, any, any, TResumeSchema, any>]\n | string\n | string[];\n runtimeContext?: RuntimeContext;\n }): Promise<WorkflowResult<TOutput, TSteps>> {\n const steps: string[] = (Array.isArray(params.step) ? params.step : [params.step]).map(step =>\n typeof step === 'string' ? step : step?.id,\n );\n const snapshot = await this.#mastra?.storage?.loadWorkflowSnapshot({\n workflowName: this.workflowId,\n runId: this.runId,\n });\n\n const eventOutput = await this.inngest.send({\n name: `workflow.${this.workflowId}`,\n data: {\n inputData: params.resumeData,\n runId: this.runId,\n workflowId: this.workflowId,\n stepResults: snapshot?.context as any,\n resume: {\n steps,\n stepResults: snapshot?.context as any,\n resumePayload: params.resumeData,\n // @ts-ignore\n resumePath: snapshot?.suspendedPaths?.[steps?.[0]] as any,\n },\n },\n });\n\n const eventId = eventOutput.ids[0];\n if (!eventId) {\n throw new Error('Event ID is not set');\n }\n const runOutput = await this.getRunOutput(eventId);\n const result = runOutput?.output?.result;\n if (result.status === 'failed') {\n result.error = new Error(result.error);\n }\n return result;\n }\n\n watch(cb: (event: WatchEvent) => void, type: 'watch' | 'watch-v2' = 'watch'): () => void {\n let active = true;\n const streamPromise = subscribe(\n {\n channel: `workflow:${this.workflowId}:${this.runId}`,\n topics: [type],\n app: this.inngest,\n },\n (message: any) => {\n if (active) {\n cb(message.data);\n }\n },\n );\n\n return () => {\n active = false;\n streamPromise\n .then(async (stream: Awaited<typeof streamPromise>) => {\n return stream.cancel();\n })\n .catch(err => {\n console.error(err);\n });\n };\n }\n\n stream({ inputData, runtimeContext }: { inputData?: z.infer<TInput>; runtimeContext?: RuntimeContext } = {}): {\n stream: ReadableStream<StreamEvent>;\n getWorkflowState: () => Promise<WorkflowResult<TOutput, TSteps>>;\n } {\n const { readable, writable } = new TransformStream<StreamEvent, StreamEvent>();\n\n const writer = writable.getWriter();\n const unwatch = this.watch(async event => {\n try {\n // watch-v2 events are data stream events, so we need to cast them to the correct type\n await writer.write(event as any);\n } catch {}\n }, 'watch-v2');\n\n this.closeStreamAction = async () => {\n unwatch();\n\n try {\n await writer.close();\n } catch (err) {\n console.error('Error closing stream:', err);\n } finally {\n writer.releaseLock();\n }\n };\n\n this.executionResults = this.start({ inputData, runtimeContext }).then(result => {\n if (result.status !== 'suspended') {\n this.closeStreamAction?.().catch(() => {});\n }\n\n return result;\n });\n\n return {\n stream: readable as ReadableStream<StreamEvent>,\n getWorkflowState: () => this.executionResults!,\n };\n }\n}\n\nexport class InngestWorkflow<\n TEngineType = InngestEngineType,\n TSteps extends Step<string, any, any>[] = Step<string, any, any>[],\n TWorkflowId extends string = string,\n TInput extends z.ZodType<any> = z.ZodType<any>,\n TOutput extends z.ZodType<any> = z.ZodType<any>,\n TPrevSchema extends z.ZodType<any> = TInput,\n> extends Workflow<TEngineType, TSteps, TWorkflowId, TInput, TOutput, TPrevSchema> {\n #mastra: Mastra;\n public inngest: Inngest;\n\n private function: ReturnType<Inngest['createFunction']> | undefined;\n\n constructor(params: WorkflowConfig<TWorkflowId, TInput, TOutput, TSteps>, inngest: Inngest) {\n super(params);\n this.#mastra = params.mastra!;\n this.inngest = inngest;\n }\n\n async getWorkflowRuns(args?: {\n fromDate?: Date;\n toDate?: Date;\n limit?: number;\n offset?: number;\n resourceId?: string;\n }) {\n const storage = this.#mastra?.getStorage();\n if (!storage) {\n this.logger.debug('Cannot get workflow runs. Mastra engine is not initialized');\n return { runs: [], total: 0 };\n }\n\n return storage.getWorkflowRuns({ workflowName: this.id, ...(args ?? {}) }) as unknown as WorkflowRuns;\n }\n\n async getWorkflowRunById(runId: string): Promise<WorkflowRun | null> {\n const storage = this.#mastra?.getStorage();\n if (!storage) {\n this.logger.debug('Cannot get workflow runs. Mastra engine is not initialized');\n //returning in memory run if no storage is initialized\n return this.runs.get(runId)\n ? ({ ...this.runs.get(runId), workflowName: this.id } as unknown as WorkflowRun)\n : null;\n }\n const run = (await storage.getWorkflowRunById({ runId, workflowName: this.id })) as unknown as WorkflowRun;\n\n return (\n run ??\n (this.runs.get(runId) ? ({ ...this.runs.get(runId), workflowName: this.id } as unknown as WorkflowRun) : null)\n );\n }\n\n async getWorkflowRunExecutionResult(runId: string): Promise<WatchEvent['payload']['workflowState'] | null> {\n const storage = this.#mastra?.getStorage();\n if (!storage) {\n this.logger.debug('Cannot get workflow run execution result. Mastra storage is not initialized');\n return null;\n }\n\n const run = await storage.getWorkflowRunById({ runId, workflowName: this.id });\n\n if (!run?.snapshot) {\n return null;\n }\n\n if (typeof run.snapshot === 'string') {\n return null;\n }\n\n return {\n status: run.snapshot.status,\n result: run.snapshot.result,\n error: run.snapshot.error,\n payload: run.snapshot.context?.input,\n steps: run.snapshot.context as any,\n };\n }\n\n __registerMastra(mastra: Mastra) {\n this.#mastra = mastra;\n this.executionEngine.__registerMastra(mastra);\n const updateNested = (step: StepFlowEntry) => {\n if (\n (step.type === 'step' || step.type === 'loop' || step.type === 'foreach') &&\n step.step instanceof InngestWorkflow\n ) {\n step.step.__registerMastra(mastra);\n } else if (step.type === 'parallel' || step.type === 'conditional') {\n for (const subStep of step.steps) {\n updateNested(subStep);\n }\n }\n };\n\n if (this.executionGraph.steps.length) {\n for (const step of this.executionGraph.steps) {\n updateNested(step);\n }\n }\n }\n\n createRun(options?: { runId?: string }): Run<TEngineType, TSteps, TInput, TOutput> {\n const runIdToUse = options?.runId || randomUUID();\n\n // Return a new Run instance with object parameters\n const run: Run<TEngineType, TSteps, TInput, TOutput> =\n this.runs.get(runIdToUse) ??\n new InngestRun(\n {\n workflowId: this.id,\n runId: runIdToUse,\n executionEngine: this.executionEngine,\n executionGraph: this.executionGraph,\n serializedStepGraph: this.serializedStepGraph,\n mastra: this.#mastra,\n retryConfig: this.retryConfig,\n cleanup: () => this.runs.delete(runIdToUse),\n },\n this.inngest,\n );\n\n this.runs.set(runIdToUse, run);\n return run;\n }\n\n async createRunAsync(options?: { runId?: string }): Promise<Run<TEngineType, TSteps, TInput, TOutput>> {\n const runIdToUse = options?.runId || randomUUID();\n\n // Return a new Run instance with object parameters\n const run: Run<TEngineType, TSteps, TInput, TOutput> =\n this.runs.get(runIdToUse) ??\n new InngestRun(\n {\n workflowId: this.id,\n runId: runIdToUse,\n executionEngine: this.executionEngine,\n executionGraph: this.executionGraph,\n serializedStepGraph: this.serializedStepGraph,\n mastra: this.#mastra,\n retryConfig: this.retryConfig,\n cleanup: () => this.runs.delete(runIdToUse),\n },\n this.inngest,\n );\n\n this.runs.set(runIdToUse, run);\n\n const workflowSnapshotInStorage = await this.getWorkflowRunExecutionResult(runIdToUse);\n\n if (!workflowSnapshotInStorage) {\n await this.mastra?.getStorage()?.persistWorkflowSnapshot({\n workflowName: this.id,\n runId: runIdToUse,\n snapshot: {\n runId: runIdToUse,\n status: 'pending',\n value: {},\n context: {},\n activePaths: [],\n serializedStepGraph: this.serializedStepGraph,\n suspendedPaths: {},\n result: undefined,\n error: undefined,\n // @ts-ignore\n timestamp: Date.now(),\n },\n });\n }\n\n return run;\n }\n\n getFunction() {\n if (this.function) {\n return this.function;\n }\n this.function = this.inngest.createFunction(\n {\n id: `workflow.${this.id}`,\n // @ts-ignore\n retries: this.retryConfig?.attempts ?? 0,\n cancelOn: [{ event: `cancel.workflow.${this.id}` }],\n },\n { event: `workflow.${this.id}` },\n async ({ event, step, attempt, publish }) => {\n let { inputData, runId, resume } = event.data;\n\n if (!runId) {\n runId = await step.run(`workflow.${this.id}.runIdGen`, async () => {\n return randomUUID();\n });\n }\n\n const emitter = {\n emit: async (event: string, data: any) => {\n if (!publish) {\n return;\n }\n\n try {\n await publish({\n channel: `workflow:${this.id}:${runId}`,\n topic: event,\n data,\n });\n } catch (err: any) {\n this.logger.error('Error emitting event: ' + (err?.stack ?? err?.message ?? err));\n }\n },\n on: (_event: string, _callback: (data: any) => void) => {\n // no-op\n },\n off: (_event: string, _callback: (data: any) => void) => {\n // no-op\n },\n once: (_event: string, _callback: (data: any) => void) => {\n // no-op\n },\n };\n\n const engine = new InngestExecutionEngine(this.#mastra, step, attempt);\n const result = await engine.execute<z.infer<TInput>, WorkflowResult<TOutput, TSteps>>({\n workflowId: this.id,\n runId,\n graph: this.executionGraph,\n serializedStepGraph: this.serializedStepGraph,\n input: inputData,\n emitter,\n retryConfig: this.retryConfig,\n runtimeContext: new RuntimeContext(), // TODO\n resume,\n abortController: new AbortController(),\n });\n\n return { result, runId };\n },\n );\n return this.function;\n }\n\n getNestedFunctions(steps: StepFlowEntry[]): ReturnType<Inngest['createFunction']>[] {\n return steps.flatMap(step => {\n if (step.type === 'step' || step.type === 'loop' || step.type === 'foreach') {\n if (step.step instanceof InngestWorkflow) {\n return [step.step.getFunction(), ...step.step.getNestedFunctions(step.step.executionGraph.steps)];\n }\n return [];\n } else if (step.type === 'parallel' || step.type === 'conditional') {\n return this.getNestedFunctions(step.steps);\n }\n\n return [];\n });\n }\n\n getFunctions() {\n return [this.getFunction(), ...this.getNestedFunctions(this.executionGraph.steps)];\n }\n}\n\nfunction isAgent(params: any): params is Agent<any, any, any> {\n return params?.component === 'AGENT';\n}\n\nfunction isTool(params: any): params is Tool<any, any, any> {\n return params instanceof Tool;\n}\n\nexport function createStep<\n TStepId extends string,\n TStepInput extends z.ZodType<any>,\n TStepOutput extends z.ZodType<any>,\n TResumeSchema extends z.ZodType<any>,\n TSuspendSchema extends z.ZodType<any>,\n>(params: {\n id: TStepId;\n description?: string;\n inputSchema: TStepInput;\n outputSchema: TStepOutput;\n resumeSchema?: TResumeSchema;\n suspendSchema?: TSuspendSchema;\n execute: ExecuteFunction<\n z.infer<TStepInput>,\n z.infer<TStepOutput>,\n z.infer<TResumeSchema>,\n z.infer<TSuspendSchema>,\n InngestEngineType\n >;\n}): Step<TStepId, TStepInput, TStepOutput, TResumeSchema, TSuspendSchema, InngestEngineType>;\n\nexport function createStep<\n TStepId extends string,\n TStepInput extends z.ZodObject<{ prompt: z.ZodString }>,\n TStepOutput extends z.ZodObject<{ text: z.ZodString }>,\n TResumeSchema extends z.ZodType<any>,\n TSuspendSchema extends z.ZodType<any>,\n>(\n agent: Agent<TStepId, any, any>,\n): Step<TStepId, TStepInput, TStepOutput, TResumeSchema, TSuspendSchema, InngestEngineType>;\n\nexport function createStep<\n TSchemaIn extends z.ZodType<any>,\n TSchemaOut extends z.ZodType<any>,\n TContext extends ToolExecutionContext<TSchemaIn>,\n>(\n tool: Tool<TSchemaIn, TSchemaOut, TContext> & {\n inputSchema: TSchemaIn;\n outputSchema: TSchemaOut;\n execute: (context: TContext) => Promise<any>;\n },\n): Step<string, TSchemaIn, TSchemaOut, z.ZodType<any>, z.ZodType<any>, InngestEngineType>;\nexport function createStep<\n TStepId extends string,\n TStepInput extends z.ZodType<any>,\n TStepOutput extends z.ZodType<any>,\n TResumeSchema extends z.ZodType<any>,\n TSuspendSchema extends z.ZodType<any>,\n>(\n params:\n | {\n id: TStepId;\n description?: string;\n inputSchema: TStepInput;\n outputSchema: TStepOutput;\n resumeSchema?: TResumeSchema;\n suspendSchema?: TSuspendSchema;\n execute: ExecuteFunction<\n z.infer<TStepInput>,\n z.infer<TStepOutput>,\n z.infer<TResumeSchema>,\n z.infer<TSuspendSchema>,\n InngestEngineType\n >;\n }\n | Agent<any, any, any>\n | (Tool<TStepInput, TStepOutput, any> & {\n inputSchema: TStepInput;\n outputSchema: TStepOutput;\n execute: (context: ToolExecutionContext<TStepInput>) => Promise<any>;\n }),\n): Step<TStepId, TStepInput, TStepOutput, TResumeSchema, TSuspendSchema, InngestEngineType> {\n if (isAgent(params)) {\n return {\n id: params.name,\n // @ts-ignore\n inputSchema: z.object({\n prompt: z.string(),\n // resourceId: z.string().optional(),\n // threadId: z.string().optional(),\n }),\n // @ts-ignore\n outputSchema: z.object({\n text: z.string(),\n }),\n execute: async ({ inputData, [EMITTER_SYMBOL]: emitter, runtimeContext, abortSignal, abort }) => {\n let streamPromise = {} as {\n promise: Promise<string>;\n resolve: (value: string) => void;\n reject: (reason?: any) => void;\n };\n\n streamPromise.promise = new Promise((resolve, reject) => {\n streamPromise.resolve = resolve;\n streamPromise.reject = reject;\n });\n const toolData = {\n name: params.name,\n args: inputData,\n };\n await emitter.emit('watch-v2', {\n type: 'tool-call-streaming-start',\n ...toolData,\n });\n const { fullStream } = await params.stream(inputData.prompt, {\n // resourceId: inputData.resourceId,\n // threadId: inputData.threadId,\n runtimeContext,\n onFinish: result => {\n streamPromise.resolve(result.text);\n },\n abortSignal,\n });\n\n if (abortSignal.aborted) {\n return abort();\n }\n\n for await (const chunk of fullStream) {\n switch (chunk.type) {\n case 'text-delta':\n await emitter.emit('watch-v2', {\n type: 'tool-call-delta',\n ...toolData,\n argsTextDelta: chunk.textDelta,\n });\n break;\n\n case 'step-start':\n case 'step-finish':\n case 'finish':\n break;\n\n case 'tool-call':\n case 'tool-result':\n case 'tool-call-streaming-start':\n case 'tool-call-delta':\n case 'source':\n case 'file':\n default:\n await emitter.emit('watch-v2', chunk);\n break;\n }\n }\n\n return {\n text: await streamPromise.promise,\n };\n },\n };\n }\n\n if (isTool(params)) {\n if (!params.inputSchema || !params.outputSchema) {\n throw new Error('Tool must have input and output schemas defined');\n }\n\n return {\n // TODO: tool probably should have strong id type\n // @ts-ignore\n id: params.id,\n inputSchema: params.inputSchema,\n outputSchema: params.outputSchema,\n execute: async ({ inputData, mastra, runtimeContext }) => {\n return params.execute({\n context: inputData,\n mastra,\n runtimeContext,\n });\n },\n };\n }\n\n return {\n id: params.id,\n description: params.description,\n inputSchema: params.inputSchema,\n outputSchema: params.outputSchema,\n resumeSchema: params.resumeSchema,\n suspendSchema: params.suspendSchema,\n execute: params.execute,\n };\n}\n\nexport function init(inngest: Inngest) {\n return {\n createWorkflow<\n TWorkflowId extends string = string,\n TInput extends z.ZodType<any> = z.ZodType<any>,\n TOutput extends z.ZodType<any> = z.ZodType<any>,\n TSteps extends Step<string, any, any, any, any, InngestEngineType>[] = Step<\n string,\n any,\n any,\n any,\n any,\n InngestEngineType\n >[],\n >(params: WorkflowConfig<TWorkflowId, TInput, TOutput, TSteps>) {\n return new InngestWorkflow<InngestEngineType, TSteps, TWorkflowId, TInput, TOutput, TInput>(params, inngest);\n },\n createStep,\n cloneStep<TStepId extends string>(\n step: Step<string, any, any, any, any, InngestEngineType>,\n opts: { id: TStepId },\n ): Step<TStepId, any, any, any, any, InngestEngineType> {\n return {\n id: opts.id,\n description: step.description,\n inputSchema: step.inputSchema,\n outputSchema: step.outputSchema,\n execute: step.execute,\n };\n },\n cloneWorkflow<\n TWorkflowId extends string = string,\n TInput extends z.ZodType<any> = z.ZodType<any>,\n TOutput extends z.ZodType<any> = z.ZodType<any>,\n TSteps extends Step<string, any, any, any, any, InngestEngineType>[] = Step<\n string,\n any,\n any,\n any,\n any,\n InngestEngineType\n >[],\n TPrevSchema extends z.ZodType<any> = TInput,\n >(\n workflow: Workflow<InngestEngineType, TSteps, string, TInput, TOutput, TPrevSchema>,\n opts: { id: TWorkflowId },\n ): Workflow<InngestEngineType, TSteps, TWorkflowId, TInput, TOutput, TPrevSchema> {\n const wf: Workflow<InngestEngineType, TSteps, TWorkflowId, TInput, TOutput, TPrevSchema> = new Workflow({\n id: opts.id,\n inputSchema: workflow.inputSchema,\n outputSchema: workflow.outputSchema,\n steps: workflow.stepDefs,\n mastra: workflow.mastra,\n });\n\n wf.setStepFlow(workflow.stepGraph);\n wf.commit();\n return wf;\n },\n };\n}\n\nexport class InngestExecutionEngine extends DefaultExecutionEngine {\n private inngestStep: BaseContext<Inngest>['step'];\n private inngestAttempts: number;\n\n constructor(mastra: Mastra, inngestStep: BaseContext<Inngest>['step'], inngestAttempts: number = 0) {\n super({ mastra });\n this.inngestStep = inngestStep;\n this.inngestAttempts = inngestAttempts;\n }\n\n async execute<TInput, TOutput>(params: {\n workflowId: string;\n runId: string;\n graph: ExecutionGraph;\n serializedStepGraph: SerializedStepFlowEntry[];\n input?: TInput;\n resume?: {\n // TODO: add execute path\n steps: string[];\n stepResults: Record<string, StepResult<any, any, any, any>>;\n resumePayload: any;\n resumePath: number[];\n };\n emitter: Emitter;\n retryConfig?: {\n attempts?: number;\n delay?: number;\n };\n runtimeContext: RuntimeContext;\n abortController: AbortController;\n }): Promise<TOutput> {\n await params.emitter.emit('watch-v2', {\n type: 'start',\n payload: { runId: params.runId },\n });\n\n const result = await super.execute<TInput, TOutput>(params);\n\n await params.emitter.emit('watch-v2', {\n type: 'finish',\n payload: { runId: params.runId },\n });\n\n return result;\n }\n\n protected async fmtReturnValue<TOutput>(\n executionSpan: Span | undefined,\n emitter: Emitter,\n stepResults: Record<string, StepResult<any, any, any, any>>,\n lastOutput: StepResult<any, any, any, any>,\n error?: Error | string,\n ): Promise<TOutput> {\n const base: any = {\n status: lastOutput.status,\n steps: stepResults,\n };\n if (lastOutput.status === 'success') {\n await emitter.emit('watch', {\n type: 'watch',\n payload: {\n workflowState: {\n status: lastOutput.status,\n steps: stepResults,\n result: lastOutput.output,\n },\n },\n eventTimestamp: Date.now(),\n });\n\n base.result = lastOutput.output;\n } else if (lastOutput.status === 'failed') {\n base.error =\n error instanceof Error\n ? (error?.stack ?? error.message)\n : lastOutput?.error instanceof Error\n ? lastOutput.error.message\n : (lastOutput.error ?? error ?? 'Unknown error');\n\n await emitter.emit('watch', {\n type: 'watch',\n payload: {\n workflowState: {\n status: lastOutput.status,\n steps: stepResults,\n result: null,\n error: base.error,\n },\n },\n eventTimestamp: Date.now(),\n });\n } else if (lastOutput.status === 'suspended') {\n await emitter.emit('watch', {\n type: 'watch',\n payload: {\n workflowState: {\n status: lastOutput.status,\n steps: stepResults,\n result: null,\n error: null,\n },\n },\n eventTimestamp: Date.now(),\n });\n\n const suspendedStepIds = Object.entries(stepResults).flatMap(([stepId, stepResult]) => {\n if (stepResult?.status === 'suspended') {\n const nestedPath = stepResult?.payload?.__workflow_meta?.path;\n return nestedPath ? [[stepId, ...nestedPath]] : [[stepId]];\n }\n\n return [];\n });\n base.suspended = suspendedStepIds;\n }\n\n executionSpan?.end();\n return base as TOutput;\n }\n\n async superExecuteStep({\n workflowId,\n runId,\n step,\n stepResults,\n executionContext,\n resume,\n prevOutput,\n emitter,\n abortController,\n runtimeContext,\n writableStream,\n }: {\n workflowId: string;\n runId: string;\n step: Step<string, any, any>;\n stepResults: Record<string, StepResult<any, any, any, any>>;\n executionContext: ExecutionContext;\n resume?: {\n steps: string[];\n resumePayload: any;\n };\n prevOutput: any;\n emitter: Emitter;\n abortController: AbortController;\n runtimeContext: RuntimeContext;\n writableStream?: WritableStream<ChunkType>;\n }): Promise<StepResult<any, any, any, any>> {\n return super.executeStep({\n workflowId,\n runId,\n step,\n stepResults,\n executionContext,\n resume,\n prevOutput,\n emitter,\n abortController,\n runtimeContext,\n writableStream,\n });\n }\n\n // async executeSleep({ id, duration }: { id: string; duration: number }): Promise<void> {\n // await this.inngestStep.sleep(id, duration);\n // }\n\n async executeSleep({\n workflowId,\n runId,\n entry,\n prevOutput,\n stepResults,\n emitter,\n abortController,\n runtimeContext,\n writableStream,\n }: {\n workflowId: string;\n runId: string;\n serializedStepGraph: SerializedStepFlowEntry[];\n entry: {\n type: 'sleep';\n id: string;\n duration?: number;\n fn?: ExecuteFunction<any, any, any, any, InngestEngineType>;\n };\n prevStep: StepFlowEntry;\n prevOutput: any;\n stepResults: Record<string, StepResult<any, any, any, any>>;\n resume?: {\n steps: string[];\n stepResults: Record<string, StepResult<any, any, any, any>>;\n resumePayload: any;\n resumePath: number[];\n };\n executionContext: ExecutionContext;\n emitter: Emitter;\n abortController: AbortController;\n runtimeContext: RuntimeContext;\n writableStream?: WritableStream<ChunkType>;\n }): Promise<void> {\n let { duration, fn } = entry;\n\n if (fn) {\n const stepCallId = randomUUID();\n duration = await this.inngestStep.run(`workflow.${workflowId}.sleep.${entry.id}`, async () => {\n return await fn({\n runId,\n workflowId,\n mastra: this.mastra!,\n runtimeContext,\n inputData: prevOutput,\n runCount: -1,\n getInitData: () => stepResults?.input as any,\n getStepResult: (step: any) => {\n if (!step?.id) {\n return null;\n }\n\n const result = stepResults[step.id];\n if (result?.status === 'success') {\n return result.output;\n }\n\n return null;\n },\n\n // TODO: this function shouldn't have suspend probably?\n suspend: async (_suspendPayload: any): Promise<any> => {},\n bail: () => {},\n abort: () => {\n abortController?.abort();\n },\n [EMITTER_SYMBOL]: emitter,\n engine: { step: this.inngestStep },\n abortSignal: abortController?.signal,\n writer: new ToolStream(\n {\n prefix: 'step',\n callId: stepCallId,\n name: 'sleep',\n runId,\n },\n writableStream,\n ),\n });\n });\n }\n\n await this.inngestStep.sleep(entry.id, !duration || duration < 0 ? 0 : duration);\n }\n\n async executeSleepUntil({\n workflowId,\n runId,\n entry,\n prevOutput,\n stepResults,\n emitter,\n abortController,\n runtimeContext,\n writableStream,\n }: {\n workflowId: string;\n runId: string;\n serializedStepGraph: SerializedStepFlowEntry[];\n entry: {\n type: 'sleepUntil';\n id: string;\n date?: Date;\n fn?: ExecuteFunction<any, any, any, any, InngestEngineType>;\n };\n prevStep: StepFlowEntry;\n prevOutput: any;\n stepResults: Record<string, StepResult<any, any, any, any>>;\n resume?: {\n steps: string[];\n stepResults: Record<string, StepResult<any, any, any, any>>;\n resumePayload: any;\n resumePath: number[];\n };\n executionContext: ExecutionContext;\n emitter: Emitter;\n abortController: AbortController;\n runtimeContext: RuntimeContext;\n writableStream?: WritableStream<ChunkType>;\n }): Promise<void> {\n let { date, fn } = entry;\n\n if (fn) {\n date = await this.inngestStep.run(`workflow.${workflowId}.sleepUntil.${entry.id}`, async () => {\n const stepCallId = randomUUID();\n return await fn({\n runId,\n workflowId,\n mastra: this.mastra!,\n runtimeContext,\n inputData: prevOutput,\n runCount: -1,\n getInitData: () => stepResults?.input as any,\n getStepResult: (step: any) => {\n if (!step?.id) {\n return null;\n }\n\n const result = stepResults[step.id];\n if (result?.status === 'success') {\n return result.output;\n }\n\n return null;\n },\n\n // TODO: this function shouldn't have suspend probably?\n suspend: async (_suspendPayload: any): Promise<any> => {},\n bail: () => {},\n abort: () => {\n abortController?.abort();\n },\n [EMITTER_SYMBOL]: emitter,\n engine: { step: this.inngestStep },\n abortSignal: abortController?.signal,\n writer: new ToolStream(\n {\n prefix: 'step',\n callId: stepCallId,\n name: 'sleep',\n runId,\n },\n writableStream,\n ),\n });\n });\n }\n\n if (!(date instanceof Date)) {\n return;\n }\n\n await this.inngestStep.sleepUntil(entry.id, date);\n }\n\n async executeWaitForEvent({ event, timeout }: { event: string; timeout?: number }): Promise<any> {\n const eventData = await this.inngestStep.waitForEvent(`user-event-${event}`, {\n event: `user-event-${event}`,\n timeout: timeout ?? 5e3,\n });\n\n if (eventData === null) {\n throw 'Timeout waiting for event';\n }\n\n return eventData?.data;\n }\n\n async executeStep({\n step,\n stepResults,\n executionContext,\n resume,\n prevOutput,\n emitter,\n abortController,\n runtimeContext,\n writableStream,\n }: {\n step: Step<string, any, any>;\n stepResults: Record<string, StepResult<any, any, any, any>>;\n executionContext: ExecutionContext;\n resume?: {\n steps: string[];\n resumePayload: any;\n runId?: string;\n };\n prevOutput: any;\n emitter: Emitter;\n abortController: AbortController;\n runtimeContext: RuntimeContext;\n writableStream?: WritableStream<ChunkType>;\n }): Promise<StepResult<any, any, any, any>> {\n const startedAt = await this.inngestStep.run(\n `workflow.${executionContext.workflowId}.run.${executionContext.runId}.step.${step.id}.running_ev`,\n async () => {\n const startedAt = Date.now();\n await emitter.emit('watch', {\n type: 'watch',\n payload: {\n currentStep: {\n id: step.id,\n status: 'running',\n },\n workflowState: {\n status: 'running',\n steps: {\n ...stepResults,\n [step.id]: {\n status: 'running',\n },\n },\n result: null,\n error: null,\n },\n },\n eventTimestamp: Date.now(),\n });\n\n await emitter.emit('watch-v2', {\n type: 'step-start',\n payload: {\n id: step.id,\n status: 'running',\n payload: prevOutput,\n startedAt,\n },\n });\n\n return startedAt;\n },\n );\n\n if (step instanceof InngestWorkflow) {\n const isResume = !!resume?.steps?.length;\n let result: WorkflowResult<any, any>;\n let runId: string;\n if (isResume) {\n // @ts-ignore\n runId = stepResults[resume?.steps?.[0]]?.payload?.__workflow_meta?.runId ?? randomUUID();\n\n const snapshot: any = await this.mastra?.getStorage()?.loadWorkflowSnapshot({\n workflowName: step.id,\n runId: runId,\n });\n\n const invokeResp = (await this.inngestStep.invoke(`workflow.${executionContext.workflowId}.step.${step.id}`, {\n function: step.getFunction(),\n data: {\n inputData: prevOutput,\n runId: runId,\n resume: {\n runId: runId,\n steps: resume.steps.slice(1),\n stepResults: snapshot?.context as any,\n resumePayload: resume.resumePayload,\n // @ts-ignore\n resumePath: snapshot?.suspendedPaths?.[resume.steps?.[1]] as any,\n },\n },\n })) as any;\n result = invokeResp.result;\n runId = invokeResp.runId;\n } else {\n const invokeResp = (await this.inngestStep.invoke(`workflow.${executionContext.workflowId}.step.${step.id}`, {\n function: step.getFunction(),\n data: {\n inputData: prevOutput,\n },\n })) as any;\n result = invokeResp.result;\n runId = invokeResp.runId;\n }\n\n const res = await this.inngestStep.run(\n `workflow.${executionContext.workflowId}.step.${step.id}.nestedwf-results`,\n async () => {\n if (result.status === 'failed') {\n await emitter.emit('watch', {\n type: 'watch',\n payload: {\n currentStep: {\n id: step.id,\n status: 'failed',\n error: result?.error,\n },\n workflowState: {\n status: 'running',\n steps: stepResults,\n result: null,\n error: null,\n },\n },\n eventTimestamp: Date.now(),\n });\n\n await emitter.emit('watch-v2', {\n type: 'step-result',\n payload: {\n id: step.id,\n status: 'failed',\n error: result?.error,\n payload: prevOutput,\n },\n });\n\n return { executionContext, result: { status: 'failed', error: result?.error } };\n } else if (result.status === 'suspended') {\n const suspendedSteps = Object.entries(result.steps).filter(([_stepName, stepResult]) => {\n const stepRes: StepResult<any, any, any, any> = stepResult as StepResult<any, any, any, any>;\n return stepRes?.status === 'suspended';\n });\n\n for (const [stepName, stepResult] of suspendedSteps) {\n // @ts-ignore\n const suspendPath: string[] = [stepName, ...(stepResult?.payload?.__workflow_meta?.path ?? [])];\n executionContext.suspendedPaths[step.id] = executionContext.executionPath;\n\n await emitter.emit('watch', {\n type: 'watch',\n payload: {\n currentStep: {\n id: step.id,\n status: 'suspended',\n payload: { ...(stepResult as any)?.payload, __workflow_meta: { runId: runId, path: suspendPath } },\n },\n workflowState: {\n status: 'running',\n steps: stepResults,\n result: null,\n error: null,\n },\n },\n eventTimestamp: Date.now(),\n });\n\n await emitter.emit('watch-v2', {\n type: 'step-suspended',\n payload: {\n id: step.id,\n status: 'suspended',\n },\n });\n\n return {\n executionContext,\n result: {\n status: 'suspended',\n payload: { ...(stepResult as any)?.payload, __workflow_meta: { runId: runId, path: suspendPath } },\n },\n };\n }\n\n await emitter.emit('watch', {\n type: 'watch',\n payload: {\n currentStep: {\n id: step.id,\n status: 'suspended',\n payload: {},\n },\n workflowState: {\n status: 'running',\n steps: stepResults,\n result: null,\n error: null,\n },\n },\n eventTimestamp: Date.now(),\n });\n\n return {\n executionContext,\n result: {\n status: 'suspended',\n payload: {},\n },\n };\n }\n\n // is success\n\n await emitter.emit('watch', {\n type: 'watch',\n payload: {\n currentStep: {\n id: step.id,\n status: 'success',\n output: result?.result,\n },\n workflowState: {\n status: 'running',\n steps: stepResults,\n result: null,\n error: null,\n },\n },\n eventTimestamp: Date.now(),\n });\n\n await emitter.emit('watch-v2', {\n type: 'step-result',\n payload: {\n id: step.id,\n status: 'success',\n output: result?.result,\n },\n });\n\n await emitter.emit('watch-v2', {\n type: 'step-finish',\n payload: {\n id: step.id,\n metadata: {},\n },\n });\n\n return { executionContext, result: { status: 'success', output: result?.result } };\n },\n );\n\n Object.assign(executionContext, res.executionContext);\n return res.result as StepResult<any, any, any, any>;\n }\n\n const stepRes = await this.inngestStep.run(`workflow.${executionContext.workflowId}.step.${step.id}`, async () => {\n let execResults: any;\n let suspended: { payload: any } | undefined;\n let bailed: { payload: any } | undefined;\n\n try {\n const result = await step.execute({\n runId: executionContext.runId,\n mastra: this.mastra!,\n runtimeContext,\n writableStream,\n inputData: prevOutput,\n resumeData: resume?.steps[0] === step.id ? resume?.resumePayload : undefined,\n getInitData: () => stepResults?.input as any,\n getStepResult: (step: any) => {\n const result = stepResults[step.id];\n if (result?.status === 'success') {\n return result.output;\n }\n\n return null;\n },\n suspend: async (suspendPayload: any) => {\n executionContext.suspendedPaths[step.id] = executionContext.executionPath;\n suspended = { payload: suspendPayload };\n },\n bail: (result: any) => {\n bailed = { payload: result };\n },\n resume: {\n steps: resume?.steps?.slice(1) || [],\n resumePayload: resume?.resumePayload,\n // @ts-ignore\n runId: stepResults[step.id]?.payload?.__workflow_meta?.runId,\n },\n [EMITTER_SYMBOL]: emitter,\n engine: {\n step: this.inngestStep,\n },\n abortSignal: abortController.signal,\n });\n const endedAt = Date.now();\n\n execResults = {\n status: 'success',\n output: result,\n startedAt,\n endedAt,\n payload: prevOutput,\n resumedAt: resume?.steps[0] === step.id ? startedAt : undefined,\n resumePayload: resume?.steps[0] === step.id ? resume?.resumePayload : undefined,\n };\n } catch (e) {\n execResults = {\n status: 'failed',\n payload: prevOutput,\n error: e instanceof Error ? e.message : String(e),\n endedAt: Date.now(),\n startedAt,\n resumedAt: resume?.steps[0] === step.id ? startedAt : undefined,\n resumePayload: resume?.steps[0] === step.id ? resume?.resumePayload : undefined,\n };\n }\n\n if (suspended) {\n execResults = {\n status: 'suspended',\n suspendedPayload: suspended.payload,\n payload: prevOutput,\n suspendedAt: Date.now(),\n startedAt,\n resumedAt: resume?.steps[0] === step.id ? startedAt : undefined,\n resumePayload: resume?.steps[0] === step.id ? resume?.resumePayload : undefined,\n };\n } else if (bailed) {\n execResults = { status: 'bailed', output: bailed.payload, payload: prevOutput, endedAt: Date.now(), startedAt };\n }\n\n if (execResults.status === 'failed') {\n if (executionContext.retryConfig.attempts > 0 && this.inngestAttempts < executionContext.retryConfig.attempts) {\n throw execResults.error;\n }\n }\n\n await emitter.emit('watch', {\n type: 'watch',\n payload: {\n currentStep: {\n id: step.id,\n ...execResults,\n },\n workflowState: {\n status: 'running',\n steps: { ...stepResults, [step.id]: execResults },\n result: null,\n error: null,\n },\n },\n eventTimestamp: Date.now(),\n });\n\n if (execResults.status === 'suspended') {\n await emitter.emit('watch-v2', {\n type: 'step-suspended',\n payload: {\n id: step.id,\n ...execResults,\n },\n });\n } else {\n await emitter.emit('watch-v2', {\n type: 'step-result',\n payload: {\n id: step.id,\n ...execResults,\n },\n });\n\n await emitter.emit('watch-v2', {\n type: 'step-finish',\n payload: {\n id: step.id,\n metadata: {},\n },\n });\n }\n\n return { result: execResults, executionContext, stepResults };\n });\n\n // @ts-ignore\n Object.assign(executionContext.suspendedPaths, stepRes.executionContext.suspendedPaths);\n // @ts-ignore\n Object.assign(stepResults, stepRes.stepResults);\n\n // @ts-ignore\n return stepRes.result;\n }\n\n async persistStepUpdate({\n workflowId,\n runId,\n stepResults,\n executionContext,\n serializedStepGraph,\n workflowStatus,\n result,\n error,\n }: {\n workflowId: string;\n runId: string;\n stepResults: Record<string, StepResult<any, any, any, any>>;\n serializedStepGraph: SerializedStepFlowEntry[];\n executionContext: ExecutionContext;\n workflowStatus: 'success' | 'failed' | 'suspended' | 'running';\n result?: Record<string, any>;\n error?: string | Error;\n runtimeContext: RuntimeContext;\n }) {\n await this.inngestStep.run(\n `workflow.${workflowId}.run.${runId}.path.${JSON.stringify(executionContext.executionPath)}.stepUpdate`,\n async () => {\n await this.mastra?.getStorage()?.persistWorkflowSnapshot({\n workflowName: workflowId,\n runId,\n snapshot: {\n runId,\n value: {},\n context: stepResults as any,\n activePaths: [],\n suspendedPaths: executionContext.suspendedPaths,\n serializedStepGraph,\n status: workflowStatus,\n result,\n error,\n // @ts-ignore\n timestamp: Date.now(),\n },\n });\n },\n );\n }\n\n async executeConditional({\n workflowId,\n runId,\n entry,\n prevOutput,\n prevStep,\n stepResults,\n serializedStepGraph,\n resume,\n executionContext,\n emitter,\n abortController,\n runtimeContext,\n writableStream,\n }: {\n workflowId: string;\n runId: string;\n entry: {\n type: 'conditional';\n steps: StepFlowEntry[];\n conditions: ExecuteFunction<any, any, any, any, InngestEngineType>[];\n };\n prevStep: StepFlowEntry;\n serializedStepGraph: SerializedStepFlowEntry[];\n prevOutput: any;\n stepResults: Record<string, StepResult<any, any, any, any>>;\n resume?: {\n steps: string[];\n stepResults: Record<string, StepResult<any, any, any, any>>;\n resumePayload: any;\n resumePath: number[];\n };\n executionContext: ExecutionContext;\n emitter: Emitter;\n abortController: AbortController;\n runtimeContext: RuntimeContext;\n writableStream?: WritableStream<ChunkType>;\n }): Promise<StepResult<any, any, any, any>> {\n let execResults: any;\n const truthyIndexes = (\n await Promise.all(\n entry.conditions.map((cond, index) =>\n this.inngestStep.run(`workflow.${workflowId}.conditional.${index}`, async () => {\n try {\n const result = await cond({\n runId,\n workflowId,\n mastra: this.mastra!,\n runtimeContext,\n runCount: -1,\n inputData: prevOutput,\n getInitData: () => stepResults?.input as any,\n getStepResult: (step: any) => {\n if (!step?.id) {\n return null;\n }\n\n const result = stepResults[step.id];\n if (result?.status === 'success') {\n return result.output;\n }\n\n return null;\n },\n\n // TODO: this function shouldn't have suspend probably?\n suspend: async (_suspendPayload: any) => {},\n bail: () => {},\n abort: () => {\n abortController.abort();\n },\n [EMITTER_SYMBOL]: emitter,\n engine: {\n step: this.inngestStep,\n },\n abortSignal: abortController.signal,\n writer: new ToolStream(\n {\n prefix: 'step',\n callId: randomUUID(),\n name: 'conditional',\n runId,\n },\n writableStream,\n ),\n });\n return result ? index : null;\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (e: unknown) {\n return null;\n }\n }),\n ),\n )\n ).filter((index: any): index is number => index !== null);\n\n const stepsToRun = entry.steps.filter((_, index) => truthyIndexes.includes(index));\n const results: { result: StepResult<any, any, any, any> }[] = await Promise.all(\n stepsToRun.map((step, index) =>\n this.executeEntry({\n workflowId,\n runId,\n entry: step,\n prevStep,\n stepResults,\n resume,\n serializedStepGraph,\n executionContext: {\n workflowId,\n runId,\n executionPath: [...executionContext.executionPath, index],\n suspendedPaths: executionContext.suspendedPaths,\n retryConfig: executionContext.retryConfig,\n executionSpan: executionContext.executionSpan,\n },\n emitter,\n abortController,\n runtimeContext,\n writableStream,\n }),\n ),\n );\n const hasFailed = results.find(result => result.result.status === 'failed') as {\n result: StepFailure<any, any, any>;\n };\n const hasSuspended = results.find(result => result.result.status === 'suspended');\n if (hasFailed) {\n execResults = { status: 'failed', error: hasFailed.result.error };\n } else if (hasSuspended) {\n execResults = { status: 'suspended', payload: hasSuspended.result.suspendPayload };\n } else {\n execResults = {\n status: 'success',\n output: results.reduce((acc: Record<string, any>, result, index) => {\n if (result.result.status === 'success') {\n // @ts-ignore\n acc[stepsToRun[index]!.step.id] = result.output;\n }\n\n return acc;\n }, {}),\n };\n }\n\n return execResults;\n }\n}\n"]}