@mastra/server 1.0.4 → 1.1.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 (333) hide show
  1. package/CHANGELOG.md +194 -0
  2. package/a2a/store.d.ts +1 -0
  3. package/auth.d.ts +1 -0
  4. package/dist/{chunk-3REGEJEN.js → chunk-24SISJRB.js} +6 -6
  5. package/dist/chunk-24SISJRB.js.map +1 -0
  6. package/dist/{chunk-MPUVSOEU.cjs → chunk-2HOMKKY4.cjs} +21 -15
  7. package/dist/chunk-2HOMKKY4.cjs.map +1 -0
  8. package/dist/{chunk-HCVDHEDD.cjs → chunk-37DO73XV.cjs} +217 -167
  9. package/dist/chunk-37DO73XV.cjs.map +1 -0
  10. package/dist/{chunk-T4SPG2GP.cjs → chunk-4HFYR562.cjs} +4 -4
  11. package/dist/chunk-4HFYR562.cjs.map +1 -0
  12. package/dist/{chunk-2CYGIE3E.js → chunk-4JAEBN6N.js} +212 -86
  13. package/dist/chunk-4JAEBN6N.js.map +1 -0
  14. package/dist/{chunk-AVRO3FIN.cjs → chunk-4LVJBXI2.cjs} +97 -4
  15. package/dist/chunk-4LVJBXI2.cjs.map +1 -0
  16. package/dist/chunk-4UNYZYBB.cjs +253 -0
  17. package/dist/chunk-4UNYZYBB.cjs.map +1 -0
  18. package/dist/{chunk-CGIGPJRU.js → chunk-5P2VGES5.js} +72 -79
  19. package/dist/chunk-5P2VGES5.js.map +1 -0
  20. package/dist/{chunk-YK63KHHB.cjs → chunk-6DHJKQLP.cjs} +513 -168
  21. package/dist/chunk-6DHJKQLP.cjs.map +1 -0
  22. package/dist/{chunk-PNZQCQY4.cjs → chunk-6G2RQWKA.cjs} +15 -15
  23. package/dist/chunk-6G2RQWKA.cjs.map +1 -0
  24. package/dist/{chunk-4EYONQIW.cjs → chunk-7D3UAMQM.cjs} +4 -4
  25. package/dist/chunk-7D3UAMQM.cjs.map +1 -0
  26. package/dist/{chunk-I27H7BEB.js → chunk-7XIMPDJV.js} +9 -6
  27. package/dist/chunk-7XIMPDJV.js.map +1 -0
  28. package/dist/{chunk-2CLS2PYJ.js → chunk-7YCFHDWX.js} +398 -56
  29. package/dist/chunk-7YCFHDWX.js.map +1 -0
  30. package/dist/{chunk-33CKPQS4.cjs → chunk-A2K5ZL47.cjs} +36 -16
  31. package/dist/chunk-A2K5ZL47.cjs.map +1 -0
  32. package/dist/chunk-AAHPYUEC.cjs +211 -0
  33. package/dist/chunk-AAHPYUEC.cjs.map +1 -0
  34. package/dist/{chunk-NUO7HPOV.cjs → chunk-AN42MFD5.cjs} +235 -109
  35. package/dist/chunk-AN42MFD5.cjs.map +1 -0
  36. package/dist/{chunk-XCEQ4GQW.cjs → chunk-AO7LIZRK.cjs} +88 -99
  37. package/dist/chunk-AO7LIZRK.cjs.map +1 -0
  38. package/dist/{chunk-4DJ7EJRB.cjs → chunk-AV3VZ6S3.cjs} +25 -21
  39. package/dist/chunk-AV3VZ6S3.cjs.map +1 -0
  40. package/dist/{chunk-KKY4MSZO.js → chunk-BWINB344.js} +30 -11
  41. package/dist/chunk-BWINB344.js.map +1 -0
  42. package/dist/{chunk-GHQZIEPS.js → chunk-C4NZAUUW.js} +104 -54
  43. package/dist/chunk-C4NZAUUW.js.map +1 -0
  44. package/dist/{chunk-7S7ALPCY.js → chunk-D5VCL56B.js} +97 -5
  45. package/dist/chunk-D5VCL56B.js.map +1 -0
  46. package/dist/{chunk-XB27LCKO.js → chunk-DHDVJ5II.js} +15 -9
  47. package/dist/chunk-DHDVJ5II.js.map +1 -0
  48. package/dist/{chunk-GNCALVLC.js → chunk-ED6NQBHF.js} +23 -4
  49. package/dist/chunk-ED6NQBHF.js.map +1 -0
  50. package/dist/{chunk-5VDI75UV.js → chunk-EV5H2JQU.js} +5 -4
  51. package/dist/chunk-EV5H2JQU.js.map +1 -0
  52. package/dist/{chunk-4R2Z655M.js → chunk-F2WTCJ5C.js} +145 -67
  53. package/dist/chunk-F2WTCJ5C.js.map +1 -0
  54. package/dist/{chunk-FWSKVWS7.cjs → chunk-FRRHYZR6.cjs} +4 -4
  55. package/dist/chunk-FRRHYZR6.cjs.map +1 -0
  56. package/dist/chunk-GDWZ2R7I.js +220 -0
  57. package/dist/chunk-GDWZ2R7I.js.map +1 -0
  58. package/dist/{chunk-N4EIZSG2.js → chunk-GXUBQJ74.js} +15 -11
  59. package/dist/chunk-GXUBQJ74.js.map +1 -0
  60. package/dist/{chunk-UK4FZWNW.cjs → chunk-H4VFL22H.cjs} +52 -53
  61. package/dist/chunk-H4VFL22H.cjs.map +1 -0
  62. package/dist/chunk-H66LLFDL.js +1 -1
  63. package/dist/chunk-H66LLFDL.js.map +1 -1
  64. package/dist/{chunk-QPFYN6B5.cjs → chunk-HDGF45K7.cjs} +17 -14
  65. package/dist/chunk-HDGF45K7.cjs.map +1 -0
  66. package/dist/{chunk-P3H4AZKI.cjs → chunk-HZINLMHL.cjs} +15 -15
  67. package/dist/chunk-HZINLMHL.cjs.map +1 -0
  68. package/dist/{chunk-AV3CN5ZR.cjs → chunk-I3CJUT6J.cjs} +36 -17
  69. package/dist/chunk-I3CJUT6J.cjs.map +1 -0
  70. package/dist/{chunk-DVSCJECS.js → chunk-IS3HHGL4.js} +6 -6
  71. package/dist/chunk-IS3HHGL4.js.map +1 -0
  72. package/dist/{chunk-WJ6DNHLW.cjs → chunk-JRM3DWRM.cjs} +34 -24
  73. package/dist/chunk-JRM3DWRM.cjs.map +1 -0
  74. package/dist/{chunk-YN3FWKVQ.js → chunk-JUGGEWCR.js} +10 -13
  75. package/dist/chunk-JUGGEWCR.js.map +1 -0
  76. package/dist/{chunk-LF2ZLOFP.js → chunk-K2SXZLA3.cjs} +285 -3
  77. package/dist/chunk-K2SXZLA3.cjs.map +1 -0
  78. package/dist/{chunk-XOUK3IYU.js → chunk-K4HSW5ZF.js} +4 -4
  79. package/dist/chunk-K4HSW5ZF.js.map +1 -0
  80. package/dist/chunk-KPHPNRVH.js +651 -0
  81. package/dist/chunk-KPHPNRVH.js.map +1 -0
  82. package/dist/chunk-L6AKFVEX.cjs +678 -0
  83. package/dist/chunk-L6AKFVEX.cjs.map +1 -0
  84. package/dist/{chunk-GU4EWMZB.cjs → chunk-LFNP3ACE.js} +244 -4
  85. package/dist/chunk-LFNP3ACE.js.map +1 -0
  86. package/dist/chunk-LFTVDHOD.js +200 -0
  87. package/dist/chunk-LFTVDHOD.js.map +1 -0
  88. package/dist/{chunk-ZQ2G6QKS.cjs → chunk-MZRJNOYJ.cjs} +175 -97
  89. package/dist/chunk-MZRJNOYJ.cjs.map +1 -0
  90. package/dist/{chunk-G2AMUTU4.js → chunk-OS7SAIRA.js} +6 -6
  91. package/dist/chunk-OS7SAIRA.js.map +1 -0
  92. package/dist/{chunk-L2E5RUVT.cjs → chunk-PWXUI3OG.cjs} +15 -15
  93. package/dist/chunk-PWXUI3OG.cjs.map +1 -0
  94. package/dist/chunk-QRPQWZZU.cjs +708 -0
  95. package/dist/chunk-QRPQWZZU.cjs.map +1 -0
  96. package/dist/chunk-QWOQET2T.js +689 -0
  97. package/dist/chunk-QWOQET2T.js.map +1 -0
  98. package/dist/{chunk-EUBTCHQC.js → chunk-RIX6WEJ2.js} +4 -4
  99. package/dist/chunk-RIX6WEJ2.js.map +1 -0
  100. package/dist/{chunk-7XPMKW4Y.cjs → chunk-SONAXR2M.cjs} +12 -9
  101. package/dist/chunk-SONAXR2M.cjs.map +1 -0
  102. package/dist/{chunk-FLLJIPD4.cjs → chunk-T5KH32UA.cjs} +6 -5
  103. package/dist/chunk-T5KH32UA.cjs.map +1 -0
  104. package/dist/{chunk-3FEYUHHJ.js → chunk-TCWPL26W.js} +10 -7
  105. package/dist/chunk-TCWPL26W.js.map +1 -0
  106. package/dist/chunk-USR6JK77.js +62 -0
  107. package/dist/chunk-USR6JK77.js.map +1 -0
  108. package/dist/chunk-VX3VN7FN.cjs +1 -1
  109. package/dist/chunk-VX3VN7FN.cjs.map +1 -1
  110. package/dist/{chunk-6MP2S6VI.cjs → chunk-VXPVROQJ.cjs} +56 -48
  111. package/dist/chunk-VXPVROQJ.cjs.map +1 -0
  112. package/dist/{chunk-CLAEGIP5.cjs → chunk-WWVDNKEF.cjs} +14 -17
  113. package/dist/chunk-WWVDNKEF.cjs.map +1 -0
  114. package/dist/{chunk-5NFRDYFN.js → chunk-XKLJYRAA.js} +4 -4
  115. package/dist/chunk-XKLJYRAA.js.map +1 -0
  116. package/dist/{chunk-TMS4LS2J.js → chunk-XUSAKRLX.js} +26 -16
  117. package/dist/chunk-XUSAKRLX.js.map +1 -0
  118. package/dist/{chunk-IVGQTL3T.js → chunk-XXBURIYX.js} +36 -28
  119. package/dist/chunk-XXBURIYX.js.map +1 -0
  120. package/dist/{chunk-H34VRYSF.js → chunk-ZFHZRI6C.js} +26 -27
  121. package/dist/chunk-ZFHZRI6C.js.map +1 -0
  122. package/dist/chunk-ZKMVCV4G.cjs +71 -0
  123. package/dist/chunk-ZKMVCV4G.cjs.map +1 -0
  124. package/dist/docs/README.md +1 -1
  125. package/dist/docs/SKILL.md +1 -1
  126. package/dist/docs/SOURCE_MAP.json +1 -1
  127. package/dist/docs/server/01-custom-adapters.md +10 -10
  128. package/dist/docs/server/02-reference.md +22 -8
  129. package/dist/server/auth/helpers.d.ts +8 -1
  130. package/dist/server/auth/helpers.d.ts.map +1 -1
  131. package/dist/server/auth/index.cjs +42 -131
  132. package/dist/server/auth/index.cjs.map +1 -1
  133. package/dist/server/auth/index.js +1 -125
  134. package/dist/server/auth/index.js.map +1 -1
  135. package/dist/server/auth/path-pattern.d.ts +43 -0
  136. package/dist/server/auth/path-pattern.d.ts.map +1 -0
  137. package/dist/server/constants.d.ts +51 -0
  138. package/dist/server/constants.d.ts.map +1 -0
  139. package/dist/server/handlers/a2a.cjs +9 -9
  140. package/dist/server/handlers/a2a.d.ts.map +1 -1
  141. package/dist/server/handlers/a2a.js +1 -1
  142. package/dist/server/handlers/agent-builder.cjs +16 -16
  143. package/dist/server/handlers/agent-builder.d.ts.map +1 -1
  144. package/dist/server/handlers/agent-builder.js +1 -1
  145. package/dist/server/handlers/agent-versions.cjs +60 -0
  146. package/dist/server/handlers/agent-versions.cjs.map +1 -0
  147. package/dist/server/handlers/agent-versions.d.ts +457 -0
  148. package/dist/server/handlers/agent-versions.d.ts.map +1 -0
  149. package/dist/server/handlers/agent-versions.js +3 -0
  150. package/dist/server/handlers/agent-versions.js.map +1 -0
  151. package/dist/server/handlers/agents.cjs +40 -28
  152. package/dist/server/handlers/agents.d.ts +58 -5
  153. package/dist/server/handlers/agents.d.ts.map +1 -1
  154. package/dist/server/handlers/agents.js +1 -1
  155. package/dist/server/handlers/logs.cjs +4 -4
  156. package/dist/server/handlers/logs.d.ts.map +1 -1
  157. package/dist/server/handlers/logs.js +1 -1
  158. package/dist/server/handlers/mcp.cjs +9 -9
  159. package/dist/server/handlers/mcp.d.ts +22 -0
  160. package/dist/server/handlers/mcp.d.ts.map +1 -1
  161. package/dist/server/handlers/mcp.js +1 -1
  162. package/dist/server/handlers/memory.cjs +25 -25
  163. package/dist/server/handlers/memory.d.ts +25 -1
  164. package/dist/server/handlers/memory.d.ts.map +1 -1
  165. package/dist/server/handlers/memory.js +1 -1
  166. package/dist/server/handlers/observability.cjs +5 -5
  167. package/dist/server/handlers/observability.d.ts +1 -0
  168. package/dist/server/handlers/observability.d.ts.map +1 -1
  169. package/dist/server/handlers/observability.js +1 -1
  170. package/dist/server/handlers/processors.cjs +4 -4
  171. package/dist/server/handlers/processors.d.ts.map +1 -1
  172. package/dist/server/handlers/processors.js +1 -1
  173. package/dist/server/handlers/scores.cjs +7 -7
  174. package/dist/server/handlers/scores.d.ts.map +1 -1
  175. package/dist/server/handlers/scores.js +1 -1
  176. package/dist/server/handlers/stored-agents.cjs +6 -6
  177. package/dist/server/handlers/stored-agents.d.ts +51 -14
  178. package/dist/server/handlers/stored-agents.d.ts.map +1 -1
  179. package/dist/server/handlers/stored-agents.js +1 -1
  180. package/dist/server/handlers/system.cjs +2 -2
  181. package/dist/server/handlers/system.d.ts.map +1 -1
  182. package/dist/server/handlers/system.js +1 -1
  183. package/dist/server/handlers/tools.cjs +6 -6
  184. package/dist/server/handlers/tools.d.ts +3 -3
  185. package/dist/server/handlers/tools.d.ts.map +1 -1
  186. package/dist/server/handlers/tools.js +1 -1
  187. package/dist/server/handlers/utils.cjs +21 -5
  188. package/dist/server/handlers/utils.d.ts +26 -0
  189. package/dist/server/handlers/utils.d.ts.map +1 -1
  190. package/dist/server/handlers/utils.js +1 -1
  191. package/dist/server/handlers/vector.cjs +13 -13
  192. package/dist/server/handlers/vector.d.ts.map +1 -1
  193. package/dist/server/handlers/vector.js +1 -1
  194. package/dist/server/handlers/voice.cjs +8 -8
  195. package/dist/server/handlers/voice.d.ts.map +1 -1
  196. package/dist/server/handlers/voice.js +1 -1
  197. package/dist/server/handlers/workflows.cjs +24 -24
  198. package/dist/server/handlers/workflows.d.ts +2 -0
  199. package/dist/server/handlers/workflows.d.ts.map +1 -1
  200. package/dist/server/handlers/workflows.js +1 -1
  201. package/dist/server/handlers/workspace.cjs +80 -0
  202. package/dist/server/handlers/workspace.cjs.map +1 -0
  203. package/dist/server/handlers/workspace.d.ts +591 -0
  204. package/dist/server/handlers/workspace.d.ts.map +1 -0
  205. package/dist/server/handlers/workspace.js +3 -0
  206. package/dist/server/handlers/workspace.js.map +1 -0
  207. package/dist/server/handlers.cjs +24 -24
  208. package/dist/server/handlers.js +12 -12
  209. package/dist/server/schemas/agent-versions.d.ts +1073 -0
  210. package/dist/server/schemas/agent-versions.d.ts.map +1 -0
  211. package/dist/server/schemas/agents.d.ts +30 -19
  212. package/dist/server/schemas/agents.d.ts.map +1 -1
  213. package/dist/server/schemas/memory.d.ts +83 -31
  214. package/dist/server/schemas/memory.d.ts.map +1 -1
  215. package/dist/server/schemas/stored-agents.d.ts +270 -60
  216. package/dist/server/schemas/stored-agents.d.ts.map +1 -1
  217. package/dist/server/schemas/workspace.d.ts +1107 -0
  218. package/dist/server/schemas/workspace.d.ts.map +1 -0
  219. package/dist/server/server-adapter/index.cjs +298 -160
  220. package/dist/server/server-adapter/index.cjs.map +1 -1
  221. package/dist/server/server-adapter/index.d.ts +56 -2
  222. package/dist/server/server-adapter/index.d.ts.map +1 -1
  223. package/dist/server/server-adapter/index.js +158 -23
  224. package/dist/server/server-adapter/index.js.map +1 -1
  225. package/dist/server/server-adapter/openapi-utils.d.ts +10 -0
  226. package/dist/server/server-adapter/openapi-utils.d.ts.map +1 -1
  227. package/dist/server/server-adapter/routes/agents.d.ts.map +1 -1
  228. package/dist/server/server-adapter/routes/index.d.ts +3 -1
  229. package/dist/server/server-adapter/routes/index.d.ts.map +1 -1
  230. package/dist/server/server-adapter/routes/route-builder.d.ts +2 -1
  231. package/dist/server/server-adapter/routes/route-builder.d.ts.map +1 -1
  232. package/dist/server/server-adapter/routes/stored-agents.d.ts +1 -1
  233. package/dist/server/server-adapter/routes/stored-agents.d.ts.map +1 -1
  234. package/dist/server/server-adapter/routes/workspace.d.ts +8 -0
  235. package/dist/server/server-adapter/routes/workspace.d.ts.map +1 -0
  236. package/dist/server/utils.d.ts +13 -0
  237. package/dist/server/utils.d.ts.map +1 -1
  238. package/dist/{token-6GSAFR2W-K2BTU23I-5WBYUIGY.cjs → token-6GSAFR2W-ABXTQD64-MC4IMVOB.cjs} +9 -9
  239. package/dist/token-6GSAFR2W-ABXTQD64-MC4IMVOB.cjs.map +1 -0
  240. package/dist/{token-6GSAFR2W-VLY2XUPA-NCSASMWN.js → token-6GSAFR2W-ABXTQD64-Z6U2TA2C.js} +6 -6
  241. package/dist/token-6GSAFR2W-ABXTQD64-Z6U2TA2C.js.map +1 -0
  242. package/dist/{token-6GSAFR2W-KVDFAJ2M-EPLMGMHT.cjs → token-6GSAFR2W-F2L44NEJ-B3QIV63M.cjs} +9 -9
  243. package/dist/token-6GSAFR2W-F2L44NEJ-B3QIV63M.cjs.map +1 -0
  244. package/dist/{token-6GSAFR2W-KVDFAJ2M-VW443KIA.js → token-6GSAFR2W-F2L44NEJ-GFZ37A2V.js} +6 -6
  245. package/dist/token-6GSAFR2W-F2L44NEJ-GFZ37A2V.js.map +1 -0
  246. package/dist/{token-6GSAFR2W-VLY2XUPA-RKITWXKR.cjs → token-6GSAFR2W-WGTMOPEU-6HSZQUFZ.cjs} +9 -9
  247. package/dist/token-6GSAFR2W-WGTMOPEU-6HSZQUFZ.cjs.map +1 -0
  248. package/dist/{token-6GSAFR2W-K2BTU23I-NW33N3NU.js → token-6GSAFR2W-WGTMOPEU-JKP67ZX4.js} +6 -6
  249. package/dist/token-6GSAFR2W-WGTMOPEU-JKP67ZX4.js.map +1 -0
  250. package/dist/token-util-NEHG7TUY-4YJ4EPCL-MBTAVIJ3.js +8 -0
  251. package/dist/{token-util-NEHG7TUY-TIJ3LMSH-SGVKOKXF.js.map → token-util-NEHG7TUY-4YJ4EPCL-MBTAVIJ3.js.map} +1 -1
  252. package/dist/token-util-NEHG7TUY-4YJ4EPCL-SQ4NADRW.cjs +10 -0
  253. package/dist/{token-util-NEHG7TUY-DJYRKLRD-6TH3ODCN.cjs.map → token-util-NEHG7TUY-4YJ4EPCL-SQ4NADRW.cjs.map} +1 -1
  254. package/dist/token-util-NEHG7TUY-TV2H7N56-GGCGMPDG.js +8 -0
  255. package/dist/{token-util-NEHG7TUY-KSXDO2NO-WH6I3PH3.js.map → token-util-NEHG7TUY-TV2H7N56-GGCGMPDG.js.map} +1 -1
  256. package/dist/token-util-NEHG7TUY-TV2H7N56-R7OENTCJ.cjs +10 -0
  257. package/dist/{token-util-NEHG7TUY-KSXDO2NO-J6DEINGO.cjs.map → token-util-NEHG7TUY-TV2H7N56-R7OENTCJ.cjs.map} +1 -1
  258. package/dist/token-util-NEHG7TUY-XQP3QSPX-BL5O5N7R.cjs +10 -0
  259. package/dist/{token-util-NEHG7TUY-TIJ3LMSH-ANFISSXX.cjs.map → token-util-NEHG7TUY-XQP3QSPX-BL5O5N7R.cjs.map} +1 -1
  260. package/dist/token-util-NEHG7TUY-XQP3QSPX-YCJRRNXO.js +8 -0
  261. package/dist/{token-util-NEHG7TUY-DJYRKLRD-EACKYD4V.js.map → token-util-NEHG7TUY-XQP3QSPX-YCJRRNXO.js.map} +1 -1
  262. package/handlers/server/handlers.d.ts +1 -0
  263. package/handlers.d.ts +1 -0
  264. package/package.json +10 -8
  265. package/server-adapter.d.ts +1 -0
  266. package/dist/chunk-2CLS2PYJ.js.map +0 -1
  267. package/dist/chunk-2CYGIE3E.js.map +0 -1
  268. package/dist/chunk-33CKPQS4.cjs.map +0 -1
  269. package/dist/chunk-3FEYUHHJ.js.map +0 -1
  270. package/dist/chunk-3REGEJEN.js.map +0 -1
  271. package/dist/chunk-4DJ7EJRB.cjs.map +0 -1
  272. package/dist/chunk-4EYONQIW.cjs.map +0 -1
  273. package/dist/chunk-4R2Z655M.js.map +0 -1
  274. package/dist/chunk-5NFRDYFN.js.map +0 -1
  275. package/dist/chunk-5VDI75UV.js.map +0 -1
  276. package/dist/chunk-5W4RPVTK.cjs +0 -49
  277. package/dist/chunk-5W4RPVTK.cjs.map +0 -1
  278. package/dist/chunk-6MP2S6VI.cjs.map +0 -1
  279. package/dist/chunk-7S7ALPCY.js.map +0 -1
  280. package/dist/chunk-7XPMKW4Y.cjs.map +0 -1
  281. package/dist/chunk-AV3CN5ZR.cjs.map +0 -1
  282. package/dist/chunk-AVRO3FIN.cjs.map +0 -1
  283. package/dist/chunk-BRI4GUZ2.cjs +0 -280
  284. package/dist/chunk-BRI4GUZ2.cjs.map +0 -1
  285. package/dist/chunk-CGIGPJRU.js.map +0 -1
  286. package/dist/chunk-CLAEGIP5.cjs.map +0 -1
  287. package/dist/chunk-DVSCJECS.js.map +0 -1
  288. package/dist/chunk-EUBTCHQC.js.map +0 -1
  289. package/dist/chunk-FLLJIPD4.cjs.map +0 -1
  290. package/dist/chunk-FWSKVWS7.cjs.map +0 -1
  291. package/dist/chunk-G2AMUTU4.js.map +0 -1
  292. package/dist/chunk-GHQZIEPS.js.map +0 -1
  293. package/dist/chunk-GNCALVLC.js.map +0 -1
  294. package/dist/chunk-GU4EWMZB.cjs.map +0 -1
  295. package/dist/chunk-H34VRYSF.js.map +0 -1
  296. package/dist/chunk-HCVDHEDD.cjs.map +0 -1
  297. package/dist/chunk-I27H7BEB.js.map +0 -1
  298. package/dist/chunk-IVGQTL3T.js.map +0 -1
  299. package/dist/chunk-KKY4MSZO.js.map +0 -1
  300. package/dist/chunk-L2E5RUVT.cjs.map +0 -1
  301. package/dist/chunk-LF2ZLOFP.js.map +0 -1
  302. package/dist/chunk-MPUVSOEU.cjs.map +0 -1
  303. package/dist/chunk-N4EIZSG2.js.map +0 -1
  304. package/dist/chunk-NUO7HPOV.cjs.map +0 -1
  305. package/dist/chunk-P3H4AZKI.cjs.map +0 -1
  306. package/dist/chunk-PNZQCQY4.cjs.map +0 -1
  307. package/dist/chunk-QPFYN6B5.cjs.map +0 -1
  308. package/dist/chunk-T4SPG2GP.cjs.map +0 -1
  309. package/dist/chunk-TMS4LS2J.js.map +0 -1
  310. package/dist/chunk-UK4FZWNW.cjs.map +0 -1
  311. package/dist/chunk-WJ6DNHLW.cjs.map +0 -1
  312. package/dist/chunk-WLGJVDH4.js +0 -242
  313. package/dist/chunk-WLGJVDH4.js.map +0 -1
  314. package/dist/chunk-XB27LCKO.js.map +0 -1
  315. package/dist/chunk-XCEQ4GQW.cjs.map +0 -1
  316. package/dist/chunk-XOUK3IYU.js.map +0 -1
  317. package/dist/chunk-XWGAT2DA.js +0 -44
  318. package/dist/chunk-XWGAT2DA.js.map +0 -1
  319. package/dist/chunk-YK63KHHB.cjs.map +0 -1
  320. package/dist/chunk-YN3FWKVQ.js.map +0 -1
  321. package/dist/chunk-ZQ2G6QKS.cjs.map +0 -1
  322. package/dist/token-6GSAFR2W-K2BTU23I-5WBYUIGY.cjs.map +0 -1
  323. package/dist/token-6GSAFR2W-K2BTU23I-NW33N3NU.js.map +0 -1
  324. package/dist/token-6GSAFR2W-KVDFAJ2M-EPLMGMHT.cjs.map +0 -1
  325. package/dist/token-6GSAFR2W-KVDFAJ2M-VW443KIA.js.map +0 -1
  326. package/dist/token-6GSAFR2W-VLY2XUPA-NCSASMWN.js.map +0 -1
  327. package/dist/token-6GSAFR2W-VLY2XUPA-RKITWXKR.cjs.map +0 -1
  328. package/dist/token-util-NEHG7TUY-DJYRKLRD-6TH3ODCN.cjs +0 -10
  329. package/dist/token-util-NEHG7TUY-DJYRKLRD-EACKYD4V.js +0 -8
  330. package/dist/token-util-NEHG7TUY-KSXDO2NO-J6DEINGO.cjs +0 -10
  331. package/dist/token-util-NEHG7TUY-KSXDO2NO-WH6I3PH3.js +0 -8
  332. package/dist/token-util-NEHG7TUY-TIJ3LMSH-ANFISSXX.cjs +0 -10
  333. package/dist/token-util-NEHG7TUY-TIJ3LMSH-SGVKOKXF.js +0 -8
