@mastra/server 1.80.0-alpha.3 → 1.80.0-alpha.4

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 (475) hide show
  1. package/dist/_types/@internal_core/dist/storage/index.d.ts +0 -12
  2. package/dist/_types/@internal_voice/dist/_types/@internal_core/dist/request-context/index.d.ts +0 -2
  3. package/dist/_types/@internal_voice/dist/_types/@internal_core/dist/routes/index.d.ts +0 -2
  4. package/dist/_types/@internal_voice/dist/_types/@internal_core/dist/types/index.d.ts +0 -2
  5. package/dist/_types/@mastra_schema-compat/dist/_types/@internal_ai-sdk-v5/dist/index.d.ts +65 -13
  6. package/dist/_types/@mastra_schema-compat/dist/_types/@internal_ai-v6/dist/index.d.ts +110 -35
  7. package/dist/{a2a-DKGBctKT.js → a2a-B2K45wEY.js} +13 -21
  8. package/dist/{a2a-DKGBctKT.js.map → a2a-B2K45wEY.js.map} +1 -1
  9. package/dist/{a2a-BKtK_s5o.cjs → a2a-BUOtgjP-.cjs} +14 -22
  10. package/dist/{a2a-BKtK_s5o.cjs.map → a2a-BUOtgjP-.cjs.map} +1 -1
  11. package/dist/{a2a-CBl-c-lm.cjs → a2a-BsBYrosr.cjs} +2 -3
  12. package/dist/{a2a-CBl-c-lm.cjs.map → a2a-BsBYrosr.cjs.map} +1 -1
  13. package/dist/{a2a-BS0gTQk3.js → a2a-C3ClP3C2.js} +2 -3
  14. package/dist/{a2a-BS0gTQk3.js.map → a2a-C3ClP3C2.js.map} +1 -1
  15. package/dist/{agent-builder-DDYdQvlQ.cjs → agent-builder-9-GSvpgR.cjs} +3 -4
  16. package/dist/{agent-builder-DDYdQvlQ.cjs.map → agent-builder-9-GSvpgR.cjs.map} +1 -1
  17. package/dist/{agent-builder-C-U5USc5.js → agent-builder-BEhoRLS_.js} +12 -13
  18. package/dist/{agent-builder-C-U5USc5.js.map → agent-builder-BEhoRLS_.js.map} +1 -1
  19. package/dist/{agent-builder-us2nwcWc.cjs → agent-builder-CTHPsm8d.cjs} +12 -13
  20. package/dist/{agent-builder-us2nwcWc.cjs.map → agent-builder-CTHPsm8d.cjs.map} +1 -1
  21. package/dist/{agent-builder-B8kc4OBs.js → agent-builder-Cr-52Ulb.js} +3 -4
  22. package/dist/{agent-builder-B8kc4OBs.js.map → agent-builder-Cr-52Ulb.js.map} +1 -1
  23. package/dist/{agent-versions-CzXJWn1T.cjs → agent-versions-De5bRBaa.cjs} +5 -6
  24. package/dist/{agent-versions-CzXJWn1T.cjs.map → agent-versions-De5bRBaa.cjs.map} +1 -1
  25. package/dist/{agent-versions-W600H1ME.js → agent-versions-Pa-ABszp.js} +5 -6
  26. package/dist/{agent-versions-W600H1ME.js.map → agent-versions-Pa-ABszp.js.map} +1 -1
  27. package/dist/{agents-D1-fgNeb.js → agents-A-ahR0eQ.js} +5 -6
  28. package/dist/{agents-D1-fgNeb.js.map → agents-A-ahR0eQ.js.map} +1 -1
  29. package/dist/{agents-BYE5Dmfk.js → agents-DSZgApzs.js} +12 -13
  30. package/dist/{agents-BYE5Dmfk.js.map → agents-DSZgApzs.js.map} +1 -1
  31. package/dist/{agents-AyHEkc2F.cjs → agents-I0TVb_TM.cjs} +13 -14
  32. package/dist/{agents-AyHEkc2F.cjs.map → agents-I0TVb_TM.cjs.map} +1 -1
  33. package/dist/{agents-B1EiIdRs.cjs → agents-vFpMvK3w.cjs} +5 -6
  34. package/dist/{agents-B1EiIdRs.cjs.map → agents-vFpMvK3w.cjs.map} +1 -1
  35. package/dist/{api-schema-manifest-BaF6TE9d.cjs → api-schema-manifest-DCuGBEO0.cjs} +5 -6
  36. package/dist/{api-schema-manifest-BaF6TE9d.cjs.map → api-schema-manifest-DCuGBEO0.cjs.map} +1 -1
  37. package/dist/{api-schema-manifest-A066IsPX.js → api-schema-manifest-j2xurBb0.js} +4 -5
  38. package/dist/{api-schema-manifest-A066IsPX.js.map → api-schema-manifest-j2xurBb0.js.map} +1 -1
  39. package/dist/{auth-B8fQdEg-.cjs → auth-CM5AgF9l.cjs} +2 -3
  40. package/dist/{auth-B8fQdEg-.cjs.map → auth-CM5AgF9l.cjs.map} +1 -1
  41. package/dist/{auth-CZFXpwba.js → auth-CjT_a76k.js} +2 -3
  42. package/dist/{auth-CZFXpwba.js.map → auth-CjT_a76k.js.map} +1 -1
  43. package/dist/{background-tasks-B3VAKTJh.cjs → background-tasks-BMVUFtVh.cjs} +7 -9
  44. package/dist/{background-tasks-B3VAKTJh.cjs.map → background-tasks-BMVUFtVh.cjs.map} +1 -1
  45. package/dist/{background-tasks-Du2zYOPl.js → background-tasks-CFkXHgyQ.js} +7 -9
  46. package/dist/{background-tasks-Du2zYOPl.js.map → background-tasks-CFkXHgyQ.js.map} +1 -1
  47. package/dist/{builder-registry-DLdu9bWH.js → builder-registry-CtGv0Gj6.js} +7 -9
  48. package/dist/{builder-registry-DLdu9bWH.js.map → builder-registry-CtGv0Gj6.js.map} +1 -1
  49. package/dist/{builder-registry-DaFAaMTf.cjs → builder-registry-DWusXgse.cjs} +7 -9
  50. package/dist/{builder-registry-DaFAaMTf.cjs.map → builder-registry-DWusXgse.cjs.map} +1 -1
  51. package/dist/{channels-BnVRmnzK.cjs → channels-EqvuQQbv.cjs} +6 -8
  52. package/dist/{channels-BnVRmnzK.cjs.map → channels-EqvuQQbv.cjs.map} +1 -1
  53. package/dist/{channels-Db-4pXVZ.js → channels-LNR2QIkc.js} +6 -8
  54. package/dist/{channels-Db-4pXVZ.js.map → channels-LNR2QIkc.js.map} +1 -1
  55. package/dist/{common-DhKNoXGp.cjs → common-DVZqSEhZ.cjs} +2 -3
  56. package/dist/{common-DhKNoXGp.cjs.map → common-DVZqSEhZ.cjs.map} +1 -1
  57. package/dist/{common-Y30XtCyr.js → common-xUmaFUop.js} +2 -3
  58. package/dist/{common-Y30XtCyr.js.map → common-xUmaFUop.js.map} +1 -1
  59. package/dist/{constants-e7aaPCLj.cjs → constants-Co1XjPjd.cjs} +2 -3
  60. package/dist/{constants-e7aaPCLj.cjs.map → constants-Co1XjPjd.cjs.map} +1 -1
  61. package/dist/{constants-DazK_RZj.js → constants-ohUUT3Vg.js} +2 -3
  62. package/dist/{constants-DazK_RZj.js.map → constants-ohUUT3Vg.js.map} +1 -1
  63. package/dist/{conversations-DasqEDCF.cjs → conversations-BPQNrv5g.cjs} +5 -6
  64. package/dist/{conversations-DasqEDCF.cjs.map → conversations-BPQNrv5g.cjs.map} +1 -1
  65. package/dist/{conversations-DzuWI3w-.cjs → conversations-BSYZlASE.cjs} +8 -9
  66. package/dist/{conversations-DzuWI3w-.cjs.map → conversations-BSYZlASE.cjs.map} +1 -1
  67. package/dist/{conversations-D-ew5IXn.js → conversations-BfBS1UwQ.js} +8 -9
  68. package/dist/{conversations-D-ew5IXn.js.map → conversations-BfBS1UwQ.js.map} +1 -1
  69. package/dist/{conversations-BzBHVFYe.js → conversations-nNko6-H4.js} +4 -5
  70. package/dist/{conversations-BzBHVFYe.js.map → conversations-nNko6-H4.js.map} +1 -1
  71. package/dist/{datasets-Cgtczd13.cjs → datasets-BP2O5CSR.cjs} +3 -4
  72. package/dist/{datasets-Cgtczd13.cjs.map → datasets-BP2O5CSR.cjs.map} +1 -1
  73. package/dist/{datasets-FRp69Mwv.js → datasets-hLmYapTk.js} +3 -4
  74. package/dist/{datasets-FRp69Mwv.js.map → datasets-hLmYapTk.js.map} +1 -1
  75. package/dist/{default-options-C7tykjLq.cjs → default-options-DRN81WEQ.cjs} +2 -3
  76. package/dist/{default-options-C7tykjLq.cjs.map → default-options-DRN81WEQ.cjs.map} +1 -1
  77. package/dist/{default-options-oSlrqpuP.js → default-options-Dir6CKnE.js} +2 -3
  78. package/dist/{default-options-oSlrqpuP.js.map → default-options-Dir6CKnE.js.map} +1 -1
  79. package/dist/{dist-lT2rqyY9.cjs → dist-36GZrEvk.cjs} +4 -5
  80. package/dist/{dist-lT2rqyY9.cjs.map → dist-36GZrEvk.cjs.map} +1 -1
  81. package/dist/{dist-CeTLA-e5.cjs → dist-BZGewCGq.cjs} +6 -10
  82. package/dist/{dist-CeTLA-e5.cjs.map → dist-BZGewCGq.cjs.map} +1 -1
  83. package/dist/{dist-Bo3GdQwf.cjs → dist-Bal15xNO.cjs} +5 -7
  84. package/dist/{dist-Bo3GdQwf.cjs.map → dist-Bal15xNO.cjs.map} +1 -1
  85. package/dist/{dist-DjkPkAzV.js → dist-CNjm6d2Q.js} +5 -8
  86. package/dist/{dist-DjkPkAzV.js.map → dist-CNjm6d2Q.js.map} +1 -1
  87. package/dist/{dist-DLld1qjf.js → dist-CVoi_Dov.js} +3 -4
  88. package/dist/{dist-DLld1qjf.js.map → dist-CVoi_Dov.js.map} +1 -1
  89. package/dist/{dist-CukR8zi9.cjs → dist-Cci9RRWj.cjs} +1518 -667
  90. package/dist/dist-Cci9RRWj.cjs.map +1 -0
  91. package/dist/{dist-DsrJXwic.cjs → dist-D02J6PZG.cjs} +4 -5
  92. package/dist/{dist-DsrJXwic.cjs.map → dist-D02J6PZG.cjs.map} +1 -1
  93. package/dist/{dist-CREG82cy.js → dist-DC9qnRcv.js} +3 -4
  94. package/dist/{dist-CREG82cy.js.map → dist-DC9qnRcv.js.map} +1 -1
  95. package/dist/dist-DJ3281Ve.cjs +3 -0
  96. package/dist/{dist-BIrQLUV9.js → dist-Dc0g0QSi.js} +4 -6
  97. package/dist/{dist-BIrQLUV9.js.map → dist-Dc0g0QSi.js.map} +1 -1
  98. package/dist/{dist-BBOnrL_A.js → dist-Dwfkbwzg.js} +3 -4
  99. package/dist/{dist-BBOnrL_A.js.map → dist-Dwfkbwzg.js.map} +1 -1
  100. package/dist/{dist-5TAg2f91.js → dist-bAoX6ick.js} +1512 -660
  101. package/dist/dist-bAoX6ick.js.map +1 -0
  102. package/dist/{dist-B9ery9Zw.cjs → dist-lG-fYW7-.cjs} +4 -5
  103. package/dist/{dist-B9ery9Zw.cjs.map → dist-lG-fYW7-.cjs.map} +1 -1
  104. package/dist/dist-t_05BTrR.js +1 -0
  105. package/dist/docs/SKILL.md +1 -1
  106. package/dist/docs/assets/SOURCE_MAP.json +1 -1
  107. package/dist/docs/references/docs-server-custom-adapters.md +53 -1
  108. package/dist/docs/references/docs-server-custom-api-routes.md +2 -0
  109. package/dist/{dynamic-workflows-HwPX3mcf.cjs → dynamic-workflows-CpCkqM1g.cjs} +6 -8
  110. package/dist/{dynamic-workflows-HwPX3mcf.cjs.map → dynamic-workflows-CpCkqM1g.cjs.map} +1 -1
  111. package/dist/{dynamic-workflows-CTUO0SFu.js → dynamic-workflows-DDauBnDt.js} +6 -8
  112. package/dist/{dynamic-workflows-CTUO0SFu.js.map → dynamic-workflows-DDauBnDt.js.map} +1 -1
  113. package/dist/{editor-builder-BSBHrTzY.cjs → editor-builder-8li-nXor.cjs} +3 -4
  114. package/dist/{editor-builder-BSBHrTzY.cjs.map → editor-builder-8li-nXor.cjs.map} +1 -1
  115. package/dist/{editor-builder-DCrTMwA4.js → editor-builder-BCZy1ZH1.js} +3 -4
  116. package/dist/{editor-builder-DCrTMwA4.js.map → editor-builder-BCZy1ZH1.js.map} +1 -1
  117. package/dist/{editor-builder-Bibw1X4q.cjs → editor-builder-BXT6F3Hl.cjs} +7 -9
  118. package/dist/{editor-builder-Bibw1X4q.cjs.map → editor-builder-BXT6F3Hl.cjs.map} +1 -1
  119. package/dist/{editor-builder-Dq03QZzH.js → editor-builder-Bywazgj1.js} +7 -9
  120. package/dist/{editor-builder-Dq03QZzH.js.map → editor-builder-Bywazgj1.js.map} +1 -1
  121. package/dist/{favorites-DWDyKxts.js → favorites-8aieznq3.js} +2 -3
  122. package/dist/{favorites-DWDyKxts.js.map → favorites-8aieznq3.js.map} +1 -1
  123. package/dist/{favorites-D1-AzGsK.cjs → favorites-D0CoxxQn.cjs} +2 -3
  124. package/dist/{favorites-D1-AzGsK.cjs.map → favorites-D0CoxxQn.cjs.map} +1 -1
  125. package/dist/{helpers-CewFtCva.cjs → helpers-CE1fJdLM.cjs} +6 -9
  126. package/dist/{helpers-CewFtCva.cjs.map → helpers-CE1fJdLM.cjs.map} +1 -1
  127. package/dist/{helpers-CxSa9O3X.js → helpers-CMCXsowL.js} +6 -9
  128. package/dist/{helpers-CxSa9O3X.js.map → helpers-CMCXsowL.js.map} +1 -1
  129. package/dist/{http-exception-CKDHupKw.cjs → http-exception-Co3MbFUf.cjs} +2 -3
  130. package/dist/{http-exception-CKDHupKw.cjs.map → http-exception-Co3MbFUf.cjs.map} +1 -1
  131. package/dist/{http-exception-CyfxZB6W.js → http-exception-CzaWkxMl.js} +2 -3
  132. package/dist/{http-exception-CyfxZB6W.js.map → http-exception-CzaWkxMl.js.map} +1 -1
  133. package/dist/index.cjs +2 -3
  134. package/dist/index.js +1 -2
  135. package/dist/{logs-CiSw7r0s.cjs → logs-BqHVVZBm.cjs} +7 -8
  136. package/dist/{logs-CiSw7r0s.cjs.map → logs-BqHVVZBm.cjs.map} +1 -1
  137. package/dist/{logs-CY8AGOCO.cjs → logs-CC6IycDY.cjs} +3 -4
  138. package/dist/{logs-CY8AGOCO.cjs.map → logs-CC6IycDY.cjs.map} +1 -1
  139. package/dist/{logs-CxfPk-iL.js → logs-Cbq2PiQG.js} +7 -8
  140. package/dist/{logs-CxfPk-iL.js.map → logs-Cbq2PiQG.js.map} +1 -1
  141. package/dist/{logs-Bd_xpsYw.js → logs-DpyTCDyt.js} +3 -4
  142. package/dist/{logs-Bd_xpsYw.js.map → logs-DpyTCDyt.js.map} +1 -1
  143. package/dist/{mcp-ziWVk7Ol.cjs → mcp-4iUBgZ7s.cjs} +3 -4
  144. package/dist/{mcp-ziWVk7Ol.cjs.map → mcp-4iUBgZ7s.cjs.map} +1 -1
  145. package/dist/{mcp-CWDfSu7w.js → mcp-CnV25lv0.js} +6 -7
  146. package/dist/{mcp-CWDfSu7w.js.map → mcp-CnV25lv0.js.map} +1 -1
  147. package/dist/{mcp-CWGJRqkC.cjs → mcp-DegWUDeB.cjs} +6 -7
  148. package/dist/{mcp-CWGJRqkC.cjs.map → mcp-DegWUDeB.cjs.map} +1 -1
  149. package/dist/{mcp-Drqt0GqD.js → mcp-DgdKiptb.js} +3 -4
  150. package/dist/{mcp-Drqt0GqD.js.map → mcp-DgdKiptb.js.map} +1 -1
  151. package/dist/{mcp-client-versions-DxBkzcYH.js → mcp-client-versions-B471u-DI.js} +3 -4
  152. package/dist/{mcp-client-versions-DxBkzcYH.js.map → mcp-client-versions-B471u-DI.js.map} +1 -1
  153. package/dist/{mcp-client-versions-Cq97zXiK.cjs → mcp-client-versions-HRTe5cRT.cjs} +3 -4
  154. package/dist/{mcp-client-versions-Cq97zXiK.cjs.map → mcp-client-versions-HRTe5cRT.cjs.map} +1 -1
  155. package/dist/{memory-CizEIbl1.cjs → memory-BnPGDrdg.cjs} +4 -5
  156. package/dist/{memory-CizEIbl1.cjs.map → memory-BnPGDrdg.cjs.map} +1 -1
  157. package/dist/{memory-B58Q2LgU.js → memory-CZ2ELVP0.js} +4 -5
  158. package/dist/{memory-B58Q2LgU.js.map → memory-CZ2ELVP0.js.map} +1 -1
  159. package/dist/{memory-BHtTSzvJ.js → memory-CtSwODLV.js} +7 -8
  160. package/dist/{memory-BHtTSzvJ.js.map → memory-CtSwODLV.js.map} +1 -1
  161. package/dist/{memory-CwwkVDh1.cjs → memory-dujCippo.cjs} +7 -8
  162. package/dist/{memory-CwwkVDh1.cjs.map → memory-dujCippo.cjs.map} +1 -1
  163. package/dist/{message-history-_kbQlA4r.js → message-history-BBVH-ORZ.js} +2 -3
  164. package/dist/{message-history-_kbQlA4r.js.map → message-history-BBVH-ORZ.js.map} +1 -1
  165. package/dist/{message-history-CkUYxSaS.cjs → message-history-CtELj716.cjs} +2 -3
  166. package/dist/{message-history-CkUYxSaS.cjs.map → message-history-CtELj716.cjs.map} +1 -1
  167. package/dist/{observability-Dz9jvMJ3.js → observability-65rZOqJk.js} +6 -7
  168. package/dist/{observability-Dz9jvMJ3.js.map → observability-65rZOqJk.js.map} +1 -1
  169. package/dist/{observability-C2BZQ2jU.cjs → observability-CFKSxaff.cjs} +6 -7
  170. package/dist/{observability-C2BZQ2jU.cjs.map → observability-CFKSxaff.cjs.map} +1 -1
  171. package/dist/{observability-new-endpoints-3DlTYf34.js → observability-new-endpoints-B6MRJ5Rb.js} +8 -11
  172. package/dist/observability-new-endpoints-B6MRJ5Rb.js.map +1 -0
  173. package/dist/{observability-new-endpoints-Drr7q2Dj.cjs → observability-new-endpoints-CDeHfFNP.cjs} +9 -12
  174. package/dist/observability-new-endpoints-CDeHfFNP.cjs.map +1 -0
  175. package/dist/{plans-DZAJG1Et.cjs → plans-CSLB_JKn.cjs} +8 -9
  176. package/dist/{plans-DZAJG1Et.cjs.map → plans-CSLB_JKn.cjs.map} +1 -1
  177. package/dist/{plans-CKbStbWl.js → plans-DToC_H5z.js} +8 -9
  178. package/dist/{plans-CKbStbWl.js.map → plans-DToC_H5z.js.map} +1 -1
  179. package/dist/{probe-image-size-l1uuhbob.cjs → probe-image-size-CTKFNI9H.cjs} +69 -120
  180. package/dist/probe-image-size-CTKFNI9H.cjs.map +1 -0
  181. package/dist/{probe-image-size-DBmo2MAe.js → probe-image-size-DnRk0ecb.js} +69 -120
  182. package/dist/probe-image-size-DnRk0ecb.js.map +1 -0
  183. package/dist/{processor-providers-DHvTA9AL.cjs → processor-providers-CRrcV9ra.cjs} +2 -3
  184. package/dist/{processor-providers-DHvTA9AL.cjs.map → processor-providers-CRrcV9ra.cjs.map} +1 -1
  185. package/dist/{processor-providers-DBhZC6-4.js → processor-providers-WHdDe4aA.js} +2 -3
  186. package/dist/{processor-providers-DBhZC6-4.js.map → processor-providers-WHdDe4aA.js.map} +1 -1
  187. package/dist/{processors-80HWq8nr.cjs → processors-BEut-2a-.cjs} +2 -3
  188. package/dist/{processors-80HWq8nr.cjs.map → processors-BEut-2a-.cjs.map} +1 -1
  189. package/dist/{processors-33IULT8X.js → processors-IhyRC0xH.js} +2 -3
  190. package/dist/{processors-33IULT8X.js.map → processors-IhyRC0xH.js.map} +1 -1
  191. package/dist/{prompt-block-versions-Cl3Lh4H-.cjs → prompt-block-versions-BUPyaY8g.cjs} +4 -5
  192. package/dist/{prompt-block-versions-Cl3Lh4H-.cjs.map → prompt-block-versions-BUPyaY8g.cjs.map} +1 -1
  193. package/dist/{prompt-block-versions-cfq_e1Zi.js → prompt-block-versions-D1gjBkQx.js} +4 -5
  194. package/dist/{prompt-block-versions-cfq_e1Zi.js.map → prompt-block-versions-D1gjBkQx.js.map} +1 -1
  195. package/dist/{responses-CfcIc53b.cjs → responses-CTiwnWeF.cjs} +3 -4
  196. package/dist/{responses-CfcIc53b.cjs.map → responses-CTiwnWeF.cjs.map} +1 -1
  197. package/dist/{responses-DJNJgCTg.js → responses-D-fsDRLd.js} +2 -3
  198. package/dist/{responses-DJNJgCTg.js.map → responses-D-fsDRLd.js.map} +1 -1
  199. package/dist/{responses-BubMB79l.cjs → responses-OoIIZ1g6.cjs} +8 -9
  200. package/dist/{responses-BubMB79l.cjs.map → responses-OoIIZ1g6.cjs.map} +1 -1
  201. package/dist/{responses-jiVC-1lx.js → responses-w6B0iv_t.js} +8 -9
  202. package/dist/{responses-jiVC-1lx.js.map → responses-w6B0iv_t.js.map} +1 -1
  203. package/dist/{rolldown-runtime-BwC_XMyb.cjs → rolldown-runtime-10nMEhjP.cjs} +1 -2
  204. package/dist/{rolldown-runtime-D3Hj5m0v.js → rolldown-runtime-CQI-hT2b.js} +1 -2
  205. package/dist/{route-builder-CjkWxv4E.js → route-builder-BxPrwNog.js} +6 -10
  206. package/dist/route-builder-BxPrwNog.js.map +1 -0
  207. package/dist/{route-builder-B2Qhhd7C.cjs → route-builder-CvARmqnA.cjs} +8 -12
  208. package/dist/route-builder-CvARmqnA.cjs.map +1 -0
  209. package/dist/{routes-DKV9oxFW.js → routes-CIjXlRu7.js} +59 -92
  210. package/dist/{routes-DKV9oxFW.js.map → routes-CIjXlRu7.js.map} +1 -1
  211. package/dist/{routes-jXksmX9G.cjs → routes-CtGp_lBn.cjs} +4 -7
  212. package/dist/routes-CtGp_lBn.cjs.map +1 -0
  213. package/dist/{routes-D6bDACPd.cjs → routes-KTxoRutQ.cjs} +59 -92
  214. package/dist/{routes-D6bDACPd.cjs.map → routes-KTxoRutQ.cjs.map} +1 -1
  215. package/dist/{routes-CKfXiwRc.js → routes-MRZFTKei.js} +4 -7
  216. package/dist/routes-MRZFTKei.js.map +1 -0
  217. package/dist/{rule-group-C5eydl98.js → rule-group-4pWeG61q.js} +2 -3
  218. package/dist/{rule-group-C5eydl98.js.map → rule-group-4pWeG61q.js.map} +1 -1
  219. package/dist/{rule-group-Hyn4rN52.cjs → rule-group-CIacr-Zz.cjs} +2 -3
  220. package/dist/{rule-group-Hyn4rN52.cjs.map → rule-group-CIacr-Zz.cjs.map} +1 -1
  221. package/dist/{schedules-GokZKBYg.cjs → schedules-CSkQFQwy.cjs} +6 -8
  222. package/dist/{schedules-GokZKBYg.cjs.map → schedules-CSkQFQwy.cjs.map} +1 -1
  223. package/dist/{schedules-_3zPKyqm.js → schedules-DfelziYe.js} +6 -8
  224. package/dist/{schedules-_3zPKyqm.js.map → schedules-DfelziYe.js.map} +1 -1
  225. package/dist/{schema-CzbEIyhE-BsMcj9Ws.js → schema-Bf12g7KC-DBc4NSds.js} +104 -35
  226. package/dist/schema-Bf12g7KC-DBc4NSds.js.map +1 -0
  227. package/dist/{schema-CzbEIyhE-20gGIWkz.cjs → schema-Bf12g7KC-plP4Ir6h.cjs} +105 -36
  228. package/dist/schema-Bf12g7KC-plP4Ir6h.cjs.map +1 -0
  229. package/dist/{scorer-versions-CX8RM9a6.js → scorer-versions-DIqKt2kn.js} +4 -5
  230. package/dist/{scorer-versions-CX8RM9a6.js.map → scorer-versions-DIqKt2kn.js.map} +1 -1
  231. package/dist/{scorer-versions-DeCS12ym.cjs → scorer-versions-r7C61gWf.cjs} +4 -5
  232. package/dist/{scorer-versions-DeCS12ym.cjs.map → scorer-versions-r7C61gWf.cjs.map} +1 -1
  233. package/dist/{scores-CetVKM4g.cjs → scores-Bu70OP1U.cjs} +3 -4
  234. package/dist/{scores-CetVKM4g.cjs.map → scores-Bu70OP1U.cjs.map} +1 -1
  235. package/dist/{scores-BbqFfKcy.js → scores-DZ1hftoG.js} +3 -4
  236. package/dist/{scores-BbqFfKcy.js.map → scores-DZ1hftoG.js.map} +1 -1
  237. package/dist/{scores-C8XPZcwt.cjs → scores-FzL-bpCC.cjs} +8 -9
  238. package/dist/{scores-C8XPZcwt.cjs.map → scores-FzL-bpCC.cjs.map} +1 -1
  239. package/dist/{scores-BWTo-_L5.js → scores-PdRDQNaC.js} +8 -9
  240. package/dist/{scores-BWTo-_L5.js.map → scores-PdRDQNaC.js.map} +1 -1
  241. package/dist/server/a2a/store.cjs +2 -3
  242. package/dist/server/a2a/store.js +1 -2
  243. package/dist/server/auth/index.cjs +3 -3
  244. package/dist/server/auth/index.js +2 -2
  245. package/dist/server/browser-stream/index.cjs +3 -5
  246. package/dist/server/browser-stream/index.cjs.map +1 -1
  247. package/dist/server/browser-stream/index.js +2 -4
  248. package/dist/server/browser-stream/index.js.map +1 -1
  249. package/dist/server/handlers/a2a.cjs +2 -2
  250. package/dist/server/handlers/a2a.js +1 -1
  251. package/dist/server/handlers/agent-builder.cjs +2 -2
  252. package/dist/server/handlers/agent-builder.js +1 -1
  253. package/dist/server/handlers/agent-controller.cjs +7 -8
  254. package/dist/server/handlers/agent-controller.js +6 -7
  255. package/dist/server/handlers/agent-versions.cjs +7 -8
  256. package/dist/server/handlers/agent-versions.js +6 -7
  257. package/dist/server/handlers/agents.cjs +2 -2
  258. package/dist/server/handlers/agents.js +1 -1
  259. package/dist/server/handlers/auth.cjs +7 -8
  260. package/dist/server/handlers/auth.js +6 -7
  261. package/dist/server/handlers/author-enrichment.cjs +2 -3
  262. package/dist/server/handlers/author-enrichment.js +1 -2
  263. package/dist/server/handlers/authorship.cjs +4 -5
  264. package/dist/server/handlers/authorship.js +3 -4
  265. package/dist/server/handlers/background-tasks.cjs +2 -2
  266. package/dist/server/handlers/background-tasks.js +1 -1
  267. package/dist/server/handlers/builder-registry.cjs +2 -2
  268. package/dist/server/handlers/builder-registry.js +1 -1
  269. package/dist/server/handlers/channels.cjs +2 -2
  270. package/dist/server/handlers/channels.js +1 -1
  271. package/dist/server/handlers/conversations.cjs +2 -2
  272. package/dist/server/handlers/conversations.js +1 -1
  273. package/dist/server/handlers/datasets.cjs +7 -8
  274. package/dist/server/handlers/datasets.js +6 -7
  275. package/dist/server/handlers/dynamic-workflows.cjs +2 -2
  276. package/dist/server/handlers/dynamic-workflows.js +1 -1
  277. package/dist/server/handlers/editor-builder.cjs +2 -2
  278. package/dist/server/handlers/editor-builder.js +1 -1
  279. package/dist/server/handlers/error.cjs +3 -4
  280. package/dist/server/handlers/error.js +2 -3
  281. package/dist/server/handlers/favorites-enrichment.cjs +3 -4
  282. package/dist/server/handlers/favorites-enrichment.js +2 -3
  283. package/dist/server/handlers/gateway-memory-client.cjs +2 -3
  284. package/dist/server/handlers/gateway-memory-client.js +1 -2
  285. package/dist/server/handlers/logs.cjs +2 -2
  286. package/dist/server/handlers/logs.js +1 -1
  287. package/dist/server/handlers/mcp-client-versions.cjs +6 -7
  288. package/dist/server/handlers/mcp-client-versions.js +5 -6
  289. package/dist/server/handlers/mcp.cjs +2 -2
  290. package/dist/server/handlers/mcp.js +1 -1
  291. package/dist/server/handlers/memory.cjs +2 -2
  292. package/dist/server/handlers/memory.js +1 -1
  293. package/dist/server/handlers/observability-list-query-schemas.cjs +2 -3
  294. package/dist/server/handlers/observability-list-query-schemas.js +1 -2
  295. package/dist/server/handlers/observability-new-endpoints.cjs +2 -2
  296. package/dist/server/handlers/observability-new-endpoints.js +1 -1
  297. package/dist/server/handlers/observability-shared.cjs +4 -5
  298. package/dist/server/handlers/observability-shared.js +3 -4
  299. package/dist/server/handlers/observability-storage-schemas.cjs +2 -3
  300. package/dist/server/handlers/observability-storage-schemas.js +1 -2
  301. package/dist/server/handlers/observability.cjs +3 -3
  302. package/dist/server/handlers/observability.js +2 -2
  303. package/dist/server/handlers/plans.cjs +2 -2
  304. package/dist/server/handlers/plans.js +1 -1
  305. package/dist/server/handlers/processor-providers.cjs +5 -6
  306. package/dist/server/handlers/processor-providers.js +4 -5
  307. package/dist/server/handlers/processors.cjs +5 -6
  308. package/dist/server/handlers/processors.js +4 -5
  309. package/dist/server/handlers/prompt-block-versions.cjs +6 -7
  310. package/dist/server/handlers/prompt-block-versions.js +5 -6
  311. package/dist/server/handlers/responses.adapter.cjs +2 -3
  312. package/dist/server/handlers/responses.adapter.js +1 -2
  313. package/dist/server/handlers/responses.cjs +2 -2
  314. package/dist/server/handlers/responses.js +1 -1
  315. package/dist/server/handlers/responses.storage.cjs +4 -5
  316. package/dist/server/handlers/responses.storage.js +3 -4
  317. package/dist/server/handlers/schedules-workflows-shim.cjs +2 -3
  318. package/dist/server/handlers/schedules-workflows-shim.js +1 -2
  319. package/dist/server/handlers/schedules.cjs +2 -2
  320. package/dist/server/handlers/schedules.js +1 -1
  321. package/dist/server/handlers/scorer-versions.cjs +6 -7
  322. package/dist/server/handlers/scorer-versions.js +5 -6
  323. package/dist/server/handlers/scores.cjs +2 -2
  324. package/dist/server/handlers/scores.js +1 -1
  325. package/dist/server/handlers/skills-sh-shared.cjs +3 -4
  326. package/dist/server/handlers/skills-sh-shared.js +2 -3
  327. package/dist/server/handlers/stored-agent-favorites.cjs +8 -9
  328. package/dist/server/handlers/stored-agent-favorites.js +7 -8
  329. package/dist/server/handlers/stored-agents.cjs +8 -9
  330. package/dist/server/handlers/stored-agents.js +7 -8
  331. package/dist/server/handlers/stored-mcp-clients.cjs +7 -8
  332. package/dist/server/handlers/stored-mcp-clients.js +6 -7
  333. package/dist/server/handlers/stored-prompt-blocks.cjs +7 -8
  334. package/dist/server/handlers/stored-prompt-blocks.js +6 -7
  335. package/dist/server/handlers/stored-scorers.cjs +7 -8
  336. package/dist/server/handlers/stored-scorers.js +6 -7
  337. package/dist/server/handlers/stored-skill-favorites.cjs +8 -9
  338. package/dist/server/handlers/stored-skill-favorites.js +7 -8
  339. package/dist/server/handlers/stored-skills.cjs +7 -8
  340. package/dist/server/handlers/stored-skills.js +6 -7
  341. package/dist/server/handlers/stored-workspaces.cjs +6 -7
  342. package/dist/server/handlers/stored-workspaces.js +5 -6
  343. package/dist/server/handlers/system.cjs +5 -6
  344. package/dist/server/handlers/system.js +4 -5
  345. package/dist/server/handlers/test-utils.cjs +2 -3
  346. package/dist/server/handlers/test-utils.js +1 -2
  347. package/dist/server/handlers/tool-providers.cjs +6 -7
  348. package/dist/server/handlers/tool-providers.js +5 -6
  349. package/dist/server/handlers/tool-schema-overrides.cjs +2 -3
  350. package/dist/server/handlers/tool-schema-overrides.js +1 -2
  351. package/dist/server/handlers/tools.cjs +2 -2
  352. package/dist/server/handlers/tools.js +1 -1
  353. package/dist/server/handlers/utils.cjs +2 -2
  354. package/dist/server/handlers/utils.js +1 -1
  355. package/dist/server/handlers/validate-agent-instructions.cjs +4 -5
  356. package/dist/server/handlers/validate-agent-instructions.js +3 -4
  357. package/dist/server/handlers/validate-avatar.cjs +3 -4
  358. package/dist/server/handlers/validate-avatar.js +2 -3
  359. package/dist/server/handlers/vector.cjs +2 -2
  360. package/dist/server/handlers/vector.js +1 -1
  361. package/dist/server/handlers/version-helpers.cjs +2 -3
  362. package/dist/server/handlers/version-helpers.js +1 -2
  363. package/dist/server/handlers/voice.cjs +2 -2
  364. package/dist/server/handlers/voice.js +1 -1
  365. package/dist/server/handlers/workflow-builder.cjs +2 -2
  366. package/dist/server/handlers/workflow-builder.js +1 -1
  367. package/dist/server/handlers/workflows.cjs +2 -2
  368. package/dist/server/handlers/workflows.js +1 -1
  369. package/dist/server/handlers/workspace.cjs +2 -2
  370. package/dist/server/handlers/workspace.js +1 -1
  371. package/dist/server/handlers.cjs +18 -18
  372. package/dist/server/handlers.js +17 -17
  373. package/dist/server/schemas/index.cjs +35 -35
  374. package/dist/server/schemas/index.js +34 -34
  375. package/dist/server/server-adapter/index.cjs +14 -21
  376. package/dist/server/server-adapter/index.cjs.map +1 -1
  377. package/dist/server/server-adapter/index.js +13 -20
  378. package/dist/server/server-adapter/index.js.map +1 -1
  379. package/dist/{stored-agents-BtaEzKfr.js → stored-agents-BpxMmhtz.js} +9 -11
  380. package/dist/{stored-agents-BtaEzKfr.js.map → stored-agents-BpxMmhtz.js.map} +1 -1
  381. package/dist/{stored-agents-BTL-o6aM.cjs → stored-agents-CDlh3CQQ.cjs} +9 -11
  382. package/dist/{stored-agents-BTL-o6aM.cjs.map → stored-agents-CDlh3CQQ.cjs.map} +1 -1
  383. package/dist/{stored-mcp-clients-D7bNkmTM.cjs → stored-mcp-clients-BA7OSGZ_.cjs} +3 -4
  384. package/dist/{stored-mcp-clients-D7bNkmTM.cjs.map → stored-mcp-clients-BA7OSGZ_.cjs.map} +1 -1
  385. package/dist/{stored-mcp-clients-DMR6NvCp.js → stored-mcp-clients-DtLv0Tly.js} +3 -4
  386. package/dist/{stored-mcp-clients-DMR6NvCp.js.map → stored-mcp-clients-DtLv0Tly.js.map} +1 -1
  387. package/dist/{stored-prompt-blocks-BjHxMCuC.cjs → stored-prompt-blocks-Cqi0vnTE.cjs} +4 -5
  388. package/dist/{stored-prompt-blocks-BjHxMCuC.cjs.map → stored-prompt-blocks-Cqi0vnTE.cjs.map} +1 -1
  389. package/dist/{stored-prompt-blocks-C7qmiWSB.js → stored-prompt-blocks-Z_BuhsUq.js} +4 -5
  390. package/dist/{stored-prompt-blocks-C7qmiWSB.js.map → stored-prompt-blocks-Z_BuhsUq.js.map} +1 -1
  391. package/dist/{stored-scorers-BSxh7JZX.js → stored-scorers-BdJadnUS.js} +4 -5
  392. package/dist/{stored-scorers-BSxh7JZX.js.map → stored-scorers-BdJadnUS.js.map} +1 -1
  393. package/dist/{stored-scorers-I8L1-bAI.cjs → stored-scorers-D1zYUEXg.cjs} +4 -5
  394. package/dist/{stored-scorers-I8L1-bAI.cjs.map → stored-scorers-D1zYUEXg.cjs.map} +1 -1
  395. package/dist/{stored-skills-DzW8hLnI.js → stored-skills-D8Q1NmsH.js} +3 -4
  396. package/dist/{stored-skills-DzW8hLnI.js.map → stored-skills-D8Q1NmsH.js.map} +1 -1
  397. package/dist/{stored-skills-C1e8kf2k.cjs → stored-skills-DppdzQY0.cjs} +3 -4
  398. package/dist/{stored-skills-C1e8kf2k.cjs.map → stored-skills-DppdzQY0.cjs.map} +1 -1
  399. package/dist/{stored-workspaces-DSfChCJ0.cjs → stored-workspaces-BOwJwkec.cjs} +3 -4
  400. package/dist/{stored-workspaces-DSfChCJ0.cjs.map → stored-workspaces-BOwJwkec.cjs.map} +1 -1
  401. package/dist/{stored-workspaces-AkC68rSw.js → stored-workspaces-CYXLBJy5.js} +3 -4
  402. package/dist/{stored-workspaces-AkC68rSw.js.map → stored-workspaces-CYXLBJy5.js.map} +1 -1
  403. package/dist/{system-sSSmmt7I.js → system-B8L_G4oo.js} +2 -3
  404. package/dist/{system-sSSmmt7I.js.map → system-B8L_G4oo.js.map} +1 -1
  405. package/dist/{system-B_Sod-Le.cjs → system-DGfJlOxK.cjs} +2 -3
  406. package/dist/{system-B_Sod-Le.cjs.map → system-DGfJlOxK.cjs.map} +1 -1
  407. package/dist/{tool-providers-DFQkhO4R.cjs → tool-providers-BVwRJTtB.cjs} +2 -3
  408. package/dist/{tool-providers-DFQkhO4R.cjs.map → tool-providers-BVwRJTtB.cjs.map} +1 -1
  409. package/dist/{tool-providers-CIESXi7M.js → tool-providers-Cq3vFqgE.js} +2 -3
  410. package/dist/{tool-providers-CIESXi7M.js.map → tool-providers-Cq3vFqgE.js.map} +1 -1
  411. package/dist/{tools-Ci71xxGP.cjs → tools-CottqeCZ.cjs} +12 -13
  412. package/dist/{tools-Ci71xxGP.cjs.map → tools-CottqeCZ.cjs.map} +1 -1
  413. package/dist/{tools--oMljfqq.js → tools-tMPXGAUO.js} +11 -12
  414. package/dist/{tools--oMljfqq.js.map → tools-tMPXGAUO.js.map} +1 -1
  415. package/dist/{utils-dDLIDg8O.cjs → utils-1UlUJRyC.cjs} +6 -8
  416. package/dist/{utils-dDLIDg8O.cjs.map → utils-1UlUJRyC.cjs.map} +1 -1
  417. package/dist/{utils-CF76qzZR.cjs → utils-BnH77wPf.cjs} +107 -81
  418. package/dist/utils-BnH77wPf.cjs.map +1 -0
  419. package/dist/{utils-BBJlS81s.js → utils-DEwjGOpJ.js} +5 -7
  420. package/dist/{utils-BBJlS81s.js.map → utils-DEwjGOpJ.js.map} +1 -1
  421. package/dist/{utils-aoLN3Wfi.js → utils-YEuwVEc2.js} +104 -78
  422. package/dist/utils-YEuwVEc2.js.map +1 -0
  423. package/dist/{vector-TWv4t-4g.js → vector-Deod39jt.js} +6 -7
  424. package/dist/{vector-TWv4t-4g.js.map → vector-Deod39jt.js.map} +1 -1
  425. package/dist/{vector-BKDD1kwc.cjs → vector-IxK1t4Cb.cjs} +6 -7
  426. package/dist/{vector-BKDD1kwc.cjs.map → vector-IxK1t4Cb.cjs.map} +1 -1
  427. package/dist/{vectors-LFI1jch0.cjs → vectors-CqV387sY.cjs} +3 -4
  428. package/dist/{vectors-LFI1jch0.cjs.map → vectors-CqV387sY.cjs.map} +1 -1
  429. package/dist/{vectors-CJtupgIF.js → vectors-CvHLWqjC.js} +3 -4
  430. package/dist/{vectors-CJtupgIF.js.map → vectors-CvHLWqjC.js.map} +1 -1
  431. package/dist/{version-common-DrzXq7Ct.cjs → version-common-B2n_ML_w.cjs} +3 -4
  432. package/dist/{version-common-DrzXq7Ct.cjs.map → version-common-B2n_ML_w.cjs.map} +1 -1
  433. package/dist/{version-common-4xFzvCS5.js → version-common-Di2U8VWH.js} +3 -4
  434. package/dist/{version-common-4xFzvCS5.js.map → version-common-Di2U8VWH.js.map} +1 -1
  435. package/dist/{voice-BnGwlZ75.cjs → voice-CBbxcsCM.cjs} +4 -5
  436. package/dist/{voice-BnGwlZ75.cjs.map → voice-CBbxcsCM.cjs.map} +1 -1
  437. package/dist/{voice-DjG8tBAD.js → voice-CzFWhWPJ.js} +4 -5
  438. package/dist/{voice-DjG8tBAD.js.map → voice-CzFWhWPJ.js.map} +1 -1
  439. package/dist/{workflow-builder-BoI-XXsT.js → workflow-builder-BcVfkods.js} +8 -10
  440. package/dist/{workflow-builder-BoI-XXsT.js.map → workflow-builder-BcVfkods.js.map} +1 -1
  441. package/dist/{workflow-builder-Dguv4rc0.cjs → workflow-builder-CJEajbkw.cjs} +8 -10
  442. package/dist/{workflow-builder-Dguv4rc0.cjs.map → workflow-builder-CJEajbkw.cjs.map} +1 -1
  443. package/dist/{workflows-D7Oq5On9.js → workflows-BjLruwQB.js} +10 -11
  444. package/dist/{workflows-D7Oq5On9.js.map → workflows-BjLruwQB.js.map} +1 -1
  445. package/dist/{workflows-Dcx4Ib0t.js → workflows-C9BMJV_C.js} +3 -4
  446. package/dist/{workflows-Dcx4Ib0t.js.map → workflows-C9BMJV_C.js.map} +1 -1
  447. package/dist/{workflows-5AytZqK_.cjs → workflows-CxPsDCnW.cjs} +10 -11
  448. package/dist/{workflows-5AytZqK_.cjs.map → workflows-CxPsDCnW.cjs.map} +1 -1
  449. package/dist/{workflows-C8rDpHyY.cjs → workflows-SYBpQupF.cjs} +3 -4
  450. package/dist/{workflows-C8rDpHyY.cjs.map → workflows-SYBpQupF.cjs.map} +1 -1
  451. package/dist/{workspace-BVHXoKmP.js → workspace-C9dE6D1U.js} +6 -7
  452. package/dist/{workspace-BVHXoKmP.js.map → workspace-C9dE6D1U.js.map} +1 -1
  453. package/dist/{workspace-d25MZ9dj.cjs → workspace-CyH_iu8w.cjs} +6 -7
  454. package/dist/{workspace-d25MZ9dj.cjs.map → workspace-CyH_iu8w.cjs.map} +1 -1
  455. package/dist/{workspace-BJYV2lkt.cjs → workspace-KeHGZvNV.cjs} +2 -3
  456. package/dist/{workspace-BJYV2lkt.cjs.map → workspace-KeHGZvNV.cjs.map} +1 -1
  457. package/dist/{workspace-4dBGFdV2.js → workspace-muaSMxVS.js} +2 -3
  458. package/dist/{workspace-4dBGFdV2.js.map → workspace-muaSMxVS.js.map} +1 -1
  459. package/package.json +10 -10
  460. package/dist/dist-5TAg2f91.js.map +0 -1
  461. package/dist/dist-C9Jwt1f0.cjs +0 -3
  462. package/dist/dist-CukR8zi9.cjs.map +0 -1
  463. package/dist/dist-Dgae8Imb.js +0 -1
  464. package/dist/observability-new-endpoints-3DlTYf34.js.map +0 -1
  465. package/dist/observability-new-endpoints-Drr7q2Dj.cjs.map +0 -1
  466. package/dist/probe-image-size-DBmo2MAe.js.map +0 -1
  467. package/dist/probe-image-size-l1uuhbob.cjs.map +0 -1
  468. package/dist/route-builder-B2Qhhd7C.cjs.map +0 -1
  469. package/dist/route-builder-CjkWxv4E.js.map +0 -1
  470. package/dist/routes-CKfXiwRc.js.map +0 -1
  471. package/dist/routes-jXksmX9G.cjs.map +0 -1
  472. package/dist/schema-CzbEIyhE-20gGIWkz.cjs.map +0 -1
  473. package/dist/schema-CzbEIyhE-BsMcj9Ws.js.map +0 -1
  474. package/dist/utils-CF76qzZR.cjs.map +0 -1
  475. package/dist/utils-aoLN3Wfi.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"utils-BBJlS81s.js","names":[],"sources":["../src/server/fga-permissions.ts","../src/server/handlers/utils.ts"],"sourcesContent":["/**\n * Safe re-export of `MastraFGAPermissions` from `@mastra/core/auth/ee`.\n *\n * Why this shim exists:\n * `MastraFGAPermissions` was introduced in `@mastra/core@1.32.0`. Earlier\n * versions of `@mastra/core` ship `@mastra/core/auth/ee` but do not export\n * this constant. A direct named import (`import { MastraFGAPermissions }\n * from '@mastra/core/auth/ee'`) fails at ESM link time when this version\n * of `@mastra/server` is paired with `@mastra/core < 1.32.0`, taking the\n * entire user bundle down before any code runs.\n *\n * A namespace import tolerates missing names — `ns.MissingExport` is just\n * `undefined`, no link-time error. We then expose the permission map.\n *\n * Fallback values:\n * If the consuming `@mastra/core` does not export `MastraFGAPermissions`,\n * we substitute a hardcoded map of the canonical permission strings used\n * by routes in `@mastra/server`. This preserves the explicit RBAC\n * permission overrides those routes already had as string literals in\n * `@mastra/server@1.31.0` (e.g. `requiresPermission: \"agents:execute\"`\n * on `/v1/responses`). Without this fallback, `requiresPermission` would\n * be `undefined` on old core and the auth layer would derive the wrong\n * permission from the route path (e.g. `v1:write` instead of\n * `agents:execute`), breaking RBAC users who upgrade `@mastra/server`\n * but stay on `@mastra/core@1.31.0`.\n *\n * Once the consuming `@mastra/core` is on `1.32.0+` the values are real\n * and behaviour is identical to a direct named import.\n */\n\nimport * as authEE from '@mastra/core/auth/ee';\n\n// Canonical strings for the FGA permission keys actually referenced by\n// `@mastra/server` source. Mirrors `MastraFGAPermissions` in\n// `@mastra/core@1.32.0+` for these specific keys, and matches the string\n// literals previously hardcoded on the same routes in `@mastra/server@1.31.0`.\nconst FALLBACK_PERMISSIONS = {\n AGENTS_CREATE: 'agents:create',\n AGENTS_DELETE: 'agents:delete',\n AGENTS_EXECUTE: 'agents:execute',\n AGENTS_READ: 'agents:read',\n MEMORY_DELETE: 'memory:delete',\n MEMORY_READ: 'memory:read',\n MEMORY_WRITE: 'memory:write',\n TOOLS_EXECUTE: 'tools:execute',\n TOOLS_READ: 'tools:read',\n STORED_WORKFLOWS_READ: 'stored-workflows:read',\n STORED_WORKFLOWS_WRITE: 'stored-workflows:write',\n WORKFLOWS_EXECUTE: 'workflows:execute',\n WORKFLOWS_READ: 'workflows:read',\n} as const;\n\nconst realPermissions = (authEE as any).MastraFGAPermissions;\n\n// Typed as `any` on purpose: consumers of `@mastra/server` may run their\n// typecheck against a `@mastra/core` that doesn't export `MastraFGAPermissions`\n// (anything < 1.32.0). Pinning to the real type would push that name into the\n// emitted `.d.ts` and break downstream typecheck. `any` lets the property\n// accesses (`MastraFGAPermissions.AGENTS_READ`) flow through cleanly on every\n// supported core.\nexport const MastraFGAPermissions: any =\n realPermissions && Object.keys(realPermissions).length > 0 ? realPermissions : FALLBACK_PERMISSIONS;\n","import type { Mastra } from '@mastra/core';\nimport type { MastraFGAPermissionInput } from '@mastra/core/auth/ee';\nimport type { RequestContext } from '@mastra/core/di';\nimport { MastraMemory } from '@mastra/core/memory';\nimport type { Workflow } from '@mastra/core/workflows';\nimport { MASTRA_RESOURCE_ID_KEY, MASTRA_THREAD_ID_KEY, isReservedRequestContextKey } from '../constants';\nimport { MastraFGAPermissions } from '../fga-permissions';\nimport { HTTPException } from '../http-exception';\n\n/**\n * Resolves a workflow by id or registration key from the set Mastra exposes\n * publicly. Unlike `mastra.getWorkflowById`, this excludes hidden internal\n * workflows (e.g. a durable agent's backing loop), which must never be\n * runnable through HTTP routes.\n */\nexport function getPublicWorkflowById(mastra: Mastra, workflowId: string): Workflow | undefined {\n const workflows = mastra.listWorkflows();\n return (\n Object.values(workflows).find(workflow => workflow.id === workflowId) ??\n (Object.hasOwn(workflows, workflowId) ? workflows[workflowId] : undefined)\n );\n}\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\nconst CREDENTIAL_HEADER_NAMES = new Set([\n 'authorization',\n 'proxy-authorization',\n 'x-api-key',\n 'api-key',\n 'x-goog-api-key',\n 'cookie',\n]);\n\n/**\n * Removes credential-bearing headers from client-supplied `modelSettings.headers`\n * so a caller's own auth (e.g. the app's bearer token) can never override the\n * provider credential configured on the server. Non-credential headers are kept.\n */\nexport function stripClientCredentialHeaders(body: Record<string, unknown>) {\n const modelSettings = body.modelSettings;\n if (!modelSettings || typeof modelSettings !== 'object') return;\n const headers = (modelSettings as { headers?: unknown }).headers;\n if (!headers || typeof headers !== 'object') return;\n\n const kept = Object.fromEntries(\n Object.entries(headers).filter(([name]) => !CREDENTIAL_HEADER_NAMES.has(name.toLowerCase())),\n );\n body.modelSettings = { ...modelSettings, headers: kept };\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 * Merges a body-supplied requestContext into the trusted server RequestContext.\n * The server context is authoritative: reserved keys are skipped and body values\n * only fill keys the server context has not already set.\n */\nexport function mergeBodyRequestContext(serverRequestContext: RequestContext, bodyRequestContext: unknown): void {\n if (!bodyRequestContext || typeof bodyRequestContext !== 'object') {\n return;\n }\n\n for (const [key, value] of Object.entries(bodyRequestContext)) {\n if (isReservedRequestContextKey(key)) continue;\n if (serverRequestContext.get(key) === undefined) {\n serverRequestContext.set(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 * Returns the resource id resolved from the request context alone (set via\n * `mapUserToResourceId` or the `x-resource-id` header), ignoring any\n * client-provided value. Its presence indicates a resource-scoped caller;\n * its absence indicates a privileged/service context.\n */\nexport function getContextResourceId(requestContext: RequestContext | undefined): string | undefined {\n return requestContext?.get(MASTRA_RESOURCE_ID_KEY) as string | undefined;\n}\n\n/**\n * Ensures a memory request has a resolvable resource ID. The body's\n * `memory.resource` is optional so authenticated setups can rely on the\n * server-derived resource ID (MASTRA_RESOURCE_ID_KEY set via mapUserToResourceId).\n * When neither the body nor the request context provides one, reject with a\n * clear 400 instead of failing deep inside agent execution.\n */\nexport function requireEffectiveResourceId(\n effectiveResourceId: string | undefined,\n): asserts effectiveResourceId is string {\n if (!effectiveResourceId) {\n throw new HTTPException(400, {\n message:\n 'A resource ID is required when using memory. Provide memory.resource in the request body, or configure server auth with mapUserToResourceId to derive it from the authenticated user.',\n });\n }\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 * Applies the effective threadId to a client memory thread option. Object\n * threads keep their other fields (metadata, title, ...) so they reach thread\n * creation; a client-supplied resourceId is dropped because the server decides\n * the resource.\n */\nexport function applyEffectiveThreadId<T extends string | { id: string } | undefined>(\n thread: T,\n effectiveThreadId: string | undefined,\n): T | string {\n if (!effectiveThreadId) return thread;\n if (thread && typeof thread === 'object') {\n const { resourceId: _resourceId, ...fields } = thread as { id: string; resourceId?: unknown };\n return { ...fields, id: effectiveThreadId } as T;\n }\n return effectiveThreadId;\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 both coarse resource ownership and fine-grained thread access.\n * FGA enforcement is a no-op when no FGA provider is configured.\n */\nexport async function enforceThreadAccess({\n mastra,\n requestContext,\n threadId,\n thread,\n effectiveResourceId,\n permission = MastraFGAPermissions.MEMORY_READ,\n}: {\n mastra: any;\n requestContext?: RequestContext;\n threadId: string;\n thread?: { resourceId?: string | null } | null;\n effectiveResourceId?: string;\n permission?: MastraFGAPermissionInput;\n}): Promise<void> {\n await validateThreadOwnership(thread, effectiveResourceId);\n\n const fgaProvider = mastra?.getServer?.()?.fga;\n if (!fgaProvider) {\n return;\n }\n\n const user = requestContext?.get('user');\n if (!user || typeof user !== 'object') {\n throw new HTTPException(403, { message: 'FGA authorization denied: authenticated user is required' });\n }\n\n await MastraMemory.checkThreadFGA({\n mastra,\n user: user as { id: string; [key: string]: unknown },\n threadId,\n resourceId: thread?.resourceId ?? effectiveResourceId,\n requestContext,\n permission,\n });\n}\n\n/**\n * Validates that a caller may act on a workflow run.\n *\n * Without `server.auth.mapUserToResourceId` there is no tenancy model, and only a mismatch\n * between two present resource ids is denied. With a mapper, a resource-scoped caller may only\n * act on runs it owns (an owner-less run is not its run). An unscoped caller is a\n * privileged/service context (see getContextResourceId), but that privilege is only granted when\n * an FGA provider authorizes the route; otherwise it is refused rather than granted implicitly,\n * as on the thread-transfer route.\n */\nexport async function validateRunOwnership(\n run: { resourceId?: string | null } | null | undefined,\n effectiveResourceId: string | undefined,\n mastra?: { getServer?: () => { auth?: unknown; fga?: unknown } | undefined },\n): Promise<void> {\n if (!run) return;\n const server = mastra?.getServer?.();\n const tenancy =\n typeof (server?.auth as { mapUserToResourceId?: unknown } | undefined)?.mapUserToResourceId === 'function';\n if (!tenancy) {\n if (effectiveResourceId && run.resourceId && run.resourceId !== effectiveResourceId) {\n throw new HTTPException(403, { message: 'Access denied: workflow run belongs to a different resource' });\n }\n return;\n }\n if (effectiveResourceId) {\n if (run.resourceId !== effectiveResourceId) {\n throw new HTTPException(403, { message: 'Access denied: workflow run belongs to a different resource' });\n }\n return;\n }\n if (!server?.fga) {\n throw new HTTPException(403, {\n message:\n 'Access denied: unscoped workflow run access requires explicit authorization. Configure an FGA provider to authorize privileged run access.',\n });\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"utils-DEwjGOpJ.js","names":[],"sources":["../src/server/fga-permissions.ts","../src/server/handlers/utils.ts"],"sourcesContent":["/**\n * Safe re-export of `MastraFGAPermissions` from `@mastra/core/auth/ee`.\n *\n * Why this shim exists:\n * `MastraFGAPermissions` was introduced in `@mastra/core@1.32.0`. Earlier\n * versions of `@mastra/core` ship `@mastra/core/auth/ee` but do not export\n * this constant. A direct named import (`import { MastraFGAPermissions }\n * from '@mastra/core/auth/ee'`) fails at ESM link time when this version\n * of `@mastra/server` is paired with `@mastra/core < 1.32.0`, taking the\n * entire user bundle down before any code runs.\n *\n * A namespace import tolerates missing names — `ns.MissingExport` is just\n * `undefined`, no link-time error. We then expose the permission map.\n *\n * Fallback values:\n * If the consuming `@mastra/core` does not export `MastraFGAPermissions`,\n * we substitute a hardcoded map of the canonical permission strings used\n * by routes in `@mastra/server`. This preserves the explicit RBAC\n * permission overrides those routes already had as string literals in\n * `@mastra/server@1.31.0` (e.g. `requiresPermission: \"agents:execute\"`\n * on `/v1/responses`). Without this fallback, `requiresPermission` would\n * be `undefined` on old core and the auth layer would derive the wrong\n * permission from the route path (e.g. `v1:write` instead of\n * `agents:execute`), breaking RBAC users who upgrade `@mastra/server`\n * but stay on `@mastra/core@1.31.0`.\n *\n * Once the consuming `@mastra/core` is on `1.32.0+` the values are real\n * and behaviour is identical to a direct named import.\n */\n\nimport * as authEE from '@mastra/core/auth/ee';\n\n// Canonical strings for the FGA permission keys actually referenced by\n// `@mastra/server` source. Mirrors `MastraFGAPermissions` in\n// `@mastra/core@1.32.0+` for these specific keys, and matches the string\n// literals previously hardcoded on the same routes in `@mastra/server@1.31.0`.\nconst FALLBACK_PERMISSIONS = {\n AGENTS_CREATE: 'agents:create',\n AGENTS_DELETE: 'agents:delete',\n AGENTS_EXECUTE: 'agents:execute',\n AGENTS_READ: 'agents:read',\n MEMORY_DELETE: 'memory:delete',\n MEMORY_READ: 'memory:read',\n MEMORY_WRITE: 'memory:write',\n TOOLS_EXECUTE: 'tools:execute',\n TOOLS_READ: 'tools:read',\n STORED_WORKFLOWS_READ: 'stored-workflows:read',\n STORED_WORKFLOWS_WRITE: 'stored-workflows:write',\n WORKFLOWS_EXECUTE: 'workflows:execute',\n WORKFLOWS_READ: 'workflows:read',\n} as const;\n\nconst realPermissions = (authEE as any).MastraFGAPermissions;\n\n// Typed as `any` on purpose: consumers of `@mastra/server` may run their\n// typecheck against a `@mastra/core` that doesn't export `MastraFGAPermissions`\n// (anything < 1.32.0). Pinning to the real type would push that name into the\n// emitted `.d.ts` and break downstream typecheck. `any` lets the property\n// accesses (`MastraFGAPermissions.AGENTS_READ`) flow through cleanly on every\n// supported core.\nexport const MastraFGAPermissions: any =\n realPermissions && Object.keys(realPermissions).length > 0 ? realPermissions : FALLBACK_PERMISSIONS;\n","import type { Mastra } from '@mastra/core';\nimport type { MastraFGAPermissionInput } from '@mastra/core/auth/ee';\nimport type { RequestContext } from '@mastra/core/di';\nimport { MastraMemory } from '@mastra/core/memory';\nimport type { Workflow } from '@mastra/core/workflows';\nimport { MASTRA_RESOURCE_ID_KEY, MASTRA_THREAD_ID_KEY, isReservedRequestContextKey } from '../constants';\nimport { MastraFGAPermissions } from '../fga-permissions';\nimport { HTTPException } from '../http-exception';\n\n/**\n * Resolves a workflow by id or registration key from the set Mastra exposes\n * publicly. Unlike `mastra.getWorkflowById`, this excludes hidden internal\n * workflows (e.g. a durable agent's backing loop), which must never be\n * runnable through HTTP routes.\n */\nexport function getPublicWorkflowById(mastra: Mastra, workflowId: string): Workflow | undefined {\n const workflows = mastra.listWorkflows();\n return (\n Object.values(workflows).find(workflow => workflow.id === workflowId) ??\n (Object.hasOwn(workflows, workflowId) ? workflows[workflowId] : undefined)\n );\n}\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\nconst CREDENTIAL_HEADER_NAMES = new Set([\n 'authorization',\n 'proxy-authorization',\n 'x-api-key',\n 'api-key',\n 'x-goog-api-key',\n 'cookie',\n]);\n\n/**\n * Removes credential-bearing headers from client-supplied `modelSettings.headers`\n * so a caller's own auth (e.g. the app's bearer token) can never override the\n * provider credential configured on the server. Non-credential headers are kept.\n */\nexport function stripClientCredentialHeaders(body: Record<string, unknown>) {\n const modelSettings = body.modelSettings;\n if (!modelSettings || typeof modelSettings !== 'object') return;\n const headers = (modelSettings as { headers?: unknown }).headers;\n if (!headers || typeof headers !== 'object') return;\n\n const kept = Object.fromEntries(\n Object.entries(headers).filter(([name]) => !CREDENTIAL_HEADER_NAMES.has(name.toLowerCase())),\n );\n body.modelSettings = { ...modelSettings, headers: kept };\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 * Merges a body-supplied requestContext into the trusted server RequestContext.\n * The server context is authoritative: reserved keys are skipped and body values\n * only fill keys the server context has not already set.\n */\nexport function mergeBodyRequestContext(serverRequestContext: RequestContext, bodyRequestContext: unknown): void {\n if (!bodyRequestContext || typeof bodyRequestContext !== 'object') {\n return;\n }\n\n for (const [key, value] of Object.entries(bodyRequestContext)) {\n if (isReservedRequestContextKey(key)) continue;\n if (serverRequestContext.get(key) === undefined) {\n serverRequestContext.set(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 * Returns the resource id resolved from the request context alone (set via\n * `mapUserToResourceId` or the `x-resource-id` header), ignoring any\n * client-provided value. Its presence indicates a resource-scoped caller;\n * its absence indicates a privileged/service context.\n */\nexport function getContextResourceId(requestContext: RequestContext | undefined): string | undefined {\n return requestContext?.get(MASTRA_RESOURCE_ID_KEY) as string | undefined;\n}\n\n/**\n * Ensures a memory request has a resolvable resource ID. The body's\n * `memory.resource` is optional so authenticated setups can rely on the\n * server-derived resource ID (MASTRA_RESOURCE_ID_KEY set via mapUserToResourceId).\n * When neither the body nor the request context provides one, reject with a\n * clear 400 instead of failing deep inside agent execution.\n */\nexport function requireEffectiveResourceId(\n effectiveResourceId: string | undefined,\n): asserts effectiveResourceId is string {\n if (!effectiveResourceId) {\n throw new HTTPException(400, {\n message:\n 'A resource ID is required when using memory. Provide memory.resource in the request body, or configure server auth with mapUserToResourceId to derive it from the authenticated user.',\n });\n }\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 * Applies the effective threadId to a client memory thread option. Object\n * threads keep their other fields (metadata, title, ...) so they reach thread\n * creation; a client-supplied resourceId is dropped because the server decides\n * the resource.\n */\nexport function applyEffectiveThreadId<T extends string | { id: string } | undefined>(\n thread: T,\n effectiveThreadId: string | undefined,\n): T | string {\n if (!effectiveThreadId) return thread;\n if (thread && typeof thread === 'object') {\n const { resourceId: _resourceId, ...fields } = thread as { id: string; resourceId?: unknown };\n return { ...fields, id: effectiveThreadId } as T;\n }\n return effectiveThreadId;\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 both coarse resource ownership and fine-grained thread access.\n * FGA enforcement is a no-op when no FGA provider is configured.\n */\nexport async function enforceThreadAccess({\n mastra,\n requestContext,\n threadId,\n thread,\n effectiveResourceId,\n permission = MastraFGAPermissions.MEMORY_READ,\n}: {\n mastra: any;\n requestContext?: RequestContext;\n threadId: string;\n thread?: { resourceId?: string | null } | null;\n effectiveResourceId?: string;\n permission?: MastraFGAPermissionInput;\n}): Promise<void> {\n await validateThreadOwnership(thread, effectiveResourceId);\n\n const fgaProvider = mastra?.getServer?.()?.fga;\n if (!fgaProvider) {\n return;\n }\n\n const user = requestContext?.get('user');\n if (!user || typeof user !== 'object') {\n throw new HTTPException(403, { message: 'FGA authorization denied: authenticated user is required' });\n }\n\n await MastraMemory.checkThreadFGA({\n mastra,\n user: user as { id: string; [key: string]: unknown },\n threadId,\n resourceId: thread?.resourceId ?? effectiveResourceId,\n requestContext,\n permission,\n });\n}\n\n/**\n * Validates that a caller may act on a workflow run.\n *\n * Without `server.auth.mapUserToResourceId` there is no tenancy model, and only a mismatch\n * between two present resource ids is denied. With a mapper, a resource-scoped caller may only\n * act on runs it owns (an owner-less run is not its run). An unscoped caller is a\n * privileged/service context (see getContextResourceId), but that privilege is only granted when\n * an FGA provider authorizes the route; otherwise it is refused rather than granted implicitly,\n * as on the thread-transfer route.\n */\nexport async function validateRunOwnership(\n run: { resourceId?: string | null } | null | undefined,\n effectiveResourceId: string | undefined,\n mastra?: { getServer?: () => { auth?: unknown; fga?: unknown } | undefined },\n): Promise<void> {\n if (!run) return;\n const server = mastra?.getServer?.();\n const tenancy =\n typeof (server?.auth as { mapUserToResourceId?: unknown } | undefined)?.mapUserToResourceId === 'function';\n if (!tenancy) {\n if (effectiveResourceId && run.resourceId && run.resourceId !== effectiveResourceId) {\n throw new HTTPException(403, { message: 'Access denied: workflow run belongs to a different resource' });\n }\n return;\n }\n if (effectiveResourceId) {\n if (run.resourceId !== effectiveResourceId) {\n throw new HTTPException(403, { message: 'Access denied: workflow run belongs to a different resource' });\n }\n return;\n }\n if (!server?.fga) {\n throw new HTTPException(403, {\n message:\n 'Access denied: unscoped workflow run access requires explicit authorization. Configure an FGA provider to authorize privileged run access.',\n });\n }\n}\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import { t as HTTPException } from "./http-exception-CyfxZB6W.js";
2
- import { n as standardSchemaToJSONSchema, r as toStandardSchema } from "./schema-CzbEIyhE-BsMcj9Ws.js";
3
- import { o as MASTRA_RESOURCE_ID_KEY } from "./constants-DazK_RZj.js";
4
- //#region ../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/superjson/2.2.6/b5fefaeae5105e92d752f15cd158913d848e5075a9f80278488919f0941a70dd/node_modules/superjson/dist/double-indexed-kv.js
1
+ import { t as HTTPException } from "./http-exception-CzaWkxMl.js";
2
+ import { n as standardSchemaToJSONSchema, r as toStandardSchema } from "./schema-Bf12g7KC-DBc4NSds.js";
3
+ import { o as MASTRA_RESOURCE_ID_KEY } from "./constants-ohUUT3Vg.js";
4
+ // ../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/superjson/2.2.6/711cee35fda0e5a37276180e7a2ecc71bd8bb1528c27c34fa53791b52a3c4054/node_modules/superjson/dist/double-indexed-kv.js
5
5
  var DoubleIndexedKV = class {
6
6
  constructor() {
7
7
  this.keyToValue = /* @__PURE__ */ new Map();
@@ -22,8 +22,7 @@ var DoubleIndexedKV = class {
22
22
  this.valueToKey.clear();
23
23
  }
24
24
  };
25
- //#endregion
26
- //#region ../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/superjson/2.2.6/b5fefaeae5105e92d752f15cd158913d848e5075a9f80278488919f0941a70dd/node_modules/superjson/dist/registry.js
25
+ // ../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/superjson/2.2.6/711cee35fda0e5a37276180e7a2ecc71bd8bb1528c27c34fa53791b52a3c4054/node_modules/superjson/dist/registry.js
27
26
  var Registry = class {
28
27
  constructor(generateIdentifier) {
29
28
  this.generateIdentifier = generateIdentifier;
@@ -44,8 +43,7 @@ var Registry = class {
44
43
  return this.kv.getByKey(identifier);
45
44
  }
46
45
  };
47
- //#endregion
48
- //#region ../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/superjson/2.2.6/b5fefaeae5105e92d752f15cd158913d848e5075a9f80278488919f0941a70dd/node_modules/superjson/dist/class-registry.js
46
+ // ../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/superjson/2.2.6/711cee35fda0e5a37276180e7a2ecc71bd8bb1528c27c34fa53791b52a3c4054/node_modules/superjson/dist/class-registry.js
49
47
  var ClassRegistry = class extends Registry {
50
48
  constructor() {
51
49
  super((c) => c.name);
@@ -61,8 +59,7 @@ var ClassRegistry = class extends Registry {
61
59
  return this.classToAllowedProps.get(value);
62
60
  }
63
61
  };
64
- //#endregion
65
- //#region ../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/superjson/2.2.6/b5fefaeae5105e92d752f15cd158913d848e5075a9f80278488919f0941a70dd/node_modules/superjson/dist/util.js
62
+ // ../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/superjson/2.2.6/711cee35fda0e5a37276180e7a2ecc71bd8bb1528c27c34fa53791b52a3c4054/node_modules/superjson/dist/util.js
66
63
  function valuesOfObj(record) {
67
64
  if ("values" in Object) return Object.values(record);
68
65
  const values = [];
@@ -90,8 +87,7 @@ function findArr(record, predicate) {
90
87
  if (predicate(value)) return value;
91
88
  }
92
89
  }
93
- //#endregion
94
- //#region ../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/superjson/2.2.6/b5fefaeae5105e92d752f15cd158913d848e5075a9f80278488919f0941a70dd/node_modules/superjson/dist/custom-transformer-registry.js
90
+ // ../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/superjson/2.2.6/711cee35fda0e5a37276180e7a2ecc71bd8bb1528c27c34fa53791b52a3c4054/node_modules/superjson/dist/custom-transformer-registry.js
95
91
  var CustomTransformerRegistry = class {
96
92
  constructor() {
97
93
  this.transfomers = {};
@@ -106,9 +102,8 @@ var CustomTransformerRegistry = class {
106
102
  return this.transfomers[name];
107
103
  }
108
104
  };
109
- //#endregion
110
- //#region ../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/superjson/2.2.6/b5fefaeae5105e92d752f15cd158913d848e5075a9f80278488919f0941a70dd/node_modules/superjson/dist/is.js
111
- const getType$1 = (payload) => Object.prototype.toString.call(payload).slice(8, -1);
105
+ // ../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/superjson/2.2.6/711cee35fda0e5a37276180e7a2ecc71bd8bb1528c27c34fa53791b52a3c4054/node_modules/superjson/dist/is.js
106
+ const getType = (payload) => Object.prototype.toString.call(payload).slice(8, -1);
112
107
  const isUndefined = (payload) => typeof payload === "undefined";
113
108
  const isNull = (payload) => payload === null;
114
109
  const isPlainObject$1 = (payload) => {
@@ -118,14 +113,14 @@ const isPlainObject$1 = (payload) => {
118
113
  return Object.getPrototypeOf(payload) === Object.prototype;
119
114
  };
120
115
  const isEmptyObject = (payload) => isPlainObject$1(payload) && Object.keys(payload).length === 0;
121
- const isArray$1 = (payload) => Array.isArray(payload);
116
+ const isArray = (payload) => Array.isArray(payload);
122
117
  const isString = (payload) => typeof payload === "string";
123
118
  const isNumber = (payload) => typeof payload === "number" && !isNaN(payload);
124
119
  const isBoolean = (payload) => typeof payload === "boolean";
125
120
  const isRegExp = (payload) => payload instanceof RegExp;
126
121
  const isMap = (payload) => payload instanceof Map;
127
122
  const isSet = (payload) => payload instanceof Set;
128
- const isSymbol = (payload) => getType$1(payload) === "Symbol";
123
+ const isSymbol = (payload) => getType(payload) === "Symbol";
129
124
  const isDate = (payload) => payload instanceof Date && !isNaN(payload.valueOf());
130
125
  const isError = (payload) => payload instanceof Error;
131
126
  const isNaNValue = (payload) => typeof payload === "number" && isNaN(payload);
@@ -134,8 +129,7 @@ const isBigint = (payload) => typeof payload === "bigint";
134
129
  const isInfinite = (payload) => payload === Infinity || payload === -Infinity;
135
130
  const isTypedArray = (payload) => ArrayBuffer.isView(payload) && !(payload instanceof DataView);
136
131
  const isURL = (payload) => payload instanceof URL;
137
- //#endregion
138
- //#region ../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/superjson/2.2.6/b5fefaeae5105e92d752f15cd158913d848e5075a9f80278488919f0941a70dd/node_modules/superjson/dist/pathstringifier.js
132
+ // ../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/superjson/2.2.6/711cee35fda0e5a37276180e7a2ecc71bd8bb1528c27c34fa53791b52a3c4054/node_modules/superjson/dist/pathstringifier.js
139
133
  const escapeKey = (key) => key.replace(/\\/g, "\\\\").replace(/\./g, "\\.");
140
134
  const stringifyPath = (path) => path.map(String).map(escapeKey).join(".");
141
135
  const parsePath = (string, legacyPaths) => {
@@ -167,8 +161,7 @@ const parsePath = (string, legacyPaths) => {
167
161
  result.push(lastSegment);
168
162
  return result;
169
163
  };
170
- //#endregion
171
- //#region ../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/superjson/2.2.6/b5fefaeae5105e92d752f15cd158913d848e5075a9f80278488919f0941a70dd/node_modules/superjson/dist/transformer.js
164
+ // ../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/superjson/2.2.6/711cee35fda0e5a37276180e7a2ecc71bd8bb1528c27c34fa53791b52a3c4054/node_modules/superjson/dist/transformer.js
172
165
  function simpleTransformation(isApplicable, annotation, transform, untransform) {
173
166
  return {
174
167
  isApplicable,
@@ -311,7 +304,7 @@ simpleRules.forEach((rule) => {
311
304
  simpleRulesByAnnotation[rule.annotation] = rule;
312
305
  });
313
306
  const untransformValue = (json, type, superJson) => {
314
- if (isArray$1(type)) switch (type[0]) {
307
+ if (isArray(type)) switch (type[0]) {
315
308
  case "symbol": return symbolRule.untransform(json, type, superJson);
316
309
  case "class": return classRule.untransform(json, type, superJson);
317
310
  case "custom": return customRule.untransform(json, type, superJson);
@@ -324,8 +317,7 @@ const untransformValue = (json, type, superJson) => {
324
317
  return transformation.untransform(json, superJson);
325
318
  }
326
319
  };
327
- //#endregion
328
- //#region ../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/superjson/2.2.6/b5fefaeae5105e92d752f15cd158913d848e5075a9f80278488919f0941a70dd/node_modules/superjson/dist/accessDeep.js
320
+ // ../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/superjson/2.2.6/711cee35fda0e5a37276180e7a2ecc71bd8bb1528c27c34fa53791b52a3c4054/node_modules/superjson/dist/accessDeep.js
329
321
  const getNthKey = (value, n) => {
330
322
  if (n > value.size) throw new Error("index out of bounds");
331
323
  const keys = value.keys();
@@ -365,7 +357,7 @@ const setDeep = (object, path, mapper) => {
365
357
  let parent = object;
366
358
  for (let i = 0; i < path.length - 1; i++) {
367
359
  const key = path[i];
368
- if (isArray$1(parent)) {
360
+ if (isArray(parent)) {
369
361
  const index = +key;
370
362
  parent = parent[index];
371
363
  } else if (isPlainObject$1(parent)) parent = parent[key];
@@ -386,7 +378,7 @@ const setDeep = (object, path, mapper) => {
386
378
  }
387
379
  }
388
380
  const lastKey = path[path.length - 1];
389
- if (isArray$1(parent)) parent[+lastKey] = mapper(parent[+lastKey]);
381
+ if (isArray(parent)) parent[+lastKey] = mapper(parent[+lastKey]);
390
382
  else if (isPlainObject$1(parent)) parent[lastKey] = mapper(parent[lastKey]);
391
383
  if (isSet(parent)) {
392
384
  const oldValue = getNthKey(parent, +lastKey);
@@ -411,13 +403,12 @@ const setDeep = (object, path, mapper) => {
411
403
  }
412
404
  return object;
413
405
  };
414
- //#endregion
415
- //#region ../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/superjson/2.2.6/b5fefaeae5105e92d752f15cd158913d848e5075a9f80278488919f0941a70dd/node_modules/superjson/dist/plainer.js
406
+ // ../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/superjson/2.2.6/711cee35fda0e5a37276180e7a2ecc71bd8bb1528c27c34fa53791b52a3c4054/node_modules/superjson/dist/plainer.js
416
407
  const enableLegacyPaths = (version) => version < 1;
417
408
  function traverse(tree, walker, version, origin = []) {
418
409
  if (!tree) return;
419
410
  const legacyPaths = enableLegacyPaths(version);
420
- if (!isArray$1(tree)) {
411
+ if (!isArray(tree)) {
421
412
  forEach(tree, (subtree, key) => traverse(subtree, walker, version, [...origin, ...parsePath(key, legacyPaths)]));
422
413
  return;
423
414
  }
@@ -441,7 +432,7 @@ function applyReferentialEqualityAnnotations(plain, annotations, version) {
441
432
  plain = setDeep(plain, identicalObjectPath, () => object);
442
433
  });
443
434
  }
444
- if (isArray$1(annotations)) {
435
+ if (isArray(annotations)) {
445
436
  const [root, other] = annotations;
446
437
  root.forEach((identicalPath) => {
447
438
  plain = setDeep(plain, parsePath(identicalPath, legacyPaths), () => plain);
@@ -450,7 +441,7 @@ function applyReferentialEqualityAnnotations(plain, annotations, version) {
450
441
  } else forEach(annotations, apply);
451
442
  return plain;
452
443
  }
453
- const isDeep = (object, superJson) => isPlainObject$1(object) || isArray$1(object) || isMap(object) || isSet(object) || isError(object) || isInstanceOfRegisteredClass(object, superJson);
444
+ const isDeep = (object, superJson) => isPlainObject$1(object) || isArray(object) || isMap(object) || isSet(object) || isError(object) || isInstanceOfRegisteredClass(object, superJson);
454
445
  function addIdentity(object, path, identities) {
455
446
  const existingSet = identities.get(object);
456
447
  if (existingSet) existingSet.push(path);
@@ -490,13 +481,13 @@ const walker = (object, identities, superJson, dedupe, path = [], objectsInThisP
490
481
  if (includes(objectsInThisPath, object)) return { transformedValue: null };
491
482
  const transformationResult = transformValue(object, superJson);
492
483
  const transformed = transformationResult?.value ?? object;
493
- const transformedValue = isArray$1(transformed) ? [] : {};
484
+ const transformedValue = isArray(transformed) ? [] : {};
494
485
  const innerAnnotations = {};
495
486
  forEach(transformed, (value, index) => {
496
487
  if (index === "__proto__" || index === "constructor" || index === "prototype") throw new Error(`Detected property ${index}. This is a prototype pollution risk, please remove it from your object.`);
497
488
  const recursiveResult = walker(value, identities, superJson, dedupe, [...path, index], [...objectsInThisPath, object], seenObjects);
498
489
  transformedValue[index] = recursiveResult.transformedValue;
499
- if (isArray$1(recursiveResult.annotations)) innerAnnotations[escapeKey(index)] = recursiveResult.annotations;
490
+ if (isArray(recursiveResult.annotations)) innerAnnotations[escapeKey(index)] = recursiveResult.annotations;
500
491
  else if (isPlainObject$1(recursiveResult.annotations)) forEach(recursiveResult.annotations, (tree, key) => {
501
492
  innerAnnotations[escapeKey(index) + "." + key] = tree;
502
493
  });
@@ -511,35 +502,18 @@ const walker = (object, identities, superJson, dedupe, path = [], objectsInThisP
511
502
  if (!primitive) seenObjects.set(object, result);
512
503
  return result;
513
504
  };
514
- //#endregion
515
- //#region ../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/is-what/5.5.0/6a17e1f04f109bfa55bd3a32beb0649d4f15de71496a7b56ad89c5617c48dbcf/node_modules/is-what/dist/getType.js
516
- /** Returns the object type of the given payload */
517
- function getType(payload) {
518
- return Object.prototype.toString.call(payload).slice(8, -1);
519
- }
520
- //#endregion
521
- //#region ../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/is-what/5.5.0/6a17e1f04f109bfa55bd3a32beb0649d4f15de71496a7b56ad89c5617c48dbcf/node_modules/is-what/dist/isArray.js
522
- /** Returns whether the payload is an array */
523
- function isArray(payload) {
524
- return getType(payload) === "Array";
525
- }
526
- //#endregion
527
- //#region ../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/is-what/5.5.0/6a17e1f04f109bfa55bd3a32beb0649d4f15de71496a7b56ad89c5617c48dbcf/node_modules/is-what/dist/isPlainObject.js
505
+ // ../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/copy-anything/4.1.5/dedefcf2f03e98e70d41bceb3c3897b84814fa553b00ef4acbcec74c4b246876/node_modules/copy-anything/dist/index.js
528
506
  /**
529
- * Returns whether the payload is a plain JavaScript object (excluding special classes or objects
530
- * with other prototypes)
507
+ * Assigns a prop the copy is keeping, preserving whether it was enumerable. Callers decide
508
+ * _whether_ to keep a non-enumerable prop before getting here, so by this point the answer is
509
+ * always yes.
531
510
  */
532
- function isPlainObject(payload) {
533
- if (getType(payload) !== "Object") return false;
534
- const prototype = Object.getPrototypeOf(payload);
535
- return !!prototype && prototype.constructor === Object && prototype === Object.prototype;
536
- }
537
- //#endregion
538
- //#region ../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/copy-anything/4.0.5/22cc8bea9fb94edd0adbb1b532950c62b530da34e51811884acea49340e0256c/node_modules/copy-anything/dist/index.js
539
- function assignProp(carry, key, newVal, originalObject, includeNonenumerable) {
540
- const propType = {}.propertyIsEnumerable.call(originalObject, key) ? "enumerable" : "nonenumerable";
541
- if (propType === "enumerable") carry[key] = newVal;
542
- if (includeNonenumerable && propType === "nonenumerable") Object.defineProperty(carry, key, {
511
+ function assignProp(carry, key, newVal, originalObject) {
512
+ if (Object.prototype.propertyIsEnumerable.call(originalObject, key)) {
513
+ carry[key] = newVal;
514
+ return;
515
+ }
516
+ Object.defineProperty(carry, key, {
543
517
  value: newVal,
544
518
  enumerable: false,
545
519
  writable: true,
@@ -547,8 +521,42 @@ function assignProp(carry, key, newVal, originalObject, includeNonenumerable) {
547
521
  });
548
522
  }
549
523
  /**
524
+ * Whether `value` is an object literal, as opposed to a class instance, a built-in like `Date`, an
525
+ * `arguments` object, or an object with a null prototype.
526
+ *
527
+ * The prototype check comes first because it is cheap and rejects almost everything; the tag check
528
+ * is only reached by values that are about to be cloned anyway.
529
+ */
530
+ function isPlainObject(value) {
531
+ return Object.getPrototypeOf(value) === Object.prototype && Object.prototype.toString.call(value) === "[object Object]";
532
+ }
533
+ /**
534
+ * Returns the clone that `value` should be replaced with, and queues it to be filled in later.
535
+ * Anything that isn't an array or a plain object is returned untouched.
536
+ *
537
+ * Reusing the clone already registered in `clones` is what makes circular and shared references
538
+ * work: the placeholder is registered before its contents exist, so a reference back to an ancestor
539
+ * resolves to it rather than walking forever.
540
+ */
541
+ function cloneRef(value, clones, sources, dests) {
542
+ if (typeof value !== "object" || value === null) return value;
543
+ const array = Array.isArray(value);
544
+ if (!array && !isPlainObject(value)) return value;
545
+ const existing = clones.get(value);
546
+ if (existing !== void 0) return existing;
547
+ const clone = array ? new Array(value.length) : {};
548
+ clones.set(value, clone);
549
+ sources.push(value);
550
+ dests.push(clone);
551
+ return clone;
552
+ }
553
+ /**
550
554
  * Copy (clone) an object and all its props recursively to get rid of any prop referenced of the
551
- * original object. Arrays are also cloned, however objects inside arrays are still linked.
555
+ * original object. Arrays and the objects inside them are cloned as well.
556
+ *
557
+ * Nesting depth is limited only by available memory, and circular references are reproduced in the
558
+ * copy rather than followed forever. Two props pointing at the same object still point at one
559
+ * shared copy afterwards.
552
560
  *
553
561
  * @param target Target can be anything
554
562
  * @param [options={}] See type {@link Options} for more details.
@@ -561,20 +569,40 @@ function assignProp(carry, key, newVal, originalObject, includeNonenumerable) {
561
569
  * @returns The target with replaced values
562
570
  */
563
571
  function copy(target, options = {}) {
564
- if (isArray(target)) return target.map((item) => copy(item, options));
565
- if (!isPlainObject(target)) return target;
566
- const props = Object.getOwnPropertyNames(target);
567
- const symbols = Object.getOwnPropertySymbols(target);
568
- return [...props, ...symbols].reduce((carry, key) => {
569
- if (key === "__proto__") return carry;
570
- if (isArray(options.props) && !options.props.includes(key)) return carry;
571
- const val = target[key];
572
- assignProp(carry, key, copy(val, options), target, options.nonenumerable);
573
- return carry;
574
- }, {});
572
+ if (typeof target !== "object" || target === null) return target;
573
+ const clones = /* @__PURE__ */ new Map();
574
+ const sources = [];
575
+ const dests = [];
576
+ const result = cloneRef(target, clones, sources, dests);
577
+ const onlyProps = Array.isArray(options.props) ? options.props : void 0;
578
+ const nonenumerable = options.nonenumerable === true;
579
+ while (sources.length) {
580
+ const source = sources.pop();
581
+ const dest = dests.pop();
582
+ if (Array.isArray(source)) {
583
+ for (let i = 0; i < source.length; i++) if (i in source) dest[i] = cloneRef(source[i], clones, sources, dests);
584
+ continue;
585
+ }
586
+ if (nonenumerable) for (const key of Object.getOwnPropertyNames(source)) {
587
+ if (key === "__proto__") continue;
588
+ if (onlyProps && !onlyProps.includes(key)) continue;
589
+ assignProp(dest, key, cloneRef(source[key], clones, sources, dests), source);
590
+ }
591
+ else for (const key in source) {
592
+ if (!Object.prototype.hasOwnProperty.call(source, key)) continue;
593
+ if (key === "__proto__") continue;
594
+ if (onlyProps && !onlyProps.includes(key)) continue;
595
+ dest[key] = cloneRef(source[key], clones, sources, dests);
596
+ }
597
+ for (const key of Object.getOwnPropertySymbols(source)) {
598
+ if (onlyProps && !onlyProps.includes(key)) continue;
599
+ if (!nonenumerable && !Object.prototype.propertyIsEnumerable.call(source, key)) continue;
600
+ assignProp(dest, key, cloneRef(source[key], clones, sources, dests), source);
601
+ }
602
+ }
603
+ return result;
575
604
  }
576
- //#endregion
577
- //#region ../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/superjson/2.2.6/b5fefaeae5105e92d752f15cd158913d848e5075a9f80278488919f0941a70dd/node_modules/superjson/dist/index.js
605
+ // ../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/superjson/2.2.6/711cee35fda0e5a37276180e7a2ecc71bd8bb1528c27c34fa53791b52a3c4054/node_modules/superjson/dist/index.js
578
606
  var SuperJSON = class {
579
607
  /**
580
608
  * @param dedupeReferentialEqualities If true, SuperJSON will make sure only one instance of referentially equal objects are serialized and the rest are replaced with `null`.
@@ -648,8 +676,7 @@ SuperJSON.registerClass;
648
676
  SuperJSON.registerCustom;
649
677
  SuperJSON.registerSymbol;
650
678
  SuperJSON.allowErrorProps;
651
- //#endregion
652
- //#region src/server/utils.ts
679
+ // src/server/utils.ts
653
680
  /**
654
681
  * Convert any PublicSchema to a JSON Schema.
655
682
  * Uses toStandardSchema to handle all schema types (Zod v4, AI SDK Schema, JSON Schema).
@@ -899,7 +926,6 @@ function convertInstructionsToString(message) {
899
926
  }).filter((content) => content).join("\n");
900
927
  return typeof message.content === "string" ? message.content : "";
901
928
  }
902
- //#endregion
903
929
  export { getWorkflowInfo as a, toSlug as c, getStoredResourceScope as i, stringify as l, assertStoredResourceScope as n, normalizeRoutePath as o, convertInstructionsToString as r, scopeStoredResourceMetadata as s, WorkflowRegistry as t };
904
930
 
905
- //# sourceMappingURL=utils-aoLN3Wfi.js.map
931
+ //# sourceMappingURL=utils-YEuwVEc2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils-YEuwVEc2.js","names":["isPlainObject","isPlainObject","isPlainObject"],"sources":["../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/superjson/2.2.6/711cee35fda0e5a37276180e7a2ecc71bd8bb1528c27c34fa53791b52a3c4054/node_modules/superjson/dist/double-indexed-kv.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/superjson/2.2.6/711cee35fda0e5a37276180e7a2ecc71bd8bb1528c27c34fa53791b52a3c4054/node_modules/superjson/dist/registry.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/superjson/2.2.6/711cee35fda0e5a37276180e7a2ecc71bd8bb1528c27c34fa53791b52a3c4054/node_modules/superjson/dist/class-registry.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/superjson/2.2.6/711cee35fda0e5a37276180e7a2ecc71bd8bb1528c27c34fa53791b52a3c4054/node_modules/superjson/dist/util.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/superjson/2.2.6/711cee35fda0e5a37276180e7a2ecc71bd8bb1528c27c34fa53791b52a3c4054/node_modules/superjson/dist/custom-transformer-registry.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/superjson/2.2.6/711cee35fda0e5a37276180e7a2ecc71bd8bb1528c27c34fa53791b52a3c4054/node_modules/superjson/dist/is.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/superjson/2.2.6/711cee35fda0e5a37276180e7a2ecc71bd8bb1528c27c34fa53791b52a3c4054/node_modules/superjson/dist/pathstringifier.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/superjson/2.2.6/711cee35fda0e5a37276180e7a2ecc71bd8bb1528c27c34fa53791b52a3c4054/node_modules/superjson/dist/transformer.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/superjson/2.2.6/711cee35fda0e5a37276180e7a2ecc71bd8bb1528c27c34fa53791b52a3c4054/node_modules/superjson/dist/accessDeep.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/superjson/2.2.6/711cee35fda0e5a37276180e7a2ecc71bd8bb1528c27c34fa53791b52a3c4054/node_modules/superjson/dist/plainer.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/copy-anything/4.1.5/dedefcf2f03e98e70d41bceb3c3897b84814fa553b00ef4acbcec74c4b246876/node_modules/copy-anything/dist/index.js","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@/superjson/2.2.6/711cee35fda0e5a37276180e7a2ecc71bd8bb1528c27c34fa53791b52a3c4054/node_modules/superjson/dist/index.js","../src/server/utils.ts"],"sourcesContent":["export class DoubleIndexedKV {\n constructor() {\n this.keyToValue = new Map();\n this.valueToKey = new Map();\n }\n set(key, value) {\n this.keyToValue.set(key, value);\n this.valueToKey.set(value, key);\n }\n getByKey(key) {\n return this.keyToValue.get(key);\n }\n getByValue(value) {\n return this.valueToKey.get(value);\n }\n clear() {\n this.keyToValue.clear();\n this.valueToKey.clear();\n }\n}\n//# sourceMappingURL=double-indexed-kv.js.map","import { DoubleIndexedKV } from './double-indexed-kv.js';\nexport class Registry {\n constructor(generateIdentifier) {\n this.generateIdentifier = generateIdentifier;\n this.kv = new DoubleIndexedKV();\n }\n register(value, identifier) {\n if (this.kv.getByValue(value)) {\n return;\n }\n if (!identifier) {\n identifier = this.generateIdentifier(value);\n }\n this.kv.set(identifier, value);\n }\n clear() {\n this.kv.clear();\n }\n getIdentifier(value) {\n return this.kv.getByValue(value);\n }\n getValue(identifier) {\n return this.kv.getByKey(identifier);\n }\n}\n//# sourceMappingURL=registry.js.map","import { Registry } from './registry.js';\nexport class ClassRegistry extends Registry {\n constructor() {\n super(c => c.name);\n this.classToAllowedProps = new Map();\n }\n register(value, options) {\n if (typeof options === 'object') {\n if (options.allowProps) {\n this.classToAllowedProps.set(value, options.allowProps);\n }\n super.register(value, options.identifier);\n }\n else {\n super.register(value, options);\n }\n }\n getAllowedProps(value) {\n return this.classToAllowedProps.get(value);\n }\n}\n//# sourceMappingURL=class-registry.js.map","function valuesOfObj(record) {\n if ('values' in Object) {\n // eslint-disable-next-line es5/no-es6-methods\n return Object.values(record);\n }\n const values = [];\n // eslint-disable-next-line no-restricted-syntax\n for (const key in record) {\n if (record.hasOwnProperty(key)) {\n values.push(record[key]);\n }\n }\n return values;\n}\nexport function find(record, predicate) {\n const values = valuesOfObj(record);\n if ('find' in values) {\n // eslint-disable-next-line es5/no-es6-methods\n return values.find(predicate);\n }\n const valuesNotNever = values;\n for (let i = 0; i < valuesNotNever.length; i++) {\n const value = valuesNotNever[i];\n if (predicate(value)) {\n return value;\n }\n }\n return undefined;\n}\nexport function forEach(record, run) {\n Object.entries(record).forEach(([key, value]) => run(value, key));\n}\nexport function includes(arr, value) {\n return arr.indexOf(value) !== -1;\n}\nexport function findArr(record, predicate) {\n for (let i = 0; i < record.length; i++) {\n const value = record[i];\n if (predicate(value)) {\n return value;\n }\n }\n return undefined;\n}\n//# sourceMappingURL=util.js.map","import { find } from './util.js';\nexport class CustomTransformerRegistry {\n constructor() {\n this.transfomers = {};\n }\n register(transformer) {\n this.transfomers[transformer.name] = transformer;\n }\n findApplicable(v) {\n return find(this.transfomers, transformer => transformer.isApplicable(v));\n }\n findByName(name) {\n return this.transfomers[name];\n }\n}\n//# sourceMappingURL=custom-transformer-registry.js.map","const getType = (payload) => Object.prototype.toString.call(payload).slice(8, -1);\nexport const isUndefined = (payload) => typeof payload === 'undefined';\nexport const isNull = (payload) => payload === null;\nexport const isPlainObject = (payload) => {\n if (typeof payload !== 'object' || payload === null)\n return false;\n if (payload === Object.prototype)\n return false;\n if (Object.getPrototypeOf(payload) === null)\n return true;\n return Object.getPrototypeOf(payload) === Object.prototype;\n};\nexport const isEmptyObject = (payload) => isPlainObject(payload) && Object.keys(payload).length === 0;\nexport const isArray = (payload) => Array.isArray(payload);\nexport const isString = (payload) => typeof payload === 'string';\nexport const isNumber = (payload) => typeof payload === 'number' && !isNaN(payload);\nexport const isBoolean = (payload) => typeof payload === 'boolean';\nexport const isRegExp = (payload) => payload instanceof RegExp;\nexport const isMap = (payload) => payload instanceof Map;\nexport const isSet = (payload) => payload instanceof Set;\nexport const isSymbol = (payload) => getType(payload) === 'Symbol';\nexport const isDate = (payload) => payload instanceof Date && !isNaN(payload.valueOf());\nexport const isError = (payload) => payload instanceof Error;\nexport const isNaNValue = (payload) => typeof payload === 'number' && isNaN(payload);\nexport const isPrimitive = (payload) => isBoolean(payload) ||\n isNull(payload) ||\n isUndefined(payload) ||\n isNumber(payload) ||\n isString(payload) ||\n isSymbol(payload);\nexport const isBigint = (payload) => typeof payload === 'bigint';\nexport const isInfinite = (payload) => payload === Infinity || payload === -Infinity;\nexport const isTypedArray = (payload) => ArrayBuffer.isView(payload) && !(payload instanceof DataView);\nexport const isURL = (payload) => payload instanceof URL;\n//# sourceMappingURL=is.js.map","export const escapeKey = (key) => key.replace(/\\\\/g, '\\\\\\\\').replace(/\\./g, '\\\\.');\nexport const stringifyPath = (path) => path\n .map(String)\n .map(escapeKey)\n .join('.');\nexport const parsePath = (string, legacyPaths) => {\n const result = [];\n let segment = '';\n for (let i = 0; i < string.length; i++) {\n let char = string.charAt(i);\n if (!legacyPaths && char === '\\\\') {\n const escaped = string.charAt(i + 1);\n if (escaped === '\\\\') {\n segment += '\\\\';\n i++;\n continue;\n }\n else if (escaped !== '.') {\n throw Error('invalid path');\n }\n }\n const isEscapedDot = char === '\\\\' && string.charAt(i + 1) === '.';\n if (isEscapedDot) {\n segment += '.';\n i++;\n continue;\n }\n const isEndOfSegment = char === '.';\n if (isEndOfSegment) {\n result.push(segment);\n segment = '';\n continue;\n }\n segment += char;\n }\n const lastSegment = segment;\n result.push(lastSegment);\n return result;\n};\n//# sourceMappingURL=pathstringifier.js.map","import { isBigint, isDate, isInfinite, isMap, isNaNValue, isRegExp, isSet, isUndefined, isSymbol, isArray, isError, isTypedArray, isURL, } from './is.js';\nimport { findArr } from './util.js';\nfunction simpleTransformation(isApplicable, annotation, transform, untransform) {\n return {\n isApplicable,\n annotation,\n transform,\n untransform,\n };\n}\nconst simpleRules = [\n simpleTransformation(isUndefined, 'undefined', () => null, () => undefined),\n simpleTransformation(isBigint, 'bigint', v => v.toString(), v => {\n if (typeof BigInt !== 'undefined') {\n return BigInt(v);\n }\n console.error('Please add a BigInt polyfill.');\n return v;\n }),\n simpleTransformation(isDate, 'Date', v => v.toISOString(), v => new Date(v)),\n simpleTransformation(isError, 'Error', (v, superJson) => {\n const baseError = {\n name: v.name,\n message: v.message,\n };\n if ('cause' in v) {\n baseError.cause = v.cause;\n }\n superJson.allowedErrorProps.forEach(prop => {\n baseError[prop] = v[prop];\n });\n return baseError;\n }, (v, superJson) => {\n const e = new Error(v.message, { cause: v.cause });\n e.name = v.name;\n e.stack = v.stack;\n superJson.allowedErrorProps.forEach(prop => {\n e[prop] = v[prop];\n });\n return e;\n }),\n simpleTransformation(isRegExp, 'regexp', v => '' + v, regex => {\n const body = regex.slice(1, regex.lastIndexOf('/'));\n const flags = regex.slice(regex.lastIndexOf('/') + 1);\n return new RegExp(body, flags);\n }),\n simpleTransformation(isSet, 'set', \n // (sets only exist in es6+)\n // eslint-disable-next-line es5/no-es6-methods\n v => [...v.values()], v => new Set(v)),\n simpleTransformation(isMap, 'map', v => [...v.entries()], v => new Map(v)),\n simpleTransformation((v) => isNaNValue(v) || isInfinite(v), 'number', v => {\n if (isNaNValue(v)) {\n return 'NaN';\n }\n if (v > 0) {\n return 'Infinity';\n }\n else {\n return '-Infinity';\n }\n }, Number),\n simpleTransformation((v) => v === 0 && 1 / v === -Infinity, 'number', () => {\n return '-0';\n }, Number),\n simpleTransformation(isURL, 'URL', v => v.toString(), v => new URL(v)),\n];\nfunction compositeTransformation(isApplicable, annotation, transform, untransform) {\n return {\n isApplicable,\n annotation,\n transform,\n untransform,\n };\n}\nconst symbolRule = compositeTransformation((s, superJson) => {\n if (isSymbol(s)) {\n const isRegistered = !!superJson.symbolRegistry.getIdentifier(s);\n return isRegistered;\n }\n return false;\n}, (s, superJson) => {\n const identifier = superJson.symbolRegistry.getIdentifier(s);\n return ['symbol', identifier];\n}, v => v.description, (_, a, superJson) => {\n const value = superJson.symbolRegistry.getValue(a[1]);\n if (!value) {\n throw new Error('Trying to deserialize unknown symbol');\n }\n return value;\n});\nconst constructorToName = [\n Int8Array,\n Uint8Array,\n Int16Array,\n Uint16Array,\n Int32Array,\n Uint32Array,\n Float32Array,\n Float64Array,\n Uint8ClampedArray,\n].reduce((obj, ctor) => {\n obj[ctor.name] = ctor;\n return obj;\n}, {});\nconst typedArrayRule = compositeTransformation(isTypedArray, v => ['typed-array', v.constructor.name], v => [...v], (v, a) => {\n const ctor = constructorToName[a[1]];\n if (!ctor) {\n throw new Error('Trying to deserialize unknown typed array');\n }\n return new ctor(v);\n});\nexport function isInstanceOfRegisteredClass(potentialClass, superJson) {\n if (potentialClass?.constructor) {\n const isRegistered = !!superJson.classRegistry.getIdentifier(potentialClass.constructor);\n return isRegistered;\n }\n return false;\n}\nconst classRule = compositeTransformation(isInstanceOfRegisteredClass, (clazz, superJson) => {\n const identifier = superJson.classRegistry.getIdentifier(clazz.constructor);\n return ['class', identifier];\n}, (clazz, superJson) => {\n const allowedProps = superJson.classRegistry.getAllowedProps(clazz.constructor);\n if (!allowedProps) {\n return { ...clazz };\n }\n const result = {};\n allowedProps.forEach(prop => {\n result[prop] = clazz[prop];\n });\n return result;\n}, (v, a, superJson) => {\n const clazz = superJson.classRegistry.getValue(a[1]);\n if (!clazz) {\n throw new Error(`Trying to deserialize unknown class '${a[1]}' - check https://github.com/blitz-js/superjson/issues/116#issuecomment-773996564`);\n }\n return Object.assign(Object.create(clazz.prototype), v);\n});\nconst customRule = compositeTransformation((value, superJson) => {\n return !!superJson.customTransformerRegistry.findApplicable(value);\n}, (value, superJson) => {\n const transformer = superJson.customTransformerRegistry.findApplicable(value);\n return ['custom', transformer.name];\n}, (value, superJson) => {\n const transformer = superJson.customTransformerRegistry.findApplicable(value);\n return transformer.serialize(value);\n}, (v, a, superJson) => {\n const transformer = superJson.customTransformerRegistry.findByName(a[1]);\n if (!transformer) {\n throw new Error('Trying to deserialize unknown custom value');\n }\n return transformer.deserialize(v);\n});\nconst compositeRules = [classRule, symbolRule, customRule, typedArrayRule];\nexport const transformValue = (value, superJson) => {\n const applicableCompositeRule = findArr(compositeRules, rule => rule.isApplicable(value, superJson));\n if (applicableCompositeRule) {\n return {\n value: applicableCompositeRule.transform(value, superJson),\n type: applicableCompositeRule.annotation(value, superJson),\n };\n }\n const applicableSimpleRule = findArr(simpleRules, rule => rule.isApplicable(value, superJson));\n if (applicableSimpleRule) {\n return {\n value: applicableSimpleRule.transform(value, superJson),\n type: applicableSimpleRule.annotation,\n };\n }\n return undefined;\n};\nconst simpleRulesByAnnotation = {};\nsimpleRules.forEach(rule => {\n simpleRulesByAnnotation[rule.annotation] = rule;\n});\nexport const untransformValue = (json, type, superJson) => {\n if (isArray(type)) {\n switch (type[0]) {\n case 'symbol':\n return symbolRule.untransform(json, type, superJson);\n case 'class':\n return classRule.untransform(json, type, superJson);\n case 'custom':\n return customRule.untransform(json, type, superJson);\n case 'typed-array':\n return typedArrayRule.untransform(json, type, superJson);\n default:\n throw new Error('Unknown transformation: ' + type);\n }\n }\n else {\n const transformation = simpleRulesByAnnotation[type];\n if (!transformation) {\n throw new Error('Unknown transformation: ' + type);\n }\n return transformation.untransform(json, superJson);\n }\n};\n//# sourceMappingURL=transformer.js.map","import { isMap, isArray, isPlainObject, isSet } from './is.js';\nimport { includes } from './util.js';\nconst getNthKey = (value, n) => {\n if (n > value.size)\n throw new Error('index out of bounds');\n const keys = value.keys();\n while (n > 0) {\n keys.next();\n n--;\n }\n return keys.next().value;\n};\nfunction validatePath(path) {\n if (includes(path, '__proto__')) {\n throw new Error('__proto__ is not allowed as a property');\n }\n if (includes(path, 'prototype')) {\n throw new Error('prototype is not allowed as a property');\n }\n if (includes(path, 'constructor')) {\n throw new Error('constructor is not allowed as a property');\n }\n}\nexport const getDeep = (object, path) => {\n validatePath(path);\n for (let i = 0; i < path.length; i++) {\n const key = path[i];\n if (isSet(object)) {\n object = getNthKey(object, +key);\n }\n else if (isMap(object)) {\n const row = +key;\n const type = +path[++i] === 0 ? 'key' : 'value';\n const keyOfRow = getNthKey(object, row);\n switch (type) {\n case 'key':\n object = keyOfRow;\n break;\n case 'value':\n object = object.get(keyOfRow);\n break;\n }\n }\n else {\n object = object[key];\n }\n }\n return object;\n};\nexport const setDeep = (object, path, mapper) => {\n validatePath(path);\n if (path.length === 0) {\n return mapper(object);\n }\n let parent = object;\n for (let i = 0; i < path.length - 1; i++) {\n const key = path[i];\n if (isArray(parent)) {\n const index = +key;\n parent = parent[index];\n }\n else if (isPlainObject(parent)) {\n parent = parent[key];\n }\n else if (isSet(parent)) {\n const row = +key;\n parent = getNthKey(parent, row);\n }\n else if (isMap(parent)) {\n const isEnd = i === path.length - 2;\n if (isEnd) {\n break;\n }\n const row = +key;\n const type = +path[++i] === 0 ? 'key' : 'value';\n const keyOfRow = getNthKey(parent, row);\n switch (type) {\n case 'key':\n parent = keyOfRow;\n break;\n case 'value':\n parent = parent.get(keyOfRow);\n break;\n }\n }\n }\n const lastKey = path[path.length - 1];\n if (isArray(parent)) {\n parent[+lastKey] = mapper(parent[+lastKey]);\n }\n else if (isPlainObject(parent)) {\n parent[lastKey] = mapper(parent[lastKey]);\n }\n if (isSet(parent)) {\n const oldValue = getNthKey(parent, +lastKey);\n const newValue = mapper(oldValue);\n if (oldValue !== newValue) {\n parent.delete(oldValue);\n parent.add(newValue);\n }\n }\n if (isMap(parent)) {\n const row = +path[path.length - 2];\n const keyToRow = getNthKey(parent, row);\n const type = +lastKey === 0 ? 'key' : 'value';\n switch (type) {\n case 'key': {\n const newKey = mapper(keyToRow);\n parent.set(newKey, parent.get(keyToRow));\n if (newKey !== keyToRow) {\n parent.delete(keyToRow);\n }\n break;\n }\n case 'value': {\n parent.set(keyToRow, mapper(parent.get(keyToRow)));\n break;\n }\n }\n }\n return object;\n};\n//# sourceMappingURL=accessDeep.js.map","import { isArray, isEmptyObject, isError, isMap, isPlainObject, isPrimitive, isSet, } from './is.js';\nimport { escapeKey, stringifyPath } from './pathstringifier.js';\nimport { isInstanceOfRegisteredClass, transformValue, untransformValue, } from './transformer.js';\nimport { includes, forEach } from './util.js';\nimport { parsePath } from './pathstringifier.js';\nimport { getDeep, setDeep } from './accessDeep.js';\nconst enableLegacyPaths = (version) => version < 1;\nfunction traverse(tree, walker, version, origin = []) {\n if (!tree) {\n return;\n }\n const legacyPaths = enableLegacyPaths(version);\n if (!isArray(tree)) {\n forEach(tree, (subtree, key) => traverse(subtree, walker, version, [\n ...origin,\n ...parsePath(key, legacyPaths),\n ]));\n return;\n }\n const [nodeValue, children] = tree;\n if (children) {\n forEach(children, (child, key) => {\n traverse(child, walker, version, [\n ...origin,\n ...parsePath(key, legacyPaths),\n ]);\n });\n }\n walker(nodeValue, origin);\n}\nexport function applyValueAnnotations(plain, annotations, version, superJson) {\n traverse(annotations, (type, path) => {\n plain = setDeep(plain, path, v => untransformValue(v, type, superJson));\n }, version);\n return plain;\n}\nexport function applyReferentialEqualityAnnotations(plain, annotations, version) {\n const legacyPaths = enableLegacyPaths(version);\n function apply(identicalPaths, path) {\n const object = getDeep(plain, parsePath(path, legacyPaths));\n identicalPaths\n .map(path => parsePath(path, legacyPaths))\n .forEach(identicalObjectPath => {\n plain = setDeep(plain, identicalObjectPath, () => object);\n });\n }\n if (isArray(annotations)) {\n const [root, other] = annotations;\n root.forEach(identicalPath => {\n plain = setDeep(plain, parsePath(identicalPath, legacyPaths), () => plain);\n });\n if (other) {\n forEach(other, apply);\n }\n }\n else {\n forEach(annotations, apply);\n }\n return plain;\n}\nconst isDeep = (object, superJson) => isPlainObject(object) ||\n isArray(object) ||\n isMap(object) ||\n isSet(object) ||\n isError(object) ||\n isInstanceOfRegisteredClass(object, superJson);\nfunction addIdentity(object, path, identities) {\n const existingSet = identities.get(object);\n if (existingSet) {\n existingSet.push(path);\n }\n else {\n identities.set(object, [path]);\n }\n}\nexport function generateReferentialEqualityAnnotations(identitites, dedupe) {\n const result = {};\n let rootEqualityPaths = undefined;\n identitites.forEach(paths => {\n if (paths.length <= 1) {\n return;\n }\n // if we're not deduping, all of these objects continue existing.\n // putting the shortest path first makes it easier to parse for humans\n // if we're deduping though, only the first entry will still exist, so we can't do this optimisation.\n if (!dedupe) {\n paths = paths\n .map(path => path.map(String))\n .sort((a, b) => a.length - b.length);\n }\n const [representativePath, ...identicalPaths] = paths;\n if (representativePath.length === 0) {\n rootEqualityPaths = identicalPaths.map(stringifyPath);\n }\n else {\n result[stringifyPath(representativePath)] = identicalPaths.map(stringifyPath);\n }\n });\n if (rootEqualityPaths) {\n if (isEmptyObject(result)) {\n return [rootEqualityPaths];\n }\n else {\n return [rootEqualityPaths, result];\n }\n }\n else {\n return isEmptyObject(result) ? undefined : result;\n }\n}\nexport const walker = (object, identities, superJson, dedupe, path = [], objectsInThisPath = [], seenObjects = new Map()) => {\n const primitive = isPrimitive(object);\n if (!primitive) {\n addIdentity(object, path, identities);\n const seen = seenObjects.get(object);\n if (seen) {\n // short-circuit result if we've seen this object before\n return dedupe\n ? {\n transformedValue: null,\n }\n : seen;\n }\n }\n if (!isDeep(object, superJson)) {\n const transformed = transformValue(object, superJson);\n const result = transformed\n ? {\n transformedValue: transformed.value,\n annotations: [transformed.type],\n }\n : {\n transformedValue: object,\n };\n if (!primitive) {\n seenObjects.set(object, result);\n }\n return result;\n }\n if (includes(objectsInThisPath, object)) {\n // prevent circular references\n return {\n transformedValue: null,\n };\n }\n const transformationResult = transformValue(object, superJson);\n const transformed = transformationResult?.value ?? object;\n const transformedValue = isArray(transformed) ? [] : {};\n const innerAnnotations = {};\n forEach(transformed, (value, index) => {\n if (index === '__proto__' ||\n index === 'constructor' ||\n index === 'prototype') {\n throw new Error(`Detected property ${index}. This is a prototype pollution risk, please remove it from your object.`);\n }\n const recursiveResult = walker(value, identities, superJson, dedupe, [...path, index], [...objectsInThisPath, object], seenObjects);\n transformedValue[index] = recursiveResult.transformedValue;\n if (isArray(recursiveResult.annotations)) {\n innerAnnotations[escapeKey(index)] = recursiveResult.annotations;\n }\n else if (isPlainObject(recursiveResult.annotations)) {\n forEach(recursiveResult.annotations, (tree, key) => {\n innerAnnotations[escapeKey(index) + '.' + key] = tree;\n });\n }\n });\n const result = isEmptyObject(innerAnnotations)\n ? {\n transformedValue,\n annotations: !!transformationResult\n ? [transformationResult.type]\n : undefined,\n }\n : {\n transformedValue,\n annotations: !!transformationResult\n ? [transformationResult.type, innerAnnotations]\n : innerAnnotations,\n };\n if (!primitive) {\n seenObjects.set(object, result);\n }\n return result;\n};\n//# sourceMappingURL=plainer.js.map","/**\n * Assigns a prop the copy is keeping, preserving whether it was enumerable. Callers decide\n * _whether_ to keep a non-enumerable prop before getting here, so by this point the answer is\n * always yes.\n */\nfunction assignProp(carry, key, newVal, originalObject) {\n if (Object.prototype.propertyIsEnumerable.call(originalObject, key)) {\n carry[key] = newVal;\n return;\n }\n Object.defineProperty(carry, key, {\n value: newVal,\n enumerable: false,\n writable: true,\n configurable: true,\n });\n}\n/**\n * Whether `value` is an object literal, as opposed to a class instance, a built-in like `Date`, an\n * `arguments` object, or an object with a null prototype.\n *\n * The prototype check comes first because it is cheap and rejects almost everything; the tag check\n * is only reached by values that are about to be cloned anyway.\n */\nfunction isPlainObject(value) {\n return (Object.getPrototypeOf(value) === Object.prototype &&\n Object.prototype.toString.call(value) === '[object Object]');\n}\n/**\n * Returns the clone that `value` should be replaced with, and queues it to be filled in later.\n * Anything that isn't an array or a plain object is returned untouched.\n *\n * Reusing the clone already registered in `clones` is what makes circular and shared references\n * work: the placeholder is registered before its contents exist, so a reference back to an ancestor\n * resolves to it rather than walking forever.\n */\nfunction cloneRef(value, clones, sources, dests) {\n if (typeof value !== 'object' || value === null)\n return value;\n const array = Array.isArray(value);\n if (!array && !isPlainObject(value))\n return value;\n const existing = clones.get(value);\n if (existing !== undefined)\n return existing;\n const clone = array ? new Array(value.length) : {};\n clones.set(value, clone);\n sources.push(value);\n dests.push(clone);\n return clone;\n}\n/**\n * Copy (clone) an object and all its props recursively to get rid of any prop referenced of the\n * original object. Arrays and the objects inside them are cloned as well.\n *\n * Nesting depth is limited only by available memory, and circular references are reproduced in the\n * copy rather than followed forever. Two props pointing at the same object still point at one\n * shared copy afterwards.\n *\n * @param target Target can be anything\n * @param [options={}] See type {@link Options} for more details.\n *\n * - `{ props: ['key1'] }` will only copy the `key1` property. When using this you will need to cast\n * the return type manually (in order to keep the TS implementation in here simple I didn't\n * built a complex auto resolved type for those few cases people want to use this option)\n * - `{ nonenumerable: true }` will copy all non-enumerable properties. Default is `{}`\n *\n * @returns The target with replaced values\n */\nexport function copy(target, options = {}) {\n if (typeof target !== 'object' || target === null)\n return target;\n const clones = new Map();\n // An explicit work list rather than recursion, so nesting depth is bounded by the heap instead\n // of the call stack. Deeply nested input used to throw a RangeError here.\n const sources = [];\n const dests = [];\n const result = cloneRef(target, clones, sources, dests);\n const onlyProps = Array.isArray(options.props) ? options.props : undefined;\n const nonenumerable = options.nonenumerable === true;\n while (sources.length) {\n const source = sources.pop();\n const dest = dests.pop();\n if (Array.isArray(source)) {\n for (let i = 0; i < source.length; i++) {\n if (i in source)\n dest[i] = cloneRef(source[i], clones, sources, dests);\n }\n continue;\n }\n if (nonenumerable) {\n for (const key of Object.getOwnPropertyNames(source)) {\n // Skip __proto__ properties to prevent prototype pollution\n if (key === '__proto__')\n continue;\n if (onlyProps && !onlyProps.includes(key))\n continue;\n const newVal = cloneRef(source[key], clones, sources, dests);\n assignProp(dest, key, newVal, source);\n }\n }\n else {\n // `for in` skips non-enumerable keys and allocates no key array, which is why it beats\n // getOwnPropertyNames here. The own check is needed because it also walks the prototype.\n for (const key in source) {\n if (!Object.prototype.hasOwnProperty.call(source, key))\n continue;\n // Skip __proto__ properties to prevent prototype pollution\n if (key === '__proto__')\n continue;\n if (onlyProps && !onlyProps.includes(key))\n continue;\n dest[key] = cloneRef(source[key], clones, sources, dests);\n }\n }\n for (const key of Object.getOwnPropertySymbols(source)) {\n if (onlyProps && !onlyProps.includes(key))\n continue;\n if (!nonenumerable && !Object.prototype.propertyIsEnumerable.call(source, key))\n continue;\n const newVal = cloneRef(source[key], clones, sources, dests);\n assignProp(dest, key, newVal, source);\n }\n }\n return result;\n}\n","import { ClassRegistry } from './class-registry.js';\nimport { Registry } from './registry.js';\nimport { CustomTransformerRegistry, } from './custom-transformer-registry.js';\nimport { applyReferentialEqualityAnnotations, applyValueAnnotations, generateReferentialEqualityAnnotations, walker, } from './plainer.js';\nimport { copy } from 'copy-anything';\nclass SuperJSON {\n /**\n * @param dedupeReferentialEqualities If true, SuperJSON will make sure only one instance of referentially equal objects are serialized and the rest are replaced with `null`.\n */\n constructor({ dedupe = false, } = {}) {\n this.classRegistry = new ClassRegistry();\n this.symbolRegistry = new Registry(s => s.description ?? '');\n this.customTransformerRegistry = new CustomTransformerRegistry();\n this.allowedErrorProps = [];\n this.dedupe = dedupe;\n }\n serialize(object) {\n const identities = new Map();\n const output = walker(object, identities, this, this.dedupe);\n const res = {\n json: output.transformedValue,\n };\n if (output.annotations) {\n res.meta = {\n ...res.meta,\n values: output.annotations,\n };\n }\n const equalityAnnotations = generateReferentialEqualityAnnotations(identities, this.dedupe);\n if (equalityAnnotations) {\n res.meta = {\n ...res.meta,\n referentialEqualities: equalityAnnotations,\n };\n }\n if (res.meta)\n res.meta.v = 1;\n return res;\n }\n deserialize(payload, options) {\n const { json, meta } = payload;\n let result = options?.inPlace ? json : copy(json);\n if (meta?.values) {\n result = applyValueAnnotations(result, meta.values, meta.v ?? 0, this);\n }\n if (meta?.referentialEqualities) {\n result = applyReferentialEqualityAnnotations(result, meta.referentialEqualities, meta.v ?? 0);\n }\n return result;\n }\n stringify(object) {\n return JSON.stringify(this.serialize(object));\n }\n parse(string) {\n return this.deserialize(JSON.parse(string), { inPlace: true });\n }\n registerClass(v, options) {\n this.classRegistry.register(v, options);\n }\n registerSymbol(v, identifier) {\n this.symbolRegistry.register(v, identifier);\n }\n registerCustom(transformer, name) {\n this.customTransformerRegistry.register({\n name,\n ...transformer,\n });\n }\n allowErrorProps(...props) {\n this.allowedErrorProps.push(...props);\n }\n}\nSuperJSON.defaultInstance = new SuperJSON();\nSuperJSON.serialize = SuperJSON.defaultInstance.serialize.bind(SuperJSON.defaultInstance);\nSuperJSON.deserialize = SuperJSON.defaultInstance.deserialize.bind(SuperJSON.defaultInstance);\nSuperJSON.stringify = SuperJSON.defaultInstance.stringify.bind(SuperJSON.defaultInstance);\nSuperJSON.parse = SuperJSON.defaultInstance.parse.bind(SuperJSON.defaultInstance);\nSuperJSON.registerClass = SuperJSON.defaultInstance.registerClass.bind(SuperJSON.defaultInstance);\nSuperJSON.registerSymbol = SuperJSON.defaultInstance.registerSymbol.bind(SuperJSON.defaultInstance);\nSuperJSON.registerCustom = SuperJSON.defaultInstance.registerCustom.bind(SuperJSON.defaultInstance);\nSuperJSON.allowErrorProps = SuperJSON.defaultInstance.allowErrorProps.bind(SuperJSON.defaultInstance);\nexport default SuperJSON;\nexport { SuperJSON };\nexport const serialize = SuperJSON.serialize;\nexport const deserialize = SuperJSON.deserialize;\nexport const stringify = SuperJSON.stringify;\nexport const parse = SuperJSON.parse;\nexport const registerClass = SuperJSON.registerClass;\nexport const registerCustom = SuperJSON.registerCustom;\nexport const registerSymbol = SuperJSON.registerSymbol;\nexport const allowErrorProps = SuperJSON.allowErrorProps;\n//# sourceMappingURL=index.js.map","import type { Mastra } from '@mastra/core';\nimport type { RequestContext } from '@mastra/core/di';\nimport type { SystemMessage } from '@mastra/core/llm';\nimport type { StepWithComponent, Workflow, WorkflowInfo } from '@mastra/core/workflows';\nimport { toStandardSchema, standardSchemaToJSONSchema } from '@mastra/schema-compat/schema';\nimport type { PublicSchema } from '@mastra/schema-compat/schema';\n\nimport { stringify } from 'superjson';\nimport { MASTRA_RESOURCE_ID_KEY } from './constants';\nimport { HTTPException } from './http-exception';\n\n/**\n * Convert any PublicSchema to a JSON Schema.\n * Uses toStandardSchema to handle all schema types (Zod v4, AI SDK Schema, JSON Schema).\n */\nfunction schemaToJsonSchema(schema: PublicSchema<unknown> | undefined) {\n if (!schema) return undefined;\n\n // Convert any PublicSchema to StandardSchemaWithJSON, then extract JSON Schema\n const standardSchema = toStandardSchema(schema);\n return standardSchemaToJSONSchema(standardSchema);\n}\n\n/**\n * Normalizes a route path to ensure consistent formatting.\n * - Removes leading/trailing whitespace\n * - Validates no path traversal (..), query strings (?), or fragments (#)\n * - Collapses multiple consecutive slashes\n * - Removes trailing slashes\n * - Ensures leading slash (unless empty)\n *\n * @param path - The route path to normalize\n * @returns The normalized path (empty string for root paths)\n * @throws Error if path contains invalid characters\n */\nexport function normalizeRoutePath(path: string): string {\n let normalized = path.trim();\n if (normalized.includes('..') || normalized.includes('?') || normalized.includes('#')) {\n throw new Error(`Invalid route path: \"${path}\". Path cannot contain '..', '?', or '#'`);\n }\n normalized = normalized.replace(/\\/+/g, '/');\n if (normalized === '/' || normalized === '') {\n return '';\n }\n if (normalized.endsWith('/')) {\n normalized = normalized.slice(0, -1);\n }\n if (!normalized.startsWith('/')) {\n normalized = `/${normalized}`;\n }\n return normalized;\n}\n\nconst DEFAULT_STORED_RESOURCE_SCOPE_METADATA_KEY = 'mastra.resourceId';\n\nexport type StoredResourceScope = {\n metadataKey: string;\n value: string;\n};\n\nexport type StoredResourceLike = {\n metadata?: Record<string, unknown> | null;\n};\n\nexport async function getStoredResourceScope(\n mastra: Pick<Mastra, 'getServer'>,\n requestContext: RequestContext | undefined,\n): Promise<StoredResourceScope | undefined> {\n const scopeConfig = mastra?.getServer?.()?.storedResources?.scope;\n if (!scopeConfig) {\n return undefined;\n }\n\n const options = scopeConfig === true ? {} : scopeConfig;\n const metadataKey = options.metadataKey ?? DEFAULT_STORED_RESOURCE_SCOPE_METADATA_KEY;\n const user = requestContext?.get('user');\n const resolved = options.resolve\n ? await options.resolve({ requestContext, user })\n : (requestContext?.get(MASTRA_RESOURCE_ID_KEY) as string | undefined);\n\n if (!resolved) {\n if (options.requireScope === false) {\n return undefined;\n }\n throw new HTTPException(403, { message: 'Stored resource scope is required' });\n }\n\n return { metadataKey, value: resolved };\n}\n\nexport function scopeStoredResourceMetadata(\n metadata: Record<string, unknown> | undefined,\n scope: StoredResourceScope | undefined,\n): Record<string, unknown> | undefined {\n if (!scope) {\n return metadata;\n }\n\n return {\n ...(metadata ?? {}),\n [scope.metadataKey]: scope.value,\n };\n}\n\nexport function assertStoredResourceScope(\n resource: StoredResourceLike | null | undefined,\n scope: StoredResourceScope | undefined,\n): void {\n if (!resource || !scope) {\n return;\n }\n\n if (resource.metadata?.[scope.metadataKey] !== scope.value) {\n throw new HTTPException(404, { message: 'Stored resource not found' });\n }\n}\n\n/**\n * Check if a schema looks like a processor step schema.\n * Processor step schemas are discriminated unions on 'phase' with specific values.\n */\nfunction looksLikeProcessorStepSchema(schema: PublicSchema<unknown> | undefined): boolean {\n if (!schema) return false;\n\n try {\n const jsonSchema = standardSchemaToJSONSchema(toStandardSchema(schema)) as Record<string, unknown> | undefined;\n if (!jsonSchema) return false;\n\n // Check for discriminated union pattern: anyOf/oneOf with phase discriminator\n const variants = (jsonSchema.anyOf || jsonSchema.oneOf) as Array<Record<string, unknown>> | undefined;\n if (!variants || !Array.isArray(variants)) return false;\n\n // Check if all variants have a 'phase' property with processor phase values\n const processorPhases = new Set(['input', 'inputStep', 'outputStream', 'outputResult', 'outputStep', 'toolResult']);\n\n for (const variant of variants) {\n const properties = variant.properties as Record<string, unknown> | undefined;\n if (!properties?.phase) return false;\n\n const phaseSchema = properties.phase as Record<string, unknown>;\n const phaseConst = phaseSchema?.const as string | undefined;\n const phaseEnum = Array.isArray(phaseSchema?.enum) ? (phaseSchema.enum as string[]) : [];\n const phaseValues = phaseConst ? [phaseConst] : phaseEnum;\n\n if (!phaseValues.length || phaseValues.some(phase => !processorPhases.has(phase))) {\n return false;\n }\n }\n\n return variants.length > 0;\n } catch {\n return false;\n }\n}\n\nfunction getSteps(steps: Record<string, StepWithComponent>, path?: string) {\n return Object.entries(steps).reduce<any>((acc, [key, step]) => {\n const fullKey = path ? `${path}.${key}` : key;\n acc[fullKey] = {\n id: step.id,\n description: step.description,\n inputSchema: step.inputSchema ? stringify(schemaToJsonSchema(step.inputSchema)) : undefined,\n outputSchema: step.outputSchema ? stringify(schemaToJsonSchema(step.outputSchema)) : undefined,\n resumeSchema: step.resumeSchema ? stringify(schemaToJsonSchema(step.resumeSchema)) : undefined,\n suspendSchema: step.suspendSchema ? stringify(schemaToJsonSchema(step.suspendSchema)) : undefined,\n stateSchema: step.stateSchema ? stringify(schemaToJsonSchema(step.stateSchema)) : undefined,\n isWorkflow: step.component === 'WORKFLOW',\n component: step.component,\n metadata: step.metadata,\n };\n\n if (step.component === 'WORKFLOW' && step.steps) {\n const nestedSteps = getSteps(step.steps, fullKey) || {};\n acc = { ...acc, ...nestedSteps };\n }\n\n return acc;\n }, {});\n}\n\nexport function getWorkflowInfo(workflow: Workflow, partial: boolean = false): WorkflowInfo {\n if (partial) {\n // Return minimal info in partial mode\n return {\n name: workflow.name,\n description: workflow.description,\n metadata: workflow.metadata,\n stepCount: Object.keys(workflow.steps).length,\n stepGraph: workflow.serializedStepGraph,\n options: workflow.options,\n steps: {},\n allSteps: {},\n inputSchema: undefined,\n outputSchema: undefined,\n stateSchema: undefined,\n requestContextSchema: undefined,\n origin: workflow.origin,\n } as WorkflowInfo;\n }\n\n return {\n name: workflow.name,\n description: workflow.description,\n metadata: workflow.metadata,\n origin: workflow.origin,\n steps: Object.entries(workflow.steps).reduce<any>((acc, [key, step]) => {\n acc[key] = {\n id: step.id,\n description: step.description,\n inputSchema: step.inputSchema ? stringify(schemaToJsonSchema(step.inputSchema)) : undefined,\n outputSchema: step.outputSchema ? stringify(schemaToJsonSchema(step.outputSchema)) : undefined,\n resumeSchema: step.resumeSchema ? stringify(schemaToJsonSchema(step.resumeSchema)) : undefined,\n suspendSchema: step.suspendSchema ? stringify(schemaToJsonSchema(step.suspendSchema)) : undefined,\n stateSchema: step.stateSchema ? stringify(schemaToJsonSchema(step.stateSchema)) : undefined,\n requestContextSchema: step.requestContextSchema\n ? stringify(schemaToJsonSchema(step.requestContextSchema))\n : undefined,\n component: step.component,\n metadata: step.metadata,\n };\n return acc;\n }, {}),\n allSteps: getSteps(workflow.steps) || {},\n stepGraph: workflow.serializedStepGraph,\n inputSchema: workflow.inputSchema ? stringify(schemaToJsonSchema(workflow.inputSchema)) : undefined,\n outputSchema: workflow.outputSchema ? stringify(schemaToJsonSchema(workflow.outputSchema)) : undefined,\n stateSchema: workflow.stateSchema ? stringify(schemaToJsonSchema(workflow.stateSchema)) : undefined,\n requestContextSchema: workflow.requestContextSchema\n ? stringify(schemaToJsonSchema(workflow.requestContextSchema))\n : undefined,\n options: workflow.options,\n isProcessorWorkflow: workflow.type === 'processor' || looksLikeProcessorStepSchema(workflow.inputSchema),\n };\n}\n\n/**\n * Workflow Registry for temporarily registering additional workflows\n * that are not part of the user's Mastra instance (e.g., internal template workflows)\n */\nexport class WorkflowRegistry {\n private static additionalWorkflows: Record<string, Workflow> = {};\n\n /**\n * Register a workflow temporarily\n */\n static registerTemporaryWorkflow(id: string, workflow: Workflow): void {\n this.additionalWorkflows[id] = workflow;\n }\n\n /**\n * Register all workflows from map\n */\n static registerTemporaryWorkflows(\n workflows: Record<string, Workflow>,\n mastra?: Mastra<any, any, any, any, any, any, any, any, any>,\n ): void {\n for (const [id, workflow] of Object.entries(workflows)) {\n // Register Mastra instance with the workflow if provided\n if (mastra) {\n workflow.__registerMastra(mastra);\n workflow.__registerPrimitives({\n logger: mastra.getLogger(),\n storage: mastra.getStorage(),\n agents: mastra.listAgents(),\n tts: mastra.getTTS(),\n vectors: mastra.listVectors(),\n });\n }\n this.additionalWorkflows[id] = workflow;\n }\n }\n\n /**\n * Get a workflow by ID from the registry (returns undefined if not found)\n */\n static getWorkflow(workflowId: string): Workflow | undefined {\n return this.additionalWorkflows[workflowId];\n }\n\n /**\n * Get all workflows from the registry\n */\n static getAllWorkflows(): Record<string, Workflow> {\n return { ...this.additionalWorkflows };\n }\n\n /**\n * Clean up a temporary workflow\n */\n static cleanupTemporaryWorkflow(workflowId: string): void {\n delete this.additionalWorkflows[workflowId];\n }\n /**\n * Clean up all registered workflows\n */\n static cleanup(): void {\n // Clear all workflows (since we register all agent-builder workflows each time)\n this.additionalWorkflows = {};\n }\n\n /**\n * Check if a workflow ID is a valid agent-builder workflow\n */\n static isAgentBuilderWorkflow(workflowId: string): boolean {\n return workflowId in this.additionalWorkflows;\n }\n\n /**\n * Get all registered temporary workflow IDs (for debugging)\n */\n static getRegisteredWorkflowIds(): string[] {\n return Object.keys(this.additionalWorkflows);\n }\n}\n\n/**\n * Converts a string to a URL-friendly slug.\n * Lowercases, replaces non-alphanumeric characters with hyphens,\n * collapses consecutive hyphens, and trims leading/trailing hyphens.\n */\nexport function toSlug(input: string): string {\n return input\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, '-')\n .replace(/^-+|-+$/g, '');\n}\n\nexport function convertInstructionsToString(message: SystemMessage): string {\n if (!message) {\n return '';\n }\n\n if (typeof message === 'string') {\n return message;\n }\n\n if (Array.isArray(message)) {\n return message\n .map(m => {\n if (typeof m === 'string') {\n return m;\n }\n // Safely extract content from message objects\n return typeof m.content === 'string' ? m.content : '';\n })\n .filter(content => content) // Remove empty strings\n .join('\\n');\n }\n\n // Handle single message object - safely extract content\n return typeof message.content === 'string' ? message.content : '';\n}\n"],"ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11],"mappings":"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"}