@mastra/server 0.0.0-share-agent-metadata-with-cloud-20250718110128 → 0.0.0-sidebar-window-undefined-fix-20251029233656

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.
Files changed (274) hide show
  1. package/CHANGELOG.md +4200 -0
  2. package/README.md +0 -5
  3. package/dist/chunk-2P4VRXBT.js +533 -0
  4. package/dist/chunk-2P4VRXBT.js.map +1 -0
  5. package/dist/chunk-2PLXW4ZX.cjs +2777 -0
  6. package/dist/chunk-2PLXW4ZX.cjs.map +1 -0
  7. package/dist/chunk-2S4IMB6E.cjs +130 -0
  8. package/dist/chunk-2S4IMB6E.cjs.map +1 -0
  9. package/dist/chunk-3SNGNFUJ.cjs +128 -0
  10. package/dist/chunk-3SNGNFUJ.cjs.map +1 -0
  11. package/dist/{chunk-RSEO4XPX.js → chunk-4QCXUEAT.js} +11 -2
  12. package/dist/chunk-4QCXUEAT.js.map +1 -0
  13. package/dist/chunk-6VPAV4ZV.js +692 -0
  14. package/dist/chunk-6VPAV4ZV.js.map +1 -0
  15. package/dist/chunk-7HCPO76Z.js +19548 -0
  16. package/dist/chunk-7HCPO76Z.js.map +1 -0
  17. package/dist/{chunk-2KZFMI6P.cjs → chunk-7NADHFD2.cjs} +2 -0
  18. package/dist/chunk-7NADHFD2.cjs.map +1 -0
  19. package/dist/{chunk-4D66QEKC.js → chunk-ABRFV4XP.js} +5 -3
  20. package/dist/chunk-ABRFV4XP.js.map +1 -0
  21. package/dist/{chunk-LRCAAFUA.js → chunk-AHB4JCIQ.js} +50 -12
  22. package/dist/chunk-AHB4JCIQ.js.map +1 -0
  23. package/dist/chunk-AW5BU3RQ.js +192 -0
  24. package/dist/chunk-AW5BU3RQ.js.map +1 -0
  25. package/dist/chunk-B7QWVGQQ.cjs +729 -0
  26. package/dist/chunk-B7QWVGQQ.cjs.map +1 -0
  27. package/dist/chunk-BATEJLED.js +124 -0
  28. package/dist/chunk-BATEJLED.js.map +1 -0
  29. package/dist/chunk-CJFKRVED.cjs +134 -0
  30. package/dist/chunk-CJFKRVED.cjs.map +1 -0
  31. package/dist/{chunk-LF7P5PLR.js → chunk-CY4TP3FK.js} +3 -1
  32. package/dist/chunk-CY4TP3FK.js.map +1 -0
  33. package/dist/{chunk-7TP2LX5L.cjs → chunk-EP3JQDPD.cjs} +20 -18
  34. package/dist/chunk-EP3JQDPD.cjs.map +1 -0
  35. package/dist/chunk-G4PUALCE.cjs +28 -0
  36. package/dist/chunk-G4PUALCE.cjs.map +1 -0
  37. package/dist/chunk-GDUKGVFI.cjs +550 -0
  38. package/dist/chunk-GDUKGVFI.cjs.map +1 -0
  39. package/dist/chunk-GU4EWMZB.cjs +769 -0
  40. package/dist/chunk-GU4EWMZB.cjs.map +1 -0
  41. package/dist/{chunk-JMLYCXMK.cjs → chunk-I3C4ODGV.cjs} +48 -45
  42. package/dist/chunk-I3C4ODGV.cjs.map +1 -0
  43. package/dist/{chunk-SDPGVWQJ.cjs → chunk-K5T5A3AL.cjs} +110 -137
  44. package/dist/chunk-K5T5A3AL.cjs.map +1 -0
  45. package/dist/chunk-KDUHLUK4.cjs +19584 -0
  46. package/dist/chunk-KDUHLUK4.cjs.map +1 -0
  47. package/dist/chunk-KSFLUEWV.js +130 -0
  48. package/dist/chunk-KSFLUEWV.js.map +1 -0
  49. package/dist/chunk-LF2ZLOFP.js +767 -0
  50. package/dist/chunk-LF2ZLOFP.js.map +1 -0
  51. package/dist/{chunk-5PQQ42EZ.js → chunk-LLUOPR3J.js} +13 -10
  52. package/dist/chunk-LLUOPR3J.js.map +1 -0
  53. package/dist/chunk-LPM6BBAX.cjs +1043 -0
  54. package/dist/chunk-LPM6BBAX.cjs.map +1 -0
  55. package/dist/{chunk-LCM566I4.js → chunk-MMROOK5J.js} +2 -0
  56. package/dist/chunk-MMROOK5J.js.map +1 -0
  57. package/dist/{chunk-GHC4YV6R.js → chunk-MN2TZQ7I.js} +109 -136
  58. package/dist/chunk-MN2TZQ7I.js.map +1 -0
  59. package/dist/{chunk-WNVFNNWN.js → chunk-MYR4PVGN.js} +5 -3
  60. package/dist/chunk-MYR4PVGN.js.map +1 -0
  61. package/dist/chunk-O7I5CWRX.cjs +44 -0
  62. package/dist/chunk-O7I5CWRX.cjs.map +1 -0
  63. package/dist/chunk-PR4QN5HX.js +39 -0
  64. package/dist/chunk-PR4QN5HX.js.map +1 -0
  65. package/dist/{chunk-KHZKYUNR.js → chunk-QQXMIP6C.js} +23 -13
  66. package/dist/chunk-QQXMIP6C.js.map +1 -0
  67. package/dist/chunk-QU6N55W6.cjs +256 -0
  68. package/dist/chunk-QU6N55W6.cjs.map +1 -0
  69. package/dist/{chunk-PZQDCRPV.cjs → chunk-RE4RPXT2.cjs} +4 -2
  70. package/dist/chunk-RE4RPXT2.cjs.map +1 -0
  71. package/dist/chunk-RQK4FQUD.js +1012 -0
  72. package/dist/chunk-RQK4FQUD.js.map +1 -0
  73. package/dist/chunk-SHWNNZBL.js +254 -0
  74. package/dist/chunk-SHWNNZBL.js.map +1 -0
  75. package/dist/chunk-SPRRK3P7.cjs +200 -0
  76. package/dist/chunk-SPRRK3P7.cjs.map +1 -0
  77. package/dist/chunk-TOCYBDP2.js +46 -0
  78. package/dist/chunk-TOCYBDP2.js.map +1 -0
  79. package/dist/chunk-TRGAMKHX.cjs +167 -0
  80. package/dist/chunk-TRGAMKHX.cjs.map +1 -0
  81. package/dist/chunk-X6C7BUWN.cjs +48 -0
  82. package/dist/chunk-X6C7BUWN.cjs.map +1 -0
  83. package/dist/{chunk-QGX47B5D.cjs → chunk-XN74I6VW.cjs} +11 -9
  84. package/dist/chunk-XN74I6VW.cjs.map +1 -0
  85. package/dist/chunk-YSHNCC6F.cjs +713 -0
  86. package/dist/chunk-YSHNCC6F.cjs.map +1 -0
  87. package/dist/{chunk-H7DMHBKY.js → chunk-ZLBL4NQC.js} +307 -98
  88. package/dist/chunk-ZLBL4NQC.js.map +1 -0
  89. package/dist/chunk-ZULZ2752.js +2774 -0
  90. package/dist/chunk-ZULZ2752.js.map +1 -0
  91. package/dist/dist-4MVGNSRL.cjs +1150 -0
  92. package/dist/dist-4MVGNSRL.cjs.map +1 -0
  93. package/dist/dist-FZYCV3VB.cjs +940 -0
  94. package/dist/dist-FZYCV3VB.cjs.map +1 -0
  95. package/dist/dist-G2BYZJOC.cjs +928 -0
  96. package/dist/dist-G2BYZJOC.cjs.map +1 -0
  97. package/dist/dist-P4MXBQ3U.cjs +16 -0
  98. package/dist/dist-P4MXBQ3U.cjs.map +1 -0
  99. package/dist/dist-PQZUVLPC.js +937 -0
  100. package/dist/dist-PQZUVLPC.js.map +1 -0
  101. package/dist/dist-R7WYX6LC.js +925 -0
  102. package/dist/dist-R7WYX6LC.js.map +1 -0
  103. package/dist/dist-RFMYFILX.cjs +764 -0
  104. package/dist/dist-RFMYFILX.cjs.map +1 -0
  105. package/dist/dist-X7XR3M3Z.js +1147 -0
  106. package/dist/dist-X7XR3M3Z.js.map +1 -0
  107. package/dist/dist-XVBSOGFK.js +761 -0
  108. package/dist/dist-XVBSOGFK.js.map +1 -0
  109. package/dist/dist-YREX2TJT.js +3 -0
  110. package/dist/dist-YREX2TJT.js.map +1 -0
  111. package/dist/index.cjs +6 -0
  112. package/dist/index.cjs.map +1 -0
  113. package/dist/index.d.ts +1 -0
  114. package/dist/index.d.ts.map +1 -0
  115. package/dist/index.js +5 -0
  116. package/dist/index.js.map +1 -0
  117. package/dist/server/a2a/protocol.d.ts +8 -0
  118. package/dist/server/a2a/protocol.d.ts.map +1 -0
  119. package/dist/server/a2a/store.cjs +25 -0
  120. package/dist/server/a2a/store.cjs.map +1 -0
  121. package/dist/server/a2a/store.d.ts +14 -0
  122. package/dist/server/a2a/store.d.ts.map +1 -0
  123. package/dist/server/a2a/store.js +23 -0
  124. package/dist/server/a2a/store.js.map +1 -0
  125. package/dist/server/a2a/tasks.d.ts +20 -0
  126. package/dist/server/a2a/tasks.d.ts.map +1 -0
  127. package/dist/server/handlers/a2a.cjs +13 -11
  128. package/dist/server/handlers/a2a.cjs.map +1 -0
  129. package/dist/server/handlers/a2a.d.ts +68 -6
  130. package/dist/server/handlers/a2a.d.ts.map +1 -0
  131. package/dist/server/handlers/a2a.js +3 -1
  132. package/dist/server/handlers/a2a.js.map +1 -0
  133. package/dist/server/handlers/agent-builder.cjs +68 -0
  134. package/dist/server/handlers/agent-builder.cjs.map +1 -0
  135. package/dist/server/handlers/agent-builder.d.ts +94 -0
  136. package/dist/server/handlers/agent-builder.d.ts.map +1 -0
  137. package/dist/server/handlers/agent-builder.js +3 -0
  138. package/dist/server/handlers/agent-builder.js.map +1 -0
  139. package/dist/server/handlers/agents.cjs +61 -7
  140. package/dist/server/handlers/agents.cjs.map +1 -0
  141. package/dist/server/handlers/agents.d.ts +208 -6
  142. package/dist/server/handlers/agents.d.ts.map +1 -0
  143. package/dist/server/handlers/agents.js +3 -1
  144. package/dist/server/handlers/agents.js.map +1 -0
  145. package/dist/server/handlers/error.cjs +4 -2
  146. package/dist/server/handlers/error.cjs.map +1 -0
  147. package/dist/server/handlers/error.d.ts +2 -1
  148. package/dist/server/handlers/error.d.ts.map +1 -0
  149. package/dist/server/handlers/error.js +3 -1
  150. package/dist/server/handlers/error.js.map +1 -0
  151. package/dist/server/handlers/legacyWorkflows.cjs +13 -11
  152. package/dist/server/handlers/legacyWorkflows.cjs.map +1 -0
  153. package/dist/server/handlers/legacyWorkflows.d.ts +59 -10
  154. package/dist/server/handlers/legacyWorkflows.d.ts.map +1 -0
  155. package/dist/server/handlers/legacyWorkflows.js +3 -1
  156. package/dist/server/handlers/legacyWorkflows.js.map +1 -0
  157. package/dist/server/handlers/logs.cjs +6 -4
  158. package/dist/server/handlers/logs.cjs.map +1 -0
  159. package/dist/server/handlers/logs.d.ts +34 -3
  160. package/dist/server/handlers/logs.d.ts.map +1 -0
  161. package/dist/server/handlers/logs.js +3 -1
  162. package/dist/server/handlers/logs.js.map +1 -0
  163. package/dist/server/handlers/memory.cjs +33 -11
  164. package/dist/server/handlers/memory.cjs.map +1 -0
  165. package/dist/server/handlers/memory.d.ts +118 -10
  166. package/dist/server/handlers/memory.d.ts.map +1 -0
  167. package/dist/server/handlers/memory.js +3 -1
  168. package/dist/server/handlers/memory.js.map +1 -0
  169. package/dist/server/handlers/observability.cjs +24 -0
  170. package/dist/server/handlers/observability.cjs.map +1 -0
  171. package/dist/server/handlers/observability.d.ts +49 -0
  172. package/dist/server/handlers/observability.d.ts.map +1 -0
  173. package/dist/server/handlers/observability.js +3 -0
  174. package/dist/server/handlers/observability.js.map +1 -0
  175. package/dist/server/handlers/scores.cjs +32 -0
  176. package/dist/server/handlers/scores.cjs.map +1 -0
  177. package/dist/server/handlers/scores.d.ts +152 -0
  178. package/dist/server/handlers/scores.d.ts.map +1 -0
  179. package/dist/server/handlers/scores.js +3 -0
  180. package/dist/server/handlers/scores.js.map +1 -0
  181. package/dist/server/handlers/tools.cjs +11 -5
  182. package/dist/server/handlers/tools.cjs.map +1 -0
  183. package/dist/server/handlers/tools.d.ts +25 -4
  184. package/dist/server/handlers/tools.d.ts.map +1 -0
  185. package/dist/server/handlers/tools.js +3 -1
  186. package/dist/server/handlers/tools.js.map +1 -0
  187. package/dist/server/handlers/utils.cjs +8 -2
  188. package/dist/server/handlers/utils.cjs.map +1 -0
  189. package/dist/server/handlers/utils.d.ts +8 -1
  190. package/dist/server/handlers/utils.d.ts.map +1 -0
  191. package/dist/server/handlers/utils.js +3 -1
  192. package/dist/server/handlers/utils.js.map +1 -0
  193. package/dist/server/handlers/vector.cjs +9 -7
  194. package/dist/server/handlers/vector.cjs.map +1 -0
  195. package/dist/server/handlers/vector.d.ts +51 -6
  196. package/dist/server/handlers/vector.d.ts.map +1 -0
  197. package/dist/server/handlers/vector.js +3 -1
  198. package/dist/server/handlers/vector.js.map +1 -0
  199. package/dist/server/handlers/voice.cjs +7 -5
  200. package/dist/server/handlers/voice.cjs.map +1 -0
  201. package/dist/server/handlers/voice.d.ts +41 -4
  202. package/dist/server/handlers/voice.d.ts.map +1 -0
  203. package/dist/server/handlers/voice.js +3 -1
  204. package/dist/server/handlers/voice.js.map +1 -0
  205. package/dist/server/handlers/workflows.cjs +41 -15
  206. package/dist/server/handlers/workflows.cjs.map +1 -0
  207. package/dist/server/handlers/workflows.d.ts +97 -14
  208. package/dist/server/handlers/workflows.d.ts.map +1 -0
  209. package/dist/server/handlers/workflows.js +3 -1
  210. package/dist/server/handlers/workflows.js.map +1 -0
  211. package/dist/server/handlers.cjs +38 -31
  212. package/dist/server/handlers.cjs.map +1 -0
  213. package/dist/server/handlers.d.ts +13 -11
  214. package/dist/server/handlers.d.ts.map +1 -0
  215. package/dist/server/handlers.js +14 -11
  216. package/dist/server/handlers.js.map +1 -0
  217. package/dist/server/http-exception.d.ts +87 -0
  218. package/dist/server/http-exception.d.ts.map +1 -0
  219. package/dist/server/types.d.ts +10 -0
  220. package/dist/server/types.d.ts.map +1 -0
  221. package/dist/server/utils.d.ts +44 -0
  222. package/dist/server/utils.d.ts.map +1 -0
  223. package/dist/token-375W3LEI.cjs +64 -0
  224. package/dist/token-375W3LEI.cjs.map +1 -0
  225. package/dist/token-C3IMNCC4.js +62 -0
  226. package/dist/token-C3IMNCC4.js.map +1 -0
  227. package/dist/token-util-CV3RRG6K.cjs +9 -0
  228. package/dist/token-util-CV3RRG6K.cjs.map +1 -0
  229. package/dist/token-util-E5QO2RCL.js +7 -0
  230. package/dist/token-util-E5QO2RCL.js.map +1 -0
  231. package/package.json +37 -14
  232. package/dist/_tsup-dts-rollup.d.cts +0 -1107
  233. package/dist/_tsup-dts-rollup.d.ts +0 -1107
  234. package/dist/chunk-2SLFAFTR.cjs +0 -148
  235. package/dist/chunk-3CNDE7QY.cjs +0 -308
  236. package/dist/chunk-75ZPJI57.cjs +0 -9
  237. package/dist/chunk-B2PAS2IB.cjs +0 -514
  238. package/dist/chunk-BK4XT6EG.js +0 -270
  239. package/dist/chunk-CCGRCYWJ.cjs +0 -18
  240. package/dist/chunk-CRCR3ZUK.js +0 -142
  241. package/dist/chunk-FRVBFMO2.cjs +0 -128
  242. package/dist/chunk-G7KH752Y.cjs +0 -145
  243. package/dist/chunk-KOHWJYJT.js +0 -296
  244. package/dist/chunk-LI436ITD.cjs +0 -2042
  245. package/dist/chunk-LZ3VJXSO.cjs +0 -278
  246. package/dist/chunk-MEGCYGBU.js +0 -2039
  247. package/dist/chunk-MLKGABMK.js +0 -7
  248. package/dist/chunk-RG473F6Y.js +0 -141
  249. package/dist/chunk-RHSWAXKB.cjs +0 -118
  250. package/dist/index.d.cts +0 -1
  251. package/dist/server/handlers/a2a.d.cts +0 -6
  252. package/dist/server/handlers/agents.d.cts +0 -6
  253. package/dist/server/handlers/error.d.cts +0 -1
  254. package/dist/server/handlers/legacyWorkflows.d.cts +0 -10
  255. package/dist/server/handlers/logs.d.cts +0 -3
  256. package/dist/server/handlers/memory.d.cts +0 -10
  257. package/dist/server/handlers/network.cjs +0 -22
  258. package/dist/server/handlers/network.d.cts +0 -4
  259. package/dist/server/handlers/network.d.ts +0 -4
  260. package/dist/server/handlers/network.js +0 -1
  261. package/dist/server/handlers/telemetry.cjs +0 -14
  262. package/dist/server/handlers/telemetry.d.cts +0 -2
  263. package/dist/server/handlers/telemetry.d.ts +0 -2
  264. package/dist/server/handlers/telemetry.js +0 -1
  265. package/dist/server/handlers/tools.d.cts +0 -4
  266. package/dist/server/handlers/utils.d.cts +0 -1
  267. package/dist/server/handlers/vNextNetwork.cjs +0 -218
  268. package/dist/server/handlers/vNextNetwork.d.cts +0 -6
  269. package/dist/server/handlers/vNextNetwork.d.ts +0 -6
  270. package/dist/server/handlers/vNextNetwork.js +0 -211
  271. package/dist/server/handlers/vector.d.cts +0 -6
  272. package/dist/server/handlers/voice.d.cts +0 -4
  273. package/dist/server/handlers/workflows.d.cts +0 -14
  274. package/dist/server/handlers.d.cts +0 -11
