@mastra/server 1.0.0-beta.4 → 1.0.0-beta.5

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 (257) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/chunk-2NW6POYK.cjs +89 -0
  3. package/dist/chunk-2NW6POYK.cjs.map +1 -0
  4. package/dist/chunk-4JMHKKV3.cjs +201 -0
  5. package/dist/chunk-4JMHKKV3.cjs.map +1 -0
  6. package/dist/chunk-4O2QGUW3.js +354 -0
  7. package/dist/chunk-4O2QGUW3.js.map +1 -0
  8. package/dist/chunk-4W2SM6CG.js +294 -0
  9. package/dist/chunk-4W2SM6CG.js.map +1 -0
  10. package/dist/chunk-5W4RPVTK.cjs +49 -0
  11. package/dist/chunk-5W4RPVTK.cjs.map +1 -0
  12. package/dist/chunk-65Q7HO3Q.cjs +907 -0
  13. package/dist/chunk-65Q7HO3Q.cjs.map +1 -0
  14. package/dist/chunk-6KNI7VIX.js +1021 -0
  15. package/dist/chunk-6KNI7VIX.js.map +1 -0
  16. package/dist/chunk-A6MQQTHN.js +310 -0
  17. package/dist/chunk-A6MQQTHN.js.map +1 -0
  18. package/dist/chunk-AUQBEMDP.cjs +322 -0
  19. package/dist/chunk-AUQBEMDP.cjs.map +1 -0
  20. package/dist/chunk-CBDUTSTI.js +192 -0
  21. package/dist/chunk-CBDUTSTI.js.map +1 -0
  22. package/dist/{chunk-VEVU6EUO.js → chunk-EI2GXZE2.js} +735 -154
  23. package/dist/chunk-EI2GXZE2.js.map +1 -0
  24. package/dist/{chunk-TOCYBDP2.js → chunk-ER3QM7DD.js} +4 -4
  25. package/dist/{chunk-TOCYBDP2.js.map → chunk-ER3QM7DD.js.map} +1 -1
  26. package/dist/chunk-FCHN5M25.js +878 -0
  27. package/dist/chunk-FCHN5M25.js.map +1 -0
  28. package/dist/chunk-FPCGLPLJ.cjs +297 -0
  29. package/dist/chunk-FPCGLPLJ.cjs.map +1 -0
  30. package/dist/{chunk-D7T74TVR.js → chunk-G7BPNX2V.js} +4 -3
  31. package/dist/chunk-G7BPNX2V.js.map +1 -0
  32. package/dist/chunk-IMK7366C.cjs +346 -0
  33. package/dist/chunk-IMK7366C.cjs.map +1 -0
  34. package/dist/chunk-LGG3N3AV.js +116 -0
  35. package/dist/chunk-LGG3N3AV.js.map +1 -0
  36. package/dist/chunk-LZDCXQMX.js +164 -0
  37. package/dist/chunk-LZDCXQMX.js.map +1 -0
  38. package/dist/chunk-MH3A7RDQ.cjs +1064 -0
  39. package/dist/chunk-MH3A7RDQ.cjs.map +1 -0
  40. package/dist/chunk-MWQQRVQC.cjs +259 -0
  41. package/dist/chunk-MWQQRVQC.cjs.map +1 -0
  42. package/dist/{chunk-7HVY3D64.cjs → chunk-P6BEEW5J.cjs} +1767 -1183
  43. package/dist/chunk-P6BEEW5J.cjs.map +1 -0
  44. package/dist/{chunk-KJIDZQRA.cjs → chunk-PDVJ2TTM.cjs} +216 -23
  45. package/dist/chunk-PDVJ2TTM.cjs.map +1 -0
  46. package/dist/chunk-PKRHEXX7.js +74 -0
  47. package/dist/chunk-PKRHEXX7.js.map +1 -0
  48. package/dist/chunk-QVHQZUGJ.cjs +368 -0
  49. package/dist/chunk-QVHQZUGJ.cjs.map +1 -0
  50. package/dist/chunk-R4M3BSUG.js +226 -0
  51. package/dist/chunk-R4M3BSUG.js.map +1 -0
  52. package/dist/chunk-R6ZTXNN2.cjs +797 -0
  53. package/dist/chunk-R6ZTXNN2.cjs.map +1 -0
  54. package/dist/{chunk-FPBYKMIS.js → chunk-RCCWKKI3.js} +210 -23
  55. package/dist/chunk-RCCWKKI3.js.map +1 -0
  56. package/dist/chunk-S6DFGBDD.cjs +211 -0
  57. package/dist/chunk-S6DFGBDD.cjs.map +1 -0
  58. package/dist/chunk-SAQSK4AG.cjs +167 -0
  59. package/dist/chunk-SAQSK4AG.cjs.map +1 -0
  60. package/dist/chunk-UCRV7PD3.js +773 -0
  61. package/dist/chunk-UCRV7PD3.js.map +1 -0
  62. package/dist/{chunk-W2KMU354.cjs → chunk-UZ6CYAOG.cjs} +4 -3
  63. package/dist/chunk-UZ6CYAOG.cjs.map +1 -0
  64. package/dist/{chunk-QU6N55W6.cjs → chunk-V272B7RM.cjs} +11 -12
  65. package/dist/chunk-V272B7RM.cjs.map +1 -0
  66. package/dist/{chunk-X6C7BUWN.cjs → chunk-XQPJ63ZD.cjs} +4 -4
  67. package/dist/{chunk-X6C7BUWN.cjs.map → chunk-XQPJ63ZD.cjs.map} +1 -1
  68. package/dist/chunk-XWGAT2DA.js +44 -0
  69. package/dist/chunk-XWGAT2DA.js.map +1 -0
  70. package/dist/chunk-YLQHE2S5.js +204 -0
  71. package/dist/chunk-YLQHE2S5.js.map +1 -0
  72. package/dist/{chunk-SHWNNZBL.js → chunk-YP34EWWK.js} +9 -10
  73. package/dist/chunk-YP34EWWK.js.map +1 -0
  74. package/dist/chunk-Z7R7CFVF.cjs +125 -0
  75. package/dist/chunk-Z7R7CFVF.cjs.map +1 -0
  76. package/dist/chunk-ZPZSAJAR.js +328 -0
  77. package/dist/chunk-ZPZSAJAR.js.map +1 -0
  78. package/dist/server/handlers/a2a.cjs +15 -7
  79. package/dist/server/handlers/a2a.d.ts +482 -0
  80. package/dist/server/handlers/a2a.d.ts.map +1 -1
  81. package/dist/server/handlers/a2a.js +1 -1
  82. package/dist/server/handlers/agent-builder.cjs +37 -37
  83. package/dist/server/handlers/agent-builder.d.ts +600 -77
  84. package/dist/server/handlers/agent-builder.d.ts.map +1 -1
  85. package/dist/server/handlers/agent-builder.js +1 -1
  86. package/dist/server/handlers/agents.cjs +53 -37
  87. package/dist/server/handlers/agents.d.ts +3271 -125
  88. package/dist/server/handlers/agents.d.ts.map +1 -1
  89. package/dist/server/handlers/agents.js +1 -1
  90. package/dist/server/handlers/logs.cjs +7 -7
  91. package/dist/server/handlers/logs.d.ts +135 -27
  92. package/dist/server/handlers/logs.d.ts.map +1 -1
  93. package/dist/server/handlers/logs.js +1 -1
  94. package/dist/server/handlers/memory.cjs +65 -29
  95. package/dist/server/handlers/memory.d.ts +932 -96
  96. package/dist/server/handlers/memory.d.ts.map +1 -1
  97. package/dist/server/handlers/memory.js +1 -1
  98. package/dist/server/handlers/observability.cjs +21 -5
  99. package/dist/server/handlers/observability.d.ts +119 -12
  100. package/dist/server/handlers/observability.d.ts.map +1 -1
  101. package/dist/server/handlers/observability.js +1 -1
  102. package/dist/server/handlers/scores.cjs +13 -13
  103. package/dist/server/handlers/scores.d.ts +110 -141
  104. package/dist/server/handlers/scores.d.ts.map +1 -1
  105. package/dist/server/handlers/scores.js +1 -1
  106. package/dist/server/handlers/test-utils.cjs +15 -0
  107. package/dist/server/handlers/test-utils.cjs.map +1 -0
  108. package/dist/server/handlers/test-utils.d.ts +6 -0
  109. package/dist/server/handlers/test-utils.d.ts.map +1 -0
  110. package/dist/server/handlers/test-utils.js +13 -0
  111. package/dist/server/handlers/test-utils.js.map +1 -0
  112. package/dist/server/handlers/tools.cjs +11 -11
  113. package/dist/server/handlers/tools.d.ts +69 -23
  114. package/dist/server/handlers/tools.d.ts.map +1 -1
  115. package/dist/server/handlers/tools.js +1 -1
  116. package/dist/server/handlers/utils.cjs +11 -3
  117. package/dist/server/handlers/utils.d.ts +5 -0
  118. package/dist/server/handlers/utils.d.ts.map +1 -1
  119. package/dist/server/handlers/utils.js +1 -1
  120. package/dist/server/handlers/vector.cjs +31 -7
  121. package/dist/server/handlers/vector.d.ts +93 -9
  122. package/dist/server/handlers/vector.d.ts.map +1 -1
  123. package/dist/server/handlers/vector.js +1 -1
  124. package/dist/server/handlers/voice.cjs +21 -9
  125. package/dist/server/handlers/voice.d.ts +81 -40
  126. package/dist/server/handlers/voice.d.ts.map +1 -1
  127. package/dist/server/handlers/voice.js +1 -1
  128. package/dist/server/handlers/workflows.cjs +65 -37
  129. package/dist/server/handlers/workflows.d.ts +919 -79
  130. package/dist/server/handlers/workflows.d.ts.map +1 -1
  131. package/dist/server/handlers/workflows.js +1 -1
  132. package/dist/server/handlers.cjs +22 -22
  133. package/dist/server/handlers.js +11 -11
  134. package/dist/server/schemas/a2a.d.ts +786 -0
  135. package/dist/server/schemas/a2a.d.ts.map +1 -0
  136. package/dist/server/schemas/agent-builder.d.ts +195 -0
  137. package/dist/server/schemas/agent-builder.d.ts.map +1 -0
  138. package/dist/server/schemas/agents.d.ts +1375 -0
  139. package/dist/server/schemas/agents.d.ts.map +1 -0
  140. package/dist/server/schemas/common.d.ts +165 -0
  141. package/dist/server/schemas/common.d.ts.map +1 -0
  142. package/dist/server/schemas/logs.d.ts +124 -0
  143. package/dist/server/schemas/logs.d.ts.map +1 -0
  144. package/dist/server/schemas/memory.d.ts +998 -0
  145. package/dist/server/schemas/memory.d.ts.map +1 -0
  146. package/dist/server/schemas/observability.d.ts +402 -0
  147. package/dist/server/schemas/observability.d.ts.map +1 -0
  148. package/dist/server/schemas/scores.d.ts +259 -0
  149. package/dist/server/schemas/scores.d.ts.map +1 -0
  150. package/dist/server/schemas/vectors.d.ts +107 -0
  151. package/dist/server/schemas/vectors.d.ts.map +1 -0
  152. package/dist/server/schemas/workflows.d.ts +608 -0
  153. package/dist/server/schemas/workflows.d.ts.map +1 -0
  154. package/dist/server/server-adapter/index.cjs +330 -0
  155. package/dist/server/server-adapter/index.cjs.map +1 -0
  156. package/dist/server/server-adapter/index.d.ts +52 -0
  157. package/dist/server/server-adapter/index.d.ts.map +1 -0
  158. package/dist/server/server-adapter/index.js +316 -0
  159. package/dist/server/server-adapter/index.js.map +1 -0
  160. package/dist/server/server-adapter/openapi-utils.d.ts +59 -0
  161. package/dist/server/server-adapter/openapi-utils.d.ts.map +1 -0
  162. package/dist/server/server-adapter/routes/a2a.d.ts +3 -0
  163. package/dist/server/server-adapter/routes/a2a.d.ts.map +1 -0
  164. package/dist/server/server-adapter/routes/agent-builder.d.ts +3 -0
  165. package/dist/server/server-adapter/routes/agent-builder.d.ts.map +1 -0
  166. package/dist/server/server-adapter/routes/agents.d.ts +3 -0
  167. package/dist/server/server-adapter/routes/agents.d.ts.map +1 -0
  168. package/dist/server/server-adapter/routes/index.d.ts +41 -0
  169. package/dist/server/server-adapter/routes/index.d.ts.map +1 -0
  170. package/dist/server/server-adapter/routes/legacy.d.ts +7 -0
  171. package/dist/server/server-adapter/routes/legacy.d.ts.map +1 -0
  172. package/dist/server/server-adapter/routes/logs.d.ts +3 -0
  173. package/dist/server/server-adapter/routes/logs.d.ts.map +1 -0
  174. package/dist/server/server-adapter/routes/memory.d.ts +3 -0
  175. package/dist/server/server-adapter/routes/memory.d.ts.map +1 -0
  176. package/dist/server/server-adapter/routes/observability.d.ts +3 -0
  177. package/dist/server/server-adapter/routes/observability.d.ts.map +1 -0
  178. package/dist/server/server-adapter/routes/route-builder.d.ts +52 -0
  179. package/dist/server/server-adapter/routes/route-builder.d.ts.map +1 -0
  180. package/dist/server/server-adapter/routes/scorers.d.ts +3 -0
  181. package/dist/server/server-adapter/routes/scorers.d.ts.map +1 -0
  182. package/dist/server/server-adapter/routes/stream-types.d.ts +10 -0
  183. package/dist/server/server-adapter/routes/stream-types.d.ts.map +1 -0
  184. package/dist/server/server-adapter/routes/tools.d.ts +3 -0
  185. package/dist/server/server-adapter/routes/tools.d.ts.map +1 -0
  186. package/dist/server/server-adapter/routes/vectors.d.ts +3 -0
  187. package/dist/server/server-adapter/routes/vectors.d.ts.map +1 -0
  188. package/dist/server/server-adapter/routes/workflows.d.ts +3 -0
  189. package/dist/server/server-adapter/routes/workflows.d.ts.map +1 -0
  190. package/dist/server/utils.d.ts.map +1 -1
  191. package/dist/token-GVZ7HRD7.js +62 -0
  192. package/dist/{token-C3IMNCC4.js.map → token-GVZ7HRD7.js.map} +1 -1
  193. package/dist/{token-C3IMNCC4.js → token-JGA3ZWAN.js} +5 -6
  194. package/dist/token-JGA3ZWAN.js.map +1 -0
  195. package/dist/token-VFONFWVS.cjs +64 -0
  196. package/dist/{token-375W3LEI.cjs.map → token-VFONFWVS.cjs.map} +1 -1
  197. package/dist/{token-375W3LEI.cjs → token-ZOD6YIQ3.cjs} +7 -8
  198. package/dist/token-ZOD6YIQ3.cjs.map +1 -0
  199. package/dist/token-util-7R2ZFIXO.js +7 -0
  200. package/dist/{token-util-E5QO2RCL.js.map → token-util-7R2ZFIXO.js.map} +1 -1
  201. package/dist/token-util-BLJZJDBZ.cjs +9 -0
  202. package/dist/{token-util-CV3RRG6K.cjs.map → token-util-BLJZJDBZ.cjs.map} +1 -1
  203. package/dist/token-util-VGZUWSNR.cjs +9 -0
  204. package/dist/token-util-VGZUWSNR.cjs.map +1 -0
  205. package/dist/token-util-VKTPZLSE.js +7 -0
  206. package/dist/token-util-VKTPZLSE.js.map +1 -0
  207. package/package.json +20 -7
  208. package/dist/chunk-2YZH5PH6.cjs +0 -200
  209. package/dist/chunk-2YZH5PH6.cjs.map +0 -1
  210. package/dist/chunk-3AMNUUZF.js +0 -124
  211. package/dist/chunk-3AMNUUZF.js.map +0 -1
  212. package/dist/chunk-3F52QCI4.js +0 -192
  213. package/dist/chunk-3F52QCI4.js.map +0 -1
  214. package/dist/chunk-4G5QBFEW.cjs +0 -681
  215. package/dist/chunk-4G5QBFEW.cjs.map +0 -1
  216. package/dist/chunk-73PAWDM5.js +0 -83
  217. package/dist/chunk-73PAWDM5.js.map +0 -1
  218. package/dist/chunk-7HVY3D64.cjs.map +0 -1
  219. package/dist/chunk-A24TSVEZ.cjs +0 -130
  220. package/dist/chunk-A24TSVEZ.cjs.map +0 -1
  221. package/dist/chunk-B3Z6J745.js +0 -122
  222. package/dist/chunk-B3Z6J745.js.map +0 -1
  223. package/dist/chunk-BTWIR2B7.cjs +0 -28
  224. package/dist/chunk-BTWIR2B7.cjs.map +0 -1
  225. package/dist/chunk-D7T74TVR.js.map +0 -1
  226. package/dist/chunk-FPBYKMIS.js.map +0 -1
  227. package/dist/chunk-GLAZTMX3.cjs +0 -128
  228. package/dist/chunk-GLAZTMX3.cjs.map +0 -1
  229. package/dist/chunk-KF3RI45U.cjs +0 -172
  230. package/dist/chunk-KF3RI45U.cjs.map +0 -1
  231. package/dist/chunk-KJIDZQRA.cjs.map +0 -1
  232. package/dist/chunk-KWH5QBXP.js +0 -123
  233. package/dist/chunk-KWH5QBXP.js.map +0 -1
  234. package/dist/chunk-ND5OKOMT.js +0 -165
  235. package/dist/chunk-ND5OKOMT.js.map +0 -1
  236. package/dist/chunk-PPMIB3FQ.cjs +0 -88
  237. package/dist/chunk-PPMIB3FQ.cjs.map +0 -1
  238. package/dist/chunk-QU6N55W6.cjs.map +0 -1
  239. package/dist/chunk-S54HNARD.cjs +0 -131
  240. package/dist/chunk-S54HNARD.cjs.map +0 -1
  241. package/dist/chunk-SHWNNZBL.js.map +0 -1
  242. package/dist/chunk-SZIFSF4T.js +0 -25
  243. package/dist/chunk-SZIFSF4T.js.map +0 -1
  244. package/dist/chunk-U7GLIXYO.cjs +0 -534
  245. package/dist/chunk-U7GLIXYO.cjs.map +0 -1
  246. package/dist/chunk-UGXW2KPL.js +0 -661
  247. package/dist/chunk-UGXW2KPL.js.map +0 -1
  248. package/dist/chunk-V6JYJS7O.js +0 -518
  249. package/dist/chunk-V6JYJS7O.js.map +0 -1
  250. package/dist/chunk-VEVU6EUO.js.map +0 -1
  251. package/dist/chunk-W2KMU354.cjs.map +0 -1
  252. package/dist/chunk-X3MICMI2.cjs +0 -620
  253. package/dist/chunk-X3MICMI2.cjs.map +0 -1
  254. package/dist/chunk-ZJ6KEY6H.js +0 -600
  255. package/dist/chunk-ZJ6KEY6H.js.map +0 -1
  256. package/dist/token-util-CV3RRG6K.cjs +0 -9
  257. package/dist/token-util-E5QO2RCL.js +0 -7
