@mastra/deployer 0.17.0-alpha.5 → 0.17.0-alpha.7

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 (55) hide show
  1. package/CHANGELOG.md +29 -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 +15 -15
  7. package/dist/build/index.js +5 -5
  8. package/dist/bundler/index.cjs +2 -2
  9. package/dist/bundler/index.js +1 -1
  10. package/dist/{chunk-M54YPGM4.cjs → chunk-36EU6KMX.cjs} +5 -5
  11. package/dist/{chunk-M54YPGM4.cjs.map → chunk-36EU6KMX.cjs.map} +1 -1
  12. package/dist/{chunk-YHISSTZJ.cjs → chunk-4PSE6XXT.cjs} +14 -15
  13. package/dist/chunk-4PSE6XXT.cjs.map +1 -0
  14. package/dist/{chunk-4SIOF7ZD.cjs → chunk-AGJGRBDD.cjs} +5 -5
  15. package/dist/{chunk-4SIOF7ZD.cjs.map → chunk-AGJGRBDD.cjs.map} +1 -1
  16. package/dist/{chunk-RZAGSFAM.js → chunk-ANCH5GYJ.js} +6 -6
  17. package/dist/{chunk-RZAGSFAM.js.map → chunk-ANCH5GYJ.js.map} +1 -1
  18. package/dist/{chunk-J3J7AMBG.js → chunk-AUXVJBHV.js} +3 -3
  19. package/dist/{chunk-J3J7AMBG.js.map → chunk-AUXVJBHV.js.map} +1 -1
  20. package/dist/{chunk-MIQJS7XN.js → chunk-BNYQVIRY.js} +6 -7
  21. package/dist/chunk-BNYQVIRY.js.map +1 -0
  22. package/dist/{chunk-YKVNJVGJ.cjs → chunk-BZDTNUHJ.cjs} +7 -7
  23. package/dist/{chunk-YKVNJVGJ.cjs.map → chunk-BZDTNUHJ.cjs.map} +1 -1
  24. package/dist/{chunk-HR2HOA5D.cjs → chunk-CGLMV75H.cjs} +8 -8
  25. package/dist/chunk-CGLMV75H.cjs.map +1 -0
  26. package/dist/{chunk-YOULDYHE.js → chunk-CHKSDG3W.js} +6 -6
  27. package/dist/chunk-CHKSDG3W.js.map +1 -0
  28. package/dist/{chunk-YJOKHEUC.js → chunk-E3RTDQG6.js} +3 -3
  29. package/dist/{chunk-YJOKHEUC.js.map → chunk-E3RTDQG6.js.map} +1 -1
  30. package/dist/{chunk-TWABWFKL.js → chunk-IARXPG3L.js} +3 -3
  31. package/dist/{chunk-TWABWFKL.js.map → chunk-IARXPG3L.js.map} +1 -1
  32. package/dist/{chunk-2JXD2KJI.cjs → chunk-Q7ZL5HZV.cjs} +21 -21
  33. package/dist/{chunk-2JXD2KJI.cjs.map → chunk-Q7ZL5HZV.cjs.map} +1 -1
  34. package/dist/index.cjs +12 -12
  35. package/dist/index.js +4 -4
  36. package/dist/server/handlers/auth/helpers.d.ts.map +1 -1
  37. package/dist/server/handlers/routes/networks/router.d.ts +0 -1
  38. package/dist/server/handlers/routes/networks/router.d.ts.map +1 -1
  39. package/dist/server/handlers/routes/workflows/handlers.d.ts +1 -0
  40. package/dist/server/handlers/routes/workflows/handlers.d.ts.map +1 -1
  41. package/dist/server/handlers/routes/workflows/router.d.ts.map +1 -1
  42. package/dist/server/index.cjs +75 -206
  43. package/dist/server/index.cjs.map +1 -1
  44. package/dist/server/index.d.ts.map +1 -1
  45. package/dist/server/index.js +76 -207
  46. package/dist/server/index.js.map +1 -1
  47. package/dist/services/index.cjs +4 -4
  48. package/dist/services/index.js +1 -1
  49. package/package.json +8 -8
  50. package/dist/chunk-HR2HOA5D.cjs.map +0 -1
  51. package/dist/chunk-MIQJS7XN.js.map +0 -1
  52. package/dist/chunk-YHISSTZJ.cjs.map +0 -1
  53. package/dist/chunk-YOULDYHE.js.map +0 -1
  54. package/dist/server/handlers/routes/networks/network.d.ts +0 -6
  55. package/dist/server/handlers/routes/networks/network.d.ts.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;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;2CAqgBhE;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;2CAogBhE;AAED,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,mBAAmC,mDAoDlG"}