@@ -1,8 +1,8 @@
1
- import { stringify, esm_default } from './chunk-MEGCYGBU.js';
2
- import { handleError } from './chunk-LF7P5PLR.js';
3
- import { HTTPException } from './chunk-LCM566I4.js';
4
- import { __export } from './chunk-MLKGABMK.js';
5
- import { ReadableStream } from 'stream/web';
1
+ import { getWorkflowInfo, WorkflowRegistry } from './chunk-KSFLUEWV.js';
2
+ import { handleError } from './chunk-CY4TP3FK.js';
3
+ import { HTTPException } from './chunk-MMROOK5J.js';
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,56 +14,25 @@ __export(workflows_exports, {
14
14
  getWorkflowRunExecutionResultHandler: () => getWorkflowRunExecutionResultHandler,
15
15
  getWorkflowRunsHandler: () => getWorkflowRunsHandler,
16
16
  getWorkflowsHandler: () => getWorkflowsHandler,
17
+ observeStreamLegacyWorkflowHandler: () => observeStreamLegacyWorkflowHandler,
18
+ observeStreamVNextWorkflowHandler: () => observeStreamVNextWorkflowHandler,
19
+ observeStreamWorkflowHandler: () => observeStreamWorkflowHandler,
17
20
  resumeAsyncWorkflowHandler: () => resumeAsyncWorkflowHandler,
21
+ resumeStreamWorkflowHandler: () => resumeStreamWorkflowHandler,
18
22
  resumeWorkflowHandler: () => resumeWorkflowHandler,
19
23
  sendWorkflowRunEventHandler: () => sendWorkflowRunEventHandler,
20
24
  startAsyncWorkflowHandler: () => startAsyncWorkflowHandler,
21
25
  startWorkflowRunHandler: () => startWorkflowRunHandler,
26
+ streamLegacyWorkflowHandler: () => streamLegacyWorkflowHandler,
27
+ streamVNextWorkflowHandler: () => streamVNextWorkflowHandler,
22
28
  streamWorkflowHandler: () => streamWorkflowHandler,
23
29
  watchWorkflowHandler: () => watchWorkflowHandler
24
30
  });
