@mastra/deployer 0.24.7-alpha.0 → 0.24.7-alpha.2

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 (52) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/dist/build/analyze.cjs +2 -2
  3. package/dist/build/analyze.js +1 -1
  4. package/dist/build/bundler.cjs +3 -3
  5. package/dist/build/bundler.js +1 -1
  6. package/dist/build/index.cjs +12 -12
  7. package/dist/build/index.js +4 -4
  8. package/dist/build/plugins/esm-shim.d.ts +14 -0
  9. package/dist/build/plugins/esm-shim.d.ts.map +1 -0
  10. package/dist/build/plugins/tsconfig-paths.d.ts.map +1 -1
  11. package/dist/bundler/index.cjs +2 -2
  12. package/dist/bundler/index.js +1 -1
  13. package/dist/{chunk-WAOHI5EJ.cjs → chunk-53B6GOCH.cjs} +10 -12
  14. package/dist/chunk-53B6GOCH.cjs.map +1 -0
  15. package/dist/{chunk-RF47PPL3.cjs → chunk-6R73ZVZX.cjs} +114 -27
  16. package/dist/chunk-6R73ZVZX.cjs.map +1 -0
  17. package/dist/{chunk-BKJTYNXV.js → chunk-7VIDVYTY.js} +3 -4
  18. package/dist/chunk-7VIDVYTY.js.map +1 -0
  19. package/dist/{chunk-WU6TBWIM.cjs → chunk-FHZKTDSF.cjs} +5 -5
  20. package/dist/{chunk-WU6TBWIM.cjs.map → chunk-FHZKTDSF.cjs.map} +1 -1
  21. package/dist/{chunk-CEFGVAGJ.cjs → chunk-K7JCMIZW.cjs} +16 -16
  22. package/dist/{chunk-CEFGVAGJ.cjs.map → chunk-K7JCMIZW.cjs.map} +1 -1
  23. package/dist/{chunk-IRM6HLVR.js → chunk-KEU3VV3H.js} +3 -3
  24. package/dist/{chunk-IRM6HLVR.js.map → chunk-KEU3VV3H.js.map} +1 -1
  25. package/dist/{chunk-YEXJWCJ4.js → chunk-KLIBX4WB.js} +5 -5
  26. package/dist/{chunk-YEXJWCJ4.js.map → chunk-KLIBX4WB.js.map} +1 -1
  27. package/dist/{chunk-KAY4EXIV.js → chunk-MYLM6HSI.js} +4 -4
  28. package/dist/{chunk-KAY4EXIV.js.map → chunk-MYLM6HSI.js.map} +1 -1
  29. package/dist/{chunk-MA7YOG2H.js → chunk-PHZK4P6J.js} +112 -26
  30. package/dist/chunk-PHZK4P6J.js.map +1 -0
  31. package/dist/{chunk-JZHZQN5X.cjs → chunk-UWCXK7X6.cjs} +14 -14
  32. package/dist/{chunk-JZHZQN5X.cjs.map → chunk-UWCXK7X6.cjs.map} +1 -1
  33. package/dist/index.cjs +5 -5
  34. package/dist/index.js +2 -2
  35. package/dist/server/handlers/auth/helpers.d.ts +1 -1
  36. package/dist/server/handlers/auth/helpers.d.ts.map +1 -1
  37. package/dist/server/handlers/restart-active-runs.d.ts +3 -0
  38. package/dist/server/handlers/restart-active-runs.d.ts.map +1 -0
  39. package/dist/server/handlers/routes/agents/handlers.d.ts.map +1 -1
  40. package/dist/server/handlers/routes/workflows/handlers.d.ts +7 -0
  41. package/dist/server/handlers/routes/workflows/handlers.d.ts.map +1 -1
  42. package/dist/server/handlers/routes/workflows/router.d.ts.map +1 -1
  43. package/dist/server/index.cjs +497 -6
  44. package/dist/server/index.cjs.map +1 -1
  45. package/dist/server/index.d.ts.map +1 -1
  46. package/dist/server/index.js +498 -7
  47. package/dist/server/index.js.map +1 -1
  48. package/package.json +5 -5
  49. package/dist/chunk-BKJTYNXV.js.map +0 -1
  50. package/dist/chunk-MA7YOG2H.js.map +0 -1
  51. package/dist/chunk-RF47PPL3.cjs.map +0 -1
  52. package/dist/chunk-WAOHI5EJ.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAsB5B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAGnD,KAAK,QAAQ,GAAG,EAAE,CAAC;AAEnB,KAAK,SAAS,GAAG;IACf,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,cAAc,CAAC;IAC/B,OAAO,EAAE,GAAG,CAAC;QAAE,UAAU,EAAE,+BAA+B,CAAA;KAAE,CAAC,CAAC;IAC9D,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5B,SAAS,EAAE,iBAAiB,CAAC;IAC7B,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE,OAAO,CAAC;IACf,qBAAqB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC9C,CAAC;AAEF,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,wCAmB/D;AAED,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,mBAER;cAGgC,QAAQ;eAAa,SAAS;2CAogBhE;AAED,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,mBAAmC,mDAoDlG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAuB5B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAGnD,KAAK,QAAQ,GAAG,EAAE,CAAC;AAEnB,KAAK,SAAS,GAAG;IACf,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,cAAc,CAAC;IAC/B,OAAO,EAAE,GAAG,CAAC;QAAE,UAAU,EAAE,+BAA+B,CAAA;KAAE,CAAC,CAAC;IAC9D,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5B,SAAS,EAAE,iBAAiB,CAAC;IAC7B,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE,OAAO,CAAC;IACf,qBAAqB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC9C,CAAC;AAEF,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,wCAmB/D;AAED,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,mBAER;cAGgC,QAAQ;eAAa,SAAS;2CA8gBhE;AAED,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,mBAAmC,mDAoDlG"}