@@ -0,0 +1,164 @@
1
+ import { zodToJsonSchema } from '@mastra/core/utils/zod-to-json';
2
+
3
+ // src/server/server-adapter/openapi-utils.ts
4
+ function generateRouteOpenAPI({
5
+ method,
6
+ path,
7
+ summary,
8
+ description,
9
+ tags = [],
10
+ pathParamSchema,
11
+ queryParamSchema,
12
+ bodySchema,
13
+ responseSchema,
14
+ deprecated
15
+ }) {
16
+ const route = {
17
+ summary: summary || `${method} ${path}`,
18
+ description,
19
+ tags,
20
+ deprecated,
21
+ responses: {
22
+ 200: {
23
+ description: "Successful response"
24
+ }
25
+ }
26
+ };
27
+ if (pathParamSchema || queryParamSchema) {
28
+ route.requestParams = {};
29
+ if (pathParamSchema) {
30
+ route.requestParams.path = pathParamSchema;
31
+ }
32
+ if (queryParamSchema) {
33
+ route.requestParams.query = queryParamSchema;
34
+ }
35
+ }
36
+ if (bodySchema) {
37
+ route.requestBody = {
38
+ content: {
39
+ "application/json": {
40
+ schema: bodySchema
41
+ }
42
+ }
43
+ };
44
+ }
45
+ if (responseSchema) {
46
+ route.responses[200] = {
47
+ description: "Successful response",
48
+ content: {
49
+ "application/json": {
50
+ schema: responseSchema
51
+ }
52
+ }
53
+ };
54
+ }
55
+ return route;
56
+ }
57
+ function convertZodToJsonSchema(spec) {
58
+ const converted = {
59
+ summary: spec.summary,
60
+ description: spec.description,
61
+ tags: spec.tags,
62
+ responses: {}
63
+ };
64
+ const parameters = [];
65
+ if (spec.requestParams?.path) {
66
+ const pathSchema = zodToJsonSchema(spec.requestParams.path, "openApi3", "none");
67
+ const properties = pathSchema.properties || {};
68
+ Object.entries(properties).forEach(([name, schema]) => {
69
+ parameters.push({
70
+ name,
71
+ in: "path",
72
+ required: true,
73
+ description: schema.description || `The ${name} parameter`,
74
+ schema
75
+ });
76
+ });
77
+ }
78
+ if (spec.requestParams?.query) {
79
+ const querySchema = zodToJsonSchema(spec.requestParams.query, "openApi3", "none");
80
+ const properties = querySchema.properties || {};
81
+ const required = querySchema.required || [];
82
+ Object.entries(properties).forEach(([name, schema]) => {
83
+ parameters.push({
84
+ name,
85
+ in: "query",
86
+ required: required.includes(name),
87
+ description: schema.description || `Query parameter: ${name}`,
88
+ schema
89
+ });
90
+ });
91
+ }
92
+ if (parameters.length > 0) {
93
+ converted.parameters = parameters;
94
+ }
95
+ if (spec.requestBody?.content?.["application/json"]?.schema) {
96
+ converted.requestBody = {
97
+ required: true,
98
+ content: {
99
+ "application/json": {
100
+ schema: zodToJsonSchema(spec.requestBody.content["application/json"].schema, "openApi3", "none")
101
+ }
102
+ }
103
+ };
104
+ }
105
+ Object.entries(spec.responses).forEach(([statusCode, response]) => {
106
+ converted.responses[statusCode] = {
107
+ description: response.description
108
+ };
109
+ if (response.content?.["application/json"]?.schema) {
110
+ converted.responses[statusCode].content = {
111
+ "application/json": {
112
+ schema: zodToJsonSchema(response.content["application/json"].schema, "openApi3", "none")
113
+ }
114
+ };
115
+ }
116
+ });
117
+ return converted;
118
+ }
119
+ function generateOpenAPIDocument(routes, info) {
120
+ const paths = {};
121
+ routes.forEach((route) => {
122
+ if (!route.openapi) return;
123
+ const openapiPath = route.path.replace(/:(\w+)/g, "{$1}");
124
+ if (!paths[openapiPath]) {
125
+ paths[openapiPath] = {};
126
+ }
127
+ paths[openapiPath][route.method.toLowerCase()] = convertZodToJsonSchema(route.openapi);
128
+ });
129
+ return {
130
+ openapi: "3.1.0",
131
+ info: {
132
+ title: info.title,
133
+ version: info.version,
134
+ description: info.description
135
+ },
136
+ paths
137
+ };
138
+ }
139
+
140
+ // src/server/server-adapter/routes/route-builder.ts
141
+ function createRoute(config) {
142
+ const { summary, description, tags, deprecated, ...baseRoute } = config;
143
+ const openapi = config.method !== "ALL" ? generateRouteOpenAPI({
144
+ method: config.method,
145
+ path: config.path,
146
+ summary,
147
+ description,
148
+ tags,
149
+ pathParamSchema: config.pathParamSchema,
150
+ queryParamSchema: config.queryParamSchema,
151
+ bodySchema: config.bodySchema,
152
+ responseSchema: config.responseSchema,
153
+ deprecated
154
+ }) : void 0;
155
+ return {
156
+ ...baseRoute,
157
+ openapi,
158
+ deprecated
159
+ };
160
+ }
161
+
162
+ export { createRoute, generateOpenAPIDocument };
163
+ //# sourceMappingURL=chunk-LZDCXQMX.js.map
164
+ //# sourceMappingURL=chunk-LZDCXQMX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/server/server-adapter/openapi-utils.ts","../src/server/server-adapter/routes/route-builder.ts"],"names":[],"mappings":"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","file":"chunk-LZDCXQMX.js","sourcesContent":["import { zodToJsonSchema } from '@mastra/core/utils/zod-to-json';\nimport type { ZodSchema } from 'zod';\nimport type { ServerRoute } from './routes';\n\ninterface RouteOpenAPIConfig {\n method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';\n path: string;\n summary?: string;\n description?: string;\n tags?: string[];\n pathParamSchema?: ZodSchema;\n queryParamSchema?: ZodSchema;\n bodySchema?: ZodSchema;\n responseSchema?: ZodSchema;\n deprecated?: boolean;\n}\n\ninterface OpenAPIRoute {\n summary?: string;\n description?: string;\n tags?: string[];\n deprecated?: boolean;\n requestParams?: {\n path?: ZodSchema;\n query?: ZodSchema;\n };\n requestBody?: {\n content: {\n 'application/json': {\n schema: ZodSchema;\n };\n };\n };\n responses: {\n [statusCode: string]: {\n description: string;\n content?: {\n 'application/json': {\n schema: ZodSchema;\n };\n };\n };\n };\n}\n\n/**\n * Generates OpenAPI specification for a single route\n * Extracts path parameters, query parameters, request body, and response schemas\n */\nexport function generateRouteOpenAPI({\n method,\n path,\n summary,\n description,\n tags = [],\n pathParamSchema,\n queryParamSchema,\n bodySchema,\n responseSchema,\n deprecated,\n}: RouteOpenAPIConfig): OpenAPIRoute {\n const route: OpenAPIRoute = {\n summary: summary || `${method} ${path}`,\n description,\n tags,\n deprecated,\n responses: {\n 200: {\n description: 'Successful response',\n },\n },\n };\n\n // Add path and query parameters\n if (pathParamSchema || queryParamSchema) {\n route.requestParams = {};\n\n if (pathParamSchema) {\n route.requestParams.path = pathParamSchema;\n }\n\n if (queryParamSchema) {\n route.requestParams.query = queryParamSchema;\n }\n }\n\n // Add request body with raw Zod schema\n if (bodySchema) {\n route.requestBody = {\n content: {\n 'application/json': {\n schema: bodySchema,\n },\n },\n };\n }\n\n // Add response schema with raw Zod schema\n if (responseSchema) {\n route.responses[200] = {\n description: 'Successful response',\n content: {\n 'application/json': {\n schema: responseSchema,\n },\n },\n };\n }\n\n return route;\n}\n\n/**\n * Converts an OpenAPI route spec with Zod schemas to one with JSON Schema\n */\nfunction convertZodToJsonSchema(spec: OpenAPIRoute): any {\n const converted: any = {\n summary: spec.summary,\n description: spec.description,\n tags: spec.tags,\n responses: {},\n };\n\n const parameters: any[] = [];\n\n // Convert path parameters\n if (spec.requestParams?.path) {\n const pathSchema = zodToJsonSchema(spec.requestParams.path, 'openApi3', 'none') as any;\n const properties = pathSchema.properties || {};\n\n Object.entries(properties).forEach(([name, schema]) => {\n parameters.push({\n name,\n in: 'path',\n required: true,\n description: (schema as any).description || `The ${name} parameter`,\n schema,\n });\n });\n }\n\n // Convert query parameters\n if (spec.requestParams?.query) {\n const querySchema = zodToJsonSchema(spec.requestParams.query, 'openApi3', 'none') as any;\n const properties = querySchema.properties || {};\n const required = querySchema.required || [];\n\n Object.entries(properties).forEach(([name, schema]) => {\n parameters.push({\n name,\n in: 'query',\n required: required.includes(name),\n description: (schema as any).description || `Query parameter: ${name}`,\n schema,\n });\n });\n }\n\n if (parameters.length > 0) {\n converted.parameters = parameters;\n }\n\n // Convert request body\n if (spec.requestBody?.content?.['application/json']?.schema) {\n converted.requestBody = {\n required: true,\n content: {\n 'application/json': {\n schema: zodToJsonSchema(spec.requestBody.content['application/json'].schema, 'openApi3', 'none'),\n },\n },\n };\n }\n\n // Convert response schemas\n Object.entries(spec.responses).forEach(([statusCode, response]) => {\n converted.responses[statusCode] = {\n description: response.description,\n };\n\n if (response.content?.['application/json']?.schema) {\n converted.responses[statusCode].content = {\n 'application/json': {\n schema: zodToJsonSchema(response.content['application/json'].schema, 'openApi3', 'none'),\n },\n };\n }\n });\n\n return converted;\n}\n\n/**\n * Generates a complete OpenAPI 3.1.0 document from server routes\n * @param routes - Array of ServerRoute objects with OpenAPI specifications\n * @param info - API metadata (title, version, description)\n * @returns Complete OpenAPI 3.1.0 document\n */\nexport function generateOpenAPIDocument(\n routes: ServerRoute[],\n info: { title: string; version: string; description?: string },\n): any {\n const paths: Record<string, any> = {};\n\n // Build paths object from routes\n // Convert Express-style :param to OpenAPI-style {param}\n routes.forEach(route => {\n if (!route.openapi) return;\n\n const openapiPath = route.path.replace(/:(\\w+)/g, '{$1}');\n if (!paths[openapiPath]) {\n paths[openapiPath] = {};\n }\n\n // Convert Zod schemas to JSON Schema\n paths[openapiPath][route.method.toLowerCase()] = convertZodToJsonSchema(route.openapi);\n });\n\n return {\n openapi: '3.1.0',\n info: {\n title: info.title,\n version: info.version,\n description: info.description,\n },\n paths,\n };\n}\n","import type z from 'zod';\nimport { generateRouteOpenAPI } from '../openapi-utils';\nimport type { InferParams, ServerRoute, ServerRouteHandler } from './index';\n\ninterface RouteConfig<\n TPathSchema extends z.ZodTypeAny | undefined = undefined,\n TQuerySchema extends z.ZodTypeAny | undefined = undefined,\n TBodySchema extends z.ZodTypeAny | undefined = undefined,\n TResponseSchema extends z.ZodTypeAny | undefined = undefined,\n TResponseType extends 'stream' | 'json' | 'datastream-response' = 'json',\n> {\n method: ServerRoute['method'];\n path: string;\n responseType: TResponseType;\n streamFormat?: 'sse' | 'stream'; // Only used when responseType is 'stream'\n handler: ServerRouteHandler<\n InferParams<TPathSchema, TQuerySchema, TBodySchema>,\n TResponseSchema extends z.ZodTypeAny ? z.infer<TResponseSchema> : unknown,\n TResponseType\n >;\n pathParamSchema?: TPathSchema;\n queryParamSchema?: TQuerySchema;\n bodySchema?: TBodySchema;\n responseSchema?: TResponseSchema;\n summary?: string;\n description?: string;\n tags?: string[];\n deprecated?: boolean;\n maxBodySize?: number;\n}\n\n/**\n * Creates a server route with auto-generated OpenAPI specification and type-safe handler inference.\n *\n * The handler parameters are automatically inferred from the provided schemas:\n * - pathParamSchema: Infers path parameter types (e.g., :agentId)\n * - queryParamSchema: Infers query parameter types\n * - bodySchema: Infers request body types\n * - Runtime context (mastra, requestContext, tools, taskStore) is always available\n *\n * @param config - Route configuration including schemas, handler, and metadata\n * @returns Complete ServerRoute with OpenAPI spec\n *\n * @example\n * ```typescript\n * export const getAgentRoute = createRoute({\n * method: 'GET',\n * path: '/api/agents/:agentId',\n * responseType: 'json',\n * pathParamSchema: z.object({ agentId: z.string() }),\n * responseSchema: serializedAgentSchema,\n * handler: async ({ agentId, mastra, requestContext }) => {\n * // agentId is typed as string\n * // mastra, requestContext, tools, taskStore are always available\n * return mastra.getAgentById(agentId);\n * },\n * summary: 'Get agent by ID',\n * description: 'Returns details for a specific agent',\n * tags: ['Agents'],\n * });\n * ```\n */\nexport function createRoute<\n TPathSchema extends z.ZodTypeAny | undefined = undefined,\n TQuerySchema extends z.ZodTypeAny | undefined = undefined,\n TBodySchema extends z.ZodTypeAny | undefined = undefined,\n TResponseSchema extends z.ZodTypeAny | undefined = undefined,\n TResponseType extends 'stream' | 'json' | 'datastream-response' = 'json',\n>(\n config: RouteConfig<TPathSchema, TQuerySchema, TBodySchema, TResponseSchema, TResponseType>,\n): ServerRoute<\n InferParams<TPathSchema, TQuerySchema, TBodySchema>,\n TResponseSchema extends z.ZodTypeAny ? z.infer<TResponseSchema> : unknown,\n TResponseType\n> {\n const { summary, description, tags, deprecated, ...baseRoute } = config;\n\n // Generate OpenAPI specification from the route config\n // Skip OpenAPI generation for 'ALL' method as it doesn't map to OpenAPI\n const openapi =\n config.method !== 'ALL'\n ? generateRouteOpenAPI({\n method: config.method as 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH',\n path: config.path,\n summary,\n description,\n tags,\n pathParamSchema: config.pathParamSchema,\n queryParamSchema: config.queryParamSchema,\n bodySchema: config.bodySchema,\n responseSchema: config.responseSchema,\n deprecated,\n })\n : undefined;\n\n return {\n ...baseRoute,\n openapi: openapi as any,\n deprecated,\n };\n}\n"]}