@mastra/core 0.24.0 → 1.0.0-beta.1

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 (812) hide show
  1. package/CHANGELOG.md +484 -139
  2. package/README.md +2 -3
  3. package/agent/message-list.d.ts +1 -0
  4. package/dist/action/index.d.ts +0 -2
  5. package/dist/action/index.d.ts.map +1 -1
  6. package/dist/agent/__tests__/mock-model.d.ts +3 -1
  7. package/dist/agent/__tests__/mock-model.d.ts.map +1 -1
  8. package/dist/agent/agent-legacy.d.ts +176 -0
  9. package/dist/agent/agent-legacy.d.ts.map +1 -0
  10. package/dist/agent/agent.d.ts +83 -229
  11. package/dist/agent/agent.d.ts.map +1 -1
  12. package/dist/agent/agent.types.d.ts +10 -25
  13. package/dist/agent/agent.types.d.ts.map +1 -1
  14. package/dist/agent/index.cjs +10 -26
  15. package/dist/agent/index.d.ts +1 -2
  16. package/dist/agent/index.d.ts.map +1 -1
  17. package/dist/agent/index.js +2 -2
  18. package/dist/agent/message-list/index.cjs +16 -0
  19. package/dist/agent/message-list/index.d.ts +77 -87
  20. package/dist/agent/message-list/index.d.ts.map +1 -1
  21. package/dist/agent/message-list/index.js +3 -0
  22. package/dist/agent/message-list/prompt/attachments-to-parts.d.ts +2 -2
  23. package/dist/agent/message-list/prompt/attachments-to-parts.d.ts.map +1 -1
  24. package/dist/agent/message-list/prompt/convert-to-mastra-v1.d.ts +2 -2
  25. package/dist/agent/message-list/prompt/download-assets.d.ts.map +1 -1
  26. package/dist/agent/message-list/prompt/invalid-content-error.d.ts +1 -1
  27. package/dist/agent/message-list/prompt/invalid-content-error.d.ts.map +1 -1
  28. package/dist/agent/message-list/types.d.ts +2 -1
  29. package/dist/agent/message-list/types.d.ts.map +1 -1
  30. package/dist/agent/message-list/utils/ai-v4-v5/core-model-message.d.ts +3 -2
  31. package/dist/agent/message-list/utils/ai-v4-v5/core-model-message.d.ts.map +1 -1
  32. package/dist/agent/message-list/utils/ai-v4-v5/ui-message.d.ts +3 -2
  33. package/dist/agent/message-list/utils/ai-v4-v5/ui-message.d.ts.map +1 -1
  34. package/dist/agent/message-list/utils/ai-v5/gemini-compatibility.d.ts +1 -1
  35. package/dist/agent/message-list/utils/ai-v5/gemini-compatibility.d.ts.map +1 -1
  36. package/dist/agent/message-list/utils/convert-messages.d.ts +4 -4
  37. package/dist/agent/message-list/utils/convert-messages.d.ts.map +1 -1
  38. package/dist/agent/test-utils.d.ts +2 -79
  39. package/dist/agent/test-utils.d.ts.map +1 -1
  40. package/dist/agent/trip-wire.d.ts +1 -1
  41. package/dist/agent/trip-wire.d.ts.map +1 -1
  42. package/dist/agent/types.d.ts +23 -37
  43. package/dist/agent/types.d.ts.map +1 -1
  44. package/dist/agent/utils.d.ts +15 -64
  45. package/dist/agent/utils.d.ts.map +1 -1
  46. package/dist/agent/workflows/prepare-stream/index.d.ts +16 -20
  47. package/dist/agent/workflows/prepare-stream/index.d.ts.map +1 -1
  48. package/dist/agent/workflows/prepare-stream/map-results-step.d.ts +5 -7
  49. package/dist/agent/workflows/prepare-stream/map-results-step.d.ts.map +1 -1
  50. package/dist/agent/workflows/prepare-stream/prepare-memory-step.d.ts +14 -18
  51. package/dist/agent/workflows/prepare-stream/prepare-memory-step.d.ts.map +1 -1
  52. package/dist/agent/workflows/prepare-stream/prepare-tools-step.d.ts +6 -6
  53. package/dist/agent/workflows/prepare-stream/prepare-tools-step.d.ts.map +1 -1
  54. package/dist/agent/workflows/prepare-stream/schema.d.ts +10 -12
  55. package/dist/agent/workflows/prepare-stream/schema.d.ts.map +1 -1
  56. package/dist/agent/workflows/prepare-stream/stream-step.d.ts +3 -7
  57. package/dist/agent/workflows/prepare-stream/stream-step.d.ts.map +1 -1
  58. package/dist/ai-sdk.types.d.ts +4705 -0
  59. package/dist/base.cjs +2 -2
  60. package/dist/base.d.ts +0 -16
  61. package/dist/base.d.ts.map +1 -1
  62. package/dist/base.js +1 -1
  63. package/dist/bundler/index.cjs +2 -2
  64. package/dist/bundler/index.d.ts +2 -1
  65. package/dist/bundler/index.d.ts.map +1 -1
  66. package/dist/bundler/index.js +1 -1
  67. package/dist/cache/index.cjs +3 -3
  68. package/dist/cache/index.js +1 -1
  69. package/dist/{chunk-7J3XX4AO.cjs → chunk-2ZVKF4HP.cjs} +199 -66
  70. package/dist/chunk-2ZVKF4HP.cjs.map +1 -0
  71. package/dist/chunk-4CDL2QJT.js +649 -0
  72. package/dist/chunk-4CDL2QJT.js.map +1 -0
  73. package/dist/chunk-5WRI5ZAA.js +29 -0
  74. package/dist/{chunk-3HXBPDKN.js.map → chunk-5WRI5ZAA.js.map} +1 -1
  75. package/dist/{chunk-KAEQISOW.js → chunk-76K3IYWM.js} +5 -5
  76. package/dist/chunk-76K3IYWM.js.map +1 -0
  77. package/dist/chunk-7AHYOMHJ.js +149 -0
  78. package/dist/chunk-7AHYOMHJ.js.map +1 -0
  79. package/dist/{chunk-UZKIGB7M.cjs → chunk-BMAFVZ2D.cjs} +5 -5
  80. package/dist/chunk-BMAFVZ2D.cjs.map +1 -0
  81. package/dist/chunk-CB575O6L.cjs +12432 -0
  82. package/dist/chunk-CB575O6L.cjs.map +1 -0
  83. package/dist/{chunk-6TEQIYXV.cjs → chunk-CBAB7GOD.cjs} +15 -15
  84. package/dist/chunk-CBAB7GOD.cjs.map +1 -0
  85. package/dist/{chunk-ROS5CMJS.cjs → chunk-CD56CXVE.cjs} +63 -50
  86. package/dist/chunk-CD56CXVE.cjs.map +1 -0
  87. package/dist/{chunk-Z4RIRDU3.js → chunk-CINNK34N.js} +45 -32
  88. package/dist/chunk-CINNK34N.js.map +1 -0
  89. package/dist/{chunk-77JHIM4E.cjs → chunk-DNEURYF3.cjs} +348 -424
  90. package/dist/chunk-DNEURYF3.cjs.map +1 -0
  91. package/dist/{chunk-A5KDVZDL.cjs → chunk-DSNPWVIG.cjs} +9 -9
  92. package/dist/chunk-DSNPWVIG.cjs.map +1 -0
  93. package/dist/chunk-DZUJEN5N.cjs +32 -0
  94. package/dist/{chunk-EBVYYC2Q.cjs.map → chunk-DZUJEN5N.cjs.map} +1 -1
  95. package/dist/chunk-E7K4FTLN.cjs +273 -0
  96. package/dist/chunk-E7K4FTLN.cjs.map +1 -0
  97. package/dist/{chunk-MJMID7LX.cjs → chunk-ECFXGXWO.cjs} +609 -644
  98. package/dist/chunk-ECFXGXWO.cjs.map +1 -0
  99. package/dist/chunk-ET6UOTTU.cjs +154 -0
  100. package/dist/chunk-ET6UOTTU.cjs.map +1 -0
  101. package/dist/chunk-GGYKYORQ.cjs +2060 -0
  102. package/dist/chunk-GGYKYORQ.cjs.map +1 -0
  103. package/dist/{chunk-HLRWYUFN.js → chunk-GRBGQ2GE.js} +5 -5
  104. package/dist/{chunk-HLRWYUFN.js.map → chunk-GRBGQ2GE.js.map} +1 -1
  105. package/dist/{chunk-3VXXCPKX.js → chunk-H6CZGPZD.js} +334 -410
  106. package/dist/chunk-H6CZGPZD.js.map +1 -0
  107. package/dist/chunk-HDJFSJCK.js +2237 -0
  108. package/dist/chunk-HDJFSJCK.js.map +1 -0
  109. package/dist/{chunk-34ZCWSUA.js → chunk-I4CXL4SR.js} +6 -9
  110. package/dist/chunk-I4CXL4SR.js.map +1 -0
  111. package/dist/{chunk-3JX2Y3WH.cjs → chunk-IQO7ANVS.cjs} +18 -21
  112. package/dist/chunk-IQO7ANVS.cjs.map +1 -0
  113. package/dist/{chunk-GPWMM745.cjs → chunk-J7O6WENZ.cjs} +5 -5
  114. package/dist/{chunk-GPWMM745.cjs.map → chunk-J7O6WENZ.cjs.map} +1 -1
  115. package/dist/{chunk-PZUZNPFM.js → chunk-JJ5O45LH.js} +3 -4
  116. package/dist/chunk-JJ5O45LH.js.map +1 -0
  117. package/dist/chunk-JPGVRWWL.js +12385 -0
  118. package/dist/chunk-JPGVRWWL.js.map +1 -0
  119. package/dist/chunk-JUBFO5J3.js +15761 -0
  120. package/dist/chunk-JUBFO5J3.js.map +1 -0
  121. package/dist/{chunk-E3PG7G6E.js → chunk-JV2KH24V.js} +599 -633
  122. package/dist/chunk-JV2KH24V.js.map +1 -0
  123. package/dist/chunk-KEXGB7FK.cjs +29 -0
  124. package/dist/chunk-KEXGB7FK.cjs.map +1 -0
  125. package/dist/chunk-KIZIOFZC.js +265 -0
  126. package/dist/chunk-KIZIOFZC.js.map +1 -0
  127. package/dist/{chunk-UXG7PYML.js → chunk-KJ2SW6VA.js} +9 -9
  128. package/dist/chunk-KJ2SW6VA.js.map +1 -0
  129. package/dist/{chunk-TTELJD4F.js → chunk-L54GIUCB.js} +2 -2
  130. package/dist/chunk-L54GIUCB.js.map +1 -0
  131. package/dist/chunk-LWBQ4P4N.cjs +2240 -0
  132. package/dist/chunk-LWBQ4P4N.cjs.map +1 -0
  133. package/dist/{chunk-ABZOBBLL.cjs → chunk-MA7TEM62.cjs} +735 -562
  134. package/dist/chunk-MA7TEM62.cjs.map +1 -0
  135. package/dist/{chunk-TSNDVBUU.cjs → chunk-MR7ZWBL6.cjs} +2 -2
  136. package/dist/chunk-MR7ZWBL6.cjs.map +1 -0
  137. package/dist/chunk-MSWTA73A.cjs +15825 -0
  138. package/dist/chunk-MSWTA73A.cjs.map +1 -0
  139. package/dist/chunk-MV7KHWUT.js +2031 -0
  140. package/dist/chunk-MV7KHWUT.js.map +1 -0
  141. package/dist/{chunk-3NTOFNIU.js → chunk-OJNJA5ZI.js} +3 -3
  142. package/dist/{chunk-3NTOFNIU.js.map → chunk-OJNJA5ZI.js.map} +1 -1
  143. package/dist/chunk-QM5SRDJX.js +9022 -0
  144. package/dist/chunk-QM5SRDJX.js.map +1 -0
  145. package/dist/{chunk-WBAXXG34.cjs → chunk-QUKUN6NR.cjs} +32 -66
  146. package/dist/chunk-QUKUN6NR.cjs.map +1 -0
  147. package/dist/chunk-S6URFGCZ.js +27 -0
  148. package/dist/chunk-S6URFGCZ.js.map +1 -0
  149. package/dist/chunk-SVLMF4UZ.cjs +9033 -0
  150. package/dist/chunk-SVLMF4UZ.cjs.map +1 -0
  151. package/dist/{chunk-ZMELUU72.js → chunk-TQTAMPSC.js} +3 -3
  152. package/dist/chunk-TQTAMPSC.js.map +1 -0
  153. package/dist/{chunk-5NTO7S5I.cjs → chunk-TWH4PTDG.cjs} +2 -4
  154. package/dist/chunk-TWH4PTDG.cjs.map +1 -0
  155. package/dist/{chunk-WCHE6FJ7.js → chunk-UIZSWUKP.js} +15 -50
  156. package/dist/chunk-UIZSWUKP.js.map +1 -0
  157. package/dist/{chunk-BWGXM3D4.js → chunk-VOQ3ULMT.js} +712 -541
  158. package/dist/chunk-VOQ3ULMT.js.map +1 -0
  159. package/dist/{chunk-MCASUJWY.cjs → chunk-VOY2RXOC.cjs} +36 -59
  160. package/dist/chunk-VOY2RXOC.cjs.map +1 -0
  161. package/dist/{chunk-FHVFGVIO.js → chunk-W7UH2PWL.js} +189 -56
  162. package/dist/chunk-W7UH2PWL.js.map +1 -0
  163. package/dist/chunk-WM6CK2F3.cjs +674 -0
  164. package/dist/chunk-WM6CK2F3.cjs.map +1 -0
  165. package/dist/{chunk-PFXXH2RP.js → chunk-X7JMA3IY.js} +15 -15
  166. package/dist/chunk-X7JMA3IY.js.map +1 -0
  167. package/dist/{chunk-NR77P3TK.js → chunk-XEVG546F.js} +14 -37
  168. package/dist/chunk-XEVG546F.js.map +1 -0
  169. package/dist/{chunk-QFF5JUKT.cjs → chunk-Y63IFHEZ.cjs} +4 -4
  170. package/dist/chunk-Y63IFHEZ.cjs.map +1 -0
  171. package/dist/{chunk-B7V6NYWH.cjs → chunk-Y6ROD72V.cjs} +4 -4
  172. package/dist/{chunk-B7V6NYWH.cjs.map → chunk-Y6ROD72V.cjs.map} +1 -1
  173. package/dist/deployer/index.cjs +8 -6
  174. package/dist/deployer/index.cjs.map +1 -1
  175. package/dist/deployer/index.js +10 -1
  176. package/dist/deployer/index.js.map +1 -1
  177. package/dist/di/index.cjs +3 -3
  178. package/dist/di/index.d.ts +1 -1
  179. package/dist/di/index.js +1 -1
  180. package/dist/error/index.cjs +6 -6
  181. package/dist/error/index.d.ts +0 -1
  182. package/dist/error/index.d.ts.map +1 -1
  183. package/dist/error/index.js +1 -1
  184. package/dist/{scores → evals}/base.d.ts +20 -18
  185. package/dist/evals/base.d.ts.map +1 -0
  186. package/dist/{scores → evals}/base.test-utils.d.ts +25 -25
  187. package/dist/evals/base.test-utils.d.ts.map +1 -0
  188. package/dist/{scores → evals}/hooks.d.ts +3 -3
  189. package/dist/evals/hooks.d.ts.map +1 -0
  190. package/dist/evals/index.cjs +37 -0
  191. package/dist/evals/index.d.ts +4 -0
  192. package/dist/evals/index.d.ts.map +1 -0
  193. package/dist/evals/index.js +4 -0
  194. package/dist/{scores/run-experiment → evals/run}/index.d.ts +18 -18
  195. package/dist/evals/run/index.d.ts.map +1 -0
  196. package/dist/evals/run/scorerAccumulator.d.ts.map +1 -0
  197. package/dist/{scores → evals}/scoreTraces/index.cjs +79 -99
  198. package/dist/evals/scoreTraces/index.cjs.map +1 -0
  199. package/dist/evals/scoreTraces/index.d.ts.map +1 -0
  200. package/dist/{scores → evals}/scoreTraces/index.js +72 -92
  201. package/dist/evals/scoreTraces/index.js.map +1 -0
  202. package/dist/{scores → evals}/scoreTraces/scoreTraces.d.ts +2 -2
  203. package/dist/evals/scoreTraces/scoreTraces.d.ts.map +1 -0
  204. package/dist/{scores → evals}/scoreTraces/scoreTracesWorkflow.d.ts +11 -11
  205. package/dist/evals/scoreTraces/scoreTracesWorkflow.d.ts.map +1 -0
  206. package/dist/{scores → evals}/scoreTraces/utils.d.ts +7 -7
  207. package/dist/evals/scoreTraces/utils.d.ts.map +1 -0
  208. package/dist/{scores → evals}/types.d.ts +22 -22
  209. package/dist/evals/types.d.ts.map +1 -0
  210. package/dist/features/index.cjs +8 -0
  211. package/dist/features/index.cjs.map +1 -0
  212. package/dist/features/index.d.ts +17 -0
  213. package/dist/features/index.d.ts.map +1 -0
  214. package/dist/features/index.js +6 -0
  215. package/dist/features/index.js.map +1 -0
  216. package/dist/hooks/index.cjs +4 -4
  217. package/dist/hooks/index.d.ts +1 -27
  218. package/dist/hooks/index.d.ts.map +1 -1
  219. package/dist/hooks/index.js +1 -1
  220. package/dist/index.cjs +2 -340
  221. package/dist/index.cjs.map +1 -1
  222. package/dist/index.d.ts +1 -18
  223. package/dist/index.d.ts.map +1 -1
  224. package/dist/index.js +1 -113
  225. package/dist/index.js.map +1 -1
  226. package/dist/integration/index.cjs +87 -10
  227. package/dist/integration/index.cjs.map +1 -1
  228. package/dist/integration/index.js +88 -1
  229. package/dist/integration/index.js.map +1 -1
  230. package/dist/integration/integration.d.ts +3 -3
  231. package/dist/integration/integration.d.ts.map +1 -1
  232. package/dist/llm/index.cjs +7 -7
  233. package/dist/llm/index.d.ts +5 -6
  234. package/dist/llm/index.d.ts.map +1 -1
  235. package/dist/llm/index.js +1 -1
  236. package/dist/llm/model/base.types.d.ts +6 -7
  237. package/dist/llm/model/base.types.d.ts.map +1 -1
  238. package/dist/llm/model/gateways/constants.d.ts.map +1 -1
  239. package/dist/llm/model/gateways/models-dev.d.ts.map +1 -1
  240. package/dist/llm/model/model.d.ts +7 -7
  241. package/dist/llm/model/model.d.ts.map +1 -1
  242. package/dist/llm/model/model.loop.d.ts +1 -1
  243. package/dist/llm/model/model.loop.d.ts.map +1 -1
  244. package/dist/llm/model/model.loop.types.d.ts +3 -3
  245. package/dist/llm/model/model.loop.types.d.ts.map +1 -1
  246. package/dist/llm/model/provider-types.generated.d.ts +80 -17
  247. package/dist/llm/model/resolve-model.d.ts +8 -8
  248. package/dist/llm/model/shared.types.d.ts +2 -2
  249. package/dist/llm/model/shared.types.d.ts.map +1 -1
  250. package/dist/logger/constants.d.ts +1 -1
  251. package/dist/logger/default-logger.d.ts +2 -2
  252. package/dist/logger/default-logger.d.ts.map +1 -1
  253. package/dist/logger/index.cjs +11 -11
  254. package/dist/logger/index.js +2 -2
  255. package/dist/logger/logger.d.ts +4 -4
  256. package/dist/logger/logger.d.ts.map +1 -1
  257. package/dist/logger/multi-logger.d.ts +2 -2
  258. package/dist/logger/multi-logger.d.ts.map +1 -1
  259. package/dist/logger/transport.d.ts +3 -3
  260. package/dist/logger/transport.d.ts.map +1 -1
  261. package/dist/loop/index.cjs +2 -2
  262. package/dist/loop/index.js +1 -1
  263. package/dist/loop/loop.d.ts +1 -1
  264. package/dist/loop/loop.d.ts.map +1 -1
  265. package/dist/loop/network/index.d.ts +15 -15
  266. package/dist/loop/network/index.d.ts.map +1 -1
  267. package/dist/loop/test-utils/generateText.d.ts.map +1 -1
  268. package/dist/loop/test-utils/options.d.ts.map +1 -1
  269. package/dist/loop/test-utils/resultObject.d.ts.map +1 -1
  270. package/dist/loop/test-utils/streamObject.d.ts.map +1 -1
  271. package/dist/loop/types.d.ts +4 -7
  272. package/dist/loop/types.d.ts.map +1 -1
  273. package/dist/loop/workflows/agentic-execution/index.d.ts +55 -55
  274. package/dist/loop/workflows/agentic-execution/index.d.ts.map +1 -1
  275. package/dist/loop/workflows/agentic-execution/llm-execution-step.d.ts +38 -38
  276. package/dist/loop/workflows/agentic-execution/llm-execution-step.d.ts.map +1 -1
  277. package/dist/loop/workflows/agentic-execution/llm-mapping-step.d.ts +20 -20
  278. package/dist/loop/workflows/agentic-execution/llm-mapping-step.d.ts.map +1 -1
  279. package/dist/loop/workflows/agentic-execution/tool-call-step.d.ts +2 -2
  280. package/dist/loop/workflows/agentic-execution/tool-call-step.d.ts.map +1 -1
  281. package/dist/loop/workflows/agentic-loop/index.d.ts +55 -55
  282. package/dist/loop/workflows/agentic-loop/index.d.ts.map +1 -1
  283. package/dist/loop/workflows/schema.d.ts +19 -20
  284. package/dist/loop/workflows/schema.d.ts.map +1 -1
  285. package/dist/loop/workflows/stream.d.ts +1 -1
  286. package/dist/loop/workflows/stream.d.ts.map +1 -1
  287. package/dist/mastra/hooks.d.ts +2 -2
  288. package/dist/mastra/hooks.d.ts.map +1 -1
  289. package/dist/mastra/index.cjs +2 -2
  290. package/dist/mastra/index.d.ts +389 -180
  291. package/dist/mastra/index.d.ts.map +1 -1
  292. package/dist/mastra/index.js +1 -1
  293. package/dist/mcp/index.cjs +41 -4
  294. package/dist/mcp/index.cjs.map +1 -1
  295. package/dist/mcp/index.d.ts +6 -4
  296. package/dist/mcp/index.d.ts.map +1 -1
  297. package/dist/mcp/index.js +39 -2
  298. package/dist/mcp/index.js.map +1 -1
  299. package/dist/mcp/types.d.ts +0 -15
  300. package/dist/mcp/types.d.ts.map +1 -1
  301. package/dist/memory/index.cjs +327 -13
  302. package/dist/memory/index.cjs.map +1 -1
  303. package/dist/memory/index.d.ts +1 -0
  304. package/dist/memory/index.d.ts.map +1 -1
  305. package/dist/memory/index.js +327 -1
  306. package/dist/memory/index.js.map +1 -1
  307. package/dist/memory/memory.d.ts +33 -57
  308. package/dist/memory/memory.d.ts.map +1 -1
  309. package/dist/memory/mock.d.ts +61 -0
  310. package/dist/memory/mock.d.ts.map +1 -0
  311. package/dist/memory/types.d.ts +48 -45
  312. package/dist/memory/types.d.ts.map +1 -1
  313. package/dist/models-dev-DNBKXHT4.js +3 -0
  314. package/dist/{models-dev-4VGIWYS3.js.map → models-dev-DNBKXHT4.js.map} +1 -1
  315. package/dist/models-dev-YBEEQIX6.cjs +12 -0
  316. package/dist/{models-dev-AXZASLL2.cjs.map → models-dev-YBEEQIX6.cjs.map} +1 -1
  317. package/dist/netlify-7G2L5VSH.js +3 -0
  318. package/dist/{netlify-VJXBII33.js.map → netlify-7G2L5VSH.js.map} +1 -1
  319. package/dist/netlify-GWNGSIRZ.cjs +12 -0
  320. package/dist/{netlify-TX6V7SJJ.cjs.map → netlify-GWNGSIRZ.cjs.map} +1 -1
  321. package/dist/{ai-tracing → observability}/context.d.ts +5 -5
  322. package/dist/observability/context.d.ts.map +1 -0
  323. package/dist/observability/index.cjs +36 -0
  324. package/dist/observability/index.d.ts +11 -0
  325. package/dist/observability/index.d.ts.map +1 -0
  326. package/dist/observability/index.js +3 -0
  327. package/dist/observability/no-op.d.ts +22 -0
  328. package/dist/observability/no-op.d.ts.map +1 -0
  329. package/dist/observability/types/index.d.ts +2 -0
  330. package/dist/observability/types/index.d.ts.map +1 -0
  331. package/dist/{ai-tracing/types.d.ts → observability/types/tracing.d.ts} +161 -107
  332. package/dist/observability/types/tracing.d.ts.map +1 -0
  333. package/dist/observability/utils.d.ts +12 -0
  334. package/dist/observability/utils.d.ts.map +1 -0
  335. package/dist/processors/index.cjs +11 -11
  336. package/dist/processors/index.d.ts +10 -9
  337. package/dist/processors/index.d.ts.map +1 -1
  338. package/dist/processors/index.js +1 -1
  339. package/dist/processors/processors/batch-parts.d.ts +2 -1
  340. package/dist/processors/processors/batch-parts.d.ts.map +1 -1
  341. package/dist/processors/processors/language-detector.d.ts +6 -5
  342. package/dist/processors/processors/language-detector.d.ts.map +1 -1
  343. package/dist/processors/processors/moderation.d.ts +8 -7
  344. package/dist/processors/processors/moderation.d.ts.map +1 -1
  345. package/dist/processors/processors/pii-detector.d.ts +8 -7
  346. package/dist/processors/processors/pii-detector.d.ts.map +1 -1
  347. package/dist/processors/processors/prompt-injection-detector.d.ts +6 -5
  348. package/dist/processors/processors/prompt-injection-detector.d.ts.map +1 -1
  349. package/dist/processors/processors/structured-output.d.ts +3 -2
  350. package/dist/processors/processors/structured-output.d.ts.map +1 -1
  351. package/dist/processors/processors/system-prompt-scrubber.d.ts +6 -5
  352. package/dist/processors/processors/system-prompt-scrubber.d.ts.map +1 -1
  353. package/dist/processors/processors/token-limiter.d.ts +5 -4
  354. package/dist/processors/processors/token-limiter.d.ts.map +1 -1
  355. package/dist/processors/processors/unicode-normalizer.d.ts +5 -4
  356. package/dist/processors/processors/unicode-normalizer.d.ts.map +1 -1
  357. package/dist/processors/runner.d.ts +5 -5
  358. package/dist/processors/runner.d.ts.map +1 -1
  359. package/dist/provider-registry.json +175 -42
  360. package/dist/{registry-generator-DXRSYYYT.js → registry-generator-H4YNODDH.js} +2 -2
  361. package/dist/{registry-generator-DXRSYYYT.js.map → registry-generator-H4YNODDH.js.map} +1 -1
  362. package/dist/{registry-generator-6WVOHM2L.cjs → registry-generator-MK63POJO.cjs} +2 -2
  363. package/dist/{registry-generator-6WVOHM2L.cjs.map → registry-generator-MK63POJO.cjs.map} +1 -1
  364. package/dist/relevance/index.cjs +47 -13
  365. package/dist/relevance/index.cjs.map +1 -1
  366. package/dist/relevance/index.d.ts +0 -1
  367. package/dist/relevance/index.d.ts.map +1 -1
  368. package/dist/relevance/index.js +49 -1
  369. package/dist/relevance/index.js.map +1 -1
  370. package/dist/relevance/mastra-agent/index.d.ts.map +1 -1
  371. package/dist/request-context/index.cjs +12 -0
  372. package/dist/{runtime-context → request-context}/index.d.ts +1 -1
  373. package/dist/{runtime-context → request-context}/index.d.ts.map +1 -1
  374. package/dist/request-context/index.js +3 -0
  375. package/dist/server/auth.d.ts.map +1 -1
  376. package/dist/server/index.cjs +9 -25
  377. package/dist/server/index.cjs.map +1 -1
  378. package/dist/server/index.js +4 -21
  379. package/dist/server/index.js.map +1 -1
  380. package/dist/server/types.d.ts +3 -3
  381. package/dist/server/types.d.ts.map +1 -1
  382. package/dist/storage/base.d.ts +75 -143
  383. package/dist/storage/base.d.ts.map +1 -1
  384. package/dist/storage/constants.d.ts +3 -4
  385. package/dist/storage/constants.d.ts.map +1 -1
  386. package/dist/storage/domains/index.d.ts +0 -2
  387. package/dist/storage/domains/index.d.ts.map +1 -1
  388. package/dist/storage/domains/memory/base.d.ts +19 -56
  389. package/dist/storage/domains/memory/base.d.ts.map +1 -1
  390. package/dist/storage/domains/memory/inmemory.d.ts +15 -35
  391. package/dist/storage/domains/memory/inmemory.d.ts.map +1 -1
  392. package/dist/storage/domains/observability/base.d.ts +24 -24
  393. package/dist/storage/domains/observability/base.d.ts.map +1 -1
  394. package/dist/storage/domains/observability/inmemory.d.ts +18 -18
  395. package/dist/storage/domains/observability/inmemory.d.ts.map +1 -1
  396. package/dist/storage/domains/operations/inmemory.d.ts.map +1 -1
  397. package/dist/storage/domains/scores/base.d.ts +5 -5
  398. package/dist/storage/domains/scores/base.d.ts.map +1 -1
  399. package/dist/storage/domains/scores/inmemory.d.ts +5 -5
  400. package/dist/storage/domains/scores/inmemory.d.ts.map +1 -1
  401. package/dist/storage/domains/workflows/base.d.ts +4 -11
  402. package/dist/storage/domains/workflows/base.d.ts.map +1 -1
  403. package/dist/storage/domains/workflows/inmemory.d.ts +4 -11
  404. package/dist/storage/domains/workflows/inmemory.d.ts.map +1 -1
  405. package/dist/storage/index.cjs +74 -1775
  406. package/dist/storage/index.cjs.map +1 -1
  407. package/dist/storage/index.js +1 -1744
  408. package/dist/storage/index.js.map +1 -1
  409. package/dist/storage/mock.d.ts +35 -92
  410. package/dist/storage/mock.d.ts.map +1 -1
  411. package/dist/storage/types.d.ts +77 -75
  412. package/dist/storage/types.d.ts.map +1 -1
  413. package/dist/stream/MastraAgentNetworkStream.d.ts +4 -2
  414. package/dist/stream/MastraAgentNetworkStream.d.ts.map +1 -1
  415. package/dist/stream/MastraWorkflowStream.d.ts +1 -1
  416. package/dist/stream/MastraWorkflowStream.d.ts.map +1 -1
  417. package/dist/stream/RunOutput.d.ts +1 -0
  418. package/dist/stream/RunOutput.d.ts.map +1 -1
  419. package/dist/stream/aisdk/v4/input.d.ts +1 -1
  420. package/dist/stream/aisdk/v4/input.d.ts.map +1 -1
  421. package/dist/stream/aisdk/v5/execute.d.ts +4 -11
  422. package/dist/stream/aisdk/v5/execute.d.ts.map +1 -1
  423. package/dist/stream/aisdk/v5/output.d.ts +1 -1
  424. package/dist/stream/aisdk/v5/output.d.ts.map +1 -1
  425. package/dist/stream/base/output.d.ts +1 -1
  426. package/dist/stream/base/output.d.ts.map +1 -1
  427. package/dist/stream/index.cjs +11 -11
  428. package/dist/stream/index.d.ts +1 -1
  429. package/dist/stream/index.d.ts.map +1 -1
  430. package/dist/stream/index.js +2 -2
  431. package/dist/stream/types.d.ts +2 -6
  432. package/dist/stream/types.d.ts.map +1 -1
  433. package/dist/test-utils/llm-mock.cjs +8 -8
  434. package/dist/test-utils/llm-mock.cjs.map +1 -1
  435. package/dist/test-utils/llm-mock.d.ts +1 -1
  436. package/dist/test-utils/llm-mock.d.ts.map +1 -1
  437. package/dist/test-utils/llm-mock.js +3 -3
  438. package/dist/test-utils/llm-mock.js.map +1 -1
  439. package/dist/tools/index.cjs +4 -4
  440. package/dist/tools/index.js +1 -1
  441. package/dist/tools/is-vercel-tool.cjs +2 -2
  442. package/dist/tools/is-vercel-tool.js +1 -1
  443. package/dist/tools/tool-builder/builder.d.ts +3 -71
  444. package/dist/tools/tool-builder/builder.d.ts.map +1 -1
  445. package/dist/tools/tool.d.ts +25 -25
  446. package/dist/tools/tool.d.ts.map +1 -1
  447. package/dist/tools/types.d.ts +102 -11
  448. package/dist/tools/types.d.ts.map +1 -1
  449. package/dist/tools/validation.d.ts +4 -3
  450. package/dist/tools/validation.d.ts.map +1 -1
  451. package/dist/tts/index.cjs +12 -6
  452. package/dist/tts/index.cjs.map +1 -1
  453. package/dist/tts/index.d.ts +0 -1
  454. package/dist/tts/index.d.ts.map +1 -1
  455. package/dist/tts/index.js +14 -1
  456. package/dist/tts/index.js.map +1 -1
  457. package/dist/types/dynamic-argument.d.ts +3 -3
  458. package/dist/utils/fetchWithRetry.d.ts +9 -0
  459. package/dist/utils/fetchWithRetry.d.ts.map +1 -0
  460. package/dist/utils.cjs +33 -17
  461. package/dist/utils.d.ts +39 -6
  462. package/dist/utils.d.ts.map +1 -1
  463. package/dist/utils.js +1 -1
  464. package/dist/vector/embed.d.ts +1 -1
  465. package/dist/vector/embed.d.ts.map +1 -1
  466. package/dist/vector/index.cjs +80 -8
  467. package/dist/vector/index.cjs.map +1 -1
  468. package/dist/vector/index.js +80 -1
  469. package/dist/vector/index.js.map +1 -1
  470. package/dist/vector/vector.d.ts +5 -2
  471. package/dist/vector/vector.d.ts.map +1 -1
  472. package/dist/voice/composite-voice.d.ts +1 -7
  473. package/dist/voice/composite-voice.d.ts.map +1 -1
  474. package/dist/voice/index.cjs +4 -4
  475. package/dist/voice/index.js +1 -1
  476. package/dist/voice/voice.d.ts +0 -1
  477. package/dist/voice/voice.d.ts.map +1 -1
  478. package/dist/workflows/default.d.ts +35 -43
  479. package/dist/workflows/default.d.ts.map +1 -1
  480. package/dist/workflows/evented/execution-engine.d.ts +5 -3
  481. package/dist/workflows/evented/execution-engine.d.ts.map +1 -1
  482. package/dist/workflows/evented/index.cjs +10 -10
  483. package/dist/workflows/evented/index.js +1 -1
  484. package/dist/workflows/evented/step-executor.d.ts +15 -13
  485. package/dist/workflows/evented/step-executor.d.ts.map +1 -1
  486. package/dist/workflows/evented/workflow-event-processor/index.d.ts +5 -5
  487. package/dist/workflows/evented/workflow-event-processor/index.d.ts.map +1 -1
  488. package/dist/workflows/evented/workflow-event-processor/loop.d.ts +3 -3
  489. package/dist/workflows/evented/workflow-event-processor/loop.d.ts.map +1 -1
  490. package/dist/workflows/evented/workflow-event-processor/parallel.d.ts +2 -2
  491. package/dist/workflows/evented/workflow-event-processor/sleep.d.ts +2 -2
  492. package/dist/workflows/evented/workflow-event-processor/utils.d.ts +2 -7
  493. package/dist/workflows/evented/workflow-event-processor/utils.d.ts.map +1 -1
  494. package/dist/workflows/evented/workflow.d.ts +11 -14
  495. package/dist/workflows/evented/workflow.d.ts.map +1 -1
  496. package/dist/workflows/execution-engine.d.ts +6 -6
  497. package/dist/workflows/execution-engine.d.ts.map +1 -1
  498. package/dist/workflows/index.cjs +22 -14
  499. package/dist/workflows/index.js +1 -1
  500. package/dist/workflows/step.d.ts +5 -5
  501. package/dist/workflows/step.d.ts.map +1 -1
  502. package/dist/workflows/types.d.ts +21 -44
  503. package/dist/workflows/types.d.ts.map +1 -1
  504. package/dist/workflows/utils.d.ts +14 -0
  505. package/dist/workflows/utils.d.ts.map +1 -1
  506. package/dist/workflows/workflow.d.ts +74 -64
  507. package/dist/workflows/workflow.d.ts.map +1 -1
  508. package/evals/scoreTraces.d.ts +1 -0
  509. package/evals.d.ts +1 -0
  510. package/features.d.ts +1 -0
  511. package/observability.d.ts +1 -0
  512. package/package.json +49 -64
  513. package/request-context.d.ts +1 -0
  514. package/src/_types/ai-sdk.types.d.ts +4705 -0
  515. package/src/llm/model/provider-types.generated.d.ts +80 -17
  516. package/agent/input-processor/processors.d.ts +0 -1
  517. package/ai-tracing.d.ts +0 -1
  518. package/dist/agent/index.warning.d.ts +0 -13
  519. package/dist/agent/index.warning.d.ts.map +0 -1
  520. package/dist/agent/input-processor/index.cjs +0 -28
  521. package/dist/agent/input-processor/index.d.ts +0 -10
  522. package/dist/agent/input-processor/index.d.ts.map +0 -1
  523. package/dist/agent/input-processor/index.js +0 -3
  524. package/dist/agent/input-processor/processors/index.d.ts +0 -6
  525. package/dist/agent/input-processor/processors/index.d.ts.map +0 -1
  526. package/dist/agent/input-processor/processors/language-detector.d.ts +0 -18
  527. package/dist/agent/input-processor/processors/language-detector.d.ts.map +0 -1
  528. package/dist/agent/input-processor/processors/moderation.d.ts +0 -18
  529. package/dist/agent/input-processor/processors/moderation.d.ts.map +0 -1
  530. package/dist/agent/input-processor/processors/pii-detector.d.ts +0 -18
  531. package/dist/agent/input-processor/processors/pii-detector.d.ts.map +0 -1
  532. package/dist/agent/input-processor/processors/prompt-injection-detector.d.ts +0 -18
  533. package/dist/agent/input-processor/processors/prompt-injection-detector.d.ts.map +0 -1
  534. package/dist/agent/input-processor/processors/unicode-normalizer.d.ts +0 -18
  535. package/dist/agent/input-processor/processors/unicode-normalizer.d.ts.map +0 -1
  536. package/dist/ai-tracing/context.d.ts.map +0 -1
  537. package/dist/ai-tracing/exporters/base.d.ts +0 -111
  538. package/dist/ai-tracing/exporters/base.d.ts.map +0 -1
  539. package/dist/ai-tracing/exporters/cloud.d.ts +0 -30
  540. package/dist/ai-tracing/exporters/cloud.d.ts.map +0 -1
  541. package/dist/ai-tracing/exporters/console.d.ts +0 -10
  542. package/dist/ai-tracing/exporters/console.d.ts.map +0 -1
  543. package/dist/ai-tracing/exporters/default.d.ts +0 -98
  544. package/dist/ai-tracing/exporters/default.d.ts.map +0 -1
  545. package/dist/ai-tracing/exporters/index.d.ts +0 -9
  546. package/dist/ai-tracing/exporters/index.d.ts.map +0 -1
  547. package/dist/ai-tracing/index.cjs +0 -148
  548. package/dist/ai-tracing/index.d.ts +0 -13
  549. package/dist/ai-tracing/index.d.ts.map +0 -1
  550. package/dist/ai-tracing/index.js +0 -3
  551. package/dist/ai-tracing/model-tracing.d.ts +0 -63
  552. package/dist/ai-tracing/model-tracing.d.ts.map +0 -1
  553. package/dist/ai-tracing/registry.d.ts +0 -51
  554. package/dist/ai-tracing/registry.d.ts.map +0 -1
  555. package/dist/ai-tracing/span_processors/index.d.ts +0 -5
  556. package/dist/ai-tracing/span_processors/index.d.ts.map +0 -1
  557. package/dist/ai-tracing/span_processors/sensitive-data-filter.d.ts +0 -85
  558. package/dist/ai-tracing/span_processors/sensitive-data-filter.d.ts.map +0 -1
  559. package/dist/ai-tracing/spans/base.d.ts +0 -65
  560. package/dist/ai-tracing/spans/base.d.ts.map +0 -1
  561. package/dist/ai-tracing/spans/default.d.ts +0 -13
  562. package/dist/ai-tracing/spans/default.d.ts.map +0 -1
  563. package/dist/ai-tracing/spans/index.d.ts +0 -7
  564. package/dist/ai-tracing/spans/index.d.ts.map +0 -1
  565. package/dist/ai-tracing/spans/no-op.d.ts +0 -15
  566. package/dist/ai-tracing/spans/no-op.d.ts.map +0 -1
  567. package/dist/ai-tracing/tracers/base.d.ts +0 -105
  568. package/dist/ai-tracing/tracers/base.d.ts.map +0 -1
  569. package/dist/ai-tracing/tracers/default.d.ts +0 -7
  570. package/dist/ai-tracing/tracers/default.d.ts.map +0 -1
  571. package/dist/ai-tracing/tracers/index.d.ts +0 -6
  572. package/dist/ai-tracing/tracers/index.d.ts.map +0 -1
  573. package/dist/ai-tracing/types.d.ts.map +0 -1
  574. package/dist/ai-tracing/utils.d.ts +0 -68
  575. package/dist/ai-tracing/utils.d.ts.map +0 -1
  576. package/dist/base.warning.d.ts +0 -9
  577. package/dist/base.warning.d.ts.map +0 -1
  578. package/dist/bundler/index.warning.d.ts +0 -9
  579. package/dist/bundler/index.warning.d.ts.map +0 -1
  580. package/dist/chunk-253FBVD4.cjs +0 -1303
  581. package/dist/chunk-253FBVD4.cjs.map +0 -1
  582. package/dist/chunk-2B3VLGTH.js +0 -87
  583. package/dist/chunk-2B3VLGTH.js.map +0 -1
  584. package/dist/chunk-34ZCWSUA.js.map +0 -1
  585. package/dist/chunk-3HXBPDKN.js +0 -105
  586. package/dist/chunk-3JX2Y3WH.cjs.map +0 -1
  587. package/dist/chunk-3VXXCPKX.js.map +0 -1
  588. package/dist/chunk-4R2TBRS7.cjs +0 -191
  589. package/dist/chunk-4R2TBRS7.cjs.map +0 -1
  590. package/dist/chunk-5NTO7S5I.cjs.map +0 -1
  591. package/dist/chunk-6C7VGVK4.js +0 -267
  592. package/dist/chunk-6C7VGVK4.js.map +0 -1
  593. package/dist/chunk-6KOL2B3A.cjs +0 -75
  594. package/dist/chunk-6KOL2B3A.cjs.map +0 -1
  595. package/dist/chunk-6TEQIYXV.cjs.map +0 -1
  596. package/dist/chunk-6VOPKVYH.cjs +0 -57
  597. package/dist/chunk-6VOPKVYH.cjs.map +0 -1
  598. package/dist/chunk-77JHIM4E.cjs.map +0 -1
  599. package/dist/chunk-7J3XX4AO.cjs.map +0 -1
  600. package/dist/chunk-A5KDVZDL.cjs.map +0 -1
  601. package/dist/chunk-ABZOBBLL.cjs.map +0 -1
  602. package/dist/chunk-AQGLVU53.cjs +0 -603
  603. package/dist/chunk-AQGLVU53.cjs.map +0 -1
  604. package/dist/chunk-BLUDYAPI.js +0 -596
  605. package/dist/chunk-BLUDYAPI.js.map +0 -1
  606. package/dist/chunk-BWGXM3D4.js.map +0 -1
  607. package/dist/chunk-C7OVZMPW.cjs +0 -91
  608. package/dist/chunk-C7OVZMPW.cjs.map +0 -1
  609. package/dist/chunk-DMBN72QF.cjs +0 -39
  610. package/dist/chunk-DMBN72QF.cjs.map +0 -1
  611. package/dist/chunk-DTTOVV72.js +0 -2880
  612. package/dist/chunk-DTTOVV72.js.map +0 -1
  613. package/dist/chunk-E3PG7G6E.js.map +0 -1
  614. package/dist/chunk-EBVYYC2Q.cjs +0 -111
  615. package/dist/chunk-FHVFGVIO.js.map +0 -1
  616. package/dist/chunk-GB5BIA4V.js +0 -167
  617. package/dist/chunk-GB5BIA4V.js.map +0 -1
  618. package/dist/chunk-HEQTUMUA.cjs +0 -271
  619. package/dist/chunk-HEQTUMUA.cjs.map +0 -1
  620. package/dist/chunk-HF3GZRFP.cjs +0 -9
  621. package/dist/chunk-HF3GZRFP.cjs.map +0 -1
  622. package/dist/chunk-JVV5LREI.js +0 -431
  623. package/dist/chunk-JVV5LREI.js.map +0 -1
  624. package/dist/chunk-KAEQISOW.js.map +0 -1
  625. package/dist/chunk-KDX3ZMQ2.js +0 -12
  626. package/dist/chunk-KDX3ZMQ2.js.map +0 -1
  627. package/dist/chunk-LG5B3KIW.js +0 -1215
  628. package/dist/chunk-LG5B3KIW.js.map +0 -1
  629. package/dist/chunk-LZUSZT7R.cjs +0 -170
  630. package/dist/chunk-LZUSZT7R.cjs.map +0 -1
  631. package/dist/chunk-MCASUJWY.cjs.map +0 -1
  632. package/dist/chunk-MJMID7LX.cjs.map +0 -1
  633. package/dist/chunk-MKCC5K77.js +0 -90
  634. package/dist/chunk-MKCC5K77.js.map +0 -1
  635. package/dist/chunk-NPNGPMT2.js +0 -39
  636. package/dist/chunk-NPNGPMT2.js.map +0 -1
  637. package/dist/chunk-NR77P3TK.js.map +0 -1
  638. package/dist/chunk-NUAURT4I.cjs +0 -82
  639. package/dist/chunk-NUAURT4I.cjs.map +0 -1
  640. package/dist/chunk-OIT3PCWA.js +0 -72
  641. package/dist/chunk-OIT3PCWA.js.map +0 -1
  642. package/dist/chunk-P35FNLTQ.cjs +0 -2936
  643. package/dist/chunk-P35FNLTQ.cjs.map +0 -1
  644. package/dist/chunk-PFXXH2RP.js.map +0 -1
  645. package/dist/chunk-PZUZNPFM.js.map +0 -1
  646. package/dist/chunk-QFF5JUKT.cjs.map +0 -1
  647. package/dist/chunk-RKXWLG33.js +0 -7
  648. package/dist/chunk-RKXWLG33.js.map +0 -1
  649. package/dist/chunk-ROS5CMJS.cjs.map +0 -1
  650. package/dist/chunk-SJMKDSRF.js +0 -179
  651. package/dist/chunk-SJMKDSRF.js.map +0 -1
  652. package/dist/chunk-SSULK22X.cjs +0 -14
  653. package/dist/chunk-SSULK22X.cjs.map +0 -1
  654. package/dist/chunk-TSNDVBUU.cjs.map +0 -1
  655. package/dist/chunk-TTELJD4F.js.map +0 -1
  656. package/dist/chunk-TX4TTPYJ.cjs +0 -436
  657. package/dist/chunk-TX4TTPYJ.cjs.map +0 -1
  658. package/dist/chunk-UXG7PYML.js.map +0 -1
  659. package/dist/chunk-UZKIGB7M.cjs.map +0 -1
  660. package/dist/chunk-VF676YCO.cjs +0 -150
  661. package/dist/chunk-VF676YCO.cjs.map +0 -1
  662. package/dist/chunk-VQASQG5D.js +0 -55
  663. package/dist/chunk-VQASQG5D.js.map +0 -1
  664. package/dist/chunk-WBAXXG34.cjs.map +0 -1
  665. package/dist/chunk-WCHE6FJ7.js.map +0 -1
  666. package/dist/chunk-WM4RO23J.js +0 -145
  667. package/dist/chunk-WM4RO23J.js.map +0 -1
  668. package/dist/chunk-Z4RIRDU3.js.map +0 -1
  669. package/dist/chunk-ZABG3SZ2.cjs +0 -93
  670. package/dist/chunk-ZABG3SZ2.cjs.map +0 -1
  671. package/dist/chunk-ZISECZZO.js +0 -72
  672. package/dist/chunk-ZISECZZO.js.map +0 -1
  673. package/dist/chunk-ZMELUU72.js.map +0 -1
  674. package/dist/deployer/index.warning.d.ts +0 -9
  675. package/dist/deployer/index.warning.d.ts.map +0 -1
  676. package/dist/eval/evaluation.d.ts +0 -14
  677. package/dist/eval/evaluation.d.ts.map +0 -1
  678. package/dist/eval/index.cjs +0 -16
  679. package/dist/eval/index.d.ts +0 -4
  680. package/dist/eval/index.d.ts.map +0 -1
  681. package/dist/eval/index.js +0 -3
  682. package/dist/eval/metric.d.ts +0 -8
  683. package/dist/eval/metric.d.ts.map +0 -1
  684. package/dist/eval/types.d.ts +0 -9
  685. package/dist/eval/types.d.ts.map +0 -1
  686. package/dist/integration/index.warning.d.ts +0 -3
  687. package/dist/integration/index.warning.d.ts.map +0 -1
  688. package/dist/integration/integration.warning.d.ts +0 -5
  689. package/dist/integration/integration.warning.d.ts.map +0 -1
  690. package/dist/integration/openapi-toolset.warning.d.ts +0 -5
  691. package/dist/integration/openapi-toolset.warning.d.ts.map +0 -1
  692. package/dist/loop/telemetry/index.d.ts +0 -36
  693. package/dist/loop/telemetry/index.d.ts.map +0 -1
  694. package/dist/loop/telemetry/noop.d.ts +0 -3
  695. package/dist/loop/telemetry/noop.d.ts.map +0 -1
  696. package/dist/loop/test-utils/mockTracer.d.ts +0 -47
  697. package/dist/loop/test-utils/mockTracer.d.ts.map +0 -1
  698. package/dist/loop/test-utils/telemetry.d.ts +0 -6
  699. package/dist/loop/test-utils/telemetry.d.ts.map +0 -1
  700. package/dist/memory/index.warning.d.ts +0 -6
  701. package/dist/memory/index.warning.d.ts.map +0 -1
  702. package/dist/models-dev-4VGIWYS3.js +0 -3
  703. package/dist/models-dev-AXZASLL2.cjs +0 -12
  704. package/dist/netlify-TX6V7SJJ.cjs +0 -12
  705. package/dist/netlify-VJXBII33.js +0 -3
  706. package/dist/relevance/cohere/index.d.ts +0 -9
  707. package/dist/relevance/cohere/index.d.ts.map +0 -1
  708. package/dist/runtime-context/index.cjs +0 -12
  709. package/dist/runtime-context/index.js +0 -3
  710. package/dist/scores/base.d.ts.map +0 -1
  711. package/dist/scores/base.test-utils.d.ts.map +0 -1
  712. package/dist/scores/hooks.d.ts.map +0 -1
  713. package/dist/scores/index.cjs +0 -37
  714. package/dist/scores/index.cjs.map +0 -1
  715. package/dist/scores/index.d.ts +0 -4
  716. package/dist/scores/index.d.ts.map +0 -1
  717. package/dist/scores/index.js +0 -4
  718. package/dist/scores/index.js.map +0 -1
  719. package/dist/scores/run-experiment/index.d.ts.map +0 -1
  720. package/dist/scores/run-experiment/scorerAccumulator.d.ts.map +0 -1
  721. package/dist/scores/scoreTraces/index.cjs.map +0 -1
  722. package/dist/scores/scoreTraces/index.d.ts.map +0 -1
  723. package/dist/scores/scoreTraces/index.js.map +0 -1
  724. package/dist/scores/scoreTraces/scoreTraces.d.ts.map +0 -1
  725. package/dist/scores/scoreTraces/scoreTracesWorkflow.d.ts.map +0 -1
  726. package/dist/scores/scoreTraces/utils.d.ts.map +0 -1
  727. package/dist/scores/types.d.ts.map +0 -1
  728. package/dist/storage/base.warning.d.ts +0 -8
  729. package/dist/storage/base.warning.d.ts.map +0 -1
  730. package/dist/storage/domains/legacy-evals/base.d.ts +0 -13
  731. package/dist/storage/domains/legacy-evals/base.d.ts.map +0 -1
  732. package/dist/storage/domains/legacy-evals/index.d.ts +0 -2
  733. package/dist/storage/domains/legacy-evals/index.d.ts.map +0 -1
  734. package/dist/storage/domains/legacy-evals/inmemory.d.ts +0 -17
  735. package/dist/storage/domains/legacy-evals/inmemory.d.ts.map +0 -1
  736. package/dist/storage/domains/traces/base.d.ts +0 -14
  737. package/dist/storage/domains/traces/base.d.ts.map +0 -1
  738. package/dist/storage/domains/traces/index.d.ts +0 -3
  739. package/dist/storage/domains/traces/index.d.ts.map +0 -1
  740. package/dist/storage/domains/traces/inmemory.d.ts +0 -22
  741. package/dist/storage/domains/traces/inmemory.d.ts.map +0 -1
  742. package/dist/storage/index.warning.d.ts +0 -3
  743. package/dist/storage/index.warning.d.ts.map +0 -1
  744. package/dist/telemetry/composite-exporter.d.ts +0 -10
  745. package/dist/telemetry/composite-exporter.d.ts.map +0 -1
  746. package/dist/telemetry/index.cjs +0 -32
  747. package/dist/telemetry/index.cjs.map +0 -1
  748. package/dist/telemetry/index.d.ts +0 -6
  749. package/dist/telemetry/index.d.ts.map +0 -1
  750. package/dist/telemetry/index.js +0 -3
  751. package/dist/telemetry/index.js.map +0 -1
  752. package/dist/telemetry/otel-vendor.cjs +0 -105
  753. package/dist/telemetry/otel-vendor.cjs.map +0 -1
  754. package/dist/telemetry/otel-vendor.d.ts +0 -11
  755. package/dist/telemetry/otel-vendor.d.ts.map +0 -1
  756. package/dist/telemetry/otel-vendor.js +0 -59
  757. package/dist/telemetry/otel-vendor.js.map +0 -1
  758. package/dist/telemetry/storage-exporter.d.ts +0 -21
  759. package/dist/telemetry/storage-exporter.d.ts.map +0 -1
  760. package/dist/telemetry/telemetry.d.ts +0 -59
  761. package/dist/telemetry/telemetry.d.ts.map +0 -1
  762. package/dist/telemetry/telemetry.decorators.d.ts +0 -15
  763. package/dist/telemetry/telemetry.decorators.d.ts.map +0 -1
  764. package/dist/telemetry/types.d.ts +0 -74
  765. package/dist/telemetry/types.d.ts.map +0 -1
  766. package/dist/telemetry/utility.d.ts +0 -15
  767. package/dist/telemetry/utility.d.ts.map +0 -1
  768. package/dist/tools/index.warning.d.ts +0 -8
  769. package/dist/tools/index.warning.d.ts.map +0 -1
  770. package/dist/tts/index.warning.d.ts +0 -7
  771. package/dist/tts/index.warning.d.ts.map +0 -1
  772. package/dist/vector/index.warning.d.ts +0 -6
  773. package/dist/vector/index.warning.d.ts.map +0 -1
  774. package/dist/workflows/index.warning.d.ts +0 -6
  775. package/dist/workflows/index.warning.d.ts.map +0 -1
  776. package/dist/workflows/legacy/index.cjs +0 -92
  777. package/dist/workflows/legacy/index.cjs.map +0 -1
  778. package/dist/workflows/legacy/index.d.ts +0 -5
  779. package/dist/workflows/legacy/index.d.ts.map +0 -1
  780. package/dist/workflows/legacy/index.js +0 -3
  781. package/dist/workflows/legacy/index.js.map +0 -1
  782. package/dist/workflows/legacy/machine.d.ts +0 -386
  783. package/dist/workflows/legacy/machine.d.ts.map +0 -1
  784. package/dist/workflows/legacy/step.d.ts +0 -15
  785. package/dist/workflows/legacy/step.d.ts.map +0 -1
  786. package/dist/workflows/legacy/types.d.ts +0 -397
  787. package/dist/workflows/legacy/types.d.ts.map +0 -1
  788. package/dist/workflows/legacy/utils.d.ts +0 -68
  789. package/dist/workflows/legacy/utils.d.ts.map +0 -1
  790. package/dist/workflows/legacy/workflow-instance.d.ts +0 -97
  791. package/dist/workflows/legacy/workflow-instance.d.ts.map +0 -1
  792. package/dist/workflows/legacy/workflow.d.ts +0 -109
  793. package/dist/workflows/legacy/workflow.d.ts.map +0 -1
  794. package/dist/workflows/workflow.warning.d.ts +0 -9
  795. package/dist/workflows/workflow.warning.d.ts.map +0 -1
  796. package/eval.d.ts +0 -1
  797. package/runtime-context.d.ts +0 -1
  798. package/scores/scoreTraces.d.ts +0 -1
  799. package/scores.d.ts +0 -1
  800. package/telemetry/otel-vendor.d.ts +0 -1
  801. package/telemetry.d.ts +0 -1
  802. package/workflows/legacy.d.ts +0 -1
  803. /package/dist/agent/{input-processor → message-list}/index.cjs.map +0 -0
  804. /package/dist/agent/{input-processor → message-list}/index.js.map +0 -0
  805. /package/dist/{ai-tracing → evals}/index.cjs.map +0 -0
  806. /package/dist/{ai-tracing → evals}/index.js.map +0 -0
  807. /package/dist/{scores/run-experiment → evals/run}/scorerAccumulator.d.ts +0 -0
  808. /package/dist/{scores → evals}/scoreTraces/index.d.ts +0 -0
  809. /package/dist/{eval → observability}/index.cjs.map +0 -0
  810. /package/dist/{eval → observability}/index.js.map +0 -0
  811. /package/dist/{runtime-context → request-context}/index.cjs.map +0 -0
  812. /package/dist/{runtime-context → request-context}/index.js.map +0 -0
