@mastra/ai-sdk 1.1.5-alpha.0 → 1.2.0

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.js CHANGED
@@ -9815,6 +9815,9 @@ var UIMessageStreamError = class extends AISDKError2 {
9815
9815
  }
9816
9816
  };
9817
9817
  _a154 = symbol154;
9818
+ function asArray2(value) {
9819
+ return value === void 0 ? [] : Array.isArray(value) ? value : [value];
9820
+ }
9818
9821
  var dataContentSchema2 = z.union([
9819
9822
  z.string(),
9820
9823
  z.instanceof(Uint8Array),
@@ -11482,6 +11485,60 @@ function createUIMessageStream2({
11482
11485
  }
11483
11486
  createIdGenerator2({ prefix: "aiobj", size: 24 });
11484
11487
  createIdGenerator2({ prefix: "aiobj", size: 24 });
11488
+ var wrapLanguageModel2 = ({
11489
+ model,
11490
+ middleware: middlewareArg,
11491
+ modelId,
11492
+ providerId
11493
+ }) => {
11494
+ return [...asArray2(middlewareArg)].reverse().reduce((wrappedModel, middleware) => {
11495
+ return doWrap2({ model: wrappedModel, middleware, modelId, providerId });
11496
+ }, model);
11497
+ };
11498
+ var doWrap2 = ({
11499
+ model,
11500
+ middleware: {
11501
+ transformParams,
11502
+ wrapGenerate,
11503
+ wrapStream,
11504
+ overrideProvider,
11505
+ overrideModelId,
11506
+ overrideSupportedUrls
11507
+ },
11508
+ modelId,
11509
+ providerId
11510
+ }) => {
11511
+ var _a21, _b93, _c;
11512
+ async function doTransform({
11513
+ params,
11514
+ type
11515
+ }) {
11516
+ return transformParams ? await transformParams({ params, type, model }) : params;
11517
+ }
11518
+ return {
11519
+ specificationVersion: "v3",
11520
+ provider: (_a21 = providerId != null ? providerId : overrideProvider == null ? void 0 : overrideProvider({ model })) != null ? _a21 : model.provider,
11521
+ modelId: (_b93 = modelId != null ? modelId : overrideModelId == null ? void 0 : overrideModelId({ model })) != null ? _b93 : model.modelId,
11522
+ supportedUrls: (_c = overrideSupportedUrls == null ? void 0 : overrideSupportedUrls({ model })) != null ? _c : model.supportedUrls,
11523
+ async doGenerate(params) {
11524
+ const transformedParams = await doTransform({ params, type: "generate" });
11525
+ const doGenerate = async () => model.doGenerate(transformedParams);
11526
+ const doStream = async () => model.doStream(transformedParams);
11527
+ return wrapGenerate ? wrapGenerate({
11528
+ doGenerate,
11529
+ doStream,
11530
+ params: transformedParams,
11531
+ model
11532
+ }) : doGenerate();
11533
+ },
11534
+ async doStream(params) {
11535
+ const transformedParams = await doTransform({ params, type: "stream" });
11536
+ const doGenerate = async () => model.doGenerate(transformedParams);
11537
+ const doStream = async () => model.doStream(transformedParams);
11538
+ return wrapStream ? wrapStream({ doGenerate, doStream, params: transformedParams, model }) : doStream();
11539
+ }
11540
+ };
11541
+ };
11485
11542
 
11486
11543
  // src/utils.ts
11487
11544
  var isDataChunkType = (chunk) => {
@@ -13039,7 +13096,8 @@ async function handleChatStream({
13039
13096
  sendStart = true,
13040
13097
  sendFinish = true,
13041
13098
  sendReasoning = false,
13042
- sendSources = false
13099
+ sendSources = false,
13100
+ messageMetadata
13043
13101
  }) {
13044
13102
  const { messages, resumeData, runId, requestContext, trigger, ...rest } = params;
13045
13103
  if (resumeData && !runId) {
@@ -13089,7 +13147,8 @@ async function handleChatStream({
13089
13147
  sendStart,
13090
13148
  sendFinish,
13091
13149
  sendReasoning,
13092
- sendSources
13150
+ sendSources,
13151
+ messageMetadata
13093
13152
  })) {
13094
13153
  writer.write(part);
13095
13154
  }
@@ -13105,7 +13164,8 @@ async function handleChatStream({
13105
13164
  sendStart,
13106
13165
  sendFinish,
13107
13166
  sendReasoning,
13108
- sendSources
13167
+ sendSources,
13168
+ messageMetadata
13109
13169
  })) {
13110
13170
  writer.write(part);
13111
13171
  }
@@ -13605,16 +13665,25 @@ function withMastra(model, options = {}) {
13605
13665
  allOutputProcessors.push(semanticRecallProcessor);
13606
13666
  }
13607
13667
  }
13668
+ const middleware = createProcessorMiddleware({
13669
+ inputProcessors: allInputProcessors,
13670
+ outputProcessors: allOutputProcessors,
13671
+ memory: memory ? {
13672
+ threadId: memory.threadId,
13673
+ resourceId: memory.resourceId
13674
+ } : void 0
13675
+ });
13676
+ if (model.specificationVersion === "v3") {
13677
+ return wrapLanguageModel2({
13678
+ model,
13679
+ // withMastra supports v3 models at the wrapper level, while the
13680
+ // lower-level processor middleware remains v2-oriented for now.
13681
+ middleware
13682
+ });
13683
+ }
13608
13684
  return wrapLanguageModel({
13609
13685
  model,
13610
- middleware: createProcessorMiddleware({
13611
- inputProcessors: allInputProcessors,
13612
- outputProcessors: allOutputProcessors,
13613
- memory: memory ? {
13614
- threadId: memory.threadId,
13615
- resourceId: memory.resourceId
13616
- } : void 0
13617
- })
13686
+ middleware
13618
13687
  });
13619
13688
  }
13620
13689
  var StreamOutputAccumulator = class {
@@ -13765,9 +13834,6 @@ function createProcessorMiddleware(options) {
13765
13834
  }
13766
13835
  return {
13767
13836
  middlewareVersion: "v2",
13768
- /**
13769
- * Transform params runs input processors (processInput)
13770
- */
13771
13837
  async transformParams({ params }) {
13772
13838
  const messageList = new MessageList({
13773
13839
  threadId: memory?.threadId,
@@ -13823,9 +13889,6 @@ function createProcessorMiddleware(options) {
13823
13889
  }
13824
13890
  };
13825
13891
  },
13826
- /**
13827
- * Wrap generate for non-streaming output processing
13828
- */
13829
13892
  async wrapGenerate({ doGenerate, params }) {
13830
13893
  const processorState = params.providerOptions?.mastraProcessors;
13831
13894
  if (processorState?.tripwire) {
@@ -13906,9 +13969,6 @@ function createProcessorMiddleware(options) {
13906
13969
  content: [{ type: "text", text: processedText }]
13907
13970
  };
13908
13971
  },
13909
- /**
13910
- * Wrap stream for streaming output processing
13911
- */
13912
13972
  async wrapStream({ doStream, params }) {
13913
13973
  const processorState = params.providerOptions?.mastraProcessors;
13914
13974
  if (processorState?.tripwire) {