@mastra/server 1.82.0-alpha.1 → 1.82.0-alpha.2

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 (337) hide show
  1. package/dist/_types/{@internal_voice/dist/_types/@internal_core → @internal_voice@0.0.43/dist/_types/@internal_core@0.1.4}/dist/routes/index.d.ts +1 -1
  2. package/dist/_types/{@internal_voice → @internal_voice@0.0.43}/dist/routes/index.d.ts +15 -15
  3. package/dist/_types/{@mastra_schema-compat/dist/_types/@internal_ai-sdk-v4 → @mastra_schema-compat@1.3.17/dist/_types/@internal_ai-sdk-v4@0.0.94}/dist/index.d.ts +1 -1
  4. package/dist/_types/{@mastra_schema-compat/dist/_types/@internal_ai-sdk-v5 → @mastra_schema-compat@1.3.17/dist/_types/@internal_ai-sdk-v5@0.0.94}/dist/index.d.ts +1 -1
  5. package/dist/_types/{@mastra_schema-compat/dist/_types/@internal_ai-v6 → @mastra_schema-compat@1.3.17/dist/_types/@internal_ai-v6@0.0.94}/dist/index.d.ts +1 -1
  6. package/dist/_types/{@mastra_schema-compat → @mastra_schema-compat@1.3.17}/dist/provider-compats/anthropic.d.ts +2 -2
  7. package/dist/_types/{@mastra_schema-compat → @mastra_schema-compat@1.3.17}/dist/provider-compats/deepseek.d.ts +2 -2
  8. package/dist/_types/{@mastra_schema-compat → @mastra_schema-compat@1.3.17}/dist/provider-compats/google.d.ts +1 -1
  9. package/dist/_types/{@mastra_schema-compat → @mastra_schema-compat@1.3.17}/dist/provider-compats/meta.d.ts +2 -2
  10. package/dist/_types/{@mastra_schema-compat → @mastra_schema-compat@1.3.17}/dist/provider-compats/openai.d.ts +1 -1
  11. package/dist/_types/{@mastra_schema-compat → @mastra_schema-compat@1.3.17}/dist/schema.types.d.ts +4 -4
  12. package/dist/_types/{@mastra_schema-compat → @mastra_schema-compat@1.3.17}/dist/standard-schema/standard-schema.d.ts +2 -2
  13. package/dist/_types/{@mastra_schema-compat → @mastra_schema-compat@1.3.17}/dist/standard-schema/standard-schema.types.d.ts +1 -1
  14. package/dist/_types/{@mastra_schema-compat → @mastra_schema-compat@1.3.17}/dist/zod-to-json.d.ts +1 -1
  15. package/dist/{a2a-CIq9dtbC.cjs → a2a-CNfj0wRr.cjs} +2 -2
  16. package/dist/{a2a-CIq9dtbC.cjs.map → a2a-CNfj0wRr.cjs.map} +1 -1
  17. package/dist/{a2a-DULF2hBd.js → a2a-C_2w6OWn.js} +2 -2
  18. package/dist/{a2a-DULF2hBd.js.map → a2a-C_2w6OWn.js.map} +1 -1
  19. package/dist/{agent-builder-C1SGph1p.cjs → agent-builder-B7B1DSP9.cjs} +4 -4
  20. package/dist/{agent-builder-C1SGph1p.cjs.map → agent-builder-B7B1DSP9.cjs.map} +1 -1
  21. package/dist/{agent-builder-Cq-jo2FP.js → agent-builder-CrFZJ1mg.js} +4 -4
  22. package/dist/{agent-builder-Cq-jo2FP.js.map → agent-builder-CrFZJ1mg.js.map} +1 -1
  23. package/dist/{agent-versions-DX2rd6j_.cjs → agent-versions-BccL4mEW.cjs} +2 -2
  24. package/dist/{agent-versions-DX2rd6j_.cjs.map → agent-versions-BccL4mEW.cjs.map} +1 -1
  25. package/dist/{agent-versions-TUl6ky5W.js → agent-versions-DFJyxWY1.js} +2 -2
  26. package/dist/{agent-versions-TUl6ky5W.js.map → agent-versions-DFJyxWY1.js.map} +1 -1
  27. package/dist/{agents-B5kq2QEV.js → agents-BXqMKoOz.js} +3 -2
  28. package/dist/agents-BXqMKoOz.js.map +1 -0
  29. package/dist/{agents-SvkxJW48.cjs → agents-Cp4FBxQB.cjs} +107 -15
  30. package/dist/agents-Cp4FBxQB.cjs.map +1 -0
  31. package/dist/{agents-NRBk4JAs.js → agents-DPvMjiDf.js} +109 -17
  32. package/dist/agents-DPvMjiDf.js.map +1 -0
  33. package/dist/{agents-Cel1sffU.cjs → agents-DbnPZXIN.cjs} +3 -2
  34. package/dist/agents-DbnPZXIN.cjs.map +1 -0
  35. package/dist/{api-schema-manifest-C8E9EB-q.js → api-schema-manifest-BTfM-0md.js} +2 -2
  36. package/dist/{api-schema-manifest-C8E9EB-q.js.map → api-schema-manifest-BTfM-0md.js.map} +1 -1
  37. package/dist/{api-schema-manifest-CNjDZrQ8.cjs → api-schema-manifest-C55f0tmn.cjs} +2 -2
  38. package/dist/{api-schema-manifest-CNjDZrQ8.cjs.map → api-schema-manifest-C55f0tmn.cjs.map} +1 -1
  39. package/dist/{background-tasks-DhQ6upHK.js → background-tasks-BHhn4YZA.js} +42 -3
  40. package/dist/background-tasks-BHhn4YZA.js.map +1 -0
  41. package/dist/{background-tasks-Kcx2YtW0.cjs → background-tasks-Ci2tlxJC.cjs} +47 -2
  42. package/dist/background-tasks-Ci2tlxJC.cjs.map +1 -0
  43. package/dist/{conversations-Ds6aiCMU.cjs → conversations-6DxLemUg.cjs} +2 -2
  44. package/dist/{conversations-Ds6aiCMU.cjs.map → conversations-6DxLemUg.cjs.map} +1 -1
  45. package/dist/{conversations-CVvZOu1K.js → conversations-DDMCe7th.js} +2 -2
  46. package/dist/{conversations-CVvZOu1K.js.map → conversations-DDMCe7th.js.map} +1 -1
  47. package/dist/{dist-Ch5YGldj.cjs → dist-CjEJaGGe.cjs} +1 -1
  48. package/dist/{dist-CPj7ZQaO.cjs → dist-CzWU4AmA.cjs} +9 -8
  49. package/dist/dist-CzWU4AmA.cjs.map +1 -0
  50. package/dist/{dist-DC2mND12.js → dist-DDo4vt34.js} +9 -8
  51. package/dist/dist-DDo4vt34.js.map +1 -0
  52. package/dist/dist-FafoYsHK.js +1 -0
  53. package/dist/docs/SKILL.md +1 -1
  54. package/dist/docs/assets/SOURCE_MAP.json +1 -1
  55. package/dist/docs/references/reference-observability-tracing-advanced-queries.md +31 -11
  56. package/dist/{editor-builder-CcSeAW18.cjs → editor-builder-BO0Pebws.cjs} +3 -3
  57. package/dist/{editor-builder-CcSeAW18.cjs.map → editor-builder-BO0Pebws.cjs.map} +1 -1
  58. package/dist/{editor-builder-B8Mf4kJo.cjs → editor-builder-BaI8pttR.cjs} +2 -2
  59. package/dist/{editor-builder-B8Mf4kJo.cjs.map → editor-builder-BaI8pttR.cjs.map} +1 -1
  60. package/dist/{editor-builder-PKGDfYNc.js → editor-builder-Bln4Pg1U.js} +2 -2
  61. package/dist/{editor-builder-PKGDfYNc.js.map → editor-builder-Bln4Pg1U.js.map} +1 -1
  62. package/dist/{editor-builder-BG38irXi.js → editor-builder-CuT_ltBK.js} +3 -3
  63. package/dist/{editor-builder-BG38irXi.js.map → editor-builder-CuT_ltBK.js.map} +1 -1
  64. package/dist/{observability-dUv60Mzz.cjs → observability-BtdW6mjq.cjs} +2 -2
  65. package/dist/{observability-dUv60Mzz.cjs.map → observability-BtdW6mjq.cjs.map} +1 -1
  66. package/dist/{observability-BS5rmyEH.js → observability-DBtyAJnb.js} +2 -2
  67. package/dist/{observability-BS5rmyEH.js.map → observability-DBtyAJnb.js.map} +1 -1
  68. package/dist/{observability-new-endpoints-BORkWc9f.js → observability-new-endpoints-Di7m_-xc.js} +9 -9
  69. package/dist/observability-new-endpoints-Di7m_-xc.js.map +1 -0
  70. package/dist/{observability-new-endpoints-KJCQZLZr.cjs → observability-new-endpoints-jjCgXuTF.cjs} +8 -8
  71. package/dist/observability-new-endpoints-jjCgXuTF.cjs.map +1 -0
  72. package/dist/{plans-Cq23qQ48.cjs → plans-UPUTbvxx.cjs} +3 -3
  73. package/dist/{plans-Cq23qQ48.cjs.map → plans-UPUTbvxx.cjs.map} +1 -1
  74. package/dist/{plans-BRf1-Sch.js → plans-k4FuteiT.js} +3 -3
  75. package/dist/{plans-BRf1-Sch.js.map → plans-k4FuteiT.js.map} +1 -1
  76. package/dist/{probe-image-size-CSrQj2gm.cjs → probe-image-size-BRHrC0Va.cjs} +2 -2
  77. package/dist/{probe-image-size-CSrQj2gm.cjs.map → probe-image-size-BRHrC0Va.cjs.map} +1 -1
  78. package/dist/{probe-image-size-ssYltjkF.js → probe-image-size-BmIt3CH4.js} +2 -2
  79. package/dist/{probe-image-size-ssYltjkF.js.map → probe-image-size-BmIt3CH4.js.map} +1 -1
  80. package/dist/{responses-CGy87E_N.js → responses-C8HCkptA.js} +2 -2
  81. package/dist/{responses-CGy87E_N.js.map → responses-C8HCkptA.js.map} +1 -1
  82. package/dist/{responses-CPTdr5VE.cjs → responses-opDOcZYI.cjs} +2 -2
  83. package/dist/{responses-CPTdr5VE.cjs.map → responses-opDOcZYI.cjs.map} +1 -1
  84. package/dist/{routes-X0Gh3f3T.js → routes-BCoCimCB.js} +17 -16
  85. package/dist/routes-BCoCimCB.js.map +1 -0
  86. package/dist/{routes-DSBYmGyo.cjs → routes-FKc6a2N0.cjs} +17 -16
  87. package/dist/routes-FKc6a2N0.cjs.map +1 -0
  88. package/dist/{scorer-versions-DIcWTIgC.js → scorer-versions-BZ58s09W.js} +2 -2
  89. package/dist/{scorer-versions-DIcWTIgC.js.map → scorer-versions-BZ58s09W.js.map} +1 -1
  90. package/dist/{scorer-versions-BOjrlIcM.cjs → scorer-versions-vQVWyYWA.cjs} +2 -2
  91. package/dist/{scorer-versions-BOjrlIcM.cjs.map → scorer-versions-vQVWyYWA.cjs.map} +1 -1
  92. package/dist/{scores-BZ0Iz_0O.cjs → scores-CNMXAquK.cjs} +2 -2
  93. package/dist/{scores-BZ0Iz_0O.cjs.map → scores-CNMXAquK.cjs.map} +1 -1
  94. package/dist/{scores-DqSDYRs0.js → scores-CrpJomkR.js} +2 -2
  95. package/dist/{scores-DqSDYRs0.js.map → scores-CrpJomkR.js.map} +1 -1
  96. package/dist/server/handlers/a2a.cjs +1 -1
  97. package/dist/server/handlers/a2a.js +1 -1
  98. package/dist/server/handlers/agent-builder.cjs +1 -1
  99. package/dist/server/handlers/agent-builder.js +1 -1
  100. package/dist/server/handlers/agent-versions.cjs +1 -1
  101. package/dist/server/handlers/agent-versions.js +1 -1
  102. package/dist/server/handlers/agents.cjs +1 -1
  103. package/dist/server/handlers/agents.d.ts +18 -0
  104. package/dist/server/handlers/agents.d.ts.map +1 -1
  105. package/dist/server/handlers/agents.js +1 -1
  106. package/dist/server/handlers/background-tasks.cjs +2 -1
  107. package/dist/server/handlers/background-tasks.d.ts +89 -0
  108. package/dist/server/handlers/background-tasks.d.ts.map +1 -1
  109. package/dist/server/handlers/background-tasks.js +1 -1
  110. package/dist/server/handlers/conversations.cjs +1 -1
  111. package/dist/server/handlers/conversations.js +1 -1
  112. package/dist/server/handlers/editor-builder.cjs +1 -1
  113. package/dist/server/handlers/editor-builder.js +1 -1
  114. package/dist/server/handlers/favorites-enrichment.cjs +1 -1
  115. package/dist/server/handlers/favorites-enrichment.js +1 -1
  116. package/dist/server/handlers/observability-new-endpoints.cjs +1 -1
  117. package/dist/server/handlers/observability-new-endpoints.d.ts +248 -244
  118. package/dist/server/handlers/observability-new-endpoints.d.ts.map +1 -1
  119. package/dist/server/handlers/observability-new-endpoints.js +1 -1
  120. package/dist/server/handlers/observability-shared.cjs +19 -16
  121. package/dist/server/handlers/observability-shared.cjs.map +1 -1
  122. package/dist/server/handlers/observability-shared.d.ts +3 -3
  123. package/dist/server/handlers/observability-shared.d.ts.map +1 -1
  124. package/dist/server/handlers/observability-shared.js +18 -14
  125. package/dist/server/handlers/observability-shared.js.map +1 -1
  126. package/dist/server/handlers/observability.cjs +2 -2
  127. package/dist/server/handlers/observability.js +2 -2
  128. package/dist/server/handlers/plans.cjs +1 -1
  129. package/dist/server/handlers/plans.js +1 -1
  130. package/dist/server/handlers/responses.cjs +1 -1
  131. package/dist/server/handlers/responses.js +1 -1
  132. package/dist/server/handlers/scorer-versions.cjs +1 -1
  133. package/dist/server/handlers/scorer-versions.js +1 -1
  134. package/dist/server/handlers/scores.cjs +1 -1
  135. package/dist/server/handlers/scores.js +1 -1
  136. package/dist/server/handlers/stored-agent-favorites.cjs +2 -2
  137. package/dist/server/handlers/stored-agent-favorites.js +2 -2
  138. package/dist/server/handlers/stored-agents.cjs +29 -10
  139. package/dist/server/handlers/stored-agents.cjs.map +1 -1
  140. package/dist/server/handlers/stored-agents.d.ts +56 -0
  141. package/dist/server/handlers/stored-agents.d.ts.map +1 -1
  142. package/dist/server/handlers/stored-agents.js +29 -10
  143. package/dist/server/handlers/stored-agents.js.map +1 -1
  144. package/dist/server/handlers/stored-scorers.cjs +1 -1
  145. package/dist/server/handlers/stored-scorers.js +1 -1
  146. package/dist/server/handlers/stored-skill-favorites.cjs +1 -1
  147. package/dist/server/handlers/stored-skill-favorites.js +1 -1
  148. package/dist/server/handlers/stored-skills.cjs +1 -1
  149. package/dist/server/handlers/stored-skills.js +1 -1
  150. package/dist/server/handlers/system.cjs +2 -2
  151. package/dist/server/handlers/system.d.ts +2 -0
  152. package/dist/server/handlers/system.d.ts.map +1 -1
  153. package/dist/server/handlers/system.js +2 -2
  154. package/dist/server/handlers/tools.cjs +1 -1
  155. package/dist/server/handlers/tools.js +1 -1
  156. package/dist/server/handlers/workflow-builder.cjs +1 -1
  157. package/dist/server/handlers/workflow-builder.js +1 -1
  158. package/dist/server/handlers/workflows.cjs +1 -1
  159. package/dist/server/handlers/workflows.js +1 -1
  160. package/dist/server/handlers.cjs +10 -10
  161. package/dist/server/handlers.js +10 -10
  162. package/dist/server/schemas/agents.d.ts +4 -1
  163. package/dist/server/schemas/agents.d.ts.map +1 -1
  164. package/dist/server/schemas/background-tasks.d.ts +6 -0
  165. package/dist/server/schemas/background-tasks.d.ts.map +1 -1
  166. package/dist/server/schemas/feedback.d.ts +3 -3
  167. package/dist/server/schemas/index.cjs +7 -7
  168. package/dist/server/schemas/index.js +7 -7
  169. package/dist/server/schemas/stored-agents.d.ts +70 -0
  170. package/dist/server/schemas/stored-agents.d.ts.map +1 -1
  171. package/dist/server/schemas/system.d.ts +2 -0
  172. package/dist/server/schemas/system.d.ts.map +1 -1
  173. package/dist/server/server-adapter/api-schema-manifest.d.ts +1 -1
  174. package/dist/server/server-adapter/index.cjs +1 -1
  175. package/dist/server/server-adapter/index.js +1 -1
  176. package/dist/server/server-adapter/openapi-utils.d.ts +1 -1
  177. package/dist/server/server-adapter/routes/background-tasks.d.ts.map +1 -1
  178. package/dist/server/server-adapter/routes/observability.d.ts +124 -122
  179. package/dist/server/server-adapter/routes/observability.d.ts.map +1 -1
  180. package/dist/server/server-adapter/routes/system.d.ts +2 -0
  181. package/dist/server/server-adapter/routes/system.d.ts.map +1 -1
  182. package/dist/{stored-agents-C9zCintA.js → stored-agents-DA8Zx6o9.js} +10 -1
  183. package/dist/stored-agents-DA8Zx6o9.js.map +1 -0
  184. package/dist/{stored-agents-LCHZldYH.cjs → stored-agents-TQ2lIFbx.cjs} +10 -1
  185. package/dist/stored-agents-TQ2lIFbx.cjs.map +1 -0
  186. package/dist/{stored-scorers-Dz9vAQcr.js → stored-scorers-DhOq8ZQC.js} +2 -2
  187. package/dist/{stored-scorers-Dz9vAQcr.js.map → stored-scorers-DhOq8ZQC.js.map} +1 -1
  188. package/dist/{stored-scorers-DxQds4_y.cjs → stored-scorers-FJOs5774.cjs} +2 -2
  189. package/dist/{stored-scorers-DxQds4_y.cjs.map → stored-scorers-FJOs5774.cjs.map} +1 -1
  190. package/dist/{system-B0_hRqFE.js → system-DT0pqJSk.js} +2 -1
  191. package/dist/system-DT0pqJSk.js.map +1 -0
  192. package/dist/{system-iruN6xnj.cjs → system-eeBLPCu1.cjs} +2 -1
  193. package/dist/system-eeBLPCu1.cjs.map +1 -0
  194. package/dist/{tools-DtRHH9Hr.cjs → tools-C6TLcPmD.cjs} +3 -3
  195. package/dist/{tools-DtRHH9Hr.cjs.map → tools-C6TLcPmD.cjs.map} +1 -1
  196. package/dist/{tools-CtELrYsA.js → tools-DP3yJsX7.js} +3 -3
  197. package/dist/{tools-CtELrYsA.js.map → tools-DP3yJsX7.js.map} +1 -1
  198. package/dist/{workflow-builder-6I2HiKcF.js → workflow-builder-CaSfD6oL.js} +3 -3
  199. package/dist/{workflow-builder-6I2HiKcF.js.map → workflow-builder-CaSfD6oL.js.map} +1 -1
  200. package/dist/{workflow-builder-CQzvZvwC.cjs → workflow-builder-tr_D_ZDN.cjs} +3 -3
  201. package/dist/{workflow-builder-CQzvZvwC.cjs.map → workflow-builder-tr_D_ZDN.cjs.map} +1 -1
  202. package/dist/{workflows-DgSo-eBG.cjs → workflows-CJxQkruy.cjs} +2 -2
  203. package/dist/{workflows-DgSo-eBG.cjs.map → workflows-CJxQkruy.cjs.map} +1 -1
  204. package/dist/{workflows-ClfVyB1p.js → workflows-DrDssVnE.js} +2 -2
  205. package/dist/{workflows-ClfVyB1p.js.map → workflows-DrDssVnE.js.map} +1 -1
  206. package/package.json +5 -5
  207. package/dist/agents-B5kq2QEV.js.map +0 -1
  208. package/dist/agents-Cel1sffU.cjs.map +0 -1
  209. package/dist/agents-NRBk4JAs.js.map +0 -1
  210. package/dist/agents-SvkxJW48.cjs.map +0 -1
  211. package/dist/background-tasks-DhQ6upHK.js.map +0 -1
  212. package/dist/background-tasks-Kcx2YtW0.cjs.map +0 -1
  213. package/dist/dist-CPj7ZQaO.cjs.map +0 -1
  214. package/dist/dist-DC2mND12.js.map +0 -1
  215. package/dist/dist-DDpKEjMk.js +0 -1
  216. package/dist/observability-new-endpoints-BORkWc9f.js.map +0 -1
  217. package/dist/observability-new-endpoints-KJCQZLZr.cjs.map +0 -1
  218. package/dist/routes-DSBYmGyo.cjs.map +0 -1
  219. package/dist/routes-X0Gh3f3T.js.map +0 -1
  220. package/dist/stored-agents-C9zCintA.js.map +0 -1
  221. package/dist/stored-agents-LCHZldYH.cjs.map +0 -1
  222. package/dist/system-B0_hRqFE.js.map +0 -1
  223. package/dist/system-iruN6xnj.cjs.map +0 -1
  224. /package/dist/_types/{@internal_core → @internal_core@0.1.4}/dist/storage/index.d.ts +0 -0
  225. /package/dist/_types/{@internal_core → @internal_core@0.1.4}/package.json +0 -0
  226. /package/dist/_types/{@internal_voice/dist/_types/@internal_core → @internal_voice@0.0.43/dist/_types/@internal_core@0.1.4}/dist/request-context/index.d.ts +0 -0
  227. /package/dist/_types/{@internal_voice/dist/_types/@internal_core → @internal_voice@0.0.43/dist/_types/@internal_core@0.1.4}/dist/types/index.d.ts +0 -0
  228. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/classic/checks.d.ts +0 -0
  229. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/classic/coerce.d.ts +0 -0
  230. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/classic/compat.d.ts +0 -0
  231. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/classic/deep-partial.d.ts +0 -0
  232. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/classic/errors.d.ts +0 -0
  233. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/classic/external.d.ts +0 -0
  234. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/classic/from-json-schema.d.ts +0 -0
  235. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/classic/in-out.d.ts +0 -0
  236. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/classic/index.d.ts +0 -0
  237. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/classic/iso.d.ts +0 -0
  238. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/classic/parse.d.ts +0 -0
  239. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/classic/schemas.d.ts +0 -0
  240. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/core/api.d.ts +0 -0
  241. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/core/checks.d.ts +0 -0
  242. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/core/compile.d.ts +0 -0
  243. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/core/core.d.ts +0 -0
  244. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/core/doc.d.ts +0 -0
  245. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/core/errors.d.ts +0 -0
  246. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/core/index.d.ts +0 -0
  247. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/core/json-schema-generator.d.ts +0 -0
  248. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/core/json-schema-processors.d.ts +0 -0
  249. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/core/json-schema.d.ts +0 -0
  250. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/core/memoizer.d.ts +0 -0
  251. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/core/parse.d.ts +0 -0
  252. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/core/regexes.d.ts +0 -0
  253. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/core/registries.d.ts +0 -0
  254. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/core/schemas.d.ts +0 -0
  255. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/core/standard-schema.d.ts +0 -0
  256. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/core/to-json-schema.d.ts +0 -0
  257. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/core/util.d.ts +0 -0
  258. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/core/versions.d.ts +0 -0
  259. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/index.d.cts +0 -0
  260. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/ar.d.ts +0 -0
  261. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/az.d.ts +0 -0
  262. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/be.d.ts +0 -0
  263. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/bg.d.ts +0 -0
  264. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/bn.d.ts +0 -0
  265. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/ca.d.ts +0 -0
  266. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/ckb.d.ts +0 -0
  267. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/cs.d.ts +0 -0
  268. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/da.d.ts +0 -0
  269. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/de.d.ts +0 -0
  270. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/el.d.ts +0 -0
  271. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/en.d.ts +0 -0
  272. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/eo.d.ts +0 -0
  273. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/es.d.ts +0 -0
  274. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/fa.d.ts +0 -0
  275. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/fi.d.ts +0 -0
  276. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/fr-CA.d.ts +0 -0
  277. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/fr.d.ts +0 -0
  278. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/gu.d.ts +0 -0
  279. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/he.d.ts +0 -0
  280. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/hi.d.ts +0 -0
  281. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/hr.d.ts +0 -0
  282. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/hu.d.ts +0 -0
  283. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/hy.d.ts +0 -0
  284. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/id.d.ts +0 -0
  285. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/index.d.ts +0 -0
  286. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/is.d.ts +0 -0
  287. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/it.d.ts +0 -0
  288. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/ja.d.ts +0 -0
  289. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/ka.d.ts +0 -0
  290. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/kh.d.ts +0 -0
  291. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/km.d.ts +0 -0
  292. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/kn.d.ts +0 -0
  293. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/ko.d.ts +0 -0
  294. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/lt.d.ts +0 -0
  295. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/mk.d.ts +0 -0
  296. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/ms.d.ts +0 -0
  297. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/ne.d.ts +0 -0
  298. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/nl.d.ts +0 -0
  299. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/nn.d.ts +0 -0
  300. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/no.d.ts +0 -0
  301. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/ota.d.ts +0 -0
  302. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/pl.d.ts +0 -0
  303. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/ps.d.ts +0 -0
  304. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/pt-BR.d.ts +0 -0
  305. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/pt.d.ts +0 -0
  306. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/ro.d.ts +0 -0
  307. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/ru.d.ts +0 -0
  308. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/sk.d.ts +0 -0
  309. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/sl.d.ts +0 -0
  310. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/sv.d.ts +0 -0
  311. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/ta.d.ts +0 -0
  312. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/tg.d.ts +0 -0
  313. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/th.d.ts +0 -0
  314. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/tk.d.ts +0 -0
  315. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/tr.d.ts +0 -0
  316. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/ua.d.ts +0 -0
  317. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/uk.d.ts +0 -0
  318. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/ur.d.ts +0 -0
  319. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/uz.d.ts +0 -0
  320. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/vi.d.ts +0 -0
  321. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/yo.d.ts +0 -0
  322. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/zh-CN.d.ts +0 -0
  323. /package/dist/_types/{@internal_voice/dist/_types/zod → @internal_voice@0.0.43/dist/_types/zod@4.6.7}/v4/locales/zh-TW.d.ts +0 -0
  324. /package/dist/_types/{@internal_voice → @internal_voice@0.0.43}/package.json +0 -0
  325. /package/dist/_types/{@mastra_schema-compat/dist/_types/@standard-schema_spec → @mastra_schema-compat@1.3.17/dist/_types/@standard-schema_spec@1.1.0}/dist/index.d.ts +0 -0
  326. /package/dist/_types/{@mastra_schema-compat/dist/_types/@types_json-schema → @mastra_schema-compat@1.3.17/dist/_types/@types_json-schema@7.0.15}/index.d.ts +0 -0
  327. /package/dist/_types/{@mastra_schema-compat → @mastra_schema-compat@1.3.17}/dist/index.d.ts +0 -0
  328. /package/dist/_types/{@mastra_schema-compat → @mastra_schema-compat@1.3.17}/dist/null-to-undefined.d.ts +0 -0
  329. /package/dist/_types/{@mastra_schema-compat → @mastra_schema-compat@1.3.17}/dist/provider-compats/openai-reasoning.d.ts +0 -0
  330. /package/dist/_types/{@mastra_schema-compat → @mastra_schema-compat@1.3.17}/dist/schema-compatibility-v3.d.ts +0 -0
  331. /package/dist/_types/{@mastra_schema-compat → @mastra_schema-compat@1.3.17}/dist/schema-compatibility-v4.d.ts +0 -0
  332. /package/dist/_types/{@mastra_schema-compat → @mastra_schema-compat@1.3.17}/dist/schema-compatibility.d.ts +0 -0
  333. /package/dist/_types/{@mastra_schema-compat → @mastra_schema-compat@1.3.17}/dist/schema.d.ts +0 -0
  334. /package/dist/_types/{@mastra_schema-compat → @mastra_schema-compat@1.3.17}/dist/standard-schema-compat.d.ts +0 -0
  335. /package/dist/_types/{@mastra_schema-compat → @mastra_schema-compat@1.3.17}/dist/types.d.ts +0 -0
  336. /package/dist/_types/{@mastra_schema-compat → @mastra_schema-compat@1.3.17}/dist/utils.d.ts +0 -0
  337. /package/dist/_types/{@mastra_schema-compat → @mastra_schema-compat@1.3.17}/package.json +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents-DbnPZXIN.cjs","names":["z","typedPermissive","defaultOptionsSchema","coreMessageSchema","tracingOptionsSchema","messageResponseSchema"],"sources":["../src/server/schemas/agents.ts"],"sourcesContent":["import type {\n AgentExecutionOptions,\n PublicStructuredOutputOptions,\n ToolsetsInput,\n ToolsInput,\n} from '@mastra/core/agent';\nimport type { CoreMessageV4 } from '@mastra/core/agent/message-list';\nimport type { ScoringSamplingConfig } from '@mastra/core/evals';\nimport type { OutputType, SystemMessage } from '@mastra/core/llm';\nimport type { ReasoningLevel } from '@mastra/core/loop';\nimport { z } from 'zod/v4';\n\n/**\n * Structural mirror of LoopOptions['modelSettings'] (ai-sdk CallSettings minus\n * abortSignal, plus reasoning). CallSettings is not publicly exported from\n * @mastra/core, so its fields are restated here to keep declaration emit portable.\n */\n/**\n * Structural mirror of LoopOptions['stopWhen'] entries. The ai-sdk StopCondition\n * type is not publicly exported from @mastra/core, so an assignable function\n * shape is used to keep declaration emit portable.\n */\ntype StopConditionArg = (event: unknown) => boolean | PromiseLike<boolean>;\n\ntype ModelSettings = {\n maxOutputTokens?: number;\n temperature?: number;\n topP?: number;\n topK?: number;\n presencePenalty?: number;\n frequencyPenalty?: number;\n stopSequences?: string[];\n seed?: number;\n maxRetries?: number;\n headers?: Record<string, string | undefined>;\n reasoning?: ReasoningLevel;\n};\nimport { tracingOptionsSchema, coreMessageSchema, messageResponseSchema, typedPermissive } from './common';\nimport { defaultOptionsSchema } from './default-options';\n\nexport {\n generateSpeechBodySchema,\n getListenerResponseSchema,\n speakResponseSchema,\n transcribeSpeechBodySchema,\n transcribeSpeechResponseSchema,\n voiceSpeakersResponseSchema,\n} from '@internal/voice/routes';\n\ntype JsonValue = string | number | boolean | null | JsonValue[] | { [key: string]: JsonValue };\n\nconst jsonValueSchema: z.ZodType<JsonValue> = z.lazy(() =>\n z.union([\n z.string(),\n z.number(),\n z.boolean(),\n z.null(),\n z.array(jsonValueSchema),\n z.record(z.string(), jsonValueSchema),\n ]),\n);\nconst jsonRecordSchema = z.record(z.string(), jsonValueSchema);\n\nconst signalAttributesSchema = z.record(\n z.string(),\n z.union([z.string(), z.number(), z.boolean(), z.null(), z.undefined()]),\n);\n\nconst baseSignalSchema = z.object({\n id: z.string().optional(),\n createdAt: z.union([z.string(), z.date()]).optional(),\n metadata: jsonRecordSchema.optional(),\n attributes: signalAttributesSchema.optional(),\n});\n\nconst partProviderOptionsSchema = z.record(z.string(), z.record(z.string(), jsonValueSchema)).optional();\n\nconst signalTextPartSchema = z.object({\n type: z.literal('text'),\n text: z.string(),\n providerOptions: partProviderOptionsSchema,\n});\n\nconst signalFilePartSchema = z.object({\n type: z.literal('file'),\n data: z.string(),\n mediaType: z.string(),\n filename: z.string().optional(),\n providerOptions: partProviderOptionsSchema,\n});\n\nconst userMessageSignalContentsSchema = z.union([\n z.string(),\n z.array(z.union([signalTextPartSchema, signalFilePartSchema])),\n]);\n\nconst agentMessageInputObjectSchema = z.object({\n contents: userMessageSignalContentsSchema,\n attributes: signalAttributesSchema.optional(),\n metadata: jsonRecordSchema.optional(),\n providerOptions: z.record(z.string(), z.record(z.string(), jsonValueSchema)).optional(),\n});\n\nconst agentMessageInputSchema = z.union([userMessageSignalContentsSchema, agentMessageInputObjectSchema]);\n\nconst agentSignalBaseSchema = baseSignalSchema.extend({\n tagName: z.string().optional(),\n contents: userMessageSignalContentsSchema,\n providerOptions: z.record(z.string(), z.record(z.string(), jsonValueSchema)).optional(),\n});\n\nconst agentSignalSchema = z.discriminatedUnion('type', [\n agentSignalBaseSchema.extend({\n type: z.literal('state'),\n transient: z.never().optional(),\n }),\n agentSignalBaseSchema.extend({\n type: z.enum(['user', 'reactive', 'notification', 'user-message', 'system-reminder']),\n transient: z.boolean().optional(),\n }),\n]);\n\n// Path parameter schemas\nexport const agentIdPathParams = z.object({\n agentId: z.string().describe('Unique identifier for the agent'),\n});\n\n/**\n * Query params for GET /agents/:agentId — controls which stored config version is used for overrides.\n * When `status` and `versionId` are both provided, `versionId` takes precedence.\n * - `status` — 'draft' (latest version) or 'published' (active published version, default).\n * - `versionId` — Resolve with a specific version ID.\n */\nexport const agentVersionQuerySchema = z.object({\n status: z\n .enum(['draft', 'published'])\n .optional()\n .describe(\n 'Which stored config version to resolve: draft (latest version) or published (active version, default). When both status and versionId are provided, versionId takes precedence.',\n ),\n versionId: z\n .string()\n .optional()\n .describe('Specific version ID to resolve. Takes precedence over status when both are provided.'),\n});\n\nexport const agentPlanQuerySchema = agentVersionQuerySchema.extend({\n path: z.string().describe('Relative path to a markdown plan under .mastracode/plans/'),\n});\n\nexport const agentPlanResponseSchema = z.object({\n path: z.string(),\n content: z.string(),\n});\n\nexport const toolIdPathParams = z.object({\n toolId: z.string().describe('Unique identifier for the tool'),\n});\n\nexport const agentRunPathParams = agentIdPathParams.extend({\n runId: z.string().min(1).describe('Unique identifier for the agent run'),\n});\n\nexport const agentToolPathParams = agentIdPathParams.extend({\n toolId: z.string().describe('Unique identifier for the tool'),\n});\n\nexport const agentSkillPathParams = agentIdPathParams.extend({\n skillName: z.string().describe('Name of the skill'),\n});\n\nexport const modelConfigIdPathParams = agentIdPathParams.extend({\n modelConfigId: z.string().describe('Unique identifier for the model configuration'),\n});\n\n/**\n * Schema for serialized processor metadata\n */\nexport const serializedProcessorSchema = z.object({\n id: z.string(),\n name: z.string().optional(),\n});\n\n/**\n * Schema for serialized tool with JSON schemas\n */\nexport const serializedToolSchema = z.object({\n id: z.string(),\n title: z.string().optional(),\n description: z.string().optional(),\n inputSchema: z.string().optional(),\n outputSchema: z.string().optional(),\n requestContextSchema: z.string().optional(),\n requireApproval: z.boolean().optional(),\n});\n\n/**\n * Schema for serialized workflow with steps\n */\nexport const serializedWorkflowSchema = z.object({\n name: z.string(),\n steps: z\n .record(\n z.string(),\n z.object({\n id: z.string(),\n description: z.string().optional(),\n }),\n )\n .optional(),\n});\n\n/**\n * Schema for serialized agent definition (referenced by other agents)\n */\nexport const serializedAgentDefinitionSchema = z.object({\n id: z.string(),\n name: z.string(),\n});\n\n/**\n * Schema for SystemMessage type\n * Can be string, string[], or various message objects\n */\nconst systemMessageSchema = typedPermissive<SystemMessage>(\n z.union([\n z.string(),\n z.array(z.string()),\n z.unknown(), // CoreSystemMessage or SystemModelMessage\n z.array(z.unknown()),\n ]),\n);\n\n/**\n * Schema for model configuration in model list\n */\nconst modelConfigSchema = z.object({\n id: z.string(),\n enabled: z.boolean(),\n maxRetries: z.number(),\n model: z.object({\n modelId: z.string(),\n provider: z.string(),\n modelVersion: z.string(),\n }),\n});\n\nconst serializedSkillSchema = z.object({\n name: z.string(),\n description: z.string(),\n license: z.string().optional(),\n path: z.string(),\n});\n\nconst agentEditorConfigSchema = z.union([\n z.literal(false),\n z.object({\n instructions: z.boolean().optional(),\n tools: z.union([z.boolean(), z.object({ description: z.boolean().optional() })]).optional(),\n model: z.boolean().optional(),\n }),\n]);\n\n/**\n * Main schema for serialized agent representation\n */\nexport const serializedAgentSchema = z.object({\n name: z.string(),\n description: z.string().optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n instructions: systemMessageSchema.optional(),\n tools: z.record(z.string(), serializedToolSchema),\n agents: z.record(z.string(), serializedAgentDefinitionSchema),\n workflows: z.record(z.string(), serializedWorkflowSchema),\n skills: z.array(serializedSkillSchema),\n workspaceTools: z.array(z.string()),\n browserTools: z.array(z.string()),\n hasBrowser: z.boolean(),\n workspaceId: z.string().optional(),\n inputProcessors: z.array(serializedProcessorSchema),\n outputProcessors: z.array(serializedProcessorSchema),\n provider: z.string().optional(),\n modelId: z.string().optional(),\n modelVersion: z.string().optional(),\n supportsMemory: z.boolean().optional(),\n modelList: z.array(modelConfigSchema).optional(),\n modelListEditable: z\n .boolean()\n .optional()\n .describe('False when the model list comes from a function and cannot be reordered or edited'),\n defaultOptions: defaultOptionsSchema.optional(),\n defaultGenerateOptionsLegacy: z.record(z.string(), z.unknown()).optional(),\n defaultStreamOptionsLegacy: z.record(z.string(), z.unknown()).optional(),\n requestContextSchema: z.string().optional(),\n source: z.enum(['code', 'stored', 'fs']).optional(),\n status: z.enum(['draft', 'published', 'archived']).optional(),\n activeVersionId: z.string().optional(),\n hasDraft: z.boolean().optional(),\n editor: agentEditorConfigSchema.optional(),\n});\n\n/**\n * Schema for agent with ID\n */\nexport const serializedAgentWithIdSchema = serializedAgentSchema.extend({\n id: z.string(),\n});\n\n/**\n * Schema for individual provider information\n */\nexport const providerSchema = z.object({\n id: z.string(),\n name: z.string(),\n label: z.string().optional(),\n description: z.string().optional(),\n envVar: z.union([z.string(), z.array(z.string())]),\n connected: z.boolean(),\n docUrl: z.string().optional(),\n models: z.array(z.string()),\n modelReleaseDates: z.record(z.string(), z.string()).optional(),\n});\n\n/**\n * Schema for providers endpoint response\n */\nexport const providersResponseSchema = z.object({\n providers: z.array(providerSchema),\n});\n\nexport type ProviderListItem = z.infer<typeof providerSchema>;\n\n/**\n * Schema for list agents endpoint response\n * Returns a record of agent ID to serialized agent\n */\nexport const listAgentsResponseSchema = z.record(z.string(), serializedAgentSchema);\n\n/**\n * Schema for list tools endpoint response\n * Returns a record of tool ID to serialized tool\n */\nexport const listToolsResponseSchema = z.record(z.string(), serializedToolSchema);\n\n// ============================================================================\n// Agent Execution Body Schemas\n// ============================================================================\n\n/**\n * Schema for agent memory option\n */\nconst agentMemoryOptionSchema = z.object({\n thread: z.union([z.string(), z.object({ id: z.string() }).passthrough()]),\n /**\n * Optional so authenticated setups can rely on the server-derived resource ID\n * (`mapUserToResourceId` sets MASTRA_RESOURCE_ID_KEY in the request context, which\n * takes precedence over this value). Handlers return a 400 when neither the body\n * nor the request context provides a resource ID.\n */\n resource: z.string().optional(),\n options: z.record(z.string(), z.unknown()).optional(),\n readOnly: z.boolean().optional(),\n});\n\n/**\n * Schema for tool choice configuration\n */\nconst toolChoiceSchema = z.union([\n z.enum(['auto', 'none', 'required']),\n z.object({ type: z.literal('tool'), toolName: z.string() }),\n]);\n\n/**\n * Comprehensive body schema for agent generate and stream endpoints\n * Validates common fields while using passthrough for complex nested objects\n *\n * EXCLUDED FIELDS (not serializable):\n * - Callbacks: onStepFinish, onFinish, onChunk, onError, onAbort, prepareStep\n * - Class instances: inputProcessors, outputProcessors\n * - Non-serializable: abortSignal, tracingContext\n */\nexport const agentExecutionBodySchema = z\n .object({\n // REQUIRED\n messages: z.union([\n z.array(coreMessageSchema), // Array of messages\n z.string(), // Single user message shorthand\n ]),\n\n // Message Configuration\n instructions: systemMessageSchema.optional(),\n system: systemMessageSchema.optional(),\n // ModelMessage[] at runtime; handlers cast since the AI SDK ModelMessage\n // type is not portable for declaration emit.\n context: z.array(coreMessageSchema).optional(),\n\n // Memory & Persistence\n memory: agentMemoryOptionSchema.optional(),\n runId: z.string().optional(),\n savePerStep: z.boolean().optional(),\n\n // Request Context (handler-specific field - merged with server's requestContext)\n requestContext: z.record(z.string(), z.unknown()).optional(),\n\n // Version overrides for sub-agents (and future primitives)\n versions: z\n .object({\n agents: z\n .record(\n z.string(),\n z.union([z.object({ versionId: z.string() }), z.object({ status: z.enum(['draft', 'published']) })]),\n )\n .optional(),\n defaultStatus: z.enum(['draft', 'published']).optional(),\n })\n .optional(),\n\n // Execution Control\n maxSteps: z.number().optional(),\n // Stop conditions are functions and cannot be validated by zod.\n stopWhen: typedPermissive<StopConditionArg | StopConditionArg[]>(z.unknown()).optional(),\n\n // Model Configuration\n model: z.string().optional(),\n providerOptions: z.record(z.string(), z.record(z.string(), jsonValueSchema)).optional(),\n modelSettings: typedPermissive<ModelSettings>(z.unknown()).optional(),\n\n // Tool Configuration\n activeTools: z.array(z.string()).optional(),\n // Tool entries contain execute functions and cannot be validated by zod.\n toolsets: typedPermissive<ToolsetsInput>(z.record(z.string(), z.unknown())).optional(),\n clientTools: typedPermissive<ToolsInput>(z.record(z.string(), z.unknown())).optional(),\n toolChoice: toolChoiceSchema.optional(),\n requireToolApproval: z.boolean().optional(),\n\n // Evaluation\n scorers: typedPermissive<Record<string, { scorer: string; sampling?: ScoringSamplingConfig }>>(\n z.union([\n z.record(z.string(), z.unknown()),\n z.record(\n z.string(),\n z.object({\n scorer: z.string(),\n sampling: z.unknown().optional(),\n }),\n ),\n ]),\n ).optional(),\n returnScorerData: z.boolean().optional(),\n\n // Observability\n tracingOptions: tracingOptionsSchema.optional(),\n\n // Structured Output\n // Zod schema, JSON schema, or structured output object — cannot be validated by zod.\n output: typedPermissive<OutputType>(z.unknown()).optional(),\n // The concrete options type cannot be expressed field-by-field because of\n // the fallback discriminated union.\n structuredOutput: typedPermissive<PublicStructuredOutputOptions<Record<string, unknown>>>(\n z.object({\n schema: z.object({}).passthrough(),\n model: z.union([z.string(), z.unknown()]).optional(),\n instructions: z.string().optional(),\n jsonPromptInjection: z.boolean().optional(),\n errorStrategy: z.enum(['strict', 'warn', 'fallback']).optional(),\n fallbackValue: z.unknown().optional(),\n }),\n ).optional(),\n\n // Idle-loop streaming (collapses streamUntilIdle into stream)\n untilIdle: z.union([z.boolean(), z.object({ maxIdleMs: z.number().int().positive().optional() })]).optional(),\n })\n .passthrough(); // Allow additional fields for forward compatibility\n\n/**\n * Legacy body schema for deprecated endpoints that still use threadId/resourceId\n * Used by /agents/:agentId/generate-legacy and /agents/:agentId/stream-legacy\n */\nexport const agentExecutionLegacyBodySchema = agentExecutionBodySchema.extend({\n resourceId: z.string().optional(),\n resourceid: z.string().optional(), // lowercase variant\n threadId: z.string().optional(),\n // Legacy generate/stream expect AI SDK v4 CoreMessage context and a string system message.\n context: typedPermissive<CoreMessageV4[]>(z.array(coreMessageSchema)).optional(),\n system: typedPermissive<string>(systemMessageSchema).optional(),\n});\n\nexport const streamUntilIdleBodySchema = agentExecutionBodySchema.extend({\n maxIdleMs: z.number().int().positive().optional(),\n untilIdle: z.union([z.boolean(), z.object({ maxIdleMs: z.number().int().positive().optional() })]).optional(),\n});\n\nexport const resumeStreamUntilIdleBodySchema = agentExecutionBodySchema.omit({ messages: true }).extend({\n runId: z.string(),\n resumeData: z.unknown().refine(x => x !== undefined, { message: 'resumeData is required' }),\n toolCallId: z.string().optional(),\n maxIdleMs: z.number().int().positive().optional(),\n});\n/**\n * Body schema for tool execute endpoint\n * Simple schema - tool validates its own input data\n * Note: The .refine() ensures data is required\n * (bare z.unknown() is treated as optional by Zod)\n */\nconst executeToolDataBodySchema = z.object({\n data: z.unknown().refine(x => x !== undefined, { message: 'data is required' }),\n});\n\nexport const executeToolBodySchema = executeToolDataBodySchema.extend({\n requestContext: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport const executeToolContextBodySchema = executeToolDataBodySchema.extend({\n requestContext: z.record(z.string(), z.unknown()).optional(),\n});\n\n// ============================================================================\n// Tool Approval Schemas\n// ============================================================================\n\n/**\n * Base schema for tool approval/decline operations\n * Both approve and decline use the same parameters\n */\nconst toolCallActionBodySchema = z.object({\n runId: z.string(),\n model: z.string().optional(),\n requestContext: z.record(z.string(), z.unknown()).optional(),\n toolCallId: z.string(),\n format: z.string().optional(),\n providerOptions: z.record(z.string(), z.record(z.string(), jsonValueSchema)).optional(),\n modelSettings: typedPermissive<ModelSettings>(z.unknown()).optional(),\n // Client tools must be re-sent on resume so the model can call them after the approval decision.\n clientTools: typedPermissive<ToolsInput>(z.record(z.string(), z.unknown())).optional(),\n});\nconst networkToolCallActionBodySchema = z.object({\n runId: z.string(),\n model: z.string().optional(),\n requestContext: z.record(z.string(), z.unknown()).optional(),\n format: z.string().optional(),\n});\n\n/**\n * Body schema for approving tool call\n */\nexport const approveToolCallBodySchema = toolCallActionBodySchema;\n\n/**\n * Body schema for declining tool call\n */\nexport const declineToolCallBodySchema = toolCallActionBodySchema.extend({\n /** Optional explanation surfaced to the model in place of the default decline message. */\n reason: z.string().optional(),\n});\n\n/**\n * Body schema for approving network tool call\n */\nexport const approveNetworkToolCallBodySchema = networkToolCallActionBodySchema;\n\n/**\n * Body schema for declining network tool call\n */\nexport const declineNetworkToolCallBodySchema = networkToolCallActionBodySchema.extend({\n /** Optional explanation surfaced in place of the default decline message. */\n reason: z.string().optional(),\n});\n\n/**\n * Response schema for tool approval/decline\n */\nexport const toolCallResponseSchema = z.object({\n fullStream: z.unknown(), // ReadableStream\n});\n\nexport const sendToolApprovalResponseSchema = z.object({\n accepted: z.literal(true),\n runId: z.string(),\n toolCallId: z.string().optional(),\n});\n\n/**\n * Query schema for listing suspended agent runs\n */\nexport const listSuspendedRunsQuerySchema = z\n .object({\n threadId: z.string().optional(),\n resourceId: z.string().optional(),\n fromDate: z.coerce.date().optional(),\n toDate: z.coerce.date().optional(),\n perPage: z.coerce.number().int().positive().optional(),\n // page is zero-indexed, so 0 is valid\n page: z.coerce.number().int().nonnegative().optional(),\n })\n .refine(data => !data.fromDate || !data.toDate || data.fromDate <= data.toDate, {\n message: 'fromDate must be less than or equal to toDate',\n path: ['fromDate'],\n });\n\n/**\n * Response schema for listing suspended agent runs\n */\nexport const listSuspendedRunsResponseSchema = z.object({\n runs: z.array(\n z.object({\n runId: z.string(),\n status: z.literal('suspended'),\n threadId: z.string().optional(),\n resourceId: z.string().optional(),\n suspendedAt: z.date(),\n toolCalls: z.array(\n z.object({\n toolCallId: z.string().optional(),\n toolName: z.string().optional(),\n args: z.unknown().optional(),\n requiresApproval: z.boolean(),\n suspendPayload: z.unknown().optional(),\n }),\n ),\n }),\n ),\n total: z.number().int().nonnegative(),\n});\n\n// ============================================================================\n// Resume Stream Schema\n// ============================================================================\n\n/**\n * Body schema for resuming a suspended agent stream with custom data.\n * Extends the agent execution body without messages, since resume\n * continues from a prior suspension point rather than starting fresh.\n */\nexport const resumeStreamBodySchema = agentExecutionBodySchema.omit({ messages: true }).extend({\n runId: z.string(),\n resumeData: z.unknown().refine(x => x !== undefined, { message: 'resumeData is required' }),\n toolCallId: z.string().optional(),\n});\n\n// ============================================================================\n// Recover Schema\n// ============================================================================\n\n/**\n * Body schema for recovering an orphaned RUNNING durable-agent run.\n * Thread and resource are read from the persisted snapshot, so we only accept\n * the runId plus request-context / version overrides needed for auth and\n * routing.\n */\nexport const recoverBodySchema = z.object({\n runId: z.string(),\n requestContext: z.record(z.string(), z.unknown()).optional(),\n versions: z\n .object({\n agents: z\n .record(\n z.string(),\n z.union([z.object({ versionId: z.string() }), z.object({ status: z.enum(['draft', 'published']) })]),\n )\n .optional(),\n defaultStatus: z.enum(['draft', 'published']).optional(),\n })\n .optional(),\n});\n\n// ============================================================================\n// Model Management Schemas\n// ============================================================================\n\n/**\n * Body schema for updating agent model\n */\nexport const updateAgentModelBodySchema = z.object({\n modelId: z.string(),\n provider: z.string(),\n});\n\n/**\n * Body schema for reordering agent model list\n */\nexport const reorderAgentModelListBodySchema = z.object({\n reorderedModelIds: z.array(z.string()),\n});\n\n/**\n * Body schema for updating model in model list\n */\nexport const updateAgentModelInModelListBodySchema = z.object({\n model: z\n .object({\n modelId: z.string(),\n provider: z.string(),\n })\n .optional(),\n maxRetries: z.number().optional(),\n enabled: z.boolean().optional(),\n});\n\n/**\n * Response schema for model management operations\n */\nexport const modelManagementResponseSchema = messageResponseSchema;\n\n// ============================================================================\n// Response schemas for agent generation endpoints\n// These return AI SDK types which have complex structures\n// ============================================================================\n\nexport const generateResponseSchema = z.unknown(); // AI SDK GenerateResult type\nexport const streamResponseSchema = z.unknown(); // AI SDK StreamResult type\nexport const executeToolResponseSchema = z.unknown(); // Tool execution result varies by tool\n\n// ============================================================================\n// Instruction Enhancement Schemas\n// ============================================================================\n\n/**\n * Body schema for enhancing agent instructions\n */\nexport const enhanceInstructionsBodySchema = z.object({\n instructions: z.string().describe('The current agent instructions to enhance'),\n comment: z.string().describe('User comment describing how to enhance the instructions'),\n});\n\n/**\n * Response schema for enhanced instructions\n */\nexport const enhanceInstructionsResponseSchema = z.object({\n explanation: z.string().describe('Explanation of the changes made'),\n new_prompt: z.string().describe('The enhanced instructions'),\n});\n\n// ============================================================================\n// Observe (Resumable Streams) Schemas\n// ============================================================================\n\n/**\n * Body schema for observing an agent stream\n * Used to reconnect to an existing stream and receive missed events\n */\nexport const observeAgentBodySchema = z.object({\n runId: z.string().describe('The run ID to observe/reconnect to'),\n offset: z.number().optional().describe('Resume from this event index (0-based). If omitted, replays all events.'),\n});\n\nconst signalActiveBehaviorSchema = z.enum(['deliver', 'persist', 'discard']);\nconst signalIdleBehaviorSchema = z.enum(['wake', 'persist', 'discard']);\n\nconst signalTargetBaseBodySchema = z.object({\n ifActive: z\n .object({\n behavior: signalActiveBehaviorSchema.optional(),\n attributes: signalAttributesSchema.optional(),\n })\n .optional(),\n});\n\nconst signalTargetBodySchema = z.union([\n signalTargetBaseBodySchema.extend({\n runId: z.string(),\n resourceId: z.string().optional(),\n threadId: z.string().optional(),\n ifIdle: z.undefined().optional(),\n }),\n signalTargetBaseBodySchema.extend({\n runId: z.undefined().optional(),\n resourceId: z.string(),\n threadId: z.string(),\n ifIdle: z\n .object({\n behavior: signalIdleBehaviorSchema.optional(),\n streamOptions: agentExecutionBodySchema.omit({ messages: true }).optional(),\n attributes: signalAttributesSchema.optional(),\n })\n .optional(),\n }),\n]);\n\nexport const sendAgentSignalBodySchema = z.union([\n signalTargetBodySchema.options[0].extend({ signal: agentSignalSchema }),\n signalTargetBodySchema.options[1].extend({ signal: agentSignalSchema }),\n]);\n\nexport const sendAgentMessageBodySchema = z.union([\n signalTargetBodySchema.options[0].extend({ message: agentMessageInputSchema }),\n signalTargetBodySchema.options[1].extend({ message: agentMessageInputSchema }),\n]);\n\nexport const queueAgentMessageBodySchema = sendAgentMessageBodySchema;\nexport const queueAgentSignalBodySchema = sendAgentSignalBodySchema;\n\nconst agentThreadBodySchema = z.object({\n resourceId: z.string().optional(),\n threadId: z.string(),\n});\n\nexport const subscribeAgentThreadBodySchema = agentThreadBodySchema.extend({\n withRunStatus: z.boolean().optional().describe('Emit thread-run-status chunks, including retained outcomes'),\n withInitialHistory: z\n .union([z.boolean(), z.object({ perPage: z.number().int().positive().optional() })])\n .optional()\n .describe('Emit one thread-history chunk with stored messages before live parts'),\n});\n\nexport const abortAgentThreadBodySchema = agentThreadBodySchema.extend({\n threadId: z.string().min(1),\n clearPendingSignals: z.boolean().optional(),\n expectedRunId: z.string().optional(),\n});\n\nexport const cancelPendingAgentSignalsBodySchema = agentThreadBodySchema.extend({\n threadId: z.string().min(1),\n signalIds: z.array(z.string().min(1)).min(1).max(1000),\n});\n\nexport const cancelPendingAgentSignalsResponseSchema = z.object({\n cancelledSignalIds: z.array(z.string()),\n});\n\nexport const sendToolApprovalBodySchema = z.object({\n resourceId: z.string(),\n threadId: z.string(),\n requestContext: z.record(z.string(), z.unknown()).optional(),\n toolCallId: z.string(),\n approved: z.boolean(),\n resumeData: z.unknown().optional(),\n format: z.string().optional(),\n messages: z.array(coreMessageSchema).optional(),\n streamOptions: typedPermissive<AgentExecutionOptions<undefined>>(z.unknown()).optional(),\n});\n\nexport const abortAgentThreadResponseSchema = z.object({\n aborted: z.boolean(),\n});\n\n/**\n * Response schema for observe endpoint (streaming response)\n */\nexport const observeAgentResponseSchema = z.unknown(); // Streaming response\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { c as schemaToJsonSchema } from "./route-builder-BxPrwNog.js";
