@mastra/server 1.80.0-alpha.6 → 1.80.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (256) hide show
  1. package/dist/{a2a-D6ajBqAA.js → a2a-CSz0rw8E.js} +2 -2
  2. package/dist/{a2a-D6ajBqAA.js.map → a2a-CSz0rw8E.js.map} +1 -1
  3. package/dist/{a2a-3ykajvdu.cjs → a2a-CmMIWPuz.cjs} +2 -2
  4. package/dist/{a2a-3ykajvdu.cjs.map → a2a-CmMIWPuz.cjs.map} +1 -1
  5. package/dist/{agent-builder-Cr-52Ulb.js → agent-builder-CSnA_l6K.js} +2 -2
  6. package/dist/{agent-builder-Cr-52Ulb.js.map → agent-builder-CSnA_l6K.js.map} +1 -1
  7. package/dist/{agent-builder-BDHi4NOZ.js → agent-builder-CrmZ77IU.js} +7 -7
  8. package/dist/{agent-builder-BDHi4NOZ.js.map → agent-builder-CrmZ77IU.js.map} +1 -1
  9. package/dist/{agent-builder-9-GSvpgR.cjs → agent-builder-DSKjD22s.cjs} +2 -2
  10. package/dist/{agent-builder-9-GSvpgR.cjs.map → agent-builder-DSKjD22s.cjs.map} +1 -1
  11. package/dist/{agent-builder-D3WRvBAH.cjs → agent-builder-DXhQCXod.cjs} +7 -7
  12. package/dist/{agent-builder-D3WRvBAH.cjs.map → agent-builder-DXhQCXod.cjs.map} +1 -1
  13. package/dist/{agent-versions-De5bRBaa.cjs → agent-versions-DX2rd6j_.cjs} +3 -3
  14. package/dist/{agent-versions-De5bRBaa.cjs.map → agent-versions-DX2rd6j_.cjs.map} +1 -1
  15. package/dist/{agent-versions-Pa-ABszp.js → agent-versions-TUl6ky5W.js} +3 -3
  16. package/dist/{agent-versions-Pa-ABszp.js.map → agent-versions-TUl6ky5W.js.map} +1 -1
  17. package/dist/{agents-Cl3KTHU4.js → agents-B5kq2QEV.js} +2 -2
  18. package/dist/{agents-Cl3KTHU4.js.map → agents-B5kq2QEV.js.map} +1 -1
  19. package/dist/{agents-CiUW6yvl.js → agents-BVjnYswL.js} +3 -3
  20. package/dist/{agents-CiUW6yvl.js.map → agents-BVjnYswL.js.map} +1 -1
  21. package/dist/{agents-Bs1GFnXz.cjs → agents-Cel1sffU.cjs} +2 -2
  22. package/dist/{agents-Bs1GFnXz.cjs.map → agents-Cel1sffU.cjs.map} +1 -1
  23. package/dist/{agents-DBsmIR4c.cjs → agents-D36tukip.cjs} +3 -3
  24. package/dist/{agents-DBsmIR4c.cjs.map → agents-D36tukip.cjs.map} +1 -1
  25. package/dist/{api-schema-manifest-COH6PAvQ.cjs → api-schema-manifest-CwFjht0V.cjs} +2 -2
  26. package/dist/{api-schema-manifest-COH6PAvQ.cjs.map → api-schema-manifest-CwFjht0V.cjs.map} +1 -1
  27. package/dist/{api-schema-manifest-C6MbIQch.js → api-schema-manifest-JUFooPZG.js} +2 -2
  28. package/dist/{api-schema-manifest-C6MbIQch.js.map → api-schema-manifest-JUFooPZG.js.map} +1 -1
  29. package/dist/{background-tasks-DIpPsqVy.js → background-tasks-BkYNmUcf.js} +2 -2
  30. package/dist/{background-tasks-DIpPsqVy.js.map → background-tasks-BkYNmUcf.js.map} +1 -1
  31. package/dist/{background-tasks-BMp9Q6SB.cjs → background-tasks-Civclnuq.cjs} +2 -2
  32. package/dist/{background-tasks-BMp9Q6SB.cjs.map → background-tasks-Civclnuq.cjs.map} +1 -1
  33. package/dist/{common-DVZqSEhZ.cjs → common-D5XxSuvu.cjs} +2 -2
  34. package/dist/common-D5XxSuvu.cjs.map +1 -0
  35. package/dist/{common-xUmaFUop.js → common-J-yUnHk9.js} +2 -2
  36. package/dist/common-J-yUnHk9.js.map +1 -0
  37. package/dist/{conversations-BPQNrv5g.cjs → conversations-BVj0Dk2Q.cjs} +2 -2
  38. package/dist/{conversations-BPQNrv5g.cjs.map → conversations-BVj0Dk2Q.cjs.map} +1 -1
  39. package/dist/{conversations-Ce0dCZ23.js → conversations-CABVTBQY.js} +3 -3
  40. package/dist/{conversations-Ce0dCZ23.js.map → conversations-CABVTBQY.js.map} +1 -1
  41. package/dist/{conversations-RVdtAQEv.cjs → conversations-CJn0ioOZ.cjs} +3 -3
  42. package/dist/{conversations-RVdtAQEv.cjs.map → conversations-CJn0ioOZ.cjs.map} +1 -1
  43. package/dist/{conversations-nNko6-H4.js → conversations-DHrKTI6x.js} +2 -2
  44. package/dist/{conversations-nNko6-H4.js.map → conversations-DHrKTI6x.js.map} +1 -1
  45. package/dist/{datasets-hLmYapTk.js → datasets--F0QkdGX.js} +2 -2
  46. package/dist/{datasets-hLmYapTk.js.map → datasets--F0QkdGX.js.map} +1 -1
  47. package/dist/{datasets-BP2O5CSR.cjs → datasets-BiEAIm0s.cjs} +2 -2
  48. package/dist/{datasets-BP2O5CSR.cjs.map → datasets-BiEAIm0s.cjs.map} +1 -1
  49. package/dist/dist-C_xVj979.js +1 -0
  50. package/dist/{dist-PlsLrwz8.js → dist-DK9HHAgo.js} +18 -20
  51. package/dist/{dist-PlsLrwz8.js.map → dist-DK9HHAgo.js.map} +1 -1
  52. package/dist/{dist-Clj7hRKz.cjs → dist-DXDt4qI1.cjs} +18 -20
  53. package/dist/{dist-Clj7hRKz.cjs.map → dist-DXDt4qI1.cjs.map} +1 -1
  54. package/dist/{dist-D6oS7RF1.cjs → dist-qgP3izdE.cjs} +1 -1
  55. package/dist/docs/SKILL.md +1 -1
  56. package/dist/docs/assets/SOURCE_MAP.json +1 -1
  57. package/dist/docs/references/reference-server-create-route.md +20 -4
  58. package/dist/{editor-builder-9T1aGM2f.cjs → editor-builder-B8Mf4kJo.cjs} +2 -2
  59. package/dist/{editor-builder-9T1aGM2f.cjs.map → editor-builder-B8Mf4kJo.cjs.map} +1 -1
  60. package/dist/{editor-builder-Bj_or9-c.cjs → editor-builder-CeiISBIO.cjs} +3 -3
  61. package/dist/{editor-builder-Bj_or9-c.cjs.map → editor-builder-CeiISBIO.cjs.map} +1 -1
  62. package/dist/{editor-builder-Cc0zrTC1.js → editor-builder-DeD6EVm8.js} +3 -3
  63. package/dist/{editor-builder-Cc0zrTC1.js.map → editor-builder-DeD6EVm8.js.map} +1 -1
  64. package/dist/{editor-builder-lzO2zecA.js → editor-builder-PKGDfYNc.js} +2 -2
  65. package/dist/{editor-builder-lzO2zecA.js.map → editor-builder-PKGDfYNc.js.map} +1 -1
  66. package/dist/{logs-DIBh_xCk.js → logs-BbaBP2LD.js} +3 -3
  67. package/dist/{logs-DIBh_xCk.js.map → logs-BbaBP2LD.js.map} +1 -1
  68. package/dist/{logs-DpyTCDyt.js → logs-Ca_q8krO.js} +2 -2
  69. package/dist/{logs-DpyTCDyt.js.map → logs-Ca_q8krO.js.map} +1 -1
  70. package/dist/{logs-NNur5jkf.cjs → logs-DI-h9uHR.cjs} +3 -3
  71. package/dist/{logs-NNur5jkf.cjs.map → logs-DI-h9uHR.cjs.map} +1 -1
  72. package/dist/{logs-CC6IycDY.cjs → logs-YisOj8HR.cjs} +2 -2
  73. package/dist/{logs-CC6IycDY.cjs.map → logs-YisOj8HR.cjs.map} +1 -1
  74. package/dist/{mcp-4iUBgZ7s.cjs → mcp-Bt3h1lO7.cjs} +2 -2
  75. package/dist/{mcp-4iUBgZ7s.cjs.map → mcp-Bt3h1lO7.cjs.map} +1 -1
  76. package/dist/{mcp-CnV25lv0.js → mcp-D3F3iYew.js} +2 -2
  77. package/dist/{mcp-CnV25lv0.js.map → mcp-D3F3iYew.js.map} +1 -1
  78. package/dist/{mcp-DgdKiptb.js → mcp-D4Cprr8R.js} +2 -2
  79. package/dist/{mcp-DgdKiptb.js.map → mcp-D4Cprr8R.js.map} +1 -1
  80. package/dist/{mcp-client-versions-HRTe5cRT.cjs → mcp-client-versions-BS99SD4O.cjs} +2 -2
  81. package/dist/{mcp-client-versions-HRTe5cRT.cjs.map → mcp-client-versions-BS99SD4O.cjs.map} +1 -1
  82. package/dist/{mcp-client-versions-B471u-DI.js → mcp-client-versions-Rd-ry9Qa.js} +2 -2
  83. package/dist/{mcp-client-versions-B471u-DI.js.map → mcp-client-versions-Rd-ry9Qa.js.map} +1 -1
  84. package/dist/{mcp-DegWUDeB.cjs → mcp-mpYrlkUA.cjs} +2 -2
  85. package/dist/{mcp-DegWUDeB.cjs.map → mcp-mpYrlkUA.cjs.map} +1 -1
  86. package/dist/{memory-BnPGDrdg.cjs → memory--xJDrSwF.cjs} +2 -2
  87. package/dist/{memory-BnPGDrdg.cjs.map → memory--xJDrSwF.cjs.map} +1 -1
  88. package/dist/{memory-CZ2ELVP0.js → memory-CCEjoCF6.js} +2 -2
  89. package/dist/{memory-CZ2ELVP0.js.map → memory-CCEjoCF6.js.map} +1 -1
  90. package/dist/{memory-DeZ1je-b.js → memory-DQXCDswv.js} +2 -2
  91. package/dist/{memory-DeZ1je-b.js.map → memory-DQXCDswv.js.map} +1 -1
  92. package/dist/{memory-Pj9P9vsl.cjs → memory-DpKQ1Quf.cjs} +2 -2
  93. package/dist/{memory-Pj9P9vsl.cjs.map → memory-DpKQ1Quf.cjs.map} +1 -1
  94. package/dist/{plans-DVErlJoO.js → plans-B5GgYqx-.js} +3 -3
  95. package/dist/{plans-DVErlJoO.js.map → plans-B5GgYqx-.js.map} +1 -1
  96. package/dist/{plans-Cu3zbWP_.cjs → plans-Dydti0sT.cjs} +3 -3
  97. package/dist/{plans-Cu3zbWP_.cjs.map → plans-Dydti0sT.cjs.map} +1 -1
  98. package/dist/{probe-image-size-CpV7slsd.js → probe-image-size-BLtXo-AD.js} +2 -2
  99. package/dist/{probe-image-size-CpV7slsd.js.map → probe-image-size-BLtXo-AD.js.map} +1 -1
  100. package/dist/{probe-image-size-C0psF6WM.cjs → probe-image-size-DqKTuApZ.cjs} +2 -2
  101. package/dist/{probe-image-size-C0psF6WM.cjs.map → probe-image-size-DqKTuApZ.cjs.map} +1 -1
  102. package/dist/{prompt-block-versions-D1gjBkQx.js → prompt-block-versions-3T-L2loy.js} +2 -2
  103. package/dist/{prompt-block-versions-D1gjBkQx.js.map → prompt-block-versions-3T-L2loy.js.map} +1 -1
  104. package/dist/{prompt-block-versions-BUPyaY8g.cjs → prompt-block-versions-BTdrcaLe.cjs} +2 -2
  105. package/dist/{prompt-block-versions-BUPyaY8g.cjs.map → prompt-block-versions-BTdrcaLe.cjs.map} +1 -1
  106. package/dist/{responses-DniqbL1B.cjs → responses-CxvSoOLt.cjs} +2 -2
  107. package/dist/{responses-DniqbL1B.cjs.map → responses-CxvSoOLt.cjs.map} +1 -1
  108. package/dist/{responses-DOqM_drh.js → responses-DbiqhxP3.js} +2 -2
  109. package/dist/{responses-DOqM_drh.js.map → responses-DbiqhxP3.js.map} +1 -1
  110. package/dist/route-builder-BxPrwNog.js.map +1 -1
  111. package/dist/route-builder-CvARmqnA.cjs.map +1 -1
  112. package/dist/{routes-B_-KRQOi.cjs → routes-CbwRkg8_.cjs} +17 -17
  113. package/dist/{routes-B_-KRQOi.cjs.map → routes-CbwRkg8_.cjs.map} +1 -1
  114. package/dist/{routes-BfQBQbwB.js → routes-M2U8U4Jl.js} +17 -17
  115. package/dist/{routes-BfQBQbwB.js.map → routes-M2U8U4Jl.js.map} +1 -1
  116. package/dist/schema-Bf12g7KC-DBc4NSds.js.map +1 -1
  117. package/dist/schema-Bf12g7KC-plP4Ir6h.cjs.map +1 -1
  118. package/dist/{scorer-versions-r7C61gWf.cjs → scorer-versions-BOjrlIcM.cjs} +3 -3
  119. package/dist/{scorer-versions-r7C61gWf.cjs.map → scorer-versions-BOjrlIcM.cjs.map} +1 -1
  120. package/dist/{scorer-versions-DIqKt2kn.js → scorer-versions-DIcWTIgC.js} +3 -3
  121. package/dist/{scorer-versions-DIqKt2kn.js.map → scorer-versions-DIcWTIgC.js.map} +1 -1
  122. package/dist/{scores-DZ1hftoG.js → scores-BULd4ZBI.js} +2 -2
  123. package/dist/{scores-DZ1hftoG.js.map → scores-BULd4ZBI.js.map} +1 -1
  124. package/dist/{scores-BXrRHFvI.js → scores-BjclMqFa.js} +4 -4
  125. package/dist/{scores-BXrRHFvI.js.map → scores-BjclMqFa.js.map} +1 -1
  126. package/dist/{scores-Bu70OP1U.cjs → scores-CWCaN4jf.cjs} +2 -2
  127. package/dist/{scores-Bu70OP1U.cjs.map → scores-CWCaN4jf.cjs.map} +1 -1
  128. package/dist/{scores-BAZL_l3k.cjs → scores-CnozEyM4.cjs} +4 -4
  129. package/dist/{scores-BAZL_l3k.cjs.map → scores-CnozEyM4.cjs.map} +1 -1
  130. package/dist/server/handlers/a2a.cjs +1 -1
  131. package/dist/server/handlers/a2a.js +1 -1
  132. package/dist/server/handlers/agent-builder.cjs +1 -1
  133. package/dist/server/handlers/agent-builder.js +1 -1
  134. package/dist/server/handlers/agent-controller.cjs +1 -1
  135. package/dist/server/handlers/agent-controller.js +1 -1
  136. package/dist/server/handlers/agent-versions.cjs +2 -2
  137. package/dist/server/handlers/agent-versions.js +2 -2
  138. package/dist/server/handlers/agents.cjs +1 -1
  139. package/dist/server/handlers/agents.js +1 -1
  140. package/dist/server/handlers/background-tasks.cjs +1 -1
  141. package/dist/server/handlers/background-tasks.js +1 -1
  142. package/dist/server/handlers/conversations.cjs +1 -1
  143. package/dist/server/handlers/conversations.js +1 -1
  144. package/dist/server/handlers/datasets.cjs +2 -2
  145. package/dist/server/handlers/datasets.js +2 -2
  146. package/dist/server/handlers/editor-builder.cjs +1 -1
  147. package/dist/server/handlers/editor-builder.js +1 -1
  148. package/dist/server/handlers/favorites-enrichment.cjs +1 -1
  149. package/dist/server/handlers/favorites-enrichment.js +1 -1
  150. package/dist/server/handlers/logs.cjs +1 -1
  151. package/dist/server/handlers/logs.js +1 -1
  152. package/dist/server/handlers/mcp-client-versions.cjs +1 -1
  153. package/dist/server/handlers/mcp-client-versions.js +1 -1
  154. package/dist/server/handlers/mcp.cjs +1 -1
  155. package/dist/server/handlers/mcp.js +1 -1
  156. package/dist/server/handlers/memory.cjs +1 -1
  157. package/dist/server/handlers/memory.js +1 -1
  158. package/dist/server/handlers/plans.cjs +1 -1
  159. package/dist/server/handlers/plans.js +1 -1
  160. package/dist/server/handlers/prompt-block-versions.cjs +1 -1
  161. package/dist/server/handlers/prompt-block-versions.js +1 -1
  162. package/dist/server/handlers/responses.cjs +1 -1
  163. package/dist/server/handlers/responses.js +1 -1
  164. package/dist/server/handlers/scorer-versions.cjs +1 -1
  165. package/dist/server/handlers/scorer-versions.js +1 -1
  166. package/dist/server/handlers/scores.cjs +1 -1
  167. package/dist/server/handlers/scores.js +1 -1
  168. package/dist/server/handlers/stored-agent-favorites.cjs +2 -2
  169. package/dist/server/handlers/stored-agent-favorites.js +2 -2
  170. package/dist/server/handlers/stored-agents.cjs +3 -3
  171. package/dist/server/handlers/stored-agents.js +3 -3
  172. package/dist/server/handlers/stored-mcp-clients.cjs +2 -2
  173. package/dist/server/handlers/stored-mcp-clients.js +2 -2
  174. package/dist/server/handlers/stored-prompt-blocks.cjs +2 -2
  175. package/dist/server/handlers/stored-prompt-blocks.js +2 -2
  176. package/dist/server/handlers/stored-scorers.cjs +2 -2
  177. package/dist/server/handlers/stored-scorers.js +2 -2
  178. package/dist/server/handlers/stored-skill-favorites.cjs +2 -2
  179. package/dist/server/handlers/stored-skill-favorites.js +2 -2
  180. package/dist/server/handlers/stored-skills.cjs +2 -2
  181. package/dist/server/handlers/stored-skills.js +2 -2
  182. package/dist/server/handlers/stored-workspaces.cjs +1 -1
  183. package/dist/server/handlers/stored-workspaces.js +1 -1
  184. package/dist/server/handlers/system.cjs +1 -1
  185. package/dist/server/handlers/system.js +1 -1
  186. package/dist/server/handlers/tools.cjs +1 -1
  187. package/dist/server/handlers/tools.js +1 -1
  188. package/dist/server/handlers/vector.cjs +1 -1
  189. package/dist/server/handlers/vector.js +1 -1
  190. package/dist/server/handlers/workflow-builder.cjs +1 -1
  191. package/dist/server/handlers/workflow-builder.js +1 -1
  192. package/dist/server/handlers/workflows.cjs +1 -1
  193. package/dist/server/handlers/workflows.js +1 -1
  194. package/dist/server/handlers.cjs +13 -13
  195. package/dist/server/handlers.js +13 -13
  196. package/dist/server/schemas/common.d.ts.map +1 -1
  197. package/dist/server/schemas/index.cjs +23 -23
  198. package/dist/server/schemas/index.js +23 -23
  199. package/dist/server/server-adapter/index.cjs +1 -1
  200. package/dist/server/server-adapter/index.js +1 -1
  201. package/dist/{stored-agents-BpxMmhtz.js → stored-agents-C9zCintA.js} +3 -3
  202. package/dist/{stored-agents-BpxMmhtz.js.map → stored-agents-C9zCintA.js.map} +1 -1
  203. package/dist/{stored-agents-CDlh3CQQ.cjs → stored-agents-LCHZldYH.cjs} +3 -3
  204. package/dist/{stored-agents-CDlh3CQQ.cjs.map → stored-agents-LCHZldYH.cjs.map} +1 -1
  205. package/dist/{stored-mcp-clients-BA7OSGZ_.cjs → stored-mcp-clients-D14ULUvS.cjs} +2 -2
  206. package/dist/{stored-mcp-clients-BA7OSGZ_.cjs.map → stored-mcp-clients-D14ULUvS.cjs.map} +1 -1
  207. package/dist/{stored-mcp-clients-DtLv0Tly.js → stored-mcp-clients-d_PaPgGc.js} +2 -2
  208. package/dist/{stored-mcp-clients-DtLv0Tly.js.map → stored-mcp-clients-d_PaPgGc.js.map} +1 -1
  209. package/dist/{stored-prompt-blocks-Z_BuhsUq.js → stored-prompt-blocks-B5yfQnPC.js} +2 -2
  210. package/dist/{stored-prompt-blocks-Z_BuhsUq.js.map → stored-prompt-blocks-B5yfQnPC.js.map} +1 -1
  211. package/dist/{stored-prompt-blocks-Cqi0vnTE.cjs → stored-prompt-blocks-CqaOxMZ-.cjs} +2 -2
  212. package/dist/{stored-prompt-blocks-Cqi0vnTE.cjs.map → stored-prompt-blocks-CqaOxMZ-.cjs.map} +1 -1
  213. package/dist/{stored-scorers-D1zYUEXg.cjs → stored-scorers-DxQds4_y.cjs} +3 -3
  214. package/dist/{stored-scorers-D1zYUEXg.cjs.map → stored-scorers-DxQds4_y.cjs.map} +1 -1
  215. package/dist/{stored-scorers-BdJadnUS.js → stored-scorers-Dz9vAQcr.js} +3 -3
  216. package/dist/{stored-scorers-BdJadnUS.js.map → stored-scorers-Dz9vAQcr.js.map} +1 -1
  217. package/dist/{stored-skills-D8Q1NmsH.js → stored-skills-GNJMp022.js} +2 -2
  218. package/dist/{stored-skills-D8Q1NmsH.js.map → stored-skills-GNJMp022.js.map} +1 -1
  219. package/dist/{stored-skills-DppdzQY0.cjs → stored-skills-xuecapXy.cjs} +2 -2
  220. package/dist/{stored-skills-DppdzQY0.cjs.map → stored-skills-xuecapXy.cjs.map} +1 -1
  221. package/dist/{stored-workspaces-CYXLBJy5.js → stored-workspaces-Bswuz00o.js} +2 -2
  222. package/dist/{stored-workspaces-CYXLBJy5.js.map → stored-workspaces-Bswuz00o.js.map} +1 -1
  223. package/dist/{stored-workspaces-BOwJwkec.cjs → stored-workspaces-g5-GKY38.cjs} +2 -2
  224. package/dist/{stored-workspaces-BOwJwkec.cjs.map → stored-workspaces-g5-GKY38.cjs.map} +1 -1
  225. package/dist/{tools-HYYytfMx.cjs → tools-CeJrnYDf.cjs} +4 -4
  226. package/dist/{tools-HYYytfMx.cjs.map → tools-CeJrnYDf.cjs.map} +1 -1
  227. package/dist/{tools-Do1uV_07.js → tools-Ck35EVD7.js} +4 -4
  228. package/dist/{tools-Do1uV_07.js.map → tools-Ck35EVD7.js.map} +1 -1
  229. package/dist/{vector-Deod39jt.js → vector-BAs5o6mH.js} +2 -2
  230. package/dist/{vector-Deod39jt.js.map → vector-BAs5o6mH.js.map} +1 -1
  231. package/dist/{vector-IxK1t4Cb.cjs → vector-BZ1bKtwM.cjs} +2 -2
  232. package/dist/{vector-IxK1t4Cb.cjs.map → vector-BZ1bKtwM.cjs.map} +1 -1
  233. package/dist/{vectors-CqV387sY.cjs → vectors-CPSofSCf.cjs} +2 -2
  234. package/dist/{vectors-CqV387sY.cjs.map → vectors-CPSofSCf.cjs.map} +1 -1
  235. package/dist/{vectors-CvHLWqjC.js → vectors-CadLydEJ.js} +2 -2
  236. package/dist/{vectors-CvHLWqjC.js.map → vectors-CadLydEJ.js.map} +1 -1
  237. package/dist/{version-common-Di2U8VWH.js → version-common-BLTDO88f.js} +2 -2
  238. package/dist/{version-common-Di2U8VWH.js.map → version-common-BLTDO88f.js.map} +1 -1
  239. package/dist/{version-common-B2n_ML_w.cjs → version-common-Cc0STXl9.cjs} +2 -2
  240. package/dist/{version-common-B2n_ML_w.cjs.map → version-common-Cc0STXl9.cjs.map} +1 -1
  241. package/dist/{workflow-builder-ezo8ZG1K.js → workflow-builder--W9PMW13.js} +3 -3
  242. package/dist/{workflow-builder-ezo8ZG1K.js.map → workflow-builder--W9PMW13.js.map} +1 -1
  243. package/dist/{workflow-builder-DJKziSOo.cjs → workflow-builder-CT7JOoW6.cjs} +3 -3
  244. package/dist/{workflow-builder-DJKziSOo.cjs.map → workflow-builder-CT7JOoW6.cjs.map} +1 -1
  245. package/dist/{workflows-BWLDlaL9.cjs → workflows-BAOfWBkr.cjs} +4 -4
  246. package/dist/{workflows-BWLDlaL9.cjs.map → workflows-BAOfWBkr.cjs.map} +1 -1
  247. package/dist/{workflows-SYBpQupF.cjs → workflows-CKcjXfXk.cjs} +2 -2
  248. package/dist/{workflows-SYBpQupF.cjs.map → workflows-CKcjXfXk.cjs.map} +1 -1
  249. package/dist/{workflows-Dm2iK1nq.js → workflows-DPIRVRN9.js} +4 -4
  250. package/dist/{workflows-Dm2iK1nq.js.map → workflows-DPIRVRN9.js.map} +1 -1
  251. package/dist/{workflows-C9BMJV_C.js → workflows-DTxiWG6x.js} +2 -2
  252. package/dist/{workflows-C9BMJV_C.js.map → workflows-DTxiWG6x.js.map} +1 -1
  253. package/package.json +9 -9
  254. package/dist/common-DVZqSEhZ.cjs.map +0 -1
  255. package/dist/common-xUmaFUop.js.map +0 -1
  256. package/dist/dist-C-L2kyKZ.js +0 -1
