@mastra/core 0.21.1 → 0.21.2-alpha.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.
Files changed (212) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/dist/agent/__tests__/mock-model.d.ts +6 -0
  3. package/dist/agent/__tests__/mock-model.d.ts.map +1 -0
  4. package/dist/agent/agent.d.ts +9 -4
  5. package/dist/agent/agent.d.ts.map +1 -1
  6. package/dist/agent/agent.types.d.ts +4 -3
  7. package/dist/agent/agent.types.d.ts.map +1 -1
  8. package/dist/agent/index.cjs +13 -13
  9. package/dist/agent/index.js +2 -2
  10. package/dist/agent/input-processor/index.cjs +6 -6
  11. package/dist/agent/input-processor/index.js +1 -1
  12. package/dist/agent/message-list/index.d.ts.map +1 -1
  13. package/dist/agent/message-list/utils/ai-v5/gemini-compatibility.d.ts +22 -0
  14. package/dist/agent/message-list/utils/ai-v5/gemini-compatibility.d.ts.map +1 -0
  15. package/dist/agent/types.d.ts +5 -0
  16. package/dist/agent/types.d.ts.map +1 -1
  17. package/dist/agent/utils.d.ts.map +1 -1
  18. package/dist/agent/workflows/prepare-stream/index.d.ts +7 -4
  19. package/dist/agent/workflows/prepare-stream/index.d.ts.map +1 -1
  20. package/dist/agent/workflows/prepare-stream/prepare-memory-step.d.ts +7 -4
  21. package/dist/agent/workflows/prepare-stream/prepare-memory-step.d.ts.map +1 -1
  22. package/dist/agent/workflows/prepare-stream/schema.d.ts +4 -4
  23. package/dist/agent/workflows/prepare-stream/stream-step.d.ts +3 -0
  24. package/dist/agent/workflows/prepare-stream/stream-step.d.ts.map +1 -1
  25. package/dist/ai-tracing/index.cjs +32 -32
  26. package/dist/ai-tracing/index.js +1 -1
  27. package/dist/{chunk-NHKXTGR6.js → chunk-4ZFVJA3A.js} +3 -3
  28. package/dist/{chunk-NHKXTGR6.js.map → chunk-4ZFVJA3A.js.map} +1 -1
  29. package/dist/{chunk-XVREJCOW.cjs → chunk-7P5FMQQK.cjs} +6 -6
  30. package/dist/{chunk-XVREJCOW.cjs.map → chunk-7P5FMQQK.cjs.map} +1 -1
  31. package/dist/{chunk-3V4O35FO.js → chunk-BLVB2IJK.js} +3 -3
  32. package/dist/{chunk-3V4O35FO.js.map → chunk-BLVB2IJK.js.map} +1 -1
  33. package/dist/{chunk-FESSBG5D.cjs → chunk-D3IOLHNB.cjs} +12 -12
  34. package/dist/{chunk-FESSBG5D.cjs.map → chunk-D3IOLHNB.cjs.map} +1 -1
  35. package/dist/{chunk-KAV4EP3T.cjs → chunk-EGNHIPGJ.cjs} +4 -4
  36. package/dist/{chunk-KAV4EP3T.cjs.map → chunk-EGNHIPGJ.cjs.map} +1 -1
  37. package/dist/{chunk-5NR2GY4U.js → chunk-GB5BIA4V.js} +5 -3
  38. package/dist/chunk-GB5BIA4V.js.map +1 -0
  39. package/dist/{chunk-J2OKI2L3.js → chunk-GKTRUHKB.js} +10 -5
  40. package/dist/chunk-GKTRUHKB.js.map +1 -0
  41. package/dist/{chunk-A3QHQYMC.js → chunk-HGNRQ3OG.js} +12 -2
  42. package/dist/chunk-HGNRQ3OG.js.map +1 -0
  43. package/dist/{chunk-MUAFIPD7.js → chunk-KLWDUSBX.js} +4 -4
  44. package/dist/{chunk-MUAFIPD7.js.map → chunk-KLWDUSBX.js.map} +1 -1
  45. package/dist/chunk-LJFJTTZQ.cjs +4 -0
  46. package/dist/chunk-LJFJTTZQ.cjs.map +1 -0
  47. package/dist/{chunk-T3PBU7JK.js → chunk-LMP5KMU3.js} +34 -45
  48. package/dist/chunk-LMP5KMU3.js.map +1 -0
  49. package/dist/{chunk-OXAN5SM7.cjs → chunk-LRSB62Z6.cjs} +12 -2
  50. package/dist/chunk-LRSB62Z6.cjs.map +1 -0
  51. package/dist/{chunk-3ORA5EFD.cjs → chunk-LZUSZT7R.cjs} +5 -3
  52. package/dist/chunk-LZUSZT7R.cjs.map +1 -0
  53. package/dist/{chunk-XHPBKALR.cjs → chunk-MVVMHOAC.cjs} +15 -12
  54. package/dist/chunk-MVVMHOAC.cjs.map +1 -0
  55. package/dist/{chunk-HBJVAMCS.js → chunk-N3ZSX5OS.js} +31 -32
  56. package/dist/chunk-N3ZSX5OS.js.map +1 -0
  57. package/dist/{chunk-HP7B2TQQ.js → chunk-NIESGYOH.js} +1654 -1469
  58. package/dist/chunk-NIESGYOH.js.map +1 -0
  59. package/dist/{chunk-F6BMIPYW.js → chunk-NL3P7IFI.js} +3 -3
  60. package/dist/{chunk-F6BMIPYW.js.map → chunk-NL3P7IFI.js.map} +1 -1
  61. package/dist/{chunk-U6CUPKV2.js → chunk-R35PINKN.js} +5 -5
  62. package/dist/{chunk-U6CUPKV2.js.map → chunk-R35PINKN.js.map} +1 -1
  63. package/dist/{chunk-W3DS6F6G.cjs → chunk-UN653TND.cjs} +4 -4
  64. package/dist/{chunk-W3DS6F6G.cjs.map → chunk-UN653TND.cjs.map} +1 -1
  65. package/dist/{chunk-44ODA6L3.cjs → chunk-URQI7RJ3.cjs} +4 -4
  66. package/dist/{chunk-44ODA6L3.cjs.map → chunk-URQI7RJ3.cjs.map} +1 -1
  67. package/dist/{chunk-APY2BE4K.cjs → chunk-URVM3Y4T.cjs} +35 -46
  68. package/dist/chunk-URVM3Y4T.cjs.map +1 -0
  69. package/dist/{chunk-AJK7QPSD.cjs → chunk-V5WDWSQ5.cjs} +11 -11
  70. package/dist/{chunk-AJK7QPSD.cjs.map → chunk-V5WDWSQ5.cjs.map} +1 -1
  71. package/dist/{chunk-FLXB6WXO.js → chunk-VQLW7LPO.js} +5 -3
  72. package/dist/chunk-VQLW7LPO.js.map +1 -0
  73. package/dist/{chunk-462DRETM.cjs → chunk-WI2YMBNG.cjs} +64 -66
  74. package/dist/chunk-WI2YMBNG.cjs.map +1 -0
  75. package/dist/{chunk-NUURZ3AY.js → chunk-XBJP7THY.js} +6 -3
  76. package/dist/chunk-XBJP7THY.js.map +1 -0
  77. package/dist/{chunk-5DZ4RYWL.js → chunk-XYNSPEJO.js} +3 -3
  78. package/dist/{chunk-5DZ4RYWL.js.map → chunk-XYNSPEJO.js.map} +1 -1
  79. package/dist/{chunk-OY6UJ3QL.cjs → chunk-YGL6E6PD.cjs} +5 -3
  80. package/dist/chunk-YGL6E6PD.cjs.map +1 -0
  81. package/dist/{chunk-BV6CD4IZ.cjs → chunk-YKVVW65D.cjs} +12 -7
  82. package/dist/chunk-YKVVW65D.cjs.map +1 -0
  83. package/dist/{chunk-DGQW5VRR.cjs → chunk-ZMPSVDDO.cjs} +1658 -1472
  84. package/dist/chunk-ZMPSVDDO.cjs.map +1 -0
  85. package/dist/chunk-ZV5CC35D.js +3 -0
  86. package/dist/chunk-ZV5CC35D.js.map +1 -0
  87. package/dist/index.cjs +50 -46
  88. package/dist/index.js +8 -8
  89. package/dist/llm/index.cjs +10 -6
  90. package/dist/llm/index.d.ts +1 -0
  91. package/dist/llm/index.d.ts.map +1 -1
  92. package/dist/llm/index.js +1 -1
  93. package/dist/llm/model/embedding-router.d.ts +50 -0
  94. package/dist/llm/model/embedding-router.d.ts.map +1 -0
  95. package/dist/llm/model/gateways/models-dev.d.ts.map +1 -1
  96. package/dist/llm/model/gateways/netlify.d.ts.map +1 -1
  97. package/dist/llm/model/index.d.ts +1 -0
  98. package/dist/llm/model/index.d.ts.map +1 -1
  99. package/dist/llm/model/model.loop.d.ts +1 -1
  100. package/dist/llm/model/model.loop.d.ts.map +1 -1
  101. package/dist/llm/model/provider-options.d.ts +42 -0
  102. package/dist/llm/model/provider-options.d.ts.map +1 -0
  103. package/dist/llm/model/provider-types.generated.d.ts +629 -590
  104. package/dist/llm/model/router.d.ts.map +1 -1
  105. package/dist/loop/index.cjs +2 -2
  106. package/dist/loop/index.js +1 -1
  107. package/dist/loop/network/index.d.ts +4 -1
  108. package/dist/loop/network/index.d.ts.map +1 -1
  109. package/dist/loop/test-utils/fullStream.d.ts.map +1 -1
  110. package/dist/loop/test-utils/generateText.d.ts.map +1 -1
  111. package/dist/loop/test-utils/options.d.ts.map +1 -1
  112. package/dist/loop/test-utils/resultObject.d.ts.map +1 -1
  113. package/dist/loop/test-utils/streamObject.d.ts.map +1 -1
  114. package/dist/loop/test-utils/telemetry.d.ts.map +1 -1
  115. package/dist/loop/test-utils/textStream.d.ts.map +1 -1
  116. package/dist/loop/test-utils/toUIMessageStream.d.ts.map +1 -1
  117. package/dist/loop/test-utils/tools.d.ts.map +1 -1
  118. package/dist/loop/test-utils/utils.d.ts +2 -0
  119. package/dist/loop/test-utils/utils.d.ts.map +1 -1
  120. package/dist/loop/workflows/agentic-execution/index.d.ts +42 -42
  121. package/dist/loop/workflows/agentic-execution/llm-execution-step.d.ts +28 -28
  122. package/dist/loop/workflows/agentic-execution/llm-mapping-step.d.ts +14 -14
  123. package/dist/loop/workflows/agentic-loop/index.d.ts +42 -42
  124. package/dist/loop/workflows/schema.d.ts +14 -14
  125. package/dist/mastra/index.cjs +2 -2
  126. package/dist/mastra/index.js +1 -1
  127. package/dist/memory/index.cjs +4 -4
  128. package/dist/memory/index.js +1 -1
  129. package/dist/memory/memory.d.ts.map +1 -1
  130. package/dist/memory/types.d.ts +10 -1
  131. package/dist/memory/types.d.ts.map +1 -1
  132. package/dist/models-dev-4VGIWYS3.js +3 -0
  133. package/dist/{models-dev-3VEABUH4.js.map → models-dev-4VGIWYS3.js.map} +1 -1
  134. package/dist/models-dev-AXZASLL2.cjs +12 -0
  135. package/dist/{models-dev-L42ORGVT.cjs.map → models-dev-AXZASLL2.cjs.map} +1 -1
  136. package/dist/netlify-26MMY5X4.js +3 -0
  137. package/dist/{netlify-NYFKA6UB.js.map → netlify-26MMY5X4.js.map} +1 -1
  138. package/dist/netlify-F3MVGV4Y.cjs +12 -0
  139. package/dist/{netlify-3B6HDHRP.cjs.map → netlify-F3MVGV4Y.cjs.map} +1 -1
  140. package/dist/processors/index.cjs +11 -11
  141. package/dist/processors/index.js +1 -1
  142. package/dist/provider-registry.json +1542 -1464
  143. package/dist/relevance/index.cjs +4 -4
  144. package/dist/relevance/index.js +1 -1
  145. package/dist/scores/index.cjs +9 -9
  146. package/dist/scores/index.js +2 -2
  147. package/dist/scores/scoreTraces/index.cjs +8 -8
  148. package/dist/scores/scoreTraces/index.js +3 -3
  149. package/dist/storage/domains/workflows/inmemory.d.ts.map +1 -1
  150. package/dist/storage/index.cjs +5 -3
  151. package/dist/storage/index.cjs.map +1 -1
  152. package/dist/storage/index.js +3 -1
  153. package/dist/storage/index.js.map +1 -1
  154. package/dist/stream/aisdk/v5/execute.d.ts.map +1 -1
  155. package/dist/stream/aisdk/v5/output.d.ts +9 -10
  156. package/dist/stream/aisdk/v5/output.d.ts.map +1 -1
  157. package/dist/stream/base/output-format-handlers.d.ts +1 -2
  158. package/dist/stream/base/output-format-handlers.d.ts.map +1 -1
  159. package/dist/stream/base/output.d.ts.map +1 -1
  160. package/dist/stream/index.cjs +10 -10
  161. package/dist/stream/index.d.ts +1 -1
  162. package/dist/stream/index.d.ts.map +1 -1
  163. package/dist/stream/index.js +2 -2
  164. package/dist/stream/types.d.ts +17 -1
  165. package/dist/stream/types.d.ts.map +1 -1
  166. package/dist/test-utils/llm-mock.cjs +2 -2
  167. package/dist/test-utils/llm-mock.js +1 -1
  168. package/dist/tools/index.cjs +2 -2
  169. package/dist/tools/index.js +1 -1
  170. package/dist/tools/stream.d.ts +7 -0
  171. package/dist/tools/stream.d.ts.map +1 -1
  172. package/dist/utils.cjs +17 -17
  173. package/dist/utils.js +1 -1
  174. package/dist/workflows/default.d.ts +1 -0
  175. package/dist/workflows/default.d.ts.map +1 -1
  176. package/dist/workflows/evented/index.cjs +10 -10
  177. package/dist/workflows/evented/index.js +1 -1
  178. package/dist/workflows/evented/workflow-event-processor/index.d.ts.map +1 -1
  179. package/dist/workflows/evented/workflow.d.ts.map +1 -1
  180. package/dist/workflows/index.cjs +12 -12
  181. package/dist/workflows/index.js +1 -1
  182. package/dist/workflows/legacy/index.cjs +22 -22
  183. package/dist/workflows/legacy/index.js +1 -1
  184. package/dist/workflows/legacy/machine.d.ts +1 -1
  185. package/dist/workflows/step.d.ts +4 -1
  186. package/dist/workflows/step.d.ts.map +1 -1
  187. package/dist/workflows/types.d.ts +1 -0
  188. package/dist/workflows/types.d.ts.map +1 -1
  189. package/dist/workflows/workflow.d.ts +3 -1
  190. package/dist/workflows/workflow.d.ts.map +1 -1
  191. package/package.json +11 -10
  192. package/src/llm/model/provider-types.generated.d.ts +629 -590
  193. package/dist/chunk-3ORA5EFD.cjs.map +0 -1
  194. package/dist/chunk-462DRETM.cjs.map +0 -1
  195. package/dist/chunk-5NR2GY4U.js.map +0 -1
  196. package/dist/chunk-A3QHQYMC.js.map +0 -1
  197. package/dist/chunk-APY2BE4K.cjs.map +0 -1
  198. package/dist/chunk-BV6CD4IZ.cjs.map +0 -1
  199. package/dist/chunk-DGQW5VRR.cjs.map +0 -1
  200. package/dist/chunk-FLXB6WXO.js.map +0 -1
  201. package/dist/chunk-HBJVAMCS.js.map +0 -1
  202. package/dist/chunk-HP7B2TQQ.js.map +0 -1
  203. package/dist/chunk-J2OKI2L3.js.map +0 -1
  204. package/dist/chunk-NUURZ3AY.js.map +0 -1
  205. package/dist/chunk-OXAN5SM7.cjs.map +0 -1
  206. package/dist/chunk-OY6UJ3QL.cjs.map +0 -1
  207. package/dist/chunk-T3PBU7JK.js.map +0 -1
  208. package/dist/chunk-XHPBKALR.cjs.map +0 -1
  209. package/dist/models-dev-3VEABUH4.js +0 -3
  210. package/dist/models-dev-L42ORGVT.cjs +0 -12
  211. package/dist/netlify-3B6HDHRP.cjs +0 -12
  212. package/dist/netlify-NYFKA6UB.js +0 -3
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunk44ODA6L3_cjs = require('./chunk-44ODA6L3.cjs');
3
+ var chunkURQI7RJ3_cjs = require('./chunk-URQI7RJ3.cjs');
4
4
  var chunkWM4VQWOZ_cjs = require('./chunk-WM4VQWOZ.cjs');
