@mastra/server 1.0.4 → 1.1.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (333) hide show
  1. package/CHANGELOG.md +169 -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-UK4FZWNW.cjs → chunk-2HAVULC2.cjs} +52 -53
  7. package/dist/chunk-2HAVULC2.cjs.map +1 -0
  8. package/dist/{chunk-MPUVSOEU.cjs → chunk-2HOMKKY4.cjs} +21 -15
  9. package/dist/chunk-2HOMKKY4.cjs.map +1 -0
  10. package/dist/{chunk-HCVDHEDD.cjs → chunk-37DO73XV.cjs} +217 -167
  11. package/dist/chunk-37DO73XV.cjs.map +1 -0
  12. package/dist/chunk-3AZY5AWI.js +689 -0
  13. package/dist/chunk-3AZY5AWI.js.map +1 -0
  14. package/dist/{chunk-KKY4MSZO.js → chunk-3OIJLD3O.js} +30 -11
  15. package/dist/chunk-3OIJLD3O.js.map +1 -0
  16. package/dist/{chunk-2CLS2PYJ.js → chunk-3QUACCLU.js} +398 -56
  17. package/dist/chunk-3QUACCLU.js.map +1 -0
  18. package/dist/{chunk-T4SPG2GP.cjs → chunk-4HFYR562.cjs} +4 -4
  19. package/dist/chunk-4HFYR562.cjs.map +1 -0
  20. package/dist/{chunk-2CYGIE3E.js → chunk-4JAEBN6N.js} +212 -86
  21. package/dist/chunk-4JAEBN6N.js.map +1 -0
  22. package/dist/{chunk-AVRO3FIN.cjs → chunk-4LVJBXI2.cjs} +97 -4
  23. package/dist/chunk-4LVJBXI2.cjs.map +1 -0
  24. package/dist/{chunk-PNZQCQY4.cjs → chunk-6G2RQWKA.cjs} +15 -15
  25. package/dist/chunk-6G2RQWKA.cjs.map +1 -0
  26. package/dist/chunk-6KC345IN.cjs +708 -0
  27. package/dist/chunk-6KC345IN.cjs.map +1 -0
  28. package/dist/{chunk-4EYONQIW.cjs → chunk-7D3UAMQM.cjs} +4 -4
  29. package/dist/chunk-7D3UAMQM.cjs.map +1 -0
  30. package/dist/{chunk-I27H7BEB.js → chunk-7XIMPDJV.js} +9 -6
  31. package/dist/chunk-7XIMPDJV.js.map +1 -0
  32. package/dist/{chunk-33CKPQS4.cjs → chunk-A2K5ZL47.cjs} +36 -16
  33. package/dist/chunk-A2K5ZL47.cjs.map +1 -0
  34. package/dist/chunk-AAHPYUEC.cjs +211 -0
  35. package/dist/chunk-AAHPYUEC.cjs.map +1 -0
  36. package/dist/{chunk-NUO7HPOV.cjs → chunk-AN42MFD5.cjs} +235 -109
  37. package/dist/chunk-AN42MFD5.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-GHQZIEPS.js → chunk-C4NZAUUW.js} +104 -54
  41. package/dist/chunk-C4NZAUUW.js.map +1 -0
  42. package/dist/{chunk-7S7ALPCY.js → chunk-D5VCL56B.js} +97 -5
  43. package/dist/chunk-D5VCL56B.js.map +1 -0
  44. package/dist/chunk-DD7LYNHB.js +596 -0
  45. package/dist/chunk-DD7LYNHB.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-YK63KHHB.cjs → chunk-EKFYZUPC.cjs} +513 -168
  51. package/dist/chunk-EKFYZUPC.cjs.map +1 -0
  52. package/dist/{chunk-5VDI75UV.js → chunk-EV5H2JQU.js} +5 -4
  53. package/dist/chunk-EV5H2JQU.js.map +1 -0
  54. package/dist/{chunk-4R2Z655M.js → chunk-F2WTCJ5C.js} +145 -67
  55. package/dist/chunk-F2WTCJ5C.js.map +1 -0
  56. package/dist/{chunk-H34VRYSF.js → chunk-FCPLBTHB.js} +26 -27
  57. package/dist/chunk-FCPLBTHB.js.map +1 -0
  58. package/dist/{chunk-IVGQTL3T.js → chunk-FQX5SQO7.js} +36 -28
  59. package/dist/chunk-FQX5SQO7.js.map +1 -0
  60. package/dist/{chunk-FWSKVWS7.cjs → chunk-FRRHYZR6.cjs} +4 -4
  61. package/dist/chunk-FRRHYZR6.cjs.map +1 -0
  62. package/dist/{chunk-YN3FWKVQ.js → chunk-GUG6KRAJ.js} +10 -13
  63. package/dist/chunk-GUG6KRAJ.js.map +1 -0
  64. package/dist/{chunk-N4EIZSG2.js → chunk-GXUBQJ74.js} +15 -11
  65. package/dist/chunk-GXUBQJ74.js.map +1 -0
  66. package/dist/chunk-H66LLFDL.js +1 -1
  67. package/dist/chunk-H66LLFDL.js.map +1 -1
  68. package/dist/{chunk-QPFYN6B5.cjs → chunk-HDGF45K7.cjs} +17 -14
  69. package/dist/chunk-HDGF45K7.cjs.map +1 -0
  70. package/dist/{chunk-P3H4AZKI.cjs → chunk-HZINLMHL.cjs} +15 -15
  71. package/dist/chunk-HZINLMHL.cjs.map +1 -0
  72. package/dist/{chunk-DVSCJECS.js → chunk-IS3HHGL4.js} +6 -6
  73. package/dist/chunk-IS3HHGL4.js.map +1 -0
  74. package/dist/{chunk-XCEQ4GQW.cjs → chunk-JLFFAYTC.cjs} +53 -90
  75. package/dist/chunk-JLFFAYTC.cjs.map +1 -0
  76. package/dist/{chunk-WJ6DNHLW.cjs → chunk-JRM3DWRM.cjs} +34 -24
  77. package/dist/chunk-JRM3DWRM.cjs.map +1 -0
  78. package/dist/{chunk-LF2ZLOFP.js → chunk-K2SXZLA3.cjs} +285 -3
  79. package/dist/chunk-K2SXZLA3.cjs.map +1 -0
  80. package/dist/{chunk-XOUK3IYU.js → chunk-K4HSW5ZF.js} +4 -4
  81. package/dist/chunk-K4HSW5ZF.js.map +1 -0
  82. package/dist/{chunk-GU4EWMZB.cjs → chunk-LFNP3ACE.js} +244 -4
  83. package/dist/chunk-LFNP3ACE.js.map +1 -0
  84. package/dist/chunk-LFTVDHOD.js +200 -0
  85. package/dist/chunk-LFTVDHOD.js.map +1 -0
  86. package/dist/{chunk-ZQ2G6QKS.cjs → chunk-MZRJNOYJ.cjs} +175 -97
  87. package/dist/chunk-MZRJNOYJ.cjs.map +1 -0
  88. package/dist/{chunk-G2AMUTU4.js → chunk-OS7SAIRA.js} +6 -6
  89. package/dist/chunk-OS7SAIRA.js.map +1 -0
  90. package/dist/{chunk-L2E5RUVT.cjs → chunk-PWXUI3OG.cjs} +15 -15
  91. package/dist/chunk-PWXUI3OG.cjs.map +1 -0
  92. package/dist/{chunk-CLAEGIP5.cjs → chunk-QOVLJFLX.cjs} +14 -17
  93. package/dist/chunk-QOVLJFLX.cjs.map +1 -0
  94. package/dist/chunk-QXDNFBJQ.js +220 -0
  95. package/dist/chunk-QXDNFBJQ.js.map +1 -0
  96. package/dist/{chunk-EUBTCHQC.js → chunk-RIX6WEJ2.js} +4 -4
  97. package/dist/chunk-RIX6WEJ2.js.map +1 -0
  98. package/dist/{chunk-CGIGPJRU.js → chunk-RW66MHXI.js} +37 -70
  99. package/dist/chunk-RW66MHXI.js.map +1 -0
  100. package/dist/chunk-S4SLHUJ7.cjs +253 -0
  101. package/dist/chunk-S4SLHUJ7.cjs.map +1 -0
  102. package/dist/{chunk-7XPMKW4Y.cjs → chunk-SONAXR2M.cjs} +12 -9
  103. package/dist/chunk-SONAXR2M.cjs.map +1 -0
  104. package/dist/{chunk-FLLJIPD4.cjs → chunk-T5KH32UA.cjs} +6 -5
  105. package/dist/chunk-T5KH32UA.cjs.map +1 -0
  106. package/dist/{chunk-3FEYUHHJ.js → chunk-TCWPL26W.js} +10 -7
  107. package/dist/chunk-TCWPL26W.js.map +1 -0
  108. package/dist/chunk-TGDBGIDA.cjs +623 -0
  109. package/dist/chunk-TGDBGIDA.cjs.map +1 -0
  110. package/dist/chunk-USR6JK77.js +62 -0
  111. package/dist/chunk-USR6JK77.js.map +1 -0
  112. package/dist/{chunk-6MP2S6VI.cjs → chunk-VNHOYZ56.cjs} +56 -48
  113. package/dist/chunk-VNHOYZ56.cjs.map +1 -0
  114. package/dist/chunk-VX3VN7FN.cjs +1 -1
  115. package/dist/chunk-VX3VN7FN.cjs.map +1 -1
  116. package/dist/{chunk-AV3CN5ZR.cjs → chunk-WHC6S3VY.cjs} +36 -17
  117. package/dist/chunk-WHC6S3VY.cjs.map +1 -0
  118. package/dist/{chunk-5NFRDYFN.js → chunk-XKLJYRAA.js} +4 -4
  119. package/dist/chunk-XKLJYRAA.js.map +1 -0
  120. package/dist/{chunk-TMS4LS2J.js → chunk-XUSAKRLX.js} +26 -16
  121. package/dist/chunk-XUSAKRLX.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 +479 -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 +33 -5
  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 +1646 -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 +66 -8
  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 +9 -7
  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
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/server/schemas/stored-agents.ts","../src/server/schemas/agent-versions.ts","../src/server/handlers/agent-versions.ts"],"names":["z","createPagePaginationSchema","paginationInfoSchema","createRoute","HTTPException","handleError"],"mappings":"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","file":"chunk-TGDBGIDA.cjs","sourcesContent":["import z from 'zod';\nimport { paginationInfoSchema, createPagePaginationSchema } from './common';\n\n// ============================================================================\n// Path Parameter Schemas\n// ============================================================================\n\n/**\n * Path parameter for stored agent ID\n */\nexport const storedAgentIdPathParams = z.object({\n storedAgentId: z.string().describe('Unique identifier for the stored agent'),\n});\n\n// ============================================================================\n// Query Parameter Schemas\n// ============================================================================\n\n/**\n * Storage order by configuration\n */\nconst storageOrderBySchema = z.object({\n field: z.enum(['createdAt', 'updatedAt']).optional(),\n direction: z.enum(['ASC', 'DESC']).optional(),\n});\n\n/**\n * GET /stored/agents - List stored agents\n */\nexport const listStoredAgentsQuerySchema = createPagePaginationSchema(100).extend({\n orderBy: storageOrderBySchema.optional(),\n ownerId: z.string().optional().describe('Filter agents by owner identifier'),\n metadata: z.record(z.string(), z.unknown()).optional().describe('Filter agents by metadata key-value pairs'),\n});\n\n// ============================================================================\n// Body Parameter Schemas\n// ============================================================================\n\n/**\n * Scorer config schema with optional sampling\n */\nconst scorerConfigSchema = z.object({\n sampling: z\n .object({\n type: z.enum(['ratio', 'count']),\n rate: z.number().optional(),\n count: z.number().optional(),\n })\n .optional(),\n});\n\n/**\n * Base stored agent schema (shared fields)\n */\nconst storedAgentBaseSchema = z.object({\n name: z.string().describe('Name of the agent'),\n description: z.string().optional().describe('Description of the agent'),\n instructions: z.string().describe('System instructions for the agent'),\n model: z.record(z.string(), z.unknown()).describe('Model configuration (provider, name, etc.)'),\n tools: z.array(z.string()).optional().describe('Array of tool keys to resolve from Mastra registry'),\n defaultOptions: z.record(z.string(), z.unknown()).optional().describe('Default options for generate/stream calls'),\n workflows: z.array(z.string()).optional().describe('Array of workflow keys to resolve from Mastra registry'),\n agents: z.array(z.string()).optional().describe('Array of agent keys to resolve from Mastra registry'),\n integrationTools: z\n .array(z.string())\n .optional()\n .describe('Array of specific integration tool IDs (format: provider_toolkitSlug_toolSlug)'),\n inputProcessors: z.array(z.record(z.string(), z.unknown())).optional().describe('Input processor configurations'),\n outputProcessors: z.array(z.record(z.string(), z.unknown())).optional().describe('Output processor configurations'),\n memory: z.string().optional().describe('Memory key to resolve from Mastra registry'),\n scorers: z.record(z.string(), scorerConfigSchema).optional().describe('Scorer keys with optional sampling config'),\n metadata: z.record(z.string(), z.unknown()).optional().describe('Additional metadata for the agent'),\n ownerId: z.string().optional().describe('Owner identifier for multi-tenant filtering'),\n});\n\n/**\n * POST /stored/agents - Create stored agent body\n */\nexport const createStoredAgentBodySchema = storedAgentBaseSchema.extend({\n id: z.string().describe('Unique identifier for the agent'),\n});\n\n/**\n * PATCH /stored/agents/:storedAgentId - Update stored agent body\n */\nexport const updateStoredAgentBodySchema = storedAgentBaseSchema.partial();\n\n// ============================================================================\n// Response Schemas\n// ============================================================================\n\n/**\n * Stored agent object schema (full response)\n */\nexport const storedAgentSchema = storedAgentBaseSchema.extend({\n id: z.string(),\n ownerId: z.string().optional(),\n createdAt: z.date(),\n updatedAt: z.date(),\n});\n\n/**\n * Response for GET /stored/agents\n */\nexport const listStoredAgentsResponseSchema = paginationInfoSchema.extend({\n agents: z.array(storedAgentSchema),\n});\n\n/**\n * Response for GET /stored/agents/:storedAgentId\n */\nexport const getStoredAgentResponseSchema = storedAgentSchema;\n\n/**\n * Response for POST /stored/agents\n */\nexport const createStoredAgentResponseSchema = storedAgentSchema;\n\n/**\n * Response for PATCH /stored/agents/:storedAgentId\n */\nexport const updateStoredAgentResponseSchema = storedAgentSchema;\n\n/**\n * Response for DELETE /stored/agents/:storedAgentId\n */\nexport const deleteStoredAgentResponseSchema = z.object({\n success: z.boolean(),\n message: z.string(),\n});\n","import z from 'zod';\nimport { paginationInfoSchema, createPagePaginationSchema } from './common';\nimport { storedAgentSchema } from './stored-agents';\n\n// ============================================================================\n// Path Parameter Schemas\n// ============================================================================\n\n/**\n * Path parameters for agent version routes\n */\nexport const agentVersionPathParams = z.object({\n agentId: z.string().describe('Unique identifier for the stored agent'),\n});\n\n/**\n * Path parameters for specific version routes\n */\nexport const versionIdPathParams = z.object({\n agentId: z.string().describe('Unique identifier for the stored agent'),\n versionId: z.string().describe('Unique identifier for the version (UUID)'),\n});\n\n// ============================================================================\n// Query Parameter Schemas\n// ============================================================================\n\n/**\n * Version order by configuration\n */\nconst versionOrderBySchema = z.object({\n field: z.enum(['versionNumber', 'createdAt']).optional(),\n direction: z.enum(['ASC', 'DESC']).optional(),\n});\n\n/**\n * GET /stored/agents/:agentId/versions - List versions query params\n */\nexport const listVersionsQuerySchema = createPagePaginationSchema(20).extend({\n orderBy: versionOrderBySchema.optional(),\n});\n\n/**\n * GET /stored/agents/:agentId/versions/compare - Compare versions query params\n */\nexport const compareVersionsQuerySchema = z.object({\n from: z.string().describe('Version ID (UUID) to compare from'),\n to: z.string().describe('Version ID (UUID) to compare to'),\n});\n\n// ============================================================================\n// Body Parameter Schemas\n// ============================================================================\n\n/**\n * POST /stored/agents/:agentId/versions - Create version body\n */\nexport const createVersionBodySchema = z.object({\n name: z.string().max(100).optional().describe('Optional vanity name for this version'),\n changeMessage: z.string().max(500).optional().describe('Optional message describing the changes'),\n});\n\n// ============================================================================\n// Response Schemas\n// ============================================================================\n\n/**\n * Agent version object schema (full response)\n */\nexport const agentVersionSchema = z.object({\n id: z.string().describe('Unique identifier for the version (UUID)'),\n agentId: z.string().describe('ID of the agent this version belongs to'),\n versionNumber: z.number().describe('Sequential version number (1, 2, 3, ...)'),\n name: z.string().optional().describe('Optional vanity name for this version'),\n snapshot: storedAgentSchema.describe('Full agent configuration snapshot'),\n changedFields: z.array(z.string()).optional().describe('Array of field names that changed from the previous version'),\n changeMessage: z.string().optional().describe('Optional message describing the changes'),\n createdAt: z.date().describe('When this version was created'),\n});\n\n/**\n * Response for GET /stored/agents/:agentId/versions\n */\nexport const listVersionsResponseSchema = paginationInfoSchema.extend({\n versions: z.array(agentVersionSchema),\n});\n\n/**\n * Response for GET /stored/agents/:agentId/versions/:versionId\n */\nexport const getVersionResponseSchema = agentVersionSchema;\n\n/**\n * Response for POST /stored/agents/:agentId/versions\n */\nexport const createVersionResponseSchema = agentVersionSchema;\n\n/**\n * Response for POST /stored/agents/:agentId/versions/:versionId/activate\n */\nexport const activateVersionResponseSchema = z.object({\n success: z.boolean(),\n message: z.string(),\n activeVersionId: z.string(),\n});\n\n/**\n * Response for POST /stored/agents/:agentId/versions/:versionId/restore\n */\nexport const restoreVersionResponseSchema = agentVersionSchema.describe(\n 'The newly created version from the restored snapshot',\n);\n\n/**\n * Response for DELETE /stored/agents/:agentId/versions/:versionId\n */\nexport const deleteVersionResponseSchema = z.object({\n success: z.boolean(),\n message: z.string(),\n});\n\n/**\n * Single diff entry for version comparison\n */\nexport const versionDiffEntrySchema = z.object({\n field: z.string().describe('The field path that changed'),\n previousValue: z.unknown().describe('The value in the \"from\" version'),\n currentValue: z.unknown().describe('The value in the \"to\" version'),\n});\n\n/**\n * Response for GET /stored/agents/:agentId/versions/compare\n */\nexport const compareVersionsResponseSchema = z.object({\n diffs: z.array(versionDiffEntrySchema).describe('List of differences between versions'),\n fromVersion: agentVersionSchema.describe('The source version'),\n toVersion: agentVersionSchema.describe('The target version'),\n});\n","import { HTTPException } from '../http-exception';\nimport {\n agentVersionPathParams,\n versionIdPathParams,\n listVersionsQuerySchema,\n createVersionBodySchema,\n compareVersionsQuerySchema,\n listVersionsResponseSchema,\n getVersionResponseSchema,\n createVersionResponseSchema,\n activateVersionResponseSchema,\n restoreVersionResponseSchema,\n deleteVersionResponseSchema,\n compareVersionsResponseSchema,\n} from '../schemas/agent-versions';\nimport { createRoute } from '../server-adapter/routes/route-builder';\n\nimport { handleError } from './error';\n\n// Default maximum versions per agent (can be made configurable in the future)\nexport const DEFAULT_MAX_VERSIONS_PER_AGENT = 50;\n\n// ============================================================================\n// Helper Functions (exported for use in stored-agents.ts)\n// ============================================================================\n\n/**\n * Deep equality comparison for comparing two values.\n * Handles primitives, arrays, objects, and Date instances.\n * TODO: Move to a shared utils package that gets bundled into each package\n */\nfunction deepEqual(a: unknown, b: unknown): boolean {\n // Handle identical references and primitives\n if (a === b) return true;\n\n // Handle null/undefined\n if (a == null || b == null) return a === b;\n\n // Handle different types\n if (typeof a !== typeof b) return false;\n\n // Handle arrays\n if (Array.isArray(a) && Array.isArray(b)) {\n if (a.length !== b.length) return false;\n return a.every((item, index) => deepEqual(item, b[index]));\n }\n\n // Handle dates (must check before generic objects since Date is also an object)\n if (a instanceof Date && b instanceof Date) {\n return a.getTime() === b.getTime();\n }\n\n // Handle objects (after Date check to avoid treating Dates as plain objects)\n if (typeof a === 'object' && typeof b === 'object') {\n const aObj = a as Record<string, unknown>;\n const bObj = b as Record<string, unknown>;\n const aKeys = Object.keys(aObj);\n const bKeys = Object.keys(bObj);\n\n if (aKeys.length !== bKeys.length) return false;\n\n // Verify that bObj has the same keys as aObj before comparing values\n return aKeys.every(key => Object.prototype.hasOwnProperty.call(bObj, key) && deepEqual(aObj[key], bObj[key]));\n }\n\n return false;\n}\n\n/**\n * Generates a unique ID for a version using crypto.randomUUID()\n */\nexport function generateVersionId(): string {\n return crypto.randomUUID();\n}\n\n/**\n * Compares two agent snapshots and returns an array of field names that changed.\n * Performs deep comparison for nested objects.\n */\nexport function calculateChangedFields(\n previous: Record<string, unknown> | null | undefined,\n current: Record<string, unknown>,\n): string[] {\n if (!previous) {\n // If no previous version, all fields are \"changed\" (new)\n return Object.keys(current);\n }\n\n const changedFields: string[] = [];\n const allKeys = new Set([...Object.keys(previous), ...Object.keys(current)]);\n\n for (const key of allKeys) {\n // Skip metadata fields that change on every save\n if (key === 'updatedAt' || key === 'createdAt') {\n continue;\n }\n\n const prevValue = previous[key];\n const currValue = current[key];\n\n if (!deepEqual(prevValue, currValue)) {\n changedFields.push(key);\n }\n }\n\n return changedFields;\n}\n\n/**\n * Computes detailed diffs between two agent snapshots.\n */\nfunction computeVersionDiffs(\n fromSnapshot: Record<string, unknown>,\n toSnapshot: Record<string, unknown>,\n): Array<{ field: string; previousValue: unknown; currentValue: unknown }> {\n const diffs: Array<{ field: string; previousValue: unknown; currentValue: unknown }> = [];\n const allKeys = new Set([...Object.keys(fromSnapshot), ...Object.keys(toSnapshot)]);\n\n for (const key of allKeys) {\n // Skip metadata fields\n if (key === 'updatedAt' || key === 'createdAt') {\n continue;\n }\n\n const prevValue = fromSnapshot[key];\n const currValue = toSnapshot[key];\n\n if (!deepEqual(prevValue, currValue)) {\n diffs.push({\n field: key,\n previousValue: prevValue,\n currentValue: currValue,\n });\n }\n }\n\n return diffs;\n}\n\n/**\n * Enforces version retention limit by deleting oldest versions that exceed the maximum.\n * Never deletes the active version.\n *\n * @param agentsStore - The agents storage domain\n * @param agentId - The agent ID to enforce retention for\n * @param activeVersionId - The active version ID (will never be deleted)\n * @param maxVersions - Maximum number of versions to keep (default: 50)\n */\nexport async function enforceRetentionLimit(\n agentsStore: {\n listVersions: (params: {\n agentId: string;\n page?: number;\n perPage?: number | false;\n orderBy?: { field?: 'versionNumber' | 'createdAt'; direction?: 'ASC' | 'DESC' };\n }) => Promise<{\n versions: Array<{ id: string; versionNumber: number }>;\n total: number;\n }>;\n deleteVersion: (id: string) => Promise<void>;\n },\n agentId: string,\n activeVersionId: string | undefined | null,\n maxVersions: number = DEFAULT_MAX_VERSIONS_PER_AGENT,\n): Promise<{ deletedCount: number }> {\n // Get total version count\n const { total } = await agentsStore.listVersions({ agentId, perPage: 1 });\n\n if (total <= maxVersions) {\n return { deletedCount: 0 };\n }\n\n const versionsToDelete = total - maxVersions;\n\n // Get the oldest versions (ordered by versionNumber ascending)\n const { versions: oldestVersions } = await agentsStore.listVersions({\n agentId,\n perPage: versionsToDelete + 1, // Get one extra in case we need to skip the active version\n orderBy: { field: 'versionNumber', direction: 'ASC' },\n });\n\n let deletedCount = 0;\n for (const version of oldestVersions) {\n if (deletedCount >= versionsToDelete) {\n break;\n }\n\n // Never delete the active version\n if (version.id === activeVersionId) {\n continue;\n }\n\n await agentsStore.deleteVersion(version.id);\n deletedCount++;\n }\n\n return { deletedCount };\n}\n\n/**\n * Determines if an error is a unique constraint violation on versionNumber.\n * This is used to detect race conditions when creating versions concurrently.\n */\nfunction isVersionNumberConflictError(error: unknown): boolean {\n if (error instanceof Error) {\n const message = error.message.toLowerCase();\n // Check for common unique constraint violation patterns across databases\n return (\n (message.includes('unique') && message.includes('constraint')) ||\n message.includes('duplicate key') ||\n message.includes('unique_violation') ||\n message.includes('sqlite_constraint_unique') ||\n message.includes('versionnumber')\n );\n }\n return false;\n}\n\n/**\n * Type for the agents store with version-related methods.\n * Uses generic types to work with any StorageAgentType-compatible structure.\n */\nexport interface AgentsStoreWithVersions<TAgent = any> {\n getLatestVersion: (agentId: string) => Promise<{ id: string; versionNumber: number; snapshot: TAgent } | null>;\n createVersion: (params: {\n id: string;\n agentId: string;\n versionNumber: number;\n name?: string;\n snapshot: TAgent;\n changedFields?: string[];\n changeMessage?: string;\n }) => Promise<{ id: string; versionNumber: number }>;\n updateAgent: (params: { id: string; activeVersionId?: string; [key: string]: any }) => Promise<TAgent>;\n listVersions: (params: {\n agentId: string;\n page?: number;\n perPage?: number | false;\n orderBy?: { field?: 'versionNumber' | 'createdAt'; direction?: 'ASC' | 'DESC' };\n }) => Promise<{\n versions: Array<{ id: string; versionNumber: number }>;\n total: number;\n }>;\n deleteVersion: (id: string) => Promise<void>;\n}\n\n/**\n * Creates a new version with retry logic for race condition handling.\n * If a unique constraint violation occurs on versionNumber, retries with a fresh versionNumber.\n *\n * @param agentsStore - The agents storage domain\n * @param agentId - The agent ID to create a version for\n * @param snapshot - The agent configuration snapshot\n * @param changedFields - Array of field names that changed\n * @param options - Optional settings for the version\n * @param options.name - Optional vanity name for the version\n * @param options.changeMessage - Optional description of the changes\n * @param options.maxRetries - Maximum number of retry attempts (default: 3)\n * @returns The created version ID and version number\n */\nexport async function createVersionWithRetry<TAgent>(\n agentsStore: AgentsStoreWithVersions<TAgent>,\n agentId: string,\n snapshot: TAgent,\n changedFields: string[],\n options: {\n name?: string;\n changeMessage?: string;\n maxRetries?: number;\n } = {},\n): Promise<{ versionId: string; versionNumber: number }> {\n const { name, changeMessage, maxRetries = 3 } = options;\n let lastError: unknown;\n\n for (let attempt = 0; attempt < maxRetries; attempt++) {\n try {\n // Get the latest version number (fresh on each attempt)\n const latestVersion = await agentsStore.getLatestVersion(agentId);\n const versionNumber = latestVersion ? latestVersion.versionNumber + 1 : 1;\n\n // Generate a unique version ID\n const versionId = generateVersionId();\n\n // Create the version\n await agentsStore.createVersion({\n id: versionId,\n agentId,\n versionNumber,\n name,\n snapshot,\n changedFields,\n changeMessage,\n });\n\n return { versionId, versionNumber };\n } catch (error) {\n lastError = error;\n\n // If it's a unique constraint violation, retry with a fresh versionNumber\n if (isVersionNumberConflictError(error) && attempt < maxRetries - 1) {\n // Small delay before retry to reduce contention\n await new Promise(resolve => setTimeout(resolve, 10 * (attempt + 1)));\n continue;\n }\n\n // For other errors or last attempt, rethrow\n throw error;\n }\n }\n\n // Should not reach here, but just in case\n throw lastError;\n}\n\n/**\n * Handles auto-versioning after an agent update.\n * Creates a new version with retry logic, then updates the agent's activeVersionId,\n * and finally enforces the retention limit. These are separate operations - if updateAgent\n * fails after version creation, a created-but-not-activated version may remain.\n *\n * @param agentsStore - The agents storage domain\n * @param agentId - The agent ID\n * @param existingAgent - The agent state before the update\n * @param updatedAgent - The agent state after the update\n * @returns The updated agent with the new activeVersionId, or the original if no changes\n */\nexport async function handleAutoVersioning<TAgent>(\n agentsStore: AgentsStoreWithVersions<TAgent>,\n agentId: string,\n existingAgent: TAgent,\n updatedAgent: TAgent,\n): Promise<{ agent: TAgent; versionCreated: boolean }> {\n // Calculate what fields changed\n const changedFields = calculateChangedFields(\n existingAgent as unknown as Record<string, unknown>,\n updatedAgent as unknown as Record<string, unknown>,\n );\n\n // Only create version if there are actual changes (excluding metadata timestamps)\n if (changedFields.length === 0) {\n return { agent: updatedAgent, versionCreated: false };\n }\n\n // Create version with retry logic for race conditions\n const { versionId } = await createVersionWithRetry(agentsStore, agentId, updatedAgent, changedFields, {\n changeMessage: 'Auto-saved after edit',\n });\n\n // Update the agent's activeVersionId\n const finalAgent = await agentsStore.updateAgent({\n id: agentId,\n activeVersionId: versionId,\n });\n\n // Enforce retention limit\n await enforceRetentionLimit(agentsStore, agentId, versionId);\n\n return { agent: finalAgent, versionCreated: true };\n}\n\n// ============================================================================\n// Route Definitions\n// ============================================================================\n\n/**\n * GET /stored/agents/:agentId/versions - List all versions for an agent\n */\nexport const LIST_AGENT_VERSIONS_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/agents/:agentId/versions',\n responseType: 'json',\n pathParamSchema: agentVersionPathParams,\n queryParamSchema: listVersionsQuerySchema,\n responseSchema: listVersionsResponseSchema,\n summary: 'List agent versions',\n description: 'Returns a paginated list of all versions for a stored agent',\n tags: ['Agent Versions'],\n handler: async ({ mastra, agentId, page, perPage, orderBy }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const agentsStore = await storage.getStore('agents');\n if (!agentsStore) {\n throw new HTTPException(500, { message: 'Agents storage domain is not available' });\n }\n\n // Verify agent exists\n const agent = await agentsStore.getAgentById({ id: agentId });\n if (!agent) {\n throw new HTTPException(404, { message: `Agent with id ${agentId} not found` });\n }\n\n const result = await agentsStore.listVersions({\n agentId,\n page,\n perPage,\n orderBy,\n });\n\n return result;\n } catch (error) {\n return handleError(error, 'Error listing agent versions');\n }\n },\n});\n\n/**\n * POST /stored/agents/:agentId/versions - Create a new version snapshot\n */\nexport const CREATE_AGENT_VERSION_ROUTE = createRoute({\n method: 'POST',\n path: '/stored/agents/:agentId/versions',\n responseType: 'json',\n pathParamSchema: agentVersionPathParams,\n bodySchema: createVersionBodySchema,\n responseSchema: createVersionResponseSchema,\n summary: 'Create agent version',\n description: 'Creates a new version snapshot of the current agent configuration',\n tags: ['Agent Versions'],\n handler: async ({ mastra, agentId, name, changeMessage }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const agentsStore = await storage.getStore('agents');\n if (!agentsStore) {\n throw new HTTPException(500, { message: 'Agents storage domain is not available' });\n }\n\n // Get the current agent configuration\n const agent = await agentsStore.getAgentById({ id: agentId });\n if (!agent) {\n throw new HTTPException(404, { message: `Agent with id ${agentId} not found` });\n }\n\n // Get the latest version to calculate changed fields\n const latestVersion = await agentsStore.getLatestVersion(agentId);\n const changedFields = calculateChangedFields(\n latestVersion?.snapshot as Record<string, unknown> | undefined,\n agent as unknown as Record<string, unknown>,\n );\n\n // Create the new version with retry logic to handle race conditions\n const { versionId } = await createVersionWithRetry(\n agentsStore,\n agentId,\n agent,\n changedFields.length > 0 ? changedFields : [],\n { name, changeMessage },\n );\n\n // Get the created version to return\n const version = await agentsStore.getVersion(versionId);\n if (!version) {\n throw new HTTPException(500, { message: 'Failed to retrieve created version' });\n }\n\n // Enforce retention limit - delete oldest versions if we exceed the max\n await enforceRetentionLimit(agentsStore, agentId, agent.activeVersionId);\n\n return version;\n } catch (error) {\n return handleError(error, 'Error creating agent version');\n }\n },\n});\n\n/**\n * GET /stored/agents/:agentId/versions/:versionId - Get a specific version\n */\nexport const GET_AGENT_VERSION_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/agents/:agentId/versions/:versionId',\n responseType: 'json',\n pathParamSchema: versionIdPathParams,\n responseSchema: getVersionResponseSchema,\n summary: 'Get agent version',\n description: 'Returns a specific version of an agent by its version ID',\n tags: ['Agent Versions'],\n handler: async ({ mastra, agentId, versionId }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const agentsStore = await storage.getStore('agents');\n if (!agentsStore) {\n throw new HTTPException(500, { message: 'Agents storage domain is not available' });\n }\n\n const version = await agentsStore.getVersion(versionId);\n\n if (!version) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found` });\n }\n\n // Verify the version belongs to the specified agent\n if (version.agentId !== agentId) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found for agent ${agentId}` });\n }\n\n return version;\n } catch (error) {\n return handleError(error, 'Error getting agent version');\n }\n },\n});\n\n/**\n * POST /stored/agents/:agentId/versions/:versionId/activate - Set a version as active\n */\nexport const ACTIVATE_AGENT_VERSION_ROUTE = createRoute({\n method: 'POST',\n path: '/stored/agents/:agentId/versions/:versionId/activate',\n responseType: 'json',\n pathParamSchema: versionIdPathParams,\n responseSchema: activateVersionResponseSchema,\n summary: 'Activate agent version',\n description: 'Sets a specific version as the active version for the agent',\n tags: ['Agent Versions'],\n handler: async ({ mastra, agentId, versionId }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const agentsStore = await storage.getStore('agents');\n if (!agentsStore) {\n throw new HTTPException(500, { message: 'Agents storage domain is not available' });\n }\n\n // Verify agent exists\n const agent = await agentsStore.getAgentById({ id: agentId });\n if (!agent) {\n throw new HTTPException(404, { message: `Agent with id ${agentId} not found` });\n }\n\n // Verify version exists and belongs to this agent\n const version = await agentsStore.getVersion(versionId);\n if (!version) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found` });\n }\n if (version.agentId !== agentId) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found for agent ${agentId}` });\n }\n\n // Update the agent's activeVersionId\n await agentsStore.updateAgent({\n id: agentId,\n activeVersionId: versionId,\n });\n\n return {\n success: true,\n message: `Version ${version.versionNumber} is now active`,\n activeVersionId: versionId,\n };\n } catch (error) {\n return handleError(error, 'Error activating agent version');\n }\n },\n});\n\n/**\n * POST /stored/agents/:agentId/versions/:versionId/restore - Restore agent to a version\n */\nexport const RESTORE_AGENT_VERSION_ROUTE = createRoute({\n method: 'POST',\n path: '/stored/agents/:agentId/versions/:versionId/restore',\n responseType: 'json',\n pathParamSchema: versionIdPathParams,\n responseSchema: restoreVersionResponseSchema,\n summary: 'Restore agent version',\n description: 'Restores the agent configuration from a version snapshot, creating a new version',\n tags: ['Agent Versions'],\n handler: async ({ mastra, agentId, versionId }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const agentsStore = await storage.getStore('agents');\n if (!agentsStore) {\n throw new HTTPException(500, { message: 'Agents storage domain is not available' });\n }\n\n // Verify agent exists\n const agent = await agentsStore.getAgentById({ id: agentId });\n if (!agent) {\n throw new HTTPException(404, { message: `Agent with id ${agentId} not found` });\n }\n\n // Get the version to restore\n const versionToRestore = await agentsStore.getVersion(versionId);\n if (!versionToRestore) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found` });\n }\n if (versionToRestore.agentId !== agentId) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found for agent ${agentId}` });\n }\n\n // Update the agent with the snapshot from the version to restore\n // Exclude id, createdAt, updatedAt, and activeVersionId from the snapshot\n // (activeVersionId from old snapshot may reference a stale/deleted version)\n const {\n id: _id,\n createdAt: _createdAt,\n updatedAt: _updatedAt,\n activeVersionId: _activeVersionId,\n ...snapshotData\n } = versionToRestore.snapshot;\n await agentsStore.updateAgent({\n id: agentId,\n ...snapshotData,\n });\n\n // Get the updated agent\n const updatedAgent = await agentsStore.getAgentById({ id: agentId });\n if (!updatedAgent) {\n throw new HTTPException(500, { message: 'Failed to retrieve updated agent' });\n }\n\n // Get the latest version to calculate changed fields\n const latestVersion = await agentsStore.getLatestVersion(agentId);\n const changedFields = calculateChangedFields(\n latestVersion?.snapshot as Record<string, unknown> | undefined,\n updatedAgent as unknown as Record<string, unknown>,\n );\n\n // Create a new version with retry logic to handle race conditions\n const { versionId: newVersionId } = await createVersionWithRetry(\n agentsStore,\n agentId,\n updatedAgent,\n changedFields,\n {\n changeMessage: `Restored from version ${versionToRestore.versionNumber}${versionToRestore.name ? ` (${versionToRestore.name})` : ''}`,\n },\n );\n\n // Update the agent's activeVersionId to the new version\n await agentsStore.updateAgent({\n id: agentId,\n activeVersionId: newVersionId,\n });\n\n // Get the created version to return\n const newVersion = await agentsStore.getVersion(newVersionId);\n if (!newVersion) {\n throw new HTTPException(500, { message: 'Failed to retrieve created version' });\n }\n\n // Enforce retention limit - delete oldest versions if we exceed the max\n // Use the new version ID as the active version\n await enforceRetentionLimit(agentsStore, agentId, newVersionId);\n\n return newVersion;\n } catch (error) {\n return handleError(error, 'Error restoring agent version');\n }\n },\n});\n\n/**\n * DELETE /stored/agents/:agentId/versions/:versionId - Delete a version\n */\nexport const DELETE_AGENT_VERSION_ROUTE = createRoute({\n method: 'DELETE',\n path: '/stored/agents/:agentId/versions/:versionId',\n responseType: 'json',\n pathParamSchema: versionIdPathParams,\n responseSchema: deleteVersionResponseSchema,\n summary: 'Delete agent version',\n description: 'Deletes a specific version (cannot delete the active version)',\n tags: ['Agent Versions'],\n handler: async ({ mastra, agentId, versionId }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const agentsStore = await storage.getStore('agents');\n if (!agentsStore) {\n throw new HTTPException(500, { message: 'Agents storage domain is not available' });\n }\n\n // Verify agent exists\n const agent = await agentsStore.getAgentById({ id: agentId });\n if (!agent) {\n throw new HTTPException(404, { message: `Agent with id ${agentId} not found` });\n }\n\n // Verify version exists and belongs to this agent\n const version = await agentsStore.getVersion(versionId);\n if (!version) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found` });\n }\n if (version.agentId !== agentId) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found for agent ${agentId}` });\n }\n\n // Check if this is the active version\n if (agent.activeVersionId === versionId) {\n throw new HTTPException(400, {\n message: 'Cannot delete the active version. Activate a different version first.',\n });\n }\n\n await agentsStore.deleteVersion(versionId);\n\n return {\n success: true,\n message: `Version ${version.versionNumber} deleted successfully`,\n };\n } catch (error) {\n return handleError(error, 'Error deleting agent version');\n }\n },\n});\n\n/**\n * GET /stored/agents/:agentId/versions/compare - Compare two versions\n */\nexport const COMPARE_AGENT_VERSIONS_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/agents/:agentId/versions/compare',\n responseType: 'json',\n pathParamSchema: agentVersionPathParams,\n queryParamSchema: compareVersionsQuerySchema,\n responseSchema: compareVersionsResponseSchema,\n summary: 'Compare agent versions',\n description: 'Compares two versions and returns the differences between them',\n tags: ['Agent Versions'],\n handler: async ({ mastra, agentId, from, to }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const agentsStore = await storage.getStore('agents');\n if (!agentsStore) {\n throw new HTTPException(500, { message: 'Agents storage domain is not available' });\n }\n\n // Get both versions\n const fromVersion = await agentsStore.getVersion(from);\n if (!fromVersion) {\n throw new HTTPException(404, { message: `Version with id ${from} not found` });\n }\n if (fromVersion.agentId !== agentId) {\n throw new HTTPException(404, { message: `Version with id ${from} not found for agent ${agentId}` });\n }\n\n const toVersion = await agentsStore.getVersion(to);\n if (!toVersion) {\n throw new HTTPException(404, { message: `Version with id ${to} not found` });\n }\n if (toVersion.agentId !== agentId) {\n throw new HTTPException(404, { message: `Version with id ${to} not found for agent ${agentId}` });\n }\n\n // Compute diffs\n const diffs = computeVersionDiffs(\n fromVersion.snapshot as unknown as Record<string, unknown>,\n toVersion.snapshot as unknown as Record<string, unknown>,\n );\n\n return {\n diffs,\n fromVersion,\n toVersion,\n };\n } catch (error) {\n return handleError(error, 'Error comparing agent versions');\n }\n },\n});\n"]}
@@ -0,0 +1,62 @@
1
+ import { HTTPException } from './chunk-6QWQZI4Q.js';
2
+ import { MASTRA_RESOURCE_ID_KEY, MASTRA_THREAD_ID_KEY } from '@mastra/core/request-context';
3
+
4
+ function validateBody(body) {
5
+ const errorResponse = Object.entries(body).reduce((acc, [key, value]) => {
6
+ if (!value) {
7
+ acc[key] = `Argument "${key}" is required`;
8
+ }
9
+ return acc;
10
+ }, {});
11
+ if (Object.keys(errorResponse).length > 0) {
12
+ throw new HTTPException(400, { message: Object.values(errorResponse)[0] });
13
+ }
14
+ }
15
+ function sanitizeBody(body, disallowedKeys) {
16
+ for (const key of disallowedKeys) {
17
+ if (key in body) {
18
+ delete body[key];
19
+ }
20
+ }
21
+ }
22
+ function parsePerPage(value, defaultValue = 100, max = 1e3) {
23
+ const normalized = (value || "").trim().toLowerCase();
24
+ if (normalized === "false") {
25
+ return false;
26
+ }
27
+ const parsed = parseInt(value || String(defaultValue), 10);
28
+ if (isNaN(parsed)) return defaultValue;
29
+ return Math.min(max, Math.max(1, parsed));
30
+ }
31
+ function parseFilters(filters) {
32
+ if (!filters) return void 0;
33
+ return Object.fromEntries(
34
+ (Array.isArray(filters) ? filters : [filters]).map((attr) => {
35
+ const [key, ...valueParts] = attr.split(":");
36
+ const value = valueParts.join(":");
37
+ return [key, value];
38
+ })
39
+ );
40
+ }
41
+ function getEffectiveResourceId(requestContext, clientResourceId) {
42
+ const contextResourceId = requestContext?.get(MASTRA_RESOURCE_ID_KEY);
43
+ return contextResourceId || clientResourceId;
44
+ }
45
+ function getEffectiveThreadId(requestContext, clientThreadId) {
46
+ const contextThreadId = requestContext?.get(MASTRA_THREAD_ID_KEY);
47
+ return contextThreadId || clientThreadId;
48
+ }
49
+ async function validateThreadOwnership(thread, effectiveResourceId) {
50
+ if (thread && effectiveResourceId && thread.resourceId && thread.resourceId !== effectiveResourceId) {
51
+ throw new HTTPException(403, { message: "Access denied: thread belongs to a different resource" });
52
+ }
53
+ }
54
+ async function validateRunOwnership(run, effectiveResourceId) {
55
+ if (run && effectiveResourceId && run.resourceId && run.resourceId !== effectiveResourceId) {
56
+ throw new HTTPException(403, { message: "Access denied: workflow run belongs to a different resource" });
57
+ }
58
+ }
59
+
60
+ export { getEffectiveResourceId, getEffectiveThreadId, parseFilters, parsePerPage, sanitizeBody, validateBody, validateRunOwnership, validateThreadOwnership };
61
+ //# sourceMappingURL=chunk-USR6JK77.js.map
62
+ //# sourceMappingURL=chunk-USR6JK77.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/server/handlers/utils.ts"],"names":[],"mappings":";;;AAKO,SAAS,aAAa,IAAA,EAA+B;AAC1D,EAAA,MAAM,aAAA,GAAgB,MAAA,CAAO,OAAA,CAAQ,IAAI,CAAA,CAAE,MAAA,CAA+B,CAAC,GAAA,EAAK,CAAC,GAAA,EAAK,KAAK,CAAA,KAAM;AAC/F,IAAA,IAAI,CAAC,KAAA,EAAO;AACV,MAAA,GAAA,CAAI,GAAG,CAAA,GAAI,CAAA,UAAA,EAAa,GAAG,CAAA,aAAA,CAAA;AAAA,IAC7B;AACA,IAAA,OAAO,GAAA;AAAA,EACT,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,IAAI,MAAA,CAAO,IAAA,CAAK,aAAa,CAAA,CAAE,SAAS,CAAA,EAAG;AACzC,IAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,MAAA,CAAO,MAAA,CAAO,aAAa,CAAA,CAAE,CAAC,CAAA,EAAG,CAAA;AAAA,EAC3E;AACF;AAOO,SAAS,YAAA,CAAa,MAA+B,cAAA,EAA0B;AACpF,EAAA,KAAA,MAAW,OAAO,cAAA,EAAgB;AAChC,IAAA,IAAI,OAAO,IAAA,EAAM;AACf,MAAA,OAAO,KAAK,GAAG,CAAA;AAAA,IACjB;AAAA,EACF;AACF;AAEO,SAAS,YAAA,CACd,KAAA,EACA,YAAA,GAAuB,GAAA,EACvB,MAAc,GAAA,EACE;AAChB,EAAA,MAAM,UAAA,GAAA,CAAc,KAAA,IAAS,EAAA,EAAI,IAAA,GAAO,WAAA,EAAY;AAEpD,EAAA,IAAI,eAAe,OAAA,EAAS;AAC1B,IAAA,OAAO,KAAA;AAAA,EACT;AACA,EAAA,MAAM,SAAS,QAAA,CAAS,KAAA,IAAS,MAAA,CAAO,YAAY,GAAG,EAAE,CAAA;AACzD,EAAA,IAAI,KAAA,CAAM,MAAM,CAAA,EAAG,OAAO,YAAA;AAC1B,EAAA,OAAO,KAAK,GAAA,CAAI,GAAA,EAAK,KAAK,GAAA,CAAI,CAAA,EAAG,MAAM,CAAC,CAAA;AAC1C;AAKO,SAAS,aAAa,OAAA,EAA4E;AACvG,EAAA,IAAI,CAAC,SAAS,OAAO,MAAA;AAErB,EAAA,OAAO,MAAA,CAAO,WAAA;AAAA,IAAA,CACX,KAAA,CAAM,OAAA,CAAQ,OAAO,CAAA,GAAI,OAAA,GAAU,CAAC,OAAO,CAAA,EAAG,GAAA,CAAI,CAAC,IAAA,KAAiB;AACnE,MAAA,MAAM,CAAC,GAAA,EAAK,GAAG,UAAU,CAAA,GAAI,IAAA,CAAK,MAAM,GAAG,CAAA;AAC3C,MAAA,MAAM,KAAA,GAAQ,UAAA,CAAW,IAAA,CAAK,GAAG,CAAA;AACjC,MAAA,OAAO,CAAC,KAAK,KAAK,CAAA;AAAA,IACpB,CAAC;AAAA,GACH;AACF;AAUO,SAAS,sBAAA,CACd,gBACA,gBAAA,EACoB;AACpB,EAAA,MAAM,iBAAA,GAAoB,cAAA,EAAgB,GAAA,CAAI,sBAAsB,CAAA;AACpE,EAAA,OAAO,iBAAA,IAAqB,gBAAA;AAC9B;AAMO,SAAS,oBAAA,CACd,gBACA,cAAA,EACoB;AACpB,EAAA,MAAM,eAAA,GAAkB,cAAA,EAAgB,GAAA,CAAI,oBAAoB,CAAA;AAChE,EAAA,OAAO,eAAA,IAAmB,cAAA;AAC5B;AAOA,eAAsB,uBAAA,CACpB,QACA,mBAAA,EACe;AACf,EAAA,IAAI,UAAU,mBAAA,IAAuB,MAAA,CAAO,UAAA,IAAc,MAAA,CAAO,eAAe,mBAAA,EAAqB;AACnG,IAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,yDAAyD,CAAA;AAAA,EACnG;AACF;AAMA,eAAsB,oBAAA,CACpB,KACA,mBAAA,EACe;AACf,EAAA,IAAI,OAAO,mBAAA,IAAuB,GAAA,CAAI,UAAA,IAAc,GAAA,CAAI,eAAe,mBAAA,EAAqB;AAC1F,IAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,+DAA+D,CAAA;AAAA,EACzG;AACF","file":"chunk-USR6JK77.js","sourcesContent":["import type { RequestContext } from '@mastra/core/di';\nimport { MASTRA_RESOURCE_ID_KEY, MASTRA_THREAD_ID_KEY } from '@mastra/core/request-context';\nimport { HTTPException } from '../http-exception';\n\n// Validation helper\nexport function validateBody(body: Record<string, unknown>) {\n const errorResponse = Object.entries(body).reduce<Record<string, string>>((acc, [key, value]) => {\n if (!value) {\n acc[key] = `Argument \"${key}\" is required`;\n }\n return acc;\n }, {});\n\n if (Object.keys(errorResponse).length > 0) {\n throw new HTTPException(400, { message: Object.values(errorResponse)[0] });\n }\n}\n\n/**\n * sanitizes the body by removing disallowed keys.\n * @param body body to sanitize\n * @param disallowedKeys keys to remove from the body\n */\nexport function sanitizeBody(body: Record<string, unknown>, disallowedKeys: string[]) {\n for (const key of disallowedKeys) {\n if (key in body) {\n delete body[key];\n }\n }\n}\n\nexport function parsePerPage(\n value: string | undefined,\n defaultValue: number = 100,\n max: number = 1000,\n): number | false {\n const normalized = (value || '').trim().toLowerCase();\n // Handle explicit false to bypass pagination\n if (normalized === 'false') {\n return false;\n }\n const parsed = parseInt(value || String(defaultValue), 10);\n if (isNaN(parsed)) return defaultValue;\n return Math.min(max, Math.max(1, parsed));\n}\n\n/**\n * Parses filter query parameters into a key-value object.\n */\nexport function parseFilters(filters: string | string[] | undefined): Record<string, string> | undefined {\n if (!filters) return undefined;\n\n return Object.fromEntries(\n (Array.isArray(filters) ? filters : [filters]).map((attr: string) => {\n const [key, ...valueParts] = attr.split(':');\n const value = valueParts.join(':'); // ✅ Handles colons in values\n return [key, value];\n }),\n );\n}\n\n// ============================================================================\n// Authorization Utilities\n// ============================================================================\n\n/**\n * Gets the effective resourceId, preferring the reserved key from requestContext\n * over client-provided values for security.\n */\nexport function getEffectiveResourceId(\n requestContext: RequestContext | undefined,\n clientResourceId: string | undefined,\n): string | undefined {\n const contextResourceId = requestContext?.get(MASTRA_RESOURCE_ID_KEY) as string | undefined;\n return contextResourceId || clientResourceId;\n}\n\n/**\n * Gets the effective threadId, preferring the reserved key from requestContext\n * over client-provided values for security.\n */\nexport function getEffectiveThreadId(\n requestContext: RequestContext | undefined,\n clientThreadId: string | undefined,\n): string | undefined {\n const contextThreadId = requestContext?.get(MASTRA_THREAD_ID_KEY) as string | undefined;\n return contextThreadId || clientThreadId;\n}\n\n/**\n * Validates that a thread belongs to the specified resourceId.\n * Throws 403 if the thread exists but belongs to a different resource.\n * Threads with no resourceId are accessible to all (shared threads).\n */\nexport async function validateThreadOwnership(\n thread: { resourceId?: string | null } | null | undefined,\n effectiveResourceId: string | undefined,\n): Promise<void> {\n if (thread && effectiveResourceId && thread.resourceId && thread.resourceId !== effectiveResourceId) {\n throw new HTTPException(403, { message: 'Access denied: thread belongs to a different resource' });\n }\n}\n\n/**\n * Validates that a workflow run belongs to the specified resourceId.\n * Throws 403 if the run exists but belongs to a different resource.\n */\nexport async function validateRunOwnership(\n run: { resourceId?: string | null } | null | undefined,\n effectiveResourceId: string | undefined,\n): Promise<void> {\n if (run && effectiveResourceId && run.resourceId && run.resourceId !== effectiveResourceId) {\n throw new HTTPException(403, { message: 'Access denied: workflow run belongs to a different resource' });\n }\n}\n"]}
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var chunk5W4RPVTK_cjs = require('./chunk-5W4RPVTK.cjs');
4
- var chunkBRI4GUZ2_cjs = require('./chunk-BRI4GUZ2.cjs');
3
+ var chunkEKFYZUPC_cjs = require('./chunk-EKFYZUPC.cjs');
4
+ var chunkK2SXZLA3_cjs = require('./chunk-K2SXZLA3.cjs');
5
+ var chunkZKMVCV4G_cjs = require('./chunk-ZKMVCV4G.cjs');
5
6
  var chunkMCYD5LW7_cjs = require('./chunk-MCYD5LW7.cjs');