@@ -1,7 +1,7 @@
1
- import { validateBody } from './chunk-XWGAT2DA.js';
1
+ import { getEffectiveResourceId, getEffectiveThreadId, validateBody, validateThreadOwnership } from './chunk-USR6JK77.js';
2
2
  import { createPagePaginationSchema, paginationInfoSchema, successResponseSchema } from './chunk-HT4LP3BO.js';
3
- import { createRoute } from './chunk-7S7ALPCY.js';
4
3
  import { handleError } from './chunk-ONN5EA7E.js';
4
+ import { createRoute } from './chunk-D5VCL56B.js';
5
5
  import { HTTPException } from './chunk-6QWQZI4Q.js';
6
6
  import { __export } from './chunk-PR4QN5HX.js';
7
7
  import { generateEmptyFromSchema } from '@mastra/core/utils';
@@ -154,7 +154,9 @@ var listThreadsQuerySchema = createPagePaginationSchema(100).extend({
154
154
  ),
155
155
  orderBy: storageOrderBySchema
156
156
  });
157
- var getThreadByIdQuerySchema = optionalAgentIdQuerySchema;
157
+ var getThreadByIdQuerySchema = optionalAgentIdQuerySchema.extend({
158
+ resourceId: z.string().optional()
159
+ });
158
160
  var listMessagesQuerySchema = createPagePaginationSchema(40).extend({
159
161
  agentId: z.string().optional(),
160
162
  resourceId: z.string().optional(),
@@ -167,6 +169,12 @@ var getWorkingMemoryQuerySchema = z.object({
167
169
  resourceId: z.string().optional(),
168
170
  memoryConfig: memoryConfigSchema
169
171
  });
172
+ var deleteThreadQuerySchema = agentIdQuerySchema.extend({
173
+ resourceId: z.string().optional()
174
+ });
175
+ var deleteMessagesQuerySchema = agentIdQuerySchema.extend({
176
+ resourceId: z.string().optional()
177
+ });
170
178
  var getMemoryStatusNetworkQuerySchema = agentIdQuerySchema;
171
179
  var listThreadsNetworkQuerySchema = createPagePaginationSchema(100).extend({
172
180
  agentId: z.string().optional(),
@@ -186,7 +194,9 @@ var listThreadsNetworkQuerySchema = createPagePaginationSchema(100).extend({
186
194
  ),
187
195
  orderBy: storageOrderBySchema
188
196
  });
189
- var getThreadByIdNetworkQuerySchema = optionalAgentIdQuerySchema;
197
+ var getThreadByIdNetworkQuerySchema = optionalAgentIdQuerySchema.extend({
198
+ resourceId: z.string().optional()
199
+ });
190
200
  var listMessagesNetworkQuerySchema = createPagePaginationSchema(40).extend({
191
201
  agentId: z.string().optional(),
192
202
  resourceId: z.string().optional(),
@@ -197,8 +207,12 @@ var listMessagesNetworkQuerySchema = createPagePaginationSchema(40).extend({
197
207
  var saveMessagesNetworkQuerySchema = agentIdQuerySchema;
198
208
  var createThreadNetworkQuerySchema = agentIdQuerySchema;
199
209
  var updateThreadNetworkQuerySchema = agentIdQuerySchema;
200
- var deleteThreadNetworkQuerySchema = agentIdQuerySchema;
201
- var deleteMessagesNetworkQuerySchema = agentIdQuerySchema;
210
+ var deleteThreadNetworkQuerySchema = agentIdQuerySchema.extend({
211
+ resourceId: z.string().optional()
212
+ });
213
+ var deleteMessagesNetworkQuerySchema = agentIdQuerySchema.extend({
214
+ resourceId: z.string().optional()
215
+ });
202
216
  var memoryStatusResponseSchema = z.object({
203
217
  result: z.boolean()
204
218
  });
@@ -323,14 +337,25 @@ async function getMemoryFromContext({
323
337
  }
324
338
  }
325
339
  if (agentId && !agent) {
326
- logger.debug("Agent not found, searching agents for agent", { agentId });
340
+ logger.debug("Agent not found in registered agents, trying stored agents", { agentId });
341
+ try {
342
+ const storedAgent = await mastra.getStoredAgentById(agentId);
343
+ if (storedAgent) {
344
+ agent = storedAgent;
345
+ }
346
+ } catch (error) {
347
+ logger.debug("Error getting stored agent", error);
348
+ }
349
+ }
350
+ if (agentId && !agent) {
351
+ logger.debug("Stored agent not found, searching sub-agents", { agentId });
327
352
  const agents = mastra.listAgents();
328
353
  if (Object.keys(agents || {}).length) {
329
354
  for (const [_, ag] of Object.entries(agents)) {
330
355
  try {
331
- const agents2 = await ag.listAgents();
332
- if (agents2[agentId]) {
333
- agent = agents2[agentId];
356
+ const subAgents = await ag.listAgents({ requestContext });
357
+ if (subAgents[agentId]) {
358
+ agent = subAgents[agentId];
334
359
  break;
335
360
  }
336
361
  } catch (error) {
@@ -353,13 +378,14 @@ function getStorageFromContext({ mastra }) {
353
378
  }
354
379
  var GET_MEMORY_STATUS_ROUTE = createRoute({
355
380
  method: "GET",
356
- path: "/api/memory/status",
381
+ path: "/memory/status",
357
382
  responseType: "json",
358
383
  queryParamSchema: getMemoryStatusQuerySchema,
359
384
  responseSchema: memoryStatusResponseSchema,
360
385
  summary: "Get memory status",
361
386
  description: "Returns the current status of the memory system including configuration and health information",
362
387
  tags: ["Memory"],
388
+ requiresAuth: true,
363
389
  handler: async ({ mastra, agentId, requestContext }) => {
364
390
  try {
365
391
  const memory = await getMemoryFromContext({ mastra, agentId, requestContext });
@@ -380,13 +406,14 @@ var GET_MEMORY_STATUS_ROUTE = createRoute({
380
406
  });
381
407
  var GET_MEMORY_CONFIG_ROUTE = createRoute({
382
408
  method: "GET",
383
- path: "/api/memory/config",
409
+ path: "/memory/config",
384
410
  responseType: "json",
385
411
  queryParamSchema: getMemoryConfigQuerySchema,
386
412
  responseSchema: memoryConfigResponseSchema,
387
413
  summary: "Get memory configuration",
388
414
  description: "Returns the memory configuration for a specific agent or the system default",
389
415
  tags: ["Memory"],
416
+ requiresAuth: true,
390
417
  handler: async ({ mastra, agentId, requestContext }) => {
391
418
  try {
392
419
  const memory = await getMemoryFromContext({ mastra, agentId, requestContext });
@@ -402,18 +429,20 @@ var GET_MEMORY_CONFIG_ROUTE = createRoute({
402
429
  });
403
430
  var LIST_THREADS_ROUTE = createRoute({
404
431
  method: "GET",
405
- path: "/api/memory/threads",
432
+ path: "/memory/threads",
406
433
  responseType: "json",
407
434
  queryParamSchema: listThreadsQuerySchema,
408
435
  responseSchema: listThreadsResponseSchema,
409
436
  summary: "List memory threads",
410
437
  description: "Returns a paginated list of conversation threads with optional filtering by resource ID and/or metadata",
411
438
  tags: ["Memory"],
439
+ requiresAuth: true,
412
440
  handler: async ({ mastra, agentId, resourceId, metadata, requestContext, page, perPage, orderBy }) => {
413
441
  try {
414
- const filter = resourceId || metadata ? {} : void 0;
415
- if (resourceId) {
416
- filter.resourceId = resourceId;
442
+ const effectiveResourceId = getEffectiveResourceId(requestContext, resourceId);
443
+ const filter = effectiveResourceId || metadata ? {} : void 0;
444
+ if (effectiveResourceId) {
445
+ filter.resourceId = effectiveResourceId;
417
446
  }
418
447
  if (metadata) {
419
448
  filter.metadata = metadata;
@@ -451,7 +480,7 @@ var LIST_THREADS_ROUTE = createRoute({
451
480
  });
452
481
  var GET_THREAD_BY_ID_ROUTE = createRoute({
453
482
  method: "GET",
454
- path: "/api/memory/threads/:threadId",
483
+ path: "/memory/threads/:threadId",
455
484
  responseType: "json",
456
485
  pathParamSchema: threadIdPathParams,
457
486
  queryParamSchema: getThreadByIdQuerySchema,
@@ -459,15 +488,19 @@ var GET_THREAD_BY_ID_ROUTE = createRoute({
459
488
  summary: "Get thread by ID",
460
489
  description: "Returns details for a specific conversation thread",
461
490
  tags: ["Memory"],
462
- handler: async ({ mastra, agentId, threadId, requestContext }) => {
491
+ requiresAuth: true,
492
+ handler: async ({ mastra, agentId, threadId, resourceId, requestContext }) => {
463
493
  try {
464
- validateBody({ threadId });
494
+ const effectiveThreadId = getEffectiveThreadId(requestContext, threadId);
495
+ const effectiveResourceId = getEffectiveResourceId(requestContext, resourceId);
496
+ validateBody({ threadId: effectiveThreadId });
465
497
  const memory = await getMemoryFromContext({ mastra, agentId, requestContext });
466
498
  if (memory) {
467
- const thread = await memory.getThreadById({ threadId });
499
+ const thread = await memory.getThreadById({ threadId: effectiveThreadId });
468
500
  if (!thread) {
469
501
  throw new HTTPException(404, { message: "Thread not found" });
470
502
  }
503
+ await validateThreadOwnership(thread, effectiveResourceId);
471
504
  return thread;
472
505
  }
473
506
  if (!agentId) {
@@ -475,10 +508,11 @@ var GET_THREAD_BY_ID_ROUTE = createRoute({
475
508
  if (storage) {
476
509
  const memoryStore = await storage.getStore("memory");
477
510
  if (memoryStore) {
478
- const thread = await memoryStore.getThreadById({ threadId });
511
+ const thread = await memoryStore.getThreadById({ threadId: effectiveThreadId });
479
512
  if (!thread) {
480
513
  throw new HTTPException(404, { message: "Thread not found" });
481
514
  }
515
+ await validateThreadOwnership(thread, effectiveResourceId);
482
516
  return thread;
483
517
  }
484
518
  }
@@ -491,7 +525,7 @@ var GET_THREAD_BY_ID_ROUTE = createRoute({
491
525
  });
492
526
  var LIST_MESSAGES_ROUTE = createRoute({
493
527
  method: "GET",
494
- path: "/api/memory/threads/:threadId/messages",
528
+ path: "/memory/threads/:threadId/messages",
495
529
  responseType: "json",
496
530
  pathParamSchema: threadIdPathParams,
497
531
  queryParamSchema: listMessagesQuerySchema,
@@ -499,6 +533,7 @@ var LIST_MESSAGES_ROUTE = createRoute({
499
533
  summary: "List thread messages",
500
534
  description: "Returns a paginated list of messages in a conversation thread",
501
535
  tags: ["Memory"],
536
+ requiresAuth: true,
502
537
  handler: async ({
503
538
  mastra,
504
539
  agentId,
@@ -512,19 +547,22 @@ var LIST_MESSAGES_ROUTE = createRoute({
512
547
  requestContext
513
548
  }) => {
514
549
  try {
515
- validateBody({ threadId });
516
- if (!threadId) {
550
+ const effectiveThreadId = getEffectiveThreadId(requestContext, threadId);
551
+ const effectiveResourceId = getEffectiveResourceId(requestContext, resourceId);
552
+ validateBody({ threadId: effectiveThreadId });
553
+ if (!effectiveThreadId) {
517
554
  throw new HTTPException(400, { message: "No threadId found" });
518
555
  }
519
556
  const memory = await getMemoryFromContext({ mastra, agentId, requestContext });
520
557
  if (memory) {
521
- const thread = await memory.getThreadById({ threadId });
558
+ const thread = await memory.getThreadById({ threadId: effectiveThreadId });
522
559
  if (!thread) {
523
560
  throw new HTTPException(404, { message: "Thread not found" });
524
561
  }
562
+ await validateThreadOwnership(thread, effectiveResourceId);
525
563
  const result = await memory.recall({
526
- threadId,
527
- resourceId,
564
+ threadId: effectiveThreadId,
565
+ resourceId: effectiveResourceId,
528
566
  perPage,
529
567
  page,
530
568
  orderBy,
@@ -538,13 +576,14 @@ var LIST_MESSAGES_ROUTE = createRoute({
538
576
  if (storage) {
539
577
  const memoryStore = await storage.getStore("memory");
540
578
  if (memoryStore) {
541
- const thread = await memoryStore.getThreadById({ threadId });
579
+ const thread = await memoryStore.getThreadById({ threadId: effectiveThreadId });
542
580
  if (!thread) {
543
581
  throw new HTTPException(404, { message: "Thread not found" });
544
582
  }
583
+ await validateThreadOwnership(thread, effectiveResourceId);
545
584
  const result = await memoryStore.listMessages({
546
- threadId,
547
- resourceId,
585
+ threadId: effectiveThreadId,
586
+ resourceId: effectiveResourceId,
548
587
  perPage,
549
588
  page,
550
589
  orderBy,
@@ -563,7 +602,7 @@ var LIST_MESSAGES_ROUTE = createRoute({
563
602
  });
564
603
  var GET_WORKING_MEMORY_ROUTE = createRoute({
565
604
  method: "GET",
566
- path: "/api/memory/threads/:threadId/working-memory",
605
+ path: "/memory/threads/:threadId/working-memory",
567
606
  responseType: "json",
568
607
  pathParamSchema: threadIdPathParams,
569
608
  queryParamSchema: getWorkingMemoryQuerySchema,
@@ -571,20 +610,30 @@ var GET_WORKING_MEMORY_ROUTE = createRoute({
571
610
  summary: "Get working memory",
572
611
  description: "Returns the working memory state for a thread",
573
612
  tags: ["Memory"],
613
+ requiresAuth: true,
574
614
  handler: async ({ mastra, agentId, threadId, resourceId, requestContext, memoryConfig }) => {
575
615
  try {
616
+ const effectiveThreadId = getEffectiveThreadId(requestContext, threadId);
617
+ const effectiveResourceId = getEffectiveResourceId(requestContext, resourceId);
576
618
  const memory = await getMemoryFromContext({ mastra, agentId, requestContext });
577
- validateBody({ threadId });
619
+ validateBody({ threadId: effectiveThreadId });
578
620
  if (!memory) {
579
621
  throw new HTTPException(400, { message: "Memory is not initialized" });
580
622
  }
581
- const thread = await memory.getThreadById({ threadId });
623
+ const thread = await memory.getThreadById({ threadId: effectiveThreadId });
624
+ if (thread) {
625
+ await validateThreadOwnership(thread, effectiveResourceId);
626
+ }
582
627
  const threadExists = !!thread;
583
628
  const template = await memory.getWorkingMemoryTemplate({ memoryConfig });
584
629
  const workingMemoryTemplate = template?.format === "json" ? { ...template, content: JSON.stringify(generateEmptyFromSchema(template.content)) } : template;
585
- const workingMemory = await memory.getWorkingMemory({ threadId, resourceId, memoryConfig });
630
+ const workingMemory = await memory.getWorkingMemory({
631
+ threadId: effectiveThreadId,
632
+ resourceId: effectiveResourceId,
633
+ memoryConfig
634
+ });
586
635
  const config = memory.getMergedThreadConfig(memoryConfig || {});
587
- const source = config.workingMemory?.scope !== "thread" && resourceId ? "resource" : "thread";
636
+ const source = config.workingMemory?.scope !== "thread" && effectiveResourceId ? "resource" : "thread";
588
637
  return { workingMemory, source, workingMemoryTemplate, threadExists };
589
638
  } catch (error) {
590
639
  return handleError(error, "Error getting working memory");
@@ -593,7 +642,7 @@ var GET_WORKING_MEMORY_ROUTE = createRoute({
593
642
  });
594
643
  var SAVE_MESSAGES_ROUTE = createRoute({
595
644
  method: "POST",
596
- path: "/api/memory/save-messages",
645
+ path: "/memory/save-messages",
597
646
  responseType: "json",
598
647
  queryParamSchema: agentIdQuerySchema,
599
648
  bodySchema: saveMessagesBodySchema,
@@ -601,8 +650,10 @@ var SAVE_MESSAGES_ROUTE = createRoute({
601
650
  summary: "Save messages",
602
651
  description: "Saves new messages to memory",
603
652
  tags: ["Memory"],
653
+ requiresAuth: true,
604
654
  handler: async ({ mastra, agentId, messages, requestContext }) => {
605
655
  try {
656
+ const effectiveResourceId = getEffectiveResourceId(requestContext, void 0);
606
657
  const memory = await getMemoryFromContext({ mastra, agentId, requestContext });
607
658
  if (!memory) {
608
659
  throw new HTTPException(400, { message: "Memory is not initialized" });
@@ -619,6 +670,19 @@ var SAVE_MESSAGES_ROUTE = createRoute({
619
670
  message: `All messages must have threadId and resourceId fields. Found ${invalidMessages.length} invalid message(s).`
620
671
  });
621
672
  }
673
+ if (effectiveResourceId) {
674
+ const unauthorizedMessages = messages.filter((message) => message.resourceId !== effectiveResourceId);
675
+ if (unauthorizedMessages.length > 0) {
676
+ throw new HTTPException(403, {
677
+ message: "Access denied: cannot save messages for a different resource"
678
+ });
679
+ }
680
+ const threadIds = [...new Set(messages.map((m) => m.threadId).filter(Boolean))];
681
+ for (const threadId of threadIds) {
682
+ const thread = await memory.getThreadById({ threadId });
683
+ await validateThreadOwnership(thread, effectiveResourceId);
684
+ }
685
+ }
622
686
  const processedMessages = messages.map((message) => ({
623
687
  ...message,
624
688
  id: message.id || memory.generateId(),
@@ -633,7 +697,7 @@ var SAVE_MESSAGES_ROUTE = createRoute({
633
697
  });
634
698
  var CREATE_THREAD_ROUTE = createRoute({
635
699
  method: "POST",
636
- path: "/api/memory/threads",
700
+ path: "/memory/threads",
637
701
  responseType: "json",
638
702
  queryParamSchema: agentIdQuerySchema,
639
703
  bodySchema: createThreadBodySchema,
@@ -641,15 +705,17 @@ var CREATE_THREAD_ROUTE = createRoute({
641
705
  summary: "Create thread",
642
706
  description: "Creates a new conversation thread",
643
707
  tags: ["Memory"],
708
+ requiresAuth: true,
644
709
  handler: async ({ mastra, agentId, resourceId, title, metadata, threadId, requestContext }) => {
645
710
  try {
711
+ const effectiveResourceId = getEffectiveResourceId(requestContext, resourceId);
646
712
  const memory = await getMemoryFromContext({ mastra, agentId, requestContext });
647
713
  if (!memory) {
648
714
  throw new HTTPException(400, { message: "Memory is not initialized" });
649
715
  }
650
- validateBody({ resourceId });
716
+ validateBody({ resourceId: effectiveResourceId });
651
717
  const result = await memory.createThread({
652
- resourceId,
718
+ resourceId: effectiveResourceId,
653
719
  title,
654
720
  metadata,
655
721
  threadId
@@ -662,7 +728,7 @@ var CREATE_THREAD_ROUTE = createRoute({
662
728
  });
663
729
  var UPDATE_THREAD_ROUTE = createRoute({
664
730
  method: "PATCH",
665
- path: "/api/memory/threads/:threadId",
731
+ path: "/memory/threads/:threadId",
666
732
  responseType: "json",
667
733
  pathParamSchema: threadIdPathParams,
668
734
  queryParamSchema: agentIdQuerySchema,
@@ -671,23 +737,28 @@ var UPDATE_THREAD_ROUTE = createRoute({
671
737
  summary: "Update thread",
672
738
  description: "Updates a conversation thread",
673
739
  tags: ["Memory"],
740
+ requiresAuth: true,
674
741
  handler: async ({ mastra, agentId, threadId, title, metadata, resourceId, requestContext }) => {
675
742
  try {
743
+ const effectiveThreadId = getEffectiveThreadId(requestContext, threadId);
744
+ const effectiveResourceId = getEffectiveResourceId(requestContext, resourceId);
676
745
  const memory = await getMemoryFromContext({ mastra, agentId, requestContext });
677
746
  const updatedAt = /* @__PURE__ */ new Date();
678
- validateBody({ threadId });
747
+ validateBody({ threadId: effectiveThreadId });
679
748
  if (!memory) {
680
749
  throw new HTTPException(400, { message: "Memory is not initialized" });
681
750
  }
682
- const thread = await memory.getThreadById({ threadId });
751
+ const thread = await memory.getThreadById({ threadId: effectiveThreadId });
683
752
  if (!thread) {
684
753
  throw new HTTPException(404, { message: "Thread not found" });
685
754
  }
755
+ await validateThreadOwnership(thread, effectiveResourceId);
686
756
  const updatedThread = {
687
757
  ...thread,
688
758
  title: title || thread.title,
689
759
  metadata: metadata || thread.metadata,
690
- resourceId: resourceId || thread.resourceId,
760
+ // Don't allow changing resourceId if effectiveResourceId is set (prevents reassigning threads)
761
+ resourceId: effectiveResourceId || resourceId || thread.resourceId,
691
762
  createdAt: thread.createdAt,
692
763
  updatedAt
693
764
  };
@@ -703,26 +774,30 @@ var UPDATE_THREAD_ROUTE = createRoute({
703
774
  });
704
775
  var DELETE_THREAD_ROUTE = createRoute({
705
776
  method: "DELETE",
706
- path: "/api/memory/threads/:threadId",
777
+ path: "/memory/threads/:threadId",
707
778
  responseType: "json",
708
779
  pathParamSchema: threadIdPathParams,
709
- queryParamSchema: agentIdQuerySchema,
780
+ queryParamSchema: deleteThreadQuerySchema,
710
781
  responseSchema: deleteThreadResponseSchema,
711
782
  summary: "Delete thread",
712
783
  description: "Deletes a conversation thread",
713
784
  tags: ["Memory"],
714
- handler: async ({ mastra, agentId, threadId, requestContext }) => {
785
+ requiresAuth: true,
786
+ handler: async ({ mastra, agentId, threadId, resourceId, requestContext }) => {
715
787
  try {
716
- validateBody({ threadId });
788
+ const effectiveThreadId = getEffectiveThreadId(requestContext, threadId);
789
+ const effectiveResourceId = getEffectiveResourceId(requestContext, resourceId);
790
+ validateBody({ threadId: effectiveThreadId });
717
791
  const memory = await getMemoryFromContext({ mastra, agentId, requestContext });
718
792
  if (!memory) {
719
793
  throw new HTTPException(400, { message: "Memory is not initialized" });
720
794
  }
721
- const thread = await memory.getThreadById({ threadId });
795
+ const thread = await memory.getThreadById({ threadId: effectiveThreadId });
722
796
  if (!thread) {
723
797
  throw new HTTPException(404, { message: "Thread not found" });
724
798
  }
725
- await memory.deleteThread(threadId);
799
+ await validateThreadOwnership(thread, effectiveResourceId);
800
+ await memory.deleteThread(effectiveThreadId);
726
801
  return { result: "Thread deleted" };
727
802
  } catch (error) {
728
803
  return handleError(error, "Error deleting thread");
@@ -731,7 +806,7 @@ var DELETE_THREAD_ROUTE = createRoute({
731
806
  });
732
807
  var CLONE_THREAD_ROUTE = createRoute({
733
808
  method: "POST",
734
- path: "/api/memory/threads/:threadId/clone",
809
+ path: "/memory/threads/:threadId/clone",
735
810
  responseType: "json",
736
811
  pathParamSchema: threadIdPathParams,
737
812
  queryParamSchema: agentIdQuerySchema,
@@ -740,17 +815,26 @@ var CLONE_THREAD_ROUTE = createRoute({
740
815
  summary: "Clone thread",
741
816
  description: "Creates a copy of a conversation thread with all its messages",
742
817
  tags: ["Memory"],
818
+ requiresAuth: true,
743
819
  handler: async ({ mastra, agentId, threadId, newThreadId, resourceId, title, metadata, options, requestContext }) => {
744
820
  try {
745
- validateBody({ threadId });
821
+ const effectiveThreadId = getEffectiveThreadId(requestContext, threadId);
822
+ const effectiveResourceId = getEffectiveResourceId(requestContext, resourceId);
823
+ validateBody({ threadId: effectiveThreadId });
746
824
  const memory = await getMemoryFromContext({ mastra, agentId, requestContext });
747
825
  if (!memory) {
748
826
  throw new HTTPException(400, { message: "Memory is not initialized" });
749
827
  }
828
+ const sourceThread = await memory.getThreadById({ threadId: effectiveThreadId });
829
+ if (!sourceThread) {
830
+ throw new HTTPException(404, { message: "Source thread not found" });
831
+ }
832
+ await validateThreadOwnership(sourceThread, effectiveResourceId);
750
833
  const result = await memory.cloneThread({
751
- sourceThreadId: threadId,
834
+ sourceThreadId: effectiveThreadId,
752
835
  newThreadId,
753
- resourceId,
836
+ // Use effective resourceId for the cloned thread
837
+ resourceId: effectiveResourceId,
754
838
  title,
755
839
  metadata,
756
840
  options
@@ -763,7 +847,7 @@ var CLONE_THREAD_ROUTE = createRoute({
763
847
  });
764
848
  var UPDATE_WORKING_MEMORY_ROUTE = createRoute({
765
849
  method: "POST",
766
- path: "/api/memory/threads/:threadId/working-memory",
850
+ path: "/memory/threads/:threadId/working-memory",
767
851
  responseType: "json",
768
852
  pathParamSchema: threadIdPathParams,
769
853
  queryParamSchema: agentIdQuerySchema,
@@ -772,18 +856,27 @@ var UPDATE_WORKING_MEMORY_ROUTE = createRoute({
772
856
  summary: "Update working memory",
773
857
  description: "Updates the working memory state for a thread",
774
858
  tags: ["Memory"],
859
+ requiresAuth: true,
775
860
  handler: async ({ mastra, agentId, threadId, resourceId, memoryConfig, workingMemory, requestContext }) => {
776
861
  try {
777
- validateBody({ threadId, workingMemory });
862
+ const effectiveThreadId = getEffectiveThreadId(requestContext, threadId);
863
+ const effectiveResourceId = getEffectiveResourceId(requestContext, resourceId);
864
+ validateBody({ threadId: effectiveThreadId, workingMemory });
778
865
  const memory = await getMemoryFromContext({ mastra, agentId, requestContext });
779
866
  if (!memory) {
780
867
  throw new HTTPException(400, { message: "Memory is not initialized" });
781
868
  }
782
- const thread = await memory.getThreadById({ threadId });
869
+ const thread = await memory.getThreadById({ threadId: effectiveThreadId });
783
870
  if (!thread) {
784
871
  throw new HTTPException(404, { message: "Thread not found" });
785
872
  }
786
- await memory.updateWorkingMemory({ threadId, resourceId, workingMemory, memoryConfig });
873
+ await validateThreadOwnership(thread, effectiveResourceId);
874
+ await memory.updateWorkingMemory({
875
+ threadId: effectiveThreadId,
876
+ resourceId: effectiveResourceId,
877
+ workingMemory,
878
+ memoryConfig
879
+ });
787
880
  return { success: true };
788
881
  } catch (error) {
789
882
  return handleError(error, "Error updating working memory");
@@ -792,16 +885,18 @@ var UPDATE_WORKING_MEMORY_ROUTE = createRoute({
792
885
  });
793
886
  var DELETE_MESSAGES_ROUTE = createRoute({
794
887
  method: "POST",
795
- path: "/api/memory/messages/delete",
888
+ path: "/memory/messages/delete",
796
889
  responseType: "json",
797
- queryParamSchema: agentIdQuerySchema,
890
+ queryParamSchema: deleteMessagesQuerySchema,
798
891
  bodySchema: deleteMessagesBodySchema,
799
892
  responseSchema: deleteMessagesResponseSchema,
800
893
  summary: "Delete messages",
801
894
  description: "Deletes specific messages from memory",
802
895
  tags: ["Memory"],
803
- handler: async ({ mastra, agentId, messageIds, requestContext }) => {
896
+ requiresAuth: true,
897
+ handler: async ({ mastra, agentId, resourceId, messageIds, requestContext }) => {
804
898
  try {
899
+ const effectiveResourceId = getEffectiveResourceId(requestContext, resourceId);
805
900
  if (messageIds === void 0 || messageIds === null) {
806
901
  throw new HTTPException(400, { message: "messageIds is required" });
807
902
  }
@@ -813,7 +908,28 @@ var DELETE_MESSAGES_ROUTE = createRoute({
813
908
  } else {
814
909
  normalizedIds = [messageIds];
815
910
  }
911
+ const stringIds = normalizedIds.map((id) => typeof id === "string" ? id : id.id);
816
912
  const memory = await getMemoryFromContext({ mastra, agentId, requestContext });
913
+ if (effectiveResourceId && stringIds.length > 0) {
914
+ const storage = memory?.storage || getStorageFromContext({ mastra });
915
+ if (!storage) {
916
+ throw new HTTPException(403, { message: "Access denied: unable to verify message ownership" });
917
+ }
918
+ const memoryStore = await storage.getStore("memory");
919
+ if (!memoryStore) {
920
+ throw new HTTPException(400, { message: "Memory is not initialized" });
921
+ }
922
+ const { messages } = await memoryStore.listMessagesById({ messageIds: stringIds });
923
+ const threadIds = [...new Set(messages.map((m) => m.threadId).filter(Boolean))];
924
+ for (const threadId of threadIds) {
925
+ const thread = await memoryStore.getThreadById({ threadId });
926
+ if (thread && thread.resourceId && thread.resourceId !== effectiveResourceId) {
927
+ throw new HTTPException(403, {
928
+ message: "Access denied: message belongs to a thread owned by a different resource"
929
+ });
930
+ }
931
+ }
932
+ }
817
933
  if (memory) {
818
934
  await memory.deleteMessages(normalizedIds);
819
935
  } else if (!agentId) {
@@ -821,7 +937,6 @@ var DELETE_MESSAGES_ROUTE = createRoute({
821
937
  if (storage) {
822
938
  const memoryStore = await storage.getStore("memory");
823
939
  if (memoryStore) {
824
- const stringIds = normalizedIds.map((id) => typeof id === "string" ? id : id.id);
825
940
  await memoryStore.deleteMessages(stringIds);
826
941
  } else {
827
942
  throw new HTTPException(400, { message: "Memory is not initialized" });
@@ -841,16 +956,19 @@ var DELETE_MESSAGES_ROUTE = createRoute({
841
956
  });
842
957
  var SEARCH_MEMORY_ROUTE = createRoute({
843
958
  method: "GET",
844
- path: "/api/memory/search",
959
+ path: "/memory/search",
845
960
  responseType: "json",
846
961
  queryParamSchema: searchMemoryQuerySchema,
847
962
  responseSchema: searchMemoryResponseSchema,
848
963
  summary: "Search memory",
849
964
  description: "Searches across memory using semantic or text search",
850
965
  tags: ["Memory"],
966
+ requiresAuth: true,
851
967
  handler: async ({ mastra, agentId, searchQuery, resourceId, threadId, limit = 20, requestContext, memoryConfig }) => {
852
968
  try {
853
- validateBody({ searchQuery, resourceId });
969
+ const effectiveResourceId = getEffectiveResourceId(requestContext, resourceId);
970
+ const effectiveThreadId = getEffectiveThreadId(requestContext, threadId);
971
+ validateBody({ searchQuery, resourceId: effectiveResourceId });
854
972
  const memory = await getMemoryFromContext({ mastra, agentId, requestContext });
855
973
  if (!memory) {
856
974
  throw new HTTPException(400, { message: "Memory is not initialized" });
@@ -859,8 +977,8 @@ var SEARCH_MEMORY_ROUTE = createRoute({
859
977
  const hasSemanticRecall = !!config?.semanticRecall;
860
978
  const resourceScope = typeof config?.semanticRecall === "object" ? config?.semanticRecall?.scope !== "thread" : true;
861
979
  const searchResults = [];
862
- if (threadId && !resourceScope) {
863
- const thread = await memory.getThreadById({ threadId });
980
+ if (effectiveThreadId && !resourceScope) {
981
+ const thread = await memory.getThreadById({ threadId: effectiveThreadId });
864
982
  if (!thread) {
865
983
  return {
866
984
  results: [],
@@ -870,13 +988,12 @@ var SEARCH_MEMORY_ROUTE = createRoute({
870
988
  searchType: hasSemanticRecall ? "semantic" : "text"
871
989
  };
872
990
  }
873
- if (thread.resourceId !== resourceId) {
874
- throw new HTTPException(403, { message: "Thread does not belong to the specified resource" });
875
- }
991
+ await validateThreadOwnership(thread, effectiveResourceId);
876
992
  }
877
- if (!threadId) {
993
+ let searchThreadId = effectiveThreadId;
994
+ if (!searchThreadId) {
878
995
  const { threads } = await memory.listThreads({
879
- filter: { resourceId },
996
+ filter: { resourceId: effectiveResourceId },
880
997
  page: 0,
881
998
  perPage: 1,
882
999
  orderBy: { field: "updatedAt", direction: "DESC" }
@@ -890,7 +1007,7 @@ var SEARCH_MEMORY_ROUTE = createRoute({
890
1007
  searchType: hasSemanticRecall ? "semantic" : "text"
891
1008
  };
892
1009
  }
893
- threadId = threads[0].id;
1010
+ searchThreadId = threads[0].id;
894
1011
  }
895
1012
  const beforeRange = typeof config.semanticRecall === `boolean` ? 2 : typeof config.semanticRecall?.messageRange === `number` ? config.semanticRecall.messageRange : config.semanticRecall?.messageRange.before || 2;
896
1013
  const afterRange = typeof config.semanticRecall === `boolean` ? 2 : typeof config.semanticRecall?.messageRange === `number` ? config.semanticRecall.messageRange : config.semanticRecall?.messageRange.after || 2;
@@ -906,20 +1023,20 @@ var SEARCH_MEMORY_ROUTE = createRoute({
906
1023
  return { results: [], count: 0, query: searchQuery };
907
1024
  }
908
1025
  const result = await memory.recall({
909
- threadId,
910
- resourceId,
1026
+ threadId: searchThreadId,
1027
+ resourceId: effectiveResourceId,
911
1028
  perPage: threadConfig.lastMessages,
912
1029
  threadConfig: config,
913
1030
  vectorSearchString: threadConfig.semanticRecall && searchQuery ? searchQuery : void 0
914
1031
  });
915
1032
  const threadIds = Array.from(
916
- new Set(result.messages.map((m) => m.threadId || threadId).filter(Boolean))
1033
+ new Set(result.messages.map((m) => m.threadId || searchThreadId).filter(Boolean))
917
1034
  );
918
1035
  const fetched = await Promise.all(threadIds.map((id) => memory.getThreadById({ threadId: id })));
919
1036
  const threadMap = new Map(fetched.filter(Boolean).map((t) => [t.id, t]));
920
1037
  for (const msg of result.messages) {
921
1038
  const content = getTextContent(msg);
922
- const msgThreadId = msg.threadId || threadId;
1039
+ const msgThreadId = msg.threadId || searchThreadId;
923
1040
  const thread = threadMap.get(msgThreadId);
924
1041
  const threadMessages = (await memory.recall({ threadId: msgThreadId })).messages;
925
1042
  const messageIndex = threadMessages.findIndex((m) => m.id === msg.id);
@@ -964,29 +1081,31 @@ var SEARCH_MEMORY_ROUTE = createRoute({
964
1081
  });
965
1082
  var GET_MEMORY_STATUS_NETWORK_ROUTE = createRoute({
966
1083
  method: "GET",
967
- path: "/api/memory/network/status",
1084
+ path: "/memory/network/status",
968
1085
  responseType: "json",
969
1086
  queryParamSchema: getMemoryStatusNetworkQuerySchema,
970
1087
  responseSchema: memoryStatusResponseSchema,
971
1088
  summary: "Get memory status (network)",
972
1089
  description: "Returns the current status of the memory system (network route)",
973
1090
  tags: ["Memory - Network"],
1091
+ requiresAuth: true,
974
1092
  handler: GET_MEMORY_STATUS_ROUTE.handler
975
1093
  });
976
1094
  var LIST_THREADS_NETWORK_ROUTE = createRoute({
977
1095
  method: "GET",
978
- path: "/api/memory/network/threads",
1096
+ path: "/memory/network/threads",
979
1097
  responseType: "json",
980
1098
  queryParamSchema: listThreadsNetworkQuerySchema,
981
1099
  responseSchema: listThreadsResponseSchema,
982
1100
  summary: "List memory threads (network)",
983
1101
  description: "Returns a paginated list of conversation threads (network route)",
984
1102
  tags: ["Memory - Network"],
1103
+ requiresAuth: true,
985
1104
  handler: LIST_THREADS_ROUTE.handler
986
1105
  });
987
1106
  var GET_THREAD_BY_ID_NETWORK_ROUTE = createRoute({
988
1107
  method: "GET",
989
- path: "/api/memory/network/threads/:threadId",
1108
+ path: "/memory/network/threads/:threadId",
990
1109
  responseType: "json",
991
1110
  pathParamSchema: threadIdPathParams,
992
1111
  queryParamSchema: getThreadByIdNetworkQuerySchema,
@@ -994,11 +1113,12 @@ var GET_THREAD_BY_ID_NETWORK_ROUTE = createRoute({
994
1113
  summary: "Get thread by ID (network)",
995
1114
  description: "Returns details for a specific conversation thread (network route)",
996
1115
  tags: ["Memory - Network"],
1116
+ requiresAuth: true,
997
1117
  handler: GET_THREAD_BY_ID_ROUTE.handler
998
1118
  });
999
1119
  var LIST_MESSAGES_NETWORK_ROUTE = createRoute({
1000
1120
  method: "GET",
1001
- path: "/api/memory/network/threads/:threadId/messages",
1121
+ path: "/memory/network/threads/:threadId/messages",
1002
1122
  responseType: "json",
1003
1123
  pathParamSchema: threadIdPathParams,
1004
1124
  queryParamSchema: listMessagesNetworkQuerySchema,
@@ -1006,11 +1126,12 @@ var LIST_MESSAGES_NETWORK_ROUTE = createRoute({
1006
1126
  summary: "List thread messages (network)",
1007
1127
  description: "Returns a paginated list of messages in a conversation thread (network route)",
1008
1128
  tags: ["Memory - Network"],
1129
+ requiresAuth: true,
1009
1130
  handler: LIST_MESSAGES_ROUTE.handler
1010
1131
  });
1011
1132
  var SAVE_MESSAGES_NETWORK_ROUTE = createRoute({
1012
1133
  method: "POST",
1013
- path: "/api/memory/network/save-messages",
1134
+ path: "/memory/network/save-messages",
1014
1135
  responseType: "json",
1015
1136
  queryParamSchema: saveMessagesNetworkQuerySchema,
1016
1137
  bodySchema: saveMessagesBodySchema,
@@ -1018,11 +1139,12 @@ var SAVE_MESSAGES_NETWORK_ROUTE = createRoute({
1018
1139
  summary: "Save messages (network)",
1019
1140
  description: "Saves new messages to memory (network route)",
1020
1141
  tags: ["Memory - Network"],
1142
+ requiresAuth: true,
1021
1143
  handler: SAVE_MESSAGES_ROUTE.handler
1022
1144
  });
1023
1145
  var CREATE_THREAD_NETWORK_ROUTE = createRoute({
1024
1146
  method: "POST",
1025
- path: "/api/memory/network/threads",
1147
+ path: "/memory/network/threads",
1026
1148
  responseType: "json",
1027
1149
  queryParamSchema: createThreadNetworkQuerySchema,
1028
1150
  bodySchema: createThreadBodySchema,
@@ -1030,11 +1152,12 @@ var CREATE_THREAD_NETWORK_ROUTE = createRoute({
1030
1152
  summary: "Create thread (network)",
1031
1153
  description: "Creates a new conversation thread (network route)",
1032
1154
  tags: ["Memory - Network"],
1155
+ requiresAuth: true,
1033
1156
  handler: CREATE_THREAD_ROUTE.handler
1034
1157
  });
1035
1158
  var UPDATE_THREAD_NETWORK_ROUTE = createRoute({
1036
1159
  method: "PATCH",
1037
- path: "/api/memory/network/threads/:threadId",
1160
+ path: "/memory/network/threads/:threadId",
1038
1161
  responseType: "json",
1039
1162
  pathParamSchema: threadIdPathParams,
1040
1163
  queryParamSchema: updateThreadNetworkQuerySchema,
@@ -1043,11 +1166,12 @@ var UPDATE_THREAD_NETWORK_ROUTE = createRoute({
1043
1166
  summary: "Update thread (network)",
1044
1167
  description: "Updates a conversation thread (network route)",
1045
1168
  tags: ["Memory - Network"],
1169
+ requiresAuth: true,
1046
1170
  handler: UPDATE_THREAD_ROUTE.handler
1047
1171
  });
1048
1172
  var DELETE_THREAD_NETWORK_ROUTE = createRoute({
1049
1173
  method: "DELETE",
1050
- path: "/api/memory/network/threads/:threadId",
1174
+ path: "/memory/network/threads/:threadId",
1051
1175
  responseType: "json",
1052
1176
  pathParamSchema: threadIdPathParams,
1053
1177
  queryParamSchema: deleteThreadNetworkQuerySchema,
@@ -1055,11 +1179,12 @@ var DELETE_THREAD_NETWORK_ROUTE = createRoute({
1055
1179
  summary: "Delete thread (network)",
1056
1180
  description: "Deletes a conversation thread (network route)",
1057
1181
  tags: ["Memory - Network"],
1182
+ requiresAuth: true,
1058
1183
  handler: DELETE_THREAD_ROUTE.handler
1059
1184
  });
1060
1185
  var DELETE_MESSAGES_NETWORK_ROUTE = createRoute({
1061
1186
  method: "POST",
1062
- path: "/api/memory/network/messages/delete",
1187
+ path: "/memory/network/messages/delete",
1063
1188
  responseType: "json",
1064
1189
  queryParamSchema: deleteMessagesNetworkQuerySchema,
1065
1190
  bodySchema: deleteMessagesBodySchema,
@@ -1067,9 +1192,10 @@ var DELETE_MESSAGES_NETWORK_ROUTE = createRoute({
1067
1192
  summary: "Delete messages (network)",
1068
1193
  description: "Deletes specific messages from memory (network route)",
1069
1194
  tags: ["Memory - Network"],
1195
+ requiresAuth: true,
1070
1196
  handler: DELETE_MESSAGES_ROUTE.handler
1071
1197
  });
1072
1198
 
1073
1199
  export { CLONE_THREAD_ROUTE, CREATE_THREAD_NETWORK_ROUTE, CREATE_THREAD_ROUTE, DELETE_MESSAGES_NETWORK_ROUTE, DELETE_MESSAGES_ROUTE, DELETE_THREAD_NETWORK_ROUTE, DELETE_THREAD_ROUTE, GET_MEMORY_CONFIG_ROUTE, GET_MEMORY_STATUS_NETWORK_ROUTE, GET_MEMORY_STATUS_ROUTE, GET_THREAD_BY_ID_NETWORK_ROUTE, GET_THREAD_BY_ID_ROUTE, GET_WORKING_MEMORY_ROUTE, LIST_MESSAGES_NETWORK_ROUTE, LIST_MESSAGES_ROUTE, LIST_THREADS_NETWORK_ROUTE, LIST_THREADS_ROUTE, SAVE_MESSAGES_NETWORK_ROUTE, SAVE_MESSAGES_ROUTE, SEARCH_MEMORY_ROUTE, UPDATE_THREAD_NETWORK_ROUTE, UPDATE_THREAD_ROUTE, UPDATE_WORKING_MEMORY_ROUTE, getTextContent, memory_exports };
1074
- //# sourceMappingURL=chunk-2CYGIE3E.js.map
1075
- //# sourceMappingURL=chunk-2CYGIE3E.js.map
1200
+ //# sourceMappingURL=chunk-4JAEBN6N.js.map
1201
+ //# sourceMappingURL=chunk-4JAEBN6N.js.map