5
5
  var providerUtilsV5 = require('@ai-sdk/provider-utils-v5');
6
6
  var crypto = require('crypto');
@@ -613,7 +613,7 @@ function convertDataContentToBase64String(content) {
613
613
  var downloadFromUrl = async ({ url, downloadRetries }) => {
614
614
  const urlText = url.toString();
615
615
  try {
616
- const response = await chunk44ODA6L3_cjs.fetchWithRetry(
616
+ const response = await chunkURQI7RJ3_cjs.fetchWithRetry(
617
617
  urlText,
618
618
  {
619
619
  method: "GET"
@@ -796,6 +796,26 @@ function categorizeFileData(data, fallbackMimeType) {
796
796
  };
797
797
  }
798
798
 
799
+ // src/agent/message-list/utils/ai-v5/gemini-compatibility.ts
800
+ function ensureGeminiCompatibleMessages(messages) {
801
+ const result = [...messages];
802
+ const firstNonSystemIndex = result.findIndex((m) => m.role !== "system");
803
+ if (firstNonSystemIndex === -1) {
804
+ throw new chunkWM4VQWOZ_cjs.MastraError({
805
+ id: "NO_USER_OR_ASSISTANT_MESSAGES",
806
+ domain: "AGENT" /* AGENT */,
807
+ category: "USER" /* USER */,
808
+ text: "This request does not contain any user or assistant messages. At least one user or assistant message is required to generate a response."
809
+ });
810
+ } else if (result[firstNonSystemIndex]?.role === "assistant") {
811
+ result.splice(firstNonSystemIndex, 0, {
812
+ role: "user",
813
+ content: "."
814
+ });
815
+ }
816
+ return result;
817
+ }
818
+
799
819
  // src/agent/message-list/utils/ai-v5/tool.ts
800
820
  function getToolName(type) {
801
821
  if (typeof type === "object" && type && "type" in type) {
@@ -910,22 +930,13 @@ var MessageList = class _MessageList {
910
930
  ui: () => this.all.v3().map(_MessageList.mastraMessageV3ToAIV5UIMessage),
911
931
  // Used when calling AI SDK streamText/generateText
912
932
  prompt: () => {
913
- const messages = [
914
- ...this.aiV4CoreMessagesToAIV5ModelMessages(
915
- [...this.systemMessages, ...Object.values(this.taggedSystemMessages).flat()],
916
- `system`
917
- ),
918
- ...this.all.aiV5.model()
919
- ];
920
- const needsDefaultUserMessage = !messages.length || messages[0]?.role === "assistant";
921
- if (needsDefaultUserMessage) {
922
- const defaultMessage = {
923
- role: "user",
924
- content: "."
925
- };
926
- messages.unshift(defaultMessage);
927
- }
928
- return messages;
933
+ const systemMessages = this.aiV4CoreMessagesToAIV5ModelMessages(
934
+ [...this.systemMessages, ...Object.values(this.taggedSystemMessages).flat()],
935
+ `system`
936
+ );
937
+ const modelMessages = this.all.aiV5.model();
938
+ const messages = [...systemMessages, ...modelMessages];
939
+ return ensureGeminiCompatibleMessages(messages);
929
940
  },
930
941
  // Used for creating LLM prompt messages without AI SDK streamText/generateText
931
942
  llmPrompt: async (options = {
@@ -969,14 +980,7 @@ var MessageList = class _MessageList {
969
980
  return message;
970
981
  });
971
982
  }
972
- const needsDefaultUserMessage = !messages.length || messages[0]?.role === "assistant";
973
- if (needsDefaultUserMessage) {
974
- const defaultMessage = {
975
- role: "user",
976
- content: "."
977
- };
978
- messages.unshift(defaultMessage);
979
- }
983
+ messages = ensureGeminiCompatibleMessages(messages);
980
984
  return messages.map(_MessageList.aiV5ModelMessageToV2PromptMessage);
981
985
  }
982
986
  },
@@ -993,29 +997,14 @@ var MessageList = class _MessageList {
993
997
  prompt: () => {
994
998
  const coreMessages = this.all.aiV4.core();
995
999
  const messages = [...this.systemMessages, ...Object.values(this.taggedSystemMessages).flat(), ...coreMessages];
996
- const needsDefaultUserMessage = !messages.length || messages[0]?.role === "assistant";
997
- if (needsDefaultUserMessage) {
998
- const defaultMessage = {
999
- role: "user",
1000
- content: "."
1001
- };
1002
- messages.unshift(defaultMessage);
1003
- }
1004
- return messages;
1000
+ return ensureGeminiCompatibleMessages(messages);
1005
1001
  },
1006
1002
  // Used for creating LLM prompt messages without AI SDK streamText/generateText
1007
1003
  llmPrompt: () => {
1008
1004
  const coreMessages = this.all.aiV4.core();
1009
1005
  const systemMessages = [...this.systemMessages, ...Object.values(this.taggedSystemMessages).flat()];
1010
- const messages = [...systemMessages, ...coreMessages];
1011
- const needsDefaultUserMessage = !messages.length || messages[0]?.role === "assistant";
1012
- if (needsDefaultUserMessage) {
1013
- const defaultMessage = {
1014
- role: "user",
1015
- content: "."
1016
- };
1017
- messages.unshift(defaultMessage);
1018
- }
1006
+ let messages = [...systemMessages, ...coreMessages];
1007
+ messages = ensureGeminiCompatibleMessages(messages);
1019
1008
  return messages.map(_MessageList.aiV4CoreMessageToV1PromptMessage);
1020
1009
  }
1021
1010
  }
@@ -2995,5 +2984,5 @@ exports.DefaultGeneratedFile = DefaultGeneratedFile;
2995
2984
  exports.DefaultGeneratedFileWithType = DefaultGeneratedFileWithType;
2996
2985
  exports.MessageList = MessageList;
2997
2986
  exports.convertMessages = convertMessages;
2998
- //# sourceMappingURL=chunk-APY2BE4K.cjs.map
2999
- //# sourceMappingURL=chunk-APY2BE4K.cjs.map
2987
+ //# sourceMappingURL=chunk-URVM3Y4T.cjs.map
2988
+ //# sourceMappingURL=chunk-URVM3Y4T.cjs.map