6
- var chunkGU4EWMZB_cjs = require('./chunk-GU4EWMZB.cjs');
7
- var chunkAVRO3FIN_cjs = require('./chunk-AVRO3FIN.cjs');
8
7
  var chunkSUKFO7UM_cjs = require('./chunk-SUKFO7UM.cjs');
8
+ var chunk4LVJBXI2_cjs = require('./chunk-4LVJBXI2.cjs');
9
9
  var chunk64ITUOXI_cjs = require('./chunk-64ITUOXI.cjs');
10
10
  var chunkO7I5CWRX_cjs = require('./chunk-O7I5CWRX.cjs');
11
11
  var tools = require('@mastra/core/tools');
@@ -20,24 +20,26 @@ chunkO7I5CWRX_cjs.__export(tools_exports, {
20
20
  GET_TOOL_BY_ID_ROUTE: () => GET_TOOL_BY_ID_ROUTE,
21
21
  LIST_TOOLS_ROUTE: () => LIST_TOOLS_ROUTE
22
22
  });
23
- var LIST_TOOLS_ROUTE = chunkAVRO3FIN_cjs.createRoute({
23
+ var LIST_TOOLS_ROUTE = chunk4LVJBXI2_cjs.createRoute({
24
24
  method: "GET",
25
- path: "/api/tools",
25
+ path: "/tools",
26
26
  responseType: "json",
27
- responseSchema: chunkBRI4GUZ2_cjs.listToolsResponseSchema,
27
+ responseSchema: chunkK2SXZLA3_cjs.listToolsResponseSchema,
28
28
  summary: "List all tools",
29
29
  description: "Returns a list of all available tools in the system",
30
30
  tags: ["Tools"],
31
- handler: async ({ mastra, tools }) => {
31
+ requiresAuth: true,
32
+ handler: async ({ mastra, registeredTools }) => {
32
33
  try {
33
- const allTools = tools || mastra.listTools() || {};
34
+ const allTools = registeredTools || mastra.listTools() || {};
34
35
  const serializedTools = Object.entries(allTools).reduce(
35
36
  (acc, [id, _tool]) => {
36
37
  const tool = _tool;
37
38
  acc[id] = {
38
39
  ...tool,
39
- inputSchema: tool.inputSchema ? chunkGU4EWMZB_cjs.stringify(zodToJson.zodToJsonSchema(tool.inputSchema)) : void 0,
40
- outputSchema: tool.outputSchema ? chunkGU4EWMZB_cjs.stringify(zodToJson.zodToJsonSchema(tool.outputSchema)) : void 0
40
+ inputSchema: tool.inputSchema ? chunkK2SXZLA3_cjs.stringify(zodToJson.zodToJsonSchema(tool.inputSchema)) : void 0,
41
+ outputSchema: tool.outputSchema ? chunkK2SXZLA3_cjs.stringify(zodToJson.zodToJsonSchema(tool.outputSchema)) : void 0,
42
+ requestContextSchema: tool.requestContextSchema ? chunkK2SXZLA3_cjs.stringify(zodToJson.zodToJsonSchema(tool.requestContextSchema)) : void 0
41
43
  };
42
44
  return acc;
43
45
  },
@@ -49,20 +51,21 @@ var LIST_TOOLS_ROUTE = chunkAVRO3FIN_cjs.createRoute({
49
51
  }
50
52
  }
51
53
  });
52
- var GET_TOOL_BY_ID_ROUTE = chunkAVRO3FIN_cjs.createRoute({
54
+ var GET_TOOL_BY_ID_ROUTE = chunk4LVJBXI2_cjs.createRoute({
53
55
  method: "GET",
54
- path: "/api/tools/:toolId",
56
+ path: "/tools/:toolId",
55
57
  responseType: "json",
56
- pathParamSchema: chunkBRI4GUZ2_cjs.toolIdPathParams,
57
- responseSchema: chunkBRI4GUZ2_cjs.serializedToolSchema,
58
+ pathParamSchema: chunkK2SXZLA3_cjs.toolIdPathParams,
59
+ responseSchema: chunkK2SXZLA3_cjs.serializedToolSchema,
58
60
  summary: "Get tool by ID",
59
61
  description: "Returns details for a specific tool including its schema and configuration",
60
62
  tags: ["Tools"],
61
- handler: async ({ mastra, tools, toolId }) => {
63
+ requiresAuth: true,
64
+ handler: async ({ mastra, registeredTools, toolId }) => {
62
65
  try {
63
66
  let tool;
64
- if (tools && Object.keys(tools).length > 0) {
65
- tool = Object.values(tools).find((t) => t.id === toolId);
67
+ if (registeredTools && Object.keys(registeredTools).length > 0) {
68
+ tool = Object.values(registeredTools).find((t) => t.id === toolId);
66
69
  } else {
67
70
  tool = mastra.getToolById(toolId);
68
71
  }
@@ -71,8 +74,9 @@ var GET_TOOL_BY_ID_ROUTE = chunkAVRO3FIN_cjs.createRoute({
71
74
  }
72
75
  const serializedTool = {
73
76
  ...tool,
74
- inputSchema: tool.inputSchema ? chunkGU4EWMZB_cjs.stringify(zodToJson.zodToJsonSchema(tool.inputSchema)) : void 0,
75
- outputSchema: tool.outputSchema ? chunkGU4EWMZB_cjs.stringify(zodToJson.zodToJsonSchema(tool.outputSchema)) : void 0
77
+ inputSchema: tool.inputSchema ? chunkK2SXZLA3_cjs.stringify(zodToJson.zodToJsonSchema(tool.inputSchema)) : void 0,
78
+ outputSchema: tool.outputSchema ? chunkK2SXZLA3_cjs.stringify(zodToJson.zodToJsonSchema(tool.outputSchema)) : void 0,
79
+ requestContextSchema: tool.requestContextSchema ? chunkK2SXZLA3_cjs.stringify(zodToJson.zodToJsonSchema(tool.requestContextSchema)) : void 0
76
80
  };
77
81
  return serializedTool;
78
82
  } catch (error) {
@@ -80,25 +84,26 @@ var GET_TOOL_BY_ID_ROUTE = chunkAVRO3FIN_cjs.createRoute({
80
84
  }
81
85
  }
82
86
  });
83
- var EXECUTE_TOOL_ROUTE = chunkAVRO3FIN_cjs.createRoute({
87
+ var EXECUTE_TOOL_ROUTE = chunk4LVJBXI2_cjs.createRoute({
84
88
  method: "POST",
85
- path: "/api/tools/:toolId/execute",
89
+ path: "/tools/:toolId/execute",
86
90
  responseType: "json",
87
- pathParamSchema: chunkBRI4GUZ2_cjs.toolIdPathParams,
91
+ pathParamSchema: chunkK2SXZLA3_cjs.toolIdPathParams,
88
92
  queryParamSchema: chunkMCYD5LW7_cjs.optionalRunIdSchema,
89
- bodySchema: chunkBRI4GUZ2_cjs.executeToolContextBodySchema,
90
- responseSchema: chunkBRI4GUZ2_cjs.executeToolResponseSchema,
93
+ bodySchema: chunkK2SXZLA3_cjs.executeToolContextBodySchema,
94
+ responseSchema: chunkK2SXZLA3_cjs.executeToolResponseSchema,
91
95
  summary: "Execute tool",
92
96
  description: "Executes a specific tool with the provided input data",
93
97
  tags: ["Tools"],
94
- handler: async ({ mastra, runId, toolId, tools: tools$1, requestContext, ...bodyParams }) => {
98
+ requiresAuth: true,
99
+ handler: async ({ mastra, runId, toolId, registeredTools, requestContext, ...bodyParams }) => {
95
100
  try {
96
101
  if (!toolId) {
97
102
  throw new chunk64ITUOXI_cjs.HTTPException(400, { message: "Tool ID is required" });
98
103
  }
99
104
  let tool;
100
- if (tools$1 && Object.keys(tools$1).length > 0) {
101
- tool = Object.values(tools$1).find((t) => t.id === toolId);
105
+ if (registeredTools && Object.keys(registeredTools).length > 0) {
106
+ tool = Object.values(registeredTools).find((t) => t.id === toolId);
102
107
  } else {
103
108
  tool = mastra.getToolById(toolId);
104
109
  }
@@ -109,7 +114,7 @@ var EXECUTE_TOOL_ROUTE = chunkAVRO3FIN_cjs.createRoute({
109
114
  throw new chunk64ITUOXI_cjs.HTTPException(400, { message: "Tool is not executable" });
110
115
  }
111
116
  const { data } = bodyParams;
112
- chunk5W4RPVTK_cjs.validateBody({ data });
117
+ chunkZKMVCV4G_cjs.validateBody({ data });
113
118
  if (tools.isVercelTool(tool)) {
114
119
  const result2 = await tool.execute(data);
115
120
  return result2;
@@ -133,21 +138,22 @@ var EXECUTE_TOOL_ROUTE = chunkAVRO3FIN_cjs.createRoute({
133
138
  }
134
139
  }
135
140
  });
136
- var GET_AGENT_TOOL_ROUTE = chunkAVRO3FIN_cjs.createRoute({
141
+ var GET_AGENT_TOOL_ROUTE = chunk4LVJBXI2_cjs.createRoute({
137
142
  method: "GET",
138
- path: "/api/agents/:agentId/tools/:toolId",
143
+ path: "/agents/:agentId/tools/:toolId",
139
144
  responseType: "json",
140
- pathParamSchema: chunkBRI4GUZ2_cjs.agentToolPathParams,
141
- responseSchema: chunkBRI4GUZ2_cjs.serializedToolSchema,
145
+ pathParamSchema: chunkK2SXZLA3_cjs.agentToolPathParams,
146
+ responseSchema: chunkK2SXZLA3_cjs.serializedToolSchema,
142
147
  summary: "Get agent tool",
143
148
  description: "Returns details for a specific tool assigned to the agent",
144
149
  tags: ["Agents", "Tools"],
150
+ requiresAuth: true,
145
151
  handler: async ({ mastra, agentId, toolId, requestContext }) => {
146
152
  try {
147
- const agent = agentId ? mastra.getAgentById(agentId) : null;
148
- if (!agent) {
149
- throw new chunk64ITUOXI_cjs.HTTPException(404, { message: "Agent not found" });
153
+ if (!agentId) {
154
+ throw new chunk64ITUOXI_cjs.HTTPException(400, { message: "Agent ID is required" });
150
155
  }
156
+ const agent = await chunkEKFYZUPC_cjs.getAgentFromSystem({ mastra, agentId });
151
157
  const agentTools = await agent.listTools({ requestContext });
152
158
  const tool = Object.values(agentTools || {}).find((tool2) => tool2.id === toolId);
153
159
  if (!tool) {
@@ -155,8 +161,9 @@ var GET_AGENT_TOOL_ROUTE = chunkAVRO3FIN_cjs.createRoute({
155
161
  }
156
162
  const serializedTool = {
157
163
  ...tool,
158
- inputSchema: tool.inputSchema ? chunkGU4EWMZB_cjs.stringify(zodToJson.zodToJsonSchema(tool.inputSchema)) : void 0,
159
- outputSchema: tool.outputSchema ? chunkGU4EWMZB_cjs.stringify(zodToJson.zodToJsonSchema(tool.outputSchema)) : void 0
164
+ inputSchema: tool.inputSchema ? chunkK2SXZLA3_cjs.stringify(zodToJson.zodToJsonSchema(tool.inputSchema)) : void 0,
165
+ outputSchema: tool.outputSchema ? chunkK2SXZLA3_cjs.stringify(zodToJson.zodToJsonSchema(tool.outputSchema)) : void 0,
166
+ requestContextSchema: tool.requestContextSchema ? chunkK2SXZLA3_cjs.stringify(zodToJson.zodToJsonSchema(tool.requestContextSchema)) : void 0
160
167
  };
161
168
  return serializedTool;
162
169
  } catch (error) {
@@ -164,22 +171,23 @@ var GET_AGENT_TOOL_ROUTE = chunkAVRO3FIN_cjs.createRoute({
164
171
  }
165
172
  }
166
173
  });
167
- var EXECUTE_AGENT_TOOL_ROUTE = chunkAVRO3FIN_cjs.createRoute({
174
+ var EXECUTE_AGENT_TOOL_ROUTE = chunk4LVJBXI2_cjs.createRoute({
168
175
  method: "POST",
169
- path: "/api/agents/:agentId/tools/:toolId/execute",
176
+ path: "/agents/:agentId/tools/:toolId/execute",
170
177
  responseType: "json",
171
- pathParamSchema: chunkBRI4GUZ2_cjs.agentToolPathParams,
172
- bodySchema: chunkBRI4GUZ2_cjs.executeToolBodySchema,
173
- responseSchema: chunkBRI4GUZ2_cjs.executeToolResponseSchema,
178
+ pathParamSchema: chunkK2SXZLA3_cjs.agentToolPathParams,
179
+ bodySchema: chunkK2SXZLA3_cjs.executeToolBodySchema,
180
+ responseSchema: chunkK2SXZLA3_cjs.executeToolResponseSchema,
174
181
  summary: "Execute agent tool",
175
182
  description: "Executes a specific tool assigned to the agent with the provided input data",
176
183
  tags: ["Agents", "Tools"],
184
+ requiresAuth: true,
177
185
  handler: async ({ mastra, agentId, toolId, data, requestContext }) => {
178
186
  try {
179
- const agent = agentId ? mastra.getAgentById(agentId) : null;
180
- if (!agent) {
181
- throw new chunk64ITUOXI_cjs.HTTPException(404, { message: "Tool not found" });
187
+ if (!agentId) {
188
+ throw new chunk64ITUOXI_cjs.HTTPException(400, { message: "Agent ID is required" });
182
189
  }
190
+ const agent = await chunkEKFYZUPC_cjs.getAgentFromSystem({ mastra, agentId });
183
191
  const agentTools = await agent.listTools({ requestContext });
184
192
  const tool = Object.values(agentTools || {}).find((tool2) => tool2.id === toolId);
185
193
  if (!tool) {
@@ -207,5 +215,5 @@ exports.GET_AGENT_TOOL_ROUTE = GET_AGENT_TOOL_ROUTE;
207
215
  exports.GET_TOOL_BY_ID_ROUTE = GET_TOOL_BY_ID_ROUTE;
208
216
  exports.LIST_TOOLS_ROUTE = LIST_TOOLS_ROUTE;
209
217
  exports.tools_exports = tools_exports;
210
- //# sourceMappingURL=chunk-6MP2S6VI.cjs.map
211
- //# sourceMappingURL=chunk-6MP2S6VI.cjs.map
218
+ //# sourceMappingURL=chunk-VNHOYZ56.cjs.map
219
+ //# sourceMappingURL=chunk-VNHOYZ56.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/server/handlers/tools.ts"],"names":["__export","createRoute","listToolsResponseSchema","stringify","zodToJsonSchema","handleError","toolIdPathParams","serializedToolSchema","HTTPException","optionalRunIdSchema","executeToolContextBodySchema","executeToolResponseSchema","validateBody","isVercelTool","result","agentToolPathParams","getAgentFromSystem","tool","executeToolBodySchema"],"mappings":"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","file":"chunk-VNHOYZ56.cjs","sourcesContent":["import { isVercelTool } from '@mastra/core/tools';\nimport { zodToJsonSchema } from '@mastra/core/utils/zod-to-json';\nimport { stringify } from 'superjson';\nimport { HTTPException } from '../http-exception';\nimport {\n executeToolContextBodySchema,\n executeToolResponseSchema,\n listToolsResponseSchema,\n serializedToolSchema,\n toolIdPathParams,\n agentToolPathParams,\n executeToolBodySchema,\n} from '../schemas/agents';\nimport { optionalRunIdSchema } from '../schemas/common';\nimport { createRoute } from '../server-adapter/routes/route-builder';\n\nimport { getAgentFromSystem } from './agents';\nimport { handleError } from './error';\nimport { validateBody } from './utils';\n\n// ============================================================================\n// Route Definitions (new pattern - handlers defined inline with createRoute)\n// ============================================================================\n\nexport const LIST_TOOLS_ROUTE = createRoute({\n method: 'GET',\n path: '/tools',\n responseType: 'json',\n responseSchema: listToolsResponseSchema,\n summary: 'List all tools',\n description: 'Returns a list of all available tools in the system',\n tags: ['Tools'],\n requiresAuth: true,\n handler: async ({ mastra, registeredTools }) => {\n try {\n const allTools = registeredTools || mastra.listTools() || {};\n\n const serializedTools = Object.entries(allTools).reduce(\n (acc, [id, _tool]) => {\n // Cast to any since we're serializing to a generic Record<string, any>\n // and the tool types have varying property availability\n const tool = _tool as any;\n acc[id] = {\n ...tool,\n inputSchema: tool.inputSchema ? stringify(zodToJsonSchema(tool.inputSchema)) : undefined,\n outputSchema: tool.outputSchema ? stringify(zodToJsonSchema(tool.outputSchema)) : undefined,\n requestContextSchema: tool.requestContextSchema\n ? stringify(zodToJsonSchema(tool.requestContextSchema))\n : undefined,\n };\n return acc;\n },\n {} as Record<string, any>,\n );\n\n return serializedTools;\n } catch (error) {\n return handleError(error, 'Error getting tools');\n }\n },\n});\n\nexport const GET_TOOL_BY_ID_ROUTE = createRoute({\n method: 'GET',\n path: '/tools/:toolId',\n responseType: 'json',\n pathParamSchema: toolIdPathParams,\n responseSchema: serializedToolSchema,\n summary: 'Get tool by ID',\n description: 'Returns details for a specific tool including its schema and configuration',\n tags: ['Tools'],\n requiresAuth: true,\n handler: async ({ mastra, registeredTools, toolId }) => {\n try {\n let tool: any;\n\n // Try explicit registeredTools first, then fallback to mastra\n if (registeredTools && Object.keys(registeredTools).length > 0) {\n tool = Object.values(registeredTools).find((t: any) => t.id === toolId);\n } else {\n tool = mastra.getToolById(toolId);\n }\n\n if (!tool) {\n throw new HTTPException(404, { message: 'Tool not found' });\n }\n\n const serializedTool = {\n ...tool,\n inputSchema: tool.inputSchema ? stringify(zodToJsonSchema(tool.inputSchema)) : undefined,\n outputSchema: tool.outputSchema ? stringify(zodToJsonSchema(tool.outputSchema)) : undefined,\n requestContextSchema: tool.requestContextSchema\n ? stringify(zodToJsonSchema(tool.requestContextSchema))\n : undefined,\n };\n\n return serializedTool;\n } catch (error) {\n return handleError(error, 'Error getting tool');\n }\n },\n});\n\nexport const EXECUTE_TOOL_ROUTE = createRoute({\n method: 'POST',\n path: '/tools/:toolId/execute',\n responseType: 'json',\n pathParamSchema: toolIdPathParams,\n queryParamSchema: optionalRunIdSchema,\n bodySchema: executeToolContextBodySchema,\n responseSchema: executeToolResponseSchema,\n summary: 'Execute tool',\n description: 'Executes a specific tool with the provided input data',\n tags: ['Tools'],\n requiresAuth: true,\n handler: async ({ mastra, runId, toolId, registeredTools, requestContext, ...bodyParams }) => {\n try {\n if (!toolId) {\n throw new HTTPException(400, { message: 'Tool ID is required' });\n }\n\n let tool: any;\n\n // Try explicit registeredTools first, then fallback to mastra\n if (registeredTools && Object.keys(registeredTools).length > 0) {\n tool = Object.values(registeredTools).find((t: any) => t.id === toolId);\n } else {\n tool = mastra.getToolById(toolId);\n }\n\n if (!tool) {\n throw new HTTPException(404, { message: 'Tool not found' });\n }\n\n if (!tool?.execute) {\n throw new HTTPException(400, { message: 'Tool is not executable' });\n }\n\n const { data } = bodyParams;\n\n validateBody({ data });\n\n if (isVercelTool(tool)) {\n const result = await (tool as any).execute(data);\n return result;\n }\n\n const result = await tool.execute(data!, {\n mastra,\n requestContext,\n // TODO: Pass proper tracing context when server API supports tracing\n tracingContext: { currentSpan: undefined },\n ...(runId\n ? {\n workflow: {\n runId,\n suspend: async () => {},\n },\n }\n : {}),\n });\n return result;\n } catch (error) {\n return handleError(error, 'Error executing tool');\n }\n },\n});\n\n// ============================================================================\n// Agent Tool Routes\n// ============================================================================\n\nexport const GET_AGENT_TOOL_ROUTE = createRoute({\n method: 'GET',\n path: '/agents/:agentId/tools/:toolId',\n responseType: 'json',\n pathParamSchema: agentToolPathParams,\n responseSchema: serializedToolSchema,\n summary: 'Get agent tool',\n description: 'Returns details for a specific tool assigned to the agent',\n tags: ['Agents', 'Tools'],\n requiresAuth: true,\n handler: async ({ mastra, agentId, toolId, requestContext }) => {\n try {\n if (!agentId) {\n throw new HTTPException(400, { message: 'Agent ID is required' });\n }\n const agent = await getAgentFromSystem({ mastra, agentId });\n\n const agentTools = await agent.listTools({ requestContext });\n\n const tool = Object.values(agentTools || {}).find((tool: any) => tool.id === toolId) as any;\n\n if (!tool) {\n throw new HTTPException(404, { message: 'Tool not found' });\n }\n\n const serializedTool = {\n ...tool,\n inputSchema: tool.inputSchema ? stringify(zodToJsonSchema(tool.inputSchema)) : undefined,\n outputSchema: tool.outputSchema ? stringify(zodToJsonSchema(tool.outputSchema)) : undefined,\n requestContextSchema: tool.requestContextSchema\n ? stringify(zodToJsonSchema(tool.requestContextSchema))\n : undefined,\n };\n\n return serializedTool;\n } catch (error) {\n return handleError(error, 'Error getting agent tool');\n }\n },\n});\n\nexport const EXECUTE_AGENT_TOOL_ROUTE = createRoute({\n method: 'POST',\n path: '/agents/:agentId/tools/:toolId/execute',\n responseType: 'json',\n pathParamSchema: agentToolPathParams,\n bodySchema: executeToolBodySchema,\n responseSchema: executeToolResponseSchema,\n summary: 'Execute agent tool',\n description: 'Executes a specific tool assigned to the agent with the provided input data',\n tags: ['Agents', 'Tools'],\n requiresAuth: true,\n handler: async ({ mastra, agentId, toolId, data, requestContext }) => {\n try {\n if (!agentId) {\n throw new HTTPException(400, { message: 'Agent ID is required' });\n }\n const agent = await getAgentFromSystem({ mastra, agentId });\n\n const agentTools = await agent.listTools({ requestContext });\n\n const tool = Object.values(agentTools || {}).find((tool: any) => tool.id === toolId) as any;\n\n if (!tool) {\n throw new HTTPException(404, { message: 'Tool not found' });\n }\n\n if (!tool?.execute) {\n throw new HTTPException(400, { message: 'Tool is not executable' });\n }\n\n const result = await tool.execute(data, {\n mastra,\n requestContext,\n // TODO: Pass proper tracing context when server API supports tracing\n tracingContext: { currentSpan: undefined },\n });\n\n return result;\n } catch (error) {\n return handleError(error, 'Error executing agent tool');\n }\n },\n});\n"]}
@@ -4,7 +4,7 @@ var chunkO7I5CWRX_cjs = require('./chunk-O7I5CWRX.cjs');
4
4
 
5
5
  // ../../node_modules/.pnpm/secure-json-parse@2.7.0/node_modules/secure-json-parse/index.js
6
6
  var require_secure_json_parse = chunkO7I5CWRX_cjs.__commonJS({
7
- "../../node_modules/.pnpm/secure-json-parse@2.7.0/node_modules/secure-json-parse/index.js"(exports, module) {
7
+ "../../node_modules/.pnpm/secure-json-parse@2.7.0/node_modules/secure-json-parse/index.js"(exports$1, module) {
8
8
  var hasBuffer = typeof Buffer !== "undefined";
9
9
  var suspectProtoRx = /"(?:_|\\u005[Ff])(?:_|\\u005[Ff])(?:p|\\u0070)(?:r|\\u0072)(?:o|\\u006[Ff])(?:t|\\u0074)(?:o|\\u006[Ff])(?:_|\\u005[Ff])(?:_|\\u005[Ff])"\s*:/;
10
10
  var suspectConstructorRx = /"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/;