@@ -1,6 +1,6 @@
1
1
  require("./rolldown-runtime-10nMEhjP.cjs");
2
2
  const require_route_builder = require("./route-builder-CvARmqnA.cjs");
3
- const require_routes = require("./routes-B_-KRQOi.cjs");
3
+ const require_routes = require("./routes-CbwRkg8_.cjs");
4
4
  // src/server/server-adapter/api-schema-manifest.ts
5
5
  function convertSchema(schema) {
6
6
  return schema ? require_route_builder.schemaToJsonSchema(schema) : void 0;
@@ -58,4 +58,4 @@ function buildApiSchemaManifest(routes = require_routes.SERVER_ROUTES) {
58
58
  }
59
59
  exports.buildApiSchemaManifest = buildApiSchemaManifest;
60
60
 
61
- //# sourceMappingURL=api-schema-manifest-COH6PAvQ.cjs.map
61
+ //# sourceMappingURL=api-schema-manifest-CwFjht0V.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"api-schema-manifest-COH6PAvQ.cjs","names":["schemaToJsonSchema","SERVER_ROUTES"],"sources":["../src/server/server-adapter/api-schema-manifest.ts"],"sourcesContent":["import type { JSONSchema7 } from '@mastra/schema-compat';\nimport { schemaToJsonSchema } from './openapi-utils';\nimport { SERVER_ROUTES } from './routes/index';\nimport type { ServerRoute } from './routes/index';\n\nexport interface ApiSchemaResponseShape {\n kind: 'array' | 'record' | 'object-property' | 'single' | 'unknown';\n listProperty?: string;\n paginationProperty?: string;\n}\n\nexport interface ApiSchemaManifestRoute {\n method: string;\n path: string;\n responseType: string;\n pathParamSchema?: JSONSchema7;\n queryParamSchema?: JSONSchema7;\n bodySchema?: JSONSchema7;\n responseSchema?: JSONSchema7;\n responseShape: ApiSchemaResponseShape;\n}\n\nexport interface ApiSchemaManifest {\n version: 1;\n routes: ApiSchemaManifestRoute[];\n}\n\nfunction convertSchema(schema: ServerRoute['bodySchema']): JSONSchema7 | undefined {\n return schema ? schemaToJsonSchema(schema) : undefined;\n}\n\nfunction asJsonSchema(value: unknown): JSONSchema7 | undefined {\n return value && typeof value === 'object' && !Array.isArray(value) ? (value as JSONSchema7) : undefined;\n}\n\nfunction schemaType(schema: JSONSchema7 | undefined): JSONSchema7['type'] | undefined {\n const type = schema?.type;\n return Array.isArray(type) ? type.find(Boolean) : type;\n}\n\nfunction inferResponseShape(responseSchema: JSONSchema7 | undefined): ApiSchemaResponseShape {\n if (!responseSchema) return { kind: 'unknown' };\n\n const alternatives: unknown[] | undefined = responseSchema.anyOf ?? responseSchema.oneOf;\n if (alternatives?.length) {\n const shapes = alternatives.map(schema => inferResponseShape(asJsonSchema(schema)));\n const first = shapes[0]!;\n return shapes.every(\n shape =>\n shape.kind === first.kind &&\n shape.listProperty === first.listProperty &&\n shape.paginationProperty === first.paginationProperty,\n )\n ? first\n : { kind: 'single' };\n }\n\n const type = schemaType(responseSchema);\n if (type === 'array') return { kind: 'array' };\n if (type !== 'object') return { kind: 'single' };\n\n const properties =\n responseSchema.properties && !Array.isArray(responseSchema.properties) ? responseSchema.properties : {};\n const propertyNames = Object.keys(properties);\n const paginationProperty = 'page' in properties ? 'page' : 'pagination' in properties ? 'pagination' : undefined;\n const listProperty = Object.entries(properties).find(\n ([, property]) => schemaType(asJsonSchema(property)) === 'array',\n )?.[0];\n\n if (listProperty && (paginationProperty || propertyNames.length <= 2)) {\n return { kind: 'object-property', listProperty, paginationProperty };\n }\n if (responseSchema.additionalProperties && propertyNames.length === 0) return { kind: 'record' };\n return { kind: 'single' };\n}\n\n/** CLI flags cover all request variants; the endpoint still validates the selected variant. */\nexport function getApiSchemaPropertyNames(schema: JSONSchema7 | undefined): string[] {\n if (!schema) return [];\n const names = Object.keys(schema.properties ?? {});\n for (const branch of schema.anyOf ?? schema.oneOf ?? [])\n names.push(...getApiSchemaPropertyNames(asJsonSchema(branch)));\n return [...new Set(names)].sort();\n}\n\nfunction isManifestRoute(route: ServerRoute): boolean {\n return route.responseType === 'json' && !route.deprecated;\n}\n\nexport function buildApiSchemaManifest(routes: readonly ServerRoute[] = SERVER_ROUTES): ApiSchemaManifest {\n return {\n version: 1,\n routes: routes.filter(isManifestRoute).map(route => {\n const responseSchema = convertSchema(route.responseSchema);\n return {\n method: route.method,\n path: route.path,\n responseType: route.responseType,\n pathParamSchema: convertSchema(route.pathParamSchema),\n queryParamSchema: convertSchema(route.queryParamSchema),\n bodySchema: convertSchema(route.bodySchema),\n responseSchema,\n responseShape: inferResponseShape(responseSchema),\n };\n }),\n };\n}\n"],"mappings":";;;;AA2BA,SAAS,cAAc,QAA4D;CACjF,OAAO,SAASA,sBAAAA,mBAAmB,MAAM,IAAI,KAAA;AAC/C;AAEA,SAAS,aAAa,OAAyC;CAC7D,OAAO,SAAS,OAAO,UAAU,YAAY,CAAC,MAAM,QAAQ,KAAK,IAAK,QAAwB,KAAA;AAChG;AAEA,SAAS,WAAW,QAAkE;CACpF,MAAM,OAAO,QAAQ;CACrB,OAAO,MAAM,QAAQ,IAAI,IAAI,KAAK,KAAK,OAAO,IAAI;AACpD;AAEA,SAAS,mBAAmB,gBAAiE;CAC3F,IAAI,CAAC,gBAAgB,OAAO,EAAE,MAAM,UAAU;CAE9C,MAAM,eAAsC,eAAe,SAAS,eAAe;CACnF,IAAI,cAAc,QAAQ;EACxB,MAAM,SAAS,aAAa,KAAI,WAAU,mBAAmB,aAAa,MAAM,CAAC,CAAC;EAClF,MAAM,QAAQ,OAAO;EACrB,OAAO,OAAO,OACZ,UACE,MAAM,SAAS,MAAM,QACrB,MAAM,iBAAiB,MAAM,gBAC7B,MAAM,uBAAuB,MAAM,kBACvC,IACI,QACA,EAAE,MAAM,SAAS;CACvB;CAEA,MAAM,OAAO,WAAW,cAAc;CACtC,IAAI,SAAS,SAAS,OAAO,EAAE,MAAM,QAAQ;CAC7C,IAAI,SAAS,UAAU,OAAO,EAAE,MAAM,SAAS;CAE/C,MAAM,aACJ,eAAe,cAAc,CAAC,MAAM,QAAQ,eAAe,UAAU,IAAI,eAAe,aAAa,CAAC;CACxG,MAAM,gBAAgB,OAAO,KAAK,UAAU;CAC5C,MAAM,qBAAqB,UAAU,aAAa,SAAS,gBAAgB,aAAa,eAAe,KAAA;CACvG,MAAM,eAAe,OAAO,QAAQ,UAAU,CAAC,CAAC,MAC7C,GAAG,cAAc,WAAW,aAAa,QAAQ,CAAC,MAAM,OAC3D,CAAC,GAAG;CAEJ,IAAI,iBAAiB,sBAAsB,cAAc,UAAU,IACjE,OAAO;EAAE,MAAM;EAAmB;EAAc;CAAmB;CAErE,IAAI,eAAe,wBAAwB,cAAc,WAAW,GAAG,OAAO,EAAE,MAAM,SAAS;CAC/F,OAAO,EAAE,MAAM,SAAS;AAC1B;AAWA,SAAS,gBAAgB,OAA6B;CACpD,OAAO,MAAM,iBAAiB,UAAU,CAAC,MAAM;AACjD;AAEA,SAAgB,uBAAuB,SAAiCC,eAAAA,eAAkC;CACxG,OAAO;EACL,SAAS;EACT,QAAQ,OAAO,OAAO,eAAe,CAAC,CAAC,KAAI,UAAS;GAClD,MAAM,iBAAiB,cAAc,MAAM,cAAc;GACzD,OAAO;IACL,QAAQ,MAAM;IACd,MAAM,MAAM;IACZ,cAAc,MAAM;IACpB,iBAAiB,cAAc,MAAM,eAAe;IACpD,kBAAkB,cAAc,MAAM,gBAAgB;IACtD,YAAY,cAAc,MAAM,UAAU;IAC1C;IACA,eAAe,mBAAmB,cAAc;GAClD;EACF,CAAC;CACH;AACF"}
1
+ {"version":3,"file":"api-schema-manifest-CwFjht0V.cjs","names":["schemaToJsonSchema","SERVER_ROUTES"],"sources":["../src/server/server-adapter/api-schema-manifest.ts"],"sourcesContent":["import type { JSONSchema7 } from '@mastra/schema-compat';\nimport { schemaToJsonSchema } from './openapi-utils';\nimport { SERVER_ROUTES } from './routes/index';\nimport type { ServerRoute } from './routes/index';\n\nexport interface ApiSchemaResponseShape {\n kind: 'array' | 'record' | 'object-property' | 'single' | 'unknown';\n listProperty?: string;\n paginationProperty?: string;\n}\n\nexport interface ApiSchemaManifestRoute {\n method: string;\n path: string;\n responseType: string;\n pathParamSchema?: JSONSchema7;\n queryParamSchema?: JSONSchema7;\n bodySchema?: JSONSchema7;\n responseSchema?: JSONSchema7;\n responseShape: ApiSchemaResponseShape;\n}\n\nexport interface ApiSchemaManifest {\n version: 1;\n routes: ApiSchemaManifestRoute[];\n}\n\nfunction convertSchema(schema: ServerRoute['bodySchema']): JSONSchema7 | undefined {\n return schema ? schemaToJsonSchema(schema) : undefined;\n}\n\nfunction asJsonSchema(value: unknown): JSONSchema7 | undefined {\n return value && typeof value === 'object' && !Array.isArray(value) ? (value as JSONSchema7) : undefined;\n}\n\nfunction schemaType(schema: JSONSchema7 | undefined): JSONSchema7['type'] | undefined {\n const type = schema?.type;\n return Array.isArray(type) ? type.find(Boolean) : type;\n}\n\nfunction inferResponseShape(responseSchema: JSONSchema7 | undefined): ApiSchemaResponseShape {\n if (!responseSchema) return { kind: 'unknown' };\n\n const alternatives: unknown[] | undefined = responseSchema.anyOf ?? responseSchema.oneOf;\n if (alternatives?.length) {\n const shapes = alternatives.map(schema => inferResponseShape(asJsonSchema(schema)));\n const first = shapes[0]!;\n return shapes.every(\n shape =>\n shape.kind === first.kind &&\n shape.listProperty === first.listProperty &&\n shape.paginationProperty === first.paginationProperty,\n )\n ? first\n : { kind: 'single' };\n }\n\n const type = schemaType(responseSchema);\n if (type === 'array') return { kind: 'array' };\n if (type !== 'object') return { kind: 'single' };\n\n const properties =\n responseSchema.properties && !Array.isArray(responseSchema.properties) ? responseSchema.properties : {};\n const propertyNames = Object.keys(properties);\n const paginationProperty = 'page' in properties ? 'page' : 'pagination' in properties ? 'pagination' : undefined;\n const listProperty = Object.entries(properties).find(\n ([, property]) => schemaType(asJsonSchema(property)) === 'array',\n )?.[0];\n\n if (listProperty && (paginationProperty || propertyNames.length <= 2)) {\n return { kind: 'object-property', listProperty, paginationProperty };\n }\n if (responseSchema.additionalProperties && propertyNames.length === 0) return { kind: 'record' };\n return { kind: 'single' };\n}\n\n/** CLI flags cover all request variants; the endpoint still validates the selected variant. */\nexport function getApiSchemaPropertyNames(schema: JSONSchema7 | undefined): string[] {\n if (!schema) return [];\n const names = Object.keys(schema.properties ?? {});\n for (const branch of schema.anyOf ?? schema.oneOf ?? [])\n names.push(...getApiSchemaPropertyNames(asJsonSchema(branch)));\n return [...new Set(names)].sort();\n}\n\nfunction isManifestRoute(route: ServerRoute): boolean {\n return route.responseType === 'json' && !route.deprecated;\n}\n\nexport function buildApiSchemaManifest(routes: readonly ServerRoute[] = SERVER_ROUTES): ApiSchemaManifest {\n return {\n version: 1,\n routes: routes.filter(isManifestRoute).map(route => {\n const responseSchema = convertSchema(route.responseSchema);\n return {\n method: route.method,\n path: route.path,\n responseType: route.responseType,\n pathParamSchema: convertSchema(route.pathParamSchema),\n queryParamSchema: convertSchema(route.queryParamSchema),\n bodySchema: convertSchema(route.bodySchema),\n responseSchema,\n responseShape: inferResponseShape(responseSchema),\n };\n }),\n };\n}\n"],"mappings":";;;;AA2BA,SAAS,cAAc,QAA4D;CACjF,OAAO,SAASA,sBAAAA,mBAAmB,MAAM,IAAI,KAAA;AAC/C;AAEA,SAAS,aAAa,OAAyC;CAC7D,OAAO,SAAS,OAAO,UAAU,YAAY,CAAC,MAAM,QAAQ,KAAK,IAAK,QAAwB,KAAA;AAChG;AAEA,SAAS,WAAW,QAAkE;CACpF,MAAM,OAAO,QAAQ;CACrB,OAAO,MAAM,QAAQ,IAAI,IAAI,KAAK,KAAK,OAAO,IAAI;AACpD;AAEA,SAAS,mBAAmB,gBAAiE;CAC3F,IAAI,CAAC,gBAAgB,OAAO,EAAE,MAAM,UAAU;CAE9C,MAAM,eAAsC,eAAe,SAAS,eAAe;CACnF,IAAI,cAAc,QAAQ;EACxB,MAAM,SAAS,aAAa,KAAI,WAAU,mBAAmB,aAAa,MAAM,CAAC,CAAC;EAClF,MAAM,QAAQ,OAAO;EACrB,OAAO,OAAO,OACZ,UACE,MAAM,SAAS,MAAM,QACrB,MAAM,iBAAiB,MAAM,gBAC7B,MAAM,uBAAuB,MAAM,kBACvC,IACI,QACA,EAAE,MAAM,SAAS;CACvB;CAEA,MAAM,OAAO,WAAW,cAAc;CACtC,IAAI,SAAS,SAAS,OAAO,EAAE,MAAM,QAAQ;CAC7C,IAAI,SAAS,UAAU,OAAO,EAAE,MAAM,SAAS;CAE/C,MAAM,aACJ,eAAe,cAAc,CAAC,MAAM,QAAQ,eAAe,UAAU,IAAI,eAAe,aAAa,CAAC;CACxG,MAAM,gBAAgB,OAAO,KAAK,UAAU;CAC5C,MAAM,qBAAqB,UAAU,aAAa,SAAS,gBAAgB,aAAa,eAAe,KAAA;CACvG,MAAM,eAAe,OAAO,QAAQ,UAAU,CAAC,CAAC,MAC7C,GAAG,cAAc,WAAW,aAAa,QAAQ,CAAC,MAAM,OAC3D,CAAC,GAAG;CAEJ,IAAI,iBAAiB,sBAAsB,cAAc,UAAU,IACjE,OAAO;EAAE,MAAM;EAAmB;EAAc;CAAmB;CAErE,IAAI,eAAe,wBAAwB,cAAc,WAAW,GAAG,OAAO,EAAE,MAAM,SAAS;CAC/F,OAAO,EAAE,MAAM,SAAS;AAC1B;AAWA,SAAS,gBAAgB,OAA6B;CACpD,OAAO,MAAM,iBAAiB,UAAU,CAAC,MAAM;AACjD;AAEA,SAAgB,uBAAuB,SAAiCC,eAAAA,eAAkC;CACxG,OAAO;EACL,SAAS;EACT,QAAQ,OAAO,OAAO,eAAe,CAAC,CAAC,KAAI,UAAS;GAClD,MAAM,iBAAiB,cAAc,MAAM,cAAc;GACzD,OAAO;IACL,QAAQ,MAAM;IACd,MAAM,MAAM;IACZ,cAAc,MAAM;IACpB,iBAAiB,cAAc,MAAM,eAAe;IACpD,kBAAkB,cAAc,MAAM,gBAAgB;IACtD,YAAY,cAAc,MAAM,UAAU;IAC1C;IACA,eAAe,mBAAmB,cAAc;GAClD;EACF,CAAC;CACH;AACF"}
@@ -1,5 +1,5 @@
1
1
  import { c as schemaToJsonSchema } from "./route-builder-BxPrwNog.js";
2
- import { t as SERVER_ROUTES } from "./routes-BfQBQbwB.js";
2
+ import { t as SERVER_ROUTES } from "./routes-M2U8U4Jl.js";
3
3
  // src/server/server-adapter/api-schema-manifest.ts
4
4
  function convertSchema(schema) {
5
5
  return schema ? schemaToJsonSchema(schema) : void 0;
@@ -57,4 +57,4 @@ function buildApiSchemaManifest(routes = SERVER_ROUTES) {
57
57
  }
58
58
  export { buildApiSchemaManifest };
59
59
 
60
- //# sourceMappingURL=api-schema-manifest-C6MbIQch.js.map
60
+ //# sourceMappingURL=api-schema-manifest-JUFooPZG.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"api-schema-manifest-C6MbIQch.js","names":[],"sources":["../src/server/server-adapter/api-schema-manifest.ts"],"sourcesContent":["import type { JSONSchema7 } from '@mastra/schema-compat';\nimport { schemaToJsonSchema } from './openapi-utils';\nimport { SERVER_ROUTES } from './routes/index';\nimport type { ServerRoute } from './routes/index';\n\nexport interface ApiSchemaResponseShape {\n kind: 'array' | 'record' | 'object-property' | 'single' | 'unknown';\n listProperty?: string;\n paginationProperty?: string;\n}\n\nexport interface ApiSchemaManifestRoute {\n method: string;\n path: string;\n responseType: string;\n pathParamSchema?: JSONSchema7;\n queryParamSchema?: JSONSchema7;\n bodySchema?: JSONSchema7;\n responseSchema?: JSONSchema7;\n responseShape: ApiSchemaResponseShape;\n}\n\nexport interface ApiSchemaManifest {\n version: 1;\n routes: ApiSchemaManifestRoute[];\n}\n\nfunction convertSchema(schema: ServerRoute['bodySchema']): JSONSchema7 | undefined {\n return schema ? schemaToJsonSchema(schema) : undefined;\n}\n\nfunction asJsonSchema(value: unknown): JSONSchema7 | undefined {\n return value && typeof value === 'object' && !Array.isArray(value) ? (value as JSONSchema7) : undefined;\n}\n\nfunction schemaType(schema: JSONSchema7 | undefined): JSONSchema7['type'] | undefined {\n const type = schema?.type;\n return Array.isArray(type) ? type.find(Boolean) : type;\n}\n\nfunction inferResponseShape(responseSchema: JSONSchema7 | undefined): ApiSchemaResponseShape {\n if (!responseSchema) return { kind: 'unknown' };\n\n const alternatives: unknown[] | undefined = responseSchema.anyOf ?? responseSchema.oneOf;\n if (alternatives?.length) {\n const shapes = alternatives.map(schema => inferResponseShape(asJsonSchema(schema)));\n const first = shapes[0]!;\n return shapes.every(\n shape =>\n shape.kind === first.kind &&\n shape.listProperty === first.listProperty &&\n shape.paginationProperty === first.paginationProperty,\n )\n ? first\n : { kind: 'single' };\n }\n\n const type = schemaType(responseSchema);\n if (type === 'array') return { kind: 'array' };\n if (type !== 'object') return { kind: 'single' };\n\n const properties =\n responseSchema.properties && !Array.isArray(responseSchema.properties) ? responseSchema.properties : {};\n const propertyNames = Object.keys(properties);\n const paginationProperty = 'page' in properties ? 'page' : 'pagination' in properties ? 'pagination' : undefined;\n const listProperty = Object.entries(properties).find(\n ([, property]) => schemaType(asJsonSchema(property)) === 'array',\n )?.[0];\n\n if (listProperty && (paginationProperty || propertyNames.length <= 2)) {\n return { kind: 'object-property', listProperty, paginationProperty };\n }\n if (responseSchema.additionalProperties && propertyNames.length === 0) return { kind: 'record' };\n return { kind: 'single' };\n}\n\n/** CLI flags cover all request variants; the endpoint still validates the selected variant. */\nexport function getApiSchemaPropertyNames(schema: JSONSchema7 | undefined): string[] {\n if (!schema) return [];\n const names = Object.keys(schema.properties ?? {});\n for (const branch of schema.anyOf ?? schema.oneOf ?? [])\n names.push(...getApiSchemaPropertyNames(asJsonSchema(branch)));\n return [...new Set(names)].sort();\n}\n\nfunction isManifestRoute(route: ServerRoute): boolean {\n return route.responseType === 'json' && !route.deprecated;\n}\n\nexport function buildApiSchemaManifest(routes: readonly ServerRoute[] = SERVER_ROUTES): ApiSchemaManifest {\n return {\n version: 1,\n routes: routes.filter(isManifestRoute).map(route => {\n const responseSchema = convertSchema(route.responseSchema);\n return {\n method: route.method,\n path: route.path,\n responseType: route.responseType,\n pathParamSchema: convertSchema(route.pathParamSchema),\n queryParamSchema: convertSchema(route.queryParamSchema),\n bodySchema: convertSchema(route.bodySchema),\n responseSchema,\n responseShape: inferResponseShape(responseSchema),\n };\n }),\n };\n}\n"],"mappings":";;;AA2BA,SAAS,cAAc,QAA4D;CACjF,OAAO,SAAS,mBAAmB,MAAM,IAAI,KAAA;AAC/C;AAEA,SAAS,aAAa,OAAyC;CAC7D,OAAO,SAAS,OAAO,UAAU,YAAY,CAAC,MAAM,QAAQ,KAAK,IAAK,QAAwB,KAAA;AAChG;AAEA,SAAS,WAAW,QAAkE;CACpF,MAAM,OAAO,QAAQ;CACrB,OAAO,MAAM,QAAQ,IAAI,IAAI,KAAK,KAAK,OAAO,IAAI;AACpD;AAEA,SAAS,mBAAmB,gBAAiE;CAC3F,IAAI,CAAC,gBAAgB,OAAO,EAAE,MAAM,UAAU;CAE9C,MAAM,eAAsC,eAAe,SAAS,eAAe;CACnF,IAAI,cAAc,QAAQ;EACxB,MAAM,SAAS,aAAa,KAAI,WAAU,mBAAmB,aAAa,MAAM,CAAC,CAAC;EAClF,MAAM,QAAQ,OAAO;EACrB,OAAO,OAAO,OACZ,UACE,MAAM,SAAS,MAAM,QACrB,MAAM,iBAAiB,MAAM,gBAC7B,MAAM,uBAAuB,MAAM,kBACvC,IACI,QACA,EAAE,MAAM,SAAS;CACvB;CAEA,MAAM,OAAO,WAAW,cAAc;CACtC,IAAI,SAAS,SAAS,OAAO,EAAE,MAAM,QAAQ;CAC7C,IAAI,SAAS,UAAU,OAAO,EAAE,MAAM,SAAS;CAE/C,MAAM,aACJ,eAAe,cAAc,CAAC,MAAM,QAAQ,eAAe,UAAU,IAAI,eAAe,aAAa,CAAC;CACxG,MAAM,gBAAgB,OAAO,KAAK,UAAU;CAC5C,MAAM,qBAAqB,UAAU,aAAa,SAAS,gBAAgB,aAAa,eAAe,KAAA;CACvG,MAAM,eAAe,OAAO,QAAQ,UAAU,CAAC,CAAC,MAC7C,GAAG,cAAc,WAAW,aAAa,QAAQ,CAAC,MAAM,OAC3D,CAAC,GAAG;CAEJ,IAAI,iBAAiB,sBAAsB,cAAc,UAAU,IACjE,OAAO;EAAE,MAAM;EAAmB;EAAc;CAAmB;CAErE,IAAI,eAAe,wBAAwB,cAAc,WAAW,GAAG,OAAO,EAAE,MAAM,SAAS;CAC/F,OAAO,EAAE,MAAM,SAAS;AAC1B;AAWA,SAAS,gBAAgB,OAA6B;CACpD,OAAO,MAAM,iBAAiB,UAAU,CAAC,MAAM;AACjD;AAEA,SAAgB,uBAAuB,SAAiC,eAAkC;CACxG,OAAO;EACL,SAAS;EACT,QAAQ,OAAO,OAAO,eAAe,CAAC,CAAC,KAAI,UAAS;GAClD,MAAM,iBAAiB,cAAc,MAAM,cAAc;GACzD,OAAO;IACL,QAAQ,MAAM;IACd,MAAM,MAAM;IACZ,cAAc,MAAM;IACpB,iBAAiB,cAAc,MAAM,eAAe;IACpD,kBAAkB,cAAc,MAAM,gBAAgB;IACtD,YAAY,cAAc,MAAM,UAAU;IAC1C;IACA,eAAe,mBAAmB,cAAc;GAClD;EACF,CAAC;CACH;AACF"}
1
+ {"version":3,"file":"api-schema-manifest-JUFooPZG.js","names":[],"sources":["../src/server/server-adapter/api-schema-manifest.ts"],"sourcesContent":["import type { JSONSchema7 } from '@mastra/schema-compat';\nimport { schemaToJsonSchema } from './openapi-utils';\nimport { SERVER_ROUTES } from './routes/index';\nimport type { ServerRoute } from './routes/index';\n\nexport interface ApiSchemaResponseShape {\n kind: 'array' | 'record' | 'object-property' | 'single' | 'unknown';\n listProperty?: string;\n paginationProperty?: string;\n}\n\nexport interface ApiSchemaManifestRoute {\n method: string;\n path: string;\n responseType: string;\n pathParamSchema?: JSONSchema7;\n queryParamSchema?: JSONSchema7;\n bodySchema?: JSONSchema7;\n responseSchema?: JSONSchema7;\n responseShape: ApiSchemaResponseShape;\n}\n\nexport interface ApiSchemaManifest {\n version: 1;\n routes: ApiSchemaManifestRoute[];\n}\n\nfunction convertSchema(schema: ServerRoute['bodySchema']): JSONSchema7 | undefined {\n return schema ? schemaToJsonSchema(schema) : undefined;\n}\n\nfunction asJsonSchema(value: unknown): JSONSchema7 | undefined {\n return value && typeof value === 'object' && !Array.isArray(value) ? (value as JSONSchema7) : undefined;\n}\n\nfunction schemaType(schema: JSONSchema7 | undefined): JSONSchema7['type'] | undefined {\n const type = schema?.type;\n return Array.isArray(type) ? type.find(Boolean) : type;\n}\n\nfunction inferResponseShape(responseSchema: JSONSchema7 | undefined): ApiSchemaResponseShape {\n if (!responseSchema) return { kind: 'unknown' };\n\n const alternatives: unknown[] | undefined = responseSchema.anyOf ?? responseSchema.oneOf;\n if (alternatives?.length) {\n const shapes = alternatives.map(schema => inferResponseShape(asJsonSchema(schema)));\n const first = shapes[0]!;\n return shapes.every(\n shape =>\n shape.kind === first.kind &&\n shape.listProperty === first.listProperty &&\n shape.paginationProperty === first.paginationProperty,\n )\n ? first\n : { kind: 'single' };\n }\n\n const type = schemaType(responseSchema);\n if (type === 'array') return { kind: 'array' };\n if (type !== 'object') return { kind: 'single' };\n\n const properties =\n responseSchema.properties && !Array.isArray(responseSchema.properties) ? responseSchema.properties : {};\n const propertyNames = Object.keys(properties);\n const paginationProperty = 'page' in properties ? 'page' : 'pagination' in properties ? 'pagination' : undefined;\n const listProperty = Object.entries(properties).find(\n ([, property]) => schemaType(asJsonSchema(property)) === 'array',\n )?.[0];\n\n if (listProperty && (paginationProperty || propertyNames.length <= 2)) {\n return { kind: 'object-property', listProperty, paginationProperty };\n }\n if (responseSchema.additionalProperties && propertyNames.length === 0) return { kind: 'record' };\n return { kind: 'single' };\n}\n\n/** CLI flags cover all request variants; the endpoint still validates the selected variant. */\nexport function getApiSchemaPropertyNames(schema: JSONSchema7 | undefined): string[] {\n if (!schema) return [];\n const names = Object.keys(schema.properties ?? {});\n for (const branch of schema.anyOf ?? schema.oneOf ?? [])\n names.push(...getApiSchemaPropertyNames(asJsonSchema(branch)));\n return [...new Set(names)].sort();\n}\n\nfunction isManifestRoute(route: ServerRoute): boolean {\n return route.responseType === 'json' && !route.deprecated;\n}\n\nexport function buildApiSchemaManifest(routes: readonly ServerRoute[] = SERVER_ROUTES): ApiSchemaManifest {\n return {\n version: 1,\n routes: routes.filter(isManifestRoute).map(route => {\n const responseSchema = convertSchema(route.responseSchema);\n return {\n method: route.method,\n path: route.path,\n responseType: route.responseType,\n pathParamSchema: convertSchema(route.pathParamSchema),\n queryParamSchema: convertSchema(route.queryParamSchema),\n bodySchema: convertSchema(route.bodySchema),\n responseSchema,\n responseShape: inferResponseShape(responseSchema),\n };\n }),\n };\n}\n"],"mappings":";;;AA2BA,SAAS,cAAc,QAA4D;CACjF,OAAO,SAAS,mBAAmB,MAAM,IAAI,KAAA;AAC/C;AAEA,SAAS,aAAa,OAAyC;CAC7D,OAAO,SAAS,OAAO,UAAU,YAAY,CAAC,MAAM,QAAQ,KAAK,IAAK,QAAwB,KAAA;AAChG;AAEA,SAAS,WAAW,QAAkE;CACpF,MAAM,OAAO,QAAQ;CACrB,OAAO,MAAM,QAAQ,IAAI,IAAI,KAAK,KAAK,OAAO,IAAI;AACpD;AAEA,SAAS,mBAAmB,gBAAiE;CAC3F,IAAI,CAAC,gBAAgB,OAAO,EAAE,MAAM,UAAU;CAE9C,MAAM,eAAsC,eAAe,SAAS,eAAe;CACnF,IAAI,cAAc,QAAQ;EACxB,MAAM,SAAS,aAAa,KAAI,WAAU,mBAAmB,aAAa,MAAM,CAAC,CAAC;EAClF,MAAM,QAAQ,OAAO;EACrB,OAAO,OAAO,OACZ,UACE,MAAM,SAAS,MAAM,QACrB,MAAM,iBAAiB,MAAM,gBAC7B,MAAM,uBAAuB,MAAM,kBACvC,IACI,QACA,EAAE,MAAM,SAAS;CACvB;CAEA,MAAM,OAAO,WAAW,cAAc;CACtC,IAAI,SAAS,SAAS,OAAO,EAAE,MAAM,QAAQ;CAC7C,IAAI,SAAS,UAAU,OAAO,EAAE,MAAM,SAAS;CAE/C,MAAM,aACJ,eAAe,cAAc,CAAC,MAAM,QAAQ,eAAe,UAAU,IAAI,eAAe,aAAa,CAAC;CACxG,MAAM,gBAAgB,OAAO,KAAK,UAAU;CAC5C,MAAM,qBAAqB,UAAU,aAAa,SAAS,gBAAgB,aAAa,eAAe,KAAA;CACvG,MAAM,eAAe,OAAO,QAAQ,UAAU,CAAC,CAAC,MAC7C,GAAG,cAAc,WAAW,aAAa,QAAQ,CAAC,MAAM,OAC3D,CAAC,GAAG;CAEJ,IAAI,iBAAiB,sBAAsB,cAAc,UAAU,IACjE,OAAO;EAAE,MAAM;EAAmB;EAAc;CAAmB;CAErE,IAAI,eAAe,wBAAwB,cAAc,WAAW,GAAG,OAAO,EAAE,MAAM,SAAS;CAC/F,OAAO,EAAE,MAAM,SAAS;AAC1B;AAWA,SAAS,gBAAgB,OAA6B;CACpD,OAAO,MAAM,iBAAiB,UAAU,CAAC,MAAM;AACjD;AAEA,SAAgB,uBAAuB,SAAiC,eAAkC;CACxG,OAAO;EACL,SAAS;EACT,QAAQ,OAAO,OAAO,eAAe,CAAC,CAAC,KAAI,UAAS;GAClD,MAAM,iBAAiB,cAAc,MAAM,cAAc;GACzD,OAAO;IACL,QAAQ,MAAM;IACd,MAAM,MAAM;IACZ,cAAc,MAAM;IACpB,iBAAiB,cAAc,MAAM,eAAe;IACpD,kBAAkB,cAAc,MAAM,gBAAgB;IACtD,YAAY,cAAc,MAAM,UAAU;IAC1C;IACA,eAAe,mBAAmB,cAAc;GAClD;EACF,CAAC;CACH;AACF"}
@@ -1,5 +1,5 @@
1
1
  import { t as HTTPException } from "./http-exception-CzaWkxMl.js";
2
- import { c as paginationNumber } from "./common-xUmaFUop.js";
2
+ import { c as paginationNumber } from "./common-J-yUnHk9.js";
3
3
  import { n as createRoute } from "./route-builder-BxPrwNog.js";
4
4
  import { r as getContextResourceId } from "./utils-DHxjw4Tn.js";
5
5
  import { z as z$1 } from "zod";
@@ -166,4 +166,4 @@ const GET_BACKGROUND_TASK_ROUTE = createRoute({
166
166
  });
167
167
  export { GET_BACKGROUND_TASK_ROUTE as n, LIST_BACKGROUND_TASKS_ROUTE as r, BACKGROUND_TASK_STREAM_ROUTE as t };
168
168
 
169
- //# sourceMappingURL=background-tasks-DIpPsqVy.js.map
169
+ //# sourceMappingURL=background-tasks-BkYNmUcf.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"background-tasks-DIpPsqVy.js","names":["z"],"sources":["../src/server/schemas/background-tasks.ts","../src/server/handlers/background-tasks.ts"],"sourcesContent":["import { z } from 'zod';\nimport { paginationNumber } from './common';\n\nexport const backgroundTaskStatusSchema = z.enum([\n 'pending',\n 'running',\n 'suspended',\n 'completed',\n 'failed',\n 'cancelled',\n 'timed_out',\n]);\n\nexport const backgroundTaskStreamQuerySchema = z.object({\n agentId: z.string().optional(),\n runId: z.string().optional(),\n threadId: z.string().optional(),\n resourceId: z.string().optional(),\n taskId: z.string().optional(),\n});\n\nexport const backgroundTaskDateColumnSchema = z.enum(['createdAt', 'startedAt', 'suspendedAt', 'completedAt']);\n\nexport const listBackgroundTasksQuerySchema = z.object({\n agentId: z.string().optional(),\n status: backgroundTaskStatusSchema.optional(),\n runId: z.string().optional(),\n threadId: z.string().optional(),\n resourceId: z.string().optional(),\n toolName: z.string().optional(),\n toolCallId: z.string().optional(),\n fromDate: z.coerce.date().optional(),\n toDate: z.coerce.date().optional(),\n dateFilterBy: backgroundTaskDateColumnSchema.optional(),\n orderBy: backgroundTaskDateColumnSchema.optional(),\n orderDirection: z.enum(['asc', 'desc']).optional(),\n page: paginationNumber().optional(),\n perPage: paginationNumber().optional(),\n});\n\nexport const backgroundTaskIdPathParams = z.object({\n backgroundTaskId: z.string(),\n});\n\nexport const backgroundTaskResponseSchema = z.object({\n id: z.string(),\n status: backgroundTaskStatusSchema,\n toolName: z.string(),\n toolCallId: z.string(),\n args: z.record(z.string(), z.unknown()),\n agentId: z.string(),\n threadId: z.string().optional(),\n resourceId: z.string().optional(),\n runId: z.string(),\n result: z.unknown().optional(),\n error: z.object({ message: z.string(), stack: z.string().optional() }).optional(),\n createdAt: z.date(),\n startedAt: z.date().optional(),\n completedAt: z.date().optional(),\n retryCount: z.number(),\n maxRetries: z.number(),\n timeoutMs: z.number(),\n suspendPayload: z.unknown().optional(),\n});\n\nexport const listBackgroundTaskResponseSchema = z.object({\n tasks: z.array(backgroundTaskResponseSchema),\n total: z.number(),\n});\n\nexport const backgroundTaskStreamResponseSchema = z.unknown();\n","import { HTTPException } from '../http-exception';\nimport {\n backgroundTaskResponseSchema,\n backgroundTaskStreamQuerySchema,\n backgroundTaskStreamResponseSchema,\n listBackgroundTaskResponseSchema,\n listBackgroundTasksQuerySchema,\n backgroundTaskIdPathParams,\n} from '../schemas/background-tasks';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport { getContextResourceId } from './utils';\n\n/**\n * Resolves the resource filter for a background-task request. A resource-scoped caller\n * is pinned to its own resource and may not request another one; a privileged caller\n * (no resource in the request context) keeps the client-provided filter.\n */\nfunction resolveResourceScope(\n requestContext: Parameters<typeof getContextResourceId>[0],\n clientResourceId: string | undefined,\n): { resourceId: string | undefined; scoped: boolean } {\n const contextResourceId = getContextResourceId(requestContext);\n if (contextResourceId === undefined) return { resourceId: clientResourceId, scoped: false };\n // An empty resource id must not be mistaken for a privileged (unscoped) caller, and\n // storage filters ignore empty strings, so it cannot be scoped safely either.\n if (contextResourceId === '') {\n throw new HTTPException(403, { message: 'Access denied: authenticated resourceId is empty' });\n }\n if (clientResourceId !== undefined && clientResourceId !== contextResourceId) {\n throw new HTTPException(403, { message: 'Access denied: resourceId does not match the authenticated resource' });\n }\n return { resourceId: contextResourceId, scoped: true };\n}\n\nexport const BACKGROUND_TASK_STREAM_ROUTE = createRoute({\n method: 'GET',\n path: '/background-tasks/stream',\n responseType: 'stream' as const,\n streamFormat: 'sse' as const,\n queryParamSchema: backgroundTaskStreamQuerySchema,\n responseSchema: backgroundTaskStreamResponseSchema,\n summary: 'Stream background task events via SSE',\n description: 'Real-time Server-Sent Events stream of background task completion/failure events.',\n tags: ['Background Tasks'],\n requiresAuth: true,\n handler: async ({\n mastra,\n agentId,\n runId,\n threadId,\n resourceId: clientResourceId,\n taskId,\n abortSignal,\n requestContext,\n }) => {\n const { resourceId, scoped } = resolveResourceScope(requestContext, clientResourceId);\n const bgManager = mastra.backgroundTaskManager;\n if (!bgManager) {\n // Background tasks are not enabled — return an empty stream that stays\n // open until the client disconnects. This avoids spamming the logs with\n // false-positive errors when clients (e.g. the studio UI) optimistically\n // subscribe to the stream.\n return new ReadableStream({\n start(controller) {\n abortSignal?.addEventListener('abort', () => {\n try {\n controller.close();\n } catch {\n // Already closed\n }\n });\n },\n });\n }\n\n return bgManager.stream({ agentId, runId, threadId, resourceId, taskId, abortSignal, allResources: !scoped });\n },\n});\n\nexport const LIST_BACKGROUND_TASKS_ROUTE = createRoute({\n method: 'GET',\n path: '/background-tasks',\n responseType: 'json' as const,\n queryParamSchema: listBackgroundTasksQuerySchema,\n responseSchema: listBackgroundTaskResponseSchema,\n summary: 'List background tasks',\n description: 'Returns background tasks filtered by status, agent, run, etc.',\n tags: ['Background Tasks'],\n requiresAuth: true,\n handler: async ({ mastra, requestContext, ...params }) => {\n const { resourceId } = resolveResourceScope(requestContext, params.resourceId);\n const bgManager = mastra.backgroundTaskManager;\n if (!bgManager) {\n // Background tasks not enabled — there are no tasks to return.\n return { tasks: [], total: 0 };\n }\n\n return bgManager.listTasks({ ...params, resourceId });\n },\n});\n\nexport const GET_BACKGROUND_TASK_ROUTE = createRoute({\n method: 'GET',\n path: '/background-tasks/:backgroundTaskId',\n responseType: 'json' as const,\n pathParamSchema: backgroundTaskIdPathParams,\n responseSchema: backgroundTaskResponseSchema,\n summary: 'Get a background task by ID',\n description: 'Returns a background task by ID.',\n tags: ['Background Tasks'],\n requiresAuth: true,\n handler: async ({ mastra, backgroundTaskId, requestContext }) => {\n const { resourceId, scoped } = resolveResourceScope(requestContext, undefined);\n const bgManager = mastra.backgroundTaskManager;\n if (!bgManager) {\n // Background tasks not enabled — the task can't exist.\n throw new HTTPException(404, { message: 'Background task not found' });\n }\n\n const task = await bgManager.getTask(backgroundTaskId);\n // Report another resource's task as missing so its existence is not disclosed.\n if (!task || (scoped && task.resourceId !== resourceId)) {\n throw new HTTPException(404, { message: 'Background task not found' });\n }\n return task;\n },\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"background-tasks-BkYNmUcf.js","names":["z"],"sources":["../src/server/schemas/background-tasks.ts","../src/server/handlers/background-tasks.ts"],"sourcesContent":["import { z } from 'zod';\nimport { paginationNumber } from './common';\n\nexport const backgroundTaskStatusSchema = z.enum([\n 'pending',\n 'running',\n 'suspended',\n 'completed',\n 'failed',\n 'cancelled',\n 'timed_out',\n]);\n\nexport const backgroundTaskStreamQuerySchema = z.object({\n agentId: z.string().optional(),\n runId: z.string().optional(),\n threadId: z.string().optional(),\n resourceId: z.string().optional(),\n taskId: z.string().optional(),\n});\n\nexport const backgroundTaskDateColumnSchema = z.enum(['createdAt', 'startedAt', 'suspendedAt', 'completedAt']);\n\nexport const listBackgroundTasksQuerySchema = z.object({\n agentId: z.string().optional(),\n status: backgroundTaskStatusSchema.optional(),\n runId: z.string().optional(),\n threadId: z.string().optional(),\n resourceId: z.string().optional(),\n toolName: z.string().optional(),\n toolCallId: z.string().optional(),\n fromDate: z.coerce.date().optional(),\n toDate: z.coerce.date().optional(),\n dateFilterBy: backgroundTaskDateColumnSchema.optional(),\n orderBy: backgroundTaskDateColumnSchema.optional(),\n orderDirection: z.enum(['asc', 'desc']).optional(),\n page: paginationNumber().optional(),\n perPage: paginationNumber().optional(),\n});\n\nexport const backgroundTaskIdPathParams = z.object({\n backgroundTaskId: z.string(),\n});\n\nexport const backgroundTaskResponseSchema = z.object({\n id: z.string(),\n status: backgroundTaskStatusSchema,\n toolName: z.string(),\n toolCallId: z.string(),\n args: z.record(z.string(), z.unknown()),\n agentId: z.string(),\n threadId: z.string().optional(),\n resourceId: z.string().optional(),\n runId: z.string(),\n result: z.unknown().optional(),\n error: z.object({ message: z.string(), stack: z.string().optional() }).optional(),\n createdAt: z.date(),\n startedAt: z.date().optional(),\n completedAt: z.date().optional(),\n retryCount: z.number(),\n maxRetries: z.number(),\n timeoutMs: z.number(),\n suspendPayload: z.unknown().optional(),\n});\n\nexport const listBackgroundTaskResponseSchema = z.object({\n tasks: z.array(backgroundTaskResponseSchema),\n total: z.number(),\n});\n\nexport const backgroundTaskStreamResponseSchema = z.unknown();\n","import { HTTPException } from '../http-exception';\nimport {\n backgroundTaskResponseSchema,\n backgroundTaskStreamQuerySchema,\n backgroundTaskStreamResponseSchema,\n listBackgroundTaskResponseSchema,\n listBackgroundTasksQuerySchema,\n backgroundTaskIdPathParams,\n} from '../schemas/background-tasks';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport { getContextResourceId } from './utils';\n\n/**\n * Resolves the resource filter for a background-task request. A resource-scoped caller\n * is pinned to its own resource and may not request another one; a privileged caller\n * (no resource in the request context) keeps the client-provided filter.\n */\nfunction resolveResourceScope(\n requestContext: Parameters<typeof getContextResourceId>[0],\n clientResourceId: string | undefined,\n): { resourceId: string | undefined; scoped: boolean } {\n const contextResourceId = getContextResourceId(requestContext);\n if (contextResourceId === undefined) return { resourceId: clientResourceId, scoped: false };\n // An empty resource id must not be mistaken for a privileged (unscoped) caller, and\n // storage filters ignore empty strings, so it cannot be scoped safely either.\n if (contextResourceId === '') {\n throw new HTTPException(403, { message: 'Access denied: authenticated resourceId is empty' });\n }\n if (clientResourceId !== undefined && clientResourceId !== contextResourceId) {\n throw new HTTPException(403, { message: 'Access denied: resourceId does not match the authenticated resource' });\n }\n return { resourceId: contextResourceId, scoped: true };\n}\n\nexport const BACKGROUND_TASK_STREAM_ROUTE = createRoute({\n method: 'GET',\n path: '/background-tasks/stream',\n responseType: 'stream' as const,\n streamFormat: 'sse' as const,\n queryParamSchema: backgroundTaskStreamQuerySchema,\n responseSchema: backgroundTaskStreamResponseSchema,\n summary: 'Stream background task events via SSE',\n description: 'Real-time Server-Sent Events stream of background task completion/failure events.',\n tags: ['Background Tasks'],\n requiresAuth: true,\n handler: async ({\n mastra,\n agentId,\n runId,\n threadId,\n resourceId: clientResourceId,\n taskId,\n abortSignal,\n requestContext,\n }) => {\n const { resourceId, scoped } = resolveResourceScope(requestContext, clientResourceId);\n const bgManager = mastra.backgroundTaskManager;\n if (!bgManager) {\n // Background tasks are not enabled — return an empty stream that stays\n // open until the client disconnects. This avoids spamming the logs with\n // false-positive errors when clients (e.g. the studio UI) optimistically\n // subscribe to the stream.\n return new ReadableStream({\n start(controller) {\n abortSignal?.addEventListener('abort', () => {\n try {\n controller.close();\n } catch {\n // Already closed\n }\n });\n },\n });\n }\n\n return bgManager.stream({ agentId, runId, threadId, resourceId, taskId, abortSignal, allResources: !scoped });\n },\n});\n\nexport const LIST_BACKGROUND_TASKS_ROUTE = createRoute({\n method: 'GET',\n path: '/background-tasks',\n responseType: 'json' as const,\n queryParamSchema: listBackgroundTasksQuerySchema,\n responseSchema: listBackgroundTaskResponseSchema,\n summary: 'List background tasks',\n description: 'Returns background tasks filtered by status, agent, run, etc.',\n tags: ['Background Tasks'],\n requiresAuth: true,\n handler: async ({ mastra, requestContext, ...params }) => {\n const { resourceId } = resolveResourceScope(requestContext, params.resourceId);\n const bgManager = mastra.backgroundTaskManager;\n if (!bgManager) {\n // Background tasks not enabled — there are no tasks to return.\n return { tasks: [], total: 0 };\n }\n\n return bgManager.listTasks({ ...params, resourceId });\n },\n});\n\nexport const GET_BACKGROUND_TASK_ROUTE = createRoute({\n method: 'GET',\n path: '/background-tasks/:backgroundTaskId',\n responseType: 'json' as const,\n pathParamSchema: backgroundTaskIdPathParams,\n responseSchema: backgroundTaskResponseSchema,\n summary: 'Get a background task by ID',\n description: 'Returns a background task by ID.',\n tags: ['Background Tasks'],\n requiresAuth: true,\n handler: async ({ mastra, backgroundTaskId, requestContext }) => {\n const { resourceId, scoped } = resolveResourceScope(requestContext, undefined);\n const bgManager = mastra.backgroundTaskManager;\n if (!bgManager) {\n // Background tasks not enabled — the task can't exist.\n throw new HTTPException(404, { message: 'Background task not found' });\n }\n\n const task = await bgManager.getTask(backgroundTaskId);\n // Report another resource's task as missing so its existence is not disclosed.\n if (!task || (scoped && task.resourceId !== resourceId)) {\n throw new HTTPException(404, { message: 'Background task not found' });\n }\n return task;\n },\n});\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  const require_http_exception = require("./http-exception-Co3MbFUf.cjs");
2
- const require_common = require("./common-DVZqSEhZ.cjs");
2
+ const require_common = require("./common-D5XxSuvu.cjs");
3
3
  const require_route_builder = require("./route-builder-CvARmqnA.cjs");
4
4
  const require_utils = require("./utils-BbYUI6Yn.cjs");
5
5
  let zod = require("zod");
@@ -183,4 +183,4 @@ Object.defineProperty(exports, "LIST_BACKGROUND_TASKS_ROUTE", {
183
183
  }
184
184
  });
185
185
 
186
- //# sourceMappingURL=background-tasks-BMp9Q6SB.cjs.map
186
+ //# sourceMappingURL=background-tasks-Civclnuq.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"background-tasks-BMp9Q6SB.cjs","names":["z","paginationNumber","getContextResourceId","HTTPException","createRoute"],"sources":["../src/server/schemas/background-tasks.ts","../src/server/handlers/background-tasks.ts"],"sourcesContent":["import { z } from 'zod';\nimport { paginationNumber } from './common';\n\nexport const backgroundTaskStatusSchema = z.enum([\n 'pending',\n 'running',\n 'suspended',\n 'completed',\n 'failed',\n 'cancelled',\n 'timed_out',\n]);\n\nexport const backgroundTaskStreamQuerySchema = z.object({\n agentId: z.string().optional(),\n runId: z.string().optional(),\n threadId: z.string().optional(),\n resourceId: z.string().optional(),\n taskId: z.string().optional(),\n});\n\nexport const backgroundTaskDateColumnSchema = z.enum(['createdAt', 'startedAt', 'suspendedAt', 'completedAt']);\n\nexport const listBackgroundTasksQuerySchema = z.object({\n agentId: z.string().optional(),\n status: backgroundTaskStatusSchema.optional(),\n runId: z.string().optional(),\n threadId: z.string().optional(),\n resourceId: z.string().optional(),\n toolName: z.string().optional(),\n toolCallId: z.string().optional(),\n fromDate: z.coerce.date().optional(),\n toDate: z.coerce.date().optional(),\n dateFilterBy: backgroundTaskDateColumnSchema.optional(),\n orderBy: backgroundTaskDateColumnSchema.optional(),\n orderDirection: z.enum(['asc', 'desc']).optional(),\n page: paginationNumber().optional(),\n perPage: paginationNumber().optional(),\n});\n\nexport const backgroundTaskIdPathParams = z.object({\n backgroundTaskId: z.string(),\n});\n\nexport const backgroundTaskResponseSchema = z.object({\n id: z.string(),\n status: backgroundTaskStatusSchema,\n toolName: z.string(),\n toolCallId: z.string(),\n args: z.record(z.string(), z.unknown()),\n agentId: z.string(),\n threadId: z.string().optional(),\n resourceId: z.string().optional(),\n runId: z.string(),\n result: z.unknown().optional(),\n error: z.object({ message: z.string(), stack: z.string().optional() }).optional(),\n createdAt: z.date(),\n startedAt: z.date().optional(),\n completedAt: z.date().optional(),\n retryCount: z.number(),\n maxRetries: z.number(),\n timeoutMs: z.number(),\n suspendPayload: z.unknown().optional(),\n});\n\nexport const listBackgroundTaskResponseSchema = z.object({\n tasks: z.array(backgroundTaskResponseSchema),\n total: z.number(),\n});\n\nexport const backgroundTaskStreamResponseSchema = z.unknown();\n","import { HTTPException } from '../http-exception';\nimport {\n backgroundTaskResponseSchema,\n backgroundTaskStreamQuerySchema,\n backgroundTaskStreamResponseSchema,\n listBackgroundTaskResponseSchema,\n listBackgroundTasksQuerySchema,\n backgroundTaskIdPathParams,\n} from '../schemas/background-tasks';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport { getContextResourceId } from './utils';\n\n/**\n * Resolves the resource filter for a background-task request. A resource-scoped caller\n * is pinned to its own resource and may not request another one; a privileged caller\n * (no resource in the request context) keeps the client-provided filter.\n */\nfunction resolveResourceScope(\n requestContext: Parameters<typeof getContextResourceId>[0],\n clientResourceId: string | undefined,\n): { resourceId: string | undefined; scoped: boolean } {\n const contextResourceId = getContextResourceId(requestContext);\n if (contextResourceId === undefined) return { resourceId: clientResourceId, scoped: false };\n // An empty resource id must not be mistaken for a privileged (unscoped) caller, and\n // storage filters ignore empty strings, so it cannot be scoped safely either.\n if (contextResourceId === '') {\n throw new HTTPException(403, { message: 'Access denied: authenticated resourceId is empty' });\n }\n if (clientResourceId !== undefined && clientResourceId !== contextResourceId) {\n throw new HTTPException(403, { message: 'Access denied: resourceId does not match the authenticated resource' });\n }\n return { resourceId: contextResourceId, scoped: true };\n}\n\nexport const BACKGROUND_TASK_STREAM_ROUTE = createRoute({\n method: 'GET',\n path: '/background-tasks/stream',\n responseType: 'stream' as const,\n streamFormat: 'sse' as const,\n queryParamSchema: backgroundTaskStreamQuerySchema,\n responseSchema: backgroundTaskStreamResponseSchema,\n summary: 'Stream background task events via SSE',\n description: 'Real-time Server-Sent Events stream of background task completion/failure events.',\n tags: ['Background Tasks'],\n requiresAuth: true,\n handler: async ({\n mastra,\n agentId,\n runId,\n threadId,\n resourceId: clientResourceId,\n taskId,\n abortSignal,\n requestContext,\n }) => {\n const { resourceId, scoped } = resolveResourceScope(requestContext, clientResourceId);\n const bgManager = mastra.backgroundTaskManager;\n if (!bgManager) {\n // Background tasks are not enabled — return an empty stream that stays\n // open until the client disconnects. This avoids spamming the logs with\n // false-positive errors when clients (e.g. the studio UI) optimistically\n // subscribe to the stream.\n return new ReadableStream({\n start(controller) {\n abortSignal?.addEventListener('abort', () => {\n try {\n controller.close();\n } catch {\n // Already closed\n }\n });\n },\n });\n }\n\n return bgManager.stream({ agentId, runId, threadId, resourceId, taskId, abortSignal, allResources: !scoped });\n },\n});\n\nexport const LIST_BACKGROUND_TASKS_ROUTE = createRoute({\n method: 'GET',\n path: '/background-tasks',\n responseType: 'json' as const,\n queryParamSchema: listBackgroundTasksQuerySchema,\n responseSchema: listBackgroundTaskResponseSchema,\n summary: 'List background tasks',\n description: 'Returns background tasks filtered by status, agent, run, etc.',\n tags: ['Background Tasks'],\n requiresAuth: true,\n handler: async ({ mastra, requestContext, ...params }) => {\n const { resourceId } = resolveResourceScope(requestContext, params.resourceId);\n const bgManager = mastra.backgroundTaskManager;\n if (!bgManager) {\n // Background tasks not enabled — there are no tasks to return.\n return { tasks: [], total: 0 };\n }\n\n return bgManager.listTasks({ ...params, resourceId });\n },\n});\n\nexport const GET_BACKGROUND_TASK_ROUTE = createRoute({\n method: 'GET',\n path: '/background-tasks/:backgroundTaskId',\n responseType: 'json' as const,\n pathParamSchema: backgroundTaskIdPathParams,\n responseSchema: backgroundTaskResponseSchema,\n summary: 'Get a background task by ID',\n description: 'Returns a background task by ID.',\n tags: ['Background Tasks'],\n requiresAuth: true,\n handler: async ({ mastra, backgroundTaskId, requestContext }) => {\n const { resourceId, scoped } = resolveResourceScope(requestContext, undefined);\n const bgManager = mastra.backgroundTaskManager;\n if (!bgManager) {\n // Background tasks not enabled — the task can't exist.\n throw new HTTPException(404, { message: 'Background task not found' });\n }\n\n const task = await bgManager.getTask(backgroundTaskId);\n // Report another resource's task as missing so its existence is not disclosed.\n if (!task || (scoped && task.resourceId !== resourceId)) {\n throw new HTTPException(404, { message: 'Background task not found' });\n }\n return task;\n },\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"background-tasks-Civclnuq.cjs","names":["z","paginationNumber","getContextResourceId","HTTPException","createRoute"],"sources":["../src/server/schemas/background-tasks.ts","../src/server/handlers/background-tasks.ts"],"sourcesContent":["import { z } from 'zod';\nimport { paginationNumber } from './common';\n\nexport const backgroundTaskStatusSchema = z.enum([\n 'pending',\n 'running',\n 'suspended',\n 'completed',\n 'failed',\n 'cancelled',\n 'timed_out',\n]);\n\nexport const backgroundTaskStreamQuerySchema = z.object({\n agentId: z.string().optional(),\n runId: z.string().optional(),\n threadId: z.string().optional(),\n resourceId: z.string().optional(),\n taskId: z.string().optional(),\n});\n\nexport const backgroundTaskDateColumnSchema = z.enum(['createdAt', 'startedAt', 'suspendedAt', 'completedAt']);\n\nexport const listBackgroundTasksQuerySchema = z.object({\n agentId: z.string().optional(),\n status: backgroundTaskStatusSchema.optional(),\n runId: z.string().optional(),\n threadId: z.string().optional(),\n resourceId: z.string().optional(),\n toolName: z.string().optional(),\n toolCallId: z.string().optional(),\n fromDate: z.coerce.date().optional(),\n toDate: z.coerce.date().optional(),\n dateFilterBy: backgroundTaskDateColumnSchema.optional(),\n orderBy: backgroundTaskDateColumnSchema.optional(),\n orderDirection: z.enum(['asc', 'desc']).optional(),\n page: paginationNumber().optional(),\n perPage: paginationNumber().optional(),\n});\n\nexport const backgroundTaskIdPathParams = z.object({\n backgroundTaskId: z.string(),\n});\n\nexport const backgroundTaskResponseSchema = z.object({\n id: z.string(),\n status: backgroundTaskStatusSchema,\n toolName: z.string(),\n toolCallId: z.string(),\n args: z.record(z.string(), z.unknown()),\n agentId: z.string(),\n threadId: z.string().optional(),\n resourceId: z.string().optional(),\n runId: z.string(),\n result: z.unknown().optional(),\n error: z.object({ message: z.string(), stack: z.string().optional() }).optional(),\n createdAt: z.date(),\n startedAt: z.date().optional(),\n completedAt: z.date().optional(),\n retryCount: z.number(),\n maxRetries: z.number(),\n timeoutMs: z.number(),\n suspendPayload: z.unknown().optional(),\n});\n\nexport const listBackgroundTaskResponseSchema = z.object({\n tasks: z.array(backgroundTaskResponseSchema),\n total: z.number(),\n});\n\nexport const backgroundTaskStreamResponseSchema = z.unknown();\n","import { HTTPException } from '../http-exception';\nimport {\n backgroundTaskResponseSchema,\n backgroundTaskStreamQuerySchema,\n backgroundTaskStreamResponseSchema,\n listBackgroundTaskResponseSchema,\n listBackgroundTasksQuerySchema,\n backgroundTaskIdPathParams,\n} from '../schemas/background-tasks';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport { getContextResourceId } from './utils';\n\n/**\n * Resolves the resource filter for a background-task request. A resource-scoped caller\n * is pinned to its own resource and may not request another one; a privileged caller\n * (no resource in the request context) keeps the client-provided filter.\n */\nfunction resolveResourceScope(\n requestContext: Parameters<typeof getContextResourceId>[0],\n clientResourceId: string | undefined,\n): { resourceId: string | undefined; scoped: boolean } {\n const contextResourceId = getContextResourceId(requestContext);\n if (contextResourceId === undefined) return { resourceId: clientResourceId, scoped: false };\n // An empty resource id must not be mistaken for a privileged (unscoped) caller, and\n // storage filters ignore empty strings, so it cannot be scoped safely either.\n if (contextResourceId === '') {\n throw new HTTPException(403, { message: 'Access denied: authenticated resourceId is empty' });\n }\n if (clientResourceId !== undefined && clientResourceId !== contextResourceId) {\n throw new HTTPException(403, { message: 'Access denied: resourceId does not match the authenticated resource' });\n }\n return { resourceId: contextResourceId, scoped: true };\n}\n\nexport const BACKGROUND_TASK_STREAM_ROUTE = createRoute({\n method: 'GET',\n path: '/background-tasks/stream',\n responseType: 'stream' as const,\n streamFormat: 'sse' as const,\n queryParamSchema: backgroundTaskStreamQuerySchema,\n responseSchema: backgroundTaskStreamResponseSchema,\n summary: 'Stream background task events via SSE',\n description: 'Real-time Server-Sent Events stream of background task completion/failure events.',\n tags: ['Background Tasks'],\n requiresAuth: true,\n handler: async ({\n mastra,\n agentId,\n runId,\n threadId,\n resourceId: clientResourceId,\n taskId,\n abortSignal,\n requestContext,\n }) => {\n const { resourceId, scoped } = resolveResourceScope(requestContext, clientResourceId);\n const bgManager = mastra.backgroundTaskManager;\n if (!bgManager) {\n // Background tasks are not enabled — return an empty stream that stays\n // open until the client disconnects. This avoids spamming the logs with\n // false-positive errors when clients (e.g. the studio UI) optimistically\n // subscribe to the stream.\n return new ReadableStream({\n start(controller) {\n abortSignal?.addEventListener('abort', () => {\n try {\n controller.close();\n } catch {\n // Already closed\n }\n });\n },\n });\n }\n\n return bgManager.stream({ agentId, runId, threadId, resourceId, taskId, abortSignal, allResources: !scoped });\n },\n});\n\nexport const LIST_BACKGROUND_TASKS_ROUTE = createRoute({\n method: 'GET',\n path: '/background-tasks',\n responseType: 'json' as const,\n queryParamSchema: listBackgroundTasksQuerySchema,\n responseSchema: listBackgroundTaskResponseSchema,\n summary: 'List background tasks',\n description: 'Returns background tasks filtered by status, agent, run, etc.',\n tags: ['Background Tasks'],\n requiresAuth: true,\n handler: async ({ mastra, requestContext, ...params }) => {\n const { resourceId } = resolveResourceScope(requestContext, params.resourceId);\n const bgManager = mastra.backgroundTaskManager;\n if (!bgManager) {\n // Background tasks not enabled — there are no tasks to return.\n return { tasks: [], total: 0 };\n }\n\n return bgManager.listTasks({ ...params, resourceId });\n },\n});\n\nexport const GET_BACKGROUND_TASK_ROUTE = createRoute({\n method: 'GET',\n path: '/background-tasks/:backgroundTaskId',\n responseType: 'json' as const,\n pathParamSchema: backgroundTaskIdPathParams,\n responseSchema: backgroundTaskResponseSchema,\n summary: 'Get a background task by ID',\n description: 'Returns a background task by ID.',\n tags: ['Background Tasks'],\n requiresAuth: true,\n handler: async ({ mastra, backgroundTaskId, requestContext }) => {\n const { resourceId, scoped } = resolveResourceScope(requestContext, undefined);\n const bgManager = mastra.backgroundTaskManager;\n if (!bgManager) {\n // Background tasks not enabled — the task can't exist.\n throw new HTTPException(404, { message: 'Background task not found' });\n }\n\n const task = await bgManager.getTask(backgroundTaskId);\n // Report another resource's task as missing so its existence is not disclosed.\n if (!task || (scoped && task.resourceId !== resourceId)) {\n throw new HTTPException(404, { message: 'Background task not found' });\n }\n return task;\n },\n});\n"],"mappings":"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"}
@@ -54,7 +54,7 @@ const createPagePaginationSchema = (defaultPerPage) => {
54
54
  ...baseSchema,
55
55
  perPage: paginationNumber().optional().default(defaultPerPage)
56
56
  });