@@ -31,14 +31,13 @@ import { getLogsHandler as getLogsHandler$1, getLogTransports as getLogTransport
31
31
  import util from 'util';
32
32
  import { Buffer as Buffer$1 } from 'buffer';
33
33
  import { getMemoryStatusHandler as getMemoryStatusHandler$1, getThreadsHandler as getThreadsHandler$1, getThreadByIdHandler as getThreadByIdHandler$1, getMessagesHandler as getMessagesHandler$1, createThreadHandler as createThreadHandler$1, updateThreadHandler as updateThreadHandler$1, deleteThreadHandler as deleteThreadHandler$1, saveMessagesHandler as saveMessagesHandler$1, deleteMessagesHandler as deleteMessagesHandler$1, getMemoryConfigHandler as getMemoryConfigHandler$1, getThreadsPaginatedHandler as getThreadsPaginatedHandler$1, getMessagesPaginatedHandler as getMessagesPaginatedHandler$1, searchMemoryHandler as searchMemoryHandler$1, getWorkingMemoryHandler as getWorkingMemoryHandler$1, updateWorkingMemoryHandler as updateWorkingMemoryHandler$1 } from '@mastra/server/handlers/memory';
34
- import { getNetworksHandler as getNetworksHandler$1, getNetworkByIdHandler as getNetworkByIdHandler$1, generateHandler as generateHandler$2, streamGenerateHandler as streamGenerateHandler$2 } from '@mastra/server/handlers/network';
35
34
  import { getVNextNetworksHandler as getVNextNetworksHandler$1, getVNextNetworkByIdHandler as getVNextNetworkByIdHandler$1, generateVNextNetworkHandler as generateVNextNetworkHandler$1, loopVNextNetworkHandler as loopVNextNetworkHandler$1, loopStreamVNextNetworkHandler as loopStreamVNextNetworkHandler$1, streamGenerateVNextNetworkHandler as streamGenerateVNextNetworkHandler$1 } from '@mastra/server/handlers/vNextNetwork';
36
35
  import { AISpanType } from '@mastra/core/ai-tracing';
37
36
  import { getAITracesPaginatedHandler as getAITracesPaginatedHandler$1, getAITraceHandler as getAITraceHandler$1 } from '@mastra/server/handlers/observability';
38
37
  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';
39
38
  import { getTelemetryHandler as getTelemetryHandler$1, storeTelemetryHandler as storeTelemetryHandler$1 } from '@mastra/server/handlers/telemetry';
40
39
  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';
41
- 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, resumeAsyncWorkflowHandler as resumeAsyncWorkflowHandler$1, streamWorkflowHandler as streamWorkflowHandler$1, streamVNextWorkflowHandler as streamVNextWorkflowHandler$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';
40
+ 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, resumeAsyncWorkflowHandler as resumeAsyncWorkflowHandler$1, streamWorkflowHandler as streamWorkflowHandler$1, observeStreamWorkflowHandler as observeStreamWorkflowHandler$1, streamVNextWorkflowHandler as streamVNextWorkflowHandler$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
41
  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';
43
42
 
44
43
  // src/server/index.ts
@@ -413,8 +412,9 @@ var responseViaCache = async (res, outgoing) => {
413
412
  }
414
413
  outgoing[outgoingEnded]?.();
415
414
  };