25
- function getSteps(steps, path) {
26
- return Object.entries(steps).reduce((acc, [key, step]) => {
27
- const fullKey = path ? `${path}.${key}` : key;
28
- acc[fullKey] = {
29
- id: step.id,
30
- description: step.description,
31
- inputSchema: step.inputSchema ? stringify(esm_default(step.inputSchema)) : void 0,
32
- outputSchema: step.outputSchema ? stringify(esm_default(step.outputSchema)) : void 0,
33
- resumeSchema: step.resumeSchema ? stringify(esm_default(step.resumeSchema)) : void 0,
34
- suspendSchema: step.suspendSchema ? stringify(esm_default(step.suspendSchema)) : void 0,
35
- isWorkflow: step.component === "WORKFLOW"
36
- };
37
- if (step.component === "WORKFLOW" && step.steps) {
38
- const nestedSteps = getSteps(step.steps, fullKey) || {};
39
- acc = { ...acc, ...nestedSteps };
40
- }
41
- return acc;
42
- }, {});
43
- }
44
31
  async function getWorkflowsHandler({ mastra }) {
45
32
  try {
46
33
  const workflows = mastra.getWorkflows({ serialized: false });
47
34
  const _workflows = Object.entries(workflows).reduce((acc, [key, workflow]) => {
48
- acc[key] = {
49
- name: workflow.name,
50
- description: workflow.description,
51
- steps: Object.entries(workflow.steps).reduce((acc2, [key2, step]) => {
52
- acc2[key2] = {
53
- id: step.id,
54
- description: step.description,
55
- inputSchema: step.inputSchema ? stringify(esm_default(step.inputSchema)) : void 0,
56
- outputSchema: step.outputSchema ? stringify(esm_default(step.outputSchema)) : void 0,
57
- resumeSchema: step.resumeSchema ? stringify(esm_default(step.resumeSchema)) : void 0,
58
- suspendSchema: step.suspendSchema ? stringify(esm_default(step.suspendSchema)) : void 0
59
- };
60
- return acc2;
61
- }, {}),
62
- allSteps: getSteps(workflow.steps) || {},
63
- stepGraph: workflow.serializedStepGraph,
64
- inputSchema: workflow.inputSchema ? stringify(esm_default(workflow.inputSchema)) : void 0,
65
- outputSchema: workflow.outputSchema ? stringify(esm_default(workflow.outputSchema)) : void 0
66
- };
35
+ acc[key] = getWorkflowInfo(workflow);
67
36
  return acc;
68
37
  }, {});
69
38
  return _workflows;
@@ -77,10 +46,13 @@ async function getWorkflowsFromSystem({ mastra, workflowId }) {
77
46
  throw new HTTPException(400, { message: "Workflow ID is required" });
78
47
  }
79
48
  let workflow;
80
- try {
81
- workflow = mastra.getWorkflow(workflowId);
82
- } catch (error) {
83
- logger.debug("Error getting workflow, searching agents for workflow", error);
49
+ workflow = WorkflowRegistry.getWorkflow(workflowId);
50
+ if (!workflow) {
51
+ try {
52
+ workflow = mastra.getWorkflow(workflowId);
53
+ } catch (error) {
54
+ logger.debug("Error getting workflow, searching agents for workflow", error);
55
+ }
84
56
  }
85
57
  if (!workflow) {
86
58
  logger.debug("Workflow not found, searching agents for workflow", { workflowId });
@@ -114,25 +86,7 @@ async function getWorkflowByIdHandler({ mastra, workflowId }) {
114
86
  if (!workflow) {
115
87
  throw new HTTPException(404, { message: "Workflow not found" });
116
88
  }
117
- return {
118
- steps: Object.entries(workflow.steps).reduce((acc, [key, step]) => {
119
- acc[key] = {
120
- id: step.id,
121
- description: step.description,
122
- inputSchema: step.inputSchema ? stringify(esm_default(step.inputSchema)) : void 0,
123
- outputSchema: step.outputSchema ? stringify(esm_default(step.outputSchema)) : void 0,
124
- resumeSchema: step.resumeSchema ? stringify(esm_default(step.resumeSchema)) : void 0,
125
- suspendSchema: step.suspendSchema ? stringify(esm_default(step.suspendSchema)) : void 0
126
- };
127
- return acc;
128
- }, {}),
129
- allSteps: getSteps(workflow.steps) || {},
130
- name: workflow.name,
131
- description: workflow.description,
132
- stepGraph: workflow.serializedStepGraph,
133
- inputSchema: workflow.inputSchema ? stringify(esm_default(workflow.inputSchema)) : void 0,
134
- outputSchema: workflow.outputSchema ? stringify(esm_default(workflow.outputSchema)) : void 0
135
- };
89
+ return getWorkflowInfo(workflow);
136
90
  } catch (error) {
137
91
  return handleError(error, "Error getting workflow");
138
92
  }
@@ -211,7 +165,8 @@ async function startAsyncWorkflowHandler({
211
165
  runtimeContext,
212
166
  workflowId,
213
167
  runId,
214
- inputData
168
+ inputData,
169
+ tracingOptions
215
170
  }) {
216
171
  try {
217
172
  if (!workflowId) {
@@ -224,7 +179,8 @@ async function startAsyncWorkflowHandler({
224
179
  const _run = await workflow.createRunAsync({ runId });
225
180
  const result = await _run.start({
226
181
  inputData,
227
- runtimeContext
182
+ runtimeContext,
183
+ tracingOptions
228
184
  });
229
185
  return result;
230
186
  } catch (error) {
@@ -236,7 +192,8 @@ async function startWorkflowRunHandler({
236
192
  runtimeContext,
237
193
  workflowId,
238
194
  runId,
239
- inputData
195
+ inputData,
196
+ tracingOptions
240
197
  }) {
241
198
  try {
242
199
  if (!workflowId) {
@@ -253,10 +210,11 @@ async function startWorkflowRunHandler({
253
210
  if (!run) {
254
211
  throw new HTTPException(404, { message: "Workflow run not found" });
255
212
  }
256
- const _run = await workflow.createRunAsync({ runId });
213
+ const _run = await workflow.createRunAsync({ runId, resourceId: run.resourceId });
257
214
  void _run.start({
258
215
  inputData,
259
- runtimeContext
216
+ runtimeContext,
217
+ tracingOptions
260
218
  });
261
219
  return { message: "Workflow run started" };
262
220
  } catch (e) {
@@ -266,7 +224,8 @@ async function startWorkflowRunHandler({
266
224
  async function watchWorkflowHandler({
267
225
  mastra,
268
226
  workflowId,
269
- runId
227
+ runId,
228
+ eventType = "watch"
270
229
  }) {
271
230
  try {
272
231
  if (!workflowId) {
@@ -283,27 +242,50 @@ async function watchWorkflowHandler({
283
242
  if (!run) {
284
243
  throw new HTTPException(404, { message: "Workflow run not found" });
285
244
  }
286
- const _run = await workflow.createRunAsync({ runId });
245
+ const _run = await workflow.createRunAsync({ runId, resourceId: run.resourceId });
287
246
  let unwatch;
288
247
  let asyncRef = null;
289
248
  const stream = new ReadableStream({
290
249
  start(controller) {
291
- unwatch = _run.watch(({ type, payload, eventTimestamp }) => {
292
- controller.enqueue(JSON.stringify({ type, payload, eventTimestamp, runId }));
293
- if (asyncRef) {
294
- clearImmediate(asyncRef);
295
- asyncRef = null;
296
- }
297
- asyncRef = setImmediate(async () => {
298
- const runDone = payload.workflowState.status !== "running";
299
- if (runDone) {
300
- controller.close();
301
- unwatch?.();
250
+ if (eventType === "watch") {
251
+ unwatch = _run.watch((event) => {
252
+ const { type, payload, eventTimestamp } = event;
253
+ controller.enqueue(JSON.stringify({ type, payload, eventTimestamp, runId }));
254
+ if (asyncRef) {
255
+ clearImmediate(asyncRef);
256
+ asyncRef = null;
302
257
  }
303
- });
304
- });
258
+ asyncRef = setImmediate(async () => {
259
+ const runDone = payload.workflowState?.status !== "running";
260
+ if (runDone) {
261
+ controller.close();
262
+ unwatch?.();
263
+ }
264
+ });
265
+ }, eventType);
266
+ } else {
267
+ unwatch = _run.watch((event) => {
268
+ const { type, payload } = event;
269
+ controller.enqueue(JSON.stringify({ type, payload, runId }));
270
+ if (asyncRef) {
271
+ clearImmediate(asyncRef);
272
+ asyncRef = null;
273
+ }
274
+ asyncRef = setImmediate(async () => {
275
+ const runDone = type === "workflow-finish";
276
+ if (runDone) {
277
+ controller.close();
278
+ unwatch?.();
279
+ }
280
+ });
281
+ }, eventType);
282
+ }
305
283
  },
306
284
  cancel() {
285
+ if (asyncRef) {
286
+ clearImmediate(asyncRef);
287
+ asyncRef = null;
288
+ }
307
289
  unwatch?.();
308
290
  }
309
291
  });
@@ -317,7 +299,18 @@ async function streamWorkflowHandler({
317
299
  runtimeContext,
318
300
  workflowId,
319
301
  runId,
320
- inputData
302
+ inputData,
303
+ tracingOptions
304
+ }) {
305
+ return streamVNextWorkflowHandler({ mastra, workflowId, runId, inputData, runtimeContext, tracingOptions });
306
+ }
307
+ async function streamLegacyWorkflowHandler({
308
+ mastra,
309
+ runtimeContext,
310
+ workflowId,
311
+ runId,
312
+ inputData,
313
+ tracingOptions
321
314
  }) {
322
315
  try {
323
316
  if (!workflowId) {
@@ -330,22 +323,183 @@ async function streamWorkflowHandler({
330
323
  if (!workflow) {
331
324
  throw new HTTPException(404, { message: "Workflow not found" });
332
325
  }
326
+ const serverCache = mastra.getServerCache();
333
327
  const run = await workflow.createRunAsync({ runId });
334
- const result = run.stream({
328
+ const result = run.streamLegacy({
335
329
  inputData,
336
- runtimeContext
330
+ runtimeContext,
331
+ onChunk: async (chunk) => {
332
+ if (serverCache) {
333
+ const cacheKey = runId;
334
+ await serverCache.listPush(cacheKey, chunk);
335
+ }
336
+ },
337
+ tracingOptions
337
338
  });
338
339
  return result;
339
340
  } catch (error) {
340
341
  return handleError(error, "Error executing workflow");
341
342
  }
342
343
  }
344
+ async function observeStreamLegacyWorkflowHandler({
345
+ mastra,
346
+ workflowId,
347
+ runId
348
+ }) {
349
+ try {
350
+ if (!workflowId) {
351
+ throw new HTTPException(400, { message: "Workflow ID is required" });
352
+ }
353
+ if (!runId) {
354
+ throw new HTTPException(400, { message: "runId required to observe workflow stream" });
355
+ }
356
+ const { workflow } = await getWorkflowsFromSystem({ mastra, workflowId });
357
+ if (!workflow) {
358
+ throw new HTTPException(404, { message: "Workflow not found" });
359
+ }
360
+ const run = await workflow.getWorkflowRunById(runId);
361
+ if (!run) {
362
+ throw new HTTPException(404, { message: "Workflow run not found" });
363
+ }
364
+ const _run = await workflow.createRunAsync({ runId, resourceId: run.resourceId });
365
+ const serverCache = mastra.getServerCache();
366
+ if (!serverCache) {
367
+ throw new HTTPException(500, { message: "Server cache not found" });
368
+ }
369
+ const transformStream = new TransformStream();
370
+ const writer = transformStream.writable.getWriter();
371
+ const cachedRunChunks = await serverCache.listFromTo(runId, 0);
372
+ for (const chunk of cachedRunChunks) {
373
+ await writer.write(chunk);
374
+ }
375
+ writer.releaseLock();
376
+ const result = _run.observeStreamLegacy();
377
+ return result.stream?.pipeThrough(transformStream);
378
+ } catch (error) {
379
+ return handleError(error, "Error observing workflow stream");
380
+ }
381
+ }
382
+ async function observeStreamWorkflowHandler({
383
+ mastra,
384
+ workflowId,
385
+ runId
386
+ }) {
387
+ return observeStreamVNextWorkflowHandler({ mastra, workflowId, runId });
388
+ }
389
+ async function streamVNextWorkflowHandler({
390
+ mastra,
391
+ runtimeContext,
392
+ workflowId,
393
+ runId,
394
+ inputData,
395
+ closeOnSuspend,
396
+ tracingOptions
397
+ }) {
398
+ try {
399
+ if (!workflowId) {
400
+ throw new HTTPException(400, { message: "Workflow ID is required" });
401
+ }
402
+ if (!runId) {
403
+ throw new HTTPException(400, { message: "runId required to stream workflow" });
404
+ }
405
+ const { workflow } = await getWorkflowsFromSystem({ mastra, workflowId });
406
+ if (!workflow) {
407
+ throw new HTTPException(404, { message: "Workflow not found" });
408
+ }
409
+ const serverCache = mastra.getServerCache();
410
+ const run = await workflow.createRunAsync({ runId });
411
+ const result = run.stream({
412
+ inputData,
413
+ runtimeContext,
414
+ closeOnSuspend,
415
+ tracingOptions
416
+ });
417
+ return result.fullStream.pipeThrough(
418
+ new TransformStream({
419
+ transform(chunk, controller) {
420
+ if (serverCache) {
421
+ const cacheKey = runId;
422
+ serverCache.listPush(cacheKey, chunk).catch(() => {
423
+ });
424
+ }
425
+ controller.enqueue(chunk);
426
+ }
427
+ })
428
+ );
429
+ } catch (error) {
430
+ return handleError(error, "Error streaming workflow");
431
+ }
432
+ }
433
+ async function observeStreamVNextWorkflowHandler({
434
+ mastra,
435
+ workflowId,
436
+ runId
437
+ }) {
438
+ try {
439
+ if (!workflowId) {
440
+ throw new HTTPException(400, { message: "Workflow ID is required" });
441
+ }
442
+ if (!runId) {
443
+ throw new HTTPException(400, { message: "runId required to observe workflow stream" });
444
+ }
445
+ const { workflow } = await getWorkflowsFromSystem({ mastra, workflowId });
446
+ if (!workflow) {
447
+ throw new HTTPException(404, { message: "Workflow not found" });
448
+ }
449
+ const run = await workflow.getWorkflowRunById(runId);
450
+ if (!run) {
451
+ throw new HTTPException(404, { message: "Workflow run not found" });
452
+ }
453
+ const _run = await workflow.createRunAsync({ runId, resourceId: run.resourceId });
454
+ const serverCache = mastra.getServerCache();
455
+ if (!serverCache) {
456
+ throw new HTTPException(500, { message: "Server cache not found" });
457
+ }
458
+ const cachedRunChunks = await serverCache.listFromTo(runId, 0);
459
+ const combinedStream = new ReadableStream({
460
+ start(controller) {
461
+ const emitCachedChunks = async () => {
462
+ for (const chunk of cachedRunChunks) {
463
+ controller.enqueue(chunk);
464
+ }
465
+ };
466
+ const liveStream = _run.observeStream();
467
+ const reader = liveStream.getReader();
468
+ const pump = async () => {
469
+ try {
470
+ while (true) {
471
+ const { done, value } = await reader.read();
472
+ if (done) {
473
+ controller.close();
474
+ break;
475
+ }
476
+ controller.enqueue(value);
477
+ }
478
+ } catch (error) {
479
+ controller.error(error);
480
+ } finally {
481
+ reader.releaseLock();
482
+ }
483
+ };
484
+ void emitCachedChunks().then(() => {
485
+ void pump();
486
+ }).catch((error) => {
487
+ controller.error(error);
488
+ });
489
+ }
490
+ });
491
+ return combinedStream;
492
+ } catch (error) {
493
+ return handleError(error, "Error observing workflow stream");
494
+ }
495
+ }
343
496
  async function resumeAsyncWorkflowHandler({
344
497
  mastra,
345
498
  workflowId,
346
499
  runId,
347
500
  body,
348
- runtimeContext
501
+ runtimeContext,
502
+ tracingOptions
349
503
  }) {
350
504
  try {
351
505
  if (!workflowId) {
@@ -365,11 +519,12 @@ async function resumeAsyncWorkflowHandler({
365
519
  if (!run) {
366
520
  throw new HTTPException(404, { message: "Workflow run not found" });
367
521
  }
368
- const _run = await workflow.createRunAsync({ runId });
522
+ const _run = await workflow.createRunAsync({ runId, resourceId: run.resourceId });
369
523
  const result = await _run.resume({
370
524
  step: body.step,
371
525
  resumeData: body.resumeData,
372
- runtimeContext
526
+ runtimeContext,
527
+ tracingOptions
373
528
  });
374
529
  return result;
375
530
  } catch (error) {
@@ -381,7 +536,8 @@ async function resumeWorkflowHandler({
381
536
  workflowId,
382
537
  runId,
383
538
  body,
384
- runtimeContext
539
+ runtimeContext,
540
+ tracingOptions
385
541
  }) {
386
542
  try {
387
543
  if (!workflowId) {
@@ -401,17 +557,68 @@ async function resumeWorkflowHandler({
401
557
  if (!run) {
402
558
  throw new HTTPException(404, { message: "Workflow run not found" });
403
559
  }
404
- const _run = await workflow.createRunAsync({ runId });
560
+ const _run = await workflow.createRunAsync({ runId, resourceId: run.resourceId });
405
561
  void _run.resume({
406
562
  step: body.step,
407
563
  resumeData: body.resumeData,
408
- runtimeContext
564
+ runtimeContext,
565
+ tracingOptions
409
566
  });
410
567
  return { message: "Workflow run resumed" };
411
568
  } catch (error) {
412
569
  return handleError(error, "Error resuming workflow");
413
570
  }
414
571
  }
572
+ async function resumeStreamWorkflowHandler({
573
+ mastra,
574
+ workflowId,
575
+ runId,
576
+ body,
577
+ runtimeContext,
578
+ tracingOptions
579
+ }) {
580
+ try {
581
+ if (!workflowId) {
582
+ throw new HTTPException(400, { message: "Workflow ID is required" });
583
+ }
584
+ if (!runId) {
585
+ throw new HTTPException(400, { message: "runId required to resume workflow" });
586
+ }
587
+ if (!body.step) {
588
+ throw new HTTPException(400, { message: "step required to resume workflow" });
589
+ }
590
+ const { workflow } = await getWorkflowsFromSystem({ mastra, workflowId });
591
+ if (!workflow) {
592
+ throw new HTTPException(404, { message: "Workflow not found" });
593
+ }
594
+ const run = await workflow.getWorkflowRunById(runId);
595
+ if (!run) {
596
+ throw new HTTPException(404, { message: "Workflow run not found" });
597
+ }
598
+ const _run = await workflow.createRunAsync({ runId, resourceId: run.resourceId });
599
+ const serverCache = mastra.getServerCache();
600
+ const stream = _run.resumeStream({
601
+ step: body.step,
602
+ resumeData: body.resumeData,
603
+ runtimeContext,
604
+ tracingOptions
605
+ }).fullStream.pipeThrough(
606
+ new TransformStream({
607
+ transform(chunk, controller) {
608
+ if (serverCache) {
609
+ const cacheKey = runId;
610
+ serverCache.listPush(cacheKey, chunk).catch(() => {
611
+ });
612
+ }
613
+ controller.enqueue(chunk);
614
+ }
615
+ })
616
+ );
617
+ return stream;
618
+ } catch (error) {
619
+ return handleError(error, "Error resuming workflow");
620
+ }
621
+ }
415
622
  async function getWorkflowRunsHandler({
416
623
  mastra,
417
624
  workflowId,
@@ -458,7 +665,7 @@ async function cancelWorkflowRunHandler({
458
665
  if (!run) {
459
666
  throw new HTTPException(404, { message: "Workflow run not found" });
460
667
  }
461
- const _run = await workflow.createRunAsync({ runId });
668
+ const _run = await workflow.createRunAsync({ runId, resourceId: run.resourceId });
462
669
  await _run.cancel();
463
670
  return { message: "Workflow run cancelled" };
464
671
  } catch (error) {
@@ -487,7 +694,7 @@ async function sendWorkflowRunEventHandler({
487
694
  if (!run) {
488
695
  throw new HTTPException(404, { message: "Workflow run not found" });
489
696
  }
490
- const _run = await workflow.createRunAsync({ runId });
697
+ const _run = await workflow.createRunAsync({ runId, resourceId: run.resourceId });
491
698
  await _run.sendEvent(event, data);
492
699
  return { message: "Workflow run event sent" };
493
700
  } catch (error) {
@@ -495,4 +702,6 @@ async function sendWorkflowRunEventHandler({
495
702
  }
496
703
  }
497
704
 
498
- export { cancelWorkflowRunHandler, createWorkflowRunHandler, getWorkflowByIdHandler, getWorkflowRunByIdHandler, getWorkflowRunExecutionResultHandler, getWorkflowRunsHandler, getWorkflowsHandler, resumeAsyncWorkflowHandler, resumeWorkflowHandler, sendWorkflowRunEventHandler, startAsyncWorkflowHandler, startWorkflowRunHandler, streamWorkflowHandler, watchWorkflowHandler, workflows_exports };
705
+ export { cancelWorkflowRunHandler, createWorkflowRunHandler, getWorkflowByIdHandler, getWorkflowRunByIdHandler, getWorkflowRunExecutionResultHandler, getWorkflowRunsHandler, getWorkflowsHandler, observeStreamLegacyWorkflowHandler, observeStreamVNextWorkflowHandler, observeStreamWorkflowHandler, resumeAsyncWorkflowHandler, resumeStreamWorkflowHandler, resumeWorkflowHandler, sendWorkflowRunEventHandler, startAsyncWorkflowHandler, startWorkflowRunHandler, streamLegacyWorkflowHandler, streamVNextWorkflowHandler, streamWorkflowHandler, watchWorkflowHandler, workflows_exports };
706
+ //# sourceMappingURL=chunk-ZLBL4NQC.js.map
707
+ //# sourceMappingURL=chunk-ZLBL4NQC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/server/handlers/workflows.ts"],"names":[],"mappings":"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","file":"chunk-ZLBL4NQC.js","sourcesContent":["import { ReadableStream, TransformStream } from 'node:stream/web';\nimport type { TracingOptions } from '@mastra/core/ai-tracing';\nimport type { RuntimeContext } from '@mastra/core/di';\nimport type { WorkflowRuns } from '@mastra/core/storage';\nimport type {\n Workflow,\n WatchEvent,\n WorkflowInfo,\n ChunkType,\n WorkflowStreamEvent,\n StreamEvent,\n} from '@mastra/core/workflows';\nimport { HTTPException } from '../http-exception';\nimport type { Context } from '../types';\nimport { getWorkflowInfo, WorkflowRegistry } from '../utils';\nimport { handleError } from './error';\n\nexport interface WorkflowContext extends Context {\n workflowId?: string;\n runId?: string;\n}\n\nexport async function getWorkflowsHandler({ mastra }: WorkflowContext) {\n try {\n const workflows = mastra.getWorkflows({ serialized: false });\n const _workflows = Object.entries(workflows).reduce<Record<string, WorkflowInfo>>((acc, [key, workflow]) => {\n acc[key] = getWorkflowInfo(workflow);\n return acc;\n }, {});\n return _workflows;\n } catch (error) {\n return handleError(error, 'Error getting workflows');\n }\n}\n\nasync function getWorkflowsFromSystem({ mastra, workflowId }: WorkflowContext) {\n const logger = mastra.getLogger();\n\n if (!workflowId) {\n throw new HTTPException(400, { message: 'Workflow ID is required' });\n }\n\n let workflow;\n\n // First check registry for temporary workflows\n workflow = WorkflowRegistry.getWorkflow(workflowId);\n\n if (!workflow) {\n try {\n workflow = mastra.getWorkflow(workflowId);\n } catch (error) {\n logger.debug('Error getting workflow, searching agents for workflow', error);\n }\n }\n\n if (!workflow) {\n logger.debug('Workflow not found, searching agents for workflow', { workflowId });\n const agents = mastra.getAgents();\n\n if (Object.keys(agents || {}).length) {\n for (const [_, agent] of Object.entries(agents)) {\n try {\n const workflows = await agent.getWorkflows();\n\n if (workflows[workflowId]) {\n workflow = workflows[workflowId];\n break;\n }\n break;\n } catch (error) {\n logger.debug('Error getting workflow from agent', error);\n }\n }\n }\n }\n\n if (!workflow) {\n throw new HTTPException(404, { message: 'Workflow not found' });\n }\n\n return { workflow };\n}\n\nexport async function getWorkflowByIdHandler({ mastra, workflowId }: WorkflowContext): Promise<WorkflowInfo> {\n try {\n if (!workflowId) {\n throw new HTTPException(400, { message: 'Workflow ID is required' });\n }\n\n const { workflow } = await getWorkflowsFromSystem({ mastra, workflowId });\n\n if (!workflow) {\n throw new HTTPException(404, { message: 'Workflow not found' });\n }\n\n return getWorkflowInfo(workflow);\n } catch (error) {\n return handleError(error, 'Error getting workflow');\n }\n}\n\nexport async function getWorkflowRunByIdHandler({\n mastra,\n workflowId,\n runId,\n}: Pick<WorkflowContext, 'mastra' | 'workflowId' | 'runId'>): Promise<ReturnType<Workflow['getWorkflowRunById']>> {\n try {\n if (!workflowId) {\n throw new HTTPException(400, { message: 'Workflow ID is required' });\n }\n\n if (!runId) {\n throw new HTTPException(400, { message: 'Run ID is required' });\n }\n\n const { workflow } = await getWorkflowsFromSystem({ mastra, workflowId });\n\n if (!workflow) {\n throw new HTTPException(404, { message: 'Workflow not found' });\n }\n\n const run = await workflow.getWorkflowRunById(runId);\n\n if (!run) {\n throw new HTTPException(404, { message: 'Workflow run not found' });\n }\n\n return run;\n } catch (error) {\n return handleError(error, 'Error getting workflow run');\n }\n}\n\nexport async function getWorkflowRunExecutionResultHandler({\n mastra,\n workflowId,\n runId,\n}: Pick<WorkflowContext, 'mastra' | 'workflowId' | 'runId'>): Promise<WatchEvent['payload']['workflowState']> {\n try {\n if (!workflowId) {\n throw new HTTPException(400, { message: 'Workflow ID is required' });\n }\n\n if (!runId) {\n throw new HTTPException(400, { message: 'Run ID is required' });\n }\n\n const workflow = mastra.getWorkflow(workflowId);\n\n if (!workflow) {\n throw new HTTPException(404, { message: 'Workflow not found' });\n }\n\n const executionResult = await workflow.getWorkflowRunExecutionResult(runId);\n\n if (!executionResult) {\n throw new HTTPException(404, { message: 'Workflow run execution result not found' });\n }\n\n return executionResult;\n } catch (error) {\n return handleError(error, 'Error getting workflow run execution result');\n }\n}\n\nexport async function createWorkflowRunHandler({\n mastra,\n workflowId,\n runId: prevRunId,\n}: Pick<WorkflowContext, 'mastra' | 'workflowId' | 'runId'>) {\n try {\n if (!workflowId) {\n throw new HTTPException(400, { message: 'Workflow ID is required' });\n }\n\n const { workflow } = await getWorkflowsFromSystem({ mastra, workflowId });\n\n if (!workflow) {\n throw new HTTPException(404, { message: 'Workflow not found' });\n }\n\n const run = await workflow.createRunAsync({ runId: prevRunId });\n\n return { runId: run.runId };\n } catch (error) {\n return handleError(error, 'Error creating workflow run');\n }\n}\n\nexport async function startAsyncWorkflowHandler({\n mastra,\n runtimeContext,\n workflowId,\n runId,\n inputData,\n tracingOptions,\n}: Pick<WorkflowContext, 'mastra' | 'workflowId' | 'runId'> & {\n inputData?: unknown;\n runtimeContext?: RuntimeContext;\n tracingOptions?: TracingOptions;\n}) {\n try {\n if (!workflowId) {\n throw new HTTPException(400, { message: 'Workflow ID is required' });\n }\n\n const { workflow } = await getWorkflowsFromSystem({ mastra, workflowId });\n\n if (!workflow) {\n throw new HTTPException(404, { message: 'Workflow not found' });\n }\n\n const _run = await workflow.createRunAsync({ runId });\n const result = await _run.start({\n inputData,\n runtimeContext,\n tracingOptions,\n });\n return result;\n } catch (error) {\n return handleError(error, 'Error starting async workflow');\n }\n}\n\nexport async function startWorkflowRunHandler({\n mastra,\n runtimeContext,\n workflowId,\n runId,\n inputData,\n tracingOptions,\n}: Pick<WorkflowContext, 'mastra' | 'workflowId' | 'runId'> & {\n inputData?: unknown;\n runtimeContext?: RuntimeContext;\n tracingOptions?: TracingOptions;\n}) {\n try {\n if (!workflowId) {\n throw new HTTPException(400, { message: 'Workflow ID is required' });\n }\n\n if (!runId) {\n throw new HTTPException(400, { message: 'runId required to start run' });\n }\n\n const { workflow } = await getWorkflowsFromSystem({ mastra, workflowId });\n\n if (!workflow) {\n throw new HTTPException(404, { message: 'Workflow not found' });\n }\n\n const run = await workflow.getWorkflowRunById(runId);\n\n if (!run) {\n throw new HTTPException(404, { message: 'Workflow run not found' });\n }\n\n const _run = await workflow.createRunAsync({ runId, resourceId: run.resourceId });\n void _run.start({\n inputData,\n runtimeContext,\n tracingOptions,\n });\n\n return { message: 'Workflow run started' };\n } catch (e) {\n return handleError(e, 'Error starting workflow run');\n }\n}\n\nexport async function watchWorkflowHandler({\n mastra,\n workflowId,\n runId,\n eventType = 'watch',\n}: Pick<WorkflowContext, 'mastra' | 'workflowId' | 'runId'> & {\n eventType?: 'watch' | 'watch-v2';\n}): Promise<ReadableStream<string>> {\n try {\n if (!workflowId) {\n throw new HTTPException(400, { message: 'Workflow ID is required' });\n }\n\n if (!runId) {\n throw new HTTPException(400, { message: 'runId required to watch workflow' });\n }\n\n const { workflow } = await getWorkflowsFromSystem({ mastra, workflowId });\n\n if (!workflow) {\n throw new HTTPException(404, { message: 'Workflow not found' });\n }\n\n const run = await workflow.getWorkflowRunById(runId);\n\n if (!run) {\n throw new HTTPException(404, { message: 'Workflow run not found' });\n }\n\n const _run = await workflow.createRunAsync({ runId, resourceId: run.resourceId });\n let unwatch: () => void;\n let asyncRef: NodeJS.Immediate | null = null;\n const stream = new ReadableStream<string>({\n start(controller) {\n if (eventType === 'watch') {\n unwatch = _run.watch((event: WatchEvent) => {\n const { type, payload, eventTimestamp } = event;\n controller.enqueue(JSON.stringify({ type, payload, eventTimestamp, runId }));\n\n if (asyncRef) {\n clearImmediate(asyncRef);\n asyncRef = null;\n }\n\n // a run is finished if the status is not running\n asyncRef = setImmediate(async () => {\n const runDone = (payload as WatchEvent['payload']).workflowState?.status !== 'running';\n if (runDone) {\n controller.close();\n unwatch?.();\n }\n });\n }, eventType);\n } else {\n unwatch = _run.watch((event: WorkflowStreamEvent) => {\n const { type, payload } = event;\n controller.enqueue(JSON.stringify({ type, payload, runId }));\n\n if (asyncRef) {\n clearImmediate(asyncRef);\n asyncRef = null;\n }\n\n // a run is finished if the status is not running\n asyncRef = setImmediate(async () => {\n const runDone = type === 'workflow-finish';\n if (runDone) {\n controller.close();\n unwatch?.();\n }\n });\n }, eventType);\n }\n },\n cancel() {\n if (asyncRef) {\n clearImmediate(asyncRef);\n asyncRef = null;\n }\n unwatch?.();\n },\n });\n\n return stream;\n } catch (error) {\n return handleError(error, 'Error watching workflow');\n }\n}\n\nexport async function streamWorkflowHandler({\n mastra,\n runtimeContext,\n workflowId,\n runId,\n inputData,\n tracingOptions,\n}: Pick<WorkflowContext, 'mastra' | 'workflowId' | 'runId'> & {\n inputData?: unknown;\n runtimeContext?: RuntimeContext;\n tracingOptions?: TracingOptions;\n}) {\n return streamVNextWorkflowHandler({ mastra, workflowId, runId, inputData, runtimeContext, tracingOptions });\n}\n\nexport async function streamLegacyWorkflowHandler({\n mastra,\n runtimeContext,\n workflowId,\n runId,\n inputData,\n tracingOptions,\n}: Pick<WorkflowContext, 'mastra' | 'workflowId' | 'runId'> & {\n inputData?: unknown;\n runtimeContext?: RuntimeContext;\n tracingOptions?: TracingOptions;\n}) {\n try {\n if (!workflowId) {\n throw new HTTPException(400, { message: 'Workflow ID is required' });\n }\n\n if (!runId) {\n throw new HTTPException(400, { message: 'runId required to resume workflow' });\n }\n\n const { workflow } = await getWorkflowsFromSystem({ mastra, workflowId });\n\n if (!workflow) {\n throw new HTTPException(404, { message: 'Workflow not found' });\n }\n\n const serverCache = mastra.getServerCache();\n\n const run = await workflow.createRunAsync({ runId });\n const result = run.streamLegacy({\n inputData,\n runtimeContext,\n onChunk: async chunk => {\n if (serverCache) {\n const cacheKey = runId;\n await serverCache.listPush(cacheKey, chunk);\n }\n },\n tracingOptions,\n });\n\n return result;\n } catch (error) {\n return handleError(error, 'Error executing workflow');\n }\n}\n\nexport async function observeStreamLegacyWorkflowHandler({\n mastra,\n workflowId,\n runId,\n}: Pick<WorkflowContext, 'mastra' | 'workflowId' | 'runId'>) {\n try {\n if (!workflowId) {\n throw new HTTPException(400, { message: 'Workflow ID is required' });\n }\n\n if (!runId) {\n throw new HTTPException(400, { message: 'runId required to observe workflow stream' });\n }\n\n const { workflow } = await getWorkflowsFromSystem({ mastra, workflowId });\n\n if (!workflow) {\n throw new HTTPException(404, { message: 'Workflow not found' });\n }\n\n const run = await workflow.getWorkflowRunById(runId);\n\n if (!run) {\n throw new HTTPException(404, { message: 'Workflow run not found' });\n }\n\n const _run = await workflow.createRunAsync({ runId, resourceId: run.resourceId });\n const serverCache = mastra.getServerCache();\n if (!serverCache) {\n throw new HTTPException(500, { message: 'Server cache not found' });\n }\n\n const transformStream = new TransformStream<StreamEvent, StreamEvent>();\n\n const writer = transformStream.writable.getWriter();\n\n const cachedRunChunks = await serverCache.listFromTo(runId, 0);\n\n for (const chunk of cachedRunChunks) {\n await writer.write(chunk as any);\n }\n\n writer.releaseLock();\n\n const result = _run.observeStreamLegacy();\n return result.stream?.pipeThrough(transformStream);\n } catch (error) {\n return handleError(error, 'Error observing workflow stream');\n }\n}\n\nexport async function observeStreamWorkflowHandler({\n mastra,\n workflowId,\n runId,\n}: Pick<WorkflowContext, 'mastra' | 'workflowId' | 'runId'>) {\n return observeStreamVNextWorkflowHandler({ mastra, workflowId, runId });\n}\n\nexport async function streamVNextWorkflowHandler({\n mastra,\n runtimeContext,\n workflowId,\n runId,\n inputData,\n closeOnSuspend,\n tracingOptions,\n}: Pick<WorkflowContext, 'mastra' | 'workflowId' | 'runId'> & {\n inputData?: unknown;\n runtimeContext?: RuntimeContext;\n closeOnSuspend?: boolean;\n tracingOptions?: TracingOptions;\n}) {\n try {\n if (!workflowId) {\n throw new HTTPException(400, { message: 'Workflow ID is required' });\n }\n\n if (!runId) {\n throw new HTTPException(400, { message: 'runId required to stream workflow' });\n }\n\n const { workflow } = await getWorkflowsFromSystem({ mastra, workflowId });\n\n if (!workflow) {\n throw new HTTPException(404, { message: 'Workflow not found' });\n }\n\n const serverCache = mastra.getServerCache();\n\n const run = await workflow.createRunAsync({ runId });\n const result = run.stream({\n inputData,\n runtimeContext,\n closeOnSuspend,\n tracingOptions,\n });\n return result.fullStream.pipeThrough(\n new TransformStream<ChunkType, ChunkType>({\n transform(chunk, controller) {\n if (serverCache) {\n const cacheKey = runId;\n serverCache.listPush(cacheKey, chunk).catch(() => {});\n }\n controller.enqueue(chunk);\n },\n }),\n );\n } catch (error) {\n return handleError(error, 'Error streaming workflow');\n }\n}\n\nexport async function observeStreamVNextWorkflowHandler({\n mastra,\n workflowId,\n runId,\n}: Pick<WorkflowContext, 'mastra' | 'workflowId' | 'runId'>) {\n try {\n if (!workflowId) {\n throw new HTTPException(400, { message: 'Workflow ID is required' });\n }\n\n if (!runId) {\n throw new HTTPException(400, { message: 'runId required to observe workflow stream' });\n }\n\n const { workflow } = await getWorkflowsFromSystem({ mastra, workflowId });\n\n if (!workflow) {\n throw new HTTPException(404, { message: 'Workflow not found' });\n }\n\n const run = await workflow.getWorkflowRunById(runId);\n\n if (!run) {\n throw new HTTPException(404, { message: 'Workflow run not found' });\n }\n\n const _run = await workflow.createRunAsync({ runId, resourceId: run.resourceId });\n const serverCache = mastra.getServerCache();\n if (!serverCache) {\n throw new HTTPException(500, { message: 'Server cache not found' });\n }\n\n // Get cached chunks first\n const cachedRunChunks = await serverCache.listFromTo(runId, 0);\n\n // Create a readable stream that first emits cached chunks, then the live stream\n const combinedStream = new ReadableStream<ChunkType>({\n start(controller) {\n // First, emit all cached chunks\n const emitCachedChunks = async () => {\n for (const chunk of cachedRunChunks) {\n controller.enqueue(chunk as ChunkType);\n }\n };\n\n // Then, pipe the live stream\n const liveStream = _run.observeStream();\n const reader = liveStream.getReader();\n\n const pump = async () => {\n try {\n while (true) {\n const { done, value } = await reader.read();\n if (done) {\n controller.close();\n break;\n }\n controller.enqueue(value);\n }\n } catch (error) {\n controller.error(error);\n } finally {\n reader.releaseLock();\n }\n };\n\n // Start with cached chunks, then live stream\n void emitCachedChunks()\n .then(() => {\n void pump();\n })\n .catch(error => {\n controller.error(error);\n });\n },\n });\n\n return combinedStream;\n } catch (error) {\n return handleError(error, 'Error observing workflow stream');\n }\n}\n\nexport async function resumeAsyncWorkflowHandler({\n mastra,\n workflowId,\n runId,\n body,\n runtimeContext,\n tracingOptions,\n}: WorkflowContext & {\n body: { step: string | string[]; resumeData?: unknown };\n runtimeContext?: RuntimeContext;\n tracingOptions?: TracingOptions;\n}) {\n try {\n if (!workflowId) {\n throw new HTTPException(400, { message: 'Workflow ID is required' });\n }\n\n if (!runId) {\n throw new HTTPException(400, { message: 'runId required to resume workflow' });\n }\n\n if (!body.step) {\n throw new HTTPException(400, { message: 'step required to resume workflow' });\n }\n\n const { workflow } = await getWorkflowsFromSystem({ mastra, workflowId });\n\n if (!workflow) {\n throw new HTTPException(404, { message: 'Workflow not found' });\n }\n\n const run = await workflow.getWorkflowRunById(runId);\n\n if (!run) {\n throw new HTTPException(404, { message: 'Workflow run not found' });\n }\n\n const _run = await workflow.createRunAsync({ runId, resourceId: run.resourceId });\n const result = await _run.resume({\n step: body.step,\n resumeData: body.resumeData,\n runtimeContext,\n tracingOptions,\n });\n\n return result;\n } catch (error) {\n return handleError(error, 'Error resuming workflow step');\n }\n}\n\nexport async function resumeWorkflowHandler({\n mastra,\n workflowId,\n runId,\n body,\n runtimeContext,\n tracingOptions,\n}: WorkflowContext & {\n body: { step: string | string[]; resumeData?: unknown };\n runtimeContext?: RuntimeContext;\n tracingOptions?: TracingOptions;\n}) {\n try {\n if (!workflowId) {\n throw new HTTPException(400, { message: 'Workflow ID is required' });\n }\n\n if (!runId) {\n throw new HTTPException(400, { message: 'runId required to resume workflow' });\n }\n\n if (!body.step) {\n throw new HTTPException(400, { message: 'step required to resume workflow' });\n }\n\n const { workflow } = await getWorkflowsFromSystem({ mastra, workflowId });\n\n if (!workflow) {\n throw new HTTPException(404, { message: 'Workflow not found' });\n }\n\n const run = await workflow.getWorkflowRunById(runId);\n\n if (!run) {\n throw new HTTPException(404, { message: 'Workflow run not found' });\n }\n\n const _run = await workflow.createRunAsync({ runId, resourceId: run.resourceId });\n\n void _run.resume({\n step: body.step,\n resumeData: body.resumeData,\n runtimeContext,\n tracingOptions,\n });\n\n return { message: 'Workflow run resumed' };\n } catch (error) {\n return handleError(error, 'Error resuming workflow');\n }\n}\n\nexport async function resumeStreamWorkflowHandler({\n mastra,\n workflowId,\n runId,\n body,\n runtimeContext,\n tracingOptions,\n}: WorkflowContext & {\n body: { step: string | string[]; resumeData?: unknown };\n runtimeContext?: RuntimeContext;\n tracingOptions?: TracingOptions;\n}) {\n try {\n if (!workflowId) {\n throw new HTTPException(400, { message: 'Workflow ID is required' });\n }\n\n if (!runId) {\n throw new HTTPException(400, { message: 'runId required to resume workflow' });\n }\n\n if (!body.step) {\n throw new HTTPException(400, { message: 'step required to resume workflow' });\n }\n\n const { workflow } = await getWorkflowsFromSystem({ mastra, workflowId });\n\n if (!workflow) {\n throw new HTTPException(404, { message: 'Workflow not found' });\n }\n\n const run = await workflow.getWorkflowRunById(runId);\n\n if (!run) {\n throw new HTTPException(404, { message: 'Workflow run not found' });\n }\n\n const _run = await workflow.createRunAsync({ runId, resourceId: run.resourceId });\n const serverCache = mastra.getServerCache();\n\n const stream = _run\n .resumeStream({\n step: body.step,\n resumeData: body.resumeData,\n runtimeContext,\n tracingOptions,\n })\n .fullStream.pipeThrough(\n new TransformStream<ChunkType, ChunkType>({\n transform(chunk, controller) {\n if (serverCache) {\n const cacheKey = runId;\n serverCache.listPush(cacheKey, chunk).catch(() => {});\n }\n\n controller.enqueue(chunk);\n },\n }),\n );\n\n return stream;\n } catch (error) {\n return handleError(error, 'Error resuming workflow');\n }\n}\n\nexport async function getWorkflowRunsHandler({\n mastra,\n workflowId,\n fromDate,\n toDate,\n limit,\n offset,\n resourceId,\n}: WorkflowContext & {\n fromDate?: Date;\n toDate?: Date;\n limit?: number;\n offset?: number;\n resourceId?: string;\n}): Promise<WorkflowRuns> {\n try {\n if (!workflowId) {\n throw new HTTPException(400, { message: 'Workflow ID is required' });\n }\n\n const { workflow } = await getWorkflowsFromSystem({ mastra, workflowId });\n\n if (!workflow) {\n throw new HTTPException(404, { message: 'Workflow not found' });\n }\n\n const workflowRuns = (await workflow.getWorkflowRuns({ fromDate, toDate, limit, offset, resourceId })) || {\n runs: [],\n total: 0,\n };\n return workflowRuns;\n } catch (error) {\n return handleError(error, 'Error getting workflow runs');\n }\n}\n\nexport async function cancelWorkflowRunHandler({\n mastra,\n workflowId,\n runId,\n}: Pick<WorkflowContext, 'mastra' | 'workflowId' | 'runId'>) {\n try {\n if (!workflowId) {\n throw new HTTPException(400, { message: 'Workflow ID is required' });\n }\n\n if (!runId) {\n throw new HTTPException(400, { message: 'runId required to cancel workflow run' });\n }\n\n const { workflow } = await getWorkflowsFromSystem({ mastra, workflowId });\n\n if (!workflow) {\n throw new HTTPException(404, { message: 'Workflow not found' });\n }\n\n const run = await workflow.getWorkflowRunById(runId);\n\n if (!run) {\n throw new HTTPException(404, { message: 'Workflow run not found' });\n }\n\n const _run = await workflow.createRunAsync({ runId, resourceId: run.resourceId });\n\n await _run.cancel();\n\n return { message: 'Workflow run cancelled' };\n } catch (error) {\n return handleError(error, 'Error canceling workflow run');\n }\n}\n\nexport async function sendWorkflowRunEventHandler({\n mastra,\n workflowId,\n runId,\n event,\n data,\n}: Pick<WorkflowContext, 'mastra' | 'workflowId' | 'runId'> & {\n event: string;\n data: unknown;\n}) {\n try {\n if (!workflowId) {\n throw new HTTPException(400, { message: 'Workflow ID is required' });\n }\n\n if (!runId) {\n throw new HTTPException(400, { message: 'runId required to send workflow run event' });\n }\n\n const { workflow } = await getWorkflowsFromSystem({ mastra, workflowId });\n\n if (!workflow) {\n throw new HTTPException(404, { message: 'Workflow not found' });\n }\n\n const run = await workflow.getWorkflowRunById(runId);\n\n if (!run) {\n throw new HTTPException(404, { message: 'Workflow run not found' });\n }\n\n const _run = await workflow.createRunAsync({ runId, resourceId: run.resourceId });\n\n await _run.sendEvent(event, data);\n\n return { message: 'Workflow run event sent' };\n } catch (error) {\n return handleError(error, 'Error sending workflow run event');\n }\n}\n"]}