57
- else return zod_v4.z.object({
57
+ return zod_v4.z.object({
58
58
  ...baseSchema,
59
59
  perPage: paginationNumber().optional()
60
60
  });
@@ -228,4 +228,4 @@ Object.defineProperty(exports, "typedPermissive", {
228
228
  }
229
229
  });
230
230
 
231
- //# sourceMappingURL=common-DVZqSEhZ.cjs.map
231
+ //# sourceMappingURL=common-D5XxSuvu.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common-D5XxSuvu.cjs","names":["z"],"sources":["../src/server/schemas/common.ts"],"sourcesContent":["import type { MessageInput } from '@mastra/core/agent/message-list';\nimport { z } from 'zod/v4';\n\n/**\n * Brands a permissive runtime schema with a concrete compile-time type.\n *\n * Some request-body fields carry values the server cannot fully validate with\n * zod: functions (stop conditions, client tools), Zod schemas (structured\n * output), or complex core types that would drift if re-declared here. For\n * those fields runtime validation stays permissive and the receiving\n * agent/workflow API performs the real validation, while handlers and\n * generated route types still get the concrete type.\n *\n * Every call site is an intentional, documented gap between runtime\n * validation and the declared type. Prefer a real zod schema whenever the\n * shape can reasonably be expressed — only reach for this when it cannot.\n */\nexport function typedPermissive<T>(schema: z.ZodType): z.ZodType<T> {\n return schema as unknown as z.ZodType<T>;\n}\n\n// Path parameter schemas\nexport const runIdSchema = z.object({\n runId: z.string().describe('Unique identifier for the run'),\n});\n\n/**\n * Query parameter schema for runId (optional)\n * Used by create-run route where runId is optional\n */\nexport const optionalRunIdSchema = z.object({\n runId: z.string().optional(),\n});\n\n// ============================================================================\n// Pagination Schemas\n// ============================================================================\n\n/**\n * Pagination response info\n * Used across all paginated endpoints\n */\nexport const paginationInfoSchema = z.object({\n total: z.number(),\n page: z.number(),\n perPage: z.union([z.number(), z.literal(false)]),\n hasMore: z.boolean(),\n});\n\n/**\n * Pagination values are non-negative integers. Constraining them here keeps\n * malformed input a 400 at the request boundary: without `.int().min(0)`,\n * `z.coerce.number()` only rejects values that coerce to `NaN`, so `page=-1`\n * and `perPage=2.5` reach the storage layer, which rejects them with a plain\n * `Error` that `handleError` can only report as a 500.\n *\n * The lower bound is 0 rather than 1 because `perPage: 0` is a supported\n * storage contract (the include-only fast path).\n */\nexport const paginationNumber = () => z.coerce.number().int().min(0);\n\n/**\n * Factory function for page/perPage pagination query params\n * @param defaultPerPage - Default value for perPage (omit for no default)\n */\nexport const createPagePaginationSchema = (defaultPerPage?: number) => {\n const baseSchema = {\n page: paginationNumber().optional().default(0),\n };\n\n if (defaultPerPage !== undefined) {\n return z.object({\n ...baseSchema,\n perPage: paginationNumber().optional().default(defaultPerPage),\n });\n }\n return z.object({\n ...baseSchema,\n perPage: paginationNumber().optional(),\n });\n};\n\n/**\n * Factory function for pagination that supports both page/perPage and limit/offset\n * Use this when you need backwards compatibility with older clients using limit/offset\n */\nexport const createCombinedPaginationSchema = () => {\n return z.object({\n page: paginationNumber().optional(),\n perPage: paginationNumber().optional(),\n /**\n * @deprecated Use page and perPage instead\n */\n offset: paginationNumber().optional(),\n /**\n * @deprecated Use page and perPage instead\n */\n limit: paginationNumber().optional(),\n });\n};\n\n// ============================================================================\n// Observability Schemas\n// ============================================================================\n\n/**\n * Tracing options for observability\n * Used by agents and workflows\n */\nexport const tracingOptionsSchema = z.object({\n rootSpanName: z.string().optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n requestContextKeys: z.array(z.string()).optional(),\n traceId: z.string().optional(),\n parentSpanId: z.string().optional(),\n nestUnderParent: z.boolean().optional(),\n tags: z.array(z.string()).optional(),\n hideInput: z.boolean().optional(),\n hideOutput: z.boolean().optional(),\n});\n\n// ============================================================================\n// Message Schemas\n// ============================================================================\n\n/**\n * Core message schema from AI SDK\n * Represents messages exchanged with AI models\n * Content can be string, array of content parts, or object (for complex message types)\n */\n// Runtime validation stays permissive (z.unknown()) so generated route types\n// don't leak `any`; typedPermissive gives handlers the concrete message type\n// expected by agent APIs (agent.generate/stream/network).\nexport const coreMessageSchema = typedPermissive<MessageInput>(z.unknown());\n// .object({\n// role: z.enum(['system', 'user', 'assistant', 'tool']),\n// content: z.union([\n// z.string(),\n// z.array(\n// z\n// .object({\n// type: z.enum(['text', 'image', 'file', 'tool-call', 'tool-result']),\n// })\n// .passthrough(), // Preserve additional fields like text, image, toolCall, etc.\n// ),\n// z.unknown(), // For complex message content objects\n// ]),\n// })\n// .passthrough();\n\n// ============================================================================\n// Common Response Schemas\n// ============================================================================\n\n/**\n * Standard success response schema\n * Used by operations that return only a success boolean\n */\nexport const successResponseSchema = z.object({\n success: z.boolean(),\n});\n\n/**\n * Standard message response schema\n * Used by operations that return only a message string\n */\nexport const messageResponseSchema = z.object({\n message: z.string(),\n});\n\n/**\n * Partial data query parameter schema\n * Used by list endpoints to return minimal data without schemas\n */\nexport const partialQuerySchema = z.object({\n partial: z.string().optional(),\n});\n\n// ============================================================================\n// Status Schemas\n// ============================================================================\n\n/**\n * Status filter for get-by-id endpoints.\n * Controls which version is resolved:\n * - 'published' (default) — resolve with the active (published) version.\n * - 'draft' — resolve with the latest version (which may be ahead of the published one).\n */\nexport const statusQuerySchema = z.object({\n status: z\n .enum(['draft', 'published', 'archived'])\n .optional()\n .default('published')\n .describe('Which version to resolve: published (active version) or draft (latest version)'),\n});\n\n// ============================================================================\n// Logging Schemas\n// ============================================================================\n\n/**\n * Base log message schema\n */\nexport const baseLogMessageSchema = z.object({\n level: z.enum(['debug', 'info', 'warn', 'error', 'silent']),\n msg: z.string(),\n time: z.date(),\n context: z.record(z.string(), z.unknown()).optional(),\n runId: z.string().optional(),\n pid: z.number(),\n hostname: z.string(),\n name: z.string(),\n});\n"],"mappings":"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"}
@@ -54,7 +54,7 @@ const createPagePaginationSchema = (defaultPerPage) => {
54
54
  ...baseSchema,
55
55
  perPage: paginationNumber().optional().default(defaultPerPage)
56
56
  });
