@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,4 +1,4 @@
1
- import { fetchWithRetry } from './chunk-3V4O35FO.js';
1
+ import { fetchWithRetry } from './chunk-BLVB2IJK.js';
2
2
  import { MastraError } from './chunk-T3JFFQH2.js';
3
3
  import { convertUint8ArrayToBase64, convertBase64ToUint8Array, isUrlSupported } from '@ai-sdk/provider-utils-v5';
4
4
  import { randomUUID } from 'crypto';
@@ -773,6 +773,26 @@ function categorizeFileData(data, fallbackMimeType) {
773
773
  };
774
774
  }
775
775
 
776
+ // src/agent/message-list/utils/ai-v5/gemini-compatibility.ts
777
+ function ensureGeminiCompatibleMessages(messages) {
778
+ const result = [...messages];
779
+ const firstNonSystemIndex = result.findIndex((m) => m.role !== "system");
780
+ if (firstNonSystemIndex === -1) {
781
+ throw new MastraError({
782
+ id: "NO_USER_OR_ASSISTANT_MESSAGES",
783
+ domain: "AGENT" /* AGENT */,
784
+ category: "USER" /* USER */,
785
+ text: "This request does not contain any user or assistant messages. At least one user or assistant message is required to generate a response."
786
+ });
787
+ } else if (result[firstNonSystemIndex]?.role === "assistant") {
788
+ result.splice(firstNonSystemIndex, 0, {
789
+ role: "user",
790
+ content: "."
791
+ });
792
+ }
793
+ return result;
794
+ }
795
+
776
796
  // src/agent/message-list/utils/ai-v5/tool.ts
777
797
  function getToolName(type) {
778
798
  if (typeof type === "object" && type && "type" in type) {
@@ -887,22 +907,13 @@ var MessageList = class _MessageList {
887
907
  ui: () => this.all.v3().map(_MessageList.mastraMessageV3ToAIV5UIMessage),
888
908
  // Used when calling AI SDK streamText/generateText
889
909
  prompt: () => {
890
- const messages = [
891
- ...this.aiV4CoreMessagesToAIV5ModelMessages(
892
- [...this.systemMessages, ...Object.values(this.taggedSystemMessages).flat()],
893
- `system`
894
- ),
895
- ...this.all.aiV5.model()
896
- ];
897
- const needsDefaultUserMessage = !messages.length || messages[0]?.role === "assistant";
898
- if (needsDefaultUserMessage) {
899
- const defaultMessage = {
900
- role: "user",
901
- content: "."
902
- };
903
- messages.unshift(defaultMessage);
904
- }
905
- return messages;
910
+ const systemMessages = this.aiV4CoreMessagesToAIV5ModelMessages(
911
+ [...this.systemMessages, ...Object.values(this.taggedSystemMessages).flat()],
912
+ `system`
913
+ );
914
+ const modelMessages = this.all.aiV5.model();
915
+ const messages = [...systemMessages, ...modelMessages];
916
+ return ensureGeminiCompatibleMessages(messages);
906
917
  },
907
918
  // Used for creating LLM prompt messages without AI SDK streamText/generateText
908
919
  llmPrompt: async (options = {
@@ -946,14 +957,7 @@ var MessageList = class _MessageList {
946
957
  return message;
947
958
  });
948
959
  }
949
- const needsDefaultUserMessage = !messages.length || messages[0]?.role === "assistant";
950
- if (needsDefaultUserMessage) {
951
- const defaultMessage = {
952
- role: "user",
953
- content: "."
954
- };
955
- messages.unshift(defaultMessage);
956
- }
960
+ messages = ensureGeminiCompatibleMessages(messages);
957
961
  return messages.map(_MessageList.aiV5ModelMessageToV2PromptMessage);
958
962
  }
959
963
  },
@@ -970,29 +974,14 @@ var MessageList = class _MessageList {
970
974
  prompt: () => {
971
975
  const coreMessages = this.all.aiV4.core();
972
976
  const messages = [...this.systemMessages, ...Object.values(this.taggedSystemMessages).flat(), ...coreMessages];
973
- const needsDefaultUserMessage = !messages.length || messages[0]?.role === "assistant";
974
- if (needsDefaultUserMessage) {
975
- const defaultMessage = {
976
- role: "user",
977
- content: "."
978
- };
979
- messages.unshift(defaultMessage);
980
- }
981
- return messages;
977
+ return ensureGeminiCompatibleMessages(messages);
982
978
  },
983
979
  // Used for creating LLM prompt messages without AI SDK streamText/generateText
984
980
  llmPrompt: () => {
985
981
  const coreMessages = this.all.aiV4.core();
986
982
  const systemMessages = [...this.systemMessages, ...Object.values(this.taggedSystemMessages).flat()];
987
- const messages = [...systemMessages, ...coreMessages];
988
- const needsDefaultUserMessage = !messages.length || messages[0]?.role === "assistant";
989
- if (needsDefaultUserMessage) {
990
- const defaultMessage = {
991
- role: "user",
992
- content: "."
993
- };
994
- messages.unshift(defaultMessage);
995
- }
983
+ let messages = [...systemMessages, ...coreMessages];
984
+ messages = ensureGeminiCompatibleMessages(messages);
996
985
  return messages.map(_MessageList.aiV4CoreMessageToV1PromptMessage);
997
986
  }
998
987
  }
@@ -2969,5 +2958,5 @@ function convertMessages(messages) {
2969
2958
  }
2970
2959
 
2971
2960
  export { DefaultGeneratedFile, DefaultGeneratedFileWithType, MessageList, convertMessages };
2972
- //# sourceMappingURL=chunk-T3PBU7JK.js.map
2973
- //# sourceMappingURL=chunk-T3PBU7JK.js.map
2961
+ //# sourceMappingURL=chunk-LMP5KMU3.js.map
2962
+ //# sourceMappingURL=chunk-LMP5KMU3.js.map