@mastra/server 1.33.0-alpha.6 → 1.33.0-alpha.8

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 (309) hide show
  1. package/CHANGELOG.md +159 -0
  2. package/dist/{api-schema-manifest-KDXQELMU.cjs → api-schema-manifest-CX3NL6JS.cjs} +6 -6
  3. package/dist/{api-schema-manifest-KDXQELMU.cjs.map → api-schema-manifest-CX3NL6JS.cjs.map} +1 -1
  4. package/dist/{api-schema-manifest-IWGQ5O45.js → api-schema-manifest-IK5MQPAL.js} +4 -4
  5. package/dist/{api-schema-manifest-IWGQ5O45.js.map → api-schema-manifest-IK5MQPAL.js.map} +1 -1
  6. package/dist/{chunk-IT26WLSZ.js → chunk-26PANWAR.js} +7 -7
  7. package/dist/{chunk-IT26WLSZ.js.map → chunk-26PANWAR.js.map} +1 -1
  8. package/dist/{chunk-LXNZK6NM.cjs → chunk-27VZ5B4Q.cjs} +77 -77
  9. package/dist/{chunk-LXNZK6NM.cjs.map → chunk-27VZ5B4Q.cjs.map} +1 -1
  10. package/dist/{chunk-MAG4W3GZ.cjs → chunk-2PS73C7N.cjs} +8 -8
  11. package/dist/{chunk-MAG4W3GZ.cjs.map → chunk-2PS73C7N.cjs.map} +1 -1
  12. package/dist/{chunk-34UYZN53.js → chunk-3AKQRYDF.js} +4 -4
  13. package/dist/{chunk-34UYZN53.js.map → chunk-3AKQRYDF.js.map} +1 -1
  14. package/dist/{chunk-5HQXXBTM.js → chunk-3DQGNGSK.js} +4 -4
  15. package/dist/{chunk-5HQXXBTM.js.map → chunk-3DQGNGSK.js.map} +1 -1
  16. package/dist/{chunk-WEDFF5FH.js → chunk-3SRLGVLX.js} +44 -44
  17. package/dist/chunk-3SRLGVLX.js.map +1 -0
  18. package/dist/{chunk-SX3C7B3A.cjs → chunk-4NVC7TM6.cjs} +28 -28
  19. package/dist/{chunk-SX3C7B3A.cjs.map → chunk-4NVC7TM6.cjs.map} +1 -1
  20. package/dist/{chunk-N6HISTTP.cjs → chunk-4ZO2MLW5.cjs} +16 -16
  21. package/dist/{chunk-N6HISTTP.cjs.map → chunk-4ZO2MLW5.cjs.map} +1 -1
  22. package/dist/{chunk-EQ27BVOT.js → chunk-5WYCXPDY.js} +4 -4
  23. package/dist/{chunk-EQ27BVOT.js.map → chunk-5WYCXPDY.js.map} +1 -1
  24. package/dist/{chunk-EFW6MWXU.cjs → chunk-5XW4MKE6.cjs} +22 -2
  25. package/dist/chunk-5XW4MKE6.cjs.map +1 -0
  26. package/dist/{chunk-MCS43WKI.cjs → chunk-6JP6Q64G.cjs} +10 -10
  27. package/dist/{chunk-MCS43WKI.cjs.map → chunk-6JP6Q64G.cjs.map} +1 -1
  28. package/dist/{chunk-ZO7SOILM.js → chunk-6V2NUA6I.js} +4 -4
  29. package/dist/{chunk-ZO7SOILM.js.map → chunk-6V2NUA6I.js.map} +1 -1
  30. package/dist/{chunk-64YJOWH2.cjs → chunk-72W42JL4.cjs} +5 -5
  31. package/dist/{chunk-64YJOWH2.cjs.map → chunk-72W42JL4.cjs.map} +1 -1
  32. package/dist/{chunk-NWD2SPUH.js → chunk-7LGTEZBD.js} +4 -4
  33. package/dist/{chunk-NWD2SPUH.js.map → chunk-7LGTEZBD.js.map} +1 -1
  34. package/dist/{chunk-2KDOM6QE.js → chunk-7PDQ67ZY.js} +108 -6
  35. package/dist/chunk-7PDQ67ZY.js.map +1 -0
  36. package/dist/{chunk-SOH5VORA.js → chunk-7RLQ6356.js} +3 -3
  37. package/dist/{chunk-SOH5VORA.js.map → chunk-7RLQ6356.js.map} +1 -1
  38. package/dist/{chunk-CYLX5SJ4.js → chunk-7SVSAMG4.js} +6 -6
  39. package/dist/{chunk-CYLX5SJ4.js.map → chunk-7SVSAMG4.js.map} +1 -1
  40. package/dist/{chunk-OAE7ZFYO.cjs → chunk-ALOM42GR.cjs} +24 -24
  41. package/dist/{chunk-OAE7ZFYO.cjs.map → chunk-ALOM42GR.cjs.map} +1 -1
  42. package/dist/{chunk-3EK2EVVE.js → chunk-ANIIJVPR.js} +4 -4
  43. package/dist/{chunk-3EK2EVVE.js.map → chunk-ANIIJVPR.js.map} +1 -1
  44. package/dist/chunk-B3CHYE7C.js +549 -0
  45. package/dist/chunk-B3CHYE7C.js.map +1 -0
  46. package/dist/{chunk-2HM5SQM5.js → chunk-BK2PTTTN.js} +4 -4
  47. package/dist/{chunk-2HM5SQM5.js.map → chunk-BK2PTTTN.js.map} +1 -1
  48. package/dist/{chunk-YN57WYLS.cjs → chunk-BNONPEW6.cjs} +11 -11
  49. package/dist/{chunk-YN57WYLS.cjs.map → chunk-BNONPEW6.cjs.map} +1 -1
  50. package/dist/{chunk-XPF4VEXO.js → chunk-BZ3NR3IS.js} +40 -38
  51. package/dist/chunk-BZ3NR3IS.js.map +1 -0
  52. package/dist/{chunk-4NPFEKIP.js → chunk-CG3AAC7C.js} +4 -4
  53. package/dist/{chunk-4NPFEKIP.js.map → chunk-CG3AAC7C.js.map} +1 -1
  54. package/dist/{chunk-VGNQKFWM.js → chunk-DC7NOATT.js} +3 -3
  55. package/dist/{chunk-VGNQKFWM.js.map → chunk-DC7NOATT.js.map} +1 -1
  56. package/dist/{chunk-WMS63TTU.cjs → chunk-DDF3ZASL.cjs} +168 -64
  57. package/dist/chunk-DDF3ZASL.cjs.map +1 -0
  58. package/dist/{chunk-NB7LJMYF.js → chunk-DPGNOE7R.js} +3 -3
  59. package/dist/{chunk-NB7LJMYF.js.map → chunk-DPGNOE7R.js.map} +1 -1
  60. package/dist/{chunk-KRMMYAXW.cjs → chunk-E7IOQCUP.cjs} +10 -10
  61. package/dist/{chunk-KRMMYAXW.cjs.map → chunk-E7IOQCUP.cjs.map} +1 -1
  62. package/dist/{chunk-RVAPXLP2.js → chunk-EFQBRUA4.js} +3 -3
  63. package/dist/{chunk-RVAPXLP2.js.map → chunk-EFQBRUA4.js.map} +1 -1
  64. package/dist/{chunk-4KNRG3KO.cjs → chunk-EN45CWWM.cjs} +18 -18
  65. package/dist/{chunk-4KNRG3KO.cjs.map → chunk-EN45CWWM.cjs.map} +1 -1
  66. package/dist/chunk-F3HP5HM6.cjs +998 -0
  67. package/dist/chunk-F3HP5HM6.cjs.map +1 -0
  68. package/dist/{chunk-Y3OQTZDN.js → chunk-FD3TJOO6.js} +44 -15
  69. package/dist/chunk-FD3TJOO6.js.map +1 -0
  70. package/dist/{chunk-PYT4SLHO.js → chunk-FJZ67HHA.js} +3 -3
  71. package/dist/{chunk-PYT4SLHO.js.map → chunk-FJZ67HHA.js.map} +1 -1
  72. package/dist/{chunk-TE2PWB67.js → chunk-GIMDOFRR.js} +4 -4
  73. package/dist/{chunk-TE2PWB67.js.map → chunk-GIMDOFRR.js.map} +1 -1
  74. package/dist/{chunk-MTKGUIFX.js → chunk-GJ3BKRTZ.js} +6 -6
  75. package/dist/{chunk-MTKGUIFX.js.map → chunk-GJ3BKRTZ.js.map} +1 -1
  76. package/dist/{chunk-UMXIU6E3.cjs → chunk-GNQ5SKPB.cjs} +7 -7
  77. package/dist/{chunk-UMXIU6E3.cjs.map → chunk-GNQ5SKPB.cjs.map} +1 -1
  78. package/dist/{chunk-AMZMBCKG.cjs → chunk-GOXW7A5J.cjs} +10 -10
  79. package/dist/{chunk-AMZMBCKG.cjs.map → chunk-GOXW7A5J.cjs.map} +1 -1
  80. package/dist/{chunk-EKS524LA.js → chunk-GP65L3TF.js} +83 -34
  81. package/dist/chunk-GP65L3TF.js.map +1 -0
  82. package/dist/{chunk-SYDZFUZI.js → chunk-GSL72DOW.js} +3 -3
  83. package/dist/{chunk-SYDZFUZI.js.map → chunk-GSL72DOW.js.map} +1 -1
  84. package/dist/{chunk-CSG535HL.cjs → chunk-GV2J3XQ4.cjs} +137 -108
  85. package/dist/chunk-GV2J3XQ4.cjs.map +1 -0
  86. package/dist/{chunk-VESPCO5X.js → chunk-ITIAC2TC.js} +3 -3
  87. package/dist/{chunk-VESPCO5X.js.map → chunk-ITIAC2TC.js.map} +1 -1
  88. package/dist/{chunk-BGRKLLHE.cjs → chunk-J62R54QE.cjs} +6 -6
  89. package/dist/{chunk-BGRKLLHE.cjs.map → chunk-J62R54QE.cjs.map} +1 -1
  90. package/dist/{chunk-BLK2XYVU.cjs → chunk-JLH5BHLT.cjs} +10 -10
  91. package/dist/{chunk-BLK2XYVU.cjs.map → chunk-JLH5BHLT.cjs.map} +1 -1
  92. package/dist/{chunk-UOC4K3RU.js → chunk-JOUPK2UV.js} +3 -3
  93. package/dist/{chunk-UOC4K3RU.js.map → chunk-JOUPK2UV.js.map} +1 -1
  94. package/dist/{chunk-HLDBO2H6.js → chunk-JSHKUN5Y.js} +3 -3
  95. package/dist/{chunk-HLDBO2H6.js.map → chunk-JSHKUN5Y.js.map} +1 -1
  96. package/dist/chunk-KUCITIUY.cjs +636 -0
  97. package/dist/chunk-KUCITIUY.cjs.map +1 -0
  98. package/dist/{chunk-LRYHYARK.js → chunk-KXZBJDFG.js} +4 -4
  99. package/dist/{chunk-LRYHYARK.js.map → chunk-KXZBJDFG.js.map} +1 -1
  100. package/dist/{chunk-MWXGGCHD.cjs → chunk-L742HQNI.cjs} +10 -10
  101. package/dist/{chunk-MWXGGCHD.cjs.map → chunk-L742HQNI.cjs.map} +1 -1
  102. package/dist/{chunk-ZOILZWQD.cjs → chunk-LKVE4QAW.cjs} +6 -6
  103. package/dist/{chunk-ZOILZWQD.cjs.map → chunk-LKVE4QAW.cjs.map} +1 -1
  104. package/dist/{chunk-6DAZZPVO.cjs → chunk-LNV75BVN.cjs} +38 -38
  105. package/dist/{chunk-6DAZZPVO.cjs.map → chunk-LNV75BVN.cjs.map} +1 -1
  106. package/dist/{chunk-S4L4CSQD.js → chunk-LRUC4D2Q.js} +3 -3
  107. package/dist/{chunk-S4L4CSQD.js.map → chunk-LRUC4D2Q.js.map} +1 -1
  108. package/dist/{chunk-ANXKF4TA.cjs → chunk-M62Z4EEY.cjs} +147 -147
  109. package/dist/chunk-M62Z4EEY.cjs.map +1 -0
  110. package/dist/{chunk-IYEGDP3G.js → chunk-M7DF3D2M.js} +3 -3
  111. package/dist/{chunk-IYEGDP3G.js.map → chunk-M7DF3D2M.js.map} +1 -1
  112. package/dist/{chunk-LOZT5NDU.cjs → chunk-MZ3RKQKS.cjs} +6 -6
  113. package/dist/{chunk-LOZT5NDU.cjs.map → chunk-MZ3RKQKS.cjs.map} +1 -1
  114. package/dist/{chunk-3OTCA7TP.js → chunk-NKCUF5ZH.js} +3 -3
  115. package/dist/{chunk-3OTCA7TP.js.map → chunk-NKCUF5ZH.js.map} +1 -1
  116. package/dist/{chunk-UOBKNRHM.cjs → chunk-NKYIWTT3.cjs} +12 -12
  117. package/dist/{chunk-UOBKNRHM.cjs.map → chunk-NKYIWTT3.cjs.map} +1 -1
  118. package/dist/{chunk-R7EB3VDI.cjs → chunk-NOQ45USI.cjs} +13 -13
  119. package/dist/{chunk-R7EB3VDI.cjs.map → chunk-NOQ45USI.cjs.map} +1 -1
  120. package/dist/{chunk-YQILRC5Y.cjs → chunk-OB4NE2YX.cjs} +10 -10
  121. package/dist/{chunk-YQILRC5Y.cjs.map → chunk-OB4NE2YX.cjs.map} +1 -1
  122. package/dist/{chunk-ICJ2ZVI2.cjs → chunk-OJFDLVAO.cjs} +13 -13
  123. package/dist/{chunk-ICJ2ZVI2.cjs.map → chunk-OJFDLVAO.cjs.map} +1 -1
  124. package/dist/{chunk-PM3UPQWH.cjs → chunk-P3TJ7MI6.cjs} +11 -11
  125. package/dist/{chunk-PM3UPQWH.cjs.map → chunk-P3TJ7MI6.cjs.map} +1 -1
  126. package/dist/{chunk-HYYXUP35.cjs → chunk-PJDFXAOL.cjs} +2 -2
  127. package/dist/{chunk-HYYXUP35.cjs.map → chunk-PJDFXAOL.cjs.map} +1 -1
  128. package/dist/{chunk-AWXCTLMK.cjs → chunk-PPCGMD6N.cjs} +11 -11
  129. package/dist/{chunk-AWXCTLMK.cjs.map → chunk-PPCGMD6N.cjs.map} +1 -1
  130. package/dist/{chunk-TWT64BVR.js → chunk-PUAKBO3Q.js} +45 -70
  131. package/dist/chunk-PUAKBO3Q.js.map +1 -0
  132. package/dist/{chunk-QEM5P746.cjs → chunk-PYGX3GUB.cjs} +71 -96
  133. package/dist/chunk-PYGX3GUB.cjs.map +1 -0
  134. package/dist/{chunk-ZSGVBBC4.js → chunk-QFGTTQFQ.js} +3 -3
  135. package/dist/{chunk-ZSGVBBC4.js.map → chunk-QFGTTQFQ.js.map} +1 -1
  136. package/dist/{chunk-HFF6QRLL.cjs → chunk-QISQJJPS.cjs} +6 -6
  137. package/dist/{chunk-HFF6QRLL.cjs.map → chunk-QISQJJPS.cjs.map} +1 -1
  138. package/dist/{chunk-IDLB647Y.js → chunk-QLJYRTD2.js} +4 -4
  139. package/dist/{chunk-IDLB647Y.js.map → chunk-QLJYRTD2.js.map} +1 -1
  140. package/dist/{chunk-STNEFHHA.js → chunk-RYOD3GP4.js} +4 -4
  141. package/dist/{chunk-STNEFHHA.js.map → chunk-RYOD3GP4.js.map} +1 -1
  142. package/dist/{chunk-KSQVYDDO.cjs → chunk-RYXKJ55A.cjs} +11 -11
  143. package/dist/{chunk-KSQVYDDO.cjs.map → chunk-RYXKJ55A.cjs.map} +1 -1
  144. package/dist/{chunk-GP45BMSR.js → chunk-SEMTGEAA.js} +3 -3
  145. package/dist/{chunk-GP45BMSR.js.map → chunk-SEMTGEAA.js.map} +1 -1
  146. package/dist/{chunk-C7Q5IMST.js → chunk-SFJOG2BT.js} +3 -3
  147. package/dist/{chunk-C7Q5IMST.js.map → chunk-SFJOG2BT.js.map} +1 -1
  148. package/dist/chunk-TLLV2JP5.js +983 -0
  149. package/dist/chunk-TLLV2JP5.js.map +1 -0
  150. package/dist/chunk-TTJ3DYZH.cjs +557 -0
  151. package/dist/chunk-TTJ3DYZH.cjs.map +1 -0
  152. package/dist/{chunk-WE5GUI23.js → chunk-UBOLRYFV.js} +3 -3
  153. package/dist/{chunk-WE5GUI23.js.map → chunk-UBOLRYFV.js.map} +1 -1
  154. package/dist/{chunk-GAS277DM.cjs → chunk-UVLX3WSX.cjs} +11 -11
  155. package/dist/{chunk-GAS277DM.cjs.map → chunk-UVLX3WSX.cjs.map} +1 -1
  156. package/dist/{chunk-HCIKFLLE.js → chunk-VMF4AV2C.js} +2 -2
  157. package/dist/{chunk-HCIKFLLE.js.map → chunk-VMF4AV2C.js.map} +1 -1
  158. package/dist/{chunk-KUBAQ732.cjs → chunk-VOBSGFM5.cjs} +10 -10
  159. package/dist/{chunk-KUBAQ732.cjs.map → chunk-VOBSGFM5.cjs.map} +1 -1
  160. package/dist/{chunk-5FHBVBU2.js → chunk-VQSY4I4H.js} +3 -3
  161. package/dist/{chunk-5FHBVBU2.js.map → chunk-VQSY4I4H.js.map} +1 -1
  162. package/dist/{chunk-GKN4IFE7.js → chunk-VYXPIZJE.js} +3 -3
  163. package/dist/{chunk-GKN4IFE7.js.map → chunk-VYXPIZJE.js.map} +1 -1
  164. package/dist/{chunk-WYQDPZNZ.cjs → chunk-W5B34RLN.cjs} +7 -7
  165. package/dist/{chunk-WYQDPZNZ.cjs.map → chunk-W5B34RLN.cjs.map} +1 -1
  166. package/dist/{chunk-VWBVA272.cjs → chunk-W6LHLN5M.cjs} +5 -5
  167. package/dist/{chunk-VWBVA272.cjs.map → chunk-W6LHLN5M.cjs.map} +1 -1
  168. package/dist/{chunk-KFEM2S5D.cjs → chunk-WWOML5Y4.cjs} +10 -10
  169. package/dist/{chunk-KFEM2S5D.cjs.map → chunk-WWOML5Y4.cjs.map} +1 -1
  170. package/dist/{chunk-Z7FXNI2N.cjs → chunk-XFDVU6GZ.cjs} +52 -52
  171. package/dist/{chunk-Z7FXNI2N.cjs.map → chunk-XFDVU6GZ.cjs.map} +1 -1
  172. package/dist/{chunk-BK2PRWVJ.cjs → chunk-Y5LNMKEY.cjs} +5 -5
  173. package/dist/{chunk-BK2PRWVJ.cjs.map → chunk-Y5LNMKEY.cjs.map} +1 -1
  174. package/dist/{chunk-OJRAH5VV.js → chunk-YARY4I5U.js} +18 -3
  175. package/dist/chunk-YARY4I5U.js.map +1 -0
  176. package/dist/{chunk-OJLXPTSL.cjs → chunk-YE56LUEI.cjs} +18 -18
  177. package/dist/{chunk-OJLXPTSL.cjs.map → chunk-YE56LUEI.cjs.map} +1 -1
  178. package/dist/{chunk-RQNN75EV.js → chunk-YGNA75MT.js} +5 -5
  179. package/dist/{chunk-RQNN75EV.js.map → chunk-YGNA75MT.js.map} +1 -1
  180. package/dist/{chunk-47U5QTGT.cjs → chunk-YYTMNPB7.cjs} +83 -34
  181. package/dist/chunk-YYTMNPB7.cjs.map +1 -0
  182. package/dist/docs/SKILL.md +1 -1
  183. package/dist/docs/assets/SOURCE_MAP.json +1 -1
  184. package/dist/{observational-memory-HAJ3K5JJ-RB4HNAIV.cjs → observational-memory-2PRVG6BF-3V6S3B2J.cjs} +26 -26
  185. package/dist/{observational-memory-HAJ3K5JJ-RB4HNAIV.cjs.map → observational-memory-2PRVG6BF-3V6S3B2J.cjs.map} +1 -1
  186. package/dist/{observational-memory-HAJ3K5JJ-J2PZI56J.js → observational-memory-2PRVG6BF-4MT3GXPA.js} +3 -3
  187. package/dist/{observational-memory-HAJ3K5JJ-J2PZI56J.js.map → observational-memory-2PRVG6BF-4MT3GXPA.js.map} +1 -1
  188. package/dist/server/auth/index.cjs +15 -15
  189. package/dist/server/auth/index.js +1 -1
  190. package/dist/server/constants.d.ts +5 -0
  191. package/dist/server/constants.d.ts.map +1 -1
  192. package/dist/server/handlers/a2a.cjs +14 -14
  193. package/dist/server/handlers/a2a.js +1 -1
  194. package/dist/server/handlers/agent-builder.cjs +16 -16
  195. package/dist/server/handlers/agent-builder.js +1 -1
  196. package/dist/server/handlers/agent-versions.cjs +8 -8
  197. package/dist/server/handlers/agent-versions.js +1 -1
  198. package/dist/server/handlers/agents.cjs +39 -39
  199. package/dist/server/handlers/agents.d.ts.map +1 -1
  200. package/dist/server/handlers/agents.js +1 -1
  201. package/dist/server/handlers/auth.cjs +11 -11
  202. package/dist/server/handlers/auth.js +1 -1
  203. package/dist/server/handlers/background-tasks.cjs +4 -4
  204. package/dist/server/handlers/background-tasks.js +1 -1
  205. package/dist/server/handlers/channels.cjs +5 -5
  206. package/dist/server/handlers/channels.js +1 -1
  207. package/dist/server/handlers/conversations.cjs +5 -5
  208. package/dist/server/handlers/conversations.js +1 -1
  209. package/dist/server/handlers/datasets.cjs +26 -26
  210. package/dist/server/handlers/datasets.js +1 -1
  211. package/dist/server/handlers/logs.cjs +4 -4
  212. package/dist/server/handlers/logs.js +1 -1
  213. package/dist/server/handlers/mcp-client-versions.cjs +8 -8
  214. package/dist/server/handlers/mcp-client-versions.js +1 -1
  215. package/dist/server/handlers/mcp.cjs +11 -11
  216. package/dist/server/handlers/mcp.js +1 -1
  217. package/dist/server/handlers/memory.cjs +27 -27
  218. package/dist/server/handlers/memory.js +1 -1
  219. package/dist/server/handlers/observability-new-endpoints.cjs +28 -28
  220. package/dist/server/handlers/observability-new-endpoints.js +1 -1
  221. package/dist/server/handlers/observability.cjs +38 -38
  222. package/dist/server/handlers/observability.js +2 -2
  223. package/dist/server/handlers/processor-providers.cjs +3 -3
  224. package/dist/server/handlers/processor-providers.js +1 -1
  225. package/dist/server/handlers/processors.cjs +4 -4
  226. package/dist/server/handlers/processors.js +1 -1
  227. package/dist/server/handlers/prompt-block-versions.cjs +8 -8
  228. package/dist/server/handlers/prompt-block-versions.js +1 -1
  229. package/dist/server/handlers/responses.adapter.cjs +18 -14
  230. package/dist/server/handlers/responses.adapter.d.ts +96 -2
  231. package/dist/server/handlers/responses.adapter.d.ts.map +1 -1
  232. package/dist/server/handlers/responses.adapter.js +1 -1
  233. package/dist/server/handlers/responses.cjs +4 -4
  234. package/dist/server/handlers/responses.d.ts.map +1 -1
  235. package/dist/server/handlers/responses.js +1 -1
  236. package/dist/server/handlers/responses.storage.cjs +8 -8
  237. package/dist/server/handlers/responses.storage.d.ts +4 -2
  238. package/dist/server/handlers/responses.storage.d.ts.map +1 -1
  239. package/dist/server/handlers/responses.storage.js +1 -1
  240. package/dist/server/handlers/schedules.cjs +6 -6
  241. package/dist/server/handlers/schedules.js +1 -1
  242. package/dist/server/handlers/scorer-versions.cjs +8 -8
  243. package/dist/server/handlers/scorer-versions.js +1 -1
  244. package/dist/server/handlers/scores.cjs +7 -7
  245. package/dist/server/handlers/scores.js +1 -1
  246. package/dist/server/handlers/stored-agents.cjs +7 -7
  247. package/dist/server/handlers/stored-agents.js +1 -1
  248. package/dist/server/handlers/stored-mcp-clients.cjs +6 -6
  249. package/dist/server/handlers/stored-mcp-clients.js +1 -1
  250. package/dist/server/handlers/stored-prompt-blocks.cjs +6 -6
  251. package/dist/server/handlers/stored-prompt-blocks.js +1 -1
  252. package/dist/server/handlers/stored-scorers.cjs +6 -6
  253. package/dist/server/handlers/stored-scorers.js +1 -1
  254. package/dist/server/handlers/stored-skills.cjs +7 -7
  255. package/dist/server/handlers/stored-skills.js +1 -1
  256. package/dist/server/handlers/stored-workspaces.cjs +6 -6
  257. package/dist/server/handlers/stored-workspaces.js +1 -1
  258. package/dist/server/handlers/system.cjs +3 -3
  259. package/dist/server/handlers/system.js +1 -1
  260. package/dist/server/handlers/tool-providers.cjs +5 -5
  261. package/dist/server/handlers/tool-providers.js +1 -1
  262. package/dist/server/handlers/tools.cjs +6 -6
  263. package/dist/server/handlers/tools.js +1 -1
  264. package/dist/server/handlers/utils.cjs +10 -10
  265. package/dist/server/handlers/utils.js +1 -1
  266. package/dist/server/handlers/vector.cjs +16 -16
  267. package/dist/server/handlers/vector.js +1 -1
  268. package/dist/server/handlers/voice.cjs +8 -8
  269. package/dist/server/handlers/voice.js +1 -1
  270. package/dist/server/handlers/workflows.cjs +32 -24
  271. package/dist/server/handlers/workflows.d.ts +83 -0
  272. package/dist/server/handlers/workflows.d.ts.map +1 -1
  273. package/dist/server/handlers/workflows.js +1 -1
  274. package/dist/server/handlers/workspace.cjs +26 -26
  275. package/dist/server/handlers/workspace.js +1 -1
  276. package/dist/server/handlers.cjs +30 -30
  277. package/dist/server/handlers.js +15 -15
  278. package/dist/server/server-adapter/index.cjs +55 -28
  279. package/dist/server/server-adapter/index.cjs.map +1 -1
  280. package/dist/server/server-adapter/index.d.ts +5 -1
  281. package/dist/server/server-adapter/index.d.ts.map +1 -1
  282. package/dist/server/server-adapter/index.js +19 -11
  283. package/dist/server/server-adapter/index.js.map +1 -1
  284. package/dist/server/server-adapter/routes/workflows.d.ts +66 -1
  285. package/dist/server/server-adapter/routes/workflows.d.ts.map +1 -1
  286. package/package.json +6 -6
  287. package/dist/chunk-2KDOM6QE.js.map +0 -1
  288. package/dist/chunk-47U5QTGT.cjs.map +0 -1
  289. package/dist/chunk-AJYJ4H7P.js +0 -438
  290. package/dist/chunk-AJYJ4H7P.js.map +0 -1
  291. package/dist/chunk-ANXKF4TA.cjs.map +0 -1
  292. package/dist/chunk-CSG535HL.cjs.map +0 -1
  293. package/dist/chunk-DFSUBEGE.js +0 -226
  294. package/dist/chunk-DFSUBEGE.js.map +0 -1
  295. package/dist/chunk-EFW6MWXU.cjs.map +0 -1
  296. package/dist/chunk-EKS524LA.js.map +0 -1
  297. package/dist/chunk-OJ72T77G.cjs +0 -452
  298. package/dist/chunk-OJ72T77G.cjs.map +0 -1
  299. package/dist/chunk-OJRAH5VV.js.map +0 -1
  300. package/dist/chunk-PJYQMPXT.cjs +0 -234
  301. package/dist/chunk-PJYQMPXT.cjs.map +0 -1
  302. package/dist/chunk-QEM5P746.cjs.map +0 -1
  303. package/dist/chunk-TWT64BVR.js.map +0 -1
  304. package/dist/chunk-VZNSMKB7.cjs +0 -634
  305. package/dist/chunk-VZNSMKB7.cjs.map +0 -1
  306. package/dist/chunk-WEDFF5FH.js.map +0 -1
  307. package/dist/chunk-WMS63TTU.cjs.map +0 -1
  308. package/dist/chunk-XPF4VEXO.js.map +0 -1
  309. package/dist/chunk-Y3OQTZDN.js.map +0 -1
