{"version":3,"file":"index.cjs","names":["Run","toWorkflowType","Workflow"],"sources":["../src/run.ts","../src/workflow.ts"],"sourcesContent":["import type { RequestContext } from '@mastra/core/di';\nimport { Run } from '@mastra/core/workflows';\nimport type { Step, WorkflowResult, WorkflowRunStartOptions } from '@mastra/core/workflows';\nimport type { Client } from '@temporalio/client';\nimport type { TemporalEngineType } from './types';\nimport { toWorkflowType } from './utils';\n\ntype TemporalRunStartArgs<TState, TInput, TRequestContext> = {\n  inputData?: TInput;\n  initialState?: TState;\n  requestContext?: RequestContext<TRequestContext>;\n} & WorkflowRunStartOptions;\n\nexport class TemporalRun<\n  TSteps extends Step<string, any, any, any, any, any, TemporalEngineType, any>[] = Step<\n    string,\n    unknown,\n    unknown,\n    unknown,\n    unknown,\n    unknown,\n    TemporalEngineType\n  >[],\n  TState = unknown,\n  TInput = unknown,\n  TOutput = unknown,\n  TRequestContext extends Record<string, any> | unknown = unknown,\n> extends Run<TemporalEngineType, TSteps, TState, TInput, TOutput, TRequestContext> {\n  private readonly client: Client;\n  private readonly taskQueue: string;\n\n  constructor(\n    params: ConstructorParameters<typeof Run<TemporalEngineType, TSteps, TState, TInput, TOutput, TRequestContext>>[0],\n    temporalParams: {\n      client: Client;\n      taskQueue: string;\n    },\n  ) {\n    super(params);\n\n    this.client = temporalParams.client;\n    this.taskQueue = temporalParams.taskQueue;\n  }\n\n  async start(args: TemporalRunStartArgs<TState, TInput, TRequestContext> = {}) {\n    const input = await this._validateInput(args.inputData);\n    const initialState = await this._validateInitialState(args.initialState);\n    await this._validateRequestContext(args.requestContext as RequestContext<unknown> | undefined);\n\n    try {\n      const handle = await this.client.workflow.start(toWorkflowType(this.workflowId), {\n        taskQueue: this.taskQueue,\n        workflowId: this.runId,\n        args: [\n          {\n            inputData: input,\n            initialState,\n            requestContext: args.requestContext ? Object.fromEntries(args.requestContext.entries()) : {},\n            runId: this.runId,\n            resourceId: this.resourceId,\n            outputOptions: args.outputOptions,\n            tracingOptions: args.tracingOptions,\n            perStep: args.perStep,\n          },\n        ],\n      });\n      const result = await handle.result();\n\n      return {\n        status: 'success',\n        input: input as TInput,\n        result: result as TOutput,\n        state: initialState,\n        steps: {},\n      } as WorkflowResult<TState, TInput, TOutput, TSteps>;\n    } catch (error) {\n      return {\n        status: 'failed',\n        input: input as TInput,\n        error: error instanceof Error ? error : new Error(String(error)),\n        state: initialState,\n        steps: {},\n      } as WorkflowResult<TState, TInput, TOutput, TSteps>;\n    }\n  }\n\n  async cancel() {\n    await this.client.workflow.getHandle(this.runId).cancel();\n    await super.cancel();\n  }\n\n  async startAsync(args: TemporalRunStartArgs<TState, TInput, TRequestContext> = {}) {\n    const input = await this._validateInput(args.inputData);\n    const initialState = await this._validateInitialState(args.initialState);\n    await this._validateRequestContext(args.requestContext as RequestContext<unknown> | undefined);\n\n    await this.client.workflow.start(toWorkflowType(this.workflowId), {\n      taskQueue: this.taskQueue,\n      workflowId: this.runId,\n      args: [\n        {\n          inputData: input,\n          initialState,\n          requestContext: args.requestContext ? Object.fromEntries(args.requestContext.entries()) : {},\n          runId: this.runId,\n          resourceId: this.resourceId,\n          outputOptions: args.outputOptions,\n          tracingOptions: args.tracingOptions,\n          perStep: args.perStep,\n        },\n      ],\n    });\n\n    return { runId: this.runId };\n  }\n}\n","import { Workflow, createStep } from '@mastra/core/workflows';\nimport type { Step, WorkflowConfig } from '@mastra/core/workflows';\nimport type { Client } from '@temporalio/client';\nimport { TemporalRun } from './run';\nimport type { TemporalEngineType } from './types';\n\nexport type TemporalWorkflowParams = {\n  client: Client;\n  taskQueue: string;\n  startToCloseTimeout?: string;\n};\n\nexport class TemporalWorkflow<\n  TSteps extends Step<string, any, any, any, any, any, TemporalEngineType, any>[] = Step<\n    string,\n    unknown,\n    unknown,\n    unknown,\n    unknown,\n    unknown,\n    TemporalEngineType\n  >[],\n  TWorkflowId extends string = string,\n  TState = unknown,\n  TInput = unknown,\n  TOutput = unknown,\n  TPrevSchema = TInput,\n  TRequestContext extends Record<string, any> | unknown = unknown,\n> extends Workflow<TemporalEngineType, TSteps, TWorkflowId, TState, TInput, TOutput, TPrevSchema, TRequestContext> {\n  private readonly temporalClient: Client;\n  readonly taskQueue: string;\n  readonly startToCloseTimeout: string;\n\n  constructor(\n    params: WorkflowConfig<TWorkflowId, TState, TInput, TOutput, TSteps, TRequestContext>,\n    temporalParams: TemporalWorkflowParams,\n  ) {\n    super(params);\n\n    this.engineType = 'temporal';\n    this.temporalClient = temporalParams.client;\n    this.taskQueue = temporalParams.taskQueue;\n    this.startToCloseTimeout = temporalParams.startToCloseTimeout ?? '1 minute';\n  }\n\n  async createRun(options?: { runId?: string; resourceId?: string; disableScorers?: boolean }) {\n    const runId = options?.runId ?? crypto.randomUUID();\n    const run = new TemporalRun<TSteps, TState, TInput, TOutput, TRequestContext>(\n      {\n        workflowId: this.id,\n        runId,\n        resourceId: options?.resourceId,\n        stateSchema: this.stateSchema,\n        inputSchema: this.inputSchema,\n        requestContextSchema: this.requestContextSchema,\n        executionEngine: this.executionEngine,\n        executionGraph: this.executionGraph,\n        mastra: this.mastra,\n        retryConfig: this.retryConfig,\n        serializedStepGraph: this.serializedStepGraph,\n        disableScorers: options?.disableScorers,\n        tracingPolicy: this.options.tracingPolicy,\n        workflowSteps: this.steps,\n        validateInputs: this.options.validateInputs,\n        workflowEngineType: this.engineType,\n        cleanup: undefined,\n      },\n      {\n        client: this.temporalClient,\n        taskQueue: this.taskQueue,\n      },\n    );\n\n    this.runs.set(runId, run);\n    return run;\n  }\n}\n\nexport function createWorkflow<\n  TSteps extends Step<string, any, any, any, any, any, TemporalEngineType, any>[] = Step<\n    string,\n    unknown,\n    unknown,\n    unknown,\n    unknown,\n    unknown,\n    TemporalEngineType\n  >[],\n  TWorkflowId extends string = string,\n  TState = unknown,\n  TInput = unknown,\n  TOutput = unknown,\n  TRequestContext extends Record<string, any> | unknown = unknown,\n>(\n  config: WorkflowConfig<TWorkflowId, TState, TInput, TOutput, TSteps, TRequestContext>,\n  temporal: TemporalWorkflowParams,\n) {\n  return new TemporalWorkflow<TSteps, TWorkflowId, TState, TInput, TOutput, TInput, TRequestContext>(config, temporal);\n}\n\nexport function init(temporalParams: TemporalWorkflowParams) {\n  return {\n    createWorkflow: <\n      TWorkflowId extends string,\n      TState = unknown,\n      TInput = unknown,\n      TOutput = unknown,\n      TSteps extends Step[] = Step[],\n      TRequestContext extends Record<string, any> | unknown = unknown,\n    >(\n      config: WorkflowConfig<TWorkflowId, TState, TInput, TOutput, TSteps, TRequestContext>,\n    ) => createWorkflow<TSteps, TWorkflowId, TState, TInput, TOutput, TRequestContext>(config, temporalParams),\n    createStep,\n  };\n}\n"],"mappings":"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"}