@@ -1,12 +1,10 @@
1
1
  'use strict';
2
2
 
3
- var chunkP35FNLTQ_cjs = require('./chunk-P35FNLTQ.cjs');
4
- var chunk5NTO7S5I_cjs = require('./chunk-5NTO7S5I.cjs');
5
- var providerUtilsV5 = require('@ai-sdk/provider-utils-v5');
6
- var crypto = require('crypto');
7
- var AIV4 = require('ai');
3
+ var chunkSVLMF4UZ_cjs = require('./chunk-SVLMF4UZ.cjs');
4
+ var chunkTWH4PTDG_cjs = require('./chunk-TWH4PTDG.cjs');
5
+ var uuid = require('@lukeed/uuid');
8
6
  var AIV5 = require('ai-v5');
9
- var providerUtils = require('@ai-sdk/provider-utils');
7
+ var providerUtilsV5 = require('@ai-sdk/provider-utils-v5');
10
8
  var zod = require('zod');
11
9
 
12
10
  function _interopNamespace(e) {
@@ -27,7 +25,6 @@ function _interopNamespace(e) {
27
25
  return Object.freeze(n);
28
26
  }
29
27
 
30
- var AIV4__namespace = /*#__PURE__*/_interopNamespace(AIV4);
31
28
  var AIV5__namespace = /*#__PURE__*/_interopNamespace(AIV5);
32
29
 
33
30
  var DefaultGeneratedFile = class {
@@ -93,7 +90,7 @@ function convertToDataContent(content) {
93
90
  if (content instanceof URL && content.protocol === "data:") {
94
91
  const { mediaType: dataUrlMediaType, base64Content } = splitDataUrl(content.toString());
95
92
  if (dataUrlMediaType == null || base64Content == null) {
96
- throw new chunk5NTO7S5I_cjs.MastraError({
93
+ throw new chunkTWH4PTDG_cjs.MastraError({
97
94
  id: "INVALID_DATA_URL_FORMAT",
98
95
  text: `Invalid data URL format in content ${content.toString()}`,
99
96
  domain: "LLM" /* LLM */,
@@ -606,14 +603,53 @@ function convertDataContentToBase64String(content) {
606
603
  return content;
607
604
  }
608
605
  if (content instanceof ArrayBuffer) {
609
- return providerUtils.convertUint8ArrayToBase64(new Uint8Array(content));
606
+ return chunkSVLMF4UZ_cjs.convertUint8ArrayToBase64(new Uint8Array(content));
607
+ }
608
+ return chunkSVLMF4UZ_cjs.convertUint8ArrayToBase64(content);
609
+ }
610
+
611
+ // src/utils/fetchWithRetry.ts
612
+ async function fetchWithRetry(url, options = {}, maxRetries = 3) {
613
+ let retryCount = 0;
614
+ let lastError = null;
615
+ while (retryCount < maxRetries) {
616
+ try {
617
+ const response = await fetch(url, options);
618
+ if (!response.ok) {
619
+ if (response.status >= 400 && response.status < 500) {
620
+ throw new Error(`Request failed with status: ${response.status} ${response.statusText}`);
621
+ }
622
+ lastError = new Error(`Request failed with status: ${response.status} ${response.statusText}`);
623
+ retryCount++;
624
+ if (retryCount >= maxRetries) {
625
+ throw lastError;
626
+ }
627
+ const delay = Math.min(1e3 * Math.pow(2, retryCount), 1e4);
628
+ await new Promise((resolve) => setTimeout(resolve, delay));
629
+ continue;
630
+ }
631
+ return response;
632
+ } catch (error) {
633
+ lastError = error instanceof Error ? error : new Error(String(error));
634
+ if (lastError.message.includes("status: 4")) {
635
+ throw lastError;
636
+ }
637
+ retryCount++;
638
+ if (retryCount >= maxRetries) {
639
+ break;
640
+ }
641
+ const delay = Math.min(1e3 * Math.pow(2, retryCount), 1e4);
642
+ await new Promise((resolve) => setTimeout(resolve, delay));
643
+ }
610
644
  }
611
- return providerUtils.convertUint8ArrayToBase64(content);
645
+ throw lastError || new Error("Request failed after multiple retry attempts");
612
646
  }
647
+
648
+ // src/agent/message-list/prompt/download-assets.ts
613
649
  var downloadFromUrl = async ({ url, downloadRetries }) => {
614
650
  const urlText = url.toString();
615
651
  try {
616
- const response = await chunkP35FNLTQ_cjs.fetchWithRetry(
652
+ const response = await fetchWithRetry(
617
653
  urlText,
618
654
  {
619
655
  method: "GET"
@@ -621,7 +657,7 @@ var downloadFromUrl = async ({ url, downloadRetries }) => {
621
657
  downloadRetries
622
658
  );
623
659
  if (!response.ok) {
624
- throw new chunk5NTO7S5I_cjs.MastraError({
660
+ throw new chunkTWH4PTDG_cjs.MastraError({
625
661
  id: "DOWNLOAD_ASSETS_FAILED",
626
662
  text: "Failed to download asset",
627
663
  domain: "LLM" /* LLM */,
@@ -633,7 +669,7 @@ var downloadFromUrl = async ({ url, downloadRetries }) => {
633
669
  mediaType: response.headers.get("content-type") ?? void 0
634
670
  };
635
671
  } catch (error) {
636
- throw new chunk5NTO7S5I_cjs.MastraError(
672
+ throw new chunkTWH4PTDG_cjs.MastraError(
637
673
  {
638
674
  id: "DOWNLOAD_ASSETS_FAILED",
639
675
  text: "Failed to download asset",
@@ -672,7 +708,13 @@ async function downloadAssetsFromMessages({
672
708
  const downloadedFiles = await pMap(
673
709
  filesToDownload,
674
710
  async (fileItem) => {
675
- return downloadFromUrl({ url: fileItem.url, downloadRetries });
711
+ if (!fileItem.isUrlSupportedByModel) {
712
+ return null;
713
+ }
714
+ return {
715
+ url: fileItem.url.toString(),
716
+ ...await downloadFromUrl({ url: fileItem.url, downloadRetries })
717
+ };
676
718
  },
677
719
  {
678
720
  concurrency: downloadConcurrency
@@ -680,7 +722,7 @@ async function downloadAssetsFromMessages({
680
722
  );
681
723
  const downloadFileList = downloadedFiles.filter(
682
724
  (downloadedFile) => downloadedFile?.data != null
683
- ).map(({ data, mediaType }, index) => [filesToDownload?.[index]?.url.toString(), { data, mediaType }]);
725
+ ).map(({ url, data, mediaType }) => [url, { data, mediaType }]);
684
726
  return Object.fromEntries(downloadFileList);
685
727
  }
686
728
 
@@ -724,23 +766,10 @@ function imageContentToString(image, fallbackMimeType) {
724
766
  }
725
767
  if (image instanceof Uint8Array || image instanceof ArrayBuffer || globalThis.Buffer && Buffer.isBuffer(image)) {
726
768
  const base64 = convertDataContentToBase64String(image);
727
- if (fallbackMimeType && !base64.startsWith("data:")) {
728
- return `data:${fallbackMimeType};base64,${base64}`;
729
- }
730
769
  return base64;
731
770
  }
732
771
  return String(image);
733
772
  }
734
- function imageContentToDataUri(image, mimeType = "image/png") {
735
- const imageStr = imageContentToString(image, mimeType);
736
- if (imageStr.startsWith("data:")) {
737
- return imageStr;
738
- }
739
- if (imageStr.startsWith("http://") || imageStr.startsWith("https://")) {
740
- return imageStr;
741
- }
742
- return `data:${mimeType};base64,${imageStr}`;
743
- }
744
773
  function getImageCacheKey(image) {
745
774
  if (image instanceof URL) {
746
775
  return image.toString();
@@ -801,7 +830,7 @@ function ensureGeminiCompatibleMessages(messages) {
801
830
  const result = [...messages];
802
831
  const firstNonSystemIndex = result.findIndex((m) => m.role !== "system");
803
832
  if (firstNonSystemIndex === -1) {
804
- throw new chunk5NTO7S5I_cjs.MastraError({
833
+ throw new chunkTWH4PTDG_cjs.MastraError({
805
834
  id: "NO_USER_OR_ASSISTANT_MESSAGES",
806
835
  domain: "AGENT" /* AGENT */,
807
836
  category: "USER" /* USER */,
@@ -833,6 +862,35 @@ function getToolName(type) {
833
862
  return type;
834
863
  }
835
864
 
865
+ // src/agent/message-list/utils/convert-messages.ts
866
+ var MessageConverter = class {
867
+ messageList;
868
+ constructor(messages) {
869
+ this.messageList = new MessageList();
870
+ this.messageList.add(messages, "memory");
871
+ }
872
+ to(format) {
873
+ switch (format) {
874
+ // Old format keys (backward compatibility)
875
+ case "Mastra.V2":
876
+ return this.messageList.get.all.db();
877
+ case "AIV4.UI":
878
+ return this.messageList.get.all.aiV4.ui();
879
+ case "AIV4.Core":
880
+ return this.messageList.get.all.aiV4.core();
881
+ case "AIV5.UI":
882
+ return this.messageList.get.all.aiV5.ui();
883
+ case "AIV5.Model":
884
+ return this.messageList.get.all.aiV5.model();
885
+ default:
886
+ throw new Error(`Unsupported output format: ${format}`);
887
+ }
888
+ }
889
+ };
890
+ function convertMessages(messages) {
891
+ return new MessageConverter(messages);
892
+ }
893
+
836
894
  // src/agent/message-list/index.ts
837
895
  var MessageList = class _MessageList {
838
896
  messages = [];
@@ -955,7 +1013,7 @@ var MessageList = class _MessageList {
955
1013
  get clear() {
956
1014
  return {
957
1015
  input: {
958
- v2: () => {
1016
+ db: () => {
959
1017
  const userMessages = Array.from(this.newUserMessages);
960
1018
  this.messages = this.messages.filter((m) => !this.newUserMessages.has(m));
961
1019
  this.newUserMessages.clear();
@@ -963,7 +1021,7 @@ var MessageList = class _MessageList {
963
1021
  }
964
1022
  },
965
1023
  response: {
966
- v2: () => {
1024
+ db: () => {
967
1025
  const responseMessages = Array.from(this.newResponseMessages);
968
1026
  this.messages = this.messages.filter((m) => !this.newResponseMessages.has(m));
969
1027
  this.newResponseMessages.clear();
@@ -973,19 +1031,18 @@ var MessageList = class _MessageList {
973
1031
  };
974
1032
  }
975
1033
  all = {
976
- v3: () => this.cleanV3Metadata(this.messages.map(this.mastraMessageV2ToMastraMessageV3)),
977
- v2: () => this.messages,
978
- v1: () => convertToV1Messages(this.all.v2()),
1034
+ db: () => this.messages,
1035
+ v1: () => convertToV1Messages(this.all.db()),
979
1036
  aiV5: {
980
1037
  model: () => this.aiV5UIMessagesToAIV5ModelMessages(this.all.aiV5.ui()),
981
- ui: () => this.all.v3().map(_MessageList.mastraMessageV3ToAIV5UIMessage),
1038
+ ui: () => this.all.db().map(_MessageList.mastraDBMessageToAIV5UIMessage),
982
1039
  // Used when calling AI SDK streamText/generateText
983
1040
  prompt: () => {
984
1041
  const systemMessages = this.aiV4CoreMessagesToAIV5ModelMessages(
985
1042
  [...this.systemMessages, ...Object.values(this.taggedSystemMessages).flat()],
986
1043
  `system`
987
1044
  );
988
- const modelMessages = this.all.aiV5.model();
1045
+ const modelMessages = this.aiV5UIMessagesToAIV5ModelMessages(this.all.aiV5.ui(), true);
989
1046
  const messages = [...systemMessages, ...modelMessages];
990
1047
  return ensureGeminiCompatibleMessages(messages);
991
1048
  },
@@ -994,7 +1051,7 @@ var MessageList = class _MessageList {
994
1051
  downloadConcurrency: 10,
995
1052
  downloadRetries: 3
996
1053
  }) => {
997
- const modelMessages = this.all.aiV5.model();
1054
+ const modelMessages = this.aiV5UIMessagesToAIV5ModelMessages(this.all.aiV5.ui(), true);
998
1055
  const systemMessages = this.aiV4CoreMessagesToAIV5ModelMessages(
999
1056
  [...this.systemMessages, ...Object.values(this.taggedSystemMessages).flat()],
1000
1057
  `system`
@@ -1038,11 +1095,11 @@ var MessageList = class _MessageList {
1038
1095
  /* @deprecated use list.get.all.aiV4.prompt() instead */
1039
1096
  prompt: () => this.all.aiV4.prompt(),
1040
1097
  /* @deprecated use list.get.all.aiV4.ui() */
1041
- ui: () => this.all.v2().map(_MessageList.mastraMessageV2ToAIV4UIMessage),
1098
+ ui: () => this.all.db().map(_MessageList.mastraDBMessageToAIV4UIMessage),
1042
1099
  /* @deprecated use list.get.all.aiV4.core() */
1043
1100
  core: () => this.aiV4UIMessagesToAIV4CoreMessages(this.all.aiV4.ui()),
1044
1101
  aiV4: {
1045
- ui: () => this.all.v2().map(_MessageList.mastraMessageV2ToAIV4UIMessage),
1102
+ ui: () => this.all.db().map(_MessageList.mastraDBMessageToAIV4UIMessage),
1046
1103
  core: () => this.aiV4UIMessagesToAIV4CoreMessages(this.all.aiV4.ui()),
1047
1104
  // Used when calling AI SDK streamText/generateText
1048
1105
  prompt: () => {
@@ -1061,64 +1118,56 @@ var MessageList = class _MessageList {
1061
1118
  }
1062
1119
  };
1063
1120
  remembered = {
1064
- v3: () => this.remembered.v2().map(this.mastraMessageV2ToMastraMessageV3),
1065
- v2: () => this.messages.filter((m) => this.memoryMessages.has(m)),
1066
- v1: () => convertToV1Messages(this.remembered.v2()),
1121
+ db: () => this.messages.filter((m) => this.memoryMessages.has(m)),
1122
+ v1: () => convertToV1Messages(this.remembered.db()),
1067
1123
  aiV5: {
1068
1124
  model: () => this.aiV5UIMessagesToAIV5ModelMessages(this.remembered.aiV5.ui()),
1069
- ui: () => this.remembered.v3().map(_MessageList.mastraMessageV3ToAIV5UIMessage)
1125
+ ui: () => this.remembered.db().map(_MessageList.mastraDBMessageToAIV5UIMessage)
1070
1126
  },
1071
1127
  /* @deprecated use list.get.remembered.aiV4.ui() */
1072
- ui: () => this.remembered.v2().map(_MessageList.mastraMessageV2ToAIV4UIMessage),
1128
+ ui: () => this.remembered.db().map(_MessageList.mastraDBMessageToAIV4UIMessage),
1073
1129
  /* @deprecated use list.get.remembered.aiV4.core() */
1074
1130
  core: () => this.aiV4UIMessagesToAIV4CoreMessages(this.all.aiV4.ui()),
1075
1131
  aiV4: {
1076
- ui: () => this.remembered.v2().map(_MessageList.mastraMessageV2ToAIV4UIMessage),
1132
+ ui: () => this.remembered.db().map(_MessageList.mastraDBMessageToAIV4UIMessage),
1077
1133
  core: () => this.aiV4UIMessagesToAIV4CoreMessages(this.all.aiV4.ui())
1078
1134
  }
1079
1135
  };
1080
1136
  // TODO: need to update this for new .aiV4/5.x() pattern
1081
1137
  rememberedPersisted = {
1082
- v2: () => this.all.v2().filter((m) => this.memoryMessagesPersisted.has(m)),
1083
- v1: () => convertToV1Messages(this.rememberedPersisted.v2()),
1084
- ui: () => this.rememberedPersisted.v2().map(_MessageList.mastraMessageV2ToAIV4UIMessage),
1138
+ db: () => this.all.db().filter((m) => this.memoryMessagesPersisted.has(m)),
1139
+ v1: () => convertToV1Messages(this.rememberedPersisted.db()),
1140
+ ui: () => this.rememberedPersisted.db().map(_MessageList.mastraDBMessageToAIV4UIMessage),
1085
1141
  core: () => this.aiV4UIMessagesToAIV4CoreMessages(this.rememberedPersisted.ui())
1086
1142
  };
1087
1143
  input = {
1088
- v3: () => this.cleanV3Metadata(
1089
- this.messages.filter((m) => this.newUserMessages.has(m)).map(this.mastraMessageV2ToMastraMessageV3)
1090
- ),
1091
- v2: () => this.messages.filter((m) => this.newUserMessages.has(m)),
1092
- v1: () => convertToV1Messages(this.input.v2()),
1144
+ db: () => this.messages.filter((m) => this.newUserMessages.has(m)),
1145
+ v1: () => convertToV1Messages(this.input.db()),
1093
1146
  aiV5: {
1094
1147
  model: () => this.aiV5UIMessagesToAIV5ModelMessages(this.input.aiV5.ui()),
1095
- ui: () => this.input.v3().map(_MessageList.mastraMessageV3ToAIV5UIMessage)
1148
+ ui: () => this.input.db().map(_MessageList.mastraDBMessageToAIV5UIMessage)
1096
1149
  },
1097
1150
  /* @deprecated use list.get.input.aiV4.ui() instead */
1098
- ui: () => this.input.v2().map(_MessageList.mastraMessageV2ToAIV4UIMessage),
1151
+ ui: () => this.input.db().map(_MessageList.mastraDBMessageToAIV4UIMessage),
1099
1152
  /* @deprecated use list.get.core.aiV4.ui() instead */
1100
1153
  core: () => this.aiV4UIMessagesToAIV4CoreMessages(this.input.ui()),
1101
1154
  aiV4: {
1102
- ui: () => this.input.v2().map(_MessageList.mastraMessageV2ToAIV4UIMessage),
1155
+ ui: () => this.input.db().map(_MessageList.mastraDBMessageToAIV4UIMessage),
1103
1156
  core: () => this.aiV4UIMessagesToAIV4CoreMessages(this.input.aiV4.ui())
1104
1157
  }
1105
1158
  };
1106
1159
  // TODO: need to update this for new .aiV4/5.x() pattern
1107
1160
  inputPersisted = {
1108
- v3: () => this.cleanV3Metadata(
1109
- this.messages.filter((m) => this.newUserMessagesPersisted.has(m)).map(this.mastraMessageV2ToMastraMessageV3)
1110
- ),
1111
- v2: () => this.messages.filter((m) => this.newUserMessagesPersisted.has(m)),
1112
- v1: () => convertToV1Messages(this.inputPersisted.v2()),
1113
- ui: () => this.inputPersisted.v2().map(_MessageList.mastraMessageV2ToAIV4UIMessage),
1161
+ db: () => this.messages.filter((m) => this.newUserMessagesPersisted.has(m)),
1162
+ v1: () => convertToV1Messages(this.inputPersisted.db()),
1163
+ ui: () => this.inputPersisted.db().map(_MessageList.mastraDBMessageToAIV4UIMessage),
1114
1164
  core: () => this.aiV4UIMessagesToAIV4CoreMessages(this.inputPersisted.ui())
1115
1165
  };
1116
1166
  response = {
1117
- v3: () => this.response.v2().map(this.mastraMessageV2ToMastraMessageV3),
1118
- v2: () => this.messages.filter((m) => this.newResponseMessages.has(m)),
1119
- v1: () => convertToV1Messages(this.response.v3().map(_MessageList.mastraMessageV3ToV2)),
1167
+ db: () => this.messages.filter((m) => this.newResponseMessages.has(m)),
1168
+ v1: () => convertToV1Messages(this.response.db()),
1120
1169
  aiV5: {
1121
- ui: () => this.response.v3().map(_MessageList.mastraMessageV3ToAIV5UIMessage),
1170
+ ui: () => this.response.db().map(_MessageList.mastraDBMessageToAIV5UIMessage),
1122
1171
  model: () => this.aiV5UIMessagesToAIV5ModelMessages(this.response.aiV5.ui()).filter(
1123
1172
  (m) => m.role === `tool` || m.role === `assistant`
1124
1173
  ),
@@ -1261,17 +1310,14 @@ var MessageList = class _MessageList {
1261
1310
  }
1262
1311
  },
1263
1312
  aiV4: {
1264
- ui: () => this.response.v2().map(_MessageList.mastraMessageV2ToAIV4UIMessage),
1313
+ ui: () => this.response.db().map(_MessageList.mastraDBMessageToAIV4UIMessage),
1265
1314
  core: () => this.aiV4UIMessagesToAIV4CoreMessages(this.response.aiV4.ui())
1266
1315
  }
1267
1316
  };
1268
1317
  // TODO: need to update this for new .aiV4/5.x() pattern
1269
1318
  responsePersisted = {
1270
- v3: () => this.cleanV3Metadata(
1271
- this.messages.filter((m) => this.newResponseMessagesPersisted.has(m)).map(this.mastraMessageV2ToMastraMessageV3)
1272
- ),
1273
- v2: () => this.messages.filter((m) => this.newResponseMessagesPersisted.has(m)),
1274
- ui: () => this.responsePersisted.v2().map(_MessageList.mastraMessageV2ToAIV4UIMessage)
1319
+ db: () => this.messages.filter((m) => this.newResponseMessagesPersisted.has(m)),
1320
+ ui: () => this.responsePersisted.db().map(_MessageList.mastraDBMessageToAIV4UIMessage)
1275
1321
  };
1276
1322
  drainUnsavedMessages() {
1277
1323
  const messages = this.messages.filter((m) => this.newUserMessages.has(m) || this.newResponseMessages.has(m));
@@ -1298,7 +1344,7 @@ var MessageList = class _MessageList {
1298
1344
  return this;
1299
1345
  }
1300
1346
  aiV4UIMessagesToAIV4CoreMessages(messages) {
1301
- return AIV4__namespace.convertToCoreMessages(this.sanitizeAIV4UIMessages(messages));
1347
+ return chunkSVLMF4UZ_cjs.convertToCoreMessages(this.sanitizeAIV4UIMessages(messages));
1302
1348
  }
1303
1349
  sanitizeAIV4UIMessages(messages) {
1304
1350
  const msgs = messages.map((m) => {
@@ -1322,7 +1368,7 @@ var MessageList = class _MessageList {
1322
1368
  }
1323
1369
  /**
1324
1370
  * Converts various message formats to AIV4 CoreMessage format for system messages
1325
- * @param message - The message to convert (can be string, MastraMessageV2, or AI SDK message types)
1371
+ * @param message - The message to convert (can be string, MastraDBMessage, or AI SDK message types)
1326
1372
  * @returns AIV4 CoreMessage in the proper format
1327
1373
  */
1328
1374
  systemMessageToAICore(message) {
@@ -1330,10 +1376,11 @@ var MessageList = class _MessageList {
1330
1376
  return { role: "system", content: message };
1331
1377
  }
1332
1378
  if (_MessageList.isAIV5CoreMessage(message)) {
1333
- return this.aiV5ModelMessagesToAIV4CoreMessages([message], `system`)[0];
1379
+ const dbMsg = _MessageList.aiV5ModelMessageToMastraDBMessage(message, "system");
1380
+ return _MessageList.mastraDBMessageSystemToV4Core(dbMsg);
1334
1381
  }
1335
- if (_MessageList.isMastraMessageV2(message)) {
1336
- return _MessageList.mastraMessageV2SystemToV4Core(message);
1382
+ if (_MessageList.isMastraDBMessage(message)) {
1383
+ return _MessageList.mastraDBMessageSystemToV4Core(message);
1337
1384
  }
1338
1385
  return message;
1339
1386
  }
@@ -1362,7 +1409,7 @@ var MessageList = class _MessageList {
1362
1409
  (m) => _MessageList.cacheKeyFromAIV4CoreMessageContent(m.content) === _MessageList.cacheKeyFromAIV4CoreMessageContent(message.content)
1363
1410
  );
1364
1411
  }
1365
- static mastraMessageV2ToAIV4UIMessage(m) {
1412
+ static mastraDBMessageToAIV4UIMessage(m) {
1366
1413
  const experimentalAttachments = m.content.experimental_attachments ? [...m.content.experimental_attachments] : [];
1367
1414
  const contentString = typeof m.content.content === `string` && m.content.content !== "" ? m.content.content : m.content.parts.reduce((prev, part) => {
1368
1415
  if (part.type === `text`) {
@@ -1457,14 +1504,14 @@ var MessageList = class _MessageList {
1457
1504
  return uiMessage;
1458
1505
  }
1459
1506
  /**
1460
- * Converts a MastraMessageV2 system message directly to AIV4 CoreMessage format
1507
+ * Converts a MastraDBMessage system message directly to AIV4 CoreMessage format
1461
1508
  * This is more efficient than converting to UI message first and then to core
1462
- * @param message - The MastraMessageV2 message to convert
1509
+ * @param message - The MastraDBMessage message to convert
1463
1510
  * @returns AIV4 CoreMessage with system role
1464
1511
  */
1465
- static mastraMessageV2SystemToV4Core(message) {
1512
+ static mastraDBMessageSystemToV4Core(message) {
1466
1513
  if (message.role !== `system` || !message.content.content)
1467
- throw new chunk5NTO7S5I_cjs.MastraError({
1514
+ throw new chunkTWH4PTDG_cjs.MastraError({
1468
1515
  id: "INVALID_SYSTEM_MESSAGE_FORMAT",
1469
1516
  domain: "AGENT" /* AGENT */,
1470
1517
  category: "USER" /* USER */,
@@ -1494,7 +1541,7 @@ var MessageList = class _MessageList {
1494
1541
  addOne(message, messageSource) {
1495
1542
  if ((!(`content` in message) || !message.content && // allow empty strings
1496
1543
  typeof message.content !== "string") && (!(`parts` in message) || !message.parts)) {
1497
- throw new chunk5NTO7S5I_cjs.MastraError({
1544
+ throw new chunkTWH4PTDG_cjs.MastraError({
1498
1545
  id: "INVALID_MESSAGE_CONTENT",
1499
1546
  domain: "AGENT" /* AGENT */,
1500
1547
  category: "USER" /* USER */,
@@ -1509,11 +1556,11 @@ var MessageList = class _MessageList {
1509
1556
  }
1510
1557
  if (message.role === `system`) {
1511
1558
  if (messageSource === `memory`) return null;
1512
- const isSupportedSystemFormat = _MessageList.isAIV4CoreMessage(message) || _MessageList.isAIV5CoreMessage(message) || _MessageList.isMastraMessageV2(message);
1559
+ const isSupportedSystemFormat = _MessageList.isAIV4CoreMessage(message) || _MessageList.isAIV5CoreMessage(message) || _MessageList.isMastraDBMessage(message);
1513
1560
  if (isSupportedSystemFormat) {
1514
1561
  return this.addSystem(message);
1515
1562
  }
1516
- throw new chunk5NTO7S5I_cjs.MastraError({
1563
+ throw new chunkTWH4PTDG_cjs.MastraError({
1517
1564
  id: "INVALID_SYSTEM_MESSAGE_FORMAT",
1518
1565
  domain: "AGENT" /* AGENT */,
1519
1566
  category: "USER" /* USER */,
@@ -1524,7 +1571,7 @@ var MessageList = class _MessageList {
1524
1571
  }
1525
1572
  });
1526
1573
  }
1527
- const messageV2 = this.inputToMastraMessageV2(message, messageSource);
1574
+ const messageV2 = this.inputToMastraDBMessage(message, messageSource);
1528
1575
  const { exists, shouldReplace, id } = this.shouldReplaceMessage(messageV2);
1529
1576
  const latestMessage = this.messages.at(-1);
1530
1577
  if (messageSource === `memory`) {
@@ -1716,7 +1763,7 @@ var MessageList = class _MessageList {
1716
1763
  }
1717
1764
  }
1718
1765
  }
1719
- inputToMastraMessageV2(message, messageSource) {
1766
+ inputToMastraDBMessage(message, messageSource) {
1720
1767
  if (
1721
1768
  // we can't throw if the threadId doesn't match and this message came from memory
1722
1769
  // this is because per-user semantic recall can retrieve messages from other threads
@@ -1732,25 +1779,33 @@ var MessageList = class _MessageList {
1732
1779
  );
1733
1780
  }
1734
1781
  if (_MessageList.isMastraMessageV1(message)) {
1735
- return this.mastraMessageV1ToMastraMessageV2(message, messageSource);
1782
+ return this.mastraMessageV1ToMastraDBMessage(message, messageSource);
1736
1783
  }
1737
- if (_MessageList.isMastraMessageV2(message)) {
1738
- return this.hydrateMastraMessageV2Fields(message);
1784
+ if (_MessageList.isMastraDBMessage(message)) {
1785
+ return this.hydrateMastraDBMessageFields(message);
1739
1786
  }
1740
1787
  if (_MessageList.isAIV4CoreMessage(message)) {
1741
- return this.aiV4CoreMessageToMastraMessageV2(message, messageSource);
1788
+ return this.aiV4CoreMessageToMastraDBMessage(message, messageSource);
1742
1789
  }
1743
1790
  if (_MessageList.isAIV4UIMessage(message)) {
1744
- return this.aiV4UIMessageToMastraMessageV2(message, messageSource);
1791
+ return this.aiV4UIMessageToMastraDBMessage(message, messageSource);
1745
1792
  }
1746
1793
  if (_MessageList.isAIV5CoreMessage(message)) {
1747
- return _MessageList.mastraMessageV3ToV2(this.aiV5ModelMessageToMastraMessageV3(message, messageSource));
1794
+ const dbMsg = _MessageList.aiV5ModelMessageToMastraDBMessage(message, messageSource);
1795
+ const result = {
1796
+ ...dbMsg,
1797
+ threadId: this.memoryInfo?.threadId,
1798
+ resourceId: this.memoryInfo?.resourceId
1799
+ };
1800
+ return result;
1748
1801
  }
1749
1802
  if (_MessageList.isAIV5UIMessage(message)) {
1750
- return _MessageList.mastraMessageV3ToV2(this.aiV5UIMessageToMastraMessageV3(message, messageSource));
1751
- }
1752
- if (_MessageList.isMastraMessageV3(message)) {
1753
- return _MessageList.mastraMessageV3ToV2(this.hydrateMastraMessageV3Fields(message));
1803
+ const dbMsg = _MessageList.aiV5UIMessageToMastraDBMessage(message);
1804
+ return {
1805
+ ...dbMsg,
1806
+ threadId: this.memoryInfo?.threadId,
1807
+ resourceId: this.memoryInfo?.resourceId
1808
+ };
1754
1809
  }
1755
1810
  throw new Error(`Found unhandled message ${JSON.stringify(message)}`);
1756
1811
  }
@@ -1783,10 +1838,10 @@ var MessageList = class _MessageList {
1783
1838
  if (this.generateMessageId) {
1784
1839
  return this.generateMessageId();
1785
1840
  }
1786
- return crypto.randomUUID();
1841
+ return uuid.v4();
1787
1842
  }
1788
- mastraMessageV1ToMastraMessageV2(message, messageSource) {
1789
- const coreV2 = this.aiV4CoreMessageToMastraMessageV2(
1843
+ mastraMessageV1ToMastraDBMessage(message, messageSource) {
1844
+ const coreV2 = this.aiV4CoreMessageToMastraDBMessage(
1790
1845
  {
1791
1846
  content: message.content,
1792
1847
  role: message.role
@@ -1802,11 +1857,10 @@ var MessageList = class _MessageList {
1802
1857
  content: coreV2.content
1803
1858
  };
1804
1859
  }
1805
- hydrateMastraMessageV3Fields(message) {
1806
- if (!(message.createdAt instanceof Date)) message.createdAt = new Date(message.createdAt);
1807
- return message;
1808
- }
1809
- hydrateMastraMessageV2Fields(message) {
1860
+ hydrateMastraDBMessageFields(message) {
1861
+ if (!message.id) {
1862
+ message.id = this.newMessageId();
1863
+ }
1810
1864
  if (!(message.createdAt instanceof Date)) message.createdAt = new Date(message.createdAt);
1811
1865
  if (message.content.toolInvocations && message.content.parts) {
1812
1866
  message.content.toolInvocations = message.content.toolInvocations.map((ti) => {
@@ -1823,7 +1877,7 @@ var MessageList = class _MessageList {
1823
1877
  }
1824
1878
  return message;
1825
1879
  }
1826
- aiV4UIMessageToMastraMessageV2(message, messageSource) {
1880
+ aiV4UIMessageToMastraDBMessage(message, messageSource) {
1827
1881
  const content = {
1828
1882
  format: 2,
1829
1883
  parts: message.parts
@@ -1846,7 +1900,7 @@ var MessageList = class _MessageList {
1846
1900
  content
1847
1901
  };
1848
1902
  }
1849
- aiV4CoreMessageToMastraMessageV2(coreMessage, messageSource) {
1903
+ aiV4CoreMessageToMastraDBMessage(coreMessage, messageSource) {
1850
1904
  const id = `id` in coreMessage ? coreMessage.id : this.newMessageId();
1851
1905
  const parts = [];
1852
1906
  const experimentalAttachments = [];
@@ -2018,21 +2072,16 @@ var MessageList = class _MessageList {
2018
2072
  return !_MessageList.isMastraMessage(msg) && !(`parts` in msg) && `content` in msg && !_MessageList.hasAIV5CoreMessageCharacteristics(msg);
2019
2073
  }
2020
2074
  static isMastraMessage(msg) {
2021
- return _MessageList.isMastraMessageV3(msg) || _MessageList.isMastraMessageV2(msg) || _MessageList.isMastraMessageV1(msg);
2075
+ return _MessageList.isMastraDBMessage(msg) || _MessageList.isMastraMessageV1(msg);
2022
2076
  }
2023
2077
  static isMastraMessageV1(msg) {
2024
- return !_MessageList.isMastraMessageV2(msg) && !_MessageList.isMastraMessageV3(msg) && (`threadId` in msg || `resourceId` in msg);
2078
+ return !_MessageList.isMastraDBMessage(msg) && (`threadId` in msg || `resourceId` in msg);
2025
2079
  }
2026
- static isMastraMessageV2(msg) {
2080
+ static isMastraDBMessage(msg) {
2027
2081
  return Boolean(
2028
2082
  `content` in msg && msg.content && !Array.isArray(msg.content) && typeof msg.content !== `string` && `format` in msg.content && msg.content.format === 2
2029
2083
  );
2030
2084
  }
2031
- static isMastraMessageV3(msg) {
2032
- return Boolean(
2033
- `content` in msg && msg.content && !Array.isArray(msg.content) && typeof msg.content !== `string` && `format` in msg.content && msg.content.format === 3
2034
- );
2035
- }
2036
2085
  static getRole(message) {
2037
2086
  if (message.role === `assistant` || message.role === `tool`) return `assistant`;
2038
2087
  if (message.role === `user`) return `user`;
@@ -2129,18 +2178,12 @@ var MessageList = class _MessageList {
2129
2178
  if (oneMM1 && twoMM1) {
2130
2179
  return oneMM1.id === twoMM1.id && _MessageList.cacheKeyFromAIV4CoreMessageContent(oneMM1.content) === _MessageList.cacheKeyFromAIV4CoreMessageContent(twoMM1.content);
2131
2180
  }
2132
- const oneMM2 = _MessageList.isMastraMessageV2(one) && one;
2133
- const twoMM2 = _MessageList.isMastraMessageV2(two) && two;
2181
+ const oneMM2 = _MessageList.isMastraDBMessage(one) && one;
2182
+ const twoMM2 = _MessageList.isMastraDBMessage(two) && two;
2134
2183
  if (oneMM2 && !twoMM2) return false;
2135
2184
  if (oneMM2 && twoMM2) {
2136
2185
  return oneMM2.id === twoMM2.id && _MessageList.cacheKeyFromAIV4Parts(oneMM2.content.parts) === _MessageList.cacheKeyFromAIV4Parts(twoMM2.content.parts);
2137
2186
  }
2138
- const oneMM3 = _MessageList.isMastraMessageV3(one) && one;
2139
- const twoMM3 = _MessageList.isMastraMessageV3(two) && two;
2140
- if (oneMM3 && !twoMM3) return false;
2141
- if (oneMM3 && twoMM3) {
2142
- return oneMM3.id === twoMM3.id && _MessageList.cacheKeyFromAIV5Parts(oneMM3.content.parts) === _MessageList.cacheKeyFromAIV5Parts(twoMM3.content.parts);
2143
- }
2144
2187
  const oneUIV5 = _MessageList.isAIV5UIMessage(one) && one;
2145
2188
  const twoUIV5 = _MessageList.isAIV5UIMessage(two) && two;
2146
2189
  if (oneUIV5 && !twoUIV5) return false;
@@ -2155,25 +2198,6 @@ var MessageList = class _MessageList {
2155
2198
  }
2156
2199
  return true;
2157
2200
  }
2158
- cleanV3Metadata(messages) {
2159
- return messages.map((msg) => {
2160
- if (!msg.content.metadata || typeof msg.content.metadata !== "object") {
2161
- return msg;
2162
- }
2163
- const metadata = { ...msg.content.metadata };
2164
- const hasOriginalContent = "__originalContent" in metadata;
2165
- const hasOriginalAttachments = "__originalExperimentalAttachments" in metadata;
2166
- if (!hasOriginalContent && !hasOriginalAttachments) {
2167
- return msg;
2168
- }
2169
- const { __originalContent, __originalExperimentalAttachments, ...cleanMetadata } = metadata;
2170
- if (Object.keys(cleanMetadata).length === 0) {
2171
- const { metadata: metadata2, ...contentWithoutMetadata } = msg.content;
2172
- return { ...msg, content: contentWithoutMetadata };
2173
- }
2174
- return { ...msg, content: { ...msg.content, metadata: cleanMetadata } };
2175
- });
2176
- }
2177
2201
  static aiV4CoreMessageToV1PromptMessage(coreMessage) {
2178
2202
  if (coreMessage.role === `system`) {
2179
2203
  return coreMessage;
@@ -2370,240 +2394,103 @@ var MessageList = class _MessageList {
2370
2394
  `Encountered unknown role ${role} when converting V5 ModelMessage -> V5 LanguageModelV2Message, input message: ${JSON.stringify(modelMessage, null, 2)}`
2371
2395
  );
2372
2396
  }
2373
- static mastraMessageV3ToV2(v3Msg) {
2374
- const toolInvocationParts = v3Msg.content.parts.filter((p) => AIV5__namespace.isToolUIPart(p));
2375
- const hadToolInvocations = v3Msg.content.metadata?.__hadToolInvocations === true;
2376
- let toolInvocations = void 0;
2377
- if (toolInvocationParts.length > 0) {
2378
- const invocations = toolInvocationParts.map((p) => {
2379
- const toolName = getToolName(p);
2380
- if (p.state === `output-available`) {
2381
- return {
2382
- args: p.input,
2383
- result: typeof p.output === "object" && p.output && "value" in p.output ? p.output.value : p.output,
2384
- toolCallId: p.toolCallId,
2385
- toolName,
2386
- state: "result"
2387
- };
2388
- }
2389
- return {
2390
- args: p.input,
2391
- state: "call",
2392
- toolName,
2393
- toolCallId: p.toolCallId
2394
- };
2395
- });
2396
- toolInvocations = invocations;
2397
- } else if (hadToolInvocations && v3Msg.role === "assistant") {
2398
- toolInvocations = [];
2399
- }
2400
- const attachmentUrls = new Set(v3Msg.content.metadata?.__attachmentUrls || []);
2401
- const v2Msg = {
2402
- id: v3Msg.id,
2403
- resourceId: v3Msg.resourceId,
2404
- threadId: v3Msg.threadId,
2405
- createdAt: v3Msg.createdAt,
2406
- role: v3Msg.role,
2407
- content: {
2408
- format: 2,
2409
- parts: v3Msg.content.parts.map((p) => {
2410
- if (AIV5__namespace.isToolUIPart(p) || p.type === "dynamic-tool") {
2411
- const toolName = getToolName(p);
2412
- const shared = {
2413
- state: p.state,
2414
- args: p.input,
2415
- toolCallId: p.toolCallId,
2416
- toolName
2417
- };
2418
- if (p.state === `output-available`) {
2419
- return {
2420
- type: "tool-invocation",
2421
- toolInvocation: {
2422
- ...shared,
2423
- state: "result",
2424
- result: typeof p.output === "object" && p.output && "value" in p.output ? p.output.value : p.output
2425
- },
2426
- providerMetadata: p.callProviderMetadata
2427
- };
2428
- }
2429
- return {
2430
- type: "tool-invocation",
2431
- toolInvocation: {
2432
- ...shared,
2433
- state: p.state === `input-available` ? `call` : `partial-call`
2434
- }
2435
- };
2436
- }
2437
- switch (p.type) {
2438
- case "text":
2439
- return p;
2440
- case "file": {
2441
- const fileDataSource = "url" in p && typeof p.url === "string" ? p.url : "data" in p && typeof p.data === "string" ? p.data : void 0;
2442
- if (!fileDataSource) {
2443
- return null;
2444
- }
2445
- if (attachmentUrls.has(fileDataSource)) {
2446
- return null;
2447
- }
2448
- return {
2449
- type: "file",
2450
- mimeType: p.mediaType,
2451
- data: fileDataSource,
2452
- providerMetadata: p.providerMetadata
2453
- };
2454
- }
2455
- case "reasoning":
2456
- if (p.text === "") return null;
2457
- return {
2458
- type: "reasoning",
2459
- reasoning: p.text,
2460
- details: [{ type: "text", text: p.text }],
2461
- providerMetadata: p.providerMetadata
2462
- };
2463
- case "source-url":
2464
- return {
2465
- type: "source",
2466
- source: {
2467
- url: p.url,
2468
- id: p.sourceId,
2469
- sourceType: "url"
2470
- },
2471
- providerMetadata: p.providerMetadata
2472
- };
2473
- case "step-start":
2474
- return p;
2475
- }
2476
- return null;
2477
- }).filter((p) => Boolean(p))
2478
- }
2479
- };
2480
- if (toolInvocations !== void 0) {
2481
- v2Msg.content.toolInvocations = toolInvocations;
2482
- }
2483
- if (v3Msg.content.metadata) {
2484
- const { __originalContent, __originalExperimentalAttachments, __attachmentUrls, ...userMetadata } = v3Msg.content.metadata;
2485
- v2Msg.content.metadata = userMetadata;
2486
- }
2487
- const originalContent = v3Msg.content.metadata?.__originalContent;
2488
- if (originalContent !== void 0) {
2489
- const hasOnlyTextOrStepStart = v2Msg.content.parts.every((p) => p.type === `step-start` || p.type === `text`);
2490
- if (typeof originalContent === `string` || hasOnlyTextOrStepStart) {
2491
- v2Msg.content.content = originalContent;
2492
- }
2493
- }
2494
- const originalAttachments = v3Msg.content.metadata?.__originalExperimentalAttachments;
2495
- if (originalAttachments && Array.isArray(originalAttachments)) {
2496
- v2Msg.content.experimental_attachments = originalAttachments || [];
2497
- }
2498
- const originalContentIsV5 = Array.isArray(v3Msg.content.metadata?.__originalContent) && v3Msg.content.metadata?.__originalContent.some((part) => part.type === "file");
2499
- const urlFileParts = originalContentIsV5 ? [] : v2Msg.content.parts.filter(
2500
- (p) => p.type === "file" && typeof p.data === "string" && (p.data.startsWith("http://") || p.data.startsWith("https://")) && !p.providerMetadata
2501
- // Don't move if it has providerMetadata (needed for roundtrip)
2502
- );
2503
- if (urlFileParts.length > 0) {
2504
- if (!v2Msg.content.experimental_attachments) {
2505
- v2Msg.content.experimental_attachments = [];
2506
- }
2507
- for (const urlPart of urlFileParts) {
2508
- if (urlPart.type === "file") {
2509
- v2Msg.content.experimental_attachments.push({
2510
- url: urlPart.data,
2511
- contentType: urlPart.mimeType
2397
+ /**
2398
+ * Direct conversion from MastraDBMessage to AIV5 UIMessage
2399
+ */
2400
+ static mastraDBMessageToAIV5UIMessage(dbMsg) {
2401
+ const parts = [];
2402
+ const metadata = { ...dbMsg.content.metadata || {} };
2403
+ if (dbMsg.createdAt) metadata.createdAt = dbMsg.createdAt;
2404
+ if (dbMsg.threadId) metadata.threadId = dbMsg.threadId;
2405
+ if (dbMsg.resourceId) metadata.resourceId = dbMsg.resourceId;
2406
+ const hasToolInvocationParts = dbMsg.content.parts?.some((p) => p.type === "tool-invocation");
2407
+ if (dbMsg.content.toolInvocations && !hasToolInvocationParts) {
2408
+ for (const invocation of dbMsg.content.toolInvocations) {
2409
+ if (invocation.state === "result") {
2410
+ parts.push({
2411
+ type: `tool-${invocation.toolName}`,
2412
+ toolCallId: invocation.toolCallId,
2413
+ state: "output-available",
2414
+ input: invocation.args,
2415
+ output: invocation.result
2416
+ });
2417
+ } else {
2418
+ parts.push({
2419
+ type: `tool-${invocation.toolName}`,
2420
+ toolCallId: invocation.toolCallId,
2421
+ state: invocation.state === "call" ? "input-available" : "input-streaming",
2422
+ input: invocation.args
2512
2423
  });
2513
2424
  }
2514
2425
  }
2515
- v2Msg.content.parts = v2Msg.content.parts.filter(
2516
- (p) => !(p.type === "file" && typeof p.data === "string" && (p.data.startsWith("http://") || p.data.startsWith("https://")) && !p.providerMetadata)
2517
- );
2518
- }
2519
- if (toolInvocations && toolInvocations.length > 0) {
2520
- const resultToolInvocations = toolInvocations.filter((t) => t.state === "result");
2521
- if (resultToolInvocations.length > 0) {
2522
- v2Msg.content.toolInvocations = resultToolInvocations;
2523
- }
2524
- }
2525
- if (v3Msg.type) v2Msg.type = v3Msg.type;
2526
- return v2Msg;
2527
- }
2528
- mastraMessageV2ToMastraMessageV3(v2Msg) {
2529
- const parts = [];
2530
- const v3Msg = {
2531
- id: v2Msg.id,
2532
- content: {
2533
- format: 3,
2534
- parts
2535
- },
2536
- role: v2Msg.role,
2537
- createdAt: v2Msg.createdAt instanceof Date ? v2Msg.createdAt : new Date(v2Msg.createdAt),
2538
- resourceId: v2Msg.resourceId,
2539
- threadId: v2Msg.threadId,
2540
- type: v2Msg.type
2541
- };
2542
- if (v2Msg.content.metadata) {
2543
- v3Msg.content.metadata = { ...v2Msg.content.metadata };
2544
2426
  }
2545
- if (v2Msg.content.content !== void 0) {
2546
- v3Msg.content.metadata = {
2547
- ...v3Msg.content.metadata || {},
2548
- __originalContent: v2Msg.content.content
2549
- };
2427
+ const hasReasoningInParts = dbMsg.content.parts?.some((p) => p.type === "reasoning");
2428
+ const hasFileInParts = dbMsg.content.parts?.some((p) => p.type === "file");
2429
+ if (dbMsg.content.reasoning && !hasReasoningInParts) {
2430
+ parts.push({
2431
+ type: "reasoning",
2432
+ text: dbMsg.content.reasoning
2433
+ });
2550
2434
  }
2551
- if (v2Msg.content.experimental_attachments !== void 0) {
2552
- v3Msg.content.metadata = {
2553
- ...v3Msg.content.metadata || {},
2554
- __originalExperimentalAttachments: v2Msg.content.experimental_attachments
2555
- };
2435
+ const attachmentUrls = /* @__PURE__ */ new Set();
2436
+ if (dbMsg.content.experimental_attachments && !hasFileInParts) {
2437
+ for (const attachment of dbMsg.content.experimental_attachments) {
2438
+ attachmentUrls.add(attachment.url);
2439
+ parts.push({
2440
+ type: "file",
2441
+ url: attachment.url,
2442
+ mediaType: attachment.contentType || "unknown"
2443
+ });
2444
+ }
2556
2445
  }
2557
- const fileUrls = /* @__PURE__ */ new Set();
2558
- for (const part of v2Msg.content.parts) {
2559
- switch (part.type) {
2560
- case "step-start":
2561
- case "text":
2562
- parts.push(part);
2563
- break;
2564
- case "tool-invocation":
2565
- if (part.toolInvocation.state === `result`) {
2446
+ let hasNonToolReasoningParts = false;
2447
+ if (dbMsg.content.parts) {
2448
+ for (const part of dbMsg.content.parts) {
2449
+ if (part.type === "tool-invocation" && part.toolInvocation) {
2450
+ const inv = part.toolInvocation;
2451
+ if (inv.state === "result") {
2566
2452
  parts.push({
2567
- type: `tool-${part.toolInvocation.toolName}`,
2568
- toolCallId: part.toolInvocation.toolCallId,
2453
+ type: `tool-${inv.toolName}`,
2454
+ toolCallId: inv.toolCallId,
2455
+ input: inv.args,
2456
+ output: inv.result,
2569
2457
  state: "output-available",
2570
- input: part.toolInvocation.args,
2571
- output: part.toolInvocation.result,
2572
2458
  callProviderMetadata: part.providerMetadata
2573
2459
  });
2574
2460
  } else {
2575
2461
  parts.push({
2576
- type: `tool-${part.toolInvocation.toolName}`,
2577
- toolCallId: part.toolInvocation.toolCallId,
2578
- state: part.toolInvocation.state === `call` ? `input-available` : `input-streaming`,
2579
- input: part.toolInvocation.args
2462
+ type: `tool-${inv.toolName}`,
2463
+ toolCallId: inv.toolCallId,
2464
+ input: inv.args,
2465
+ state: "input-available",
2466
+ callProviderMetadata: part.providerMetadata
2580
2467
  });
2581
2468
  }
2582
- break;
2583
- case "source":
2584
- parts.push({
2585
- type: "source-url",
2586
- sourceId: part.source.id,
2587
- url: part.source.url,
2588
- title: part.source.title,
2589
- providerMetadata: part.source.providerMetadata || part.providerMetadata
2590
- });
2591
- break;
2592
- case "reasoning":
2593
- const text = part.reasoning || (part.details?.reduce((p, c) => {
2594
- if (c.type === `text`) return p + c.text;
2469
+ continue;
2470
+ }
2471
+ if (part.type === "reasoning") {
2472
+ const reasoningPart = part;
2473
+ const text = reasoningPart.text || reasoningPart.reasoning || (reasoningPart.details?.reduce((p, c) => {
2474
+ if (c.type === `text` && c.text) return p + c.text;
2595
2475
  return p;
2596
2476
  }, "") ?? "");
2597
- if (text || part.details?.length) {
2477
+ if (text || reasoningPart.details?.length) {
2598
2478
  parts.push({
2599
2479
  type: "reasoning",
2600
2480
  text: text || "",
2601
2481
  state: "done",
2602
- providerMetadata: part.providerMetadata
2482
+ ...part.providerMetadata && { providerMetadata: part.providerMetadata }
2603
2483
  });
2604
2484
  }
2605
- break;
2606
- case "file": {
2485
+ continue;
2486
+ }
2487
+ if (part.type === "tool-invocation" || part.type.startsWith("tool-")) {
2488
+ continue;
2489
+ }
2490
+ if (part.type === "file") {
2491
+ if (typeof part.data === "string" && attachmentUrls.has(part.data)) {
2492
+ continue;
2493
+ }
2607
2494
  const categorized = typeof part.data === "string" ? categorizeFileData(part.data, part.mimeType) : { type: "raw", mimeType: part.mimeType};
2608
2495
  if (categorized.type === "url" && typeof part.data === "string") {
2609
2496
  parts.push({
@@ -2612,7 +2499,6 @@ var MessageList = class _MessageList {
2612
2499
  mediaType: categorized.mimeType || "image/png",
2613
2500
  providerMetadata: part.providerMetadata
2614
2501
  });
2615
- fileUrls.add(part.data);
2616
2502
  } else {
2617
2503
  let filePartData;
2618
2504
  let extractedMimeType = part.mimeType;
@@ -2644,36 +2530,376 @@ var MessageList = class _MessageList {
2644
2530
  providerMetadata: part.providerMetadata
2645
2531
  });
2646
2532
  }
2647
- fileUrls.add(part.data);
2648
- break;
2533
+ } else if (part.type === "source") {
2534
+ const sourcePart = part;
2535
+ parts.push({
2536
+ type: "source-url",
2537
+ url: sourcePart.source.url,
2538
+ ...part.providerMetadata && { providerMetadata: part.providerMetadata }
2539
+ });
2540
+ } else if (part.type === "text") {
2541
+ parts.push({
2542
+ type: "text",
2543
+ text: part.text,
2544
+ ...part.providerMetadata && { providerMetadata: part.providerMetadata }
2545
+ });
2546
+ hasNonToolReasoningParts = true;
2547
+ } else {
2548
+ parts.push(part);
2549
+ hasNonToolReasoningParts = true;
2649
2550
  }
2650
2551
  }
2651
2552
  }
2652
- if (v2Msg.content.content && !v3Msg.content.parts?.some((p) => p.type === `text`)) {
2653
- v3Msg.content.parts.push({ type: "text", text: v2Msg.content.content });
2553
+ if (dbMsg.content.content && !hasNonToolReasoningParts) {
2554
+ parts.push({ type: "text", text: dbMsg.content.content });
2654
2555
  }
2655
- const attachmentUrls = [];
2656
- if (v2Msg.content.experimental_attachments?.length) {
2657
- for (const attachment of v2Msg.content.experimental_attachments) {
2658
- if (fileUrls.has(attachment.url)) continue;
2659
- attachmentUrls.push(attachment.url);
2660
- parts.push({
2661
- url: attachment.url,
2662
- mediaType: attachment.contentType || "unknown",
2663
- type: "file"
2556
+ return {
2557
+ id: dbMsg.id,
2558
+ role: dbMsg.role,
2559
+ metadata,
2560
+ parts
2561
+ };
2562
+ }
2563
+ /**
2564
+ * Direct conversion from AIV5 UIMessage to MastraDBMessage
2565
+ * Combines logic from aiV5UIMessageToMastraMessageV3 + mastraMessageV3ToV2
2566
+ */
2567
+ static aiV5UIMessageToMastraDBMessage(uiMsg) {
2568
+ const { parts, metadata: rawMetadata } = uiMsg;
2569
+ const metadata = rawMetadata || {};
2570
+ const createdAtValue = metadata.createdAt;
2571
+ const createdAt = createdAtValue ? typeof createdAtValue === "string" ? new Date(createdAtValue) : createdAtValue instanceof Date ? createdAtValue : /* @__PURE__ */ new Date() : /* @__PURE__ */ new Date();
2572
+ const threadId = metadata.threadId;
2573
+ const resourceId = metadata.resourceId;
2574
+ const cleanMetadata = { ...metadata };
2575
+ delete cleanMetadata.createdAt;
2576
+ delete cleanMetadata.threadId;
2577
+ delete cleanMetadata.resourceId;
2578
+ const toolInvocationParts = parts.filter((p) => AIV5__namespace.isToolUIPart(p));
2579
+ const reasoningParts = parts.filter((p) => p.type === "reasoning");
2580
+ const fileParts = parts.filter((p) => p.type === "file");
2581
+ const textParts = parts.filter((p) => p.type === "text");
2582
+ let toolInvocations = void 0;
2583
+ if (toolInvocationParts.length > 0) {
2584
+ toolInvocations = toolInvocationParts.map((p) => {
2585
+ const toolName = getToolName(p);
2586
+ if (p.state === "output-available") {
2587
+ return {
2588
+ args: p.input,
2589
+ result: typeof p.output === "object" && p.output && "value" in p.output ? p.output.value : p.output,
2590
+ toolCallId: p.toolCallId,
2591
+ toolName,
2592
+ state: "result"
2593
+ };
2594
+ }
2595
+ return {
2596
+ args: p.input,
2597
+ toolCallId: p.toolCallId,
2598
+ toolName,
2599
+ state: "call"
2600
+ };
2601
+ });
2602
+ }
2603
+ let reasoning = void 0;
2604
+ if (reasoningParts.length > 0) {
2605
+ reasoning = reasoningParts.map((p) => p.text).join("\n");
2606
+ }
2607
+ let experimental_attachments = void 0;
2608
+ if (fileParts.length > 0) {
2609
+ experimental_attachments = fileParts.map((p) => ({
2610
+ url: p.url || "",
2611
+ contentType: p.mediaType
2612
+ }));
2613
+ }
2614
+ let content = void 0;
2615
+ if (textParts.length > 0) {
2616
+ content = textParts.map((p) => p.text).join("");
2617
+ }
2618
+ const v2Parts = parts.map((p) => {
2619
+ if (AIV5__namespace.isToolUIPart(p)) {
2620
+ const toolName = getToolName(p);
2621
+ const callProviderMetadata = "callProviderMetadata" in p ? p.callProviderMetadata : void 0;
2622
+ if (p.state === "output-available") {
2623
+ return {
2624
+ type: "tool-invocation",
2625
+ toolInvocation: {
2626
+ toolCallId: p.toolCallId,
2627
+ toolName,
2628
+ args: p.input,
2629
+ result: typeof p.output === "object" && p.output && "value" in p.output ? p.output.value : p.output,
2630
+ state: "result"
2631
+ },
2632
+ providerMetadata: callProviderMetadata
2633
+ };
2634
+ }
2635
+ return {
2636
+ type: "tool-invocation",
2637
+ toolInvocation: {
2638
+ toolCallId: p.toolCallId,
2639
+ toolName,
2640
+ args: p.input,
2641
+ state: "call"
2642
+ },
2643
+ providerMetadata: callProviderMetadata
2644
+ };
2645
+ }
2646
+ if (p.type === "reasoning") {
2647
+ return {
2648
+ type: "reasoning",
2649
+ reasoning: "",
2650
+ details: [
2651
+ {
2652
+ type: "text",
2653
+ text: p.text
2654
+ }
2655
+ ],
2656
+ providerMetadata: p.providerMetadata
2657
+ };
2658
+ }
2659
+ if (p.type === "file") {
2660
+ return {
2661
+ type: "file",
2662
+ mimeType: p.mediaType,
2663
+ data: p.url || "",
2664
+ providerMetadata: p.providerMetadata
2665
+ };
2666
+ }
2667
+ if (p.type === "source-url") {
2668
+ return {
2669
+ type: "source",
2670
+ source: {
2671
+ url: p.url,
2672
+ sourceType: "url",
2673
+ id: p.url,
2674
+ // Use URL as ID
2675
+ providerMetadata: p.providerMetadata
2676
+ },
2677
+ providerMetadata: p.providerMetadata
2678
+ };
2679
+ }
2680
+ if (p.type === "text") {
2681
+ return {
2682
+ type: "text",
2683
+ text: p.text,
2684
+ providerMetadata: p.providerMetadata
2685
+ };
2686
+ }
2687
+ if (p.type === "step-start") {
2688
+ return p;
2689
+ }
2690
+ return null;
2691
+ }).filter((p) => p !== null);
2692
+ return {
2693
+ id: uiMsg.id,
2694
+ role: uiMsg.role,
2695
+ createdAt,
2696
+ threadId,
2697
+ resourceId,
2698
+ content: {
2699
+ format: 2,
2700
+ parts: v2Parts,
2701
+ toolInvocations,
2702
+ reasoning,
2703
+ experimental_attachments,
2704
+ content,
2705
+ metadata: Object.keys(cleanMetadata).length > 0 ? cleanMetadata : void 0
2706
+ }
2707
+ };
2708
+ }
2709
+ /**
2710
+ * Direct conversion from AIV5 ModelMessage to MastraDBMessage
2711
+ * Combines logic from aiV5ModelMessageToMastraMessageV3 + mastraMessageV3ToV2
2712
+ */
2713
+ static aiV5ModelMessageToMastraDBMessage(modelMsg, _messageSource) {
2714
+ const content = Array.isArray(modelMsg.content) ? modelMsg.content : [{ type: "text", text: modelMsg.content }];
2715
+ const v2Parts = [];
2716
+ const toolInvocations = [];
2717
+ const reasoningParts = [];
2718
+ const experimental_attachments = [];
2719
+ const textParts = [];
2720
+ let lastPartWasToolResult = false;
2721
+ for (const part of content) {
2722
+ const providerMetadata = {
2723
+ ...modelMsg.providerMetadata || {},
2724
+ ...part.providerMetadata || {}
2725
+ };
2726
+ const hasProviderMetadata = Object.keys(providerMetadata).length > 0;
2727
+ if (part.type === "text") {
2728
+ const textPart = {
2729
+ type: "text",
2730
+ text: part.text,
2731
+ ...hasProviderMetadata && { experimental_providerMetadata: providerMetadata }
2732
+ };
2733
+ v2Parts.push(textPart);
2734
+ textParts.push({ text: part.text, providerMetadata: hasProviderMetadata ? providerMetadata : void 0 });
2735
+ lastPartWasToolResult = false;
2736
+ } else if (part.type === "tool-call") {
2737
+ const toolCallPart = part;
2738
+ const toolInvocationPart = {
2739
+ type: "tool-invocation",
2740
+ toolInvocation: {
2741
+ toolCallId: toolCallPart.toolCallId,
2742
+ toolName: toolCallPart.toolName,
2743
+ args: toolCallPart.input,
2744
+ state: "call"
2745
+ },
2746
+ ...hasProviderMetadata && { providerMetadata }
2747
+ };
2748
+ v2Parts.push(toolInvocationPart);
2749
+ toolInvocations.push({
2750
+ toolCallId: toolCallPart.toolCallId,
2751
+ toolName: toolCallPart.toolName,
2752
+ args: toolCallPart.input,
2753
+ state: "call"
2664
2754
  });
2755
+ lastPartWasToolResult = false;
2756
+ } else if (part.type === "tool-result") {
2757
+ const toolResultPart = part;
2758
+ const matchingCall = toolInvocations.find((inv) => inv.toolCallId === toolResultPart.toolCallId);
2759
+ const matchingV2Part = v2Parts.find(
2760
+ (p) => p.type === "tool-invocation" && "toolInvocation" in p && p.toolInvocation.toolCallId === toolResultPart.toolCallId
2761
+ );
2762
+ if (matchingCall) {
2763
+ matchingCall.state = "result";
2764
+ matchingCall.result = typeof toolResultPart.output === "object" && toolResultPart.output && "value" in toolResultPart.output ? toolResultPart.output.value : toolResultPart.output;
2765
+ } else {
2766
+ const resultPartWithName = toolResultPart;
2767
+ toolInvocations.push({
2768
+ toolCallId: toolResultPart.toolCallId,
2769
+ toolName: resultPartWithName.toolName || "unknown",
2770
+ args: {},
2771
+ result: typeof toolResultPart.output === "object" && toolResultPart.output && "value" in toolResultPart.output ? toolResultPart.output.value : toolResultPart.output,
2772
+ state: "result"
2773
+ });
2774
+ }
2775
+ if (matchingV2Part && matchingV2Part.type === "tool-invocation") {
2776
+ matchingV2Part.toolInvocation.state = "result";
2777
+ matchingV2Part.toolInvocation.result = typeof toolResultPart.output === "object" && toolResultPart.output && "value" in toolResultPart.output ? toolResultPart.output.value : toolResultPart.output;
2778
+ if (hasProviderMetadata) {
2779
+ matchingV2Part.providerMetadata = providerMetadata;
2780
+ }
2781
+ } else {
2782
+ const resultPartWithName = toolResultPart;
2783
+ const toolInvocationPart = {
2784
+ type: "tool-invocation",
2785
+ toolInvocation: {
2786
+ toolCallId: toolResultPart.toolCallId,
2787
+ toolName: resultPartWithName.toolName || "unknown",
2788
+ args: {},
2789
+ result: typeof toolResultPart.output === "object" && toolResultPart.output && "value" in toolResultPart.output ? toolResultPart.output.value : toolResultPart.output,
2790
+ state: "result"
2791
+ },
2792
+ ...hasProviderMetadata && { providerMetadata }
2793
+ };
2794
+ v2Parts.push(toolInvocationPart);
2795
+ }
2796
+ lastPartWasToolResult = true;
2797
+ } else if (part.type === "reasoning") {
2798
+ const reasoningPart = part;
2799
+ const v2ReasoningPart = {
2800
+ type: "reasoning",
2801
+ reasoning: reasoningPart.text,
2802
+ details: [{ type: "text", text: reasoningPart.text }],
2803
+ ...hasProviderMetadata && { providerMetadata }
2804
+ };
2805
+ v2Parts.push(v2ReasoningPart);
2806
+ reasoningParts.push(reasoningPart.text);
2807
+ lastPartWasToolResult = false;
2808
+ } else if (part.type === "image") {
2809
+ const imagePart = part;
2810
+ let imageData;
2811
+ const mimeType = imagePart.mimeType || "image/jpeg";
2812
+ if ("url" in imagePart && typeof imagePart.url === "string") {
2813
+ imageData = imagePart.url;
2814
+ } else if ("data" in imagePart) {
2815
+ if (typeof imagePart.data === "string") {
2816
+ imageData = imagePart.data.startsWith("data:") || imagePart.data.startsWith("http") ? imagePart.data : `data:${mimeType};base64,${imagePart.data}`;
2817
+ } else {
2818
+ const base64 = Buffer.from(imagePart.data).toString("base64");
2819
+ imageData = `data:${mimeType};base64,${base64}`;
2820
+ }
2821
+ } else {
2822
+ imageData = "";
2823
+ }
2824
+ const imageFilePart = {
2825
+ type: "file",
2826
+ data: imageData,
2827
+ mimeType,
2828
+ ...hasProviderMetadata && { providerMetadata }
2829
+ };
2830
+ v2Parts.push(imageFilePart);
2831
+ experimental_attachments.push({
2832
+ url: imageData,
2833
+ contentType: mimeType
2834
+ });
2835
+ lastPartWasToolResult = false;
2836
+ } else if (part.type === "file") {
2837
+ const filePart = part;
2838
+ const mimeType = filePart.mediaType || "application/octet-stream";
2839
+ let fileData;
2840
+ if ("url" in filePart && typeof filePart.url === "string") {
2841
+ fileData = filePart.url;
2842
+ } else if ("data" in filePart) {
2843
+ if (typeof filePart.data === "string") {
2844
+ fileData = filePart.data.startsWith("data:") || filePart.data.startsWith("http") ? filePart.data : `data:${mimeType};base64,${filePart.data}`;
2845
+ } else {
2846
+ const base64 = Buffer.from(filePart.data).toString("base64");
2847
+ fileData = `data:${mimeType};base64,${base64}`;
2848
+ }
2849
+ } else {
2850
+ fileData = "";
2851
+ }
2852
+ const v2FilePart = {
2853
+ type: "file",
2854
+ data: fileData,
2855
+ mimeType,
2856
+ ...hasProviderMetadata && { providerMetadata }
2857
+ };
2858
+ v2Parts.push(v2FilePart);
2859
+ experimental_attachments.push({
2860
+ url: fileData,
2861
+ contentType: mimeType
2862
+ });
2863
+ lastPartWasToolResult = false;
2665
2864
  }
2666
2865
  }
2667
- if (attachmentUrls.length > 0) {
2668
- v3Msg.content.metadata = {
2669
- ...v3Msg.content.metadata || {},
2670
- __attachmentUrls: attachmentUrls
2671
- };
2866
+ if (modelMsg.role === "assistant" && lastPartWasToolResult && v2Parts.length > 0) {
2867
+ const lastPart = v2Parts[v2Parts.length - 1];
2868
+ if (lastPart && lastPart.type !== "text") {
2869
+ const emptyTextPart = { type: "text", text: "" };
2870
+ v2Parts.push(emptyTextPart);
2871
+ textParts.push({ text: "" });
2872
+ }
2873
+ }
2874
+ let contentString = void 0;
2875
+ if (textParts.length > 0) {
2876
+ contentString = textParts.map((p) => p.text).join("\n");
2672
2877
  }
2673
- return v3Msg;
2878
+ const metadata = {};
2879
+ const id = `id` in modelMsg && typeof modelMsg.id === `string` ? modelMsg.id : `msg-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
2880
+ return {
2881
+ id,
2882
+ role: _MessageList.getRole(modelMsg),
2883
+ createdAt: /* @__PURE__ */ new Date(),
2884
+ content: {
2885
+ format: 2,
2886
+ parts: v2Parts,
2887
+ toolInvocations: toolInvocations.length > 0 ? toolInvocations : void 0,
2888
+ reasoning: reasoningParts.length > 0 ? reasoningParts.join("\n") : void 0,
2889
+ experimental_attachments: experimental_attachments.length > 0 ? experimental_attachments : void 0,
2890
+ content: contentString,
2891
+ metadata
2892
+ }
2893
+ };
2894
+ }
2895
+ aiV4CoreMessagesToAIV5ModelMessages(messages, source) {
2896
+ return this.aiV5UIMessagesToAIV5ModelMessages(
2897
+ messages.map((m) => this.aiV4CoreMessageToMastraDBMessage(m, source)).map((m) => _MessageList.mastraDBMessageToAIV5UIMessage(m))
2898
+ );
2674
2899
  }
2675
- aiV5UIMessagesToAIV5ModelMessages(messages) {
2676
- const preprocessed = this.addStartStepPartsForAIV5(this.sanitizeV5UIMessages(messages));
2900
+ aiV5UIMessagesToAIV5ModelMessages(messages, filterIncompleteToolCalls = false) {
2901
+ const sanitized = this.sanitizeV5UIMessages(messages, filterIncompleteToolCalls);
2902
+ const preprocessed = this.addStartStepPartsForAIV5(sanitized);
2677
2903
  const result = AIV5__namespace.convertToModelMessages(preprocessed);
2678
2904
  return result;
2679
2905
  }
@@ -2689,12 +2915,15 @@ var MessageList = class _MessageList {
2689
2915
  }
2690
2916
  return messages;
2691
2917
  }
2692
- sanitizeV5UIMessages(messages) {
2918
+ sanitizeV5UIMessages(messages, filterIncompleteToolCalls = false) {
2693
2919
  const msgs = messages.map((m) => {
2694
2920
  if (m.parts.length === 0) return false;
2695
2921
  const safeParts = m.parts.filter((p) => {
2696
2922
  if (!AIV5__namespace.isToolUIPart(p)) return true;
2697
- return p.state === "output-available" || p.state === "output-error";
2923
+ if (filterIncompleteToolCalls) {
2924
+ return p.state === "output-available" || p.state === "output-error";
2925
+ }
2926
+ return p.state !== "input-streaming";
2698
2927
  });
2699
2928
  if (!safeParts.length) return false;
2700
2929
  const sanitized = {
@@ -2713,242 +2942,6 @@ var MessageList = class _MessageList {
2713
2942
  }).filter((m) => Boolean(m));
2714
2943
  return msgs;
2715
2944
  }
2716
- static mastraMessageV3ToAIV5UIMessage(m) {
2717
- const metadata = {
2718
- ...m.content.metadata || {}
2719
- };
2720
- if (m.createdAt) metadata.createdAt = m.createdAt;
2721
- if (m.threadId) metadata.threadId = m.threadId;
2722
- if (m.resourceId) metadata.resourceId = m.resourceId;
2723
- const filteredParts = m.content.parts;
2724
- return {
2725
- id: m.id,
2726
- role: m.role,
2727
- metadata,
2728
- parts: filteredParts
2729
- };
2730
- }
2731
- aiV5ModelMessagesToAIV4CoreMessages(messages, messageSource) {
2732
- const v3 = messages.map((msg) => this.aiV5ModelMessageToMastraMessageV3(msg, messageSource));
2733
- const v2 = v3.map(_MessageList.mastraMessageV3ToV2);
2734
- const ui = v2.map(_MessageList.mastraMessageV2ToAIV4UIMessage);
2735
- const core = this.aiV4UIMessagesToAIV4CoreMessages(ui);
2736
- return core;
2737
- }
2738
- aiV4CoreMessagesToAIV5ModelMessages(messages, source) {
2739
- return this.aiV5UIMessagesToAIV5ModelMessages(
2740
- messages.map((m) => this.aiV4CoreMessageToMastraMessageV2(m, source)).map((m) => this.mastraMessageV2ToMastraMessageV3(m)).map((m) => _MessageList.mastraMessageV3ToAIV5UIMessage(m))
2741
- );
2742
- }
2743
- aiV5UIMessageToMastraMessageV3(message, messageSource) {
2744
- const content = {
2745
- format: 3,
2746
- parts: message.parts,
2747
- metadata: message.metadata
2748
- };
2749
- const metadata = message.metadata;
2750
- const createdAt = (() => {
2751
- if ("createdAt" in message && message.createdAt instanceof Date) {
2752
- return message.createdAt;
2753
- }
2754
- if (metadata && "createdAt" in metadata && metadata.createdAt instanceof Date) {
2755
- return metadata.createdAt;
2756
- }
2757
- return void 0;
2758
- })();
2759
- if ("metadata" in message && message.metadata) {
2760
- content.metadata = { ...message.metadata };
2761
- }
2762
- return {
2763
- id: message.id || this.newMessageId(),
2764
- role: _MessageList.getRole(message),
2765
- createdAt: this.generateCreatedAt(messageSource, createdAt),
2766
- threadId: this.memoryInfo?.threadId,
2767
- resourceId: this.memoryInfo?.resourceId,
2768
- content
2769
- };
2770
- }
2771
- aiV5ModelMessageToMastraMessageV3(coreMessage, messageSource) {
2772
- const id = `id` in coreMessage && typeof coreMessage.id === `string` ? coreMessage.id : this.newMessageId();
2773
- const parts = [];
2774
- if (typeof coreMessage.content === "string") {
2775
- parts.push({
2776
- type: "text",
2777
- text: coreMessage.content,
2778
- // Preserve providerOptions from ModelMessage level (e.g., system messages with cacheControl)
2779
- ..."providerOptions" in coreMessage && coreMessage.providerOptions ? { providerMetadata: coreMessage.providerOptions } : {}
2780
- });
2781
- } else if (Array.isArray(coreMessage.content)) {
2782
- for (const part of coreMessage.content) {
2783
- switch (part.type) {
2784
- case "text":
2785
- const prevPart = parts.at(-1);
2786
- if (coreMessage.role === "assistant" && prevPart && AIV5__namespace.isToolUIPart(prevPart) && prevPart.state === "output-available") {
2787
- parts.push({
2788
- type: "step-start"
2789
- });
2790
- }
2791
- const mergedProviderMetadataV3 = {
2792
- ..."providerOptions" in coreMessage && coreMessage.providerOptions ? coreMessage.providerOptions : {},
2793
- ...part.providerOptions || {}
2794
- };
2795
- parts.push({
2796
- type: "text",
2797
- text: part.text,
2798
- ...Object.keys(mergedProviderMetadataV3).length > 0 ? { providerMetadata: mergedProviderMetadataV3 } : {}
2799
- });
2800
- break;
2801
- case "tool-call":
2802
- parts.push({
2803
- type: `tool-${part.toolName}`,
2804
- state: "input-available",
2805
- toolCallId: part.toolCallId,
2806
- input: part.input
2807
- });
2808
- break;
2809
- case "tool-result":
2810
- parts.push({
2811
- type: `tool-${part.toolName}`,
2812
- state: "output-available",
2813
- toolCallId: part.toolCallId,
2814
- output: typeof part.output === "string" ? { type: "text", value: part.output } : part.output ?? { type: "text", value: "" },
2815
- input: {},
2816
- callProviderMetadata: part.providerOptions
2817
- });
2818
- break;
2819
- case "reasoning":
2820
- parts.push({
2821
- type: "reasoning",
2822
- text: part.text,
2823
- providerMetadata: part.providerOptions
2824
- });
2825
- break;
2826
- case "image": {
2827
- let imageData;
2828
- let extractedMimeType = part.mediaType;
2829
- const imageStr = imageContentToDataUri(part.image, extractedMimeType || "image/png");
2830
- const parsed = parseDataUri(imageStr);
2831
- if (parsed.isDataUri) {
2832
- imageData = parsed.base64Content;
2833
- if (!extractedMimeType && parsed.mimeType) {
2834
- extractedMimeType = parsed.mimeType;
2835
- }
2836
- } else if (imageStr.startsWith("http://") || imageStr.startsWith("https://")) {
2837
- parts.push({
2838
- type: "file",
2839
- url: imageStr,
2840
- mediaType: part.mediaType || "image/jpeg",
2841
- // Default to image/jpeg for URLs
2842
- providerMetadata: part.providerOptions
2843
- });
2844
- break;
2845
- } else {
2846
- imageData = imageStr;
2847
- }
2848
- const finalMimeType = extractedMimeType || "image/jpeg";
2849
- const dataUri = imageData.startsWith("data:") ? imageData : createDataUri(imageData, finalMimeType);
2850
- parts.push({
2851
- type: "file",
2852
- url: dataUri,
2853
- mediaType: finalMimeType,
2854
- providerMetadata: part.providerOptions
2855
- });
2856
- break;
2857
- }
2858
- case "file": {
2859
- if (part.data instanceof URL) {
2860
- const urlStr = part.data.toString();
2861
- let extractedMimeType = part.mediaType;
2862
- const parsed = parseDataUri(urlStr);
2863
- if (parsed.isDataUri) {
2864
- if (!extractedMimeType && parsed.mimeType) {
2865
- extractedMimeType = parsed.mimeType;
2866
- }
2867
- if (parsed.base64Content !== urlStr) {
2868
- const dataUri = createDataUri(parsed.base64Content, extractedMimeType || "image/png");
2869
- parts.push({
2870
- type: "file",
2871
- url: dataUri,
2872
- mediaType: extractedMimeType || "image/png",
2873
- providerMetadata: part.providerOptions
2874
- });
2875
- } else {
2876
- parts.push({
2877
- type: "file",
2878
- url: urlStr,
2879
- mediaType: part.mediaType || "image/png",
2880
- providerMetadata: part.providerOptions
2881
- });
2882
- }
2883
- } else {
2884
- parts.push({
2885
- type: "file",
2886
- url: urlStr,
2887
- mediaType: part.mediaType || "application/octet-stream",
2888
- providerMetadata: part.providerOptions
2889
- });
2890
- }
2891
- } else if (typeof part.data === "string") {
2892
- const categorized = categorizeFileData(part.data, part.mediaType);
2893
- if (categorized.type === "url" || categorized.type === "dataUri") {
2894
- parts.push({
2895
- type: "file",
2896
- url: part.data,
2897
- mediaType: categorized.mimeType || "application/octet-stream",
2898
- providerMetadata: part.providerOptions
2899
- });
2900
- } else {
2901
- try {
2902
- const base64Data = convertDataContentToBase64String(part.data);
2903
- const dataUri = createDataUri(base64Data, categorized.mimeType || "image/png");
2904
- parts.push({
2905
- type: "file",
2906
- url: dataUri,
2907
- mediaType: categorized.mimeType || "image/png",
2908
- providerMetadata: part.providerOptions
2909
- });
2910
- } catch (error) {
2911
- console.error(`Failed to convert binary data to base64 in CoreMessage file part: ${error}`, error);
2912
- }
2913
- }
2914
- } else {
2915
- try {
2916
- const base64Data = convertDataContentToBase64String(part.data);
2917
- const dataUri = createDataUri(base64Data, part.mediaType || "image/png");
2918
- parts.push({
2919
- type: "file",
2920
- url: dataUri,
2921
- mediaType: part.mediaType || "image/png",
2922
- providerMetadata: part.providerOptions
2923
- });
2924
- } catch (error) {
2925
- console.error(`Failed to convert binary data to base64 in CoreMessage file part: ${error}`, error);
2926
- }
2927
- }
2928
- break;
2929
- }
2930
- }
2931
- }
2932
- }
2933
- const content = {
2934
- format: 3,
2935
- parts
2936
- };
2937
- if (coreMessage.content) {
2938
- content.metadata = {
2939
- ...content.metadata || {},
2940
- __originalContent: coreMessage.content
2941
- };
2942
- }
2943
- return {
2944
- id,
2945
- role: _MessageList.getRole(coreMessage),
2946
- createdAt: this.generateCreatedAt(messageSource),
2947
- threadId: this.memoryInfo?.threadId,
2948
- resourceId: this.memoryInfo?.resourceId,
2949
- content
2950
- };
2951
- }
2952
2945
  static hasAIV5UIMessageCharacteristics(msg) {
2953
2946
  if (`toolInvocations` in msg || `reasoning` in msg || `experimental_attachments` in msg || `data` in msg || `annotations` in msg)
2954
2947
  return false;
@@ -3040,37 +3033,9 @@ var MessageList = class _MessageList {
3040
3033
  }
3041
3034
  };
3042
3035
 
3043
- // src/agent/message-list/utils/convert-messages.ts
3044
- var MessageConverter = class {
3045
- messageList;
3046
- constructor(messages) {
3047
- this.messageList = new MessageList();
3048
- this.messageList.add(messages, "memory");
3049
- }
3050
- to(format) {
3051
- switch (format) {
3052
- case "Mastra.V2":
3053
- return this.messageList.get.all.v2();
3054
- case "AIV4.UI":
3055
- return this.messageList.get.all.aiV4.ui();
3056
- case "AIV4.Core":
3057
- return this.messageList.get.all.aiV4.core();
3058
- case "AIV5.UI":
3059
- return this.messageList.get.all.aiV5.ui();
3060
- case "AIV5.Model":
3061
- return this.messageList.get.all.aiV5.model();
3062
- default:
3063
- throw new Error(`Unsupported output format: ${format}`);
3064
- }
3065
- }
3066
- };
3067
- function convertMessages(messages) {
3068
- return new MessageConverter(messages);
3069
- }
3070
-
3071
3036
  exports.DefaultGeneratedFile = DefaultGeneratedFile;
3072
3037
  exports.DefaultGeneratedFileWithType = DefaultGeneratedFileWithType;
3073
3038
  exports.MessageList = MessageList;
3074
3039
  exports.convertMessages = convertMessages;
3075
- //# sourceMappingURL=chunk-MJMID7LX.cjs.map
3076
- //# sourceMappingURL=chunk-MJMID7LX.cjs.map
3040
+ //# sourceMappingURL=chunk-ECFXGXWO.cjs.map
3041
+ //# sourceMappingURL=chunk-ECFXGXWO.cjs.map