415
+ var isPromise = (res) => typeof res.then === "function";
416
416
  var responseViaResponseObject = async (res, outgoing, options = {}) => {
417
- if (res instanceof Promise) {
417
+ if (isPromise(res)) {
418
418
  if (options.errorHandler) {
419
419
  try {
420
420
  res = await res;
@@ -1102,7 +1102,6 @@ var pathMatchesRule = (path, rulePath) => {
1102
1102
  return pathMatchesPattern(path, rulePath);
1103
1103
  }
1104
1104
  if (rulePath instanceof RegExp) {
1105
- console.log("rulePath", rulePath, path, rulePath.test(path));
1106
1105
  return rulePath.test(path);
1107
1106
  }
1108
1107
  if (Array.isArray(rulePath)) {
@@ -1282,11 +1281,11 @@ function handleTriggerClientsRefresh(c2) {
1282
1281
  }
1283
1282
  function disableHotReload() {
1284
1283
  hotReloadDisabled = true;
1285
- console.log("\u{1F512} Hot reload disabled for template installation");
1284
+ console.info("\u{1F512} Hot reload disabled for template installation");
1286
1285
  }
1287
1286
  function enableHotReload() {
1288
1287
  hotReloadDisabled = false;
1289
- console.log("\u{1F513} Hot reload re-enabled after template installation");
1288
+ console.info("\u{1F513} Hot reload re-enabled after template installation");
1290
1289
  }
1291
1290
  function isHotReloadDisabled() {
1292
1291
  return hotReloadDisabled;
@@ -8231,68 +8230,6 @@ function memoryRoutes(bodyLimitOptions) {
8231
8230
  );
8232
8231
  return router;
8233
8232
  }
8234
- async function getNetworksHandler(c2) {
8235
- try {
8236
- const mastra = c2.get("mastra");
8237
- const runtimeContext = c2.get("runtimeContext");
8238
- const networks = await getNetworksHandler$1({
8239
- mastra,
8240
- runtimeContext
8241
- });
8242
- return c2.json(networks);
8243
- } catch (error) {
8244
- return handleError(error, "Error getting networks");
8245
- }
8246
- }
8247
- async function getNetworkByIdHandler(c2) {
8248
- try {
8249
- const mastra = c2.get("mastra");
8250
- const networkId = c2.req.param("networkId");
8251
- const runtimeContext = c2.get("runtimeContext");
8252
- const network = await getNetworkByIdHandler$1({
8253
- mastra,
8254
- networkId,
8255
- runtimeContext
8256
- });
8257
- return c2.json(network);
8258
- } catch (error) {
8259
- return handleError(error, "Error getting network by ID");
8260
- }
8261
- }
8262
- async function generateHandler2(c2) {
8263
- try {
8264
- const mastra = c2.get("mastra");
8265
- const runtimeContext = c2.get("runtimeContext");
8266
- const networkId = c2.req.param("networkId");
8267
- const body = await c2.req.json();
8268
- const result = await generateHandler$2({
8269
- mastra,
8270
- runtimeContext,
8271
- networkId,
8272
- body
8273
- });
8274
- return c2.json(result);
8275
- } catch (error) {
8276
- return handleError(error, "Error generating from network");
8277
- }
8278
- }
8279
- async function streamGenerateHandler2(c2) {
8280
- try {
8281
- const mastra = c2.get("mastra");
8282
- const runtimeContext = c2.get("runtimeContext");
8283
- const networkId = c2.req.param("networkId");
8284
- const body = await c2.req.json();
8285
- const streamResponse = await streamGenerateHandler$2({
8286
- mastra,
8287
- runtimeContext,
8288
- networkId,
8289
- body
8290
- });
8291
- return streamResponse;
8292
- } catch (error) {
8293
- return handleError(error, "Error streaming from network");
8294
- }
8295
- }
8296
8233
  async function getVNextNetworksHandler(c2) {
8297
8234
  try {
8298
8235
  const mastra = c2.get("mastra");
@@ -8670,143 +8607,6 @@ function vNextNetworksRouter(bodyLimitOptions) {
8670
8607
  );
8671
8608
  return router;
8672
8609
  }
8673
- function networksRouter(bodyLimitOptions) {
8674
- const router = new Hono();
8675
- router.get(
8676
- "/",
8677
- w({
8678
- description: "Get all available networks",
8679
- tags: ["networks"],
8680
- responses: {
8681
- 200: {
8682
- description: "List of all networks"
8683
- }
8684
- }
8685
- }),
8686
- getNetworksHandler
8687
- );
8688
- router.get(
8689
- "/:networkId",
8690
- w({
8691
- description: "Get network by ID",
8692
- tags: ["networks"],
8693
- parameters: [
8694
- {
8695
- name: "networkId",
8696
- in: "path",
8697
- required: true,
8698
- schema: { type: "string" }
8699
- }
8700
- ],
8701
- responses: {
8702
- 200: {
8703
- description: "Network details"
8704
- },
8705
- 404: {
8706
- description: "Network not found"
8707
- }
8708
- }
8709
- }),
8710
- getNetworkByIdHandler
8711
- );
8712
- router.post(
8713
- "/:networkId/generate",
8714
- bodyLimit(bodyLimitOptions),
8715
- w({
8716
- description: "Generate a response from a network",
8717
- tags: ["networks"],
8718
- parameters: [
8719
- {
8720
- name: "networkId",
8721
- in: "path",
8722
- required: true,
8723
- schema: { type: "string" }
8724
- }
8725
- ],
8726
- requestBody: {
8727
- required: true,
8728
- content: {
8729
- "application/json": {
8730
- schema: {
8731
- type: "object",
8732
- properties: {
8733
- input: {
8734
- oneOf: [
8735
- { type: "string" },
8736
- {
8737
- type: "array",
8738
- items: { type: "object" }
8739
- }
8740
- ],
8741
- description: "Input for the network, can be a string or an array of CoreMessage objects"
8742
- }
8743
- },
8744
- required: ["input"]
8745
- }
8746
- }
8747
- }
8748
- },
8749
- responses: {
8750
- 200: {
8751
- description: "Generated response"
8752
- },
8753
- 404: {
8754
- description: "Network not found"
8755
- }
8756
- }
8757
- }),
8758
- generateHandler2
8759
- );
8760
- router.post(
8761
- "/:networkId/stream",
8762
- bodyLimit(bodyLimitOptions),
8763
- w({
8764
- description: "Generate a response from a network",
8765
- tags: ["networks"],
8766
- parameters: [
8767
- {
8768
- name: "networkId",
8769
- in: "path",
8770
- required: true,
8771
- schema: { type: "string" }
8772
- }
8773
- ],
8774
- requestBody: {
8775
- required: true,
8776
- content: {
8777
- "application/json": {
8778
- schema: {
8779
- type: "object",
8780
- properties: {
8781
- input: {
8782
- oneOf: [
8783
- { type: "string" },
8784
- {
8785
- type: "array",
8786
- items: { type: "object" }
8787
- }
8788
- ],
8789
- description: "Input for the network, can be a string or an array of CoreMessage objects"
8790
- }
8791
- },
8792
- required: ["input"]
8793
- }
8794
- }
8795
- }
8796
- },
8797
- responses: {
8798
- 200: {
8799
- description: "Generated response"
8800
- },
8801
- 404: {
8802
- description: "Network not found"
8803
- }
8804
- }
8805
- }),
8806
- streamGenerateHandler2
8807
- );
8808
- return router;
8809
- }
8810
8610
  async function getAITraceHandler(c2) {
8811
8611
  try {
8812
8612
  const mastra = c2.get("mastra");
@@ -9871,6 +9671,46 @@ async function streamWorkflowHandler(c2) {
9871
9671
  return handleError(error, "Error streaming workflow");
9872
9672
  }
9873
9673
  }
9674
+ async function observeStreamWorkflowHandler(c2) {
9675
+ try {
9676
+ const mastra = c2.get("mastra");
9677
+ const logger2 = mastra.getLogger();
9678
+ const workflowId = c2.req.param("workflowId");
9679
+ const runId = c2.req.query("runId");
9680
+ if (!runId) {
9681
+ throw new HTTPException(400, { message: "runId required to observe workflow stream" });
9682
+ }
9683
+ c2.header("Transfer-Encoding", "chunked");
9684
+ return stream(
9685
+ c2,
9686
+ async (stream7) => {
9687
+ try {
9688
+ const result = await observeStreamWorkflowHandler$1({
9689
+ mastra,
9690
+ workflowId,
9691
+ runId
9692
+ });
9693
+ const reader = result.getReader();
9694
+ stream7.onAbort(() => {
9695
+ void reader.cancel("request aborted");
9696
+ });
9697
+ let chunkResult;
9698
+ while ((chunkResult = await reader.read()) && !chunkResult.done) {
9699
+ await stream7.write(JSON.stringify(chunkResult.value) + "");
9700
+ }
9701
+ } catch (err) {
9702
+ logger2.error("Error in workflow observe stream: " + (err?.message ?? "Unknown error"));
9703
+ }
9704
+ await stream7.close();
9705
+ },
9706
+ async (err) => {
9707
+ logger2.error("Error in workflow observe stream: " + err?.message);
9708
+ }
9709
+ );
9710
+ } catch (error) {
9711
+ return handleError(error, "Error observing workflow stream");
9712
+ }
9713
+ }
9874
9714
  async function streamVNextWorkflowHandler(c2) {
9875
9715
  try {
9876
9716
  const mastra = c2.get("mastra");
@@ -10141,7 +9981,7 @@ function watchLegacyWorkflowHandler(c2) {
10141
9981
  await stream7.write(chunk.toString() + "");
10142
9982
  }
10143
9983
  } catch (err) {
10144
- console.log(err);
9984
+ console.error(err);
10145
9985
  }
10146
9986
  },
10147
9987
  async (err) => {
@@ -10753,6 +10593,36 @@ function workflowsRouter(bodyLimitOptions) {
10753
10593
  }),
10754
10594
  streamWorkflowHandler
10755
10595
  );
10596
+ router.post(
10597
+ "/:workflowId/observe-stream",
10598
+ w({
10599
+ description: "Observe workflow stream in real-time",
10600
+ parameters: [
10601
+ {
10602
+ name: "workflowId",
10603
+ in: "path",
10604
+ required: true,
10605
+ schema: { type: "string" }
10606
+ },
10607
+ {
10608
+ name: "runId",
10609
+ in: "query",
10610
+ required: true,
10611
+ schema: { type: "string" }
10612
+ }
10613
+ ],
10614
+ responses: {
10615
+ 200: {
10616
+ description: "workflow stream observed"
10617
+ },
10618
+ 404: {
10619
+ description: "workflow not found"
10620
+ }
10621
+ },
10622
+ tags: ["workflows"]
10623
+ }),
10624
+ observeStreamWorkflowHandler
10625
+ );
10756
10626
  router.post(
10757
10627
  "/:workflowId/streamVNext",
10758
10628
  w({
@@ -11457,7 +11327,6 @@ async function createHonoServer(mastra, options = {
11457
11327
  );
11458
11328
  app.route("/api/agents", agentsRouter(bodyLimitOptions));
11459
11329
  app.route("/api/networks", vNextNetworksRouter(bodyLimitOptions));
11460
- app.route("/api/networks", networksRouter(bodyLimitOptions));
11461
11330
  if (options.isDev) {
11462
11331
  app.route("/api/agents", agentsRouterDev(bodyLimitOptions));
11463
11332
  }