@mastra/ai-sdk 0.0.0-fix-read-json-esm-20251009172143 → 0.0.0-fix-model-router-machine-cache-20251021232825

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -210,6 +210,9 @@ function convertMastraChunkToAISDKv5({
210
210
  ...chunk.payload || {}
211
211
  };
212
212
  }
213
+ if ("type" in chunk && chunk.type?.startsWith("data-")) {
214
+ return chunk;
215
+ }
213
216
  return;
214
217
  }
215
218
  }
@@ -223,7 +226,7 @@ function convertFullStreamChunkToUIMessageStream({
223
226
  sendFinish,
224
227
  responseMessageId
225
228
  }) {
226
- const partType = part.type;
229
+ const partType = part?.type;
227
230
  switch (partType) {
228
231
  case "text-start": {
229
232
  return {
@@ -317,6 +320,18 @@ function convertFullStreamChunkToUIMessageStream({
317
320
  toolCallId: part.toolCallId,
318
321
  payload: part.output
319
322
  };
323
+ } else if (part.output.from === "WORKFLOW") {
324
+ return {
325
+ type: "tool-workflow",
326
+ toolCallId: part.toolCallId,
327
+ payload: part.output
328
+ };
329
+ } else if (part.output.from === "NETWORK") {
330
+ return {
331
+ type: "tool-network",
332
+ toolCallId: part.toolCallId,
333
+ payload: part.output
334
+ };
320
335
  }
321
336
  return;
322
337
  }
@@ -368,102 +383,56 @@ function convertFullStreamChunkToUIMessageStream({
368
383
  return;
369
384
  }
370
385
  default: {
371
- const exhaustiveCheck = partType;
372
- throw new Error(`Unknown chunk type: ${exhaustiveCheck}`);
386
+ if ("type" in part && part.type?.startsWith("data-")) {
387
+ if (!("data" in part)) {
388
+ throw new Error(
389
+ `UI Messages require a data property when using data- prefixed chunks
390
+ ${JSON.stringify(part)}`
391
+ );
392
+ }
393
+ return part;
394
+ }
395
+ return;
373
396
  }
374
397
  }
375
398
  }
376
399
 
377
- // src/to-ai-sdk-format.ts
400
+ // src/transformers.ts
378
401
  function WorkflowStreamToAISDKTransformer() {
379
- const steps = {};
402
+ const bufferedWorkflows = /* @__PURE__ */ new Map();
380
403
  return new TransformStream({
381
404
  start(controller) {
382
405
  controller.enqueue({
383
- data: JSON.stringify({
384
- type: "start",
385
- messageId: "1"
386
- })
406
+ type: "start"
387
407
  });
388
408
  },
389
409
  flush(controller) {
390
410
  controller.enqueue({
391
- data: JSON.stringify({
392
- type: "finish"
393
- })
411
+ type: "finish"
394
412
  });
413
+ },
414
+ transform(chunk, controller) {
415
+ const transformed = transformWorkflow(chunk, bufferedWorkflows);
416
+ if (transformed) controller.enqueue(transformed);
417
+ }
418
+ });
419
+ }
420
+ function AgentNetworkToAISDKTransformer() {
421
+ const bufferedNetworks = /* @__PURE__ */ new Map();
422
+ return new TransformStream({
423
+ start(controller) {
395
424
  controller.enqueue({
396
- data: "[DONE]"
425
+ type: "start"
426
+ });
427
+ },
428
+ flush(controller) {
429
+ controller.enqueue({
430
+ type: "finish"
397
431
  });
398
432
  },
399
433
  transform(chunk, controller) {
400
- let workflowName = "";
401
- if (chunk.type === "workflow-start") {
402
- workflowName = chunk.payload.workflowId;
403
- controller.enqueue({
404
- data: JSON.stringify({
405
- type: "data-workflow",
406
- id: chunk.runId,
407
- data: {
408
- name: workflowName,
409
- status: "running",
410
- steps: {},
411
- output: null
412
- }
413
- })
414
- });
415
- } else if (chunk.type === "workflow-step-start") {
416
- steps[chunk.payload.id] = {
417
- // TODO swap with name
418
- name: chunk.payload.id,
419
- status: chunk.payload.status,
420
- input: chunk.payload.payload ?? null,
421
- output: null
422
- };
423
- controller.enqueue({
424
- data: JSON.stringify({
425
- type: "data-workflow",
426
- id: chunk.runId,
427
- data: {
428
- name: workflowName,
429
- status: "running",
430
- steps,
431
- output: null
432
- }
433
- })
434
- });
435
- } else if (chunk.type === "workflow-step-result") {
436
- steps[chunk.payload.id] = {
437
- ...steps[chunk.payload.id],
438
- status: chunk.payload.status,
439
- output: chunk.payload.output ?? null
440
- };
441
- controller.enqueue({
442
- data: JSON.stringify({
443
- type: "data-workflow",
444
- id: chunk.runId,
445
- data: {
446
- name: workflowName,
447
- status: "running",
448
- steps,
449
- output: null
450
- }
451
- })
452
- });
453
- } else if (chunk.type === "workflow-finish") {
454
- controller.enqueue({
455
- data: JSON.stringify({
456
- type: "data-workflow",
457
- id: chunk.runId,
458
- data: {
459
- name: workflowName,
460
- steps,
461
- output: chunk.payload.output ?? null,
462
- status: chunk.payload.workflowStatus
463
- }
464
- })
465
- });
466
- }
434
+ const transformed = transformNetwork(chunk, bufferedNetworks);
435
+ if (transformed) controller.enqueue(transformed);
467
436
  }
468
437
  });
469
438
  }
@@ -488,6 +457,14 @@ function AgentStreamToAISDKTransformer() {
488
457
  const payload = transformedChunk.payload;
489
458
  const agentTransformed = transformAgent(payload, bufferedSteps);
490
459
  if (agentTransformed) controller.enqueue(agentTransformed);
460
+ } else if (transformedChunk.type === "tool-workflow") {
461
+ const payload = transformedChunk.payload;
462
+ const workflowChunk = transformWorkflow(payload, bufferedSteps, true);
463
+ if (workflowChunk) controller.enqueue(workflowChunk);
464
+ } else if (transformedChunk.type === "tool-network") {
465
+ const payload = transformedChunk.payload;
466
+ const networkChunk = transformNetwork(payload, bufferedSteps, true);
467
+ if (networkChunk) controller.enqueue(networkChunk);
491
468
  } else {
492
469
  controller.enqueue(transformedChunk);
493
470
  }
@@ -631,8 +608,295 @@ function transformAgent(payload, bufferedSteps) {
631
608
  }
632
609
  return null;
633
610
  }
634
- function toAISdkFormat(stream) {
635
- return stream.fullStream.pipeThrough(AgentStreamToAISDKTransformer());
611
+ function transformWorkflow(payload, bufferedWorkflows, isNested) {
612
+ switch (payload.type) {
613
+ case "workflow-start":
614
+ bufferedWorkflows.set(payload.runId, {
615
+ name: payload.payload.workflowId,
616
+ steps: {}
617
+ });
618
+ return {
619
+ type: isNested ? "data-tool-workflow" : "data-workflow",
620
+ id: payload.runId,
621
+ data: {
622
+ name: bufferedWorkflows.get(payload.runId).name,
623
+ status: "running",
624
+ steps: bufferedWorkflows.get(payload.runId).steps,
625
+ output: null
626
+ }
627
+ };
628
+ case "workflow-step-start": {
629
+ const current = bufferedWorkflows.get(payload.runId) || { name: "", steps: {} };
630
+ current.steps[payload.payload.id] = {
631
+ name: payload.payload.id,
632
+ status: payload.payload.status,
633
+ input: payload.payload.payload ?? null,
634
+ output: null
635
+ };
636
+ bufferedWorkflows.set(payload.runId, current);
637
+ return {
638
+ type: isNested ? "data-tool-workflow" : "data-workflow",
639
+ id: payload.runId,
640
+ data: {
641
+ name: current.name,
642
+ status: "running",
643
+ steps: current.steps,
644
+ output: null
645
+ }
646
+ };
647
+ }
648
+ case "workflow-step-result": {
649
+ const current = bufferedWorkflows.get(payload.runId);
650
+ if (!current) return null;
651
+ current.steps[payload.payload.id] = {
652
+ ...current.steps[payload.payload.id],
653
+ status: payload.payload.status,
654
+ output: payload.payload.output ?? null
655
+ };
656
+ return {
657
+ type: isNested ? "data-tool-workflow" : "data-workflow",
658
+ id: payload.runId,
659
+ data: {
660
+ name: current.name,
661
+ status: "running",
662
+ steps: current.steps,
663
+ output: null
664
+ }
665
+ };
666
+ }
667
+ case "workflow-finish": {
668
+ const current = bufferedWorkflows.get(payload.runId);
669
+ if (!current) return null;
670
+ return {
671
+ type: isNested ? "data-tool-workflow" : "data-workflow",
672
+ id: payload.runId,
673
+ data: {
674
+ name: current.name,
675
+ steps: current.steps,
676
+ output: payload.payload.output ?? null,
677
+ status: payload.payload.workflowStatus
678
+ }
679
+ };
680
+ }
681
+ default:
682
+ return null;
683
+ }
684
+ }
685
+ function transformNetwork(payload, bufferedNetworks, isNested) {
686
+ switch (payload.type) {
687
+ case "routing-agent-start": {
688
+ if (!bufferedNetworks.has(payload.payload.runId)) {
689
+ bufferedNetworks.set(payload.payload.runId, {
690
+ name: payload.payload.agentId,
691
+ steps: []
692
+ });
693
+ }
694
+ return {
695
+ type: isNested ? "data-tool-network" : "data-network",
696
+ id: payload.payload.runId,
697
+ data: {
698
+ name: bufferedNetworks.get(payload.payload.runId).name,
699
+ status: "running",
700
+ steps: bufferedNetworks.get(payload.payload.runId).steps,
701
+ output: null
702
+ }
703
+ };
704
+ }
705
+ case "routing-agent-text-start": {
706
+ const current = bufferedNetworks.get(payload.runId);
707
+ if (!current) return null;
708
+ return {
709
+ type: "text-start",
710
+ id: payload.runId
711
+ };
712
+ }
713
+ case "routing-agent-text-delta": {
714
+ const current = bufferedNetworks.get(payload.runId);
715
+ if (!current) return null;
716
+ return {
717
+ type: "text-delta",
718
+ id: payload.runId,
719
+ delta: payload.payload.text
720
+ };
721
+ }
722
+ case "agent-execution-start": {
723
+ const current = bufferedNetworks.get(payload.payload.runId) || { name: "", steps: [] };
724
+ current.steps.push({
725
+ name: payload.payload.agentId,
726
+ status: "running",
727
+ input: payload.payload.args || null,
728
+ output: null
729
+ });
730
+ bufferedNetworks.set(payload.payload.runId, current);
731
+ return {
732
+ type: isNested ? "data-tool-network" : "data-network",
733
+ id: payload.payload.runId,
734
+ data: {
735
+ name: current.name,
736
+ status: "running",
737
+ steps: current.steps,
738
+ output: null
739
+ }
740
+ };
741
+ }
742
+ case "workflow-execution-start": {
743
+ const current = bufferedNetworks.get(payload.payload.runId) || { name: "", steps: [] };
744
+ current.steps.push({
745
+ name: payload.payload.name,
746
+ status: "running",
747
+ input: payload.payload.args || null,
748
+ output: null
749
+ });
750
+ bufferedNetworks.set(payload.payload.runId, current);
751
+ return {
752
+ type: isNested ? "data-tool-network" : "data-network",
753
+ id: payload.payload.runId,
754
+ data: {
755
+ name: current.name,
756
+ status: "running",
757
+ steps: current.steps,
758
+ output: null
759
+ }
760
+ };
761
+ }
762
+ case "tool-execution-start": {
763
+ const current = bufferedNetworks.get(payload.payload.runId) || { name: "", steps: [] };
764
+ current.steps.push({
765
+ name: payload.payload.args?.toolName,
766
+ status: "running",
767
+ input: payload.payload.args?.args || null,
768
+ output: null
769
+ });
770
+ bufferedNetworks.set(payload.payload.runId, current);
771
+ return {
772
+ type: isNested ? "data-tool-network" : "data-network",
773
+ id: payload.payload.runId,
774
+ data: {
775
+ name: current.name,
776
+ status: "running",
777
+ steps: current.steps,
778
+ output: null
779
+ }
780
+ };
781
+ }
782
+ case "agent-execution-end": {
783
+ const current = bufferedNetworks.get(payload.runId);
784
+ if (!current) return null;
785
+ current.steps.push({
786
+ name: payload.payload.agentId,
787
+ status: "success",
788
+ input: null,
789
+ output: payload.payload.result
790
+ });
791
+ return {
792
+ type: isNested ? "data-tool-network" : "data-network",
793
+ id: payload.runId,
794
+ data: {
795
+ name: current.name,
796
+ status: "running",
797
+ steps: current.steps,
798
+ output: payload.payload.result ?? null
799
+ }
800
+ };
801
+ }
802
+ case "tool-execution-end": {
803
+ const current = bufferedNetworks.get(payload.runId);
804
+ if (!current) return null;
805
+ current.steps.push({
806
+ name: payload.payload.toolName,
807
+ status: "success",
808
+ input: null,
809
+ output: payload.payload.result
810
+ });
811
+ return {
812
+ type: isNested ? "data-tool-network" : "data-network",
813
+ id: payload.runId,
814
+ data: {
815
+ name: current.name,
816
+ status: "running",
817
+ steps: current.steps,
818
+ output: payload.payload.result ?? null
819
+ }
820
+ };
821
+ }
822
+ case "workflow-execution-end": {
823
+ const current = bufferedNetworks.get(payload.runId);
824
+ if (!current) return null;
825
+ current.steps.push({
826
+ name: payload.payload.name,
827
+ status: "success",
828
+ input: null,
829
+ output: payload.payload.result
830
+ });
831
+ return {
832
+ type: isNested ? "data-tool-network" : "data-network",
833
+ id: payload.runId,
834
+ data: {
835
+ name: current.name,
836
+ status: "running",
837
+ steps: current.steps,
838
+ output: payload.payload.result ?? null
839
+ }
840
+ };
841
+ }
842
+ case "routing-agent-end": {
843
+ const current = bufferedNetworks.get(payload.payload.runId);
844
+ if (!current) return null;
845
+ return {
846
+ type: isNested ? "data-tool-network" : "data-network",
847
+ id: payload.payload.runId,
848
+ data: {
849
+ name: current.name,
850
+ status: "finished",
851
+ steps: current.steps,
852
+ output: payload.payload?.result ?? null
853
+ }
854
+ };
855
+ }
856
+ case "network-execution-event-step-finish": {
857
+ const current = bufferedNetworks.get(payload.payload.runId);
858
+ if (!current) return null;
859
+ return {
860
+ type: isNested ? "data-tool-network" : "data-network",
861
+ id: payload.payload.runId,
862
+ data: {
863
+ name: current.name,
864
+ status: "finished",
865
+ steps: current.steps,
866
+ output: payload.payload?.result ?? null
867
+ }
868
+ };
869
+ }
870
+ case "network-execution-event-finish": {
871
+ const current = bufferedNetworks.get(payload.runId);
872
+ if (!current) return null;
873
+ return {
874
+ type: isNested ? "data-tool-network" : "data-network",
875
+ id: payload.runId,
876
+ data: {
877
+ name: current.name,
878
+ status: "finished",
879
+ steps: current.steps,
880
+ output: payload.payload?.result ?? null
881
+ }
882
+ };
883
+ }
884
+ default:
885
+ return null;
886
+ }
887
+ }
888
+
889
+ // src/to-ai-sdk-format.ts
890
+ function toAISdkFormat(stream, options = { from: "agent" }) {
891
+ const from = options?.from;
892
+ if (from === "workflow") {
893
+ return stream.pipeThrough(WorkflowStreamToAISDKTransformer());
894
+ }
895
+ if (from === "network") {
896
+ return stream.pipeThrough(AgentNetworkToAISDKTransformer());
897
+ }
898
+ const agentReadable = "fullStream" in stream ? stream.fullStream : stream;
899
+ return agentReadable.pipeThrough(AgentStreamToAISDKTransformer());
636
900
  }
637
901
 
638
902
  // src/chat-route.ts
@@ -740,6 +1004,7 @@ function chatRoute({
740
1004
  handler: async (c) => {
741
1005
  const { messages, ...rest } = await c.req.json();
742
1006
  const mastra = c.get("mastra");
1007
+ const runtimeContext = c.get("runtimeContext");
743
1008
  let agentToUse = agent;
744
1009
  if (!agent) {
745
1010
  const agentId = c.req.param("agentId");
@@ -750,6 +1015,9 @@ function chatRoute({
750
1015
  `Fixed agent ID was set together with an agentId path parameter. This can lead to unexpected behavior.`
751
1016
  );
752
1017
  }
1018
+ if (runtimeContext && defaultOptions?.runtimeContext) {
1019
+ mastra.getLogger()?.warn(`"runtimeContext" set in the route options will be overridden by the request's "runtimeContext".`);
1020
+ }
753
1021
  if (!agentToUse) {
754
1022
  throw new Error("Agent ID is required");
755
1023
  }
@@ -759,11 +1027,13 @@ function chatRoute({
759
1027
  }
760
1028
  const result = await agentObj.stream(messages, {
761
1029
  ...defaultOptions,
762
- ...rest
1030
+ ...rest,
1031
+ runtimeContext: runtimeContext || defaultOptions?.runtimeContext
763
1032
  });
764
1033
  const uiMessageStream = ai.createUIMessageStream({
1034
+ originalMessages: messages,
765
1035
  execute: async ({ writer }) => {
766
- for await (const part of toAISdkFormat(result)) {
1036
+ for await (const part of toAISdkFormat(result, { from: "agent" })) {
767
1037
  writer.write(part);
768
1038
  }
769
1039
  }
@@ -774,9 +1044,186 @@ function chatRoute({
774
1044
  }
775
1045
  });
776
1046
  }
1047
+ function workflowRoute({
1048
+ path = "/api/workflows/:workflowId/stream",
1049
+ workflow
1050
+ }) {
1051
+ if (!workflow && !path.includes("/:workflowId")) {
1052
+ throw new Error("Path must include :workflowId to route to the correct workflow or pass the workflow explicitly");
1053
+ }
1054
+ return server.registerApiRoute(path, {
1055
+ method: "POST",
1056
+ openapi: {
1057
+ summary: "Stream a workflow in AI SDK format",
1058
+ description: "Starts a workflow run and streams events as AI SDK UIMessage chunks",
1059
+ tags: ["ai-sdk"],
1060
+ parameters: [
1061
+ {
1062
+ name: "workflowId",
1063
+ in: "path",
1064
+ required: true,
1065
+ description: "The ID of the workflow to stream",
1066
+ schema: { type: "string" }
1067
+ }
1068
+ ],
1069
+ requestBody: {
1070
+ required: true,
1071
+ content: {
1072
+ "application/json": {
1073
+ schema: {
1074
+ type: "object",
1075
+ properties: {
1076
+ inputData: { type: "object", additionalProperties: true },
1077
+ runtimeContext: { type: "object", additionalProperties: true },
1078
+ tracingOptions: { type: "object", additionalProperties: true }
1079
+ }
1080
+ }
1081
+ }
1082
+ }
1083
+ },
1084
+ responses: {
1085
+ "200": {
1086
+ description: "Workflow UIMessage event stream",
1087
+ content: {
1088
+ "text/plain": {
1089
+ schema: { type: "string", description: "SSE stream" }
1090
+ }
1091
+ }
1092
+ }
1093
+ }
1094
+ },
1095
+ handler: async (c) => {
1096
+ const { inputData, ...rest } = await c.req.json();
1097
+ const mastra = c.get("mastra");
1098
+ let workflowToUse = workflow;
1099
+ if (!workflow) {
1100
+ const workflowId = c.req.param("workflowId");
1101
+ workflowToUse = workflowId;
1102
+ }
1103
+ if (c.req.param("workflowId") && workflow) {
1104
+ mastra.getLogger()?.warn(
1105
+ `Fixed workflow ID was set together with a workflowId path parameter. This can lead to unexpected behavior.`
1106
+ );
1107
+ }
1108
+ if (!workflowToUse) {
1109
+ throw new Error("Workflow ID is required");
1110
+ }
1111
+ const workflowObj = mastra.getWorkflow(workflowToUse);
1112
+ if (!workflowObj) {
1113
+ throw new Error(`Workflow ${workflowToUse} not found`);
1114
+ }
1115
+ const run = await workflowObj.createRunAsync();
1116
+ const stream = run.streamVNext({ inputData, ...rest });
1117
+ const uiMessageStream = ai.createUIMessageStream({
1118
+ execute: async ({ writer }) => {
1119
+ for await (const part of toAISdkFormat(stream, { from: "workflow" })) {
1120
+ writer.write(part);
1121
+ }
1122
+ }
1123
+ });
1124
+ return ai.createUIMessageStreamResponse({ stream: uiMessageStream });
1125
+ }
1126
+ });
1127
+ }
1128
+ function networkRoute({
1129
+ path = "/network/:agentId",
1130
+ agent,
1131
+ defaultOptions
1132
+ }) {
1133
+ if (!agent && !path.includes("/:agentId")) {
1134
+ throw new Error("Path must include :agentId to route to the correct agent or pass the agent explicitly");
1135
+ }
1136
+ return server.registerApiRoute(path, {
1137
+ method: "POST",
1138
+ openapi: {
1139
+ summary: "Execute an agent network and stream AI SDK events",
1140
+ description: "Routes a request to an agent network and streams UIMessage chunks in AI SDK format",
1141
+ tags: ["ai-sdk"],
1142
+ parameters: [
1143
+ {
1144
+ name: "agentId",
1145
+ in: "path",
1146
+ required: true,
1147
+ description: "The ID of the routing agent to execute as a network",
1148
+ schema: { type: "string" }
1149
+ }
1150
+ ],
1151
+ requestBody: {
1152
+ required: true,
1153
+ content: {
1154
+ "application/json": {
1155
+ schema: {
1156
+ type: "object",
1157
+ properties: {
1158
+ messages: { type: "array", items: { type: "object" } },
1159
+ runtimeContext: { type: "object", additionalProperties: true },
1160
+ runId: { type: "string" },
1161
+ maxSteps: { type: "number" },
1162
+ threadId: { type: "string" },
1163
+ resourceId: { type: "string" },
1164
+ modelSettings: { type: "object", additionalProperties: true },
1165
+ telemetry: { type: "object", additionalProperties: true },
1166
+ tools: { type: "array", items: { type: "object" } }
1167
+ },
1168
+ required: ["messages"]
1169
+ }
1170
+ }
1171
+ }
1172
+ },
1173
+ responses: {
1174
+ "200": {
1175
+ description: "Streaming AI SDK UIMessage event stream for the agent network",
1176
+ content: { "text/plain": { schema: { type: "string", description: "SSE stream" } } }
1177
+ },
1178
+ "404": {
1179
+ description: "Agent not found",
1180
+ content: {
1181
+ "application/json": {
1182
+ schema: { type: "object", properties: { error: { type: "string" } } }
1183
+ }
1184
+ }
1185
+ }
1186
+ }
1187
+ },
1188
+ handler: async (c) => {
1189
+ const { messages, ...rest } = await c.req.json();
1190
+ const mastra = c.get("mastra");
1191
+ let agentToUse = agent;
1192
+ if (!agent) {
1193
+ const agentId = c.req.param("agentId");
1194
+ agentToUse = agentId;
1195
+ }
1196
+ if (c.req.param("agentId") && agent) {
1197
+ mastra.getLogger()?.warn(
1198
+ `Fixed agent ID was set together with an agentId path parameter. This can lead to unexpected behavior.`
1199
+ );
1200
+ }
1201
+ if (!agentToUse) {
1202
+ throw new Error("Agent ID is required");
1203
+ }
1204
+ const agentObj = mastra.getAgent(agentToUse);
1205
+ if (!agentObj) {
1206
+ throw new Error(`Agent ${agentToUse} not found`);
1207
+ }
1208
+ const result = await agentObj.network(messages, {
1209
+ ...defaultOptions,
1210
+ ...rest
1211
+ });
1212
+ const uiMessageStream = ai.createUIMessageStream({
1213
+ execute: async ({ writer }) => {
1214
+ for await (const part of toAISdkFormat(result, { from: "network" })) {
1215
+ writer.write(part);
1216
+ }
1217
+ }
1218
+ });
1219
+ return ai.createUIMessageStreamResponse({ stream: uiMessageStream });
1220
+ }
1221
+ });
1222
+ }
777
1223
 
778
- exports.WorkflowStreamToAISDKTransformer = WorkflowStreamToAISDKTransformer;
779
1224
  exports.chatRoute = chatRoute;
1225
+ exports.networkRoute = networkRoute;
780
1226
  exports.toAISdkFormat = toAISdkFormat;
1227
+ exports.workflowRoute = workflowRoute;
781
1228
  //# sourceMappingURL=index.cjs.map
782
1229
  //# sourceMappingURL=index.cjs.map