2
- import { r as SERVER_ROUTES } from "./routes-X0Gh3f3T.js";
2
+ import { r as SERVER_ROUTES } from "./routes-BCoCimCB.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-C8E9EB-q.js.map
60
+ //# sourceMappingURL=api-schema-manifest-BTfM-0md.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"api-schema-manifest-C8E9EB-q.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-BTfM-0md.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,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-DSBYmGyo.cjs");
3
+ const require_routes = require("./routes-FKc6a2N0.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-CNjDZrQ8.cjs.map
61
+ //# sourceMappingURL=api-schema-manifest-C55f0tmn.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"api-schema-manifest-CNjDZrQ8.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-C55f0tmn.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"}
@@ -64,7 +64,15 @@ const backgroundTaskResponseSchema = z$1.object({
64
64
  retryCount: z$1.number(),
65
65
  maxRetries: z$1.number(),
66
66
  timeoutMs: z$1.number(),
67
- suspendPayload: z$1.unknown().optional()
67
+ suspendPayload: z$1.unknown().optional(),
68
+ suspendedAt: z$1.date().optional()
69
+ });
70
+ const resumeBackgroundTaskBodySchema = z$1.object({
71
+ resumeData: z$1.unknown(),
72
+ suspendedAt: z$1.union([z$1.string().datetime({ offset: true }), z$1.number().int().nonnegative()]).optional()
73
+ }).refine((body) => body.resumeData !== void 0, {
74
+ message: "resumeData is required",
75
+ path: ["resumeData"]
68
76
  });
69
77
  const listBackgroundTaskResponseSchema = z$1.object({
70
78
  tasks: z$1.array(backgroundTaskResponseSchema),
@@ -164,6 +172,37 @@ const GET_BACKGROUND_TASK_ROUTE = createRoute({
164
172
  return task;
165
173
  }
166
174
  });
167
- export { GET_BACKGROUND_TASK_ROUTE as n, LIST_BACKGROUND_TASKS_ROUTE as r, BACKGROUND_TASK_STREAM_ROUTE as t };
175
+ const RESUME_BACKGROUND_TASK_ROUTE = createRoute({
176
+ method: "POST",
177
+ path: "/background-tasks/:backgroundTaskId/resume",
178
+ responseType: "json",
179
+ pathParamSchema: backgroundTaskIdPathParams,
180
+ bodySchema: resumeBackgroundTaskBodySchema,
181
+ responseSchema: backgroundTaskResponseSchema,
182
+ summary: "Resume a suspended background task",
183
+ description: "Answers a suspended background task with resumeData. Pass the suspendedAt you read from the task to reject the answer with 409 if the task has resumed or suspended again since.",
184
+ tags: ["Background Tasks"],
185
+ requiresAuth: true,
186
+ handler: async ({ mastra, backgroundTaskId, resumeData, suspendedAt, requestContext }) => {
187
+ const { resourceId, scoped } = resolveResourceScope(requestContext, void 0);
188
+ const bgManager = mastra.backgroundTaskManager;
189
+ if (!bgManager) throw new HTTPException(404, { message: "Background task not found" });
190
+ const task = await bgManager.getTask(backgroundTaskId);
191
+ if (!task || scoped && task.resourceId !== resourceId) throw new HTTPException(404, { message: "Background task not found" });
192
+ if (task.status !== "suspended") throw new HTTPException(409, { message: `Background task is ${task.status}, not suspended` });
193
+ if (suspendedAt !== void 0 && new Date(suspendedAt).getTime() !== task.suspendedAt?.getTime()) throw new HTTPException(409, { message: "Background task suspension has changed since it was read" });
194
+ try {
195
+ await bgManager.resume(backgroundTaskId, resumeData, suspendedAt !== void 0 ? { suspendedAt: new Date(suspendedAt) } : void 0);
196
+ } catch (error) {
197
+ const message = error instanceof Error ? error.message : String(error);
198
+ if (message.startsWith("Cannot resume task") || message.startsWith("Concurrency limit reached")) throw new HTTPException(409, { message });
199
+ throw error;
200
+ }
201
+ const resumed = await bgManager.getTask(backgroundTaskId);
202
+ if (!resumed) throw new HTTPException(404, { message: "Background task not found" });
203
+ return resumed;
204
+ }
205
+ });
206
+ export { RESUME_BACKGROUND_TASK_ROUTE as i, GET_BACKGROUND_TASK_ROUTE as n, LIST_BACKGROUND_TASKS_ROUTE as r, BACKGROUND_TASK_STREAM_ROUTE as t };
168
207
 
169
- //# sourceMappingURL=background-tasks-DhQ6upHK.js.map
208
+ //# sourceMappingURL=background-tasks-BHhn4YZA.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"background-tasks-BHhn4YZA.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 suspendedAt: z.date().optional(),\n});\n\nexport const resumeBackgroundTaskBodySchema = z\n .object({\n // A background tool treats a missing `resumeData` as a fresh run, so an\n // answer must carry one (any value, `null` included).\n resumeData: z.unknown(),\n // The `suspendedAt` of the suspension being answered (ISO string or epoch\n // milliseconds, as read from the task). A task that has since resumed or\n // suspended again is rejected with 409 instead of receiving a stale answer.\n suspendedAt: z.union([z.string().datetime({ offset: true }), z.number().int().nonnegative()]).optional(),\n })\n // `z.unknown()` alone lets a missing key through on Zod 3 and Zod 4 before 4.4.\n .refine(body => body.resumeData !== undefined, { message: 'resumeData is required', path: ['resumeData'] });\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 resumeBackgroundTaskBodySchema,\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\nexport const RESUME_BACKGROUND_TASK_ROUTE = createRoute({\n method: 'POST',\n path: '/background-tasks/:backgroundTaskId/resume',\n responseType: 'json' as const,\n pathParamSchema: backgroundTaskIdPathParams,\n bodySchema: resumeBackgroundTaskBodySchema,\n responseSchema: backgroundTaskResponseSchema,\n summary: 'Resume a suspended background task',\n description:\n 'Answers a suspended background task with resumeData. Pass the suspendedAt you read from the task to reject the answer with 409 if the task has resumed or suspended again since.',\n tags: ['Background Tasks'],\n requiresAuth: true,\n handler: async ({ mastra, backgroundTaskId, resumeData, suspendedAt, requestContext }) => {\n const { resourceId, scoped } = resolveResourceScope(requestContext, undefined);\n const bgManager = mastra.backgroundTaskManager;\n if (!bgManager) {\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 if (task.status !== 'suspended') {\n throw new HTTPException(409, { message: `Background task is ${task.status}, not suspended` });\n }\n if (suspendedAt !== undefined && new Date(suspendedAt).getTime() !== task.suspendedAt?.getTime()) {\n throw new HTTPException(409, { message: 'Background task suspension has changed since it was read' });\n }\n\n try {\n await bgManager.resume(\n backgroundTaskId,\n resumeData,\n suspendedAt !== undefined ? { suspendedAt: new Date(suspendedAt) } : undefined,\n );\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n // Lost a race with another resume, a new suspension or a cancel, or no slot is free right now.\n if (message.startsWith('Cannot resume task') || message.startsWith('Concurrency limit reached')) {\n throw new HTTPException(409, { message });\n }\n throw error;\n }\n\n const resumed = await bgManager.getTask(backgroundTaskId);\n if (!resumed) throw new HTTPException(404, { message: 'Background task not found' });\n return resumed;\n },\n});\n"],"mappings":"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"}
@@ -64,7 +64,15 @@ const backgroundTaskResponseSchema = zod.z.object({
64
64
  retryCount: zod.z.number(),
65
65
  maxRetries: zod.z.number(),
66
66
  timeoutMs: zod.z.number(),
67
- suspendPayload: zod.z.unknown().optional()
67
+ suspendPayload: zod.z.unknown().optional(),
68
+ suspendedAt: zod.z.date().optional()
69
+ });
70
+ const resumeBackgroundTaskBodySchema = zod.z.object({
71
+ resumeData: zod.z.unknown(),
72
+ suspendedAt: zod.z.union([zod.z.string().datetime({ offset: true }), zod.z.number().int().nonnegative()]).optional()
73
+ }).refine((body) => body.resumeData !== void 0, {
74
+ message: "resumeData is required",
75
+ path: ["resumeData"]
68
76
  });
69
77
  const listBackgroundTaskResponseSchema = zod.z.object({
70
78
  tasks: zod.z.array(backgroundTaskResponseSchema),
@@ -164,6 +172,37 @@ const GET_BACKGROUND_TASK_ROUTE = require_route_builder.createRoute({
164
172
  return task;
165
173
  }
166
174
  });
175
+ const RESUME_BACKGROUND_TASK_ROUTE = require_route_builder.createRoute({
176
+ method: "POST",
177
+ path: "/background-tasks/:backgroundTaskId/resume",
178
+ responseType: "json",
179
+ pathParamSchema: backgroundTaskIdPathParams,
180
+ bodySchema: resumeBackgroundTaskBodySchema,
181
+ responseSchema: backgroundTaskResponseSchema,
182
+ summary: "Resume a suspended background task",
183
+ description: "Answers a suspended background task with resumeData. Pass the suspendedAt you read from the task to reject the answer with 409 if the task has resumed or suspended again since.",
184
+ tags: ["Background Tasks"],
185
+ requiresAuth: true,
186
+ handler: async ({ mastra, backgroundTaskId, resumeData, suspendedAt, requestContext }) => {
187
+ const { resourceId, scoped } = resolveResourceScope(requestContext, void 0);
188
+ const bgManager = mastra.backgroundTaskManager;
189
+ if (!bgManager) throw new require_http_exception.HTTPException(404, { message: "Background task not found" });
190
+ const task = await bgManager.getTask(backgroundTaskId);
191
+ if (!task || scoped && task.resourceId !== resourceId) throw new require_http_exception.HTTPException(404, { message: "Background task not found" });
192
+ if (task.status !== "suspended") throw new require_http_exception.HTTPException(409, { message: `Background task is ${task.status}, not suspended` });
193
+ if (suspendedAt !== void 0 && new Date(suspendedAt).getTime() !== task.suspendedAt?.getTime()) throw new require_http_exception.HTTPException(409, { message: "Background task suspension has changed since it was read" });
194
+ try {
195
+ await bgManager.resume(backgroundTaskId, resumeData, suspendedAt !== void 0 ? { suspendedAt: new Date(suspendedAt) } : void 0);
196
+ } catch (error) {
197
+ const message = error instanceof Error ? error.message : String(error);
198
+ if (message.startsWith("Cannot resume task") || message.startsWith("Concurrency limit reached")) throw new require_http_exception.HTTPException(409, { message });
199
+ throw error;
200
+ }
201
+ const resumed = await bgManager.getTask(backgroundTaskId);
202
+ if (!resumed) throw new require_http_exception.HTTPException(404, { message: "Background task not found" });
203
+ return resumed;
204
+ }
205
+ });
167
206
  Object.defineProperty(exports, "BACKGROUND_TASK_STREAM_ROUTE", {
168
207
  enumerable: true,
169
208
  get: function() {
@@ -182,5 +221,11 @@ Object.defineProperty(exports, "LIST_BACKGROUND_TASKS_ROUTE", {
182
221
  return LIST_BACKGROUND_TASKS_ROUTE;
183
222
  }
184
223
  });
224
+ Object.defineProperty(exports, "RESUME_BACKGROUND_TASK_ROUTE", {
225
+ enumerable: true,
226
+ get: function() {
227
+ return RESUME_BACKGROUND_TASK_ROUTE;
228
+ }
229
+ });
185
230
 
186
- //# sourceMappingURL=background-tasks-Kcx2YtW0.cjs.map
231
+ //# sourceMappingURL=background-tasks-Ci2tlxJC.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"background-tasks-Ci2tlxJC.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 suspendedAt: z.date().optional(),\n});\n\nexport const resumeBackgroundTaskBodySchema = z\n .object({\n // A background tool treats a missing `resumeData` as a fresh run, so an\n // answer must carry one (any value, `null` included).\n resumeData: z.unknown(),\n // The `suspendedAt` of the suspension being answered (ISO string or epoch\n // milliseconds, as read from the task). A task that has since resumed or\n // suspended again is rejected with 409 instead of receiving a stale answer.\n suspendedAt: z.union([z.string().datetime({ offset: true }), z.number().int().nonnegative()]).optional(),\n })\n // `z.unknown()` alone lets a missing key through on Zod 3 and Zod 4 before 4.4.\n .refine(body => body.resumeData !== undefined, { message: 'resumeData is required', path: ['resumeData'] });\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 resumeBackgroundTaskBodySchema,\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\nexport const RESUME_BACKGROUND_TASK_ROUTE = createRoute({\n method: 'POST',\n path: '/background-tasks/:backgroundTaskId/resume',\n responseType: 'json' as const,\n pathParamSchema: backgroundTaskIdPathParams,\n bodySchema: resumeBackgroundTaskBodySchema,\n responseSchema: backgroundTaskResponseSchema,\n summary: 'Resume a suspended background task',\n description:\n 'Answers a suspended background task with resumeData. Pass the suspendedAt you read from the task to reject the answer with 409 if the task has resumed or suspended again since.',\n tags: ['Background Tasks'],\n requiresAuth: true,\n handler: async ({ mastra, backgroundTaskId, resumeData, suspendedAt, requestContext }) => {\n const { resourceId, scoped } = resolveResourceScope(requestContext, undefined);\n const bgManager = mastra.backgroundTaskManager;\n if (!bgManager) {\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 if (task.status !== 'suspended') {\n throw new HTTPException(409, { message: `Background task is ${task.status}, not suspended` });\n }\n if (suspendedAt !== undefined && new Date(suspendedAt).getTime() !== task.suspendedAt?.getTime()) {\n throw new HTTPException(409, { message: 'Background task suspension has changed since it was read' });\n }\n\n try {\n await bgManager.resume(\n backgroundTaskId,\n resumeData,\n suspendedAt !== undefined ? { suspendedAt: new Date(suspendedAt) } : undefined,\n );\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n // Lost a race with another resume, a new suspension or a cancel, or no slot is free right now.\n if (message.startsWith('Cannot resume task') || message.startsWith('Concurrency limit reached')) {\n throw new HTTPException(409, { message });\n }\n throw error;\n }\n\n const resumed = await bgManager.getTask(backgroundTaskId);\n if (!resumed) throw new HTTPException(404, { message: 'Background task not found' });\n return resumed;\n },\n});\n"],"mappings":";;;;;;AAGA,MAAa,6BAA6BA,IAAAA,EAAE,KAAK;CAC/C;CACA;CACA;CACA;CACA;CACA;CACA;AACF,CAAC;AAED,MAAa,kCAAkCA,IAAAA,EAAE,OAAO;CACtD,SAASA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS;CAC7B,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS;CAC3B,UAAUA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS;CAC9B,YAAYA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS;CAChC,QAAQA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS;AAC9B,CAAC;AAED,MAAa,iCAAiCA,IAAAA,EAAE,KAAK;CAAC;CAAa;CAAa;CAAe;AAAa,CAAC;AAE7G,MAAa,iCAAiCA,IAAAA,EAAE,OAAO;CACrD,SAASA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS;CAC7B,QAAQ,2BAA2B,SAAS;CAC5C,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS;CAC3B,UAAUA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS;CAC9B,YAAYA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS;CAChC,UAAUA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS;CAC9B,YAAYA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS;CAChC,UAAUA,IAAAA,EAAE,OAAO,KAAK,CAAC,CAAC,SAAS;CACnC,QAAQA,IAAAA,EAAE,OAAO,KAAK,CAAC,CAAC,SAAS;CACjC,cAAc,+BAA+B,SAAS;CACtD,SAAS,+BAA+B,SAAS;CACjD,gBAAgBA,IAAAA,EAAE,KAAK,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,SAAS;CACjD,MAAMC,eAAAA,iBAAiB,CAAC,CAAC,SAAS;CAClC,SAASA,eAAAA,iBAAiB,CAAC,CAAC,SAAS;AACvC,CAAC;AAED,MAAa,6BAA6BD,IAAAA,EAAE,OAAO,EACjD,kBAAkBA,IAAAA,EAAE,OAAO,EAC7B,CAAC;AAED,MAAa,+BAA+BA,IAAAA,EAAE,OAAO;CACnD,IAAIA,IAAAA,EAAE,OAAO;CACb,QAAQ;CACR,UAAUA,IAAAA,EAAE,OAAO;CACnB,YAAYA,IAAAA,EAAE,OAAO;CACrB,MAAMA,IAAAA,EAAE,OAAOA,IAAAA,EAAE,OAAO,GAAGA,IAAAA,EAAE,QAAQ,CAAC;CACtC,SAASA,IAAAA,EAAE,OAAO;CAClB,UAAUA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS;CAC9B,YAAYA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS;CAChC,OAAOA,IAAAA,EAAE,OAAO;CAChB,QAAQA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS;CAC7B,OAAOA,IAAAA,EAAE,OAAO;EAAE,SAASA,IAAAA,EAAE,OAAO;EAAG,OAAOA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS;CAAE,CAAC,CAAC,CAAC,SAAS;CAChF,WAAWA,IAAAA,EAAE,KAAK;CAClB,WAAWA,IAAAA,EAAE,KAAK,CAAC,CAAC,SAAS;CAC7B,aAAaA,IAAAA,EAAE,KAAK,CAAC,CAAC,SAAS;CAC/B,YAAYA,IAAAA,EAAE,OAAO;CACrB,YAAYA,IAAAA,EAAE,OAAO;CACrB,WAAWA,IAAAA,EAAE,OAAO;CACpB,gBAAgBA,IAAAA,EAAE,QAAQ,CAAC,CAAC,SAAS;CACrC,aAAaA,IAAAA,EAAE,KAAK,CAAC,CAAC,SAAS;AACjC,CAAC;AAED,MAAa,iCAAiCA,IAAAA,EAC3C,OAAO;CAGN,YAAYA,IAAAA,EAAE,QAAQ;CAItB,aAAaA,IAAAA,EAAE,MAAM,CAACA,IAAAA,EAAE,OAAO,CAAC,CAAC,SAAS,EAAE,QAAQ,KAAK,CAAC,GAAGA,IAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS;AACzG,CAAC,CAAC,CAED,QAAO,SAAQ,KAAK,eAAe,KAAA,GAAW;CAAE,SAAS;CAA0B,MAAM,CAAC,YAAY;AAAE,CAAC;AAE5G,MAAa,mCAAmCA,IAAAA,EAAE,OAAO;CACvD,OAAOA,IAAAA,EAAE,MAAM,4BAA4B;CAC3C,OAAOA,IAAAA,EAAE,OAAO;AAClB,CAAC;AAED,MAAa,qCAAqCA,IAAAA,EAAE,QAAQ;;;;;;;AClE5D,SAAS,qBACP,gBACA,kBACqD;CACrD,MAAM,oBAAoBE,cAAAA,qBAAqB,cAAc;CAC7D,IAAI,sBAAsB,KAAA,GAAW,OAAO;EAAE,YAAY;EAAkB,QAAQ;CAAM;CAG1F,IAAI,sBAAsB,IACxB,MAAM,IAAIC,uBAAAA,cAAc,KAAK,EAAE,SAAS,mDAAmD,CAAC;CAE9F,IAAI,qBAAqB,KAAA,KAAa,qBAAqB,mBACzD,MAAM,IAAIA,uBAAAA,cAAc,KAAK,EAAE,SAAS,sEAAsE,CAAC;CAEjH,OAAO;EAAE,YAAY;EAAmB,QAAQ;CAAK;AACvD;AAEA,MAAa,+BAA+BC,sBAAAA,YAAY;CACtD,QAAQ;CACR,MAAM;CACN,cAAc;CACd,cAAc;CACd,kBAAkB;CAClB,gBAAgB;CAChB,SAAS;CACT,aAAa;CACb,MAAM,CAAC,kBAAkB;CACzB,cAAc;CACd,SAAS,OAAO,EACd,QACA,SACA,OACA,UACA,YAAY,kBACZ,QACA,aACA,qBACI;EACJ,MAAM,EAAE,YAAY,WAAW,qBAAqB,gBAAgB,gBAAgB;EACpF,MAAM,YAAY,OAAO;EACzB,IAAI,CAAC,WAKH,OAAO,IAAI,eAAe,EACxB,MAAM,YAAY;GAChB,aAAa,iBAAiB,eAAe;IAC3C,IAAI;KACF,WAAW,MAAM;IACnB,QAAQ,CAER;GACF,CAAC;EACH,EACF,CAAC;EAGH,OAAO,UAAU,OAAO;GAAE;GAAS;GAAO;GAAU;GAAY;GAAQ;GAAa,cAAc,CAAC;EAAO,CAAC;CAC9G;AACF,CAAC;AAED,MAAa,8BAA8BA,sBAAAA,YAAY;CACrD,QAAQ;CACR,MAAM;CACN,cAAc;CACd,kBAAkB;CAClB,gBAAgB;CAChB,SAAS;CACT,aAAa;CACb,MAAM,CAAC,kBAAkB;CACzB,cAAc;CACd,SAAS,OAAO,EAAE,QAAQ,gBAAgB,GAAG,aAAa;EACxD,MAAM,EAAE,eAAe,qBAAqB,gBAAgB,OAAO,UAAU;EAC7E,MAAM,YAAY,OAAO;EACzB,IAAI,CAAC,WAEH,OAAO;GAAE,OAAO,CAAC;GAAG,OAAO;EAAE;EAG/B,OAAO,UAAU,UAAU;GAAE,GAAG;GAAQ;EAAW,CAAC;CACtD;AACF,CAAC;AAED,MAAa,4BAA4BA,sBAAAA,YAAY;CACnD,QAAQ;CACR,MAAM;CACN,cAAc;CACd,iBAAiB;CACjB,gBAAgB;CAChB,SAAS;CACT,aAAa;CACb,MAAM,CAAC,kBAAkB;CACzB,cAAc;CACd,SAAS,OAAO,EAAE,QAAQ,kBAAkB,qBAAqB;EAC/D,MAAM,EAAE,YAAY,WAAW,qBAAqB,gBAAgB,KAAA,CAAS;EAC7E,MAAM,YAAY,OAAO;EACzB,IAAI,CAAC,WAEH,MAAM,IAAID,uBAAAA,cAAc,KAAK,EAAE,SAAS,4BAA4B,CAAC;EAGvE,MAAM,OAAO,MAAM,UAAU,QAAQ,gBAAgB;EAErD,IAAI,CAAC,QAAS,UAAU,KAAK,eAAe,YAC1C,MAAM,IAAIA,uBAAAA,cAAc,KAAK,EAAE,SAAS,4BAA4B,CAAC;EAEvE,OAAO;CACT;AACF,CAAC;AAED,MAAa,+BAA+BC,sBAAAA,YAAY;CACtD,QAAQ;CACR,MAAM;CACN,cAAc;CACd,iBAAiB;CACjB,YAAY;CACZ,gBAAgB;CAChB,SAAS;CACT,aACE;CACF,MAAM,CAAC,kBAAkB;CACzB,cAAc;CACd,SAAS,OAAO,EAAE,QAAQ,kBAAkB,YAAY,aAAa,qBAAqB;EACxF,MAAM,EAAE,YAAY,WAAW,qBAAqB,gBAAgB,KAAA,CAAS;EAC7E,MAAM,YAAY,OAAO;EACzB,IAAI,CAAC,WACH,MAAM,IAAID,uBAAAA,cAAc,KAAK,EAAE,SAAS,4BAA4B,CAAC;EAGvE,MAAM,OAAO,MAAM,UAAU,QAAQ,gBAAgB;EAErD,IAAI,CAAC,QAAS,UAAU,KAAK,eAAe,YAC1C,MAAM,IAAIA,uBAAAA,cAAc,KAAK,EAAE,SAAS,4BAA4B,CAAC;EAEvE,IAAI,KAAK,WAAW,aAClB,MAAM,IAAIA,uBAAAA,cAAc,KAAK,EAAE,SAAS,sBAAsB,KAAK,OAAO,iBAAiB,CAAC;EAE9F,IAAI,gBAAgB,KAAA,KAAa,IAAI,KAAK,WAAW,CAAC,CAAC,QAAQ,MAAM,KAAK,aAAa,QAAQ,GAC7F,MAAM,IAAIA,uBAAAA,cAAc,KAAK,EAAE,SAAS,2DAA2D,CAAC;EAGtG,IAAI;GACF,MAAM,UAAU,OACd,kBACA,YACA,gBAAgB,KAAA,IAAY,EAAE,aAAa,IAAI,KAAK,WAAW,EAAE,IAAI,KAAA,CACvE;EACF,SAAS,OAAO;GACd,MAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;GAErE,IAAI,QAAQ,WAAW,oBAAoB,KAAK,QAAQ,WAAW,2BAA2B,GAC5F,MAAM,IAAIA,uBAAAA,cAAc,KAAK,EAAE,QAAQ,CAAC;GAE1C,MAAM;EACR;EAEA,MAAM,UAAU,MAAM,UAAU,QAAQ,gBAAgB;EACxD,IAAI,CAAC,SAAS,MAAM,IAAIA,uBAAAA,cAAc,KAAK,EAAE,SAAS,4BAA4B,CAAC;EACnF,OAAO;CACT;AACF,CAAC"}
@@ -3,7 +3,7 @@ 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-9PRHHTGC.cjs");
6
- const require_agents = require("./agents-SvkxJW48.cjs");
6
+ const require_agents = require("./agents-Cp4FBxQB.cjs");
7
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");
@@ -190,4 +190,4 @@ Object.defineProperty(exports, "conversations_exports", {
190
190
  }
191
191
  });
192
192
 
193
- //# sourceMappingURL=conversations-Ds6aiCMU.cjs.map
193
+ //# sourceMappingURL=conversations-6DxLemUg.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"conversations-Ds6aiCMU.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
+ {"version":3,"file":"conversations-6DxLemUg.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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"}
@@ -3,7 +3,7 @@ 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-B15w-1hm.js";
6
- import { G as getAgentFromSystem } from "./agents-NRBk4JAs.js";
6
+ import { G as getAgentFromSystem } from "./agents-DPvMjiDf.js";
7
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";
@@ -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-CVvZOu1K.js.map
164
+ //# sourceMappingURL=conversations-DDMCe7th.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"conversations-CVvZOu1K.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-DDMCe7th.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,3 +1,3 @@
1
1
  require("./rolldown-runtime-10nMEhjP.cjs");
2
- const require_dist = require("./dist-CPj7ZQaO.cjs");
2
+ const require_dist = require("./dist-CzWU4AmA.cjs");
3
3
  exports.openai = require_dist.openai;