@mastra/server 0.0.0-update-scorers-api-20250801170445 → 0.0.0-usechat-duplicate-20251016110554
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 +4048 -0
- package/README.md +0 -5
- package/dist/chunk-2PLXW4ZX.cjs +2777 -0
- package/dist/chunk-2PLXW4ZX.cjs.map +1 -0
- package/dist/chunk-2S4IMB6E.cjs +130 -0
- package/dist/chunk-2S4IMB6E.cjs.map +1 -0
- package/dist/{chunk-X5SDJOY6.cjs → chunk-3LTO44EP.cjs} +66 -53
- package/dist/chunk-3LTO44EP.cjs.map +1 -0
- package/dist/{chunk-4US5W7PH.cjs → chunk-3SNGNFUJ.cjs} +23 -15
- package/dist/chunk-3SNGNFUJ.cjs.map +1 -0
- package/dist/{chunk-OW4FX5TS.js → chunk-4QCXUEAT.js} +10 -3
- package/dist/chunk-4QCXUEAT.js.map +1 -0
- package/dist/{chunk-SQ7KKIH3.js → chunk-67GYDFSB.js} +22 -5
- package/dist/chunk-67GYDFSB.js.map +1 -0
- package/dist/{chunk-ILCWPBYQ.cjs → chunk-6ZR275MD.cjs} +23 -5
- package/dist/chunk-6ZR275MD.cjs.map +1 -0
- package/dist/chunk-7HDOBOGG.cjs +17517 -0
- package/dist/chunk-7HDOBOGG.cjs.map +1 -0
- package/dist/{chunk-4MQU6AJN.js → chunk-ABRFV4XP.js} +4 -4
- package/dist/{chunk-4MQU6AJN.js.map → chunk-ABRFV4XP.js.map} +1 -1
- package/dist/{chunk-YS66MFDY.js → chunk-AHB4JCIQ.js} +48 -12
- package/dist/chunk-AHB4JCIQ.js.map +1 -0
- package/dist/{chunk-TXAQU2XN.js → chunk-AW5BU3RQ.js} +63 -22
- package/dist/chunk-AW5BU3RQ.js.map +1 -0
- package/dist/chunk-BATEJLED.js +124 -0
- package/dist/chunk-BATEJLED.js.map +1 -0
- package/dist/chunk-BZLZFHAT.cjs +682 -0
- package/dist/chunk-BZLZFHAT.cjs.map +1 -0
- package/dist/{chunk-BUOJL3MN.js → chunk-DB63UMTV.js} +220 -89
- package/dist/chunk-DB63UMTV.js.map +1 -0
- package/dist/{chunk-NCS2OXX6.cjs → chunk-EP3JQDPD.cjs} +4 -4
- package/dist/{chunk-NCS2OXX6.cjs.map → chunk-EP3JQDPD.cjs.map} +1 -1
- package/dist/chunk-FWO7VQDC.js +17481 -0
- package/dist/chunk-FWO7VQDC.js.map +1 -0
- package/dist/chunk-FZNS32WJ.js +46 -0
- package/dist/chunk-FZNS32WJ.js.map +1 -0
- package/dist/{chunk-4QSNRCOT.cjs → chunk-G4PUALCE.cjs} +10 -2
- package/dist/chunk-G4PUALCE.cjs.map +1 -0
- package/dist/chunk-GU4EWMZB.cjs +769 -0
- package/dist/chunk-GU4EWMZB.cjs.map +1 -0
- package/dist/{chunk-TRWPUPGD.js → chunk-HPXAM2PG.js} +109 -138
- package/dist/chunk-HPXAM2PG.js.map +1 -0
- package/dist/{chunk-JGVY3KWV.cjs → chunk-I3C4ODGV.cjs} +12 -11
- package/dist/chunk-I3C4ODGV.cjs.map +1 -0
- package/dist/chunk-JSLAYFEW.js +662 -0
- package/dist/chunk-JSLAYFEW.js.map +1 -0
- package/dist/chunk-LF2ZLOFP.js +767 -0
- package/dist/chunk-LF2ZLOFP.js.map +1 -0
- package/dist/{chunk-UVOSITKU.js → chunk-LLUOPR3J.js} +11 -10
- package/dist/chunk-LLUOPR3J.js.map +1 -0
- package/dist/chunk-LPM6BBAX.cjs +1043 -0
- package/dist/chunk-LPM6BBAX.cjs.map +1 -0
- package/dist/{chunk-S37KCGOR.cjs → chunk-MQDBNHBT.cjs} +222 -88
- package/dist/chunk-MQDBNHBT.cjs.map +1 -0
- package/dist/{chunk-G7NVCO5M.js → chunk-MYR4PVGN.js} +3 -3
- package/dist/{chunk-G7NVCO5M.js.map → chunk-MYR4PVGN.js.map} +1 -1
- package/dist/chunk-O7I5CWRX.cjs +44 -0
- package/dist/{chunk-Q7SFCCGT.cjs.map → chunk-O7I5CWRX.cjs.map} +1 -1
- package/dist/{chunk-HXIOPAHT.js → chunk-OEOGYAQC.js} +54 -42
- package/dist/chunk-OEOGYAQC.js.map +1 -0
- package/dist/chunk-OYL5TBJW.cjs +48 -0
- package/dist/chunk-OYL5TBJW.cjs.map +1 -0
- package/dist/chunk-PR4QN5HX.js +39 -0
- package/dist/{chunk-PZ5AY32C.js.map → chunk-PR4QN5HX.js.map} +1 -1
- package/dist/{chunk-HWHKM67I.js → chunk-QQXMIP6C.js} +21 -13
- package/dist/chunk-QQXMIP6C.js.map +1 -0
- package/dist/chunk-RQK4FQUD.js +1012 -0
- package/dist/chunk-RQK4FQUD.js.map +1 -0
- package/dist/chunk-SIW6CYO3.js +254 -0
- package/dist/chunk-SIW6CYO3.js.map +1 -0
- package/dist/{chunk-VIGPWTDA.cjs → chunk-SPRRK3P7.cjs} +64 -23
- package/dist/chunk-SPRRK3P7.cjs.map +1 -0
- package/dist/{chunk-GASWM5HJ.cjs → chunk-TOP25AIO.cjs} +110 -139
- package/dist/chunk-TOP25AIO.cjs.map +1 -0
- package/dist/{chunk-O4I563YW.cjs → chunk-TRGAMKHX.cjs} +50 -13
- package/dist/chunk-TRGAMKHX.cjs.map +1 -0
- package/dist/chunk-VY4ENABS.cjs +135 -0
- package/dist/chunk-VY4ENABS.cjs.map +1 -0
- package/dist/{chunk-BED2O446.cjs → chunk-XN74I6VW.cjs} +7 -7
- package/dist/{chunk-BED2O446.cjs.map → chunk-XN74I6VW.cjs.map} +1 -1
- package/dist/chunk-XVPBGW6Y.cjs +256 -0
- package/dist/chunk-XVPBGW6Y.cjs.map +1 -0
- package/dist/chunk-YWOK4F5A.js +131 -0
- package/dist/chunk-YWOK4F5A.js.map +1 -0
- package/dist/chunk-ZULZ2752.js +2774 -0
- package/dist/chunk-ZULZ2752.js.map +1 -0
- package/dist/dist-4MVGNSRL.cjs +1150 -0
- package/dist/dist-4MVGNSRL.cjs.map +1 -0
- package/dist/dist-FZYCV3VB.cjs +940 -0
- package/dist/dist-FZYCV3VB.cjs.map +1 -0
- package/dist/dist-G2BYZJOC.cjs +928 -0
- package/dist/dist-G2BYZJOC.cjs.map +1 -0
- package/dist/dist-P4MXBQ3U.cjs +16 -0
- package/dist/dist-P4MXBQ3U.cjs.map +1 -0
- package/dist/dist-PQZUVLPC.js +937 -0
- package/dist/dist-PQZUVLPC.js.map +1 -0
- package/dist/dist-R7WYX6LC.js +925 -0
- package/dist/dist-R7WYX6LC.js.map +1 -0
- package/dist/dist-RFMYFILX.cjs +764 -0
- package/dist/dist-RFMYFILX.cjs.map +1 -0
- package/dist/dist-X7XR3M3Z.js +1147 -0
- package/dist/dist-X7XR3M3Z.js.map +1 -0
- package/dist/dist-XVBSOGFK.js +761 -0
- package/dist/dist-XVBSOGFK.js.map +1 -0
- package/dist/dist-YREX2TJT.js +3 -0
- package/dist/dist-YREX2TJT.js.map +1 -0
- package/dist/index.cjs +4 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/server/a2a/store.cjs +25 -0
- package/dist/server/a2a/store.cjs.map +1 -0
- package/dist/server/a2a/store.d.ts +3 -3
- package/dist/server/a2a/store.d.ts.map +1 -1
- package/dist/server/a2a/store.js +23 -0
- package/dist/server/a2a/store.js.map +1 -0
- package/dist/server/a2a/tasks.d.ts +7 -7
- package/dist/server/a2a/tasks.d.ts.map +1 -1
- package/dist/server/handlers/a2a.cjs +11 -11
- package/dist/server/handlers/a2a.d.ts +17 -15
- package/dist/server/handlers/a2a.d.ts.map +1 -1
- package/dist/server/handlers/a2a.js +1 -1
- package/dist/server/handlers/agent-builder.cjs +68 -0
- package/dist/server/handlers/agent-builder.cjs.map +1 -0
- package/dist/server/handlers/agent-builder.d.ts +94 -0
- package/dist/server/handlers/agent-builder.d.ts.map +1 -0
- package/dist/server/handlers/agent-builder.js +3 -0
- package/dist/server/handlers/agent-builder.js.map +1 -0
- package/dist/server/handlers/agents.cjs +53 -9
- package/dist/server/handlers/agents.d.ts +156 -33
- package/dist/server/handlers/agents.d.ts.map +1 -1
- package/dist/server/handlers/agents.js +1 -1
- package/dist/server/handlers/legacyWorkflows.cjs +11 -11
- package/dist/server/handlers/legacyWorkflows.d.ts +1 -1
- package/dist/server/handlers/legacyWorkflows.d.ts.map +1 -1
- package/dist/server/handlers/legacyWorkflows.js +1 -1
- package/dist/server/handlers/logs.cjs +4 -4
- package/dist/server/handlers/logs.js +1 -1
- package/dist/server/handlers/memory.cjs +19 -15
- package/dist/server/handlers/memory.d.ts +24 -19
- package/dist/server/handlers/memory.d.ts.map +1 -1
- package/dist/server/handlers/memory.js +1 -1
- package/dist/server/handlers/observability.cjs +24 -0
- package/dist/server/handlers/observability.cjs.map +1 -0
- package/dist/server/handlers/observability.d.ts +49 -0
- package/dist/server/handlers/observability.d.ts.map +1 -0
- package/dist/server/handlers/observability.js +3 -0
- package/dist/server/handlers/observability.js.map +1 -0
- package/dist/server/handlers/scores.cjs +7 -7
- package/dist/server/handlers/scores.d.ts +110 -7
- package/dist/server/handlers/scores.d.ts.map +1 -1
- package/dist/server/handlers/scores.js +1 -1
- package/dist/server/handlers/telemetry.cjs +7 -3
- package/dist/server/handlers/telemetry.d.ts +2 -1
- package/dist/server/handlers/telemetry.d.ts.map +1 -1
- package/dist/server/handlers/telemetry.js +1 -1
- package/dist/server/handlers/tools.cjs +9 -5
- package/dist/server/handlers/tools.d.ts +5 -1
- package/dist/server/handlers/tools.d.ts.map +1 -1
- package/dist/server/handlers/tools.js +1 -1
- package/dist/server/handlers/utils.cjs +6 -2
- package/dist/server/handlers/utils.d.ts +6 -0
- package/dist/server/handlers/utils.d.ts.map +1 -1
- package/dist/server/handlers/utils.js +1 -1
- package/dist/server/handlers/vector.cjs +7 -7
- package/dist/server/handlers/vector.d.ts +1 -1
- package/dist/server/handlers/vector.js +1 -1
- package/dist/server/handlers/voice.cjs +5 -5
- package/dist/server/handlers/voice.d.ts +7 -5
- package/dist/server/handlers/voice.d.ts.map +1 -1
- package/dist/server/handlers/voice.js +1 -1
- package/dist/server/handlers/workflows.cjs +28 -16
- package/dist/server/handlers/workflows.d.ts +37 -34
- package/dist/server/handlers/workflows.d.ts.map +1 -1
- package/dist/server/handlers/workflows.js +1 -1
- package/dist/server/handlers.cjs +38 -33
- package/dist/server/handlers.d.ts +13 -12
- package/dist/server/handlers.d.ts.map +1 -1
- package/dist/server/handlers.js +13 -12
- package/dist/server/utils.d.ts +44 -0
- package/dist/server/utils.d.ts.map +1 -0
- package/dist/token-53CFGXUO.cjs +64 -0
- package/dist/token-53CFGXUO.cjs.map +1 -0
- package/dist/token-WAEKDUVY.js +62 -0
- package/dist/token-WAEKDUVY.js.map +1 -0
- package/dist/token-util-LY37VCIN.js +7 -0
- package/dist/token-util-LY37VCIN.js.map +1 -0
- package/dist/token-util-S4A355II.cjs +9 -0
- package/dist/token-util-S4A355II.cjs.map +1 -0
- package/package.json +36 -14
- package/dist/chunk-2XIJW7SV.cjs +0 -310
- package/dist/chunk-2XIJW7SV.cjs.map +0 -1
- package/dist/chunk-4CEZIJWJ.cjs +0 -150
- package/dist/chunk-4CEZIJWJ.cjs.map +0 -1
- package/dist/chunk-4QSNRCOT.cjs.map +0 -1
- package/dist/chunk-4US5W7PH.cjs.map +0 -1
- package/dist/chunk-7FHF55WA.js +0 -2041
- package/dist/chunk-7FHF55WA.js.map +0 -1
- package/dist/chunk-BUOJL3MN.js.map +0 -1
- package/dist/chunk-GASWM5HJ.cjs.map +0 -1
- package/dist/chunk-HWHKM67I.js.map +0 -1
- package/dist/chunk-HXIOPAHT.js.map +0 -1
- package/dist/chunk-ILCWPBYQ.cjs.map +0 -1
- package/dist/chunk-JGVY3KWV.cjs.map +0 -1
- package/dist/chunk-LRUH33B4.cjs +0 -2044
- package/dist/chunk-LRUH33B4.cjs.map +0 -1
- package/dist/chunk-O4I563YW.cjs.map +0 -1
- package/dist/chunk-OW4FX5TS.js.map +0 -1
- package/dist/chunk-PZ5AY32C.js +0 -9
- package/dist/chunk-Q7SFCCGT.cjs +0 -11
- package/dist/chunk-S37KCGOR.cjs.map +0 -1
- package/dist/chunk-SQ7KKIH3.js.map +0 -1
- package/dist/chunk-TRWPUPGD.js.map +0 -1
- package/dist/chunk-TXAQU2XN.js.map +0 -1
- package/dist/chunk-UVOSITKU.js.map +0 -1
- package/dist/chunk-VIGPWTDA.cjs.map +0 -1
- package/dist/chunk-VOY6MGKA.js +0 -301
- package/dist/chunk-VOY6MGKA.js.map +0 -1
- package/dist/chunk-X5SDJOY6.cjs.map +0 -1
- package/dist/chunk-Y3J45CVZ.js +0 -144
- package/dist/chunk-Y3J45CVZ.js.map +0 -1
- package/dist/chunk-YS66MFDY.js.map +0 -1
- package/dist/server/handlers/network.cjs +0 -24
- package/dist/server/handlers/network.cjs.map +0 -1
- package/dist/server/handlers/network.d.ts +0 -50
- package/dist/server/handlers/network.d.ts.map +0 -1
- package/dist/server/handlers/network.js +0 -3
- package/dist/server/handlers/network.js.map +0 -1
- package/dist/server/handlers/vNextNetwork.cjs +0 -220
- package/dist/server/handlers/vNextNetwork.cjs.map +0 -1
- package/dist/server/handlers/vNextNetwork.d.ts +0 -179
- package/dist/server/handlers/vNextNetwork.d.ts.map +0 -1
- package/dist/server/handlers/vNextNetwork.js +0 -213
- package/dist/server/handlers/vNextNetwork.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/server/handlers/agents.ts"],"names":["__export","stringify","zodToJsonSchema","agent","handleError","acc","key","HTTPException","runtimeContext","sanitizeBody","RuntimeContext","validateBody","PROVIDER_REGISTRY"],"mappings":"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","file":"chunk-BZLZFHAT.cjs","sourcesContent":["import type { Agent, AgentModelManagerConfig } from '@mastra/core/agent';\nimport { PROVIDER_REGISTRY } from '@mastra/core/llm';\nimport type { SystemMessage } from '@mastra/core/llm';\nimport type { InputProcessor, OutputProcessor } from '@mastra/core/processors';\nimport { RuntimeContext } from '@mastra/core/runtime-context';\nimport { zodToJsonSchema } from '@mastra/core/utils/zod-to-json';\nimport { stringify } from 'superjson';\n\nimport type {\n StreamTextOnFinishCallback,\n StreamTextOnStepFinishCallback,\n} from '../../../../core/dist/llm/model/base.types';\nimport { HTTPException } from '../http-exception';\nimport type { Context } from '../types';\n\nimport { handleError } from './error';\nimport { sanitizeBody, validateBody } from './utils';\n\ntype GetBody<\n T extends keyof Agent & { [K in keyof Agent]: Agent[K] extends (...args: any) => any ? K : never }[keyof Agent],\n> = {\n messages: Parameters<Agent[T]>[0];\n} & Parameters<Agent[T]>[1];\n\ntype GetHITLBody<\n T extends keyof Agent & { [K in keyof Agent]: Agent[K] extends (...args: any) => any ? K : never }[keyof Agent],\n> = Parameters<Agent[T]>[0];\n\nexport interface SerializedProcessor {\n name: string;\n}\n\nexport interface SerializedTool {\n id: string;\n description?: string;\n inputSchema?: string;\n outputSchema?: string;\n requireApproval?: boolean;\n}\n\nexport interface SerializedWorkflow {\n name: string;\n steps?: Record<string, { id: string; description?: string }>;\n}\n\nexport interface SerializedAgent {\n name: string;\n instructions?: SystemMessage;\n tools: Record<string, SerializedTool>;\n agents: Record<string, SerializedAgentDefinition>;\n workflows: Record<string, SerializedWorkflow>;\n inputProcessors: SerializedProcessor[];\n outputProcessors: SerializedProcessor[];\n provider?: string;\n modelId?: string;\n modelVersion?: string;\n modelList?: Array<\n Omit<AgentModelManagerConfig, 'model'> & {\n model: {\n modelId: string;\n provider: string;\n modelVersion: string;\n };\n }\n >;\n // We can't use the true types here because they are not serializable\n defaultGenerateOptions?: Record<string, unknown>;\n defaultStreamOptions?: Record<string, unknown>;\n}\n\nexport interface SerializedAgentWithId extends SerializedAgent {\n id: string;\n}\n\nexport async function getSerializedAgentTools(tools: Record<string, unknown>): Promise<Record<string, SerializedTool>> {\n return Object.entries(tools || {}).reduce<Record<string, SerializedTool>>((acc, [key, tool]) => {\n const _tool = tool as {\n id?: string;\n description?: string;\n inputSchema?: { jsonSchema?: unknown } | unknown;\n outputSchema?: { jsonSchema?: unknown } | unknown;\n };\n\n const toolId = _tool.id ?? `tool-${key}`;\n\n let inputSchemaForReturn: string | undefined = undefined;\n\n if (_tool.inputSchema) {\n if (_tool.inputSchema && typeof _tool.inputSchema === 'object' && 'jsonSchema' in _tool.inputSchema) {\n inputSchemaForReturn = stringify(_tool.inputSchema.jsonSchema);\n } else if (_tool.inputSchema) {\n inputSchemaForReturn = stringify(zodToJsonSchema(_tool.inputSchema as Parameters<typeof zodToJsonSchema>[0]));\n }\n }\n\n let outputSchemaForReturn: string | undefined = undefined;\n\n if (_tool.outputSchema) {\n if (_tool.outputSchema && typeof _tool.outputSchema === 'object' && 'jsonSchema' in _tool.outputSchema) {\n outputSchemaForReturn = stringify(_tool.outputSchema.jsonSchema);\n } else if (_tool.outputSchema) {\n outputSchemaForReturn = stringify(zodToJsonSchema(_tool.outputSchema as Parameters<typeof zodToJsonSchema>[0]));\n }\n }\n\n acc[key] = {\n ..._tool,\n id: toolId,\n inputSchema: inputSchemaForReturn,\n outputSchema: outputSchemaForReturn,\n };\n return acc;\n }, {});\n}\n\nexport function getSerializedProcessors(processors: (InputProcessor | OutputProcessor)[]): SerializedProcessor[] {\n return processors.map(processor => {\n // Processors are class instances or objects with a name property\n // Use the name property if available, otherwise fall back to constructor name\n return {\n name: processor.name || processor.constructor.name,\n };\n });\n}\n\ninterface SerializedAgentDefinition {\n id: string;\n name: string;\n}\n\nasync function getSerializedAgentDefinition({\n agent,\n runtimeContext,\n}: {\n agent: Agent;\n runtimeContext: RuntimeContext;\n}): Promise<Record<string, SerializedAgentDefinition>> {\n let serializedAgentAgents: Record<string, SerializedAgentDefinition> = {};\n\n if ('listAgents' in agent) {\n const agents = await agent.listAgents({ runtimeContext });\n serializedAgentAgents = Object.entries(agents || {}).reduce<Record<string, SerializedAgentDefinition>>(\n (acc, [key, agent]) => {\n return {\n ...acc,\n [key]: { id: agent.id, name: agent.name },\n };\n },\n {},\n );\n }\n return serializedAgentAgents;\n}\n\nasync function formatAgentList({\n id,\n mastra,\n agent,\n runtimeContext,\n}: {\n id: string;\n mastra: Context['mastra'];\n agent: Agent;\n runtimeContext: RuntimeContext;\n}): Promise<SerializedAgentWithId> {\n const instructions = await agent.getInstructions({ runtimeContext });\n const tools = await agent.getTools({ runtimeContext });\n const llm = await agent.getLLM({ runtimeContext });\n const defaultGenerateOptions = await agent.getDefaultGenerateOptions({ runtimeContext });\n const defaultStreamOptions = await agent.getDefaultStreamOptions({ runtimeContext });\n const serializedAgentTools = await getSerializedAgentTools(tools);\n\n let serializedAgentWorkflows: Record<\n string,\n { name: string; steps?: Record<string, { id: string; description?: string }> }\n > = {};\n\n if ('getWorkflows' in agent) {\n const logger = mastra.getLogger();\n try {\n const workflows = await agent.getWorkflows({ runtimeContext });\n serializedAgentWorkflows = Object.entries(workflows || {}).reduce<\n Record<string, { name: string; steps?: Record<string, { id: string; description?: string }> }>\n >((acc, [key, workflow]) => {\n return {\n ...acc,\n [key]: {\n name: workflow.name || 'Unnamed workflow',\n },\n };\n }, {});\n } catch (error) {\n logger.error('Error getting workflows for agent', { agentName: agent.name, error });\n }\n }\n\n const serializedAgentAgents = await getSerializedAgentDefinition({ agent, runtimeContext });\n\n // Get and serialize processors\n const inputProcessors = await agent.getInputProcessors(runtimeContext);\n const outputProcessors = await agent.getOutputProcessors(runtimeContext);\n const serializedInputProcessors = getSerializedProcessors(inputProcessors);\n const serializedOutputProcessors = getSerializedProcessors(outputProcessors);\n\n const model = llm?.getModel();\n const models = await agent.getModelList(runtimeContext);\n const modelList = models?.map(md => ({\n ...md,\n model: {\n modelId: md.model.modelId,\n provider: md.model.provider,\n modelVersion: md.model.specificationVersion,\n },\n }));\n\n return {\n id,\n name: agent.name,\n instructions,\n agents: serializedAgentAgents,\n tools: serializedAgentTools,\n workflows: serializedAgentWorkflows,\n inputProcessors: serializedInputProcessors,\n outputProcessors: serializedOutputProcessors,\n provider: llm?.getProvider(),\n modelId: llm?.getModelId(),\n modelVersion: model?.specificationVersion,\n defaultGenerateOptions,\n defaultStreamOptions,\n modelList,\n };\n}\n\n// Agent handlers\nexport async function getAgentsHandler({\n mastra,\n runtimeContext,\n}: Context & { runtimeContext: RuntimeContext }): Promise<Record<string, SerializedAgent>> {\n try {\n const agents = mastra.getAgents();\n\n const serializedAgentsMap = await Promise.all(\n Object.entries(agents).map(async ([id, agent]) => {\n return formatAgentList({ id, mastra, agent, runtimeContext });\n }),\n );\n\n const serializedAgents = serializedAgentsMap.reduce<\n Record<string, Omit<(typeof serializedAgentsMap)[number], 'id'>>\n >((acc, { id, ...rest }) => {\n acc[id] = rest;\n return acc;\n }, {});\n\n return serializedAgents;\n } catch (error) {\n return handleError(error, 'Error getting agents');\n }\n}\n\nasync function formatAgent({\n mastra,\n agent,\n runtimeContext,\n isPlayground,\n}: {\n mastra: Context['mastra'];\n agent: Agent;\n runtimeContext: RuntimeContext;\n isPlayground: boolean;\n}): Promise<SerializedAgent> {\n const tools = await agent.getTools({ runtimeContext });\n\n const serializedAgentTools = await getSerializedAgentTools(tools);\n\n let serializedAgentWorkflows: Record<\n string,\n { name: string; steps: Record<string, { id: string; description?: string }> }\n > = {};\n\n if ('getWorkflows' in agent) {\n const logger = mastra.getLogger();\n try {\n const workflows = await agent.getWorkflows({ runtimeContext });\n\n serializedAgentWorkflows = Object.entries(workflows || {}).reduce<\n Record<string, { name: string; steps: Record<string, { id: string; description?: string }> }>\n >((acc, [key, workflow]) => {\n return {\n ...acc,\n [key]: {\n name: workflow.name || 'Unnamed workflow',\n steps: Object.entries(workflow.steps).reduce<Record<string, { id: string; description?: string }>>(\n (acc, [key, step]) => {\n return {\n ...acc,\n [key]: {\n id: step.id,\n description: step.description,\n },\n };\n },\n {},\n ),\n },\n };\n }, {});\n } catch (error) {\n logger.error('Error getting workflows for agent', { agentName: agent.name, error });\n }\n }\n\n let proxyRuntimeContext = runtimeContext;\n if (isPlayground) {\n proxyRuntimeContext = new Proxy(runtimeContext, {\n get(target, prop) {\n if (prop === 'get') {\n return function (key: string) {\n const value = target.get(key);\n return value ?? `<${key}>`;\n };\n }\n return Reflect.get(target, prop);\n },\n });\n }\n\n const instructions = await agent.getInstructions({ runtimeContext: proxyRuntimeContext });\n const llm = await agent.getLLM({ runtimeContext });\n const defaultGenerateOptions = await agent.getDefaultGenerateOptions({ runtimeContext: proxyRuntimeContext });\n const defaultStreamOptions = await agent.getDefaultStreamOptions({ runtimeContext: proxyRuntimeContext });\n\n const model = llm?.getModel();\n const models = await agent.getModelList(runtimeContext);\n const modelList = models?.map(md => ({\n ...md,\n model: {\n modelId: md.model.modelId,\n provider: md.model.provider,\n modelVersion: md.model.specificationVersion,\n },\n }));\n\n const serializedAgentAgents = await getSerializedAgentDefinition({ agent, runtimeContext: proxyRuntimeContext });\n\n // Get and serialize processors\n const inputProcessors = await agent.getInputProcessors(proxyRuntimeContext);\n const outputProcessors = await agent.getOutputProcessors(proxyRuntimeContext);\n const serializedInputProcessors = getSerializedProcessors(inputProcessors);\n const serializedOutputProcessors = getSerializedProcessors(outputProcessors);\n\n return {\n name: agent.name,\n instructions,\n tools: serializedAgentTools,\n agents: serializedAgentAgents,\n workflows: serializedAgentWorkflows,\n inputProcessors: serializedInputProcessors,\n outputProcessors: serializedOutputProcessors,\n provider: llm?.getProvider(),\n modelId: llm?.getModelId(),\n modelVersion: model?.specificationVersion,\n modelList,\n defaultGenerateOptions,\n defaultStreamOptions,\n };\n}\n\nexport async function getAgentByIdHandler({\n mastra,\n runtimeContext,\n agentId,\n isPlayground = false,\n}: Context & { isPlayground?: boolean; runtimeContext: RuntimeContext; agentId: string }): Promise<\n SerializedAgent | ReturnType<typeof handleError>\n> {\n try {\n const agent = mastra.getAgent(agentId);\n if (!agent) {\n throw new HTTPException(404, { message: 'Agent not found' });\n }\n return formatAgent({ mastra, agent, runtimeContext, isPlayground });\n } catch (error) {\n return handleError(error, 'Error getting agent');\n }\n}\n\nexport async function getEvalsByAgentIdHandler({\n mastra,\n runtimeContext,\n agentId,\n}: Context & { runtimeContext: RuntimeContext; agentId: string }) {\n try {\n const agent = mastra.getAgent(agentId);\n const evals = (await mastra.getStorage()?.getEvalsByAgentName?.(agent.name, 'test')) || [];\n const instructions = await agent.getInstructions({ runtimeContext });\n return {\n id: agentId,\n name: agent.name,\n instructions,\n evals,\n };\n } catch (error) {\n return handleError(error, 'Error getting test evals');\n }\n}\n\nexport async function getLiveEvalsByAgentIdHandler({\n mastra,\n runtimeContext,\n agentId,\n}: Context & { runtimeContext: RuntimeContext; agentId: string }) {\n try {\n const agent = mastra.getAgent(agentId);\n const evals = (await mastra.getStorage()?.getEvalsByAgentName?.(agent.name, 'live')) || [];\n const instructions = await agent.getInstructions({ runtimeContext });\n\n return {\n id: agentId,\n name: agent.name,\n instructions,\n evals,\n };\n } catch (error) {\n return handleError(error, 'Error getting live evals');\n }\n}\n\nexport async function generateLegacyHandler({\n mastra,\n runtimeContext,\n agentId,\n body,\n abortSignal,\n}: Context & {\n runtimeContext: RuntimeContext;\n agentId: string;\n body: GetBody<'generateLegacy'> & {\n // @deprecated use resourceId\n resourceid?: string;\n runtimeContext?: Record<string, unknown>;\n };\n abortSignal?: AbortSignal;\n}) {\n try {\n const agent = mastra.getAgent(agentId);\n\n if (!agent) {\n throw new HTTPException(404, { message: 'Agent not found' });\n }\n\n // UI Frameworks may send \"client tools\" in the body,\n // but it interferes with llm providers tool handling, so we remove them\n sanitizeBody(body, ['tools']);\n\n const { messages, resourceId, resourceid, runtimeContext: agentRuntimeContext, ...rest } = body;\n // Use resourceId if provided, fall back to resourceid (deprecated)\n const finalResourceId = resourceId ?? resourceid;\n\n const finalRuntimeContext = new RuntimeContext<Record<string, unknown>>([\n ...Array.from(runtimeContext.entries()),\n ...Array.from(Object.entries(agentRuntimeContext ?? {})),\n ]);\n\n validateBody({ messages });\n\n const result = await agent.generateLegacy(messages, {\n ...rest,\n abortSignal,\n // @ts-expect-error TODO fix types\n resourceId: finalResourceId,\n runtimeContext: finalRuntimeContext,\n });\n\n return result;\n } catch (error) {\n return handleError(error, 'Error generating from agent');\n }\n}\n\nexport async function generateHandler({\n mastra,\n runtimeContext,\n agentId,\n body,\n abortSignal,\n}: Context & {\n runtimeContext: RuntimeContext;\n agentId: string;\n body: GetBody<'generate'> & {\n runtimeContext?: Record<string, unknown>;\n format?: 'mastra' | 'aisdk';\n };\n abortSignal?: AbortSignal;\n}): Promise<ReturnType<Agent['generate']>> {\n try {\n const agent = mastra.getAgent(agentId);\n\n if (!agent) {\n throw new HTTPException(404, { message: 'Agent not found' });\n }\n\n // UI Frameworks may send \"client tools\" in the body,\n // but it interferes with llm providers tool handling, so we remove them\n sanitizeBody(body, ['tools']);\n\n const { messages, runtimeContext: agentRuntimeContext, ...rest } = body;\n\n const finalRuntimeContext = new RuntimeContext<Record<string, unknown>>([\n ...Array.from(runtimeContext.entries()),\n ...Array.from(Object.entries(agentRuntimeContext ?? {})),\n ]);\n\n validateBody({ messages });\n\n const result = await agent.generate(messages, {\n ...rest,\n runtimeContext: finalRuntimeContext,\n format: rest.format || 'mastra',\n abortSignal,\n });\n\n return result;\n } catch (error) {\n return handleError(error, 'Error generating from agent');\n }\n}\n\nexport async function streamGenerateLegacyHandler({\n mastra,\n runtimeContext,\n agentId,\n body,\n abortSignal,\n}: Context & {\n runtimeContext: RuntimeContext;\n agentId: string;\n body: GetBody<'streamLegacy'> & {\n // @deprecated use resourceId\n resourceid?: string;\n runtimeContext?: string;\n };\n abortSignal?: AbortSignal;\n}): Promise<Response | undefined> {\n try {\n const agent = mastra.getAgent(agentId);\n\n if (!agent) {\n throw new HTTPException(404, { message: 'Agent not found' });\n }\n\n const { messages, resourceId, resourceid, runtimeContext: agentRuntimeContext, ...rest } = body;\n // Use resourceId if provided, fall back to resourceid (deprecated)\n const finalResourceId = resourceId ?? resourceid;\n\n const finalRuntimeContext = new RuntimeContext<Record<string, unknown>>([\n ...Array.from(runtimeContext.entries()),\n ...Array.from(Object.entries(agentRuntimeContext ?? {})),\n ]);\n\n validateBody({ messages });\n\n const streamResult = await agent.streamLegacy(messages, {\n ...rest,\n abortSignal,\n // @ts-expect-error TODO fix types\n resourceId: finalResourceId,\n runtimeContext: finalRuntimeContext,\n });\n\n const streamResponse = rest.output\n ? streamResult.toTextStreamResponse({\n headers: {\n 'Transfer-Encoding': 'chunked',\n },\n })\n : streamResult.toDataStreamResponse({\n sendUsage: true,\n sendReasoning: true,\n getErrorMessage: (error: any) => {\n return `An error occurred while processing your request. ${error instanceof Error ? error.message : JSON.stringify(error)}`;\n },\n headers: {\n 'Transfer-Encoding': 'chunked',\n },\n });\n\n return streamResponse;\n } catch (error) {\n return handleError(error, 'error streaming agent response');\n }\n}\n\nexport function streamGenerateHandler({\n mastra,\n runtimeContext,\n agentId,\n body,\n abortSignal,\n}: Context & {\n runtimeContext: RuntimeContext;\n agentId: string;\n body: GetBody<'stream'> & {\n runtimeContext?: string;\n format?: 'aisdk' | 'mastra';\n };\n abortSignal?: AbortSignal;\n}): ReturnType<Agent['stream']> {\n try {\n const agent = mastra.getAgent(agentId);\n\n if (!agent) {\n throw new HTTPException(404, { message: 'Agent not found' });\n }\n\n // UI Frameworks may send \"client tools\" in the body,\n // but it interferes with llm providers tool handling, so we remove them\n sanitizeBody(body, ['tools']);\n\n const { messages, runtimeContext: agentRuntimeContext, ...rest } = body;\n const finalRuntimeContext = new RuntimeContext<Record<string, unknown>>([\n ...Array.from(runtimeContext.entries()),\n ...Array.from(Object.entries(agentRuntimeContext ?? {})),\n ]);\n\n validateBody({ messages });\n\n const streamResult = agent.stream(messages, {\n ...rest,\n runtimeContext: finalRuntimeContext,\n abortSignal,\n format: body.format ?? 'mastra',\n });\n\n return streamResult;\n } catch (error) {\n return handleError(error, 'error streaming agent response');\n }\n}\n\nexport function approveToolCallHandler({\n mastra,\n runtimeContext,\n agentId,\n body,\n abortSignal,\n}: Context & {\n runtimeContext: RuntimeContext;\n agentId: string;\n body: GetHITLBody<'approveToolCall'> & {\n runtimeContext?: string;\n format?: 'aisdk' | 'mastra';\n };\n abortSignal?: AbortSignal;\n}): ReturnType<Agent['approveToolCall']> {\n try {\n const agent = mastra.getAgent(agentId);\n\n if (!agent) {\n throw new HTTPException(404, { message: 'Agent not found' });\n }\n\n // UI Frameworks may send \"client tools\" in the body,\n // but it interferes with llm providers tool handling, so we remove them\n sanitizeBody(body, ['tools']);\n\n const { runId, runtimeContext: agentRuntimeContext, ...rest } = body;\n\n const finalRuntimeContext = new RuntimeContext<Record<string, unknown>>([\n ...Array.from(runtimeContext.entries()),\n ...Array.from(Object.entries(agentRuntimeContext ?? {})),\n ]);\n\n const streamResult = agent.approveToolCall({\n ...rest,\n runId,\n runtimeContext: finalRuntimeContext,\n abortSignal,\n format: body.format ?? 'mastra',\n });\n\n return streamResult;\n } catch (error) {\n return handleError(error, 'error streaming agent response');\n }\n}\n\nexport function declineToolCallHandler({\n mastra,\n runtimeContext,\n agentId,\n body,\n abortSignal,\n}: Context & {\n runtimeContext: RuntimeContext;\n agentId: string;\n body: GetHITLBody<'declineToolCall'> & {\n runtimeContext?: string;\n format?: 'aisdk' | 'mastra';\n };\n abortSignal?: AbortSignal;\n}): ReturnType<Agent['declineToolCall']> {\n try {\n const agent = mastra.getAgent(agentId);\n\n if (!agent) {\n throw new HTTPException(404, { message: 'Agent not found' });\n }\n\n // UI Frameworks may send \"client tools\" in the body,\n // but it interferes with llm providers tool handling, so we remove them\n sanitizeBody(body, ['tools']);\n\n const { runId, runtimeContext: agentRuntimeContext, ...rest } = body;\n\n const finalRuntimeContext = new RuntimeContext<Record<string, unknown>>([\n ...Array.from(runtimeContext.entries()),\n ...Array.from(Object.entries(agentRuntimeContext ?? {})),\n ]);\n\n const streamResult = agent.declineToolCall({\n ...rest,\n runId,\n runtimeContext: finalRuntimeContext,\n abortSignal,\n format: body.format ?? 'mastra',\n });\n\n return streamResult;\n } catch (error) {\n return handleError(error, 'error streaming agent response');\n }\n}\n\nexport function streamNetworkHandler({\n mastra,\n runtimeContext,\n agentId,\n body,\n // abortSignal,\n}: Context & {\n runtimeContext: RuntimeContext;\n agentId: string;\n body: GetBody<'network'> & {\n thread?: string;\n resourceId?: string;\n };\n // abortSignal?: AbortSignal;\n}): ReturnType<Agent['network']> {\n try {\n const agent = mastra.getAgent(agentId);\n\n if (!agent) {\n throw new HTTPException(404, { message: 'Agent not found' });\n }\n\n // UI Frameworks may send \"client tools\" in the body,\n // but it interferes with llm providers tool handling, so we remove them\n sanitizeBody(body, ['tools']);\n\n const { messages, runtimeContext: agentRuntimeContext, ...rest } = body;\n const finalRuntimeContext = new RuntimeContext<Record<string, unknown>>([\n ...Array.from(runtimeContext.entries()),\n ...Array.from(Object.entries(agentRuntimeContext ?? {})),\n ]);\n\n validateBody({ messages });\n\n const streamResult = agent.network(messages, {\n ...rest,\n memory: {\n thread: rest.thread ?? '',\n resource: rest.resourceId ?? '',\n },\n runtimeContext: finalRuntimeContext,\n });\n\n return streamResult;\n } catch (error) {\n return handleError(error, 'error streaming agent loop response');\n }\n}\n\nexport async function streamUIMessageHandler({\n mastra,\n runtimeContext,\n agentId,\n body,\n abortSignal,\n}: Context & {\n runtimeContext: RuntimeContext;\n agentId: string;\n body: GetBody<'stream'> & {\n runtimeContext?: string;\n onStepFinish?: StreamTextOnStepFinishCallback<any>;\n onFinish?: StreamTextOnFinishCallback<any>;\n output?: undefined;\n };\n abortSignal?: AbortSignal;\n}): Promise<Response | undefined> {\n try {\n const agent = mastra.getAgent(agentId);\n\n if (!agent) {\n throw new HTTPException(404, { message: 'Agent not found' });\n }\n\n // UI Frameworks may send \"client tools\" in the body,\n // but it interferes with llm providers tool handling, so we remove them\n sanitizeBody(body, ['tools']);\n\n const { messages, runtimeContext: agentRuntimeContext, ...rest } = body;\n const finalRuntimeContext = new RuntimeContext<Record<string, unknown>>([\n ...Array.from(runtimeContext.entries()),\n ...Array.from(Object.entries(agentRuntimeContext ?? {})),\n ]);\n\n validateBody({ messages });\n\n const streamResult = await agent.stream(messages, {\n ...rest,\n runtimeContext: finalRuntimeContext,\n abortSignal,\n format: 'aisdk',\n });\n\n return streamResult.toUIMessageStreamResponse();\n } catch (error) {\n return handleError(error, 'error streaming agent response');\n }\n}\n\nexport async function updateAgentModelHandler({\n mastra,\n agentId,\n body,\n}: Context & {\n agentId: string;\n body: {\n modelId: string;\n provider: string;\n };\n}): Promise<{ message: string }> {\n try {\n const agent = mastra.getAgent(agentId);\n\n if (!agent) {\n throw new HTTPException(404, { message: 'Agent not found' });\n }\n\n const { modelId, provider } = body;\n\n // Use the universal Mastra router format: provider/model\n const newModel = `${provider}/${modelId}`;\n\n agent.__updateModel({ model: newModel });\n\n return { message: 'Agent model updated' };\n } catch (error) {\n return handleError(error, 'error updating agent model');\n }\n}\n\nexport async function reorderAgentModelListHandler({\n mastra,\n agentId,\n body,\n}: Context & {\n agentId: string;\n body: {\n reorderedModelIds: Array<string>;\n };\n}): Promise<{ message: string }> {\n try {\n const agent = mastra.getAgent(agentId);\n\n if (!agent) {\n throw new HTTPException(404, { message: 'Agent not found' });\n }\n\n const modelList = await agent.getModelList();\n if (!modelList || modelList.length === 0) {\n throw new HTTPException(400, { message: 'Agent model list is not found or empty' });\n }\n\n agent.reorderModels(body.reorderedModelIds);\n\n return { message: 'Model list reordered' };\n } catch (error) {\n return handleError(error, 'error reordering model list');\n }\n}\n\nexport async function updateAgentModelInModelListHandler({\n mastra,\n agentId,\n modelConfigId,\n body,\n}: Context & {\n agentId: string;\n modelConfigId: string;\n body: {\n model?: {\n modelId: string;\n provider: string;\n };\n maxRetries?: number;\n enabled?: boolean;\n };\n}): Promise<{ message: string }> {\n try {\n const agent = mastra.getAgent(agentId);\n\n if (!agent) {\n throw new HTTPException(404, { message: 'Agent not found' });\n }\n const { model: bodyModel, maxRetries, enabled } = body;\n\n if (!modelConfigId) {\n throw new HTTPException(400, { message: 'Model id is required' });\n }\n\n const modelList = await agent.getModelList();\n if (!modelList || modelList.length === 0) {\n throw new HTTPException(400, { message: 'Agent model list is not found or empty' });\n }\n\n const modelToUpdate = modelList.find(m => m.id === modelConfigId);\n if (!modelToUpdate) {\n throw new HTTPException(400, { message: 'Model to update is not found in agent model list' });\n }\n\n let model: string | undefined;\n if (bodyModel) {\n const { modelId, provider } = bodyModel;\n // Use the universal Mastra router format: provider/model\n model = `${provider}/${modelId}`;\n }\n\n agent.updateModelInModelList({ id: modelConfigId, model, maxRetries, enabled });\n\n return { message: 'Model list updated' };\n } catch (error) {\n return handleError(error, 'error updating model list');\n }\n}\n\nexport async function getProvidersHandler() {\n try {\n const providers = Object.entries(PROVIDER_REGISTRY).map(([id, provider]) => {\n // Check if the provider is connected by checking for its API key env var(s)\n const envVars = Array.isArray(provider.apiKeyEnvVar) ? provider.apiKeyEnvVar : [provider.apiKeyEnvVar];\n const connected = envVars.every(envVar => !!process.env[envVar]);\n\n return {\n id,\n name: provider.name,\n envVar: provider.apiKeyEnvVar,\n connected,\n docUrl: provider.docUrl,\n models: [...provider.models], // Convert readonly array to regular array\n };\n });\n\n return { providers };\n } catch (error) {\n return handleError(error, 'error fetching providers');\n }\n}\n"]}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { getWorkflowInfo, WorkflowRegistry } from './chunk-YWOK4F5A.js';
|
|
2
2
|
import { handleError } from './chunk-CY4TP3FK.js';
|
|
3
3
|
import { HTTPException } from './chunk-MMROOK5J.js';
|
|
4
|
-
import { __export } from './chunk-
|
|
5
|
-
import { ReadableStream } from 'stream/web';
|
|
4
|
+
import { __export } from './chunk-PR4QN5HX.js';
|
|
5
|
+
import { ReadableStream, TransformStream } from 'stream/web';
|
|
6
6
|
|
|
7
7
|
// src/server/handlers/workflows.ts
|
|
8
8
|
var workflows_exports = {};
|
|
@@ -14,7 +14,10 @@ __export(workflows_exports, {
|
|
|
14
14
|
getWorkflowRunExecutionResultHandler: () => getWorkflowRunExecutionResultHandler,
|
|
15
15
|
getWorkflowRunsHandler: () => getWorkflowRunsHandler,
|
|
16
16
|
getWorkflowsHandler: () => getWorkflowsHandler,
|
|
17
|
+
observeStreamVNextWorkflowHandler: () => observeStreamVNextWorkflowHandler,
|
|
18
|
+
observeStreamWorkflowHandler: () => observeStreamWorkflowHandler,
|
|
17
19
|
resumeAsyncWorkflowHandler: () => resumeAsyncWorkflowHandler,
|
|
20
|
+
resumeStreamWorkflowHandler: () => resumeStreamWorkflowHandler,
|
|
18
21
|
resumeWorkflowHandler: () => resumeWorkflowHandler,
|
|
19
22
|
sendWorkflowRunEventHandler: () => sendWorkflowRunEventHandler,
|
|
20
23
|
startAsyncWorkflowHandler: () => startAsyncWorkflowHandler,
|
|
@@ -23,48 +26,11 @@ __export(workflows_exports, {
|
|
|
23
26
|
streamWorkflowHandler: () => streamWorkflowHandler,
|
|
24
27
|
watchWorkflowHandler: () => watchWorkflowHandler
|
|
25
28
|
});
|
|
26
|
-
function getSteps(steps, path) {
|
|
27
|
-
return Object.entries(steps).reduce((acc, [key, step]) => {
|
|
28
|
-
const fullKey = path ? `${path}.${key}` : key;
|
|
29
|
-
acc[fullKey] = {
|
|
30
|
-
id: step.id,
|
|
31
|
-
description: step.description,
|
|
32
|
-
inputSchema: step.inputSchema ? stringify(esm_default(step.inputSchema)) : void 0,
|
|
33
|
-
outputSchema: step.outputSchema ? stringify(esm_default(step.outputSchema)) : void 0,
|
|
34
|
-
resumeSchema: step.resumeSchema ? stringify(esm_default(step.resumeSchema)) : void 0,
|
|
35
|
-
suspendSchema: step.suspendSchema ? stringify(esm_default(step.suspendSchema)) : void 0,
|
|
36
|
-
isWorkflow: step.component === "WORKFLOW"
|
|
37
|
-
};
|
|
38
|
-
if (step.component === "WORKFLOW" && step.steps) {
|
|
39
|
-
const nestedSteps = getSteps(step.steps, fullKey) || {};
|
|
40
|
-
acc = { ...acc, ...nestedSteps };
|
|
41
|
-
}
|
|
42
|
-
return acc;
|
|
43
|
-
}, {});
|
|
44
|
-
}
|
|
45
29
|
async function getWorkflowsHandler({ mastra }) {
|
|
46
30
|
try {
|
|
47
31
|
const workflows = mastra.getWorkflows({ serialized: false });
|
|
48
32
|
const _workflows = Object.entries(workflows).reduce((acc, [key, workflow]) => {
|
|
49
|
-
acc[key] =
|
|
50
|
-
name: workflow.name,
|
|
51
|
-
description: workflow.description,
|
|
52
|
-
steps: Object.entries(workflow.steps).reduce((acc2, [key2, step]) => {
|
|
53
|
-
acc2[key2] = {
|
|
54
|
-
id: step.id,
|
|
55
|
-
description: step.description,
|
|
56
|
-
inputSchema: step.inputSchema ? stringify(esm_default(step.inputSchema)) : void 0,
|
|
57
|
-
outputSchema: step.outputSchema ? stringify(esm_default(step.outputSchema)) : void 0,
|
|
58
|
-
resumeSchema: step.resumeSchema ? stringify(esm_default(step.resumeSchema)) : void 0,
|
|
59
|
-
suspendSchema: step.suspendSchema ? stringify(esm_default(step.suspendSchema)) : void 0
|
|
60
|
-
};
|
|
61
|
-
return acc2;
|
|
62
|
-
}, {}),
|
|
63
|
-
allSteps: getSteps(workflow.steps) || {},
|
|
64
|
-
stepGraph: workflow.serializedStepGraph,
|
|
65
|
-
inputSchema: workflow.inputSchema ? stringify(esm_default(workflow.inputSchema)) : void 0,
|
|
66
|
-
outputSchema: workflow.outputSchema ? stringify(esm_default(workflow.outputSchema)) : void 0
|
|
67
|
-
};
|
|
33
|
+
acc[key] = getWorkflowInfo(workflow);
|
|
68
34
|
return acc;
|
|
69
35
|
}, {});
|
|
70
36
|
return _workflows;
|
|
@@ -78,10 +44,13 @@ async function getWorkflowsFromSystem({ mastra, workflowId }) {
|
|
|
78
44
|
throw new HTTPException(400, { message: "Workflow ID is required" });
|
|
79
45
|
}
|
|
80
46
|
let workflow;
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
47
|
+
workflow = WorkflowRegistry.getWorkflow(workflowId);
|
|
48
|
+
if (!workflow) {
|
|
49
|
+
try {
|
|
50
|
+
workflow = mastra.getWorkflow(workflowId);
|
|
51
|
+
} catch (error) {
|
|
52
|
+
logger.debug("Error getting workflow, searching agents for workflow", error);
|
|
53
|
+
}
|
|
85
54
|
}
|
|
86
55
|
if (!workflow) {
|
|
87
56
|
logger.debug("Workflow not found, searching agents for workflow", { workflowId });
|
|
@@ -115,25 +84,7 @@ async function getWorkflowByIdHandler({ mastra, workflowId }) {
|
|
|
115
84
|
if (!workflow) {
|
|
116
85
|
throw new HTTPException(404, { message: "Workflow not found" });
|
|
117
86
|
}
|
|
118
|
-
return
|
|
119
|
-
steps: Object.entries(workflow.steps).reduce((acc, [key, step]) => {
|
|
120
|
-
acc[key] = {
|
|
121
|
-
id: step.id,
|
|
122
|
-
description: step.description,
|
|
123
|
-
inputSchema: step.inputSchema ? stringify(esm_default(step.inputSchema)) : void 0,
|
|
124
|
-
outputSchema: step.outputSchema ? stringify(esm_default(step.outputSchema)) : void 0,
|
|
125
|
-
resumeSchema: step.resumeSchema ? stringify(esm_default(step.resumeSchema)) : void 0,
|
|
126
|
-
suspendSchema: step.suspendSchema ? stringify(esm_default(step.suspendSchema)) : void 0
|
|
127
|
-
};
|
|
128
|
-
return acc;
|
|
129
|
-
}, {}),
|
|
130
|
-
allSteps: getSteps(workflow.steps) || {},
|
|
131
|
-
name: workflow.name,
|
|
132
|
-
description: workflow.description,
|
|
133
|
-
stepGraph: workflow.serializedStepGraph,
|
|
134
|
-
inputSchema: workflow.inputSchema ? stringify(esm_default(workflow.inputSchema)) : void 0,
|
|
135
|
-
outputSchema: workflow.outputSchema ? stringify(esm_default(workflow.outputSchema)) : void 0
|
|
136
|
-
};
|
|
87
|
+
return getWorkflowInfo(workflow);
|
|
137
88
|
} catch (error) {
|
|
138
89
|
return handleError(error, "Error getting workflow");
|
|
139
90
|
}
|
|
@@ -212,7 +163,8 @@ async function startAsyncWorkflowHandler({
|
|
|
212
163
|
runtimeContext,
|
|
213
164
|
workflowId,
|
|
214
165
|
runId,
|
|
215
|
-
inputData
|
|
166
|
+
inputData,
|
|
167
|
+
tracingOptions
|
|
216
168
|
}) {
|
|
217
169
|
try {
|
|
218
170
|
if (!workflowId) {
|
|
@@ -225,7 +177,8 @@ async function startAsyncWorkflowHandler({
|
|
|
225
177
|
const _run = await workflow.createRunAsync({ runId });
|
|
226
178
|
const result = await _run.start({
|
|
227
179
|
inputData,
|
|
228
|
-
runtimeContext
|
|
180
|
+
runtimeContext,
|
|
181
|
+
tracingOptions
|
|
229
182
|
});
|
|
230
183
|
return result;
|
|
231
184
|
} catch (error) {
|
|
@@ -237,7 +190,8 @@ async function startWorkflowRunHandler({
|
|
|
237
190
|
runtimeContext,
|
|
238
191
|
workflowId,
|
|
239
192
|
runId,
|
|
240
|
-
inputData
|
|
193
|
+
inputData,
|
|
194
|
+
tracingOptions
|
|
241
195
|
}) {
|
|
242
196
|
try {
|
|
243
197
|
if (!workflowId) {
|
|
@@ -254,10 +208,11 @@ async function startWorkflowRunHandler({
|
|
|
254
208
|
if (!run) {
|
|
255
209
|
throw new HTTPException(404, { message: "Workflow run not found" });
|
|
256
210
|
}
|
|
257
|
-
const _run = await workflow.createRunAsync({ runId });
|
|
211
|
+
const _run = await workflow.createRunAsync({ runId, resourceId: run.resourceId });
|
|
258
212
|
void _run.start({
|
|
259
213
|
inputData,
|
|
260
|
-
runtimeContext
|
|
214
|
+
runtimeContext,
|
|
215
|
+
tracingOptions
|
|
261
216
|
});
|
|
262
217
|
return { message: "Workflow run started" };
|
|
263
218
|
} catch (e) {
|
|
@@ -267,7 +222,8 @@ async function startWorkflowRunHandler({
|
|
|
267
222
|
async function watchWorkflowHandler({
|
|
268
223
|
mastra,
|
|
269
224
|
workflowId,
|
|
270
|
-
runId
|
|
225
|
+
runId,
|
|
226
|
+
eventType = "watch"
|
|
271
227
|
}) {
|
|
272
228
|
try {
|
|
273
229
|
if (!workflowId) {
|
|
@@ -284,27 +240,32 @@ async function watchWorkflowHandler({
|
|
|
284
240
|
if (!run) {
|
|
285
241
|
throw new HTTPException(404, { message: "Workflow run not found" });
|
|
286
242
|
}
|
|
287
|
-
const _run = await workflow.createRunAsync({ runId });
|
|
243
|
+
const _run = await workflow.createRunAsync({ runId, resourceId: run.resourceId });
|
|
288
244
|
let unwatch;
|
|
289
245
|
let asyncRef = null;
|
|
290
246
|
const stream = new ReadableStream({
|
|
291
247
|
start(controller) {
|
|
292
|
-
unwatch = _run.watch((
|
|
248
|
+
unwatch = _run.watch((event) => {
|
|
249
|
+
const { type, payload, eventTimestamp } = event;
|
|
293
250
|
controller.enqueue(JSON.stringify({ type, payload, eventTimestamp, runId }));
|
|
294
251
|
if (asyncRef) {
|
|
295
252
|
clearImmediate(asyncRef);
|
|
296
253
|
asyncRef = null;
|
|
297
254
|
}
|
|
298
255
|
asyncRef = setImmediate(async () => {
|
|
299
|
-
const runDone = payload.workflowState.status !== "running";
|
|
256
|
+
const runDone = eventType === "watch" ? payload.workflowState.status !== "running" : type === "finish";
|
|
300
257
|
if (runDone) {
|
|
301
258
|
controller.close();
|
|
302
259
|
unwatch?.();
|
|
303
260
|
}
|
|
304
261
|
});
|
|
305
|
-
});
|
|
262
|
+
}, eventType);
|
|
306
263
|
},
|
|
307
264
|
cancel() {
|
|
265
|
+
if (asyncRef) {
|
|
266
|
+
clearImmediate(asyncRef);
|
|
267
|
+
asyncRef = null;
|
|
268
|
+
}
|
|
308
269
|
unwatch?.();
|
|
309
270
|
}
|
|
310
271
|
});
|
|
@@ -318,7 +279,8 @@ async function streamWorkflowHandler({
|
|
|
318
279
|
runtimeContext,
|
|
319
280
|
workflowId,
|
|
320
281
|
runId,
|
|
321
|
-
inputData
|
|
282
|
+
inputData,
|
|
283
|
+
tracingOptions
|
|
322
284
|
}) {
|
|
323
285
|
try {
|
|
324
286
|
if (!workflowId) {
|
|
@@ -331,22 +293,70 @@ async function streamWorkflowHandler({
|
|
|
331
293
|
if (!workflow) {
|
|
332
294
|
throw new HTTPException(404, { message: "Workflow not found" });
|
|
333
295
|
}
|
|
296
|
+
const serverCache = mastra.getServerCache();
|
|
334
297
|
const run = await workflow.createRunAsync({ runId });
|
|
335
298
|
const result = run.stream({
|
|
336
299
|
inputData,
|
|
337
|
-
runtimeContext
|
|
300
|
+
runtimeContext,
|
|
301
|
+
onChunk: async (chunk) => {
|
|
302
|
+
if (serverCache) {
|
|
303
|
+
const cacheKey = runId;
|
|
304
|
+
await serverCache.listPush(cacheKey, chunk);
|
|
305
|
+
}
|
|
306
|
+
},
|
|
307
|
+
tracingOptions
|
|
338
308
|
});
|
|
339
309
|
return result;
|
|
340
310
|
} catch (error) {
|
|
341
311
|
return handleError(error, "Error executing workflow");
|
|
342
312
|
}
|
|
343
313
|
}
|
|
314
|
+
async function observeStreamWorkflowHandler({
|
|
315
|
+
mastra,
|
|
316
|
+
workflowId,
|
|
317
|
+
runId
|
|
318
|
+
}) {
|
|
319
|
+
try {
|
|
320
|
+
if (!workflowId) {
|
|
321
|
+
throw new HTTPException(400, { message: "Workflow ID is required" });
|
|
322
|
+
}
|
|
323
|
+
if (!runId) {
|
|
324
|
+
throw new HTTPException(400, { message: "runId required to observe workflow stream" });
|
|
325
|
+
}
|
|
326
|
+
const { workflow } = await getWorkflowsFromSystem({ mastra, workflowId });
|
|
327
|
+
if (!workflow) {
|
|
328
|
+
throw new HTTPException(404, { message: "Workflow not found" });
|
|
329
|
+
}
|
|
330
|
+
const run = await workflow.getWorkflowRunById(runId);
|
|
331
|
+
if (!run) {
|
|
332
|
+
throw new HTTPException(404, { message: "Workflow run not found" });
|
|
333
|
+
}
|
|
334
|
+
const _run = await workflow.createRunAsync({ runId, resourceId: run.resourceId });
|
|
335
|
+
const serverCache = mastra.getServerCache();
|
|
336
|
+
if (!serverCache) {
|
|
337
|
+
throw new HTTPException(500, { message: "Server cache not found" });
|
|
338
|
+
}
|
|
339
|
+
const transformStream = new TransformStream();
|
|
340
|
+
const writer = transformStream.writable.getWriter();
|
|
341
|
+
const cachedRunChunks = await serverCache.listFromTo(runId, 0);
|
|
342
|
+
for (const chunk of cachedRunChunks) {
|
|
343
|
+
await writer.write(chunk);
|
|
344
|
+
}
|
|
345
|
+
writer.releaseLock();
|
|
346
|
+
const result = _run.observeStream();
|
|
347
|
+
return result.stream?.pipeThrough(transformStream);
|
|
348
|
+
} catch (error) {
|
|
349
|
+
return handleError(error, "Error observing workflow stream");
|
|
350
|
+
}
|
|
351
|
+
}
|
|
344
352
|
async function streamVNextWorkflowHandler({
|
|
345
353
|
mastra,
|
|
346
354
|
runtimeContext,
|
|
347
355
|
workflowId,
|
|
348
356
|
runId,
|
|
349
|
-
inputData
|
|
357
|
+
inputData,
|
|
358
|
+
closeOnSuspend,
|
|
359
|
+
tracingOptions
|
|
350
360
|
}) {
|
|
351
361
|
try {
|
|
352
362
|
if (!workflowId) {
|
|
@@ -359,22 +369,95 @@ async function streamVNextWorkflowHandler({
|
|
|
359
369
|
if (!workflow) {
|
|
360
370
|
throw new HTTPException(404, { message: "Workflow not found" });
|
|
361
371
|
}
|
|
372
|
+
const serverCache = mastra.getServerCache();
|
|
362
373
|
const run = await workflow.createRunAsync({ runId });
|
|
363
374
|
const result = run.streamVNext({
|
|
364
375
|
inputData,
|
|
365
|
-
runtimeContext
|
|
376
|
+
runtimeContext,
|
|
377
|
+
closeOnSuspend,
|
|
378
|
+
onChunk: async (chunk) => {
|
|
379
|
+
if (serverCache) {
|
|
380
|
+
const cacheKey = runId;
|
|
381
|
+
await serverCache.listPush(cacheKey, chunk);
|
|
382
|
+
}
|
|
383
|
+
},
|
|
384
|
+
tracingOptions
|
|
366
385
|
});
|
|
367
386
|
return result;
|
|
368
387
|
} catch (error) {
|
|
369
388
|
return handleError(error, "Error streaming workflow");
|
|
370
389
|
}
|
|
371
390
|
}
|
|
391
|
+
async function observeStreamVNextWorkflowHandler({
|
|
392
|
+
mastra,
|
|
393
|
+
workflowId,
|
|
394
|
+
runId
|
|
395
|
+
}) {
|
|
396
|
+
try {
|
|
397
|
+
if (!workflowId) {
|
|
398
|
+
throw new HTTPException(400, { message: "Workflow ID is required" });
|
|
399
|
+
}
|
|
400
|
+
if (!runId) {
|
|
401
|
+
throw new HTTPException(400, { message: "runId required to observe workflow stream" });
|
|
402
|
+
}
|
|
403
|
+
const { workflow } = await getWorkflowsFromSystem({ mastra, workflowId });
|
|
404
|
+
if (!workflow) {
|
|
405
|
+
throw new HTTPException(404, { message: "Workflow not found" });
|
|
406
|
+
}
|
|
407
|
+
const run = await workflow.getWorkflowRunById(runId);
|
|
408
|
+
if (!run) {
|
|
409
|
+
throw new HTTPException(404, { message: "Workflow run not found" });
|
|
410
|
+
}
|
|
411
|
+
const _run = await workflow.createRunAsync({ runId, resourceId: run.resourceId });
|
|
412
|
+
const serverCache = mastra.getServerCache();
|
|
413
|
+
if (!serverCache) {
|
|
414
|
+
throw new HTTPException(500, { message: "Server cache not found" });
|
|
415
|
+
}
|
|
416
|
+
const cachedRunChunks = await serverCache.listFromTo(runId, 0);
|
|
417
|
+
const combinedStream = new ReadableStream({
|
|
418
|
+
start(controller) {
|
|
419
|
+
const emitCachedChunks = async () => {
|
|
420
|
+
for (const chunk of cachedRunChunks) {
|
|
421
|
+
controller.enqueue(chunk);
|
|
422
|
+
}
|
|
423
|
+
};
|
|
424
|
+
const liveStream = _run.observeStreamVNext();
|
|
425
|
+
const reader = liveStream.getReader();
|
|
426
|
+
const pump = async () => {
|
|
427
|
+
try {
|
|
428
|
+
while (true) {
|
|
429
|
+
const { done, value } = await reader.read();
|
|
430
|
+
if (done) {
|
|
431
|
+
controller.close();
|
|
432
|
+
break;
|
|
433
|
+
}
|
|
434
|
+
controller.enqueue(value);
|
|
435
|
+
}
|
|
436
|
+
} catch (error) {
|
|
437
|
+
controller.error(error);
|
|
438
|
+
} finally {
|
|
439
|
+
reader.releaseLock();
|
|
440
|
+
}
|
|
441
|
+
};
|
|
442
|
+
void emitCachedChunks().then(() => {
|
|
443
|
+
void pump();
|
|
444
|
+
}).catch((error) => {
|
|
445
|
+
controller.error(error);
|
|
446
|
+
});
|
|
447
|
+
}
|
|
448
|
+
});
|
|
449
|
+
return combinedStream;
|
|
450
|
+
} catch (error) {
|
|
451
|
+
return handleError(error, "Error observing workflow stream");
|
|
452
|
+
}
|
|
453
|
+
}
|
|
372
454
|
async function resumeAsyncWorkflowHandler({
|
|
373
455
|
mastra,
|
|
374
456
|
workflowId,
|
|
375
457
|
runId,
|
|
376
458
|
body,
|
|
377
|
-
runtimeContext
|
|
459
|
+
runtimeContext,
|
|
460
|
+
tracingOptions
|
|
378
461
|
}) {
|
|
379
462
|
try {
|
|
380
463
|
if (!workflowId) {
|
|
@@ -394,11 +477,12 @@ async function resumeAsyncWorkflowHandler({
|
|
|
394
477
|
if (!run) {
|
|
395
478
|
throw new HTTPException(404, { message: "Workflow run not found" });
|
|
396
479
|
}
|
|
397
|
-
const _run = await workflow.createRunAsync({ runId });
|
|
480
|
+
const _run = await workflow.createRunAsync({ runId, resourceId: run.resourceId });
|
|
398
481
|
const result = await _run.resume({
|
|
399
482
|
step: body.step,
|
|
400
483
|
resumeData: body.resumeData,
|
|
401
|
-
runtimeContext
|
|
484
|
+
runtimeContext,
|
|
485
|
+
tracingOptions
|
|
402
486
|
});
|
|
403
487
|
return result;
|
|
404
488
|
} catch (error) {
|
|
@@ -410,7 +494,8 @@ async function resumeWorkflowHandler({
|
|
|
410
494
|
workflowId,
|
|
411
495
|
runId,
|
|
412
496
|
body,
|
|
413
|
-
runtimeContext
|
|
497
|
+
runtimeContext,
|
|
498
|
+
tracingOptions
|
|
414
499
|
}) {
|
|
415
500
|
try {
|
|
416
501
|
if (!workflowId) {
|
|
@@ -430,17 +515,63 @@ async function resumeWorkflowHandler({
|
|
|
430
515
|
if (!run) {
|
|
431
516
|
throw new HTTPException(404, { message: "Workflow run not found" });
|
|
432
517
|
}
|
|
433
|
-
const _run = await workflow.createRunAsync({ runId });
|
|
518
|
+
const _run = await workflow.createRunAsync({ runId, resourceId: run.resourceId });
|
|
434
519
|
void _run.resume({
|
|
435
520
|
step: body.step,
|
|
436
521
|
resumeData: body.resumeData,
|
|
437
|
-
runtimeContext
|
|
522
|
+
runtimeContext,
|
|
523
|
+
tracingOptions
|
|
438
524
|
});
|
|
439
525
|
return { message: "Workflow run resumed" };
|
|
440
526
|
} catch (error) {
|
|
441
527
|
return handleError(error, "Error resuming workflow");
|
|
442
528
|
}
|
|
443
529
|
}
|
|
530
|
+
async function resumeStreamWorkflowHandler({
|
|
531
|
+
mastra,
|
|
532
|
+
workflowId,
|
|
533
|
+
runId,
|
|
534
|
+
body,
|
|
535
|
+
runtimeContext,
|
|
536
|
+
tracingOptions
|
|
537
|
+
}) {
|
|
538
|
+
try {
|
|
539
|
+
if (!workflowId) {
|
|
540
|
+
throw new HTTPException(400, { message: "Workflow ID is required" });
|
|
541
|
+
}
|
|
542
|
+
if (!runId) {
|
|
543
|
+
throw new HTTPException(400, { message: "runId required to resume workflow" });
|
|
544
|
+
}
|
|
545
|
+
if (!body.step) {
|
|
546
|
+
throw new HTTPException(400, { message: "step required to resume workflow" });
|
|
547
|
+
}
|
|
548
|
+
const { workflow } = await getWorkflowsFromSystem({ mastra, workflowId });
|
|
549
|
+
if (!workflow) {
|
|
550
|
+
throw new HTTPException(404, { message: "Workflow not found" });
|
|
551
|
+
}
|
|
552
|
+
const run = await workflow.getWorkflowRunById(runId);
|
|
553
|
+
if (!run) {
|
|
554
|
+
throw new HTTPException(404, { message: "Workflow run not found" });
|
|
555
|
+
}
|
|
556
|
+
const _run = await workflow.createRunAsync({ runId, resourceId: run.resourceId });
|
|
557
|
+
const serverCache = mastra.getServerCache();
|
|
558
|
+
const stream = _run.resumeStreamVNext({
|
|
559
|
+
step: body.step,
|
|
560
|
+
resumeData: body.resumeData,
|
|
561
|
+
runtimeContext,
|
|
562
|
+
tracingOptions,
|
|
563
|
+
onChunk: async (chunk) => {
|
|
564
|
+
if (serverCache) {
|
|
565
|
+
const cacheKey = runId;
|
|
566
|
+
await serverCache.listPush(cacheKey, chunk);
|
|
567
|
+
}
|
|
568
|
+
}
|
|
569
|
+
});
|
|
570
|
+
return stream;
|
|
571
|
+
} catch (error) {
|
|
572
|
+
return handleError(error, "Error resuming workflow");
|
|
573
|
+
}
|
|
574
|
+
}
|
|
444
575
|
async function getWorkflowRunsHandler({
|
|
445
576
|
mastra,
|
|
446
577
|
workflowId,
|
|
@@ -487,7 +618,7 @@ async function cancelWorkflowRunHandler({
|
|
|
487
618
|
if (!run) {
|
|
488
619
|
throw new HTTPException(404, { message: "Workflow run not found" });
|
|
489
620
|
}
|
|
490
|
-
const _run = await workflow.createRunAsync({ runId });
|
|
621
|
+
const _run = await workflow.createRunAsync({ runId, resourceId: run.resourceId });
|
|
491
622
|
await _run.cancel();
|
|
492
623
|
return { message: "Workflow run cancelled" };
|
|
493
624
|
} catch (error) {
|
|
@@ -516,7 +647,7 @@ async function sendWorkflowRunEventHandler({
|
|
|
516
647
|
if (!run) {
|
|
517
648
|
throw new HTTPException(404, { message: "Workflow run not found" });
|
|
518
649
|
}
|
|
519
|
-
const _run = await workflow.createRunAsync({ runId });
|
|
650
|
+
const _run = await workflow.createRunAsync({ runId, resourceId: run.resourceId });
|
|
520
651
|
await _run.sendEvent(event, data);
|
|
521
652
|
return { message: "Workflow run event sent" };
|
|
522
653
|
} catch (error) {
|
|
@@ -524,6 +655,6 @@ async function sendWorkflowRunEventHandler({
|
|
|
524
655
|
}
|
|
525
656
|
}
|
|
526
657
|
|
|
527
|
-
export { cancelWorkflowRunHandler, createWorkflowRunHandler, getWorkflowByIdHandler, getWorkflowRunByIdHandler, getWorkflowRunExecutionResultHandler, getWorkflowRunsHandler, getWorkflowsHandler, resumeAsyncWorkflowHandler, resumeWorkflowHandler, sendWorkflowRunEventHandler, startAsyncWorkflowHandler, startWorkflowRunHandler, streamVNextWorkflowHandler, streamWorkflowHandler, watchWorkflowHandler, workflows_exports };
|
|
528
|
-
//# sourceMappingURL=chunk-
|
|
529
|
-
//# sourceMappingURL=chunk-
|
|
658
|
+
export { cancelWorkflowRunHandler, createWorkflowRunHandler, getWorkflowByIdHandler, getWorkflowRunByIdHandler, getWorkflowRunExecutionResultHandler, getWorkflowRunsHandler, getWorkflowsHandler, observeStreamVNextWorkflowHandler, observeStreamWorkflowHandler, resumeAsyncWorkflowHandler, resumeStreamWorkflowHandler, resumeWorkflowHandler, sendWorkflowRunEventHandler, startAsyncWorkflowHandler, startWorkflowRunHandler, streamVNextWorkflowHandler, streamWorkflowHandler, watchWorkflowHandler, workflows_exports };
|
|
659
|
+
//# sourceMappingURL=chunk-DB63UMTV.js.map
|
|
660
|
+
//# sourceMappingURL=chunk-DB63UMTV.js.map
|