@@ -39,7 +39,7 @@ import { getAITracesPaginatedHandler as getAITracesPaginatedHandler$1, getAITrac
39
39
  import { getScorersHandler as getScorersHandler$1, getScorerHandler as getScorerHandler$1, getScoresByRunIdHandler as getScoresByRunIdHandler$1, getScoresByScorerIdHandler as getScoresByScorerIdHandler$1, getScoresByEntityIdHandler as getScoresByEntityIdHandler$1, saveScoreHandler as saveScoreHandler$1 } from '@mastra/server/handlers/scores';
40
40
  import { getTelemetryHandler as getTelemetryHandler$1, storeTelemetryHandler as storeTelemetryHandler$1 } from '@mastra/server/handlers/telemetry';
41
41
  import { upsertVectors as upsertVectors$1, createIndex as createIndex$1, queryVectors as queryVectors$1, listIndexes as listIndexes$1, describeIndex as describeIndex$1, deleteIndex as deleteIndex$1 } from '@mastra/server/handlers/vector';
42
- import { getWorkflowsHandler as getWorkflowsHandler$1, getWorkflowByIdHandler as getWorkflowByIdHandler$1, getWorkflowRunsHandler as getWorkflowRunsHandler$1, getWorkflowRunExecutionResultHandler as getWorkflowRunExecutionResultHandler$1, getWorkflowRunByIdHandler as getWorkflowRunByIdHandler$1, resumeWorkflowHandler as resumeWorkflowHandler$1, resumeStreamWorkflowHandler as resumeStreamWorkflowHandler$1, resumeAsyncWorkflowHandler as resumeAsyncWorkflowHandler$1, streamLegacyWorkflowHandler as streamLegacyWorkflowHandler$1, observeStreamLegacyWorkflowHandler as observeStreamLegacyWorkflowHandler$1, streamVNextWorkflowHandler as streamVNextWorkflowHandler$1, observeStreamVNextWorkflowHandler as observeStreamVNextWorkflowHandler$1, createWorkflowRunHandler as createWorkflowRunHandler$1, startAsyncWorkflowHandler as startAsyncWorkflowHandler$1, startWorkflowRunHandler as startWorkflowRunHandler$1, watchWorkflowHandler as watchWorkflowHandler$1, cancelWorkflowRunHandler as cancelWorkflowRunHandler$1, sendWorkflowRunEventHandler as sendWorkflowRunEventHandler$1 } from '@mastra/server/handlers/workflows';
42
+ import { getWorkflowsHandler as getWorkflowsHandler$1, getWorkflowByIdHandler as getWorkflowByIdHandler$1, getWorkflowRunsHandler as getWorkflowRunsHandler$1, getWorkflowRunExecutionResultHandler as getWorkflowRunExecutionResultHandler$1, getWorkflowRunByIdHandler as getWorkflowRunByIdHandler$1, resumeWorkflowHandler as resumeWorkflowHandler$1, resumeStreamWorkflowHandler as resumeStreamWorkflowHandler$1, resumeAsyncWorkflowHandler as resumeAsyncWorkflowHandler$1, timeTravelWorkflowHandler as timeTravelWorkflowHandler$1, timeTravelStreamWorkflowHandler as timeTravelStreamWorkflowHandler$1, timeTravelAsyncWorkflowHandler as timeTravelAsyncWorkflowHandler$1, restartWorkflowHandler as restartWorkflowHandler$1, restartAsyncWorkflowHandler as restartAsyncWorkflowHandler$1, restartAllActiveWorkflowRunsHandler as restartAllActiveWorkflowRunsHandler$1, restartAllActiveWorkflowRunsAsyncHandler as restartAllActiveWorkflowRunsAsyncHandler$1, streamLegacyWorkflowHandler as streamLegacyWorkflowHandler$1, observeStreamLegacyWorkflowHandler as observeStreamLegacyWorkflowHandler$1, streamVNextWorkflowHandler as streamVNextWorkflowHandler$1, observeStreamVNextWorkflowHandler as observeStreamVNextWorkflowHandler$1, createWorkflowRunHandler as createWorkflowRunHandler$1, startAsyncWorkflowHandler as startAsyncWorkflowHandler$1, startWorkflowRunHandler as startWorkflowRunHandler$1, watchWorkflowHandler as watchWorkflowHandler$1, cancelWorkflowRunHandler as cancelWorkflowRunHandler$1, sendWorkflowRunEventHandler as sendWorkflowRunEventHandler$1 } from '@mastra/server/handlers/workflows';
43
43
  import { getLegacyWorkflowsHandler as getLegacyWorkflowsHandler$1, getLegacyWorkflowByIdHandler as getLegacyWorkflowByIdHandler$1, getLegacyWorkflowRunsHandler as getLegacyWorkflowRunsHandler$1, resumeLegacyWorkflowHandler as resumeLegacyWorkflowHandler$1, resumeAsyncLegacyWorkflowHandler as resumeAsyncLegacyWorkflowHandler$1, createLegacyWorkflowRunHandler as createLegacyWorkflowRunHandler$1, startAsyncLegacyWorkflowHandler as startAsyncLegacyWorkflowHandler$1, startLegacyWorkflowRunHandler as startLegacyWorkflowRunHandler$1, watchLegacyWorkflowHandler as watchLegacyWorkflowHandler$1 } from '@mastra/server/handlers/legacyWorkflows';
44
44
 
45
45
  // src/server/index.ts
@@ -1052,8 +1052,9 @@ var defaultAuthConfig = {
1052
1052
  };
1053
1053
 
1054
1054
  // src/server/handlers/auth/helpers.ts
1055
- var isDevPlaygroundRequest = (req) => {
1056
- return req.header("x-mastra-dev-playground") === "true" && process.env.MASTRA_DEV === "true";
1055
+ var isDevPlaygroundRequest = (req, authConfig) => {
1056
+ const protectedAccess = [...defaultAuthConfig.protected || [], ...authConfig.protected || []];
1057
+ return process.env.MASTRA_DEV === "true" && (!isAnyMatch(req.path, req.method, protectedAccess) || req.header("x-mastra-dev-playground") === "true");
1057
1058
  };
1058
1059
  var isCustomRoutePublic = (path, method, customRouteAuthConfig) => {
1059
1060
  if (!customRouteAuthConfig) {
@@ -1158,7 +1159,7 @@ var authenticationMiddleware = async (c2, next) => {
1158
1159
  if (!authConfig) {
1159
1160
  return next();
1160
1161
  }
1161
- if (isDevPlaygroundRequest(c2.req)) {
1162
+ if (isDevPlaygroundRequest(c2.req, authConfig)) {
1162
1163
  return next();
1163
1164
  }
1164
1165
  if (!isProtectedPath(c2.req.path, c2.req.method, authConfig, customRouteAuthConfig)) {
@@ -1201,7 +1202,7 @@ var authorizationMiddleware = async (c2, next) => {
1201
1202
  }
1202
1203
  const path = c2.req.path;
1203
1204
  const method = c2.req.method;
1204
- if (isDevPlaygroundRequest(c2.req)) {
1205
+ if (isDevPlaygroundRequest(c2.req, authConfig)) {
1205
1206
  return next();
1206
1207
  }
1207
1208
  if (!isProtectedPath(c2.req.path, c2.req.method, authConfig, customRouteAuthConfig)) {
@@ -1317,6 +1318,17 @@ async function healthHandler(c2) {
1317
1318
  return c2.json({ success: true }, 200);
1318
1319
  }
1319
1320
 
1321
+ // src/server/handlers/restart-active-runs.ts
1322
+ async function restartAllActiveWorkflowRunsHandler(c2) {
1323
+ try {
1324
+ const mastra = c2.get("mastra");
1325
+ void mastra.restartAllActiveWorkflowRuns();
1326
+ return c2.json({ message: "Restarting all active workflow runs..." });
1327
+ } catch (error) {
1328
+ return handleError(error, "Error restarting active workflow runs");
1329
+ }
1330
+ }
1331
+
1320
1332
  // src/server/handlers/root.ts
1321
1333
  async function rootHandler(c2) {
1322
1334
  const baseUrl = new URL(c2.req.url).origin;
@@ -2555,9 +2567,11 @@ var vNextBodyOptions = {
2555
2567
  ...sharedBodyOptions
2556
2568
  };
2557
2569
  async function getAgentsHandler(c2) {
2570
+ const partial = c2.req.query("partial") === "true";
2558
2571
  const serializedAgents = await getAgentsHandler$1({
2559
2572
  mastra: c2.get("mastra"),
2560
- runtimeContext: c2.get("runtimeContext")
2573
+ runtimeContext: c2.get("runtimeContext"),
2574
+ partial
2561
2575
  });
2562
2576
  return c2.json(serializedAgents);
2563
2577
  }
@@ -9888,8 +9902,10 @@ function vectorRouter(bodyLimitOptions) {
9888
9902
  async function getWorkflowsHandler(c2) {
9889
9903
  try {
9890
9904
  const mastra = c2.get("mastra");
9905
+ const partial = c2.req.query("partial") === "true";
9891
9906
  const workflows = await getWorkflowsHandler$1({
9892
- mastra
9907
+ mastra,
9908
+ partial
9893
9909
  });
9894
9910
  return c2.json(workflows);
9895
9911
  } catch (error) {
@@ -10332,6 +10348,163 @@ async function sendWorkflowRunEventHandler(c2) {
10332
10348
  return handleError(error, "Error sending workflow run event");
10333
10349
  }
10334
10350
  }
10351
+ async function restartAsyncWorkflowHandler(c2) {
10352
+ try {
10353
+ const mastra = c2.get("mastra");
10354
+ const runtimeContext = c2.get("runtimeContext");
10355
+ const workflowId = c2.req.param("workflowId");
10356
+ const runId = c2.req.query("runId");
10357
+ const { tracingOptions } = await c2.req.json();
10358
+ if (!runId) {
10359
+ throw new HTTPException(400, { message: "runId required to restart workflow" });
10360
+ }
10361
+ const result = await restartAsyncWorkflowHandler$1({
10362
+ mastra,
10363
+ runtimeContext,
10364
+ workflowId,
10365
+ runId,
10366
+ tracingOptions
10367
+ });
10368
+ return c2.json(result);
10369
+ } catch (error) {
10370
+ return handleError(error, "Error restarting workflow run");
10371
+ }
10372
+ }
10373
+ async function restartWorkflowHandler(c2) {
10374
+ try {
10375
+ const mastra = c2.get("mastra");
10376
+ const runtimeContext = c2.get("runtimeContext");
10377
+ const workflowId = c2.req.param("workflowId");
10378
+ const runId = c2.req.query("runId");
10379
+ const { tracingOptions } = await c2.req.json();
10380
+ if (!runId) {
10381
+ throw new HTTPException(400, { message: "runId required to restart workflow" });
10382
+ }
10383
+ await restartWorkflowHandler$1({
10384
+ mastra,
10385
+ runtimeContext,
10386
+ workflowId,
10387
+ runId,
10388
+ tracingOptions
10389
+ });
10390
+ return c2.json({ message: "Workflow run restarted" });
10391
+ } catch (error) {
10392
+ return handleError(error, "Error restarting workflow");
10393
+ }
10394
+ }
10395
+ async function restartAllActiveWorkflowRunsAsyncHandler(c2) {
10396
+ try {
10397
+ const mastra = c2.get("mastra");
10398
+ const workflowId = c2.req.param("workflowId");
10399
+ const result = await restartAllActiveWorkflowRunsAsyncHandler$1({
10400
+ mastra,
10401
+ workflowId
10402
+ });
10403
+ return c2.json(result);
10404
+ } catch (error) {
10405
+ return handleError(error, "Error restarting all active workflow runs");
10406
+ }
10407
+ }
10408
+ async function restartAllActiveWorkflowRunsHandler2(c2) {
10409
+ try {
10410
+ const mastra = c2.get("mastra");
10411
+ const workflowId = c2.req.param("workflowId");
10412
+ await restartAllActiveWorkflowRunsHandler$1({
10413
+ mastra,
10414
+ workflowId
10415
+ });
10416
+ return c2.json({ message: "All active workflow runs restarted" });
10417
+ } catch (error) {
10418
+ return handleError(error, "Error restarting all active workflow runs");
10419
+ }
10420
+ }
10421
+ async function timeTravelAsyncWorkflowHandler(c2) {
10422
+ try {
10423
+ const mastra = c2.get("mastra");
10424
+ const runtimeContext = c2.get("runtimeContext");
10425
+ const workflowId = c2.req.param("workflowId");
10426
+ const runId = c2.req.query("runId");
10427
+ const { tracingOptions, ...body } = await c2.req.json();
10428
+ if (!runId) {
10429
+ throw new HTTPException(400, { message: "runId required to time travel workflow" });
10430
+ }
10431
+ const result = await timeTravelAsyncWorkflowHandler$1({
10432
+ mastra,
10433
+ runtimeContext,
10434
+ workflowId,
10435
+ runId,
10436
+ tracingOptions,
10437
+ body
10438
+ });
10439
+ return c2.json(result);
10440
+ } catch (error) {
10441
+ return handleError(error, "Error time traveling workflow run");
10442
+ }
10443
+ }
10444
+ async function timeTravelWorkflowHandler(c2) {
10445
+ try {
10446
+ const mastra = c2.get("mastra");
10447
+ const runtimeContext = c2.get("runtimeContext");
10448
+ const workflowId = c2.req.param("workflowId");
10449
+ const runId = c2.req.query("runId");
10450
+ const { tracingOptions, ...body } = await c2.req.json();
10451
+ if (!runId) {
10452
+ throw new HTTPException(400, { message: "runId required to time travel workflow" });
10453
+ }
10454
+ await timeTravelWorkflowHandler$1({
10455
+ mastra,
10456
+ runtimeContext,
10457
+ workflowId,
10458
+ runId,
10459
+ tracingOptions,
10460
+ body
10461
+ });
10462
+ return c2.json({ message: "Workflow run time traveled" });
10463
+ } catch (error) {
10464
+ return handleError(error, "Error time traveling workflow");
10465
+ }
10466
+ }
10467
+ async function timeTravelStreamWorkflowHandler(c2) {
10468
+ try {
10469
+ const mastra = c2.get("mastra");
10470
+ const runtimeContext = c2.get("runtimeContext");
10471
+ const logger2 = mastra.getLogger();
10472
+ const workflowId = c2.req.param("workflowId");
10473
+ const { tracingOptions, ...body } = await c2.req.json();
10474
+ const runId = c2.req.query("runId");
10475
+ c2.header("Transfer-Encoding", "chunked");
10476
+ return stream(
10477
+ c2,
10478
+ async (stream6) => {
10479
+ try {
10480
+ const result = await timeTravelStreamWorkflowHandler$1({
10481
+ mastra,
10482
+ workflowId,
10483
+ runId,
10484
+ body,
10485
+ runtimeContext,
10486
+ tracingOptions
10487
+ });
10488
+ const reader = result.getReader();
10489
+ stream6.onAbort(() => {
10490
+ void reader.cancel("request aborted");
10491
+ });
10492
+ let chunkResult;
10493
+ while ((chunkResult = await reader.read()) && !chunkResult.done) {
10494
+ await stream6.write(JSON.stringify(chunkResult.value) + "");
10495
+ }
10496
+ } catch (err) {
10497
+ logger2.error("Error in workflow time travel stream: " + (err?.message ?? "Unknown error"));
10498
+ }
10499
+ },
10500
+ async (err) => {
10501
+ logger2.error("Error in workflow time travel stream: " + err?.message);
10502
+ }
10503
+ );
10504
+ } catch (error) {
10505
+ return handleError(error, "Error streaming time traveled workflow");
10506
+ }
10507
+ }
10335
10508
  async function getLegacyWorkflowsHandler(c2) {
10336
10509
  try {
10337
10510
  const mastra = c2.get("mastra");
@@ -11074,6 +11247,315 @@ function workflowsRouter(bodyLimitOptions) {
11074
11247
  }),
11075
11248
  resumeAsyncWorkflowHandler
11076
11249
  );
11250
+ router.post(
11251
+ "/:workflowId/time-travel",
11252
+ w({
11253
+ description: "Time travel a workflow run",
11254
+ tags: ["workflows"],
11255
+ parameters: [
11256
+ {
11257
+ name: "workflowId",
11258
+ in: "path",
11259
+ required: true,
11260
+ schema: { type: "string" }
11261
+ },
11262
+ {
11263
+ name: "runId",
11264
+ in: "query",
11265
+ required: true,
11266
+ schema: { type: "string" }
11267
+ }
11268
+ ],
11269
+ requestBody: {
11270
+ required: true,
11271
+ content: {
11272
+ "application/json": {
11273
+ schema: {
11274
+ type: "object",
11275
+ properties: {
11276
+ step: {
11277
+ oneOf: [{ type: "string" }, { type: "array", items: { type: "string" } }]
11278
+ },
11279
+ inputData: { type: "object" },
11280
+ resumeData: { type: "object" },
11281
+ initialState: { type: "object" },
11282
+ context: { type: "object", description: "Context for the workflow execution" },
11283
+ nestedStepsContext: { type: "object", description: "Nested steps context for the workflow execution" },
11284
+ runtimeContext: {
11285
+ type: "object",
11286
+ description: "Runtime context for the workflow execution"
11287
+ },
11288
+ tracingOptions: {
11289
+ type: "object",
11290
+ description: "Tracing options for the workflow execution",
11291
+ properties: {
11292
+ metadata: {
11293
+ type: "object",
11294
+ description: "Custom metadata to attach to the trace",
11295
+ additionalProperties: true
11296
+ }
11297
+ }
11298
+ }
11299
+ },
11300
+ required: ["step"]
11301
+ }
11302
+ }
11303
+ }
11304
+ }
11305
+ }),
11306
+ timeTravelWorkflowHandler
11307
+ );
11308
+ router.post(
11309
+ "/:workflowId/time-travel-stream",
11310
+ w({
11311
+ description: "Time travel a workflow run using streamVNext",
11312
+ tags: ["workflows"],
11313
+ parameters: [
11314
+ {
11315
+ name: "workflowId",
11316
+ in: "path",
11317
+ required: true,
11318
+ schema: { type: "string" }
11319
+ },
11320
+ {
11321
+ name: "runId",
11322
+ in: "query",
11323
+ required: true,
11324
+ schema: { type: "string" }
11325
+ }
11326
+ ],
11327
+ requestBody: {
11328
+ required: true,
11329
+ content: {
11330
+ "application/json": {
11331
+ schema: {
11332
+ type: "object",
11333
+ properties: {
11334
+ step: {
11335
+ oneOf: [{ type: "string" }, { type: "array", items: { type: "string" } }]
11336
+ },
11337
+ inputData: { type: "object" },
11338
+ resumeData: { type: "object" },
11339
+ initialState: { type: "object" },
11340
+ context: { type: "object", description: "Context for the workflow execution" },
11341
+ nestedStepsContext: { type: "object", description: "Nested steps context for the workflow execution" },
11342
+ runtimeContext: {
11343
+ type: "object",
11344
+ description: "Runtime context for the workflow execution"
11345
+ },
11346
+ tracingOptions: {
11347
+ type: "object",
11348
+ description: "Tracing options for the workflow execution",
11349
+ properties: {
11350
+ metadata: {
11351
+ type: "object",
11352
+ description: "Custom metadata to attach to the trace",
11353
+ additionalProperties: true
11354
+ }
11355
+ }
11356
+ }
11357
+ },
11358
+ required: ["step"]
11359
+ }
11360
+ }
11361
+ }
11362
+ }
11363
+ }),
11364
+ timeTravelStreamWorkflowHandler
11365
+ );
11366
+ router.post(
11367
+ "/:workflowId/time-travel-async",
11368
+ bodyLimit(bodyLimitOptions),
11369
+ w({
11370
+ description: "Time travel a workflow run asynchronously",
11371
+ tags: ["workflows"],
11372
+ parameters: [
11373
+ {
11374
+ name: "workflowId",
11375
+ in: "path",
11376
+ required: true,
11377
+ schema: { type: "string" }
11378
+ },
11379
+ {
11380
+ name: "runId",
11381
+ in: "query",
11382
+ required: true,
11383
+ schema: { type: "string" }
11384
+ }
11385
+ ],
11386
+ requestBody: {
11387
+ required: true,
11388
+ content: {
11389
+ "application/json": {
11390
+ schema: {
11391
+ type: "object",
11392
+ properties: {
11393
+ step: {
11394
+ oneOf: [{ type: "string" }, { type: "array", items: { type: "string" } }]
11395
+ },
11396
+ inputData: { type: "object" },
11397
+ resumeData: { type: "object" },
11398
+ initialState: { type: "object" },
11399
+ context: { type: "object", description: "Context for the workflow execution" },
11400
+ nestedStepsContext: { type: "object", description: "Nested steps context for the workflow execution" },
11401
+ runtimeContext: {
11402
+ type: "object",
11403
+ description: "Runtime context for the workflow execution"
11404
+ },
11405
+ tracingOptions: {
11406
+ type: "object",
11407
+ description: "Tracing options for the workflow execution",
11408
+ properties: {
11409
+ metadata: {
11410
+ type: "object",
11411
+ description: "Custom metadata to attach to the trace",
11412
+ additionalProperties: true
11413
+ }
11414
+ }
11415
+ }
11416
+ },
11417
+ required: ["step"]
11418
+ }
11419
+ }
11420
+ }
11421
+ }
11422
+ }),
11423
+ timeTravelAsyncWorkflowHandler
11424
+ );
11425
+ router.post(
11426
+ "/:workflowId/restart",
11427
+ bodyLimit(bodyLimitOptions),
11428
+ w({
11429
+ description: "Restart a workflow run",
11430
+ tags: ["workflows"],
11431
+ parameters: [
11432
+ {
11433
+ name: "workflowId",
11434
+ in: "path",
11435
+ required: true,
11436
+ schema: { type: "string" }
11437
+ },
11438
+ {
11439
+ name: "runId",
11440
+ in: "query",
11441
+ required: true,
11442
+ schema: { type: "string" }
11443
+ }
11444
+ ],
11445
+ requestBody: {
11446
+ required: true,
11447
+ content: {
11448
+ "application/json": {
11449
+ schema: {
11450
+ type: "object",
11451
+ properties: {
11452
+ runtimeContext: {
11453
+ type: "object",
11454
+ description: "Runtime context for the workflow execution"
11455
+ },
11456
+ tracingOptions: {
11457
+ type: "object",
11458
+ description: "Tracing options for the workflow execution",
11459
+ properties: {
11460
+ metadata: {
11461
+ type: "object",
11462
+ description: "Custom metadata to attach to the trace",
11463
+ additionalProperties: true
11464
+ }
11465
+ }
11466
+ }
11467
+ }
11468
+ }
11469
+ }
11470
+ }
11471
+ }
11472
+ }),
11473
+ restartWorkflowHandler
11474
+ );
11475
+ router.post(
11476
+ "/:workflowId/restart-async",
11477
+ bodyLimit(bodyLimitOptions),
11478
+ w({
11479
+ description: "Restart a workflow run asynchronously",
11480
+ tags: ["workflows"],
11481
+ parameters: [
11482
+ {
11483
+ name: "workflowId",
11484
+ in: "path",
11485
+ required: true,
11486
+ schema: { type: "string" }
11487
+ },
11488
+ {
11489
+ name: "runId",
11490
+ in: "query",
11491
+ required: true,
11492
+ schema: { type: "string" }
11493
+ }
11494
+ ],
11495
+ requestBody: {
11496
+ required: true,
11497
+ content: {
11498
+ "application/json": {
11499
+ schema: {
11500
+ type: "object",
11501
+ properties: {
11502
+ runtimeContext: {
11503
+ type: "object",
11504
+ description: "Runtime context for the workflow execution"
11505
+ },
11506
+ tracingOptions: {
11507
+ type: "object",
11508
+ description: "Tracing options for the workflow execution",
11509
+ properties: {
11510
+ metadata: {
11511
+ type: "object",
11512
+ description: "Custom metadata to attach to the trace",
11513
+ additionalProperties: true
11514
+ }
11515
+ }
11516
+ }
11517
+ }
11518
+ }
11519
+ }
11520
+ }
11521
+ }
11522
+ }),
11523
+ restartAsyncWorkflowHandler
11524
+ );
11525
+ router.post(
11526
+ "/:workflowId/restart-all-active-workflow-runs",
11527
+ bodyLimit(bodyLimitOptions),
11528
+ w({
11529
+ description: "Restart all active workflow runs",
11530
+ tags: ["workflows"],
11531
+ parameters: [
11532
+ {
11533
+ name: "workflowId",
11534
+ in: "path",
11535
+ required: true,
11536
+ schema: { type: "string" }
11537
+ }
11538
+ ]
11539
+ }),
11540
+ restartAllActiveWorkflowRunsHandler2
11541
+ );
11542
+ router.post(
11543
+ "/:workflowId/restart-all-active-workflow-runs-async",
11544
+ bodyLimit(bodyLimitOptions),
11545
+ w({
11546
+ description: "Restart all active workflow runs asynchronously",
11547
+ tags: ["workflows"],
11548
+ parameters: [
11549
+ {
11550
+ name: "workflowId",
11551
+ in: "path",
11552
+ required: true,
11553
+ schema: { type: "string" }
11554
+ }
11555
+ ]
11556
+ }),
11557
+ restartAllActiveWorkflowRunsAsyncHandler
11558
+ );
11077
11559
  router.post(
11078
11560
  "/:workflowId/stream-legacy",
11079
11561
  w({
@@ -12057,6 +12539,15 @@ async function createHonoServer(mastra, options = {
12057
12539
  middleware({ url: "/openapi.json" })
12058
12540
  );
12059
12541
  }
12542
+ if (options?.isDev) {
12543
+ app.post(
12544
+ "/__restart-active-workflow-runs",
12545
+ w({
12546
+ hide: true
12547
+ }),
12548
+ restartAllActiveWorkflowRunsHandler
12549
+ );
12550
+ }
12060
12551
  if (options?.playground) {
12061
12552
  app.get(
12062
12553
  "/refresh-events",