57
- else return z.object({
57
+ return z.object({
58
58
  ...baseSchema,
59
59
  perPage: paginationNumber().optional()
60
60
  });
@@ -145,4 +145,4 @@ const baseLogMessageSchema = z.object({
145
145
  });
146
146
  export { messageResponseSchema as a, paginationNumber as c, statusQuerySchema as d, successResponseSchema as f, createPagePaginationSchema as i, partialQuerySchema as l, typedPermissive as m, coreMessageSchema as n, optionalRunIdSchema as o, tracingOptionsSchema as p, createCombinedPaginationSchema as r, paginationInfoSchema as s, baseLogMessageSchema as t, runIdSchema as u };
147
147
 
148
- //# sourceMappingURL=common-xUmaFUop.js.map
148
+ //# sourceMappingURL=common-J-yUnHk9.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common-J-yUnHk9.js","names":[],"sources":["../src/server/schemas/common.ts"],"sourcesContent":["import type { MessageInput } from '@mastra/core/agent/message-list';\nimport { z } from 'zod/v4';\n\n/**\n * Brands a permissive runtime schema with a concrete compile-time type.\n *\n * Some request-body fields carry values the server cannot fully validate with\n * zod: functions (stop conditions, client tools), Zod schemas (structured\n * output), or complex core types that would drift if re-declared here. For\n * those fields runtime validation stays permissive and the receiving\n * agent/workflow API performs the real validation, while handlers and\n * generated route types still get the concrete type.\n *\n * Every call site is an intentional, documented gap between runtime\n * validation and the declared type. Prefer a real zod schema whenever the\n * shape can reasonably be expressed — only reach for this when it cannot.\n */\nexport function typedPermissive<T>(schema: z.ZodType): z.ZodType<T> {\n return schema as unknown as z.ZodType<T>;\n}\n\n// Path parameter schemas\nexport const runIdSchema = z.object({\n runId: z.string().describe('Unique identifier for the run'),\n});\n\n/**\n * Query parameter schema for runId (optional)\n * Used by create-run route where runId is optional\n */\nexport const optionalRunIdSchema = z.object({\n runId: z.string().optional(),\n});\n\n// ============================================================================\n// Pagination Schemas\n// ============================================================================\n\n/**\n * Pagination response info\n * Used across all paginated endpoints\n */\nexport const paginationInfoSchema = z.object({\n total: z.number(),\n page: z.number(),\n perPage: z.union([z.number(), z.literal(false)]),\n hasMore: z.boolean(),\n});\n\n/**\n * Pagination values are non-negative integers. Constraining them here keeps\n * malformed input a 400 at the request boundary: without `.int().min(0)`,\n * `z.coerce.number()` only rejects values that coerce to `NaN`, so `page=-1`\n * and `perPage=2.5` reach the storage layer, which rejects them with a plain\n * `Error` that `handleError` can only report as a 500.\n *\n * The lower bound is 0 rather than 1 because `perPage: 0` is a supported\n * storage contract (the include-only fast path).\n */\nexport const paginationNumber = () => z.coerce.number().int().min(0);\n\n/**\n * Factory function for page/perPage pagination query params\n * @param defaultPerPage - Default value for perPage (omit for no default)\n */\nexport const createPagePaginationSchema = (defaultPerPage?: number) => {\n const baseSchema = {\n page: paginationNumber().optional().default(0),\n };\n\n if (defaultPerPage !== undefined) {\n return z.object({\n ...baseSchema,\n perPage: paginationNumber().optional().default(defaultPerPage),\n });\n }\n return z.object({\n ...baseSchema,\n perPage: paginationNumber().optional(),\n });\n};\n\n/**\n * Factory function for pagination that supports both page/perPage and limit/offset\n * Use this when you need backwards compatibility with older clients using limit/offset\n */\nexport const createCombinedPaginationSchema = () => {\n return z.object({\n page: paginationNumber().optional(),\n perPage: paginationNumber().optional(),\n /**\n * @deprecated Use page and perPage instead\n */\n offset: paginationNumber().optional(),\n /**\n * @deprecated Use page and perPage instead\n */\n limit: paginationNumber().optional(),\n });\n};\n\n// ============================================================================\n// Observability Schemas\n// ============================================================================\n\n/**\n * Tracing options for observability\n * Used by agents and workflows\n */\nexport const tracingOptionsSchema = z.object({\n rootSpanName: z.string().optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n requestContextKeys: z.array(z.string()).optional(),\n traceId: z.string().optional(),\n parentSpanId: z.string().optional(),\n nestUnderParent: z.boolean().optional(),\n tags: z.array(z.string()).optional(),\n hideInput: z.boolean().optional(),\n hideOutput: z.boolean().optional(),\n});\n\n// ============================================================================\n// Message Schemas\n// ============================================================================\n\n/**\n * Core message schema from AI SDK\n * Represents messages exchanged with AI models\n * Content can be string, array of content parts, or object (for complex message types)\n */\n// Runtime validation stays permissive (z.unknown()) so generated route types\n// don't leak `any`; typedPermissive gives handlers the concrete message type\n// expected by agent APIs (agent.generate/stream/network).\nexport const coreMessageSchema = typedPermissive<MessageInput>(z.unknown());\n// .object({\n// role: z.enum(['system', 'user', 'assistant', 'tool']),\n// content: z.union([\n// z.string(),\n// z.array(\n// z\n// .object({\n// type: z.enum(['text', 'image', 'file', 'tool-call', 'tool-result']),\n// })\n// .passthrough(), // Preserve additional fields like text, image, toolCall, etc.\n// ),\n// z.unknown(), // For complex message content objects\n// ]),\n// })\n// .passthrough();\n\n// ============================================================================\n// Common Response Schemas\n// ============================================================================\n\n/**\n * Standard success response schema\n * Used by operations that return only a success boolean\n */\nexport const successResponseSchema = z.object({\n success: z.boolean(),\n});\n\n/**\n * Standard message response schema\n * Used by operations that return only a message string\n */\nexport const messageResponseSchema = z.object({\n message: z.string(),\n});\n\n/**\n * Partial data query parameter schema\n * Used by list endpoints to return minimal data without schemas\n */\nexport const partialQuerySchema = z.object({\n partial: z.string().optional(),\n});\n\n// ============================================================================\n// Status Schemas\n// ============================================================================\n\n/**\n * Status filter for get-by-id endpoints.\n * Controls which version is resolved:\n * - 'published' (default) — resolve with the active (published) version.\n * - 'draft' — resolve with the latest version (which may be ahead of the published one).\n */\nexport const statusQuerySchema = z.object({\n status: z\n .enum(['draft', 'published', 'archived'])\n .optional()\n .default('published')\n .describe('Which version to resolve: published (active version) or draft (latest version)'),\n});\n\n// ============================================================================\n// Logging Schemas\n// ============================================================================\n\n/**\n * Base log message schema\n */\nexport const baseLogMessageSchema = z.object({\n level: z.enum(['debug', 'info', 'warn', 'error', 'silent']),\n msg: z.string(),\n time: z.date(),\n context: z.record(z.string(), z.unknown()).optional(),\n runId: z.string().optional(),\n pid: z.number(),\n hostname: z.string(),\n name: z.string(),\n});\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  const require_rolldown_runtime = require("./rolldown-runtime-10nMEhjP.cjs");
2
- const require_memory = require("./memory-BnPGDrdg.cjs");
2
+ const require_memory = require("./memory--xJDrSwF.cjs");
3
3
  const require_responses = require("./responses-CTiwnWeF.cjs");
4
4
  let zod = require("zod");
5
5
  zod = require_rolldown_runtime.__toESM(zod, 1);
@@ -60,4 +60,4 @@ Object.defineProperty(exports, "createConversationBodySchema", {
60
60
  }
61
61
  });
62
62
 
63
- //# sourceMappingURL=conversations-BPQNrv5g.cjs.map
63
+ //# sourceMappingURL=conversations-BVj0Dk2Q.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"conversations-BPQNrv5g.cjs","names":["z","getThreadByIdResponseSchema","conversationItemSchema"],"sources":["../src/server/schemas/conversations.ts"],"sourcesContent":["import z from 'zod';\nimport { getThreadByIdResponseSchema } from './memory';\nimport { conversationItemSchema } from './responses';\n\nexport const conversationIdPathParams = z.object({\n conversationId: z.string().describe('Unique identifier for the conversation thread'),\n});\n\nexport const createConversationBodySchema = z.object({\n agent_id: z.string().describe('Mastra agent ID used to create the conversation thread'),\n conversation_id: z.string().optional().describe('Optional conversation ID to use as the raw threadId'),\n resource_id: z.string().optional().describe('Optional resource ID to associate with the conversation'),\n title: z.string().optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport type CreateConversationBody = z.infer<typeof createConversationBodySchema>;\n\nexport const conversationObjectSchema = z.object({\n id: z.string(),\n object: z.literal('conversation'),\n thread: getThreadByIdResponseSchema,\n});\n\nexport const conversationDeletedSchema = z.object({\n id: z.string(),\n object: z.literal('conversation.deleted'),\n deleted: z.literal(true),\n});\n\nexport const conversationItemsListSchema = z.object({\n object: z.literal('list'),\n data: z.array(conversationItemSchema),\n first_id: z.string().nullable(),\n last_id: z.string().nullable(),\n has_more: z.boolean(),\n});\n\nexport type ConversationObject = z.infer<typeof conversationObjectSchema>;\nexport type ConversationItemsList = z.infer<typeof conversationItemsListSchema>;\nexport type ConversationDeleted = z.infer<typeof conversationDeletedSchema>;\n"],"mappings":";;;;;;AAIA,MAAa,2BAA2BA,IAAAA,QAAE,OAAO,EAC/C,gBAAgBA,IAAAA,QAAE,OAAO,CAAC,CAAC,SAAS,+CAA+C,EACrF,CAAC;AAED,MAAa,+BAA+BA,IAAAA,QAAE,OAAO;CACnD,UAAUA,IAAAA,QAAE,OAAO,CAAC,CAAC,SAAS,wDAAwD;CACtF,iBAAiBA,IAAAA,QAAE,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,qDAAqD;CACrG,aAAaA,IAAAA,QAAE,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,yDAAyD;CACrG,OAAOA,IAAAA,QAAE,OAAO,CAAC,CAAC,SAAS;CAC3B,UAAUA,IAAAA,QAAE,OAAOA,IAAAA,QAAE,OAAO,GAAGA,IAAAA,QAAE,QAAQ,CAAC,CAAC,CAAC,SAAS;AACvD,CAAC;AAID,MAAa,2BAA2BA,IAAAA,QAAE,OAAO;CAC/C,IAAIA,IAAAA,QAAE,OAAO;CACb,QAAQA,IAAAA,QAAE,QAAQ,cAAc;CAChC,QAAQC,eAAAA;AACV,CAAC;AAED,MAAa,4BAA4BD,IAAAA,QAAE,OAAO;CAChD,IAAIA,IAAAA,QAAE,OAAO;CACb,QAAQA,IAAAA,QAAE,QAAQ,sBAAsB;CACxC,SAASA,IAAAA,QAAE,QAAQ,IAAI;AACzB,CAAC;AAED,MAAa,8BAA8BA,IAAAA,QAAE,OAAO;CAClD,QAAQA,IAAAA,QAAE,QAAQ,MAAM;CACxB,MAAMA,IAAAA,QAAE,MAAME,kBAAAA,sBAAsB;CACpC,UAAUF,IAAAA,QAAE,OAAO,CAAC,CAAC,SAAS;CAC9B,SAASA,IAAAA,QAAE,OAAO,CAAC,CAAC,SAAS;CAC7B,UAAUA,IAAAA,QAAE,QAAQ;AACtB,CAAC"}
1
+ {"version":3,"file":"conversations-BVj0Dk2Q.cjs","names":["z","getThreadByIdResponseSchema","conversationItemSchema"],"sources":["../src/server/schemas/conversations.ts"],"sourcesContent":["import z from 'zod';\nimport { getThreadByIdResponseSchema } from './memory';\nimport { conversationItemSchema } from './responses';\n\nexport const conversationIdPathParams = z.object({\n conversationId: z.string().describe('Unique identifier for the conversation thread'),\n});\n\nexport const createConversationBodySchema = z.object({\n agent_id: z.string().describe('Mastra agent ID used to create the conversation thread'),\n conversation_id: z.string().optional().describe('Optional conversation ID to use as the raw threadId'),\n resource_id: z.string().optional().describe('Optional resource ID to associate with the conversation'),\n title: z.string().optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport type CreateConversationBody = z.infer<typeof createConversationBodySchema>;\n\nexport const conversationObjectSchema = z.object({\n id: z.string(),\n object: z.literal('conversation'),\n thread: getThreadByIdResponseSchema,\n});\n\nexport const conversationDeletedSchema = z.object({\n id: z.string(),\n object: z.literal('conversation.deleted'),\n deleted: z.literal(true),\n});\n\nexport const conversationItemsListSchema = z.object({\n object: z.literal('list'),\n data: z.array(conversationItemSchema),\n first_id: z.string().nullable(),\n last_id: z.string().nullable(),\n has_more: z.boolean(),\n});\n\nexport type ConversationObject = z.infer<typeof conversationObjectSchema>;\nexport type ConversationItemsList = z.infer<typeof conversationItemsListSchema>;\nexport type ConversationDeleted = z.infer<typeof conversationDeletedSchema>;\n"],"mappings":";;;;;;AAIA,MAAa,2BAA2BA,IAAAA,QAAE,OAAO,EAC/C,gBAAgBA,IAAAA,QAAE,OAAO,CAAC,CAAC,SAAS,+CAA+C,EACrF,CAAC;AAED,MAAa,+BAA+BA,IAAAA,QAAE,OAAO;CACnD,UAAUA,IAAAA,QAAE,OAAO,CAAC,CAAC,SAAS,wDAAwD;CACtF,iBAAiBA,IAAAA,QAAE,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,qDAAqD;CACrG,aAAaA,IAAAA,QAAE,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,yDAAyD;CACrG,OAAOA,IAAAA,QAAE,OAAO,CAAC,CAAC,SAAS;CAC3B,UAAUA,IAAAA,QAAE,OAAOA,IAAAA,QAAE,OAAO,GAAGA,IAAAA,QAAE,QAAQ,CAAC,CAAC,CAAC,SAAS;AACvD,CAAC;AAID,MAAa,2BAA2BA,IAAAA,QAAE,OAAO;CAC/C,IAAIA,IAAAA,QAAE,OAAO;CACb,QAAQA,IAAAA,QAAE,QAAQ,cAAc;CAChC,QAAQC,eAAAA;AACV,CAAC;AAED,MAAa,4BAA4BD,IAAAA,QAAE,OAAO;CAChD,IAAIA,IAAAA,QAAE,OAAO;CACb,QAAQA,IAAAA,QAAE,QAAQ,sBAAsB;CACxC,SAASA,IAAAA,QAAE,QAAQ,IAAI;AACzB,CAAC;AAED,MAAa,8BAA8BA,IAAAA,QAAE,OAAO;CAClD,QAAQA,IAAAA,QAAE,QAAQ,MAAM;CACxB,MAAMA,IAAAA,QAAE,MAAME,kBAAAA,sBAAsB;CACpC,UAAUF,IAAAA,QAAE,OAAO,CAAC,CAAC,SAAS;CAC9B,SAASA,IAAAA,QAAE,OAAO,CAAC,CAAC,SAAS;CAC7B,UAAUA,IAAAA,QAAE,QAAQ;AACtB,CAAC"}
@@ -3,8 +3,8 @@ import { t as HTTPException } from "./http-exception-CzaWkxMl.js";
3
3
  import { n as createRoute } from "./route-builder-BxPrwNog.js";
4
4
  import { handleError } from "./server/handlers/error.js";
5
5
  import { _ as MastraFGAPermissions, g as validateThreadOwnership, i as getEffectiveResourceId } from "./utils-DHxjw4Tn.js";
6
- import { G as getAgentFromSystem } from "./agents-CiUW6yvl.js";
7
- import { a as createConversationBodySchema, i as conversationObjectSchema, n as conversationIdPathParams, r as conversationItemsListSchema, t as conversationDeletedSchema } from "./conversations-nNko6-H4.js";
6
+ import { G as getAgentFromSystem } from "./agents-BVjnYswL.js";
7
+ import { a as createConversationBodySchema, i as conversationObjectSchema, n as conversationIdPathParams, r as conversationItemsListSchema, t as conversationDeletedSchema } from "./conversations-DHrKTI6x.js";
8
8
  import { mapMastraMessagesToConversationItems } from "./server/handlers/responses.adapter.js";
9
9
  import { findConversationThreadAcrossAgents, getAgentMemoryStore } from "./server/handlers/responses.storage.js";
10
10
  // src/server/handlers/conversations.ts
@@ -161,4 +161,4 @@ const DELETE_CONVERSATION_ROUTE = createRoute({
161
161
  });
162
162
  export { conversations_exports as a, GET_CONVERSATION_ROUTE as i, DELETE_CONVERSATION_ROUTE as n, GET_CONVERSATION_ITEMS_ROUTE as r, CREATE_CONVERSATION_ROUTE as t };
163
163
 
164
- //# sourceMappingURL=conversations-Ce0dCZ23.js.map
164
+ //# sourceMappingURL=conversations-CABVTBQY.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"conversations-Ce0dCZ23.js","names":[],"sources":["../src/server/handlers/conversations.ts"],"sourcesContent":["import { MastraFGAPermissions } from '../fga-permissions';\nimport { HTTPException } from '../http-exception';\nimport {\n conversationDeletedSchema,\n conversationIdPathParams,\n conversationItemsListSchema,\n conversationObjectSchema,\n createConversationBodySchema,\n} from '../schemas/conversations';\nimport type { ConversationDeleted, ConversationItemsList, ConversationObject } from '../schemas/conversations';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport { getAgentFromSystem } from './agents';\nimport { handleError } from './error';\nimport { mapMastraMessagesToConversationItems } from './responses.adapter';\nimport { findConversationThreadAcrossAgents, getAgentMemoryStore } from './responses.storage';\nimport { getEffectiveResourceId, validateThreadOwnership } from './utils';\n\nfunction buildConversationObject({ thread }: { thread: ConversationObject['thread'] }): ConversationObject {\n return {\n id: thread.id,\n object: 'conversation',\n thread,\n };\n}\n\nfunction buildConversationItemsList(items: ConversationItemsList['data']): ConversationItemsList {\n return {\n object: 'list',\n data: items,\n first_id: items[0]?.id ?? null,\n last_id: items.at(-1)?.id ?? null,\n has_more: false,\n };\n}\n\nfunction buildConversationDeleted(conversationId: string): ConversationDeleted {\n return {\n id: conversationId,\n object: 'conversation.deleted',\n deleted: true,\n };\n}\n\nexport const CREATE_CONVERSATION_ROUTE = createRoute({\n method: 'POST',\n path: '/v1/conversations',\n responseType: 'json',\n bodySchema: createConversationBodySchema,\n responseSchema: conversationObjectSchema,\n summary: 'Create a conversation',\n description: 'Creates a new thread-backed conversation for agent-backed Responses API requests',\n tags: ['Responses'],\n requiresAuth: true,\n requiresPermission: MastraFGAPermissions.AGENTS_CREATE,\n handler: async ({ mastra, requestContext, agent_id, conversation_id, resource_id, title, metadata }) => {\n try {\n if (!mastra) {\n throw new HTTPException(500, { message: 'Mastra instance is required for conversations' });\n }\n\n const agent = await getAgentFromSystem({ mastra, agentId: agent_id });\n const memory = await agent.getMemory({ requestContext });\n if (!memory) {\n throw new HTTPException(400, { message: `Agent \"${agent.id}\" does not have memory configured` });\n }\n if (!(await getAgentMemoryStore({ agent, requestContext }))) {\n throw new HTTPException(400, { message: `Memory storage is not configured for agent \"${agent.id}\"` });\n }\n\n const threadId = conversation_id ?? globalThis.crypto.randomUUID();\n const resourceId = getEffectiveResourceId(requestContext, resource_id) ?? threadId;\n\n // Creating with an existing id upserts the thread, so validate ownership of any existing thread first\n if (conversation_id) {\n const existing = await memory.getThreadById({ threadId });\n await validateThreadOwnership(existing, getEffectiveResourceId(requestContext, undefined));\n }\n\n const thread = await memory.createThread({\n threadId,\n resourceId,\n title,\n metadata,\n });\n\n return buildConversationObject({ thread });\n } catch (error) {\n return handleError(error, 'Error creating conversation');\n }\n },\n});\n\nexport const GET_CONVERSATION_ROUTE = createRoute({\n method: 'GET',\n path: '/v1/conversations/:conversationId',\n responseType: 'json',\n pathParamSchema: conversationIdPathParams,\n responseSchema: conversationObjectSchema,\n summary: 'Retrieve a conversation',\n description: 'Returns a conversation object backed by a Mastra memory thread',\n tags: ['Responses'],\n requiresAuth: true,\n requiresPermission: MastraFGAPermissions.AGENTS_READ,\n handler: async ({ mastra, requestContext, conversationId }) => {\n try {\n const match = await findConversationThreadAcrossAgents({ mastra, conversationId, requestContext });\n if (!match) {\n throw new HTTPException(404, { message: `Conversation ${conversationId} was not found` });\n }\n\n return buildConversationObject({ thread: match.thread });\n } catch (error) {\n return handleError(error, 'Error retrieving conversation');\n }\n },\n});\n\nexport const GET_CONVERSATION_ITEMS_ROUTE = createRoute({\n method: 'GET',\n path: '/v1/conversations/:conversationId/items',\n responseType: 'json',\n pathParamSchema: conversationIdPathParams,\n responseSchema: conversationItemsListSchema,\n summary: 'List conversation items',\n description: 'Returns OpenAI-style conversation items derived from the stored thread messages',\n tags: ['Responses'],\n requiresAuth: true,\n requiresPermission: MastraFGAPermissions.AGENTS_READ,\n handler: async ({ mastra, requestContext, conversationId }) => {\n try {\n const match = await findConversationThreadAcrossAgents({ mastra, conversationId, requestContext });\n if (!match) {\n throw new HTTPException(404, { message: `Conversation ${conversationId} was not found` });\n }\n\n const { messages } = await match.memoryStore.listMessages({\n threadId: conversationId,\n page: 0,\n perPage: 1000,\n });\n\n return buildConversationItemsList(mapMastraMessagesToConversationItems(messages));\n } catch (error) {\n return handleError(error, 'Error retrieving conversation');\n }\n },\n});\n\nexport const DELETE_CONVERSATION_ROUTE = createRoute({\n method: 'DELETE',\n path: '/v1/conversations/:conversationId',\n responseType: 'json',\n pathParamSchema: conversationIdPathParams,\n responseSchema: conversationDeletedSchema,\n summary: 'Delete a conversation',\n description: 'Deletes a thread-backed conversation and its stored items',\n tags: ['Responses'],\n requiresAuth: true,\n requiresPermission: MastraFGAPermissions.AGENTS_DELETE,\n handler: async ({ mastra, requestContext, conversationId }) => {\n try {\n const match = await findConversationThreadAcrossAgents({ mastra, conversationId, requestContext });\n if (!match) {\n throw new HTTPException(404, { message: `Conversation ${conversationId} was not found` });\n }\n\n await match.memoryStore.deleteThread({ threadId: conversationId });\n\n return buildConversationDeleted(conversationId);\n } catch (error) {\n return handleError(error, 'Error deleting conversation');\n }\n },\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"conversations-CABVTBQY.js","names":[],"sources":["../src/server/handlers/conversations.ts"],"sourcesContent":["import { MastraFGAPermissions } from '../fga-permissions';\nimport { HTTPException } from '../http-exception';\nimport {\n conversationDeletedSchema,\n conversationIdPathParams,\n conversationItemsListSchema,\n conversationObjectSchema,\n createConversationBodySchema,\n} from '../schemas/conversations';\nimport type { ConversationDeleted, ConversationItemsList, ConversationObject } from '../schemas/conversations';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport { getAgentFromSystem } from './agents';\nimport { handleError } from './error';\nimport { mapMastraMessagesToConversationItems } from './responses.adapter';\nimport { findConversationThreadAcrossAgents, getAgentMemoryStore } from './responses.storage';\nimport { getEffectiveResourceId, validateThreadOwnership } from './utils';\n\nfunction buildConversationObject({ thread }: { thread: ConversationObject['thread'] }): ConversationObject {\n return {\n id: thread.id,\n object: 'conversation',\n thread,\n };\n}\n\nfunction buildConversationItemsList(items: ConversationItemsList['data']): ConversationItemsList {\n return {\n object: 'list',\n data: items,\n first_id: items[0]?.id ?? null,\n last_id: items.at(-1)?.id ?? null,\n has_more: false,\n };\n}\n\nfunction buildConversationDeleted(conversationId: string): ConversationDeleted {\n return {\n id: conversationId,\n object: 'conversation.deleted',\n deleted: true,\n };\n}\n\nexport const CREATE_CONVERSATION_ROUTE = createRoute({\n method: 'POST',\n path: '/v1/conversations',\n responseType: 'json',\n bodySchema: createConversationBodySchema,\n responseSchema: conversationObjectSchema,\n summary: 'Create a conversation',\n description: 'Creates a new thread-backed conversation for agent-backed Responses API requests',\n tags: ['Responses'],\n requiresAuth: true,\n requiresPermission: MastraFGAPermissions.AGENTS_CREATE,\n handler: async ({ mastra, requestContext, agent_id, conversation_id, resource_id, title, metadata }) => {\n try {\n if (!mastra) {\n throw new HTTPException(500, { message: 'Mastra instance is required for conversations' });\n }\n\n const agent = await getAgentFromSystem({ mastra, agentId: agent_id });\n const memory = await agent.getMemory({ requestContext });\n if (!memory) {\n throw new HTTPException(400, { message: `Agent \"${agent.id}\" does not have memory configured` });\n }\n if (!(await getAgentMemoryStore({ agent, requestContext }))) {\n throw new HTTPException(400, { message: `Memory storage is not configured for agent \"${agent.id}\"` });\n }\n\n const threadId = conversation_id ?? globalThis.crypto.randomUUID();\n const resourceId = getEffectiveResourceId(requestContext, resource_id) ?? threadId;\n\n // Creating with an existing id upserts the thread, so validate ownership of any existing thread first\n if (conversation_id) {\n const existing = await memory.getThreadById({ threadId });\n await validateThreadOwnership(existing, getEffectiveResourceId(requestContext, undefined));\n }\n\n const thread = await memory.createThread({\n threadId,\n resourceId,\n title,\n metadata,\n });\n\n return buildConversationObject({ thread });\n } catch (error) {\n return handleError(error, 'Error creating conversation');\n }\n },\n});\n\nexport const GET_CONVERSATION_ROUTE = createRoute({\n method: 'GET',\n path: '/v1/conversations/:conversationId',\n responseType: 'json',\n pathParamSchema: conversationIdPathParams,\n responseSchema: conversationObjectSchema,\n summary: 'Retrieve a conversation',\n description: 'Returns a conversation object backed by a Mastra memory thread',\n tags: ['Responses'],\n requiresAuth: true,\n requiresPermission: MastraFGAPermissions.AGENTS_READ,\n handler: async ({ mastra, requestContext, conversationId }) => {\n try {\n const match = await findConversationThreadAcrossAgents({ mastra, conversationId, requestContext });\n if (!match) {\n throw new HTTPException(404, { message: `Conversation ${conversationId} was not found` });\n }\n\n return buildConversationObject({ thread: match.thread });\n } catch (error) {\n return handleError(error, 'Error retrieving conversation');\n }\n },\n});\n\nexport const GET_CONVERSATION_ITEMS_ROUTE = createRoute({\n method: 'GET',\n path: '/v1/conversations/:conversationId/items',\n responseType: 'json',\n pathParamSchema: conversationIdPathParams,\n responseSchema: conversationItemsListSchema,\n summary: 'List conversation items',\n description: 'Returns OpenAI-style conversation items derived from the stored thread messages',\n tags: ['Responses'],\n requiresAuth: true,\n requiresPermission: MastraFGAPermissions.AGENTS_READ,\n handler: async ({ mastra, requestContext, conversationId }) => {\n try {\n const match = await findConversationThreadAcrossAgents({ mastra, conversationId, requestContext });\n if (!match) {\n throw new HTTPException(404, { message: `Conversation ${conversationId} was not found` });\n }\n\n const { messages } = await match.memoryStore.listMessages({\n threadId: conversationId,\n page: 0,\n perPage: 1000,\n });\n\n return buildConversationItemsList(mapMastraMessagesToConversationItems(messages));\n } catch (error) {\n return handleError(error, 'Error retrieving conversation');\n }\n },\n});\n\nexport const DELETE_CONVERSATION_ROUTE = createRoute({\n method: 'DELETE',\n path: '/v1/conversations/:conversationId',\n responseType: 'json',\n pathParamSchema: conversationIdPathParams,\n responseSchema: conversationDeletedSchema,\n summary: 'Delete a conversation',\n description: 'Deletes a thread-backed conversation and its stored items',\n tags: ['Responses'],\n requiresAuth: true,\n requiresPermission: MastraFGAPermissions.AGENTS_DELETE,\n handler: async ({ mastra, requestContext, conversationId }) => {\n try {\n const match = await findConversationThreadAcrossAgents({ mastra, conversationId, requestContext });\n if (!match) {\n throw new HTTPException(404, { message: `Conversation ${conversationId} was not found` });\n }\n\n await match.memoryStore.deleteThread({ threadId: conversationId });\n\n return buildConversationDeleted(conversationId);\n } catch (error) {\n return handleError(error, 'Error deleting conversation');\n }\n },\n});\n"],"mappings":"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"}
@@ -3,8 +3,8 @@ const require_http_exception = require("./http-exception-Co3MbFUf.cjs");
3
3
  const require_route_builder = require("./route-builder-CvARmqnA.cjs");
4
4
  const require_server_handlers_error = require("./server/handlers/error.cjs");
5
5
  const require_utils = require("./utils-BbYUI6Yn.cjs");
6
- const require_agents = require("./agents-DBsmIR4c.cjs");
7
- const require_conversations = require("./conversations-BPQNrv5g.cjs");
6
+ const require_agents = require("./agents-D36tukip.cjs");
7
+ const require_conversations = require("./conversations-BVj0Dk2Q.cjs");
8
8
  const require_server_handlers_responses_adapter = require("./server/handlers/responses.adapter.cjs");
9
9
  const require_server_handlers_responses_storage = require("./server/handlers/responses.storage.cjs");
10
10
  // src/server/handlers/conversations.ts
@@ -190,4 +190,4 @@ Object.defineProperty(exports, "conversations_exports", {
190
190
  }
191
191
  });
