@mastra/deployer 0.3.0-alpha.9 → 0.3.1-alpha.1

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.
@@ -1,8 +1,6 @@
1
1
  import crypto, { randomUUID } from 'crypto';
2
2
  import { readFile } from 'fs/promises';
3
- import { dirname } from 'path';
4
3
  import { join } from 'path/posix';
5
- import { fileURLToPath, pathToFileURL } from 'url';
6
4
  import { createServer } from 'http';
7
5
  import { Http2ServerRequest } from 'http2';
8
6
  import { Readable } from 'stream';
@@ -11,7 +9,7 @@ import { getMimeType } from 'hono/utils/mime';
11
9
  import { createReadStream, lstatSync } from 'fs';
12
10
  import { html } from 'hono/html';
13
11
  import { Telemetry } from '@mastra/core';
14
- import { RuntimeContext } from '@mastra/core/di';
12
+ import { RuntimeContext } from '@mastra/core/runtime-context';
15
13
  import { Hono } from 'hono';
16
14
  import { bodyLimit } from 'hono/body-limit';
17
15
  import { cors } from 'hono/cors';
@@ -27,9 +25,10 @@ import { z } from 'zod';
27
25
  import { getTelemetryHandler as getTelemetryHandler$1, storeTelemetryHandler as storeTelemetryHandler$1 } from '@mastra/server/handlers/telemetry';
28
26
  import { executeAgentToolHandler as executeAgentToolHandler$1, getToolsHandler as getToolsHandler$1, getToolByIdHandler as getToolByIdHandler$1, executeToolHandler as executeToolHandler$1 } from '@mastra/server/handlers/tools';
29
27
  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';
28
+ import { getVNextWorkflowsHandler as getVNextWorkflowsHandler$1, getVNextWorkflowByIdHandler as getVNextWorkflowByIdHandler$1, getVNextWorkflowRunsHandler as getVNextWorkflowRunsHandler$1, resumeVNextWorkflowHandler as resumeVNextWorkflowHandler$1, resumeAsyncVNextWorkflowHandler as resumeAsyncVNextWorkflowHandler$1, createVNextWorkflowRunHandler as createVNextWorkflowRunHandler$1, startAsyncVNextWorkflowHandler as startAsyncVNextWorkflowHandler$1, startVNextWorkflowRunHandler as startVNextWorkflowRunHandler$1, watchVNextWorkflowHandler as watchVNextWorkflowHandler$1 } from '@mastra/server/handlers/vNextWorkflows';
29
+ import { stream } from 'hono/streaming';
30
30
  import { getSpeakersHandler as getSpeakersHandler$1, generateSpeechHandler, transcribeSpeechHandler } from '@mastra/server/handlers/voice';
31
31
  import { getWorkflowsHandler as getWorkflowsHandler$1, getWorkflowByIdHandler as getWorkflowByIdHandler$1, getWorkflowRunsHandler as getWorkflowRunsHandler$1, resumeWorkflowHandler as resumeWorkflowHandler$1, resumeAsyncWorkflowHandler as resumeAsyncWorkflowHandler$1, createRunHandler as createRunHandler$1, startAsyncWorkflowHandler as startAsyncWorkflowHandler$1, startWorkflowRunHandler as startWorkflowRunHandler$1, watchWorkflowHandler as watchWorkflowHandler$1 } from '@mastra/server/handlers/workflows';
32
- import { stream } from 'hono/streaming';
33
32
 
34
33
  // src/server/index.ts
