@mastra/inngest 0.0.0-support-d1-client-20250701191943 → 0.0.0-taofeeq-fix-tool-call-showing-after-message-20250806184630

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { randomUUID } from 'crypto';
2
2
  import { subscribe } from '@inngest/realtime';
3
3
  import { RuntimeContext } from '@mastra/core/di';
4
- import { Tool } from '@mastra/core/tools';
4
+ import { ToolStream, Tool } from '@mastra/core/tools';
5
5
  import { Run, Workflow, DefaultExecutionEngine } from '@mastra/core/workflows';
6
6
  import { EMITTER_SYMBOL } from '@mastra/core/workflows/_constants';
7
7
  import { serve as serve$1 } from 'inngest/hono';
@@ -51,6 +51,7 @@ var InngestRun = class extends Run {
51
51
  await new Promise((resolve) => setTimeout(resolve, 1e3));
52
52
  runs = await this.getRuns(eventId);
53
53
  if (runs?.[0]?.status === "Failed") {
54
+ console.log("run", runs?.[0]);
54
55
  throw new Error(`Function run ${runs?.[0]?.status}`);
55
56
  } else if (runs?.[0]?.status === "Cancelled") {
56
57
  const snapshot = await this.#mastra?.storage?.loadWorkflowSnapshot({
@@ -152,6 +153,7 @@ var InngestRun = class extends Run {
152
153
  data: {
153
154
  inputData: params.resumeData,
154
155
  runId: this.runId,
156
+ workflowId: this.workflowId,
155
157
  stepResults: snapshot?.context,
156
158
  resume: {
157
159
  steps,
@@ -647,7 +649,8 @@ var InngestExecutionEngine = class extends DefaultExecutionEngine {
647
649
  prevOutput,
648
650
  emitter,
649
651
  abortController,
650
- runtimeContext
652
+ runtimeContext,
653
+ writableStream
651
654
  }) {
652
655
  return super.executeStep({
653
656
  workflowId,
@@ -659,11 +662,131 @@ var InngestExecutionEngine = class extends DefaultExecutionEngine {
659
662
  prevOutput,
660
663
  emitter,
661
664
  abortController,
662
- runtimeContext
665
+ runtimeContext,
666
+ writableStream
663
667
  });
664
668
  }
665
- async executeSleep({ id, duration }) {
666
- await this.inngestStep.sleep(id, duration);
669
+ // async executeSleep({ id, duration }: { id: string; duration: number }): Promise<void> {
670
+ // await this.inngestStep.sleep(id, duration);
671
+ // }
672
+ async executeSleep({
673
+ workflowId,
674
+ runId,
675
+ entry,
676
+ prevOutput,
677
+ stepResults,
678
+ emitter,
679
+ abortController,
680
+ runtimeContext,
681
+ writableStream
682
+ }) {
683
+ let { duration, fn } = entry;
684
+ if (fn) {
685
+ const stepCallId = randomUUID();
686
+ duration = await this.inngestStep.run(`workflow.${workflowId}.sleep.${entry.id}`, async () => {
687
+ return await fn({
688
+ runId,
689
+ workflowId,
690
+ mastra: this.mastra,
691
+ runtimeContext,
692
+ inputData: prevOutput,
693
+ runCount: -1,
694
+ getInitData: () => stepResults?.input,
695
+ getStepResult: (step) => {
696
+ if (!step?.id) {
697
+ return null;
698
+ }
699
+ const result = stepResults[step.id];
700
+ if (result?.status === "success") {
701
+ return result.output;
702
+ }
703
+ return null;
704
+ },
705
+ // TODO: this function shouldn't have suspend probably?
706
+ suspend: async (_suspendPayload) => {
707
+ },
708
+ bail: () => {
709
+ },
710
+ abort: () => {
711
+ abortController?.abort();
712
+ },
713
+ [EMITTER_SYMBOL]: emitter,
714
+ engine: { step: this.inngestStep },
715
+ abortSignal: abortController?.signal,
716
+ writer: new ToolStream(
717
+ {
718
+ prefix: "step",
719
+ callId: stepCallId,
720
+ name: "sleep",
721
+ runId
722
+ },
723
+ writableStream
724
+ )
725
+ });
726
+ });
727
+ }
728
+ await this.inngestStep.sleep(entry.id, !duration || duration < 0 ? 0 : duration);
729
+ }
730
+ async executeSleepUntil({
731
+ workflowId,
732
+ runId,
733
+ entry,
734
+ prevOutput,
735
+ stepResults,
736
+ emitter,
737
+ abortController,
738
+ runtimeContext,
739
+ writableStream
740
+ }) {
741
+ let { date, fn } = entry;
742
+ if (fn) {
743
+ date = await this.inngestStep.run(`workflow.${workflowId}.sleepUntil.${entry.id}`, async () => {
744
+ const stepCallId = randomUUID();
745
+ return await fn({
746
+ runId,
747
+ workflowId,
748
+ mastra: this.mastra,
749
+ runtimeContext,
750
+ inputData: prevOutput,
751
+ runCount: -1,
752
+ getInitData: () => stepResults?.input,
753
+ getStepResult: (step) => {
754
+ if (!step?.id) {
755
+ return null;
756
+ }
757
+ const result = stepResults[step.id];
758
+ if (result?.status === "success") {
759
+ return result.output;
760
+ }
761
+ return null;
762
+ },
763
+ // TODO: this function shouldn't have suspend probably?
764
+ suspend: async (_suspendPayload) => {
765
+ },
766
+ bail: () => {
767
+ },
768
+ abort: () => {
769
+ abortController?.abort();
770
+ },
771
+ [EMITTER_SYMBOL]: emitter,
772
+ engine: { step: this.inngestStep },
773
+ abortSignal: abortController?.signal,
774
+ writer: new ToolStream(
775
+ {
776
+ prefix: "step",
777
+ callId: stepCallId,
778
+ name: "sleep",
779
+ runId
780
+ },
781
+ writableStream
782
+ )
783
+ });
784
+ });
785
+ }
786
+ if (!(date instanceof Date)) {
787
+ return;
788
+ }
789
+ await this.inngestStep.sleepUntil(entry.id, date);
667
790
  }
668
791
  async executeWaitForEvent({ event, timeout }) {
669
792
  const eventData = await this.inngestStep.waitForEvent(`user-event-${event}`, {
@@ -683,7 +806,8 @@ var InngestExecutionEngine = class extends DefaultExecutionEngine {
683
806
  prevOutput,
684
807
  emitter,
685
808
  abortController,
686
- runtimeContext
809
+ runtimeContext,
810
+ writableStream
687
811
  }) {
688
812
  const startedAt = await this.inngestStep.run(
689
813
  `workflow.${executionContext.workflowId}.run.${executionContext.runId}.step.${step.id}.running_ev`,
@@ -714,7 +838,9 @@ var InngestExecutionEngine = class extends DefaultExecutionEngine {
714
838
  type: "step-start",
715
839
  payload: {
716
840
  id: step.id,
717
- status: "running"
841
+ status: "running",
842
+ payload: prevOutput,
843
+ startedAt: startedAt2
718
844
  }
719
845
  });
720
846
  return startedAt2;
@@ -900,6 +1026,7 @@ var InngestExecutionEngine = class extends DefaultExecutionEngine {
900
1026
  runId: executionContext.runId,
901
1027
  mastra: this.mastra,
902
1028
  runtimeContext,
1029
+ writableStream,
903
1030
  inputData: prevOutput,
904
1031
  resumeData: resume?.steps[0] === step.id ? resume?.resumePayload : void 0,
905
1032
  getInitData: () => stepResults?.input,
@@ -1059,7 +1186,8 @@ var InngestExecutionEngine = class extends DefaultExecutionEngine {
1059
1186
  executionContext,
1060
1187
  emitter,
1061
1188
  abortController,
1062
- runtimeContext
1189
+ runtimeContext,
1190
+ writableStream
1063
1191
  }) {
1064
1192
  let execResults;
1065
1193
  const truthyIndexes = (await Promise.all(
@@ -1068,6 +1196,7 @@ var InngestExecutionEngine = class extends DefaultExecutionEngine {
1068
1196
  try {
1069
1197
  const result = await cond({
1070
1198
  runId,
1199
+ workflowId,
1071
1200
  mastra: this.mastra,
1072
1201
  runtimeContext,
1073
1202
  runCount: -1,
@@ -1095,7 +1224,16 @@ var InngestExecutionEngine = class extends DefaultExecutionEngine {
1095
1224
  engine: {
1096
1225
  step: this.inngestStep
1097
1226
  },
1098
- abortSignal: abortController.signal
1227
+ abortSignal: abortController.signal,
1228
+ writer: new ToolStream(
1229
+ {
1230
+ prefix: "step",
1231
+ callId: randomUUID(),
1232
+ name: "conditional",
1233
+ runId
1234
+ },
1235
+ writableStream
1236
+ )
1099
1237
  });
1100
1238
  return result ? index : null;
1101
1239
  } catch (e) {
@@ -1125,7 +1263,8 @@ var InngestExecutionEngine = class extends DefaultExecutionEngine {
1125
1263
  },
1126
1264
  emitter,
1127
1265
  abortController,
1128
- runtimeContext
1266
+ runtimeContext,
1267
+ writableStream
1129
1268
  })
1130
1269
  )
1131
1270
  );
@@ -1151,3 +1290,5 @@ var InngestExecutionEngine = class extends DefaultExecutionEngine {
1151
1290
  };
1152
1291
 
1153
1292
  export { InngestExecutionEngine, InngestRun, InngestWorkflow, createStep, init, serve };
1293
+ //# sourceMappingURL=index.js.map
1294
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts"],"names":["inngestServe","event","startedAt","stepRes","step","result"],"mappings":"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","file":"index.js","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"]}
@@ -2,9 +2,9 @@ version: '3'
2
2
 
3
3
  services:
4
4
  inngest:
5
- image: inngest/inngest
6
- command: inngest dev -u http://host.docker.internal:3000/api/inngest --poll-interval=1
5
+ image: inngest/inngest:v1.10.0
6
+ command: inngest dev -p 4000 -u http://host.docker.internal:4001/inngest/api --poll-interval=1
7
7
  ports:
8
- - '8288:8288'
8
+ - '4000:4000'
9
9
  extra_hosts:
10
10
  - 'host.docker.internal:host-gateway'
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mastra/inngest",
3
- "version": "0.0.0-support-d1-client-20250701191943",
3
+ "version": "0.0.0-taofeeq-fix-tool-call-showing-after-message-20250806184630",
4
4
  "description": "Mastra Inngest integration",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -12,7 +12,7 @@
12
12
  "default": "./dist/index.js"
13
13
  },
14
14
  "require": {
15
- "types": "./dist/index.d.cts",
15
+ "types": "./dist/index.d.ts",
16
16
  "default": "./dist/index.cjs"
17
17
  }
18
18
  },
@@ -21,34 +21,36 @@
21
21
  "dependencies": {
22
22
  "@inngest/realtime": "^0.3.1",
23
23
  "@opentelemetry/api": "^1.9.0",
24
- "inngest": "^3.39.1",
24
+ "inngest": "^3.40.1",
25
25
  "zod": "^3.25.67"
26
26
  },
27
27
  "devDependencies": {
28
+ "inngest-cli": "1.8.2",
28
29
  "@ai-sdk/openai": "^1.3.22",
29
- "@hono/node-server": "^1.14.4",
30
+ "@hono/node-server": "^1.17.1",
30
31
  "@microsoft/api-extractor": "^7.52.8",
31
32
  "@types/node": "^20.19.0",
32
33
  "ai": "^4.3.16",
33
- "eslint": "^9.29.0",
34
+ "eslint": "^9.30.1",
34
35
  "execa": "^9.6.0",
35
36
  "get-port": "7.1.0",
36
- "hono": "^4.8.3",
37
+ "hono": "^4.8.12",
37
38
  "tsup": "^8.5.0",
38
39
  "typescript": "^5.8.3",
39
40
  "vitest": "^3.2.4",
40
- "@internal/lint": "0.0.0-support-d1-client-20250701191943",
41
- "@mastra/libsql": "0.0.0-support-d1-client-20250701191943",
42
- "@mastra/deployer": "0.0.0-support-d1-client-20250701191943",
43
- "@mastra/core": "0.0.0-support-d1-client-20250701191943"
41
+ "@internal/lint": "0.0.0-taofeeq-fix-tool-call-showing-after-message-20250806184630",
42
+ "@mastra/libsql": "0.0.0-taofeeq-fix-tool-call-showing-after-message-20250806184630",
43
+ "@mastra/deployer": "0.0.0-taofeeq-fix-tool-call-showing-after-message-20250806184630",
44
+ "@internal/types-builder": "0.0.0-taofeeq-fix-tool-call-showing-after-message-20250806184630",
45
+ "@mastra/core": "0.0.0-taofeeq-fix-tool-call-showing-after-message-20250806184630"
44
46
  },
45
47
  "peerDependencies": {
46
- "@mastra/core": "0.0.0-support-d1-client-20250701191943"
48
+ "@mastra/core": "0.0.0-taofeeq-fix-tool-call-showing-after-message-20250806184630"
47
49
  },
48
50
  "scripts": {
49
- "build": "tsup src/index.ts --format esm,cjs --experimental-dts --clean --treeshake=smallest --splitting",
51
+ "build": "tsup --silent --config tsup.config.ts",
50
52
  "build:watch": "pnpm build --watch",
51
- "test": "vitest run",
53
+ "test": "docker-compose up -d && vitest run --no-isolate --bail=1 --retry=1 && docker-compose down",
52
54
  "lint": "eslint ."
53
55
  }
54
56
  }