@mastra/core 1.23.1-alpha.0 → 1.24.0-alpha.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 (204) hide show
  1. package/CHANGELOG.md +71 -0
  2. package/dist/agent/index.cjs +13 -13
  3. package/dist/agent/index.js +2 -2
  4. package/dist/agent/message-list/adapters/AIV5Adapter.d.ts.map +1 -1
  5. package/dist/agent/message-list/conversion/input-converter.d.ts.map +1 -1
  6. package/dist/agent/message-list/index.cjs +19 -19
  7. package/dist/agent/message-list/index.js +1 -1
  8. package/dist/agent/message-list/message-list.d.ts.map +1 -1
  9. package/dist/agent/message-list/state/types.d.ts +7 -4
  10. package/dist/agent/message-list/state/types.d.ts.map +1 -1
  11. package/dist/agent/message-list/utils/stamp-part.d.ts +4 -0
  12. package/dist/agent/message-list/utils/stamp-part.d.ts.map +1 -0
  13. package/dist/browser/index.cjs +2 -2
  14. package/dist/browser/index.js +1 -1
  15. package/dist/channels/index.cjs +4 -4
  16. package/dist/channels/index.js +1 -1
  17. package/dist/{chunk-LB3GO6MV.js → chunk-234T424F.js} +5 -5
  18. package/dist/{chunk-LB3GO6MV.js.map → chunk-234T424F.js.map} +1 -1
  19. package/dist/{chunk-WCQOOGVM.cjs → chunk-365PDOQ4.cjs} +9 -9
  20. package/dist/{chunk-WCQOOGVM.cjs.map → chunk-365PDOQ4.cjs.map} +1 -1
  21. package/dist/{chunk-N7W2KRUH.js → chunk-3RI7ILBW.js} +3 -3
  22. package/dist/{chunk-N7W2KRUH.js.map → chunk-3RI7ILBW.js.map} +1 -1
  23. package/dist/{chunk-B4OOPFD3.cjs → chunk-4FFOOHE5.cjs} +27 -2
  24. package/dist/chunk-4FFOOHE5.cjs.map +1 -0
  25. package/dist/{chunk-S2546L42.js → chunk-7BBERBXP.js} +6 -6
  26. package/dist/{chunk-S2546L42.js.map → chunk-7BBERBXP.js.map} +1 -1
  27. package/dist/{chunk-BG3IPQZ7.cjs → chunk-B2FQ6L2I.cjs} +21 -21
  28. package/dist/{chunk-BG3IPQZ7.cjs.map → chunk-B2FQ6L2I.cjs.map} +1 -1
  29. package/dist/{chunk-UNQCLA7I.cjs → chunk-BFOZOAU2.cjs} +54 -26
  30. package/dist/chunk-BFOZOAU2.cjs.map +1 -0
  31. package/dist/{chunk-JC2RW3N5.js → chunk-CN6AFOVV.js} +4 -4
  32. package/dist/{chunk-JC2RW3N5.js.map → chunk-CN6AFOVV.js.map} +1 -1
  33. package/dist/{chunk-IAUQYADS.cjs → chunk-CY4AMNDV.cjs} +7 -7
  34. package/dist/{chunk-IAUQYADS.cjs.map → chunk-CY4AMNDV.cjs.map} +1 -1
  35. package/dist/{chunk-MW6HBUMV.cjs → chunk-D64ZY3NT.cjs} +29 -27
  36. package/dist/chunk-D64ZY3NT.cjs.map +1 -0
  37. package/dist/{chunk-JVXQTSRU.js → chunk-E7PBOS66.js} +3 -3
  38. package/dist/{chunk-JVXQTSRU.js.map → chunk-E7PBOS66.js.map} +1 -1
  39. package/dist/{chunk-GBUKRAUU.cjs → chunk-EAQQP6OK.cjs} +75 -75
  40. package/dist/{chunk-GBUKRAUU.cjs.map → chunk-EAQQP6OK.cjs.map} +1 -1
  41. package/dist/chunk-EGIEQEHP.js +35 -0
  42. package/dist/chunk-EGIEQEHP.js.map +1 -0
  43. package/dist/{chunk-C3RGHCOG.js → chunk-EJ62D3QH.js} +7 -7
  44. package/dist/{chunk-C3RGHCOG.js.map → chunk-EJ62D3QH.js.map} +1 -1
  45. package/dist/{chunk-J5JND5CL.cjs → chunk-FCW225T4.cjs} +84 -84
  46. package/dist/{chunk-J5JND5CL.cjs.map → chunk-FCW225T4.cjs.map} +1 -1
  47. package/dist/{chunk-OVQVLGT2.cjs → chunk-FLMCO42Y.cjs} +4 -4
  48. package/dist/{chunk-OVQVLGT2.cjs.map → chunk-FLMCO42Y.cjs.map} +1 -1
  49. package/dist/{chunk-RNKRA4W6.js → chunk-GAW7WFCY.js} +6 -6
  50. package/dist/{chunk-RNKRA4W6.js.map → chunk-GAW7WFCY.js.map} +1 -1
  51. package/dist/{chunk-7CWIKWHN.js → chunk-I7DUPZFN.js} +90 -43
  52. package/dist/chunk-I7DUPZFN.js.map +1 -0
  53. package/dist/{chunk-HMVCVSAM.js → chunk-IKUMKFM4.js} +5 -5
  54. package/dist/{chunk-HMVCVSAM.js.map → chunk-IKUMKFM4.js.map} +1 -1
  55. package/dist/{chunk-YTLU3Q7Q.js → chunk-JBFAGOAG.js} +13 -11
  56. package/dist/chunk-JBFAGOAG.js.map +1 -0
  57. package/dist/{chunk-6WRVZNQL.cjs → chunk-L56725IW.cjs} +7 -2
  58. package/dist/chunk-L56725IW.cjs.map +1 -0
  59. package/dist/{chunk-FDSY7ZGW.cjs → chunk-L73KZFX6.cjs} +10 -10
  60. package/dist/{chunk-FDSY7ZGW.cjs.map → chunk-L73KZFX6.cjs.map} +1 -1
  61. package/dist/{chunk-QX5YBALM.js → chunk-LUEXY2QV.js} +3 -3
  62. package/dist/{chunk-QX5YBALM.js.map → chunk-LUEXY2QV.js.map} +1 -1
  63. package/dist/{chunk-235IILEY.js → chunk-MD3VGE3F.js} +7 -2
  64. package/dist/chunk-MD3VGE3F.js.map +1 -0
  65. package/dist/{chunk-Q2RTFBSF.js → chunk-MK5IF24D.js} +8 -8
  66. package/dist/{chunk-Q2RTFBSF.js.map → chunk-MK5IF24D.js.map} +1 -1
  67. package/dist/{chunk-PJ5YCHXB.js → chunk-MZJQ7OKW.js} +3 -3
  68. package/dist/{chunk-PJ5YCHXB.js.map → chunk-MZJQ7OKW.js.map} +1 -1
  69. package/dist/{chunk-3UBTJXPW.cjs → chunk-P5C4HEAB.cjs} +32 -32
  70. package/dist/{chunk-3UBTJXPW.cjs.map → chunk-P5C4HEAB.cjs.map} +1 -1
  71. package/dist/{chunk-AMQICJHD.js → chunk-PCHML5XO.js} +11 -11
  72. package/dist/{chunk-AMQICJHD.js.map → chunk-PCHML5XO.js.map} +1 -1
  73. package/dist/{chunk-4LJ4M2DI.js → chunk-PQKSETS5.js} +3 -3
  74. package/dist/{chunk-4LJ4M2DI.js.map → chunk-PQKSETS5.js.map} +1 -1
  75. package/dist/{chunk-PHSDY5MP.cjs → chunk-QFGYBEP3.cjs} +10 -10
  76. package/dist/{chunk-PHSDY5MP.cjs.map → chunk-QFGYBEP3.cjs.map} +1 -1
  77. package/dist/{chunk-2M6QAFRM.cjs → chunk-RJAOQKHJ.cjs} +90 -43
  78. package/dist/chunk-RJAOQKHJ.cjs.map +1 -0
  79. package/dist/{chunk-WXCT24DY.cjs → chunk-SRQR5UN6.cjs} +27 -27
  80. package/dist/{chunk-WXCT24DY.cjs.map → chunk-SRQR5UN6.cjs.map} +1 -1
  81. package/dist/{chunk-7OU57YXD.cjs → chunk-SUEVJYTA.cjs} +185 -185
  82. package/dist/{chunk-7OU57YXD.cjs.map → chunk-SUEVJYTA.cjs.map} +1 -1
  83. package/dist/{chunk-LYCAEN2H.cjs → chunk-SYH64AGV.cjs} +219 -219
  84. package/dist/{chunk-LYCAEN2H.cjs.map → chunk-SYH64AGV.cjs.map} +1 -1
  85. package/dist/{chunk-ZHMULBPD.js → chunk-V2HSN7VZ.js} +26 -3
  86. package/dist/chunk-V2HSN7VZ.js.map +1 -0
  87. package/dist/{chunk-KPNURYWF.js → chunk-V657RNGK.js} +42 -14
  88. package/dist/chunk-V657RNGK.js.map +1 -0
  89. package/dist/{chunk-JGPMCTG4.cjs → chunk-XEDVYHBK.cjs} +3 -3
  90. package/dist/{chunk-JGPMCTG4.cjs.map → chunk-XEDVYHBK.cjs.map} +1 -1
  91. package/dist/{chunk-CLNGCSHU.cjs → chunk-XEM4OYJI.cjs} +15 -15
  92. package/dist/{chunk-CLNGCSHU.cjs.map → chunk-XEM4OYJI.cjs.map} +1 -1
  93. package/dist/{chunk-QG5JWMFX.cjs → chunk-XS3FHQ34.cjs} +11 -11
  94. package/dist/{chunk-QG5JWMFX.cjs.map → chunk-XS3FHQ34.cjs.map} +1 -1
  95. package/dist/{chunk-STZTHX32.js → chunk-XS75QEED.js} +5 -5
  96. package/dist/{chunk-STZTHX32.js.map → chunk-XS75QEED.js.map} +1 -1
  97. package/dist/{chunk-5OXVECLF.js → chunk-Y4SL4WJQ.js} +3 -3
  98. package/dist/{chunk-5OXVECLF.js.map → chunk-Y4SL4WJQ.js.map} +1 -1
  99. package/dist/chunk-ZPHI6QAA.cjs +40 -0
  100. package/dist/chunk-ZPHI6QAA.cjs.map +1 -0
  101. package/dist/datasets/index.cjs +17 -17
  102. package/dist/datasets/index.js +2 -2
  103. package/dist/docs/SKILL.md +2 -1
  104. package/dist/docs/assets/SOURCE_MAP.json +450 -450
  105. package/dist/docs/references/reference-observability-tracing-configuration.md +8 -1
  106. package/dist/docs/references/reference-observability-tracing-span-filtering.md +95 -0
  107. package/dist/docs/references/reference.md +1 -0
  108. package/dist/evals/index.cjs +23 -23
  109. package/dist/evals/index.js +3 -3
  110. package/dist/evals/scoreTraces/index.cjs +7 -7
  111. package/dist/evals/scoreTraces/index.js +3 -3
  112. package/dist/harness/index.cjs +9 -9
  113. package/dist/harness/index.js +6 -6
  114. package/dist/index.cjs +2 -2
  115. package/dist/index.js +1 -1
  116. package/dist/llm/index.cjs +20 -20
  117. package/dist/llm/index.js +5 -5
  118. package/dist/llm/model/provider-types.generated.d.ts +11 -1
  119. package/dist/logger/index.cjs +6 -6
  120. package/dist/logger/index.js +1 -1
  121. package/dist/loop/index.cjs +14 -14
  122. package/dist/loop/index.js +1 -1
  123. package/dist/mastra/index.cjs +2 -2
  124. package/dist/mastra/index.d.ts.map +1 -1
  125. package/dist/mastra/index.js +1 -1
  126. package/dist/mastra-5YHFXAJO.js +3 -0
  127. package/dist/{mastra-JWFZL5TC.js.map → mastra-5YHFXAJO.js.map} +1 -1
  128. package/dist/mastra-7CFH7DGM.cjs +12 -0
  129. package/dist/{mastra-ZQK3PKEU.cjs.map → mastra-7CFH7DGM.cjs.map} +1 -1
  130. package/dist/memory/index.cjs +19 -19
  131. package/dist/memory/index.js +1 -1
  132. package/dist/models-dev-X2MWNPAU.cjs +12 -0
  133. package/dist/{models-dev-6DVNVKP4.cjs.map → models-dev-X2MWNPAU.cjs.map} +1 -1
  134. package/dist/models-dev-ZXC3IYLG.js +3 -0
  135. package/dist/{models-dev-FOTHHSEK.js.map → models-dev-ZXC3IYLG.js.map} +1 -1
  136. package/dist/netlify-GOILLTQO.cjs +12 -0
  137. package/dist/{netlify-S2IW3O2X.cjs.map → netlify-GOILLTQO.cjs.map} +1 -1
  138. package/dist/netlify-HJL7EXHY.js +3 -0
  139. package/dist/{netlify-NMTX7SVL.js.map → netlify-HJL7EXHY.js.map} +1 -1
  140. package/dist/observability/context-storage.cjs +18 -28
  141. package/dist/observability/context-storage.cjs.map +1 -1
  142. package/dist/observability/context-storage.d.ts +9 -0
  143. package/dist/observability/context-storage.d.ts.map +1 -1
  144. package/dist/observability/context-storage.js +1 -28
  145. package/dist/observability/context-storage.js.map +1 -1
  146. package/dist/observability/index.cjs +33 -25
  147. package/dist/observability/index.d.ts +2 -0
  148. package/dist/observability/index.d.ts.map +1 -1
  149. package/dist/observability/index.js +3 -3
  150. package/dist/observability/rag-ingestion.d.ts +108 -0
  151. package/dist/observability/rag-ingestion.d.ts.map +1 -0
  152. package/dist/observability/types/core.d.ts +31 -1
  153. package/dist/observability/types/core.d.ts.map +1 -1
  154. package/dist/observability/types/tracing.d.ts +133 -1
  155. package/dist/observability/types/tracing.d.ts.map +1 -1
  156. package/dist/processor-provider/index.cjs +10 -10
  157. package/dist/processor-provider/index.js +1 -1
  158. package/dist/processors/index.cjs +44 -44
  159. package/dist/processors/index.js +1 -1
  160. package/dist/provider-registry-25ELOB67.cjs +44 -0
  161. package/dist/{provider-registry-7WS3N5BF.cjs.map → provider-registry-25ELOB67.cjs.map} +1 -1
  162. package/dist/provider-registry-UWTCPEFF.js +3 -0
  163. package/dist/{provider-registry-YADLRYW6.js.map → provider-registry-UWTCPEFF.js.map} +1 -1
  164. package/dist/provider-registry.json +34 -6
  165. package/dist/relevance/index.cjs +3 -3
  166. package/dist/relevance/index.js +1 -1
  167. package/dist/storage/constants.cjs +56 -56
  168. package/dist/storage/constants.js +1 -1
  169. package/dist/storage/index.cjs +286 -286
  170. package/dist/storage/index.js +3 -3
  171. package/dist/stream/index.cjs +11 -11
  172. package/dist/stream/index.js +2 -2
  173. package/dist/test-utils/llm-mock.cjs +4 -4
  174. package/dist/test-utils/llm-mock.js +1 -1
  175. package/dist/tool-loop-agent/index.cjs +4 -4
  176. package/dist/tool-loop-agent/index.js +1 -1
  177. package/dist/utils.cjs +25 -25
  178. package/dist/utils.js +1 -1
  179. package/dist/vector/index.cjs +7 -7
  180. package/dist/vector/index.js +1 -1
  181. package/dist/workflows/evented/index.cjs +10 -10
  182. package/dist/workflows/evented/index.js +1 -1
  183. package/dist/workflows/index.cjs +24 -24
  184. package/dist/workflows/index.js +1 -1
  185. package/package.json +5 -5
  186. package/src/llm/model/provider-types.generated.d.ts +11 -1
  187. package/dist/chunk-235IILEY.js.map +0 -1
  188. package/dist/chunk-2M6QAFRM.cjs.map +0 -1
  189. package/dist/chunk-6WRVZNQL.cjs.map +0 -1
  190. package/dist/chunk-7CWIKWHN.js.map +0 -1
  191. package/dist/chunk-B4OOPFD3.cjs.map +0 -1
  192. package/dist/chunk-KPNURYWF.js.map +0 -1
  193. package/dist/chunk-MW6HBUMV.cjs.map +0 -1
  194. package/dist/chunk-UNQCLA7I.cjs.map +0 -1
  195. package/dist/chunk-YTLU3Q7Q.js.map +0 -1
  196. package/dist/chunk-ZHMULBPD.js.map +0 -1
  197. package/dist/mastra-JWFZL5TC.js +0 -3
  198. package/dist/mastra-ZQK3PKEU.cjs +0 -12
  199. package/dist/models-dev-6DVNVKP4.cjs +0 -12
  200. package/dist/models-dev-FOTHHSEK.js +0 -3
  201. package/dist/netlify-NMTX7SVL.js +0 -3
  202. package/dist/netlify-S2IW3O2X.cjs +0 -12
  203. package/dist/provider-registry-7WS3N5BF.cjs +0 -44
  204. package/dist/provider-registry-YADLRYW6.js +0 -3