@@ -1,452 +0,0 @@
1
- 'use strict';
2
-
3
- var crypto = require('crypto');
4
- var tools = require('@mastra/core/tools');
5
- var zodToJson = require('@mastra/core/utils/zod-to-json');
6
-
7
- // src/server/handlers/responses.adapter.ts
8
- function normalizeMessageContent(content) {
9
- if (typeof content === "string") {
10
- return content;
11
- }
12
- return content.map((part) => part.text).join("");
13
- }
14
- function getMessageText(message) {
15
- const parts = Array.isArray(message.content?.parts) ? message.content.parts : [];
16
- return parts.flatMap((part) => part.type === "text" ? [part.text] : []).filter((text) => typeof text === "string").join("");
17
- }
18
- function isRecord(value) {
19
- return typeof value === "object" && value !== null && !Array.isArray(value);
20
- }
21
- function getMessageRole(message) {
22
- return message.role ?? "";
23
- }
24
- function getToolKey(toolCallId, messageId, partIndex) {
25
- return `${messageId}:${partIndex}`;
26
- }
27
- function normalizeToolParameters(schema) {
28
- if (!isRecord(schema)) {
29
- return schema;
30
- }
31
- if (isRecord(schema.json) && Object.keys(schema).length === 1) {
32
- return schema.json;
33
- }
34
- return schema;
35
- }
36
- function mapMastraToolsToResponseTools(tools$1) {
37
- if (!tools$1) {
38
- return [];
39
- }
40
- return Object.values(tools$1).flatMap((tool) => {
41
- if (!isRecord(tool)) {
42
- return [];
43
- }
44
- const name = typeof tool.id === "string" ? tool.id : typeof tool.name === "string" ? tool.name : null;
45
- if (!name) {
46
- return [];
47
- }
48
- const description = typeof tool.description === "string" ? tool.description : void 0;
49
- let parameters;
50
- if (tools.isProviderDefinedTool(tool)) {
51
- const resolvedSchema = typeof tool.inputSchema === "function" ? tool.inputSchema() : tool.inputSchema;
52
- parameters = isRecord(resolvedSchema) && "jsonSchema" in resolvedSchema ? normalizeToolParameters(resolvedSchema.jsonSchema) : void 0;
53
- } else if ("inputSchema" in tool && tool.inputSchema) {
54
- parameters = normalizeToolParameters(zodToJson.zodToJsonSchema(tool.inputSchema));
55
- }
56
- return [
57
- {
58
- type: "function",
59
- name,
60
- ...description ? { description } : {},
61
- ...parameters !== void 0 ? { parameters: JSON.parse(JSON.stringify(parameters)) } : {}
62
- }
63
- ];
64
- });
65
- }
66
- function stringifyToolPayload(value) {
67
- if (typeof value === "string") {
68
- return value;
69
- }
70
- return JSON.stringify(value ?? {});
71
- }
72
- function createOutputMessage({
73
- messageId,
74
- status,
75
- text
76
- }) {
77
- const responseStatus = status === "completed" ? "completed" : "incomplete";
78
- return {
79
- id: messageId,
80
- type: "message",
81
- role: "assistant",
82
- status: responseStatus,
83
- content: [createOutputTextPart(text)]
84
- };
85
- }
86
- function createConversationMessage({
87
- messageId,
88
- role,
89
- text
90
- }) {
91
- return {
92
- id: messageId,
93
- type: "message",
94
- role,
95
- status: "completed",
96
- content: [
97
- role === "assistant" ? createOutputTextPart(text) : {
98
- type: "input_text",
99
- text
100
- }
101
- ]
102
- };
103
- }
104
- function createFunctionCallItem({
105
- itemId,
106
- callId,
107
- name,
108
- args
109
- }) {
110
- return {
111
- id: itemId,
112
- type: "function_call",
113
- call_id: callId,
114
- name,
115
- arguments: stringifyToolPayload(args),
116
- status: "completed"
117
- };
118
- }
119
- function createFunctionCallOutputItem({ itemId, callId, output }) {
120
- return {
121
- id: itemId,
122
- type: "function_call_output",
123
- call_id: callId,
124
- output: stringifyToolPayload(output)
125
- };
126
- }
127
- function collectToolResultCallIds(messages) {
128
- const toolResultCallIds = /* @__PURE__ */ new Set();
129
- for (const message of messages) {
130
- const parts = Array.isArray(message.content?.parts) ? message.content.parts : [];
131
- for (const [partIndex, part] of parts.entries()) {
132
- if (!isRecord(part) || part.type !== "tool-invocation" || !isRecord(part.toolInvocation)) {
133
- continue;
134
- }
135
- const toolInvocation = part.toolInvocation;
136
- const toolCallId = typeof toolInvocation.toolCallId === "string" ? toolInvocation.toolCallId : getToolKey(null, message.id, partIndex);
137
- if (getMessageRole(message) === "tool" && toolInvocation.result !== void 0) {
138
- toolResultCallIds.add(toolCallId);
139
- }
140
- }
141
- }
142
- return toolResultCallIds;
143
- }
144
- function mapMastraMessageToResponseToolItems({
145
- message,
146
- toolResultCallIds,
147
- emittedCallIds,
148
- emittedResultCallIds
149
- }) {
150
- const items = [];
151
- const parts = Array.isArray(message.content?.parts) ? message.content.parts : [];
152
- for (const [partIndex, part] of parts.entries()) {
153
- if (!isRecord(part) || part.type !== "tool-invocation" || !isRecord(part.toolInvocation)) {
154
- continue;
155
- }
156
- const toolInvocation = part.toolInvocation;
157
- const toolName = typeof toolInvocation.toolName === "string" ? toolInvocation.toolName : null;
158
- const toolCallId = typeof toolInvocation.toolCallId === "string" ? toolInvocation.toolCallId : getToolKey(null, message.id, partIndex);
159
- if (getMessageRole(message) === "assistant" && toolName && !emittedCallIds.has(toolCallId)) {
160
- items.push(
161
- createFunctionCallItem({
162
- itemId: `${message.id}:${partIndex}:call`,
163
- callId: toolCallId,
164
- name: toolName,
165
- args: toolInvocation.args
166
- })
167
- );
168
- emittedCallIds.add(toolCallId);
169
- }
170
- if (toolInvocation.result !== void 0 && !emittedResultCallIds.has(toolCallId) && (getMessageRole(message) === "tool" || !toolResultCallIds.has(toolCallId))) {
171
- items.push(
172
- createFunctionCallOutputItem({
173
- itemId: `${message.id}:${partIndex}:output`,
174
- callId: toolCallId,
175
- output: toolInvocation.result
176
- })
177
- );
178
- emittedResultCallIds.add(toolCallId);
179
- }
180
- }
181
- return items;
182
- }
183
- function mapMastraMessagesToConversationItems(messages) {
184
- if (!messages.length) {
185
- return [];
186
- }
187
- const items = [];
188
- const toolResultCallIds = collectToolResultCallIds(messages);
189
- const emittedCallIds = /* @__PURE__ */ new Set();
190
- const emittedResultCallIds = /* @__PURE__ */ new Set();
191
- for (const message of messages) {
192
- items.push(
193
- ...mapMastraMessageToResponseToolItems({
194
- message,
195
- toolResultCallIds,
196
- emittedCallIds,
197
- emittedResultCallIds
198
- })
199
- );
200
- const role = getMessageRole(message);
201
- const text = getMessageText(message);
202
- if ((role === "user" || role === "system" || role === "assistant") && text) {
203
- items.push(
204
- createConversationMessage({
205
- messageId: message.id,
206
- role,
207
- text
208
- })
209
- );
210
- continue;
211
- }
212
- if (role === "assistant" && !text) {
213
- const parts = Array.isArray(message.content?.parts) ? message.content.parts : [];
214
- const hasOnlyToolInvocations = parts.every(
215
- (part) => isRecord(part) && part.type === "tool-invocation" && isRecord(part.toolInvocation)
216
- );
217
- if (hasOnlyToolInvocations) {
218
- continue;
219
- }
220
- }
221
- if (role === "tool") {
222
- continue;
223
- }
224
- }
225
- return items;
226
- }
227
- function mapMastraMessagesToResponseOutputItems({
228
- messages,
229
- outputMessageId,
230
- status,
231
- fallbackText
232
- }) {
233
- if (!messages?.length) {
234
- return [createOutputMessage({ messageId: outputMessageId, status, text: fallbackText })];
235
- }
236
- const output = [];
237
- const lastAssistantIndex = [...messages].map((message) => message.role).lastIndexOf("assistant");
238
- const toolResultCallIds = collectToolResultCallIds(messages);
239
- const emittedCallIds = /* @__PURE__ */ new Set();
240
- const emittedResultCallIds = /* @__PURE__ */ new Set();
241
- for (const [messageIndex, message] of messages.entries()) {
242
- output.push(
243
- ...mapMastraMessageToResponseToolItems({
244
- message,
245
- toolResultCallIds,
246
- emittedCallIds,
247
- emittedResultCallIds
248
- })
249
- );
250
- const text = getMessageText(message);
251
- if (getMessageRole(message) === "assistant" && text) {
252
- output.push(
253
- createOutputMessage({
254
- messageId: messageIndex === lastAssistantIndex ? outputMessageId : message.id,
255
- status,
256
- text
257
- })
258
- );
259
- }
260
- }
261
- if (!output.some((item) => item.type === "message") && fallbackText) {
262
- output.push(createOutputMessage({ messageId: outputMessageId, status, text: fallbackText }));
263
- }
264
- return output;
265
- }
266
- function createMessageId() {
267
- return `msg_${crypto.randomUUID()}`;
268
- }
269
- function mapResponseInputToExecutionMessages(input) {
270
- if (typeof input === "string") {
271
- return [{ role: "user", content: input }];
272
- }
273
- return input.map((message) => ({
274
- role: message.role === "developer" ? "system" : message.role,
275
- content: normalizeMessageContent(message.content)
276
- }));
277
- }
278
- function toResponseUsage(usage) {
279
- if (!usage) {
280
- return null;
281
- }
282
- const inputTokens = usage.inputTokens ?? usage.promptTokens ?? 0;
283
- const outputTokens = usage.outputTokens ?? usage.completionTokens ?? 0;
284
- const totalTokens = usage.totalTokens ?? inputTokens + outputTokens;
285
- return {
286
- input_tokens: inputTokens,
287
- output_tokens: outputTokens,
288
- total_tokens: totalTokens,
289
- input_tokens_details: {
290
- cached_tokens: 0
291
- },
292
- output_tokens_details: {
293
- reasoning_tokens: 0
294
- }
295
- };
296
- }
297
- function toResponseStatus(finishReason) {
298
- if (finishReason === "suspended" || finishReason === "error") {
299
- return "incomplete";
300
- }
301
- return "completed";
302
- }
303
- function createOutputTextPart(text) {
304
- return {
305
- type: "output_text",
306
- text,
307
- annotations: [],
308
- logprobs: []
309
- };
310
- }
311
- function buildCompletedResponse({
312
- responseId,
313
- outputMessageId,
314
- model,
315
- createdAt,
316
- completedAt,
317
- status,
318
- text,
319
- usage,
320
- instructions,
321
- textConfig,
322
- previousResponseId,
323
- conversationId,
324
- providerOptions,
325
- tools,
326
- store,
327
- messages
328
- }) {
329
- return {
330
- id: responseId,
331
- object: "response",
332
- created_at: createdAt,
333
- completed_at: completedAt,
334
- model,
335
- status,
336
- output: mapMastraMessagesToResponseOutputItems({
337
- messages,
338
- outputMessageId,
339
- status,
340
- fallbackText: text
341
- }),
342
- usage: toResponseUsage(usage),
343
- error: null,
344
- incomplete_details: null,
345
- instructions: instructions ?? null,
346
- text: textConfig ?? null,
347
- previous_response_id: previousResponseId ?? null,
348
- conversation_id: conversationId ?? null,
349
- providerOptions,
350
- tools,
351
- store
352
- };
353
- }
354
- function buildInProgressResponse({
355
- responseId,
356
- model,
357
- createdAt,
358
- instructions,
359
- textConfig,
360
- previousResponseId,
361
- conversationId,
362
- tools,
363
- store
364
- }) {
365
- return {
366
- id: responseId,
367
- object: "response",
368
- created_at: createdAt,
369
- completed_at: null,
370
- model,
371
- status: "in_progress",
372
- output: [],
373
- usage: null,
374
- error: null,
375
- incomplete_details: null,
376
- instructions: instructions ?? null,
377
- text: textConfig ?? null,
378
- previous_response_id: previousResponseId ?? null,
379
- conversation_id: conversationId ?? null,
380
- tools: tools ?? [],
381
- store
382
- };
383
- }
384
- function mapResponseTurnRecordToResponse(match) {
385
- return {
386
- id: match.message.id,
387
- object: "response",
388
- created_at: match.metadata.createdAt,
389
- completed_at: match.metadata.completedAt,
390
- model: match.metadata.model,
391
- status: match.metadata.status,
392
- output: mapMastraMessagesToResponseOutputItems({
393
- messages: match.messages,
394
- outputMessageId: match.message.id,
395
- status: match.metadata.status,
396
- fallbackText: getMessageText(match.message)
397
- }),
398
- usage: match.metadata.usage,
399
- error: null,
400
- incomplete_details: null,
401
- instructions: match.metadata.instructions ?? null,
402
- text: match.metadata.text ?? null,
403
- previous_response_id: match.metadata.previousResponseId ?? null,
404
- conversation_id: match.thread.id,
405
- providerOptions: match.metadata.providerOptions,
406
- tools: match.metadata.tools,
407
- store: match.metadata.store
408
- };
409
- }
410
- function formatSseEvent(event, data) {
411
- return new TextEncoder().encode(`event: ${event}
412
- data: ${JSON.stringify(data)}
413
-
414
- `);
415
- }
416
- function extractTextDelta(value) {
417
- if (typeof value !== "object" || value === null || !("type" in value)) {
418
- return null;
419
- }
420
- const chunk = value;
421
- switch (chunk.type) {
422
- case "text-delta":
423
- if (typeof chunk.payload?.text === "string") {
424
- return chunk.payload.text;
425
- }
426
- if (typeof chunk.textDelta === "string") {
427
- return chunk.textDelta;
428
- }
429
- if (typeof chunk.text === "string") {
430
- return chunk.text;
431
- }
432
- return null;
433
- default:
434
- return null;
435
- }
436
- }
437
-
438
- exports.buildCompletedResponse = buildCompletedResponse;
439
- exports.buildInProgressResponse = buildInProgressResponse;
440
- exports.createMessageId = createMessageId;
441
- exports.createOutputTextPart = createOutputTextPart;
442
- exports.extractTextDelta = extractTextDelta;
443
- exports.formatSseEvent = formatSseEvent;
444
- exports.mapMastraMessagesToConversationItems = mapMastraMessagesToConversationItems;
445
- exports.mapMastraMessagesToResponseOutputItems = mapMastraMessagesToResponseOutputItems;
446
- exports.mapMastraToolsToResponseTools = mapMastraToolsToResponseTools;
447
- exports.mapResponseInputToExecutionMessages = mapResponseInputToExecutionMessages;
448
- exports.mapResponseTurnRecordToResponse = mapResponseTurnRecordToResponse;
449
- exports.toResponseStatus = toResponseStatus;
450
- exports.toResponseUsage = toResponseUsage;
451
- //# sourceMappingURL=chunk-OJ72T77G.cjs.map
452
- //# sourceMappingURL=chunk-OJ72T77G.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/server/handlers/responses.adapter.ts"],"names":["tools","isProviderDefinedTool","zodToJsonSchema","randomUUID"],"mappings":"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","file":"chunk-OJ72T77G.cjs","sourcesContent":["import { randomUUID } from 'node:crypto';\nimport type { MastraDBMessage } from '@mastra/core/agent';\nimport { isProviderDefinedTool } from '@mastra/core/tools';\nimport { zodToJsonSchema } from '@mastra/core/utils/zod-to-json';\nimport type {\n ConversationItem,\n ResponseInputMessage,\n ResponseObject,\n ResponseOutputItem,\n ResponseTextConfig,\n ResponseTool,\n} from '../schemas/responses';\nimport type { ProviderMetadataLike, ResponseTurnRecord, UsageLike } from './responses.storage';\n\nexport type ResponseExecutionMessage = {\n role: 'system' | 'user' | 'assistant';\n content: string;\n};\n\n/**\n * Flattens Responses API message content into the plain-text shape Mastra agent\n * execution expects today.\n */\nfunction normalizeMessageContent(content: ResponseInputMessage['content']): string {\n if (typeof content === 'string') {\n return content;\n }\n\n return content.map(part => part.text).join('');\n}\n\n/**\n * Extracts the human-readable text represented by a persisted Mastra message.\n */\nfunction getMessageText(message: MastraDBMessage): string {\n const parts = Array.isArray(message.content?.parts) ? message.content.parts : [];\n return parts\n .flatMap(part => (part.type === 'text' ? [part.text] : []))\n .filter((text): text is string => typeof text === 'string')\n .join('');\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction getMessageRole(message: MastraDBMessage): string {\n return (message as { role?: string }).role ?? '';\n}\n\n/**\n * Creates a stable fallback key for tool items when a tool call id is missing\n * from the stored message payload.\n */\nfunction getToolKey(toolCallId: string | null, messageId: string, partIndex: number) {\n return toolCallId ?? `${messageId}:${partIndex}`;\n}\n\n/**\n * Normalizes tool parameter schemas so the Responses API always exposes the\n * plain JSON Schema object regardless of whether the source tool came from a\n * provider-defined tool or a Mastra/Zod tool definition.\n */\nfunction normalizeToolParameters(schema: unknown): unknown {\n if (!isRecord(schema)) {\n return schema;\n }\n\n if (isRecord(schema.json) && Object.keys(schema).length === 1) {\n return schema.json;\n }\n\n return schema;\n}\n\n/**\n * Maps configured Mastra tools into Responses API tool definitions.\n */\nexport function mapMastraToolsToResponseTools(tools: Record<string, unknown> | undefined): ResponseTool[] {\n if (!tools) {\n return [];\n }\n\n return Object.values(tools).flatMap(tool => {\n if (!isRecord(tool)) {\n return [];\n }\n\n const name = typeof tool.id === 'string' ? tool.id : typeof tool.name === 'string' ? tool.name : null;\n if (!name) {\n return [];\n }\n\n const description = typeof tool.description === 'string' ? tool.description : undefined;\n\n let parameters: unknown;\n if (isProviderDefinedTool(tool)) {\n const resolvedSchema = typeof tool.inputSchema === 'function' ? tool.inputSchema() : tool.inputSchema;\n parameters =\n isRecord(resolvedSchema) && 'jsonSchema' in resolvedSchema\n ? normalizeToolParameters(resolvedSchema.jsonSchema)\n : undefined;\n } else if ('inputSchema' in tool && tool.inputSchema) {\n parameters = normalizeToolParameters(zodToJsonSchema(tool.inputSchema as never));\n }\n\n return [\n {\n type: 'function',\n name,\n ...(description ? { description } : {}),\n ...(parameters !== undefined ? { parameters: JSON.parse(JSON.stringify(parameters)) } : {}),\n } satisfies ResponseTool,\n ];\n });\n}\n\nfunction stringifyToolPayload(value: unknown) {\n if (typeof value === 'string') {\n return value;\n }\n\n return JSON.stringify(value ?? {});\n}\n\nfunction createOutputMessage({\n messageId,\n status,\n text,\n}: {\n messageId: string;\n status: ResponseObject['status'];\n text: string;\n}) {\n const responseStatus: Extract<ResponseObject['output'][number], { type: 'message' }>['status'] =\n status === 'completed' ? 'completed' : 'incomplete';\n\n return {\n id: messageId,\n type: 'message' as const,\n role: 'assistant' as const,\n status: responseStatus,\n content: [createOutputTextPart(text)],\n };\n}\n\nfunction createConversationMessage({\n messageId,\n role,\n text,\n}: {\n messageId: string;\n role: 'system' | 'user' | 'assistant';\n text: string;\n}) {\n return {\n id: messageId,\n type: 'message' as const,\n role,\n status: 'completed' as const,\n content: [\n role === 'assistant'\n ? createOutputTextPart(text)\n : {\n type: 'input_text' as const,\n text,\n },\n ],\n };\n}\n\nfunction createFunctionCallItem({\n itemId,\n callId,\n name,\n args,\n}: {\n itemId: string;\n callId: string;\n name: string;\n args: unknown;\n}) {\n return {\n id: itemId,\n type: 'function_call' as const,\n call_id: callId,\n name,\n arguments: stringifyToolPayload(args),\n status: 'completed' as const,\n };\n}\n\nfunction createFunctionCallOutputItem({ itemId, callId, output }: { itemId: string; callId: string; output: unknown }) {\n return {\n id: itemId,\n type: 'function_call_output' as const,\n call_id: callId,\n output: stringifyToolPayload(output),\n };\n}\n\ntype ResponseToolItem = Extract<ConversationItem, { type: 'function_call' | 'function_call_output' }>;\n\n/**\n * Records which tool call ids already have dedicated tool-result messages so we can\n * avoid duplicating `function_call_output` items when assistant messages echo the\n * result inline.\n */\nfunction collectToolResultCallIds(messages: MastraDBMessage[]) {\n const toolResultCallIds = new Set<string>();\n\n for (const message of messages) {\n const parts = Array.isArray(message.content?.parts) ? message.content.parts : [];\n for (const [partIndex, part] of parts.entries()) {\n if (!isRecord(part) || part.type !== 'tool-invocation' || !isRecord(part.toolInvocation)) {\n continue;\n }\n\n const toolInvocation = part.toolInvocation;\n const toolCallId =\n typeof toolInvocation.toolCallId === 'string'\n ? toolInvocation.toolCallId\n : getToolKey(null, message.id, partIndex);\n\n if (getMessageRole(message) === 'tool' && toolInvocation.result !== undefined) {\n toolResultCallIds.add(toolCallId);\n }\n }\n }\n\n return toolResultCallIds;\n}\n\n/**\n * Maps one persisted Mastra message into the tool-related Responses items that\n * it contributes to the conversation timeline.\n */\nfunction mapMastraMessageToResponseToolItems({\n message,\n toolResultCallIds,\n emittedCallIds,\n emittedResultCallIds,\n}: {\n message: MastraDBMessage;\n toolResultCallIds: Set<string>;\n emittedCallIds: Set<string>;\n emittedResultCallIds: Set<string>;\n}): ResponseToolItem[] {\n const items: ResponseToolItem[] = [];\n const parts = Array.isArray(message.content?.parts) ? message.content.parts : [];\n\n for (const [partIndex, part] of parts.entries()) {\n if (!isRecord(part) || part.type !== 'tool-invocation' || !isRecord(part.toolInvocation)) {\n continue;\n }\n\n const toolInvocation = part.toolInvocation;\n const toolName = typeof toolInvocation.toolName === 'string' ? toolInvocation.toolName : null;\n const toolCallId =\n typeof toolInvocation.toolCallId === 'string'\n ? toolInvocation.toolCallId\n : getToolKey(null, message.id, partIndex);\n\n if (getMessageRole(message) === 'assistant' && toolName && !emittedCallIds.has(toolCallId)) {\n items.push(\n createFunctionCallItem({\n itemId: `${message.id}:${partIndex}:call`,\n callId: toolCallId,\n name: toolName,\n args: toolInvocation.args,\n }),\n );\n emittedCallIds.add(toolCallId);\n }\n\n if (\n toolInvocation.result !== undefined &&\n !emittedResultCallIds.has(toolCallId) &&\n (getMessageRole(message) === 'tool' || !toolResultCallIds.has(toolCallId))\n ) {\n items.push(\n createFunctionCallOutputItem({\n itemId: `${message.id}:${partIndex}:output`,\n callId: toolCallId,\n output: toolInvocation.result,\n }),\n );\n emittedResultCallIds.add(toolCallId);\n }\n }\n\n return items;\n}\n\n/**\n * Maps Mastra thread messages into OpenAI-style conversation items.\n */\nexport function mapMastraMessagesToConversationItems(messages: MastraDBMessage[]): ConversationItem[] {\n if (!messages.length) {\n return [];\n }\n\n const items: ConversationItem[] = [];\n const toolResultCallIds = collectToolResultCallIds(messages);\n const emittedCallIds = new Set<string>();\n const emittedResultCallIds = new Set<string>();\n\n for (const message of messages) {\n items.push(\n ...mapMastraMessageToResponseToolItems({\n message,\n toolResultCallIds,\n emittedCallIds,\n emittedResultCallIds,\n }),\n );\n\n const role = getMessageRole(message);\n const text = getMessageText(message);\n\n if ((role === 'user' || role === 'system' || role === 'assistant') && text) {\n items.push(\n createConversationMessage({\n messageId: message.id,\n role,\n text,\n }),\n );\n continue;\n }\n\n if (role === 'assistant' && !text) {\n const parts = Array.isArray(message.content?.parts) ? message.content.parts : [];\n const hasOnlyToolInvocations = parts.every(\n part => isRecord(part) && part.type === 'tool-invocation' && isRecord(part.toolInvocation),\n );\n\n if (hasOnlyToolInvocations) {\n continue;\n }\n }\n\n if (role === 'tool') {\n continue;\n }\n }\n\n return items;\n}\n\n/**\n * Maps the stored Mastra messages for one response turn back into OpenAI-style\n * `response.output` items, preserving tool/message ordering from the thread.\n */\nexport function mapMastraMessagesToResponseOutputItems({\n messages,\n outputMessageId,\n status,\n fallbackText,\n}: {\n messages: MastraDBMessage[] | undefined;\n outputMessageId: string;\n status: ResponseObject['status'];\n fallbackText: string;\n}): ResponseOutputItem[] {\n if (!messages?.length) {\n return [createOutputMessage({ messageId: outputMessageId, status, text: fallbackText })];\n }\n\n const output: ResponseOutputItem[] = [];\n const lastAssistantIndex = [...messages].map(message => message.role).lastIndexOf('assistant');\n const toolResultCallIds = collectToolResultCallIds(messages);\n const emittedCallIds = new Set<string>();\n const emittedResultCallIds = new Set<string>();\n\n for (const [messageIndex, message] of messages.entries()) {\n output.push(\n ...mapMastraMessageToResponseToolItems({\n message,\n toolResultCallIds,\n emittedCallIds,\n emittedResultCallIds,\n }),\n );\n\n const text = getMessageText(message);\n if (getMessageRole(message) === 'assistant' && text) {\n output.push(\n createOutputMessage({\n messageId: messageIndex === lastAssistantIndex ? outputMessageId : message.id,\n status,\n text,\n }),\n );\n }\n }\n\n if (!output.some(item => item.type === 'message') && fallbackText) {\n output.push(createOutputMessage({ messageId: outputMessageId, status, text: fallbackText }));\n }\n\n return output;\n}\n\n/**\n * Creates a stable assistant-message-backed response identifier.\n */\nexport function createMessageId() {\n return `msg_${randomUUID()}`;\n}\n\n/**\n * Maps Responses API input into the plain execution messages Mastra agents expect.\n */\nexport function mapResponseInputToExecutionMessages(\n input: ResponseInputMessage[] | string,\n): ResponseExecutionMessage[] {\n if (typeof input === 'string') {\n return [{ role: 'user', content: input }];\n }\n\n return input.map(message => ({\n role: message.role === 'developer' ? 'system' : message.role,\n content: normalizeMessageContent(message.content),\n }));\n}\n\n/**\n * Converts usage details to the Responses API usage shape.\n */\nexport function toResponseUsage(usage: UsageLike): ResponseObject['usage'] {\n if (!usage) {\n return null;\n }\n\n const inputTokens = usage.inputTokens ?? usage.promptTokens ?? 0;\n const outputTokens = usage.outputTokens ?? usage.completionTokens ?? 0;\n const totalTokens = usage.totalTokens ?? inputTokens + outputTokens;\n\n return {\n input_tokens: inputTokens,\n output_tokens: outputTokens,\n total_tokens: totalTokens,\n input_tokens_details: {\n cached_tokens: 0,\n },\n output_tokens_details: {\n reasoning_tokens: 0,\n },\n };\n}\n\n/**\n * Maps model finish reasons onto the Responses API status field.\n */\nexport function toResponseStatus(finishReason: string | undefined): ResponseObject['status'] {\n if (finishReason === 'suspended' || finishReason === 'error') {\n return 'incomplete';\n }\n\n return 'completed';\n}\n\n/**\n * Formats a text response part using the OpenAI-compatible Responses shape.\n */\nexport function createOutputTextPart(text: string) {\n return {\n type: 'output_text' as const,\n text,\n annotations: [] as unknown[],\n logprobs: [] as unknown[],\n };\n}\n\n/**\n * Builds a completed Responses API object from Mastra execution state.\n */\nexport function buildCompletedResponse({\n responseId,\n outputMessageId,\n model,\n createdAt,\n completedAt,\n status,\n text,\n usage,\n instructions,\n textConfig,\n previousResponseId,\n conversationId,\n providerOptions,\n tools,\n store,\n messages,\n}: {\n responseId: string;\n outputMessageId: string;\n model: string;\n createdAt: number;\n completedAt: number | null;\n status: ResponseObject['status'];\n text: string;\n usage: UsageLike;\n instructions?: string;\n textConfig?: ResponseTextConfig;\n previousResponseId?: string;\n conversationId?: string;\n providerOptions?: ProviderMetadataLike;\n tools: ResponseTool[];\n store: boolean;\n messages?: MastraDBMessage[];\n}): ResponseObject {\n return {\n id: responseId,\n object: 'response',\n created_at: createdAt,\n completed_at: completedAt,\n model,\n status,\n output: mapMastraMessagesToResponseOutputItems({\n messages,\n outputMessageId,\n status,\n fallbackText: text,\n }),\n usage: toResponseUsage(usage),\n error: null,\n incomplete_details: null,\n instructions: instructions ?? null,\n text: textConfig ?? null,\n previous_response_id: previousResponseId ?? null,\n conversation_id: conversationId ?? null,\n providerOptions,\n tools,\n store,\n };\n}\n\n/**\n * Builds the initial in-progress Responses API object emitted at stream start.\n */\nexport function buildInProgressResponse({\n responseId,\n model,\n createdAt,\n instructions,\n textConfig,\n previousResponseId,\n conversationId,\n tools,\n store,\n}: {\n responseId: string;\n model: string;\n createdAt: number;\n instructions?: string;\n textConfig?: ResponseTextConfig;\n previousResponseId?: string;\n conversationId?: string;\n store: boolean;\n tools?: ResponseTool[];\n}): ResponseObject {\n return {\n id: responseId,\n object: 'response',\n created_at: createdAt,\n completed_at: null,\n model,\n status: 'in_progress',\n output: [],\n usage: null,\n error: null,\n incomplete_details: null,\n instructions: instructions ?? null,\n text: textConfig ?? null,\n previous_response_id: previousResponseId ?? null,\n conversation_id: conversationId ?? null,\n tools: tools ?? [],\n store,\n };\n}\n\n/**\n * Reconstructs a Responses API object from a stored response-turn record.\n */\nexport function mapResponseTurnRecordToResponse(match: ResponseTurnRecord): ResponseObject {\n return {\n id: match.message.id,\n object: 'response',\n created_at: match.metadata.createdAt,\n completed_at: match.metadata.completedAt,\n model: match.metadata.model,\n status: match.metadata.status,\n output: mapMastraMessagesToResponseOutputItems({\n messages: match.messages,\n outputMessageId: match.message.id,\n status: match.metadata.status,\n fallbackText: getMessageText(match.message),\n }),\n usage: match.metadata.usage,\n error: null,\n incomplete_details: null,\n instructions: match.metadata.instructions ?? null,\n text: match.metadata.text ?? null,\n previous_response_id: match.metadata.previousResponseId ?? null,\n conversation_id: match.thread.id,\n providerOptions: match.metadata.providerOptions,\n tools: match.metadata.tools,\n store: match.metadata.store,\n };\n}\n\n/**\n * Formats an SSE event line for the streaming Responses route.\n */\nexport function formatSseEvent(event: string, data: unknown): Uint8Array {\n return new TextEncoder().encode(`event: ${event}\\ndata: ${JSON.stringify(data)}\\n\\n`);\n}\n\n/**\n * Extracts text deltas from the Mastra stream chunk variants used by the route.\n */\nexport function extractTextDelta(value: unknown): string | null {\n if (typeof value !== 'object' || value === null || !('type' in value)) {\n return null;\n }\n\n const chunk = value as { type: string; payload?: { text?: string }; textDelta?: string; text?: string };\n\n switch (chunk.type) {\n case 'text-delta':\n if (typeof chunk.payload?.text === 'string') {\n return chunk.payload.text;\n }\n\n if (typeof chunk.textDelta === 'string') {\n return chunk.textDelta;\n }\n\n if (typeof chunk.text === 'string') {\n return chunk.text;\n }\n\n return null;\n default:\n return null;\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/server/constants.ts"],"names":[],"mappings":"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","file":"chunk-OJRAH5VV.js","sourcesContent":["/**\n * Constants inlined from @mastra/core to avoid import compatibility\n * issues with older core versions that don't export them yet.\n *\n * - Reserved RequestContext keys are inlined from @mastra/core/request-context.\n * - Workspace tool constants are inlined from @mastra/core/workspace.\n */\n\nexport const MASTRA_RESOURCE_ID_KEY = 'mastra__resourceId';\n\nexport const MASTRA_THREAD_ID_KEY = 'mastra__threadId';\n\nexport const MASTRA_AUTH_TOKEN_KEY = 'mastra__authToken';\n\nexport const WORKSPACE_TOOLS_PREFIX = 'mastra_workspace' as const;\n\nexport const WORKSPACE_TOOLS = {\n FILESYSTEM: {\n READ_FILE: `${WORKSPACE_TOOLS_PREFIX}_read_file` as const,\n WRITE_FILE: `${WORKSPACE_TOOLS_PREFIX}_write_file` as const,\n EDIT_FILE: `${WORKSPACE_TOOLS_PREFIX}_edit_file` as const,\n LIST_FILES: `${WORKSPACE_TOOLS_PREFIX}_list_files` as const,\n DELETE: `${WORKSPACE_TOOLS_PREFIX}_delete` as const,\n FILE_STAT: `${WORKSPACE_TOOLS_PREFIX}_file_stat` as const,\n MKDIR: `${WORKSPACE_TOOLS_PREFIX}_mkdir` as const,\n GREP: `${WORKSPACE_TOOLS_PREFIX}_grep` as const,\n },\n SANDBOX: {\n EXECUTE_COMMAND: `${WORKSPACE_TOOLS_PREFIX}_execute_command` as const,\n },\n SEARCH: {\n SEARCH: `${WORKSPACE_TOOLS_PREFIX}_search` as const,\n INDEX: `${WORKSPACE_TOOLS_PREFIX}_index` as const,\n },\n} as const;\n\nexport type WorkspaceToolName =\n | (typeof WORKSPACE_TOOLS.FILESYSTEM)[keyof typeof WORKSPACE_TOOLS.FILESYSTEM]\n | (typeof WORKSPACE_TOOLS.SEARCH)[keyof typeof WORKSPACE_TOOLS.SEARCH]\n | (typeof WORKSPACE_TOOLS.SANDBOX)[keyof typeof WORKSPACE_TOOLS.SANDBOX];\n\n/**\n * A tool config value that may be a static boolean or a dynamic function.\n * Inlined from @mastra/core/workspace for compatibility.\n *\n * Uses `(...args: any[]) => any` for the function branch so it stays\n * assignable from all core context variants (ToolConfigContext,\n * ToolConfigWithArgsContext) without importing them.\n */\n\ntype DynamicToolConfigValue = boolean | ((...args: any[]) => any);\n\n/**\n * Configuration for a single workspace tool.\n */\nexport interface WorkspaceToolConfig {\n enabled?: DynamicToolConfigValue;\n requireApproval?: DynamicToolConfigValue;\n requireReadBeforeWrite?: DynamicToolConfigValue;\n}\n\n/**\n * Configuration for workspace tools.\n */\nexport type WorkspaceToolsConfig = {\n enabled?: DynamicToolConfigValue;\n requireApproval?: DynamicToolConfigValue;\n} & Partial<Record<WorkspaceToolName, WorkspaceToolConfig>>;\n\n/**\n * Safely resolve a dynamic config value (boolean or async function) to a boolean.\n * Falls back to `safeDefault` when no context is available or the function throws.\n */\nasync function resolveDynamicValue(\n value: DynamicToolConfigValue | undefined,\n context: { workspace: object; requestContext: Record<string, unknown> } | undefined,\n safeDefault: boolean,\n): Promise<boolean> {\n if (value === undefined) return safeDefault;\n if (typeof value === 'boolean') return value;\n if (!context) return safeDefault;\n try {\n return await value(context);\n } catch (error) {\n console.warn('[Workspace Tools] Dynamic config function threw, using safe default:', error);\n return safeDefault;\n }\n}\n\n/**\n * Resolve the effective configuration for a workspace tool.\n * Inlined from @mastra/core/workspace for compatibility.\n *\n * Dynamic function values are resolved by calling them with the provided\n * workspace and requestContext. If a function throws, safe defaults are used\n * (enabled → false, requireApproval → true, requireReadBeforeWrite → true).\n */\nexport async function resolveToolConfig(\n toolsConfig: WorkspaceToolsConfig | undefined,\n toolName: WorkspaceToolName,\n context?: { workspace: object; requestContext: Record<string, unknown> },\n): Promise<{ enabled: boolean; requireApproval: boolean; requireReadBeforeWrite?: boolean }> {\n let enabled: DynamicToolConfigValue = true;\n let requireApproval: DynamicToolConfigValue = false;\n let requireReadBeforeWrite: DynamicToolConfigValue | undefined;\n\n if (toolsConfig) {\n if (toolsConfig.enabled !== undefined) {\n enabled = toolsConfig.enabled;\n }\n if (toolsConfig.requireApproval !== undefined) {\n requireApproval = toolsConfig.requireApproval;\n }\n\n const perToolConfig = toolsConfig[toolName];\n if (perToolConfig) {\n if (perToolConfig.enabled !== undefined) {\n enabled = perToolConfig.enabled;\n }\n if (perToolConfig.requireApproval !== undefined) {\n requireApproval = perToolConfig.requireApproval;\n }\n if (perToolConfig.requireReadBeforeWrite !== undefined) {\n requireReadBeforeWrite = perToolConfig.requireReadBeforeWrite;\n }\n }\n }\n\n return {\n enabled: await resolveDynamicValue(enabled, context, false),\n requireApproval: await resolveDynamicValue(requireApproval, context, true),\n requireReadBeforeWrite:\n requireReadBeforeWrite !== undefined\n ? await resolveDynamicValue(requireReadBeforeWrite, context, true)\n : undefined,\n };\n}\n"]}