35
34
  var RequestError = class extends Error {
@@ -167,14 +166,14 @@ var newRequest = (incoming, defaultHostname) => {
167
166
  req[urlKey] = url.href;
168
167
  return req;
169
168
  };
170
- function writeFromReadableStream(stream2, writable) {
171
- if (stream2.locked) {
169
+ function writeFromReadableStream(stream3, writable) {
170
+ if (stream3.locked) {
172
171
  throw new TypeError("ReadableStream is locked.");
173
172
  } else if (writable.destroyed) {
174
- stream2.cancel();
173
+ stream3.cancel();
175
174
  return;
176
175
  }
177
- const reader = stream2.getReader();
176
+ const reader = stream3.getReader();
178
177
  writable.on("close", cancel);
179
178
  writable.on("error", cancel);
180
179
  reader.read().then(flow, cancel);
@@ -372,7 +371,7 @@ var responseViaResponseObject = async (res, outgoing, options = {}) => {
372
371
  const resHeaderRecord = buildOutgoingHttpHeaders(res.headers);
373
372
  const internalBody = getInternalBody(res);
374
373
  if (internalBody) {
375
- const { length, source, stream: stream2 } = internalBody;
374
+ const { length, source, stream: stream3 } = internalBody;
376
375
  if (source instanceof Uint8Array && source.byteLength !== length) ; else {
377
376
  if (length) {
378
377
  resHeaderRecord["content-length"] = length;
@@ -383,7 +382,7 @@ var responseViaResponseObject = async (res, outgoing, options = {}) => {
383
382
  } else if (source instanceof Blob) {
384
383
  outgoing.end(new Uint8Array(await source.arrayBuffer()));
385
384
  } else {
386
- await writeFromReadableStream(stream2, outgoing);
385
+ await writeFromReadableStream(stream3, outgoing);
387
386
  }
388
387
  return;
389
388
  }
@@ -487,18 +486,18 @@ var ENCODINGS = {
487
486
  gzip: ".gz"
488
487
  };
489
488
  var ENCODINGS_ORDERED_KEYS = Object.keys(ENCODINGS);
490
- var createStreamBody = (stream2) => {
489
+ var createStreamBody = (stream3) => {
491
490
  const body = new ReadableStream({
492
491
  start(controller) {
493
- stream2.on("data", (chunk) => {
492
+ stream3.on("data", (chunk) => {
494
493
  controller.enqueue(chunk);
495
494
  });
496
- stream2.on("end", () => {
495
+ stream3.on("end", () => {
497
496
  controller.close();
498
497
  });
499
498
  },
500
499
  cancel() {
501
- stream2.destroy();
500
+ stream3.destroy();
502
501
  }
503
502
  });
504
503
  return body;
@@ -594,10 +593,10 @@ var serveStatic = (options = { root: "" }) => {
594
593
  end = size - 1;
595
594
  }
596
595
  const chunksize = end - start + 1;
597
- const stream2 = createReadStream(path, { start, end });
596
+ const stream3 = createReadStream(path, { start, end });
598
597
  c2.header("Content-Length", chunksize.toString());
599
598
  c2.header("Content-Range", `bytes ${start}-${end}/${stats.size}`);
600
- return c2.body(createStreamBody(stream2), 206);
599
+ return c2.body(createStreamBody(stream3), 206);
601
600
  };
602
601
  };
603
602
  var RENDER_TYPE = {
@@ -955,7 +954,7 @@ async function setAgentInstructionsHandler(c2) {
955
954
  // src/server/handlers/client.ts
956
955
  var clients = /* @__PURE__ */ new Set();
957
956
  function handleClientsRefresh(c2) {
958
- const stream2 = new ReadableStream({
957
+ const stream3 = new ReadableStream({
959
958
  start(controller) {
960
959
  clients.add(controller);
961
960
  controller.enqueue("data: connected\n\n");
@@ -964,7 +963,7 @@ function handleClientsRefresh(c2) {
964
963
  });
965
964
  }
966
965
  });
967
- return new Response(stream2, {
966
+ return new Response(stream3, {
968
967
  headers: {
969
968
  "Content-Type": "text/event-stream",
970
969
  "Cache-Control": "no-cache",
@@ -1501,6 +1500,174 @@ async function deleteIndex(c2) {
1501
1500
  return handleError(error, "Error deleting index");
1502
1501
  }
1503
1502
  }
1503
+ async function getVNextWorkflowsHandler(c2) {
1504
+ try {
1505
+ const mastra = c2.get("mastra");
1506
+ const workflows = await getVNextWorkflowsHandler$1({
1507
+ mastra
1508
+ });
1509
+ return c2.json(workflows);
1510
+ } catch (error) {
1511
+ return handleError(error, "Error getting workflows");
1512
+ }
1513
+ }
1514
+ async function getVNextWorkflowByIdHandler(c2) {
1515
+ try {
1516
+ const mastra = c2.get("mastra");
1517
+ const workflowId = c2.req.param("workflowId");
1518
+ const workflow = await getVNextWorkflowByIdHandler$1({
1519
+ mastra,
1520
+ workflowId
1521
+ });
1522
+ return c2.json(workflow);
1523
+ } catch (error) {
1524
+ return handleError(error, "Error getting workflow");
1525
+ }
1526
+ }
1527
+ async function createVNextWorkflowRunHandler(c2) {
1528
+ try {
1529
+ const mastra = c2.get("mastra");
1530
+ const workflowId = c2.req.param("workflowId");
1531
+ const prevRunId = c2.req.query("runId");
1532
+ const result = await createVNextWorkflowRunHandler$1({
1533
+ mastra,
1534
+ workflowId,
1535
+ runId: prevRunId
1536
+ });
1537
+ return c2.json(result);
1538
+ } catch (e2) {
1539
+ return handleError(e2, "Error creating run");
1540
+ }
1541
+ }
1542
+ async function startAsyncVNextWorkflowHandler(c2) {
1543
+ try {
1544
+ const mastra = c2.get("mastra");
1545
+ const workflowId = c2.req.param("workflowId");
1546
+ const { inputData, runtimeContext } = await c2.req.json();
1547
+ const runId = c2.req.query("runId");
1548
+ const result = await startAsyncVNextWorkflowHandler$1({
1549
+ mastra,
1550
+ runtimeContext,
1551
+ workflowId,
1552
+ runId,
1553
+ inputData
1554
+ });
1555
+ return c2.json(result);
1556
+ } catch (error) {
1557
+ return handleError(error, "Error executing workflow");
1558
+ }
1559
+ }
1560
+ async function startVNextWorkflowRunHandler(c2) {
1561
+ try {
1562
+ const mastra = c2.get("mastra");
1563
+ const workflowId = c2.req.param("workflowId");
1564
+ const { inputData, runtimeContext } = await c2.req.json();
1565
+ const runId = c2.req.query("runId");
1566
+ await startVNextWorkflowRunHandler$1({
1567
+ mastra,
1568
+ runtimeContext,
1569
+ workflowId,
1570
+ runId,
1571
+ inputData
1572
+ });
1573
+ return c2.json({ message: "Workflow run started" });
1574
+ } catch (e2) {
1575
+ return handleError(e2, "Error starting workflow run");
1576
+ }
1577
+ }
1578
+ function watchVNextWorkflowHandler(c2) {
1579
+ try {
1580
+ const mastra = c2.get("mastra");
1581
+ const logger2 = mastra.getLogger();
1582
+ const workflowId = c2.req.param("workflowId");
1583
+ const runId = c2.req.query("runId");
1584
+ if (!runId) {
1585
+ throw new HTTPException(400, { message: "runId required to watch workflow" });
1586
+ }
1587
+ return stream(
1588
+ c2,
1589
+ async (stream3) => {
1590
+ try {
1591
+ const result = await watchVNextWorkflowHandler$1({
1592
+ mastra,
1593
+ workflowId,
1594
+ runId
1595
+ });
1596
+ stream3.onAbort(() => {
1597
+ if (!result.locked) {
1598
+ return result.cancel();
1599
+ }
1600
+ });
1601
+ for await (const chunk of result) {
1602
+ await stream3.write(chunk.toString() + "");
1603
+ }
1604
+ } catch (err) {
1605
+ console.log(err);
1606
+ }
1607
+ },
1608
+ async (err) => {
1609
+ logger2.error("Error in watch stream: " + err?.message);
1610
+ }
1611
+ );
1612
+ } catch (error) {
1613
+ return handleError(error, "Error watching workflow");
1614
+ }
1615
+ }
1616
+ async function resumeAsyncVNextWorkflowHandler(c2) {
1617
+ try {
1618
+ const mastra = c2.get("mastra");
1619
+ const workflowId = c2.req.param("workflowId");
1620
+ const runId = c2.req.query("runId");
1621
+ const { step, resumeData, runtimeContext } = await c2.req.json();
1622
+ if (!runId) {
1623
+ throw new HTTPException(400, { message: "runId required to resume workflow" });
1624
+ }
1625
+ const result = await resumeAsyncVNextWorkflowHandler$1({
1626
+ mastra,
1627
+ runtimeContext,
1628
+ workflowId,
1629
+ runId,
1630
+ body: { step, resumeData }
1631
+ });
1632
+ return c2.json(result);
1633
+ } catch (error) {
1634
+ return handleError(error, "Error resuming workflow step");
1635
+ }
1636
+ }
1637
+ async function resumeVNextWorkflowHandler(c2) {
1638
+ try {
1639
+ const mastra = c2.get("mastra");
1640
+ const workflowId = c2.req.param("workflowId");
1641
+ const runId = c2.req.query("runId");
1642
+ const { step, resumeData, runtimeContext } = await c2.req.json();
1643
+ if (!runId) {
1644
+ throw new HTTPException(400, { message: "runId required to resume workflow" });
1645
+ }
1646
+ await resumeVNextWorkflowHandler$1({
1647
+ mastra,
1648
+ runtimeContext,
1649
+ workflowId,
1650
+ runId,
1651
+ body: { step, resumeData }
1652
+ });
1653
+ return c2.json({ message: "Workflow run resumed" });
1654
+ } catch (error) {
1655
+ return handleError(error, "Error resuming workflow");
1656
+ }
1657
+ }
1658
+ async function getVNextWorkflowRunsHandler(c2) {
1659
+ try {
1660
+ const mastra = c2.get("mastra");
1661
+ const workflowId = c2.req.param("workflowId");
1662
+ const workflowRuns = await getVNextWorkflowRunsHandler$1({
1663
+ mastra,
1664
+ workflowId
1665
+ });
1666
+ return c2.json(workflowRuns);
1667
+ } catch (error) {
1668
+ return handleError(error, "Error getting workflow runs");
1669
+ }
1670
+ }
1504
1671
  async function getSpeakersHandler(c2) {
1505
1672
  try {
1506
1673
  const mastra = c2.get("mastra");
@@ -1648,20 +1815,20 @@ function watchWorkflowHandler(c2) {
1648
1815
  }
1649
1816
  return stream(
1650
1817
  c2,
1651
- async (stream2) => {
1818
+ async (stream3) => {
1652
1819
  try {
1653
1820
  const result = await watchWorkflowHandler$1({
1654
1821
  mastra,
1655
1822
  workflowId,
1656
1823
  runId
1657
1824
  });
1658
- stream2.onAbort(() => {
1825
+ stream3.onAbort(() => {
1659
1826
  if (!result.locked) {
1660
1827
  return result.cancel();
1661
1828
  }
1662
1829
  });
1663
1830
  for await (const chunk of result) {
1664
- await stream2.write(chunk.toString() + "");
1831
+ await stream3.write(chunk.toString() + "");
1665
1832
  }
1666
1833
  } catch (err) {
1667
1834
  console.log(err);
@@ -1844,12 +2011,12 @@ var html2 = `
1844
2011
  async function createHonoServer(mastra, options = {}) {
1845
2012
  const app = new Hono();
1846
2013
  const server = mastra.getServer();
1847
- const __dirname = dirname(fileURLToPath(import.meta.url));
1848
- const mastraToolsPaths = (await import(pathToFileURL(join(__dirname, "tools.mjs")).href)).tools;
2014
+ const toolsPath = "./tools.mjs";
2015
+ const mastraToolsPaths = (await import(toolsPath)).tools;
1849
2016
  const toolImports = mastraToolsPaths ? await Promise.all(
1850
2017
  // @ts-ignore
1851
2018
  mastraToolsPaths.map(async (toolPath) => {
1852
- return import(pathToFileURL(join(__dirname, toolPath)).href);
2019
+ return import(toolPath);
1853
2020
  })
1854
2021
  ) : [];
1855
2022
  const tools = toolImports.reduce((acc, toolModule) => {
@@ -1948,7 +2115,7 @@ async function createHonoServer(mastra, options = {}) {
1948
2115
  }
1949
2116
  }
1950
2117
  }
1951
- if (options?.isDev || server?.build?.apiReqLogs) {
2118
+ if (server?.build?.apiReqLogs) {
1952
2119
  app.use(logger());
1953
2120
  }
1954
2121
  app.get(
@@ -3085,6 +3252,289 @@ async function createHonoServer(mastra, options = {}) {
3085
3252
  }),
3086
3253
  storeTelemetryHandler
3087
3254
  );
3255
+ app.get(
3256
+ "/api/workflows/v-next",
3257
+ h({
3258
+ description: "Get all vNext workflows",
3259
+ tags: ["vNextWorkflows"],
3260
+ responses: {
3261
+ 200: {
3262
+ description: "List of all vNext workflows"
3263
+ }
3264
+ }
3265
+ }),
3266
+ getVNextWorkflowsHandler
3267
+ );
3268
+ app.get(
3269
+ "/api/workflows/v-next/:workflowId",
3270
+ h({
3271
+ description: "Get vNext workflow by ID",
3272
+ tags: ["vNextWorkflows"],
3273
+ parameters: [
3274
+ {
3275
+ name: "workflowId",
3276
+ in: "path",
3277
+ required: true,
3278
+ schema: { type: "string" }
3279
+ }
3280
+ ],
3281
+ responses: {
3282
+ 200: {
3283
+ description: "vNext workflow details"
3284
+ },
3285
+ 404: {
3286
+ description: "vNext workflow not found"
3287
+ }
3288
+ }
3289
+ }),
3290
+ getVNextWorkflowByIdHandler
3291
+ );
3292
+ app.get(
3293
+ "/api/workflows/v-next/:workflowId/runs",
3294
+ h({
3295
+ description: "Get all runs for a vNext workflow",
3296
+ tags: ["vNextWorkflows"],
3297
+ parameters: [
3298
+ {
3299
+ name: "workflowId",
3300
+ in: "path",
3301
+ required: true,
3302
+ schema: { type: "string" }
3303
+ }
3304
+ ],
3305
+ responses: {
3306
+ 200: {
3307
+ description: "List of vNext workflow runs from storage"
3308
+ }
3309
+ }
3310
+ }),
3311
+ getVNextWorkflowRunsHandler
3312
+ );
3313
+ app.post(
3314
+ "/api/workflows/v-next/:workflowId/resume",
3315
+ h({
3316
+ description: "Resume a suspended vNext workflow step",
3317
+ tags: ["vNextWorkflows"],
3318
+ parameters: [
3319
+ {
3320
+ name: "workflowId",
3321
+ in: "path",
3322
+ required: true,
3323
+ schema: { type: "string" }
3324
+ },
3325
+ {
3326
+ name: "runId",
3327
+ in: "query",
3328
+ required: true,
3329
+ schema: { type: "string" }
3330
+ }
3331
+ ],
3332
+ requestBody: {
3333
+ required: true,
3334
+ content: {
3335
+ "application/json": {
3336
+ schema: {
3337
+ type: "object",
3338
+ properties: {
3339
+ step: {
3340
+ oneOf: [{ type: "string" }, { type: "array", items: { type: "string" } }]
3341
+ },
3342
+ resumeData: { type: "object" },
3343
+ runtimeContext: { type: "object" }
3344
+ },
3345
+ required: ["step"]
3346
+ }
3347
+ }
3348
+ }
3349
+ }
3350
+ }),
3351
+ resumeVNextWorkflowHandler
3352
+ );
3353
+ app.post(
3354
+ "/api/workflows/v-next/:workflowId/resume-async",
3355
+ bodyLimit(bodyLimitOptions),
3356
+ h({
3357
+ description: "Resume a suspended vNext workflow step",
3358
+ tags: ["vNextWorkflows"],
3359
+ parameters: [
3360
+ {
3361
+ name: "workflowId",
3362
+ in: "path",
3363
+ required: true,
3364
+ schema: { type: "string" }
3365
+ },
3366
+ {
3367
+ name: "runId",
3368
+ in: "query",
3369
+ required: true,
3370
+ schema: { type: "string" }
3371
+ }
3372
+ ],
3373
+ requestBody: {
3374
+ required: true,
3375
+ content: {
3376
+ "application/json": {
3377
+ schema: {
3378
+ type: "object",
3379
+ properties: {
3380
+ step: {
3381
+ oneOf: [{ type: "string" }, { type: "array", items: { type: "string" } }]
3382
+ },
3383
+ resumeData: { type: "object" },
3384
+ runtimeContext: { type: "object" }
3385
+ },
3386
+ required: ["step"]
3387
+ }
3388
+ }
3389
+ }
3390
+ }
3391
+ }),
3392
+ resumeAsyncVNextWorkflowHandler
3393
+ );
3394
+ app.post(
3395
+ "/api/workflows/v-next/:workflowId/create-run",
3396
+ bodyLimit(bodyLimitOptions),
3397
+ h({
3398
+ description: "Create a new vNext workflow run",
3399
+ tags: ["vNextWorkflows"],
3400
+ parameters: [
3401
+ {
3402
+ name: "workflowId",
3403
+ in: "path",
3404
+ required: true,
3405
+ schema: { type: "string" }
3406
+ },
3407
+ {
3408
+ name: "runId",
3409
+ in: "query",
3410
+ required: false,
3411
+ schema: { type: "string" }
3412
+ }
3413
+ ],
3414
+ responses: {
3415
+ 200: {
3416
+ description: "New vNext workflow run created"
3417
+ }
3418
+ }
3419
+ }),
3420
+ createVNextWorkflowRunHandler
3421
+ );
3422
+ app.post(
3423
+ "/api/workflows/v-next/:workflowId/start-async",
3424
+ bodyLimit(bodyLimitOptions),
3425
+ h({
3426
+ description: "Execute/Start a vNext workflow",
3427
+ tags: ["vNextWorkflows"],
3428
+ parameters: [
3429
+ {
3430
+ name: "workflowId",
3431
+ in: "path",
3432
+ required: true,
3433
+ schema: { type: "string" }
3434
+ },
3435
+ {
3436
+ name: "runId",
3437
+ in: "query",
3438
+ required: false,
3439
+ schema: { type: "string" }
3440
+ }
3441
+ ],
3442
+ requestBody: {
3443
+ required: true,
3444
+ content: {
3445
+ "application/json": {
3446
+ schema: {
3447
+ type: "object",
3448
+ properties: {
3449
+ inputData: { type: "object" },
3450
+ runtimeContext: { type: "object" }
3451
+ }
3452
+ }
3453
+ }
3454
+ }
3455
+ },
3456
+ responses: {
3457
+ 200: {
3458
+ description: "vNext workflow execution result"
3459
+ },
3460
+ 404: {
3461
+ description: "vNext workflow not found"
3462
+ }
3463
+ }
3464
+ }),
3465
+ startAsyncVNextWorkflowHandler
3466
+ );
3467
+ app.post(
3468
+ "/api/workflows/v-next/:workflowId/start",
3469
+ h({
3470
+ description: "Create and start a new vNext workflow run",
3471
+ tags: ["vNextWorkflows"],
3472
+ parameters: [
3473
+ {
3474
+ name: "workflowId",
3475
+ in: "path",
3476
+ required: true,
3477
+ schema: { type: "string" }
3478
+ },
3479
+ {
3480
+ name: "runId",
3481
+ in: "query",
3482
+ required: true,
3483
+ schema: { type: "string" }
3484
+ }
3485
+ ],
3486
+ requestBody: {
3487
+ required: true,
3488
+ content: {
3489
+ "application/json": {
3490
+ schema: {
3491
+ type: "object",
3492
+ properties: {
3493
+ inputData: { type: "object" },
3494
+ runtimeContext: { type: "object" }
3495
+ }
3496
+ }
3497
+ }
3498
+ }
3499
+ },
3500
+ responses: {
3501
+ 200: {
3502
+ description: "vNext workflow run started"
3503
+ },
3504
+ 404: {
3505
+ description: "vNext workflow not found"
3506
+ }
3507
+ }
3508
+ }),
3509
+ startVNextWorkflowRunHandler
3510
+ );
3511
+ app.get(
3512
+ "/api/workflows/v-next/:workflowId/watch",
3513
+ h({
3514
+ description: "Watch vNext workflow transitions in real-time",
3515
+ parameters: [
3516
+ {
3517
+ name: "workflowId",
3518
+ in: "path",
3519
+ required: true,
3520
+ schema: { type: "string" }
3521
+ },
3522
+ {
3523
+ name: "runId",
3524
+ in: "query",
3525
+ required: false,
3526
+ schema: { type: "string" }
3527
+ }
3528
+ ],
3529
+ tags: ["vNextWorkflows"],
3530
+ responses: {
3531
+ 200: {
3532
+ description: "vNext workflow transitions in real-time"
3533
+ }
3534
+ }
3535
+ }),
3536
+ watchVNextWorkflowHandler
3537
+ );
3088
3538
  app.get(
3089
3539
  "/api/workflows",
3090
3540
  h({
@@ -3284,7 +3734,7 @@ async function createHonoServer(mastra, options = {}) {
3284
3734
  "/api/workflows/:workflowId/startAsync",
3285
3735
  bodyLimit(bodyLimitOptions),
3286
3736
  h({
3287
- description: "Execute/Start a workflow",
3737
+ description: "@deprecated Use /api/workflows/:workflowId/start-async instead",
3288
3738
  tags: ["workflows"],
3289
3739
  parameters: [
3290
3740
  {
@@ -3328,7 +3778,7 @@ async function createHonoServer(mastra, options = {}) {
3328
3778
  "/api/workflows/:workflowId/start-async",
3329
3779
  bodyLimit(bodyLimitOptions),
3330
3780
  h({
3331
- description: "@deprecated Use /api/workflows/:workflowId/start-async instead",
3781
+ description: "Execute/Start a workflow",
3332
3782
  tags: ["workflows"],
3333
3783
  parameters: [
3334
3784
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mastra/deployer",
3
- "version": "0.3.0-alpha.9",
3
+ "version": "0.3.1-alpha.1",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "files": [
@@ -107,8 +107,8 @@
107
107
  "rollup-plugin-node-externals": "^8.0.0",
108
108
  "typescript-paths": "^1.5.1",
109
109
  "zod": "^3.24.2",
110
- "@mastra/core": "^0.9.0-alpha.8",
111
- "@mastra/server": "^2.0.0-alpha.8"
110
+ "@mastra/server": "^2.0.1-alpha.1",
111
+ "@mastra/core": "^0.9.1-alpha.1"
112
112
  },
113
113
  "devDependencies": {
114
114
  "@hono/node-server": "^1.13.8",