192
192
 
193
- //# sourceMappingURL=conversations-RVdtAQEv.cjs.map
193
+ //# sourceMappingURL=conversations-CJn0ioOZ.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"conversations-RVdtAQEv.cjs","names":["createRoute","createConversationBodySchema","conversationObjectSchema","MastraFGAPermissions","HTTPException","getAgentFromSystem","getAgentMemoryStore","getEffectiveResourceId","validateThreadOwnership","handleError","conversationIdPathParams","findConversationThreadAcrossAgents","conversationItemsListSchema","mapMastraMessagesToConversationItems","conversationDeletedSchema"],"sources":["../src/server/handlers/conversations.ts"],"sourcesContent":["import { MastraFGAPermissions } from '../fga-permissions';\nimport { HTTPException } from '../http-exception';\nimport {\n conversationDeletedSchema,\n conversationIdPathParams,\n conversationItemsListSchema,\n conversationObjectSchema,\n createConversationBodySchema,\n} from '../schemas/conversations';\nimport type { ConversationDeleted, ConversationItemsList, ConversationObject } from '../schemas/conversations';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport { getAgentFromSystem } from './agents';\nimport { handleError } from './error';\nimport { mapMastraMessagesToConversationItems } from './responses.adapter';\nimport { findConversationThreadAcrossAgents, getAgentMemoryStore } from './responses.storage';\nimport { getEffectiveResourceId, validateThreadOwnership } from './utils';\n\nfunction buildConversationObject({ thread }: { thread: ConversationObject['thread'] }): ConversationObject {\n return {\n id: thread.id,\n object: 'conversation',\n thread,\n };\n}\n\nfunction buildConversationItemsList(items: ConversationItemsList['data']): ConversationItemsList {\n return {\n object: 'list',\n data: items,\n first_id: items[0]?.id ?? null,\n last_id: items.at(-1)?.id ?? null,\n has_more: false,\n };\n}\n\nfunction buildConversationDeleted(conversationId: string): ConversationDeleted {\n return {\n id: conversationId,\n object: 'conversation.deleted',\n deleted: true,\n };\n}\n\nexport const CREATE_CONVERSATION_ROUTE = createRoute({\n method: 'POST',\n path: '/v1/conversations',\n responseType: 'json',\n bodySchema: createConversationBodySchema,\n responseSchema: conversationObjectSchema,\n summary: 'Create a conversation',\n description: 'Creates a new thread-backed conversation for agent-backed Responses API requests',\n tags: ['Responses'],\n requiresAuth: true,\n requiresPermission: MastraFGAPermissions.AGENTS_CREATE,\n handler: async ({ mastra, requestContext, agent_id, conversation_id, resource_id, title, metadata }) => {\n try {\n if (!mastra) {\n throw new HTTPException(500, { message: 'Mastra instance is required for conversations' });\n }\n\n const agent = await getAgentFromSystem({ mastra, agentId: agent_id });\n const memory = await agent.getMemory({ requestContext });\n if (!memory) {\n throw new HTTPException(400, { message: `Agent \"${agent.id}\" does not have memory configured` });\n }\n if (!(await getAgentMemoryStore({ agent, requestContext }))) {\n throw new HTTPException(400, { message: `Memory storage is not configured for agent \"${agent.id}\"` });\n }\n\n const threadId = conversation_id ?? globalThis.crypto.randomUUID();\n const resourceId = getEffectiveResourceId(requestContext, resource_id) ?? threadId;\n\n // Creating with an existing id upserts the thread, so validate ownership of any existing thread first\n if (conversation_id) {\n const existing = await memory.getThreadById({ threadId });\n await validateThreadOwnership(existing, getEffectiveResourceId(requestContext, undefined));\n }\n\n const thread = await memory.createThread({\n threadId,\n resourceId,\n title,\n metadata,\n });\n\n return buildConversationObject({ thread });\n } catch (error) {\n return handleError(error, 'Error creating conversation');\n }\n },\n});\n\nexport const GET_CONVERSATION_ROUTE = createRoute({\n method: 'GET',\n path: '/v1/conversations/:conversationId',\n responseType: 'json',\n pathParamSchema: conversationIdPathParams,\n responseSchema: conversationObjectSchema,\n summary: 'Retrieve a conversation',\n description: 'Returns a conversation object backed by a Mastra memory thread',\n tags: ['Responses'],\n requiresAuth: true,\n requiresPermission: MastraFGAPermissions.AGENTS_READ,\n handler: async ({ mastra, requestContext, conversationId }) => {\n try {\n const match = await findConversationThreadAcrossAgents({ mastra, conversationId, requestContext });\n if (!match) {\n throw new HTTPException(404, { message: `Conversation ${conversationId} was not found` });\n }\n\n return buildConversationObject({ thread: match.thread });\n } catch (error) {\n return handleError(error, 'Error retrieving conversation');\n }\n },\n});\n\nexport const GET_CONVERSATION_ITEMS_ROUTE = createRoute({\n method: 'GET',\n path: '/v1/conversations/:conversationId/items',\n responseType: 'json',\n pathParamSchema: conversationIdPathParams,\n responseSchema: conversationItemsListSchema,\n summary: 'List conversation items',\n description: 'Returns OpenAI-style conversation items derived from the stored thread messages',\n tags: ['Responses'],\n requiresAuth: true,\n requiresPermission: MastraFGAPermissions.AGENTS_READ,\n handler: async ({ mastra, requestContext, conversationId }) => {\n try {\n const match = await findConversationThreadAcrossAgents({ mastra, conversationId, requestContext });\n if (!match) {\n throw new HTTPException(404, { message: `Conversation ${conversationId} was not found` });\n }\n\n const { messages } = await match.memoryStore.listMessages({\n threadId: conversationId,\n page: 0,\n perPage: 1000,\n });\n\n return buildConversationItemsList(mapMastraMessagesToConversationItems(messages));\n } catch (error) {\n return handleError(error, 'Error retrieving conversation');\n }\n },\n});\n\nexport const DELETE_CONVERSATION_ROUTE = createRoute({\n method: 'DELETE',\n path: '/v1/conversations/:conversationId',\n responseType: 'json',\n pathParamSchema: conversationIdPathParams,\n responseSchema: conversationDeletedSchema,\n summary: 'Delete a conversation',\n description: 'Deletes a thread-backed conversation and its stored items',\n tags: ['Responses'],\n requiresAuth: true,\n requiresPermission: MastraFGAPermissions.AGENTS_DELETE,\n handler: async ({ mastra, requestContext, conversationId }) => {\n try {\n const match = await findConversationThreadAcrossAgents({ mastra, conversationId, requestContext });\n if (!match) {\n throw new HTTPException(404, { message: `Conversation ${conversationId} was not found` });\n }\n\n await match.memoryStore.deleteThread({ threadId: conversationId });\n\n return buildConversationDeleted(conversationId);\n } catch (error) {\n return handleError(error, 'Error deleting conversation');\n }\n },\n});\n"],"mappings":";;;;;;;;;;;;;;;;AAiBA,SAAS,wBAAwB,EAAE,UAAwE;CACzG,OAAO;EACL,IAAI,OAAO;EACX,QAAQ;EACR;CACF;AACF;AAEA,SAAS,2BAA2B,OAA6D;CAC/F,OAAO;EACL,QAAQ;EACR,MAAM;EACN,UAAU,MAAM,EAAE,EAAE,MAAM;EAC1B,SAAS,MAAM,GAAG,EAAE,CAAC,EAAE,MAAM;EAC7B,UAAU;CACZ;AACF;AAEA,SAAS,yBAAyB,gBAA6C;CAC7E,OAAO;EACL,IAAI;EACJ,QAAQ;EACR,SAAS;CACX;AACF;AAEA,MAAa,4BAA4BA,sBAAAA,YAAY;CACnD,QAAQ;CACR,MAAM;CACN,cAAc;CACd,YAAYC,sBAAAA;CACZ,gBAAgBC,sBAAAA;CAChB,SAAS;CACT,aAAa;CACb,MAAM,CAAC,WAAW;CAClB,cAAc;CACd,oBAAoBC,cAAAA,qBAAqB;CACzC,SAAS,OAAO,EAAE,QAAQ,gBAAgB,UAAU,iBAAiB,aAAa,OAAO,eAAe;EACtG,IAAI;GACF,IAAI,CAAC,QACH,MAAM,IAAIC,uBAAAA,cAAc,KAAK,EAAE,SAAS,gDAAgD,CAAC;GAG3F,MAAM,QAAQ,MAAMC,eAAAA,mBAAmB;IAAE;IAAQ,SAAS;GAAS,CAAC;GACpE,MAAM,SAAS,MAAM,MAAM,UAAU,EAAE,eAAe,CAAC;GACvD,IAAI,CAAC,QACH,MAAM,IAAID,uBAAAA,cAAc,KAAK,EAAE,SAAS,UAAU,MAAM,GAAG,mCAAmC,CAAC;GAEjG,IAAI,CAAE,MAAME,0CAAAA,oBAAoB;IAAE;IAAO;GAAe,CAAC,GACvD,MAAM,IAAIF,uBAAAA,cAAc,KAAK,EAAE,SAAS,+CAA+C,MAAM,GAAG,GAAG,CAAC;GAGtG,MAAM,WAAW,mBAAmB,WAAW,OAAO,WAAW;GACjE,MAAM,aAAaG,cAAAA,uBAAuB,gBAAgB,WAAW,KAAK;GAG1E,IAAI,iBAAiB;IACnB,MAAM,WAAW,MAAM,OAAO,cAAc,EAAE,SAAS,CAAC;IACxD,MAAMC,cAAAA,wBAAwB,UAAUD,cAAAA,uBAAuB,gBAAgB,KAAA,CAAS,CAAC;GAC3F;GASA,OAAO,wBAAwB,EAAE,QAAA,MAPZ,OAAO,aAAa;IACvC;IACA;IACA;IACA;GACF,CAAC,EAEuC,CAAC;EAC3C,SAAS,OAAO;GACd,OAAOE,8BAAAA,YAAY,OAAO,6BAA6B;EACzD;CACF;AACF,CAAC;AAED,MAAa,yBAAyBT,sBAAAA,YAAY;CAChD,QAAQ;CACR,MAAM;CACN,cAAc;CACd,iBAAiBU,sBAAAA;CACjB,gBAAgBR,sBAAAA;CAChB,SAAS;CACT,aAAa;CACb,MAAM,CAAC,WAAW;CAClB,cAAc;CACd,oBAAoBC,cAAAA,qBAAqB;CACzC,SAAS,OAAO,EAAE,QAAQ,gBAAgB,qBAAqB;EAC7D,IAAI;GACF,MAAM,QAAQ,MAAMQ,0CAAAA,mCAAmC;IAAE;IAAQ;IAAgB;GAAe,CAAC;GACjG,IAAI,CAAC,OACH,MAAM,IAAIP,uBAAAA,cAAc,KAAK,EAAE,SAAS,gBAAgB,eAAe,gBAAgB,CAAC;GAG1F,OAAO,wBAAwB,EAAE,QAAQ,MAAM,OAAO,CAAC;EACzD,SAAS,OAAO;GACd,OAAOK,8BAAAA,YAAY,OAAO,+BAA+B;EAC3D;CACF;AACF,CAAC;AAED,MAAa,+BAA+BT,sBAAAA,YAAY;CACtD,QAAQ;CACR,MAAM;CACN,cAAc;CACd,iBAAiBU,sBAAAA;CACjB,gBAAgBE,sBAAAA;CAChB,SAAS;CACT,aAAa;CACb,MAAM,CAAC,WAAW;CAClB,cAAc;CACd,oBAAoBT,cAAAA,qBAAqB;CACzC,SAAS,OAAO,EAAE,QAAQ,gBAAgB,qBAAqB;EAC7D,IAAI;GACF,MAAM,QAAQ,MAAMQ,0CAAAA,mCAAmC;IAAE;IAAQ;IAAgB;GAAe,CAAC;GACjG,IAAI,CAAC,OACH,MAAM,IAAIP,uBAAAA,cAAc,KAAK,EAAE,SAAS,gBAAgB,eAAe,gBAAgB,CAAC;GAG1F,MAAM,EAAE,aAAa,MAAM,MAAM,YAAY,aAAa;IACxD,UAAU;IACV,MAAM;IACN,SAAS;GACX,CAAC;GAED,OAAO,2BAA2BS,0CAAAA,qCAAqC,QAAQ,CAAC;EAClF,SAAS,OAAO;GACd,OAAOJ,8BAAAA,YAAY,OAAO,+BAA+B;EAC3D;CACF;AACF,CAAC;AAED,MAAa,4BAA4BT,sBAAAA,YAAY;CACnD,QAAQ;CACR,MAAM;CACN,cAAc;CACd,iBAAiBU,sBAAAA;CACjB,gBAAgBI,sBAAAA;CAChB,SAAS;CACT,aAAa;CACb,MAAM,CAAC,WAAW;CAClB,cAAc;CACd,oBAAoBX,cAAAA,qBAAqB;CACzC,SAAS,OAAO,EAAE,QAAQ,gBAAgB,qBAAqB;EAC7D,IAAI;GACF,MAAM,QAAQ,MAAMQ,0CAAAA,mCAAmC;IAAE;IAAQ;IAAgB;GAAe,CAAC;GACjG,IAAI,CAAC,OACH,MAAM,IAAIP,uBAAAA,cAAc,KAAK,EAAE,SAAS,gBAAgB,eAAe,gBAAgB,CAAC;GAG1F,MAAM,MAAM,YAAY,aAAa,EAAE,UAAU,eAAe,CAAC;GAEjE,OAAO,yBAAyB,cAAc;EAChD,SAAS,OAAO;GACd,OAAOK,8BAAAA,YAAY,OAAO,6BAA6B;EACzD;CACF;AACF,CAAC"}
1
+ {"version":3,"file":"conversations-CJn0ioOZ.cjs","names":["createRoute","createConversationBodySchema","conversationObjectSchema","MastraFGAPermissions","HTTPException","getAgentFromSystem","getAgentMemoryStore","getEffectiveResourceId","validateThreadOwnership","handleError","conversationIdPathParams","findConversationThreadAcrossAgents","conversationItemsListSchema","mapMastraMessagesToConversationItems","conversationDeletedSchema"],"sources":["../src/server/handlers/conversations.ts"],"sourcesContent":["import { MastraFGAPermissions } from '../fga-permissions';\nimport { HTTPException } from '../http-exception';\nimport {\n conversationDeletedSchema,\n conversationIdPathParams,\n conversationItemsListSchema,\n conversationObjectSchema,\n createConversationBodySchema,\n} from '../schemas/conversations';\nimport type { ConversationDeleted, ConversationItemsList, ConversationObject } from '../schemas/conversations';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport { getAgentFromSystem } from './agents';\nimport { handleError } from './error';\nimport { mapMastraMessagesToConversationItems } from './responses.adapter';\nimport { findConversationThreadAcrossAgents, getAgentMemoryStore } from './responses.storage';\nimport { getEffectiveResourceId, validateThreadOwnership } from './utils';\n\nfunction buildConversationObject({ thread }: { thread: ConversationObject['thread'] }): ConversationObject {\n return {\n id: thread.id,\n object: 'conversation',\n thread,\n };\n}\n\nfunction buildConversationItemsList(items: ConversationItemsList['data']): ConversationItemsList {\n return {\n object: 'list',\n data: items,\n first_id: items[0]?.id ?? null,\n last_id: items.at(-1)?.id ?? null,\n has_more: false,\n };\n}\n\nfunction buildConversationDeleted(conversationId: string): ConversationDeleted {\n return {\n id: conversationId,\n object: 'conversation.deleted',\n deleted: true,\n };\n}\n\nexport const CREATE_CONVERSATION_ROUTE = createRoute({\n method: 'POST',\n path: '/v1/conversations',\n responseType: 'json',\n bodySchema: createConversationBodySchema,\n responseSchema: conversationObjectSchema,\n summary: 'Create a conversation',\n description: 'Creates a new thread-backed conversation for agent-backed Responses API requests',\n tags: ['Responses'],\n requiresAuth: true,\n requiresPermission: MastraFGAPermissions.AGENTS_CREATE,\n handler: async ({ mastra, requestContext, agent_id, conversation_id, resource_id, title, metadata }) => {\n try {\n if (!mastra) {\n throw new HTTPException(500, { message: 'Mastra instance is required for conversations' });\n }\n\n const agent = await getAgentFromSystem({ mastra, agentId: agent_id });\n const memory = await agent.getMemory({ requestContext });\n if (!memory) {\n throw new HTTPException(400, { message: `Agent \"${agent.id}\" does not have memory configured` });\n }\n if (!(await getAgentMemoryStore({ agent, requestContext }))) {\n throw new HTTPException(400, { message: `Memory storage is not configured for agent \"${agent.id}\"` });\n }\n\n const threadId = conversation_id ?? globalThis.crypto.randomUUID();\n const resourceId = getEffectiveResourceId(requestContext, resource_id) ?? threadId;\n\n // Creating with an existing id upserts the thread, so validate ownership of any existing thread first\n if (conversation_id) {\n const existing = await memory.getThreadById({ threadId });\n await validateThreadOwnership(existing, getEffectiveResourceId(requestContext, undefined));\n }\n\n const thread = await memory.createThread({\n threadId,\n resourceId,\n title,\n metadata,\n });\n\n return buildConversationObject({ thread });\n } catch (error) {\n return handleError(error, 'Error creating conversation');\n }\n },\n});\n\nexport const GET_CONVERSATION_ROUTE = createRoute({\n method: 'GET',\n path: '/v1/conversations/:conversationId',\n responseType: 'json',\n pathParamSchema: conversationIdPathParams,\n responseSchema: conversationObjectSchema,\n summary: 'Retrieve a conversation',\n description: 'Returns a conversation object backed by a Mastra memory thread',\n tags: ['Responses'],\n requiresAuth: true,\n requiresPermission: MastraFGAPermissions.AGENTS_READ,\n handler: async ({ mastra, requestContext, conversationId }) => {\n try {\n const match = await findConversationThreadAcrossAgents({ mastra, conversationId, requestContext });\n if (!match) {\n throw new HTTPException(404, { message: `Conversation ${conversationId} was not found` });\n }\n\n return buildConversationObject({ thread: match.thread });\n } catch (error) {\n return handleError(error, 'Error retrieving conversation');\n }\n },\n});\n\nexport const GET_CONVERSATION_ITEMS_ROUTE = createRoute({\n method: 'GET',\n path: '/v1/conversations/:conversationId/items',\n responseType: 'json',\n pathParamSchema: conversationIdPathParams,\n responseSchema: conversationItemsListSchema,\n summary: 'List conversation items',\n description: 'Returns OpenAI-style conversation items derived from the stored thread messages',\n tags: ['Responses'],\n requiresAuth: true,\n requiresPermission: MastraFGAPermissions.AGENTS_READ,\n handler: async ({ mastra, requestContext, conversationId }) => {\n try {\n const match = await findConversationThreadAcrossAgents({ mastra, conversationId, requestContext });\n if (!match) {\n throw new HTTPException(404, { message: `Conversation ${conversationId} was not found` });\n }\n\n const { messages } = await match.memoryStore.listMessages({\n threadId: conversationId,\n page: 0,\n perPage: 1000,\n });\n\n return buildConversationItemsList(mapMastraMessagesToConversationItems(messages));\n } catch (error) {\n return handleError(error, 'Error retrieving conversation');\n }\n },\n});\n\nexport const DELETE_CONVERSATION_ROUTE = createRoute({\n method: 'DELETE',\n path: '/v1/conversations/:conversationId',\n responseType: 'json',\n pathParamSchema: conversationIdPathParams,\n responseSchema: conversationDeletedSchema,\n summary: 'Delete a conversation',\n description: 'Deletes a thread-backed conversation and its stored items',\n tags: ['Responses'],\n requiresAuth: true,\n requiresPermission: MastraFGAPermissions.AGENTS_DELETE,\n handler: async ({ mastra, requestContext, conversationId }) => {\n try {\n const match = await findConversationThreadAcrossAgents({ mastra, conversationId, requestContext });\n if (!match) {\n throw new HTTPException(404, { message: `Conversation ${conversationId} was not found` });\n }\n\n await match.memoryStore.deleteThread({ threadId: conversationId });\n\n return buildConversationDeleted(conversationId);\n } catch (error) {\n return handleError(error, 'Error deleting conversation');\n }\n },\n});\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { C as getThreadByIdResponseSchema } from "./memory-CZ2ELVP0.js";
1
+ import { C as getThreadByIdResponseSchema } from "./memory-CCEjoCF6.js";
2
2
  import { n as conversationItemSchema } from "./responses-D-fsDRLd.js";
3
3
  import z from "zod";
4
4
  // src/server/schemas/conversations.ts
@@ -29,4 +29,4 @@ const conversationItemsListSchema = z.object({
29
29
  });
30
30
  export { createConversationBodySchema as a, conversationObjectSchema as i, conversationIdPathParams as n, conversationItemsListSchema as r, conversationDeletedSchema as t };
31
31
 
32
- //# sourceMappingURL=conversations-nNko6-H4.js.map
32
+ //# sourceMappingURL=conversations-DHrKTI6x.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"conversations-nNko6-H4.js","names":[],"sources":["../src/server/schemas/conversations.ts"],"sourcesContent":["import z from 'zod';\nimport { getThreadByIdResponseSchema } from './memory';\nimport { conversationItemSchema } from './responses';\n\nexport const conversationIdPathParams = z.object({\n conversationId: z.string().describe('Unique identifier for the conversation thread'),\n});\n\nexport const createConversationBodySchema = z.object({\n agent_id: z.string().describe('Mastra agent ID used to create the conversation thread'),\n conversation_id: z.string().optional().describe('Optional conversation ID to use as the raw threadId'),\n resource_id: z.string().optional().describe('Optional resource ID to associate with the conversation'),\n title: z.string().optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport type CreateConversationBody = z.infer<typeof createConversationBodySchema>;\n\nexport const conversationObjectSchema = z.object({\n id: z.string(),\n object: z.literal('conversation'),\n thread: getThreadByIdResponseSchema,\n});\n\nexport const conversationDeletedSchema = z.object({\n id: z.string(),\n object: z.literal('conversation.deleted'),\n deleted: z.literal(true),\n});\n\nexport const conversationItemsListSchema = z.object({\n object: z.literal('list'),\n data: z.array(conversationItemSchema),\n first_id: z.string().nullable(),\n last_id: z.string().nullable(),\n has_more: z.boolean(),\n});\n\nexport type ConversationObject = z.infer<typeof conversationObjectSchema>;\nexport type ConversationItemsList = z.infer<typeof conversationItemsListSchema>;\nexport type ConversationDeleted = z.infer<typeof conversationDeletedSchema>;\n"],"mappings":";;;;AAIA,MAAa,2BAA2B,EAAE,OAAO,EAC/C,gBAAgB,EAAE,OAAO,CAAC,CAAC,SAAS,+CAA+C,EACrF,CAAC;AAED,MAAa,+BAA+B,EAAE,OAAO;CACnD,UAAU,EAAE,OAAO,CAAC,CAAC,SAAS,wDAAwD;CACtF,iBAAiB,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,qDAAqD;CACrG,aAAa,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,yDAAyD;CACrG,OAAO,EAAE,OAAO,CAAC,CAAC,SAAS;CAC3B,UAAU,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS;AACvD,CAAC;AAID,MAAa,2BAA2B,EAAE,OAAO;CAC/C,IAAI,EAAE,OAAO;CACb,QAAQ,EAAE,QAAQ,cAAc;CAChC,QAAQ;AACV,CAAC;AAED,MAAa,4BAA4B,EAAE,OAAO;CAChD,IAAI,EAAE,OAAO;CACb,QAAQ,EAAE,QAAQ,sBAAsB;CACxC,SAAS,EAAE,QAAQ,IAAI;AACzB,CAAC;AAED,MAAa,8BAA8B,EAAE,OAAO;CAClD,QAAQ,EAAE,QAAQ,MAAM;CACxB,MAAM,EAAE,MAAM,sBAAsB;CACpC,UAAU,EAAE,OAAO,CAAC,CAAC,SAAS;CAC9B,SAAS,EAAE,OAAO,CAAC,CAAC,SAAS;CAC7B,UAAU,EAAE,QAAQ;AACtB,CAAC"}
1
+ {"version":3,"file":"conversations-DHrKTI6x.js","names":[],"sources":["../src/server/schemas/conversations.ts"],"sourcesContent":["import z from 'zod';\nimport { getThreadByIdResponseSchema } from './memory';\nimport { conversationItemSchema } from './responses';\n\nexport const conversationIdPathParams = z.object({\n conversationId: z.string().describe('Unique identifier for the conversation thread'),\n});\n\nexport const createConversationBodySchema = z.object({\n agent_id: z.string().describe('Mastra agent ID used to create the conversation thread'),\n conversation_id: z.string().optional().describe('Optional conversation ID to use as the raw threadId'),\n resource_id: z.string().optional().describe('Optional resource ID to associate with the conversation'),\n title: z.string().optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport type CreateConversationBody = z.infer<typeof createConversationBodySchema>;\n\nexport const conversationObjectSchema = z.object({\n id: z.string(),\n object: z.literal('conversation'),\n thread: getThreadByIdResponseSchema,\n});\n\nexport const conversationDeletedSchema = z.object({\n id: z.string(),\n object: z.literal('conversation.deleted'),\n deleted: z.literal(true),\n});\n\nexport const conversationItemsListSchema = z.object({\n object: z.literal('list'),\n data: z.array(conversationItemSchema),\n first_id: z.string().nullable(),\n last_id: z.string().nullable(),\n has_more: z.boolean(),\n});\n\nexport type ConversationObject = z.infer<typeof conversationObjectSchema>;\nexport type ConversationItemsList = z.infer<typeof conversationItemsListSchema>;\nexport type ConversationDeleted = z.infer<typeof conversationDeletedSchema>;\n"],"mappings":";;;;AAIA,MAAa,2BAA2B,EAAE,OAAO,EAC/C,gBAAgB,EAAE,OAAO,CAAC,CAAC,SAAS,+CAA+C,EACrF,CAAC;AAED,MAAa,+BAA+B,EAAE,OAAO;CACnD,UAAU,EAAE,OAAO,CAAC,CAAC,SAAS,wDAAwD;CACtF,iBAAiB,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,qDAAqD;CACrG,aAAa,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,yDAAyD;CACrG,OAAO,EAAE,OAAO,CAAC,CAAC,SAAS;CAC3B,UAAU,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS;AACvD,CAAC;AAID,MAAa,2BAA2B,EAAE,OAAO;CAC/C,IAAI,EAAE,OAAO;CACb,QAAQ,EAAE,QAAQ,cAAc;CAChC,QAAQ;AACV,CAAC;AAED,MAAa,4BAA4B,EAAE,OAAO;CAChD,IAAI,EAAE,OAAO;CACb,QAAQ,EAAE,QAAQ,sBAAsB;CACxC,SAAS,EAAE,QAAQ,IAAI;AACzB,CAAC;AAED,MAAa,8BAA8B,EAAE,OAAO;CAClD,QAAQ,EAAE,QAAQ,MAAM;CACxB,MAAM,EAAE,MAAM,sBAAsB;CACpC,UAAU,EAAE,OAAO,CAAC,CAAC,SAAS;CAC9B,SAAS,EAAE,OAAO,CAAC,CAAC,SAAS;CAC7B,UAAU,EAAE,QAAQ;AACtB,CAAC"}
@@ -1,4 +1,4 @@
1
- import { i as createPagePaginationSchema, s as paginationInfoSchema } from "./common-xUmaFUop.js";
1
+ import { i as createPagePaginationSchema, s as paginationInfoSchema } from "./common-J-yUnHk9.js";
2
2
  import { z } from "zod/v4";
3
3
  // src/server/schemas/datasets.ts
4
4
  const jsonSchemaObject = z.lazy(() => z.record(z.string(), z.unknown()));
@@ -737,4 +737,4 @@ const clusterFailuresResponseSchema = z.object({
737
737
  });
738
738
  export { listDatasetVersionsResponseSchema as A, paginationQuerySchema as B, experimentResultResponseSchema as C, generateItemsResponseSchema as D, generateItemsBodySchema as E, listExperimentsQuerySchema as F, scorerResultSchema as G, runExperimentItemBodySchema as H, listExperimentsResponseSchema as I, triggerExperimentBodySchema as J, submitExperimentResultBodySchema as K, listItemVersionsResponseSchema as L, listDatasetsResponseSchema as M, listExperimentResultsQuerySchema as N, itemIdPathParams as O, listExperimentResultsResponseSchema as P, updateItemBodySchema as Q, listItemsQuerySchema as R, experimentResultIdPathParams as S, experimentSummaryResponseSchema as T, runExperimentItemResponseSchema as U, reviewSummaryResponseSchema as V, scorerExperimentOutputSchema as W, updateExperimentBodySchema as X, updateDatasetBodySchema as Y, updateExperimentResultBodySchema as Z, datasetItemVersionPathParams as _, batchInsertItemsBodySchema as a, experimentIdPathParams as b, clusterFailuresResponseSchema as c, createDatasetBodySchema as d, datasetAndExperimentIdPathParams as f, datasetItemResponseSchema as g, datasetIdPathParams as h, batchDeleteItemsResponseSchema as i, listDatasetsQuerySchema as j, itemVersionResponseSchema as k, compareExperimentsBodySchema as l, datasetExperimentAndItemIdPathParams as m, agentExperimentOutputSchema as n, batchInsertItemsResponseSchema as o, datasetAndItemIdPathParams as p, tenancyQuerySchema as q, batchDeleteItemsBodySchema as r, clusterFailuresBodySchema as s, addItemBodySchema as t, comparisonResponseSchema as u, datasetResponseSchema as v, experimentReviewCountsSchema as w, experimentResponseSchema as x, datasetVersionResponseSchema as y, listItemsResponseSchema as z };
739
739
 
740
- //# sourceMappingURL=datasets-hLmYapTk.js.map
740
+ //# sourceMappingURL=datasets--F0QkdGX.js.map