@@ -762,6 +762,26 @@ function getToolName(type) {
762
762
  }
763
763
  return sanitizeToolName(type);
764
764
  }
765
+ function mergeMastraCreatedAt(metadata, createdAt) {
766
+ if (createdAt == null) {
767
+ return metadata;
768
+ }
769
+ return {
770
+ ...metadata || {},
771
+ mastra: {
772
+ ...(metadata || {}).mastra || {},
773
+ createdAt
774
+ }
775
+ };
776
+ }
777
+ function getMastraCreatedAt(providerMetadata) {
778
+ const value = providerMetadata?.mastra;
779
+ if (!value || typeof value !== "object") {
780
+ return void 0;
781
+ }
782
+ const createdAt = value.createdAt;
783
+ return typeof createdAt === "number" ? createdAt : void 0;
784
+ }
765
785
  var AIV5Adapter = class {
766
786
  /**
767
787
  * Direct conversion from MastraDBMessage to AIV5 UIMessage
@@ -827,7 +847,7 @@ var AIV5Adapter = class {
827
847
  input: inv.args,
828
848
  output: inv.result,
829
849
  state: "output-available",
830
- callProviderMetadata: part.providerMetadata,
850
+ callProviderMetadata: mergeMastraCreatedAt(part.providerMetadata, part.createdAt),
831
851
  providerExecuted: part.providerExecuted
832
852
  });
833
853
  } else {
@@ -836,7 +856,7 @@ var AIV5Adapter = class {
836
856
  toolCallId: inv.toolCallId,
837
857
  input: inv.args,
838
858
  state: "input-available",
839
- callProviderMetadata: part.providerMetadata,
859
+ callProviderMetadata: mergeMastraCreatedAt(part.providerMetadata, part.createdAt),
840
860
  providerExecuted: part.providerExecuted
841
861
  });
842
862
  }
@@ -853,9 +873,7 @@ var AIV5Adapter = class {
853
873
  text: text || "",
854
874
  state: "done"
855
875
  };
856
- if (part.providerMetadata) {
857
- v5UIPart.providerMetadata = part.providerMetadata;
858
- }
876
+ v5UIPart.providerMetadata = mergeMastraCreatedAt(part.providerMetadata, part.createdAt);
859
877
  parts.push(v5UIPart);
860
878
  }
861
879
  continue;
@@ -874,9 +892,7 @@ var AIV5Adapter = class {
874
892
  url: part.data,
875
893
  mediaType: categorized.mimeType || "image/png"
876
894
  };
877
- if (part.providerMetadata) {
878
- v5UIPart.providerMetadata = part.providerMetadata;
879
- }
895
+ v5UIPart.providerMetadata = mergeMastraCreatedAt(part.providerMetadata, part.createdAt);
880
896
  parts.push(v5UIPart);
881
897
  } else {
882
898
  let filePartData;
@@ -906,9 +922,7 @@ var AIV5Adapter = class {
906
922
  url: dataUri,
907
923
  mediaType: finalMimeType
908
924
  };
909
- if (part.providerMetadata) {
910
- v5UIPart.providerMetadata = part.providerMetadata;
911
- }
925
+ v5UIPart.providerMetadata = mergeMastraCreatedAt(part.providerMetadata, part.createdAt);
912
926
  parts.push(v5UIPart);
913
927
  }
914
928
  } else if (part.type === "source") {
@@ -918,9 +932,7 @@ var AIV5Adapter = class {
918
932
  sourceId: part.source.id,
919
933
  title: part.source.title
920
934
  };
921
- if (part.providerMetadata) {
922
- v5UIPart.providerMetadata = part.providerMetadata;
923
- }
935
+ v5UIPart.providerMetadata = mergeMastraCreatedAt(part.providerMetadata, part.createdAt);
924
936
  parts.push(v5UIPart);
925
937
  } else if (part.type === "source-document") {
926
938
  continue;
@@ -929,9 +941,7 @@ var AIV5Adapter = class {
929
941
  type: "text",
930
942
  text: part.text
931
943
  };
932
- if (part.providerMetadata) {
933
- v5UIPart.providerMetadata = part.providerMetadata;
934
- }
944
+ v5UIPart.providerMetadata = mergeMastraCreatedAt(part.providerMetadata, part.createdAt);
935
945
  parts.push(v5UIPart);
936
946
  hasNonToolReasoningParts = true;
937
947
  } else {
@@ -1018,7 +1028,8 @@ var AIV5Adapter = class {
1018
1028
  result: typeof p.output === "object" && p.output && "value" in p.output ? p.output.value : p.output,
1019
1029
  state: "result"
1020
1030
  },
1021
- providerMetadata: callProviderMetadata
1031
+ providerMetadata: callProviderMetadata,
1032
+ createdAt: getMastraCreatedAt(callProviderMetadata)
1022
1033
  };
1023
1034
  }
1024
1035
  return {
@@ -1029,7 +1040,8 @@ var AIV5Adapter = class {
1029
1040
  args: p.input,
1030
1041
  state: "call"
1031
1042
  },
1032
- providerMetadata: callProviderMetadata
1043
+ providerMetadata: callProviderMetadata,
1044
+ createdAt: getMastraCreatedAt(callProviderMetadata)
1033
1045
  };
1034
1046
  }
1035
1047
  if (p.type === "reasoning") {
@@ -1042,7 +1054,8 @@ var AIV5Adapter = class {
1042
1054
  text: p.text
1043
1055
  }
1044
1056
  ],
1045
- providerMetadata: p.providerMetadata
1057
+ providerMetadata: p.providerMetadata,
1058
+ createdAt: getMastraCreatedAt(p.providerMetadata)
1046
1059
  };
1047
1060
  }
1048
1061
  if (p.type === "file") {
@@ -1051,6 +1064,7 @@ var AIV5Adapter = class {
1051
1064
  mimeType: p.mediaType,
1052
1065
  data: p.url || "",
1053
1066
  providerMetadata: p.providerMetadata,
1067
+ createdAt: getMastraCreatedAt(p.providerMetadata),
1054
1068
  ...p.filename ? { filename: p.filename } : {}
1055
1069
  };
1056
1070
  }
@@ -1063,14 +1077,16 @@ var AIV5Adapter = class {
1063
1077
  id: p.url,
1064
1078
  providerMetadata: p.providerMetadata
1065
1079
  },
1066
- providerMetadata: p.providerMetadata
1080
+ providerMetadata: p.providerMetadata,
1081
+ createdAt: getMastraCreatedAt(p.providerMetadata)
1067
1082
  };
1068
1083
  }
1069
1084
  if (p.type === "text") {
1070
1085
  return {
1071
1086
  type: "text",
1072
1087
  text: p.text,
1073
- providerMetadata: p.providerMetadata
1088
+ providerMetadata: p.providerMetadata,
1089
+ createdAt: getMastraCreatedAt(p.providerMetadata)
1074
1090
  };
1075
1091
  }
1076
1092
  if (p.type === "step-start") {
@@ -1163,6 +1179,7 @@ var AIV5Adapter = class {
1163
1179
  };
1164
1180
  if (part.providerOptions) {
1165
1181
  textPart.providerMetadata = part.providerOptions;
1182
+ textPart.createdAt = getMastraCreatedAt(part.providerOptions);
1166
1183
  }
1167
1184
  mastraDBParts.push(textPart);
1168
1185
  } else if (part.type === "tool-call") {
@@ -1178,6 +1195,7 @@ var AIV5Adapter = class {
1178
1195
  };
1179
1196
  if (part.providerOptions) {
1180
1197
  toolInvocationPart.providerMetadata = part.providerOptions;
1198
+ toolInvocationPart.createdAt = getMastraCreatedAt(part.providerOptions);
1181
1199
  }
1182
1200
  mastraDBParts.push(toolInvocationPart);
1183
1201
  toolInvocations.push({
@@ -1212,6 +1230,7 @@ var AIV5Adapter = class {
1212
1230
  updateMatchingCallInvocationResult(toolResultPart, matchingV2Part.toolInvocation);
1213
1231
  if (toolResultPart.providerOptions) {
1214
1232
  matchingV2Part.providerMetadata = toolResultPart.providerOptions;
1233
+ matchingV2Part.createdAt = getMastraCreatedAt(toolResultPart.providerOptions) ?? matchingV2Part.createdAt;
1215
1234
  }
1216
1235
  } else {
1217
1236
  const toolInvocationPart = {
@@ -1226,6 +1245,7 @@ var AIV5Adapter = class {
1226
1245
  updateMatchingCallInvocationResult(toolResultPart, toolInvocationPart.toolInvocation);
1227
1246
  if (toolResultPart.providerOptions) {
1228
1247
  toolInvocationPart.providerMetadata = toolResultPart.providerOptions;
1248
+ toolInvocationPart.createdAt = getMastraCreatedAt(toolResultPart.providerOptions);
1229
1249
  }
1230
1250
  mastraDBParts.push(toolInvocationPart);
1231
1251
  }
@@ -1237,6 +1257,7 @@ var AIV5Adapter = class {
1237
1257
  };
1238
1258
  if (part.providerOptions) {
1239
1259
  v2ReasoningPart.providerMetadata = part.providerOptions;
1260
+ v2ReasoningPart.createdAt = getMastraCreatedAt(part.providerOptions);
1240
1261
  }
1241
1262
  mastraDBParts.push(v2ReasoningPart);
1242
1263
  reasoningParts.push(part.text);
@@ -1251,6 +1272,7 @@ var AIV5Adapter = class {
1251
1272
  };
1252
1273
  if (part.providerOptions) {
1253
1274
  imageFilePart.providerMetadata = part.providerOptions;
1275
+ imageFilePart.createdAt = getMastraCreatedAt(part.providerOptions);
1254
1276
  }
1255
1277
  mastraDBParts.push(imageFilePart);
1256
1278
  experimental_attachments.push({
@@ -1268,6 +1290,7 @@ var AIV5Adapter = class {
1268
1290
  };
1269
1291
  if (part.providerOptions) {
1270
1292
  v2FilePart.providerMetadata = part.providerOptions;
1293
+ v2FilePart.createdAt = getMastraCreatedAt(part.providerOptions);
1271
1294
  }
1272
1295
  if (filePart.filename) {
1273
1296
  v2FilePart.filename = filePart.filename;
@@ -2251,6 +2274,21 @@ function messagesAreEqual(one, two) {
2251
2274
  return true;
2252
2275
  }
2253
2276
 
2277
+ // src/agent/message-list/utils/stamp-part.ts
2278
+ function stampPart(part) {
2279
+ if (part.createdAt == null) {
2280
+ part.createdAt = Date.now();
2281
+ }
2282
+ return part;
2283
+ }
2284
+ function stampMessageParts(message, source) {
2285
+ if (source === "memory" || !Array.isArray(message.content.parts)) {
2286
+ return message;
2287
+ }
2288
+ message.content.parts = message.content.parts.map((part) => stampPart(part));
2289
+ return message;
2290
+ }
2291
+
2254
2292
  // src/agent/message-list/conversion/input-converter.ts
2255
2293
  function inputToMastraDBMessage(message, messageSource, context) {
2256
2294
  if (messageSource !== `memory` && `threadId` in message && message.threadId && context.memoryInfo && message.threadId !== context.memoryInfo.threadId) {
@@ -2264,16 +2302,19 @@ function inputToMastraDBMessage(message, messageSource, context) {
2264
2302
  );
2265
2303
  }
2266
2304
  if (TypeDetector.isMastraMessageV1(message)) {
2267
- return mastraMessageV1ToMastraDBMessage(message, messageSource, context);
2305
+ return stampMessageParts(mastraMessageV1ToMastraDBMessage(message, messageSource, context), messageSource);
2268
2306
  }
2269
2307
  if (TypeDetector.isMastraDBMessage(message)) {
2270
- return hydrateMastraDBMessageFields(message, context);
2308
+ return stampMessageParts(hydrateMastraDBMessageFields(message, context), messageSource);
2271
2309
  }
2272
2310
  if (TypeDetector.isAIV4CoreMessage(message)) {
2273
- return AIV4Adapter.fromCoreMessage(message, context, messageSource);
2311
+ return stampMessageParts(AIV4Adapter.fromCoreMessage(message, context, messageSource), messageSource);
2274
2312
  }
2275
2313
  if (TypeDetector.isAIV4UIMessage(message)) {
2276
- return AIV4Adapter.fromUIMessage(message, context, messageSource);
2314
+ return stampMessageParts(
2315
+ AIV4Adapter.fromUIMessage(message, context, messageSource),
2316
+ messageSource
2317
+ );
2277
2318
  }
2278
2319
  const hasOriginalId = "id" in message && typeof message.id === "string";
2279
2320
  const id = hasOriginalId ? message.id : context.newMessageId();
@@ -2302,24 +2343,30 @@ function inputToMastraDBMessage(message, messageSource, context) {
2302
2343
  if (TypeDetector.isAIV5CoreMessage(message)) {
2303
2344
  const dbMsg = AIV5Adapter.fromModelMessage(message, messageSource);
2304
2345
  const rawCreatedAt = "metadata" in message && message.metadata && typeof message.metadata === "object" && "createdAt" in message.metadata ? message.metadata.createdAt : void 0;
2305
- return {
2306
- ...dbMsg,
2307
- id,
2308
- createdAt: context.generateCreatedAt(messageSource, rawCreatedAt),
2309
- threadId: context.memoryInfo?.threadId,
2310
- resourceId: context.memoryInfo?.resourceId
2311
- };
2346
+ return stampMessageParts(
2347
+ {
2348
+ ...dbMsg,
2349
+ id,
2350
+ createdAt: context.generateCreatedAt(messageSource, rawCreatedAt),
2351
+ threadId: context.memoryInfo?.threadId,
2352
+ resourceId: context.memoryInfo?.resourceId
2353
+ },
2354
+ messageSource
2355
+ );
2312
2356
  }
2313
2357
  if (TypeDetector.isAIV5UIMessage(message)) {
2314
2358
  const dbMsg = AIV5Adapter.fromUIMessage(message);
2315
2359
  const rawCreatedAt = "createdAt" in message ? message.createdAt : void 0;
2316
- return {
2317
- ...dbMsg,
2318
- id,
2319
- createdAt: context.generateCreatedAt(messageSource, rawCreatedAt),
2320
- threadId: context.memoryInfo?.threadId,
2321
- resourceId: context.memoryInfo?.resourceId
2322
- };
2360
+ return stampMessageParts(
2361
+ {
2362
+ ...dbMsg,
2363
+ id,
2364
+ createdAt: context.generateCreatedAt(messageSource, rawCreatedAt),
2365
+ threadId: context.memoryInfo?.threadId,
2366
+ resourceId: context.memoryInfo?.resourceId
2367
+ },
2368
+ messageSource
2369
+ );
2323
2370
  }
2324
2371
  throw new Error(`Found unhandled message ${JSON.stringify(message)}`);
2325
2372
  }
@@ -4487,7 +4534,7 @@ var MessageList = class {
4487
4534
  if (lastPart?.type === "step-start") {
4488
4535
  return false;
4489
4536
  }
4490
- lastMsg.content.parts.push({ type: "step-start" });
4537
+ lastMsg.content.parts.push(stampPart({ type: "step-start" }));
4491
4538
  if (!this.stateManager.isResponseMessage(lastMsg)) {
4492
4539
  this.stateManager.removeMessage(lastMsg);
4493
4540
  this.stateManager.addToSource(lastMsg, "response");
@@ -4790,5 +4837,5 @@ function convertMessages(messages) {
4790
4837
  }
4791
4838
 
4792
4839
  export { AIV4Adapter, AIV5Adapter, AIV6Adapter, CacheKeyGenerator, DefaultGeneratedFile, DefaultGeneratedFileWithType, MessageList, MessageMerger, MessageStateManager, TypeDetector, aiV4CoreMessageToV1PromptMessage, aiV5ModelMessageToV2PromptMessage, convertMessages, coreContentToString, ensureAnthropicCompatibleMessages, ensureGeminiCompatibleMessages, findToolCallArgs, getOpenAIReasoningItemId, hasOpenAIReasoningItemId, messagesAreEqual, sanitizeToolName };
4793
- //# sourceMappingURL=chunk-7CWIKWHN.js.map
4794
- //# sourceMappingURL=chunk-7CWIKWHN.js.map
4840
+ //# sourceMappingURL=chunk-I7DUPZFN.js.map
4841
+ //# sourceMappingURL=chunk-I7DUPZFN.js.map