@mastra/core 1.0.0-beta.5 → 1.0.0-beta.7

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 (421) hide show
  1. package/CHANGELOG.md +448 -0
  2. package/dist/agent/agent-legacy.d.ts +17 -20
  3. package/dist/agent/agent-legacy.d.ts.map +1 -1
  4. package/dist/agent/agent-types.test-d.d.ts +2 -0
  5. package/dist/agent/agent-types.test-d.d.ts.map +1 -0
  6. package/dist/agent/agent.d.ts +4 -4
  7. package/dist/agent/agent.d.ts.map +1 -1
  8. package/dist/agent/agent.types.d.ts +1 -1
  9. package/dist/agent/agent.types.d.ts.map +1 -1
  10. package/dist/agent/index.cjs +9 -9
  11. package/dist/agent/index.js +2 -2
  12. package/dist/agent/message-list/index.cjs +3 -3
  13. package/dist/agent/message-list/index.d.ts +49 -0
  14. package/dist/agent/message-list/index.d.ts.map +1 -1
  15. package/dist/agent/message-list/index.js +1 -1
  16. package/dist/agent/save-queue/index.d.ts +3 -1
  17. package/dist/agent/save-queue/index.d.ts.map +1 -1
  18. package/dist/agent/test-utils.d.ts +37 -0
  19. package/dist/agent/test-utils.d.ts.map +1 -1
  20. package/dist/agent/trip-wire.d.ts.map +1 -1
  21. package/dist/agent/types.d.ts +18 -3
  22. package/dist/agent/types.d.ts.map +1 -1
  23. package/dist/agent/utils.d.ts.map +1 -1
  24. package/dist/agent/workflows/prepare-stream/index.d.ts +10 -10
  25. package/dist/agent/workflows/prepare-stream/index.d.ts.map +1 -1
  26. package/dist/agent/workflows/prepare-stream/map-results-step.d.ts +1 -3
  27. package/dist/agent/workflows/prepare-stream/map-results-step.d.ts.map +1 -1
  28. package/dist/agent/workflows/prepare-stream/prepare-memory-step.d.ts +4 -4
  29. package/dist/agent/workflows/prepare-stream/prepare-memory-step.d.ts.map +1 -1
  30. package/dist/agent/workflows/prepare-stream/prepare-tools-step.d.ts +4 -4
  31. package/dist/agent/workflows/prepare-stream/prepare-tools-step.d.ts.map +1 -1
  32. package/dist/agent/workflows/prepare-stream/schema.d.ts +14 -14
  33. package/dist/agent/workflows/prepare-stream/schema.d.ts.map +1 -1
  34. package/dist/base.cjs +2 -2
  35. package/dist/base.js +1 -1
  36. package/dist/bundler/index.cjs +2 -2
  37. package/dist/bundler/index.js +1 -1
  38. package/dist/cache/index.cjs +3 -3
  39. package/dist/cache/index.js +1 -1
  40. package/dist/{chunk-556MJ7CL.cjs → chunk-26YAGTXK.cjs} +43 -37
  41. package/dist/chunk-26YAGTXK.cjs.map +1 -0
  42. package/dist/{chunk-OJNJA5ZI.js → chunk-3CKZSDTQ.js} +3 -3
  43. package/dist/{chunk-OJNJA5ZI.js.map → chunk-3CKZSDTQ.js.map} +1 -1
  44. package/dist/{chunk-E7K4FTLN.cjs → chunk-3EYBRHB2.cjs} +18 -2
  45. package/dist/chunk-3EYBRHB2.cjs.map +1 -0
  46. package/dist/{chunk-X7F4CSGR.cjs → chunk-3JA6VPNM.cjs} +2 -2
  47. package/dist/chunk-3JA6VPNM.cjs.map +1 -0
  48. package/dist/{chunk-TQTAMPSC.js → chunk-3N3QE4ZK.js} +3 -3
  49. package/dist/chunk-3N3QE4ZK.js.map +1 -0
  50. package/dist/{chunk-BMAFVZ2D.cjs → chunk-4AP234N6.cjs} +4 -4
  51. package/dist/{chunk-BMAFVZ2D.cjs.map → chunk-4AP234N6.cjs.map} +1 -1
  52. package/dist/{chunk-XIDKHXNR.js → chunk-4F6RAJFU.js} +33 -6
  53. package/dist/chunk-4F6RAJFU.js.map +1 -0
  54. package/dist/{chunk-B5J5HYDN.js → chunk-4GTU7MB2.js} +160 -8
  55. package/dist/chunk-4GTU7MB2.js.map +1 -0
  56. package/dist/{chunk-ISMGVGUM.cjs → chunk-4JKEUSCC.cjs} +4 -4
  57. package/dist/{chunk-ISMGVGUM.cjs.map → chunk-4JKEUSCC.cjs.map} +1 -1
  58. package/dist/{chunk-KJIQGPQR.js → chunk-5T53HHNP.js} +24 -10
  59. package/dist/chunk-5T53HHNP.js.map +1 -0
  60. package/dist/{chunk-CBAB7GOD.cjs → chunk-6BJ7XHRH.cjs} +2 -2
  61. package/dist/{chunk-CBAB7GOD.cjs.map → chunk-6BJ7XHRH.cjs.map} +1 -1
  62. package/dist/{chunk-RROQ46B6.cjs → chunk-6C2PU6J4.cjs} +31 -47
  63. package/dist/chunk-6C2PU6J4.cjs.map +1 -0
  64. package/dist/{chunk-J7O6WENZ.cjs → chunk-6TBWJV35.js} +5 -5
  65. package/dist/chunk-6TBWJV35.js.map +1 -0
  66. package/dist/{chunk-DSNPWVIG.cjs → chunk-AF74UXR5.cjs} +4 -3
  67. package/dist/chunk-AF74UXR5.cjs.map +1 -0
  68. package/dist/chunk-AZQMPE7G.cjs +4981 -0
  69. package/dist/chunk-AZQMPE7G.cjs.map +1 -0
  70. package/dist/{chunk-HNHZGFZY.cjs → chunk-CZEJQSWB.cjs} +10 -2
  71. package/dist/chunk-CZEJQSWB.cjs.map +1 -0
  72. package/dist/{chunk-KEXGB7FK.cjs → chunk-DGV2FWB4.cjs} +7 -7
  73. package/dist/{chunk-KEXGB7FK.cjs.map → chunk-DGV2FWB4.cjs.map} +1 -1
  74. package/dist/{chunk-YDFX3JR2.js → chunk-DMPHPHMU.js} +174 -12
  75. package/dist/chunk-DMPHPHMU.js.map +1 -0
  76. package/dist/{chunk-76K3IYWM.js → chunk-EE5NIGJ4.js} +3 -3
  77. package/dist/{chunk-76K3IYWM.js.map → chunk-EE5NIGJ4.js.map} +1 -1
  78. package/dist/{chunk-Y63IFHEZ.cjs → chunk-EOPEDKLG.cjs} +4 -4
  79. package/dist/chunk-EOPEDKLG.cjs.map +1 -0
  80. package/dist/{chunk-T2CJRA6E.js → chunk-EPMSC67U.js} +145 -19
  81. package/dist/chunk-EPMSC67U.js.map +1 -0
  82. package/dist/{chunk-NZAXAFI3.js → chunk-F2GAJSBI.js} +3 -3
  83. package/dist/{chunk-NZAXAFI3.js.map → chunk-F2GAJSBI.js.map} +1 -1
  84. package/dist/{chunk-5O52O25J.js → chunk-F54IK3GJ.js} +2 -2
  85. package/dist/chunk-F54IK3GJ.js.map +1 -0
  86. package/dist/{chunk-KIZIOFZC.js → chunk-FNSFXWDN.js} +17 -3
  87. package/dist/chunk-FNSFXWDN.js.map +1 -0
  88. package/dist/{chunk-ZTTMSCLU.js → chunk-G32WDDGV.js} +85 -9
  89. package/dist/chunk-G32WDDGV.js.map +1 -0
  90. package/dist/{chunk-5SA2EZ33.js → chunk-GZ6MCDK2.js} +147 -15
  91. package/dist/chunk-GZ6MCDK2.js.map +1 -0
  92. package/dist/{chunk-NHP6ZIDG.cjs → chunk-HJNEZRI4.cjs} +28 -174
  93. package/dist/chunk-HJNEZRI4.cjs.map +1 -0
  94. package/dist/{chunk-S6URFGCZ.js → chunk-LSHPJWM5.js} +3 -3
  95. package/dist/{chunk-S6URFGCZ.js.map → chunk-LSHPJWM5.js.map} +1 -1
  96. package/dist/{chunk-XJQX54QP.cjs → chunk-M7CQULF7.cjs} +97 -16
  97. package/dist/chunk-M7CQULF7.cjs.map +1 -0
  98. package/dist/{chunk-D7CJ4HIQ.js → chunk-NAKPEQEQ.js} +10 -156
  99. package/dist/chunk-NAKPEQEQ.js.map +1 -0
  100. package/dist/{chunk-KJ2SW6VA.js → chunk-NRUZYMHE.js} +4 -3
  101. package/dist/chunk-NRUZYMHE.js.map +1 -0
  102. package/dist/{chunk-KWWD3U7G.cjs → chunk-PJ7AYWAX.cjs} +155 -29
  103. package/dist/chunk-PJ7AYWAX.cjs.map +1 -0
  104. package/dist/{chunk-7ZADRRDW.js → chunk-PK2A5WBG.js} +3 -3
  105. package/dist/chunk-PK2A5WBG.js.map +1 -0
  106. package/dist/{chunk-XBO6W7LZ.js → chunk-POM7FCH5.js} +6166 -4133
  107. package/dist/chunk-POM7FCH5.js.map +1 -0
  108. package/dist/{chunk-X7JMA3IY.js → chunk-PSCMWPLC.js} +2 -2
  109. package/dist/{chunk-X7JMA3IY.js.map → chunk-PSCMWPLC.js.map} +1 -1
  110. package/dist/{chunk-KP42JLXE.cjs → chunk-RBBEMTMA.cjs} +6199 -4154
  111. package/dist/chunk-RBBEMTMA.cjs.map +1 -0
  112. package/dist/chunk-TLLXRG2Z.js +4959 -0
  113. package/dist/chunk-TLLXRG2Z.js.map +1 -0
  114. package/dist/{chunk-SVLMF4UZ.cjs → chunk-TQB2HMEC.cjs} +45 -44
  115. package/dist/chunk-TQB2HMEC.cjs.map +1 -0
  116. package/dist/{chunk-Y6ROD72V.cjs → chunk-UIGRFDO6.cjs} +4 -4
  117. package/dist/{chunk-Y6ROD72V.cjs.map → chunk-UIGRFDO6.cjs.map} +1 -1
  118. package/dist/{chunk-PC6EKOWK.js → chunk-URBPEE67.js} +19 -31
  119. package/dist/chunk-URBPEE67.js.map +1 -0
  120. package/dist/{chunk-VYJXTHII.cjs → chunk-URMN7TTH.cjs} +148 -16
  121. package/dist/chunk-URMN7TTH.cjs.map +1 -0
  122. package/dist/{chunk-GRBGQ2GE.js → chunk-UVHSM2GU.cjs} +9 -3
  123. package/dist/chunk-UVHSM2GU.cjs.map +1 -0
  124. package/dist/{chunk-U3VE2EVB.cjs → chunk-VBKMNIWK.cjs} +30 -16
  125. package/dist/chunk-VBKMNIWK.cjs.map +1 -0
  126. package/dist/{chunk-V537VSV4.cjs → chunk-Y24HI6ND.cjs} +37 -10
  127. package/dist/chunk-Y24HI6ND.cjs.map +1 -0
  128. package/dist/{chunk-DQIZ5FFX.cjs → chunk-YBEW5YWC.cjs} +177 -15
  129. package/dist/chunk-YBEW5YWC.cjs.map +1 -0
  130. package/dist/{chunk-OUUPUAGA.cjs → chunk-YUXTDKYN.cjs} +168 -15
  131. package/dist/chunk-YUXTDKYN.cjs.map +1 -0
  132. package/dist/{chunk-IITXXVYI.cjs → chunk-YWMMBIOM.cjs} +10 -10
  133. package/dist/{chunk-IITXXVYI.cjs.map → chunk-YWMMBIOM.cjs.map} +1 -1
  134. package/dist/{chunk-3B2OPLGG.js → chunk-Z4Y554NX.js} +13 -7
  135. package/dist/chunk-Z4Y554NX.js.map +1 -0
  136. package/dist/{chunk-3ZQ7LX73.js → chunk-Z57R5WS4.js} +4 -4
  137. package/dist/{chunk-3ZQ7LX73.js.map → chunk-Z57R5WS4.js.map} +1 -1
  138. package/dist/{chunk-QM5SRDJX.js → chunk-ZUWJCGLM.js} +5 -4
  139. package/dist/chunk-ZUWJCGLM.js.map +1 -0
  140. package/dist/deployer/index.cjs +2 -2
  141. package/dist/deployer/index.js +1 -1
  142. package/dist/di/index.cjs +10 -2
  143. package/dist/di/index.d.ts +1 -1
  144. package/dist/di/index.d.ts.map +1 -1
  145. package/dist/di/index.js +1 -1
  146. package/dist/evals/base.d.ts +9 -1
  147. package/dist/evals/base.d.ts.map +1 -1
  148. package/dist/evals/index.cjs +9 -9
  149. package/dist/evals/index.js +2 -2
  150. package/dist/evals/scoreTraces/index.cjs +5 -5
  151. package/dist/evals/scoreTraces/index.js +2 -2
  152. package/dist/evals/types.d.ts +8 -8
  153. package/dist/index.cjs +2 -2
  154. package/dist/index.js +1 -1
  155. package/dist/integration/index.cjs +2 -2
  156. package/dist/integration/index.js +1 -1
  157. package/dist/llm/index.cjs +15 -15
  158. package/dist/llm/index.js +5 -5
  159. package/dist/llm/model/aisdk/v5/model.d.ts.map +1 -1
  160. package/dist/llm/model/gateways/constants.d.ts.map +1 -1
  161. package/dist/llm/model/gateways/models-dev.d.ts.map +1 -1
  162. package/dist/llm/model/model.d.ts.map +1 -1
  163. package/dist/llm/model/model.loop.d.ts +1 -1
  164. package/dist/llm/model/model.loop.d.ts.map +1 -1
  165. package/dist/llm/model/provider-options.d.ts +4 -1
  166. package/dist/llm/model/provider-options.d.ts.map +1 -1
  167. package/dist/llm/model/provider-registry.d.ts.map +1 -1
  168. package/dist/llm/model/provider-types.generated.d.ts +39 -1
  169. package/dist/logger/constants.d.ts +1 -0
  170. package/dist/logger/constants.d.ts.map +1 -1
  171. package/dist/logger/index.cjs +11 -11
  172. package/dist/logger/index.js +2 -2
  173. package/dist/logger/transport.d.ts +1 -1
  174. package/dist/logger/transport.d.ts.map +1 -1
  175. package/dist/loop/index.cjs +2 -2
  176. package/dist/loop/index.js +1 -1
  177. package/dist/loop/loop.d.ts.map +1 -1
  178. package/dist/loop/network/index.d.ts +2 -2
  179. package/dist/loop/network/index.d.ts.map +1 -1
  180. package/dist/loop/test-utils/fullStream.d.ts.map +1 -1
  181. package/dist/loop/types.d.ts +5 -2
  182. package/dist/loop/types.d.ts.map +1 -1
  183. package/dist/loop/workflows/agentic-execution/index.d.ts +96 -96
  184. package/dist/loop/workflows/agentic-execution/llm-execution-step.d.ts +65 -65
  185. package/dist/loop/workflows/agentic-execution/llm-execution-step.d.ts.map +1 -1
  186. package/dist/loop/workflows/agentic-execution/llm-mapping-step.d.ts +32 -32
  187. package/dist/loop/workflows/agentic-execution/llm-mapping-step.d.ts.map +1 -1
  188. package/dist/loop/workflows/agentic-loop/index.d.ts +97 -97
  189. package/dist/loop/workflows/agentic-loop/index.d.ts.map +1 -1
  190. package/dist/loop/workflows/schema.d.ts +32 -32
  191. package/dist/loop/workflows/stream.d.ts +1 -1
  192. package/dist/loop/workflows/stream.d.ts.map +1 -1
  193. package/dist/mastra/index.cjs +2 -2
  194. package/dist/mastra/index.d.ts +55 -0
  195. package/dist/mastra/index.d.ts.map +1 -1
  196. package/dist/mastra/index.js +1 -1
  197. package/dist/mcp/index.cjs +4 -4
  198. package/dist/mcp/index.js +2 -2
  199. package/dist/memory/index.cjs +21 -382
  200. package/dist/memory/index.cjs.map +1 -1
  201. package/dist/memory/index.js +1 -382
  202. package/dist/memory/index.js.map +1 -1
  203. package/dist/memory/memory.d.ts +22 -18
  204. package/dist/memory/memory.d.ts.map +1 -1
  205. package/dist/memory/mock.d.ts +6 -1
  206. package/dist/memory/mock.d.ts.map +1 -1
  207. package/dist/memory/types.d.ts +69 -11
  208. package/dist/memory/types.d.ts.map +1 -1
  209. package/dist/models-dev-6GD3644V.js +3 -0
  210. package/dist/{models-dev-F6MTIYTO.js.map → models-dev-6GD3644V.js.map} +1 -1
  211. package/dist/models-dev-IUQBXJSS.cjs +12 -0
  212. package/dist/{models-dev-XIVR5EJV.cjs.map → models-dev-IUQBXJSS.cjs.map} +1 -1
  213. package/dist/netlify-GXJ5D5DD.js +3 -0
  214. package/dist/{netlify-RX3JXCFQ.js.map → netlify-GXJ5D5DD.js.map} +1 -1
  215. package/dist/netlify-KJLY3GFS.cjs +12 -0
  216. package/dist/{netlify-MXBOGAJR.cjs.map → netlify-KJLY3GFS.cjs.map} +1 -1
  217. package/dist/observability/index.cjs +16 -8
  218. package/dist/observability/index.js +1 -1
  219. package/dist/observability/types/tracing.d.ts +183 -3
  220. package/dist/observability/types/tracing.d.ts.map +1 -1
  221. package/dist/observability/utils.d.ts +47 -1
  222. package/dist/observability/utils.d.ts.map +1 -1
  223. package/dist/processors/index.cjs +35 -11
  224. package/dist/processors/index.d.ts +99 -21
  225. package/dist/processors/index.d.ts.map +1 -1
  226. package/dist/processors/index.js +1 -1
  227. package/dist/processors/memory/index.d.ts +7 -0
  228. package/dist/processors/memory/index.d.ts.map +1 -0
  229. package/dist/processors/memory/message-history.d.ts +43 -0
  230. package/dist/processors/memory/message-history.d.ts.map +1 -0
  231. package/dist/processors/memory/semantic-recall.d.ts +152 -0
  232. package/dist/processors/memory/semantic-recall.d.ts.map +1 -0
  233. package/dist/processors/memory/working-memory.d.ts +65 -0
  234. package/dist/processors/memory/working-memory.d.ts.map +1 -0
  235. package/dist/processors/processors/index.d.ts +2 -1
  236. package/dist/processors/processors/index.d.ts.map +1 -1
  237. package/dist/processors/processors/language-detector.d.ts +14 -0
  238. package/dist/processors/processors/language-detector.d.ts.map +1 -1
  239. package/dist/processors/processors/moderation.d.ts +14 -0
  240. package/dist/processors/processors/moderation.d.ts.map +1 -1
  241. package/dist/processors/processors/pii-detector.d.ts +14 -0
  242. package/dist/processors/processors/pii-detector.d.ts.map +1 -1
  243. package/dist/processors/processors/prompt-injection-detector.d.ts +14 -0
  244. package/dist/processors/processors/prompt-injection-detector.d.ts.map +1 -1
  245. package/dist/processors/processors/structured-output.d.ts +2 -1
  246. package/dist/processors/processors/structured-output.d.ts.map +1 -1
  247. package/dist/processors/processors/token-limiter.d.ts +21 -11
  248. package/dist/processors/processors/token-limiter.d.ts.map +1 -1
  249. package/dist/processors/processors/tool-call-filter.d.ts +28 -0
  250. package/dist/processors/processors/tool-call-filter.d.ts.map +1 -0
  251. package/dist/processors/runner.d.ts +35 -4
  252. package/dist/processors/runner.d.ts.map +1 -1
  253. package/dist/provider-registry-7IFOXWPR.cjs +40 -0
  254. package/dist/{provider-registry-NBRXBOQT.cjs.map → provider-registry-7IFOXWPR.cjs.map} +1 -1
  255. package/dist/provider-registry-ZTMZMTVV.js +3 -0
  256. package/dist/{provider-registry-3LUCE7FT.js.map → provider-registry-ZTMZMTVV.js.map} +1 -1
  257. package/dist/provider-registry.json +111 -6
  258. package/dist/{registry-generator-DEPPRYYJ.cjs → registry-generator-34SC4TAU.cjs} +2 -2
  259. package/dist/registry-generator-34SC4TAU.cjs.map +1 -0
  260. package/dist/{registry-generator-FLW6NV42.js → registry-generator-UMTNPBJX.js} +2 -2
  261. package/dist/registry-generator-UMTNPBJX.js.map +1 -0
  262. package/dist/relevance/index.cjs +2 -2
  263. package/dist/relevance/index.js +1 -1
  264. package/dist/request-context/index.cjs +10 -2
  265. package/dist/request-context/index.d.ts +26 -0
  266. package/dist/request-context/index.d.ts.map +1 -1
  267. package/dist/request-context/index.js +1 -1
  268. package/dist/server/base.d.ts +51 -0
  269. package/dist/server/base.d.ts.map +1 -0
  270. package/dist/server/index.cjs +81 -2
  271. package/dist/server/index.cjs.map +1 -1
  272. package/dist/server/index.d.ts +3 -0
  273. package/dist/server/index.d.ts.map +1 -1
  274. package/dist/server/index.js +79 -2
  275. package/dist/server/index.js.map +1 -1
  276. package/dist/server/simple-auth.d.ts +27 -0
  277. package/dist/server/simple-auth.d.ts.map +1 -0
  278. package/dist/storage/base.d.ts +22 -1
  279. package/dist/storage/base.d.ts.map +1 -1
  280. package/dist/storage/domains/memory/inmemory.d.ts.map +1 -1
  281. package/dist/storage/index.cjs +49 -29
  282. package/dist/storage/index.js +1 -1
  283. package/dist/storage/storageWithInit.d.ts.map +1 -1
  284. package/dist/storage/types.d.ts +1 -1
  285. package/dist/storage/types.d.ts.map +1 -1
  286. package/dist/storage/utils.d.ts +82 -0
  287. package/dist/storage/utils.d.ts.map +1 -1
  288. package/dist/stream/MastraAgentNetworkStream.d.ts +1 -1
  289. package/dist/stream/MastraAgentNetworkStream.d.ts.map +1 -1
  290. package/dist/stream/MastraWorkflowStream.d.ts +1 -1
  291. package/dist/stream/MastraWorkflowStream.d.ts.map +1 -1
  292. package/dist/stream/RunOutput.d.ts +2 -2
  293. package/dist/stream/RunOutput.d.ts.map +1 -1
  294. package/dist/stream/aisdk/v5/execute.d.ts +3 -2
  295. package/dist/stream/aisdk/v5/execute.d.ts.map +1 -1
  296. package/dist/stream/aisdk/v5/input.d.ts +4 -1
  297. package/dist/stream/aisdk/v5/input.d.ts.map +1 -1
  298. package/dist/stream/aisdk/v5/output.d.ts +1 -1
  299. package/dist/stream/aisdk/v5/output.d.ts.map +1 -1
  300. package/dist/stream/aisdk/v5/transform.d.ts.map +1 -1
  301. package/dist/stream/base/base.d.ts +1 -1
  302. package/dist/stream/base/base.d.ts.map +1 -1
  303. package/dist/stream/base/output-format-handlers.d.ts +1 -1
  304. package/dist/stream/base/output-format-handlers.d.ts.map +1 -1
  305. package/dist/stream/base/output.d.ts +1 -1
  306. package/dist/stream/base/output.d.ts.map +1 -1
  307. package/dist/stream/index.cjs +11 -11
  308. package/dist/stream/index.js +2 -2
  309. package/dist/stream/types.d.ts +2 -0
  310. package/dist/stream/types.d.ts.map +1 -1
  311. package/dist/test-utils/llm-mock.cjs +44 -10
  312. package/dist/test-utils/llm-mock.cjs.map +1 -1
  313. package/dist/test-utils/llm-mock.d.ts +3 -0
  314. package/dist/test-utils/llm-mock.d.ts.map +1 -1
  315. package/dist/test-utils/llm-mock.js +36 -6
  316. package/dist/test-utils/llm-mock.js.map +1 -1
  317. package/dist/tools/index.cjs +6 -6
  318. package/dist/tools/index.js +2 -2
  319. package/dist/tools/is-vercel-tool.cjs +2 -2
  320. package/dist/tools/is-vercel-tool.js +1 -1
  321. package/dist/tools/stream.d.ts +18 -2
  322. package/dist/tools/stream.d.ts.map +1 -1
  323. package/dist/tools/tool-builder/builder.d.ts.map +1 -1
  324. package/dist/tools/tool.d.ts +13 -0
  325. package/dist/tools/tool.d.ts.map +1 -1
  326. package/dist/tools/types.d.ts +24 -3
  327. package/dist/tools/types.d.ts.map +1 -1
  328. package/dist/tools/validation.d.ts +1 -1
  329. package/dist/tools/validation.d.ts.map +1 -1
  330. package/dist/tts/index.cjs +2 -2
  331. package/dist/tts/index.js +1 -1
  332. package/dist/utils.cjs +22 -22
  333. package/dist/utils.d.ts +1 -1
  334. package/dist/utils.d.ts.map +1 -1
  335. package/dist/utils.js +1 -1
  336. package/dist/vector/index.cjs +4 -4
  337. package/dist/vector/index.js +2 -2
  338. package/dist/voice/index.cjs +6 -6
  339. package/dist/voice/index.js +1 -1
  340. package/dist/workflows/default.d.ts +176 -281
  341. package/dist/workflows/default.d.ts.map +1 -1
  342. package/dist/workflows/evented/index.cjs +10 -10
  343. package/dist/workflows/evented/index.js +1 -1
  344. package/dist/workflows/evented/step-executor.d.ts +1 -1
  345. package/dist/workflows/evented/step-executor.d.ts.map +1 -1
  346. package/dist/workflows/execution-engine.d.ts +4 -2
  347. package/dist/workflows/execution-engine.d.ts.map +1 -1
  348. package/dist/workflows/handlers/control-flow.d.ts +135 -0
  349. package/dist/workflows/handlers/control-flow.d.ts.map +1 -0
  350. package/dist/workflows/handlers/entry.d.ts +45 -0
  351. package/dist/workflows/handlers/entry.d.ts.map +1 -0
  352. package/dist/workflows/handlers/sleep.d.ts +62 -0
  353. package/dist/workflows/handlers/sleep.d.ts.map +1 -0
  354. package/dist/workflows/handlers/step.d.ts +60 -0
  355. package/dist/workflows/handlers/step.d.ts.map +1 -0
  356. package/dist/workflows/index.cjs +20 -20
  357. package/dist/workflows/index.js +1 -1
  358. package/dist/workflows/step.d.ts +2 -2
  359. package/dist/workflows/step.d.ts.map +1 -1
  360. package/dist/workflows/types.d.ts +158 -3
  361. package/dist/workflows/types.d.ts.map +1 -1
  362. package/dist/workflows/workflow.d.ts +8 -6
  363. package/dist/workflows/workflow.d.ts.map +1 -1
  364. package/package.json +8 -5
  365. package/src/llm/model/provider-types.generated.d.ts +39 -1
  366. package/dist/chunk-3B2OPLGG.js.map +0 -1
  367. package/dist/chunk-3PSWNGBF.js +0 -3
  368. package/dist/chunk-3PSWNGBF.js.map +0 -1
  369. package/dist/chunk-436FFEF6.js +0 -34
  370. package/dist/chunk-436FFEF6.js.map +0 -1
  371. package/dist/chunk-556MJ7CL.cjs.map +0 -1
  372. package/dist/chunk-5O52O25J.js.map +0 -1
  373. package/dist/chunk-5SA2EZ33.js.map +0 -1
  374. package/dist/chunk-7ZADRRDW.js.map +0 -1
  375. package/dist/chunk-B5J5HYDN.js.map +0 -1
  376. package/dist/chunk-D7CJ4HIQ.js.map +0 -1
  377. package/dist/chunk-DQIZ5FFX.cjs.map +0 -1
  378. package/dist/chunk-DSNPWVIG.cjs.map +0 -1
  379. package/dist/chunk-E7K4FTLN.cjs.map +0 -1
  380. package/dist/chunk-GRBGQ2GE.js.map +0 -1
  381. package/dist/chunk-HNHZGFZY.cjs.map +0 -1
  382. package/dist/chunk-J7O6WENZ.cjs.map +0 -1
  383. package/dist/chunk-KIZIOFZC.js.map +0 -1
  384. package/dist/chunk-KJ2SW6VA.js.map +0 -1
  385. package/dist/chunk-KJIQGPQR.js.map +0 -1
  386. package/dist/chunk-KP42JLXE.cjs.map +0 -1
  387. package/dist/chunk-KWWD3U7G.cjs.map +0 -1
  388. package/dist/chunk-NHP6ZIDG.cjs.map +0 -1
  389. package/dist/chunk-OUUPUAGA.cjs.map +0 -1
  390. package/dist/chunk-PC6EKOWK.js.map +0 -1
  391. package/dist/chunk-PE3V7GUL.cjs +0 -4
  392. package/dist/chunk-PE3V7GUL.cjs.map +0 -1
  393. package/dist/chunk-QGWNF2QJ.cjs +0 -1697
  394. package/dist/chunk-QGWNF2QJ.cjs.map +0 -1
  395. package/dist/chunk-QM5SRDJX.js.map +0 -1
  396. package/dist/chunk-RROQ46B6.cjs.map +0 -1
  397. package/dist/chunk-SVLMF4UZ.cjs.map +0 -1
  398. package/dist/chunk-T2CJRA6E.js.map +0 -1
  399. package/dist/chunk-T2UNO766.js +0 -1694
  400. package/dist/chunk-T2UNO766.js.map +0 -1
  401. package/dist/chunk-TQTAMPSC.js.map +0 -1
  402. package/dist/chunk-U3VE2EVB.cjs.map +0 -1
  403. package/dist/chunk-V3VLOOSW.cjs +0 -36
  404. package/dist/chunk-V3VLOOSW.cjs.map +0 -1
  405. package/dist/chunk-V537VSV4.cjs.map +0 -1
  406. package/dist/chunk-VYJXTHII.cjs.map +0 -1
  407. package/dist/chunk-X7F4CSGR.cjs.map +0 -1
  408. package/dist/chunk-XBO6W7LZ.js.map +0 -1
  409. package/dist/chunk-XIDKHXNR.js.map +0 -1
  410. package/dist/chunk-XJQX54QP.cjs.map +0 -1
  411. package/dist/chunk-Y63IFHEZ.cjs.map +0 -1
  412. package/dist/chunk-YDFX3JR2.js.map +0 -1
  413. package/dist/chunk-ZTTMSCLU.js.map +0 -1
  414. package/dist/models-dev-F6MTIYTO.js +0 -3
  415. package/dist/models-dev-XIVR5EJV.cjs +0 -12
  416. package/dist/netlify-MXBOGAJR.cjs +0 -12
  417. package/dist/netlify-RX3JXCFQ.js +0 -3
  418. package/dist/provider-registry-3LUCE7FT.js +0 -3
  419. package/dist/provider-registry-NBRXBOQT.cjs +0 -40
  420. package/dist/registry-generator-DEPPRYYJ.cjs.map +0 -1
  421. package/dist/registry-generator-FLW6NV42.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/llm/model/gateways/azure.ts","../src/llm/model/gateways/index.ts","../src/llm/model/router.ts","../src/llm/model/resolve-model.ts","../src/llm/model/embedding-router.ts"],"names":["modelInstance"],"mappings":"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","file":"chunk-NAKPEQEQ.js","sourcesContent":["import { createAzure } from '@ai-sdk/azure';\nimport type { LanguageModelV2 } from '@ai-sdk/provider-v5';\nimport { InMemoryServerCache } from '../../../cache/inmemory.js';\nimport { MastraError } from '../../../error/index.js';\nimport { MastraModelGateway } from './base.js';\nimport type { ProviderConfig } from './base.js';\n\ninterface AzureTokenResponse {\n token_type: 'Bearer';\n expires_in: number;\n access_token: string;\n}\n\ninterface AzureDeployment {\n name: string;\n properties: {\n model: {\n name: string;\n version: string;\n format: string;\n };\n provisioningState: string;\n };\n}\n\ninterface AzureDeploymentsResponse {\n value: AzureDeployment[];\n nextLink?: string;\n}\n\ninterface CachedToken {\n token: string;\n expiresAt: number;\n}\n\nexport interface AzureOpenAIGatewayConfig {\n resourceName: string;\n apiKey: string;\n apiVersion?: string;\n deployments?: string[];\n management?: {\n tenantId: string;\n clientId: string;\n clientSecret: string;\n subscriptionId: string;\n resourceGroup: string;\n };\n}\n\nexport class AzureOpenAIGateway extends MastraModelGateway {\n readonly id = 'azure-openai';\n readonly name = 'azure-openai';\n private tokenCache = new InMemoryServerCache();\n\n constructor(private config: AzureOpenAIGatewayConfig) {\n super();\n this.validateConfig();\n }\n\n private validateConfig(): void {\n if (!this.config.resourceName) {\n throw new MastraError({\n id: 'AZURE_GATEWAY_INVALID_CONFIG',\n domain: 'LLM',\n category: 'UNKNOWN',\n text: 'resourceName is required for Azure OpenAI gateway',\n });\n }\n\n if (!this.config.apiKey) {\n throw new MastraError({\n id: 'AZURE_GATEWAY_INVALID_CONFIG',\n domain: 'LLM',\n category: 'UNKNOWN',\n text: 'apiKey is required for Azure OpenAI gateway',\n });\n }\n\n const hasDeployments = this.config.deployments && this.config.deployments.length > 0;\n const hasManagement = this.config.management !== undefined;\n\n if (hasDeployments && hasManagement) {\n console.warn(\n '[AzureOpenAIGateway] Both deployments and management credentials provided. Using static deployments list and ignoring management API.',\n );\n }\n\n if (hasManagement) {\n this.getManagementCredentials(this.config.management!);\n }\n }\n\n async fetchProviders(): Promise<Record<string, ProviderConfig>> {\n if (this.config.deployments && this.config.deployments.length > 0) {\n return {\n 'azure-openai': {\n apiKeyEnvVar: [],\n apiKeyHeader: 'api-key',\n name: 'Azure OpenAI',\n models: this.config.deployments,\n docUrl: 'https://learn.microsoft.com/en-us/azure/ai-services/openai/',\n gateway: 'azure-openai',\n },\n };\n }\n\n if (!this.config.management) {\n return {\n 'azure-openai': {\n apiKeyEnvVar: [],\n apiKeyHeader: 'api-key',\n name: 'Azure OpenAI',\n models: [],\n docUrl: 'https://learn.microsoft.com/en-us/azure/ai-services/openai/',\n gateway: 'azure-openai',\n },\n };\n }\n\n try {\n const credentials = this.getManagementCredentials(this.config.management);\n\n const token = await this.getAzureADToken({\n tenantId: credentials.tenantId,\n clientId: credentials.clientId,\n clientSecret: credentials.clientSecret,\n });\n\n const deployments = await this.fetchDeployments(token, {\n subscriptionId: credentials.subscriptionId,\n resourceGroup: credentials.resourceGroup,\n resourceName: this.config.resourceName,\n });\n\n return {\n 'azure-openai': {\n apiKeyEnvVar: [],\n apiKeyHeader: 'api-key',\n name: 'Azure OpenAI',\n models: deployments.map(d => d.name),\n docUrl: 'https://learn.microsoft.com/en-us/azure/ai-services/openai/',\n gateway: 'azure-openai',\n },\n };\n } catch (error) {\n const errorMsg = error instanceof Error ? error.message : String(error);\n console.warn(\n `[AzureOpenAIGateway] Deployment discovery failed: ${errorMsg}`,\n '\\nReturning fallback configuration. Azure OpenAI can still be used by manually specifying deployment names.',\n );\n\n return {\n 'azure-openai': {\n apiKeyEnvVar: [],\n apiKeyHeader: 'api-key',\n name: 'Azure OpenAI',\n models: [],\n docUrl: 'https://learn.microsoft.com/en-us/azure/ai-services/openai/',\n gateway: 'azure-openai',\n },\n };\n }\n }\n\n private getManagementCredentials(management: NonNullable<AzureOpenAIGatewayConfig['management']>) {\n const { tenantId, clientId, clientSecret, subscriptionId, resourceGroup } = management;\n\n const missing = [];\n if (!tenantId) missing.push('tenantId');\n if (!clientId) missing.push('clientId');\n if (!clientSecret) missing.push('clientSecret');\n if (!subscriptionId) missing.push('subscriptionId');\n if (!resourceGroup) missing.push('resourceGroup');\n\n if (missing.length > 0) {\n throw new MastraError({\n id: 'AZURE_MANAGEMENT_CREDENTIALS_MISSING',\n domain: 'LLM',\n category: 'UNKNOWN',\n text: `Management credentials incomplete. Missing: ${missing.join(', ')}. Required fields: tenantId, clientId, clientSecret, subscriptionId, resourceGroup.`,\n });\n }\n\n return {\n tenantId,\n clientId,\n clientSecret,\n subscriptionId,\n resourceGroup,\n };\n }\n\n private async getAzureADToken(credentials: {\n tenantId: string;\n clientId: string;\n clientSecret: string;\n }): Promise<string> {\n const { tenantId, clientId, clientSecret } = credentials;\n\n const cacheKey = `azure-mgmt-token:${tenantId}:${clientId}`;\n\n const cached = (await this.tokenCache.get(cacheKey)) as CachedToken | undefined;\n if (cached && cached.expiresAt > Date.now() / 1000 + 60) {\n return cached.token;\n }\n\n const tokenEndpoint = `https://login.microsoftonline.com/${tenantId}/oauth2/v2.0/token`;\n\n const body = new URLSearchParams({\n grant_type: 'client_credentials',\n client_id: clientId,\n client_secret: clientSecret,\n scope: 'https://management.azure.com/.default',\n });\n\n const response = await fetch(tokenEndpoint, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n body: body.toString(),\n });\n\n if (!response.ok) {\n const error = await response.text();\n throw new MastraError({\n id: 'AZURE_AD_TOKEN_ERROR',\n domain: 'LLM',\n category: 'UNKNOWN',\n text: `Failed to get Azure AD token: ${response.status} ${error}`,\n });\n }\n\n const tokenResponse = (await response.json()) as AzureTokenResponse;\n\n const expiresAt = Math.floor(Date.now() / 1000) + tokenResponse.expires_in;\n\n await this.tokenCache.set(cacheKey, {\n token: tokenResponse.access_token,\n expiresAt,\n });\n\n return tokenResponse.access_token;\n }\n\n private async fetchDeployments(\n token: string,\n credentials: {\n subscriptionId: string;\n resourceGroup: string;\n resourceName: string;\n },\n ): Promise<AzureDeployment[]> {\n const { subscriptionId, resourceGroup, resourceName } = credentials;\n\n let url: string | undefined =\n `https://management.azure.com/subscriptions/${subscriptionId}/resourceGroups/${resourceGroup}/providers/Microsoft.CognitiveServices/accounts/${resourceName}/deployments?api-version=2024-10-01`;\n\n const allDeployments: AzureDeployment[] = [];\n\n while (url) {\n const response = await fetch(url, {\n headers: {\n Authorization: `Bearer ${token}`,\n 'Content-Type': 'application/json',\n },\n });\n\n if (!response.ok) {\n const error = await response.text();\n throw new MastraError({\n id: 'AZURE_DEPLOYMENTS_FETCH_ERROR',\n domain: 'LLM',\n category: 'UNKNOWN',\n text: `Failed to fetch Azure deployments: ${response.status} ${error}`,\n });\n }\n\n const data = (await response.json()) as AzureDeploymentsResponse;\n\n allDeployments.push(...data.value);\n\n url = data.nextLink;\n }\n\n const successfulDeployments = allDeployments.filter(d => d.properties.provisioningState === 'Succeeded');\n\n return successfulDeployments;\n }\n\n buildUrl(_routerId: string, _envVars?: typeof process.env): undefined {\n return undefined;\n }\n\n async getApiKey(_modelId: string): Promise<string> {\n return this.config.apiKey;\n }\n\n async resolveLanguageModel({\n modelId,\n apiKey,\n }: {\n modelId: string;\n providerId: string;\n apiKey: string;\n }): Promise<LanguageModelV2> {\n const apiVersion = this.config.apiVersion || '2024-04-01-preview';\n\n return createAzure({\n resourceName: this.config.resourceName,\n apiKey,\n apiVersion,\n useDeploymentBasedUrls: true,\n })(modelId);\n }\n}\n","import { MastraError } from '../../../error/index.js';\nimport type { MastraModelGateway } from './base.js';\nexport { MastraModelGateway, type ProviderConfig } from './base.js';\nexport { AzureOpenAIGateway, type AzureOpenAIGatewayConfig } from './azure.js';\nexport { ModelsDevGateway } from './models-dev.js';\nexport { NetlifyGateway } from './netlify.js';\n\n/**\n * Find the gateway that handles a specific model ID based on gateway ID\n * Gateway ID is used as the prefix (e.g., \"netlify\" for netlify gateway)\n * Exception: models.dev is a provider registry and doesn't use a prefix\n */\nexport function findGatewayForModel(gatewayId: string, gateways: MastraModelGateway[]): MastraModelGateway {\n // First, check for gateways whose ID matches the prefix (true gateways like netlify, openrouter, vercel)\n const prefixedGateway = gateways.find(\n (g: MastraModelGateway) => g.id !== 'models.dev' && (g.id === gatewayId || gatewayId.startsWith(`${g.id}/`)),\n );\n if (prefixedGateway) {\n return prefixedGateway;\n }\n\n // Then check models.dev (provider registry without prefix)\n const modelsDevGateway = gateways.find((g: MastraModelGateway) => g.id === 'models.dev');\n if (modelsDevGateway) {\n return modelsDevGateway;\n }\n\n throw new MastraError({\n id: 'MODEL_ROUTER_NO_GATEWAY_FOUND',\n category: 'USER',\n domain: 'MODEL_ROUTER',\n text: `No Mastra model router gateway found for model id ${gatewayId}`,\n });\n}\n","import { createHash } from 'node:crypto';\nimport { createOpenAICompatible } from '@ai-sdk/openai-compatible-v5';\nimport type { LanguageModelV2, LanguageModelV2CallOptions, LanguageModelV2StreamPart } from '@ai-sdk/provider-v5';\nimport { AISDKV5LanguageModel } from './aisdk/v5/model';\nimport { parseModelRouterId } from './gateway-resolver.js';\nimport type { MastraModelGateway } from './gateways/base.js';\nimport { findGatewayForModel } from './gateways/index.js';\n\nimport { ModelsDevGateway } from './gateways/models-dev.js';\nimport { NetlifyGateway } from './gateways/netlify.js';\nimport type { ModelRouterModelId } from './provider-registry.js';\nimport { PROVIDER_REGISTRY } from './provider-registry.js';\nimport type { MastraLanguageModelV2, OpenAICompatibleConfig } from './shared.types';\n\ntype StreamResult = Awaited<ReturnType<LanguageModelV2['doStream']>>;\n\nfunction getStaticProvidersByGateway(name: string) {\n return Object.fromEntries(Object.entries(PROVIDER_REGISTRY).filter(([_provider, config]) => config.gateway === name));\n}\n\nexport const defaultGateways = [new NetlifyGateway(), new ModelsDevGateway(getStaticProvidersByGateway(`models.dev`))];\n\n/**\n * @deprecated Use defaultGateways instead. This export will be removed in a future version.\n */\nexport const gateways = defaultGateways;\n\nexport class ModelRouterLanguageModel implements MastraLanguageModelV2 {\n readonly specificationVersion = 'v2' as const;\n readonly defaultObjectGenerationMode = 'json' as const;\n readonly supportsStructuredOutputs = true;\n readonly supportsImageUrls = true;\n readonly supportedUrls = {} as Record<string, RegExp[]>;\n\n readonly modelId: string;\n readonly provider: string;\n\n private config: OpenAICompatibleConfig & { routerId: string };\n private gateway: MastraModelGateway;\n\n constructor(config: ModelRouterModelId | OpenAICompatibleConfig, customGateways?: MastraModelGateway[]) {\n // Normalize config to always have an 'id' field for routing\n let normalizedConfig: {\n id: `${string}/${string}`;\n url?: string;\n apiKey?: string;\n headers?: Record<string, string>;\n };\n\n if (typeof config === 'string') {\n normalizedConfig = { id: config as `${string}/${string}` };\n } else if ('providerId' in config && 'modelId' in config) {\n // Convert providerId/modelId to id format\n normalizedConfig = {\n id: `${config.providerId}/${config.modelId}` as `${string}/${string}`,\n url: config.url,\n apiKey: config.apiKey,\n headers: config.headers,\n };\n } else {\n // config has 'id' field\n normalizedConfig = {\n id: config.id,\n url: config.url,\n apiKey: config.apiKey,\n headers: config.headers,\n };\n }\n\n const parsedConfig: {\n id: `${string}/${string}`;\n routerId: string;\n url?: string;\n apiKey?: string;\n headers?: Record<string, string>;\n } = {\n ...normalizedConfig,\n routerId: normalizedConfig.id,\n };\n\n // Resolve gateway once using the normalized ID\n this.gateway = findGatewayForModel(normalizedConfig.id, [...(customGateways || []), ...defaultGateways]);\n // Extract provider from id if present\n // Gateway ID is used as prefix (except for models.dev which is a provider registry)\n const gatewayPrefix = this.gateway.id === 'models.dev' ? undefined : this.gateway.id;\n const parsed = parseModelRouterId(normalizedConfig.id, gatewayPrefix);\n\n this.provider = parsed.providerId || 'openai-compatible';\n\n if (parsed.providerId && parsed.modelId !== normalizedConfig.id) {\n parsedConfig.id = parsed.modelId as `${string}/${string}`;\n }\n\n this.modelId = parsedConfig.id;\n this.config = parsedConfig;\n }\n\n async doGenerate(options: LanguageModelV2CallOptions): Promise<StreamResult> {\n let apiKey: string;\n try {\n // If custom URL is provided, skip gateway API key resolution\n // The provider might not be in the registry (e.g., custom providers like ollama)\n if (this.config.url) {\n apiKey = this.config.apiKey || '';\n } else {\n apiKey = this.config.apiKey || (await this.gateway.getApiKey(this.config.routerId));\n }\n } catch (error) {\n // Return an error stream instead of throwing\n return {\n stream: new ReadableStream({\n start(controller) {\n controller.enqueue({\n type: 'error',\n error: error,\n } as LanguageModelV2StreamPart);\n controller.close();\n },\n }),\n };\n }\n\n const gatewayPrefix = this.gateway.id === 'models.dev' ? undefined : this.gateway.id;\n const model = await this.resolveLanguageModel({\n apiKey,\n headers: this.config.headers,\n ...parseModelRouterId(this.config.routerId, gatewayPrefix),\n });\n\n const aiSDKV5Model = new AISDKV5LanguageModel(model);\n return aiSDKV5Model.doGenerate(options);\n }\n\n async doStream(options: LanguageModelV2CallOptions): Promise<StreamResult> {\n // Validate API key and return error stream if validation fails\n let apiKey: string;\n try {\n // If custom URL is provided, skip gateway API key resolution\n // The provider might not be in the registry (e.g., custom providers like ollama)\n if (this.config.url) {\n apiKey = this.config.apiKey || '';\n } else {\n apiKey = this.config.apiKey || (await this.gateway.getApiKey(this.config.routerId));\n }\n } catch (error) {\n // Return an error stream instead of throwing\n return {\n stream: new ReadableStream({\n start(controller) {\n controller.enqueue({\n type: 'error',\n error: error,\n } as LanguageModelV2StreamPart);\n controller.close();\n },\n }),\n };\n }\n\n const gatewayPrefix = this.gateway.id === 'models.dev' ? undefined : this.gateway.id;\n const model = await this.resolveLanguageModel({\n apiKey,\n headers: this.config.headers,\n ...parseModelRouterId(this.config.routerId, gatewayPrefix),\n });\n\n const aiSDKV5Model = new AISDKV5LanguageModel(model);\n return aiSDKV5Model.doStream(options);\n }\n\n private async resolveLanguageModel({\n modelId,\n providerId,\n apiKey,\n headers,\n }: {\n modelId: string;\n providerId: string;\n apiKey: string;\n headers?: Record<string, string>;\n }): Promise<LanguageModelV2> {\n const key = createHash('sha256')\n .update(\n this.gateway.id +\n modelId +\n providerId +\n apiKey +\n (this.config.url || '') +\n (headers ? JSON.stringify(headers) : ''),\n )\n .digest('hex');\n if (ModelRouterLanguageModel.modelInstances.has(key)) return ModelRouterLanguageModel.modelInstances.get(key)!;\n\n // If custom URL is provided, use it directly with openai-compatible\n if (this.config.url) {\n const modelInstance = createOpenAICompatible({\n name: providerId,\n apiKey,\n baseURL: this.config.url,\n headers: this.config.headers,\n supportsStructuredOutputs: true,\n }).chatModel(modelId);\n ModelRouterLanguageModel.modelInstances.set(key, modelInstance);\n return modelInstance;\n }\n\n const modelInstance = await this.gateway.resolveLanguageModel({ modelId, providerId, apiKey, headers });\n ModelRouterLanguageModel.modelInstances.set(key, modelInstance);\n return modelInstance;\n }\n private static modelInstances = new Map<string, LanguageModelV2>();\n}\n","import type { LanguageModelV2 } from '@ai-sdk/provider-v5';\nimport type { Mastra } from '../../mastra';\nimport { RequestContext } from '../../request-context';\nimport { AISDKV5LanguageModel } from './aisdk/v5/model';\nimport { ModelRouterLanguageModel } from './router';\nimport type { MastraModelConfig, OpenAICompatibleConfig, MastraLanguageModel } from './shared.types';\n\n/**\n * Type guard to check if a model config is an OpenAICompatibleConfig object\n * @internal\n */\nexport function isOpenAICompatibleObjectConfig(\n modelConfig:\n | MastraModelConfig\n | (({\n requestContext,\n mastra,\n }: {\n requestContext: RequestContext;\n mastra?: Mastra;\n }) => MastraModelConfig | Promise<MastraModelConfig>),\n): modelConfig is OpenAICompatibleConfig {\n if (typeof modelConfig === 'object' && 'specificationVersion' in modelConfig) return false;\n // Check for OpenAICompatibleConfig - it should have either:\n // 1. 'id' field (but NOT 'model' - that's ModelWithRetries)\n // 2. Both 'providerId' and 'modelId' fields\n if (typeof modelConfig === 'object' && !('model' in modelConfig)) {\n if ('id' in modelConfig) return true;\n if ('providerId' in modelConfig && 'modelId' in modelConfig) return true;\n }\n return false;\n}\n\n/**\n * Resolves a model configuration to a LanguageModel instance.\n * Supports:\n * - Magic strings like \"openai/gpt-4o\"\n * - Config objects like { id: \"openai/gpt-4o\", apiKey: \"...\" }\n * - Direct LanguageModel instances\n * - Dynamic functions that return any of the above\n *\n * @param modelConfig The model configuration\n * @param requestContext Optional request context for dynamic resolution\n * @param mastra Optional Mastra instance for dynamic resolution\n * @returns A resolved LanguageModel instance\n *\n * @example\n * ```typescript\n * // String resolution\n * const model = await resolveModelConfig(\"openai/gpt-4o\");\n *\n * // Config object resolution\n * const model = await resolveModelConfig({\n * id: \"openai/gpt-4o\",\n * apiKey: \"sk-...\"\n * });\n *\n * // Dynamic resolution\n * const model = await resolveModelConfig(\n * ({ requestContext }) => requestContext.get(\"preferredModel\")\n * );\n * ```\n */\nexport async function resolveModelConfig(\n modelConfig:\n | MastraModelConfig\n | (({\n requestContext,\n mastra,\n }: {\n requestContext: RequestContext;\n mastra?: Mastra;\n }) => MastraModelConfig | Promise<MastraModelConfig>),\n requestContext: RequestContext = new RequestContext(),\n mastra?: Mastra,\n): Promise<MastraLanguageModel> {\n // If it's a function, resolve it first\n if (typeof modelConfig === 'function') {\n modelConfig = await modelConfig({ requestContext, mastra });\n }\n\n // Filter out custom language model instances\n // TODO need a better trick, maybme symbol\n if (modelConfig instanceof ModelRouterLanguageModel || modelConfig instanceof AISDKV5LanguageModel) {\n return modelConfig;\n }\n\n // If it's already a LanguageModel, return it\n if (typeof modelConfig === 'object' && 'specificationVersion' in modelConfig) {\n if (modelConfig.specificationVersion === 'v2') {\n return new AISDKV5LanguageModel(modelConfig as LanguageModelV2);\n }\n\n return modelConfig;\n }\n\n const gatewayRecord = mastra?.listGateways();\n const customGateways = gatewayRecord ? Object.values(gatewayRecord) : undefined;\n\n // If it's a string (magic string like \"openai/gpt-4o\") or OpenAICompatibleConfig, create ModelRouterLanguageModel\n if (typeof modelConfig === 'string' || isOpenAICompatibleObjectConfig(modelConfig)) {\n return new ModelRouterLanguageModel(modelConfig, customGateways);\n }\n\n throw new Error('Invalid model configuration provided');\n}\n","import { createGoogleGenerativeAI } from '@ai-sdk/google-v5';\nimport { createOpenAICompatible } from '@ai-sdk/openai-compatible-v5';\nimport { createOpenAI } from '@ai-sdk/openai-v5';\nimport type { EmbeddingModelV2 } from '@ai-sdk/provider-v5';\n\nimport { GatewayRegistry } from './provider-registry.js';\nimport type { OpenAICompatibleConfig } from './shared.types.js';\n\n/**\n * Information about a known embedding model\n */\nexport interface EmbeddingModelInfo {\n id: string;\n provider: string;\n dimensions: number;\n maxInputTokens: number;\n description?: string;\n}\n\n/**\n * Hardcoded list of known embedding models\n * This is a curated list that provides autocomplete support\n */\nexport const EMBEDDING_MODELS: EmbeddingModelInfo[] = [\n // OpenAI\n {\n id: 'text-embedding-3-small',\n provider: 'openai',\n dimensions: 1536,\n maxInputTokens: 8191,\n description: 'OpenAI text-embedding-3-small model',\n },\n {\n id: 'text-embedding-3-large',\n provider: 'openai',\n dimensions: 3072,\n maxInputTokens: 8191,\n description: 'OpenAI text-embedding-3-large model',\n },\n {\n id: 'text-embedding-ada-002',\n provider: 'openai',\n dimensions: 1536,\n maxInputTokens: 8191,\n description: 'OpenAI text-embedding-ada-002 model',\n },\n // Google\n {\n id: 'gemini-embedding-001',\n provider: 'google',\n dimensions: 768,\n maxInputTokens: 2048,\n description: 'Google gemini-embedding-001 model',\n },\n {\n id: 'text-embedding-004',\n provider: 'google',\n dimensions: 768,\n maxInputTokens: 3072,\n description: 'Google text-embedding-004 model',\n },\n];\n\n/**\n * Type for embedding model IDs in the format \"provider/model\"\n */\nexport type EmbeddingModelId =\n | 'openai/text-embedding-3-small'\n | 'openai/text-embedding-3-large'\n | 'openai/text-embedding-ada-002'\n | 'google/gemini-embedding-001'\n | 'google/text-embedding-004';\n\n/**\n * Check if a model ID is a known embedding model\n */\nexport function isKnownEmbeddingModel(modelId: string): boolean {\n return EMBEDDING_MODELS.some(m => m.id === modelId);\n}\n\n/**\n * Get information about a known embedding model\n */\nexport function getEmbeddingModelInfo(modelId: string): EmbeddingModelInfo | undefined {\n return EMBEDDING_MODELS.find(m => m.id === modelId);\n}\n\n/**\n * Model router for embedding models that uses the provider/model string format.\n * Automatically resolves the correct AI SDK provider and initializes the embedding model.\n *\n * @example\n * ```ts\n * const embedder = new ModelRouterEmbeddingModel('openai/text-embedding-3-small');\n * const result = await embedder.doEmbed({ values: ['hello world'] });\n * ```\n */\nexport class ModelRouterEmbeddingModel<VALUE extends string = string> implements EmbeddingModelV2<VALUE> {\n readonly specificationVersion = 'v2' as const;\n readonly modelId: string;\n readonly provider: string;\n maxEmbeddingsPerCall: number | PromiseLike<number | undefined> = 2048;\n supportsParallelCalls: boolean | PromiseLike<boolean> = true;\n\n private providerModel: EmbeddingModelV2<VALUE>;\n\n constructor(config: string | OpenAICompatibleConfig) {\n // Normalize config to always have provider and model IDs\n let normalizedConfig: {\n providerId: string;\n modelId: string;\n url?: string;\n apiKey?: string;\n headers?: Record<string, string>;\n };\n\n if (typeof config === 'string') {\n // Parse provider/model from string (e.g., \"openai/text-embedding-3-small\")\n const parts = config.split('/');\n if (parts.length !== 2) {\n throw new Error(`Invalid model string format: \"${config}\". Expected format: \"provider/model\"`);\n }\n const [providerId, modelId] = parts as [string, string];\n normalizedConfig = { providerId, modelId };\n } else if ('providerId' in config && 'modelId' in config) {\n normalizedConfig = {\n providerId: config.providerId,\n modelId: config.modelId,\n url: config.url,\n apiKey: config.apiKey,\n headers: config.headers,\n };\n } else {\n // config has 'id' field\n const parts = config.id.split('/');\n if (parts.length !== 2) {\n throw new Error(`Invalid model string format: \"${config.id}\". Expected format: \"provider/model\"`);\n }\n const [providerId, modelId] = parts as [string, string];\n normalizedConfig = {\n providerId,\n modelId,\n url: config.url,\n apiKey: config.apiKey,\n headers: config.headers,\n };\n }\n\n this.provider = normalizedConfig.providerId;\n this.modelId = normalizedConfig.modelId;\n\n // If custom URL is provided, skip provider registry validation\n // and use the provided API key (or empty string if not provided)\n if (normalizedConfig.url) {\n const apiKey = normalizedConfig.apiKey || '';\n this.providerModel = createOpenAICompatible({\n name: normalizedConfig.providerId,\n apiKey,\n baseURL: normalizedConfig.url,\n headers: normalizedConfig.headers,\n }).textEmbeddingModel(normalizedConfig.modelId) as EmbeddingModelV2<VALUE>;\n } else {\n // Get provider config from registry\n const registry = GatewayRegistry.getInstance();\n const providerConfig = registry.getProviderConfig(normalizedConfig.providerId);\n\n if (!providerConfig) {\n throw new Error(`Unknown provider: ${normalizedConfig.providerId}`);\n }\n\n // Get API key from config or environment\n let apiKey = normalizedConfig.apiKey;\n if (!apiKey) {\n const apiKeyEnvVar = providerConfig.apiKeyEnvVar;\n if (Array.isArray(apiKeyEnvVar)) {\n // Try each possible environment variable\n for (const envVar of apiKeyEnvVar) {\n apiKey = process.env[envVar];\n if (apiKey) break;\n }\n } else {\n apiKey = process.env[apiKeyEnvVar];\n }\n }\n\n if (!apiKey) {\n const envVarDisplay = Array.isArray(providerConfig.apiKeyEnvVar)\n ? providerConfig.apiKeyEnvVar.join(' or ')\n : providerConfig.apiKeyEnvVar;\n throw new Error(`API key not found for provider ${normalizedConfig.providerId}. Set ${envVarDisplay}`);\n }\n\n // Initialize the provider model directly in constructor\n if (normalizedConfig.providerId === 'openai') {\n this.providerModel = createOpenAI({ apiKey }).textEmbeddingModel(\n normalizedConfig.modelId,\n ) as EmbeddingModelV2<VALUE>;\n } else if (normalizedConfig.providerId === 'google') {\n this.providerModel = createGoogleGenerativeAI({ apiKey }).textEmbedding(\n normalizedConfig.modelId,\n ) as EmbeddingModelV2<VALUE>;\n } else {\n // Use OpenAI-compatible provider for other providers\n if (!providerConfig.url) {\n throw new Error(`Provider ${normalizedConfig.providerId} does not have a URL configured`);\n }\n this.providerModel = createOpenAICompatible({\n name: normalizedConfig.providerId,\n apiKey,\n baseURL: providerConfig.url,\n }).textEmbeddingModel(normalizedConfig.modelId) as EmbeddingModelV2<VALUE>;\n }\n }\n\n // Copy properties from the provider model if available\n if (this.providerModel.maxEmbeddingsPerCall !== undefined) {\n this.maxEmbeddingsPerCall = this.providerModel.maxEmbeddingsPerCall;\n }\n if (this.providerModel.supportsParallelCalls !== undefined) {\n this.supportsParallelCalls = this.providerModel.supportsParallelCalls;\n }\n }\n\n async doEmbed(\n args: Parameters<EmbeddingModelV2<VALUE>['doEmbed']>[0],\n ): Promise<Awaited<ReturnType<EmbeddingModelV2<VALUE>['doEmbed']>>> {\n return this.providerModel.doEmbed(args);\n }\n}\n"]}
@@ -15,7 +15,8 @@ var RegisteredLogger = {
15
15
  STORAGE: "STORAGE",
16
16
  EMBEDDINGS: "EMBEDDINGS",
17
17
  MCP_SERVER: "MCP_SERVER",
18
- SERVER_CACHE: "SERVER_CACHE"
18
+ SERVER_CACHE: "SERVER_CACHE",
19
+ SERVER: "SERVER"
19
20
  };
20
21
  var LogLevel = {
21
22
  DEBUG: "debug",
@@ -114,5 +115,5 @@ var ConsoleLogger = class extends MastraLogger {
114
115
  };
115
116
 
116
117
  export { ConsoleLogger, LogLevel, MastraLogger, RegisteredLogger, createLogger };
117
- //# sourceMappingURL=chunk-KJ2SW6VA.js.map
118
- //# sourceMappingURL=chunk-KJ2SW6VA.js.map
118
+ //# sourceMappingURL=chunk-NRUZYMHE.js.map
119
+ //# sourceMappingURL=chunk-NRUZYMHE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/logger/constants.ts","../src/logger/logger.ts","../src/logger/default-logger.ts"],"names":[],"mappings":"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","file":"chunk-NRUZYMHE.js","sourcesContent":["// Constants and Types (keeping from original implementation)\nexport const RegisteredLogger = {\n AGENT: 'AGENT',\n OBSERVABILITY: 'OBSERVABILITY',\n AUTH: 'AUTH',\n NETWORK: 'NETWORK',\n WORKFLOW: 'WORKFLOW',\n LLM: 'LLM',\n TTS: 'TTS',\n VOICE: 'VOICE',\n VECTOR: 'VECTOR',\n BUNDLER: 'BUNDLER',\n DEPLOYER: 'DEPLOYER',\n MEMORY: 'MEMORY',\n STORAGE: 'STORAGE',\n EMBEDDINGS: 'EMBEDDINGS',\n MCP_SERVER: 'MCP_SERVER',\n SERVER_CACHE: 'SERVER_CACHE',\n SERVER: 'SERVER',\n} as const;\n\nexport type RegisteredLogger = (typeof RegisteredLogger)[keyof typeof RegisteredLogger];\n\nexport const LogLevel = {\n DEBUG: 'debug',\n INFO: 'info',\n WARN: 'warn',\n ERROR: 'error',\n NONE: 'silent',\n} as const;\n\nexport type LogLevel = (typeof LogLevel)[keyof typeof LogLevel];\n","import type { MastraError } from '../error';\nimport { LogLevel } from './constants';\nimport type { BaseLogMessage, LoggerTransport } from './transport';\n\nexport interface IMastraLogger {\n debug(message: string, ...args: any[]): void;\n info(message: string, ...args: any[]): void;\n warn(message: string, ...args: any[]): void;\n error(message: string, ...args: any[]): void;\n trackException(error: MastraError): void;\n\n getTransports(): Map<string, LoggerTransport>;\n listLogs(\n _transportId: string,\n _params?: {\n fromDate?: Date;\n toDate?: Date;\n logLevel?: LogLevel;\n filters?: Record<string, any>;\n page?: number;\n perPage?: number;\n },\n ): Promise<{ logs: BaseLogMessage[]; total: number; page: number; perPage: number; hasMore: boolean }>;\n listLogsByRunId(_args: {\n transportId: string;\n runId: string;\n fromDate?: Date;\n toDate?: Date;\n logLevel?: LogLevel;\n filters?: Record<string, any>;\n page?: number;\n perPage?: number;\n }): Promise<{ logs: BaseLogMessage[]; total: number; page: number; perPage: number; hasMore: boolean }>;\n}\n\nexport abstract class MastraLogger implements IMastraLogger {\n protected name: string;\n protected level: LogLevel;\n protected transports: Map<string, LoggerTransport>;\n\n constructor(\n options: {\n name?: string;\n level?: LogLevel;\n transports?: Record<string, LoggerTransport>;\n } = {},\n ) {\n this.name = options.name || 'Mastra';\n this.level = options.level || LogLevel.ERROR;\n this.transports = new Map(Object.entries(options.transports || {}));\n }\n\n abstract debug(message: string, ...args: any[]): void;\n abstract info(message: string, ...args: any[]): void;\n abstract warn(message: string, ...args: any[]): void;\n abstract error(message: string, ...args: any[]): void;\n\n getTransports() {\n return this.transports;\n }\n\n trackException(_error: MastraError) {}\n\n async listLogs(\n transportId: string,\n params?: {\n fromDate?: Date;\n toDate?: Date;\n logLevel?: LogLevel;\n filters?: Record<string, any>;\n page?: number;\n perPage?: number;\n },\n ) {\n if (!transportId || !this.transports.has(transportId)) {\n return { logs: [], total: 0, page: params?.page ?? 1, perPage: params?.perPage ?? 100, hasMore: false };\n }\n\n return (\n this.transports.get(transportId)!.listLogs(params) ?? {\n logs: [],\n total: 0,\n page: params?.page ?? 1,\n perPage: params?.perPage ?? 100,\n hasMore: false,\n }\n );\n }\n\n async listLogsByRunId({\n transportId,\n runId,\n fromDate,\n toDate,\n logLevel,\n filters,\n page,\n perPage,\n }: {\n transportId: string;\n runId: string;\n fromDate?: Date;\n toDate?: Date;\n logLevel?: LogLevel;\n filters?: Record<string, any>;\n page?: number;\n perPage?: number;\n }) {\n if (!transportId || !this.transports.has(transportId) || !runId) {\n return { logs: [], total: 0, page: page ?? 1, perPage: perPage ?? 100, hasMore: false };\n }\n\n return (\n this.transports\n .get(transportId)!\n .listLogsByRunId({ runId, fromDate, toDate, logLevel, filters, page, perPage }) ?? {\n logs: [],\n total: 0,\n page: page ?? 1,\n perPage: perPage ?? 100,\n hasMore: false,\n }\n );\n }\n}\n","import { LogLevel } from './constants';\nimport { MastraLogger } from './logger';\nimport type { LoggerTransport } from './transport';\n\nexport const createLogger = (options: {\n name?: string;\n level?: LogLevel;\n transports?: Record<string, LoggerTransport>;\n}) => {\n const logger = new ConsoleLogger(options);\n\n logger.warn(`createLogger is deprecated. Please use \"new ConsoleLogger()\" from \"@mastra/core/logger\" instead.`);\n\n return logger;\n};\n\nexport class ConsoleLogger extends MastraLogger {\n constructor(\n options: {\n name?: string;\n level?: LogLevel;\n } = {},\n ) {\n super(options);\n }\n\n debug(message: string, ...args: any[]): void {\n if (this.level === LogLevel.DEBUG) {\n console.info(message, ...args);\n }\n }\n\n info(message: string, ...args: any[]): void {\n if (this.level === LogLevel.INFO || this.level === LogLevel.DEBUG) {\n console.info(message, ...args);\n }\n }\n\n warn(message: string, ...args: any[]): void {\n if (this.level === LogLevel.WARN || this.level === LogLevel.INFO || this.level === LogLevel.DEBUG) {\n console.info(message, ...args);\n }\n }\n\n error(message: string, ...args: any[]): void {\n if (\n this.level === LogLevel.ERROR ||\n this.level === LogLevel.WARN ||\n this.level === LogLevel.INFO ||\n this.level === LogLevel.DEBUG\n ) {\n console.error(message, ...args);\n }\n }\n\n async listLogs(\n _transportId: string,\n _params?: {\n fromDate?: Date;\n toDate?: Date;\n logLevel?: LogLevel;\n filters?: Record<string, any>;\n page?: number;\n perPage?: number;\n },\n ) {\n return { logs: [], total: 0, page: _params?.page ?? 1, perPage: _params?.perPage ?? 100, hasMore: false };\n }\n\n async listLogsByRunId(_args: {\n transportId: string;\n runId: string;\n fromDate?: Date;\n toDate?: Date;\n logLevel?: LogLevel;\n filters?: Record<string, any>;\n page?: number;\n perPage?: number;\n }) {\n return { logs: [], total: 0, page: _args.page ?? 1, perPage: _args.perPage ?? 100, hasMore: false };\n }\n}\n"]}
@@ -1,15 +1,15 @@
1
1
  'use strict';
2
2
 
3
- var chunk556MJ7CL_cjs = require('./chunk-556MJ7CL.cjs');
4
- var chunkV3VLOOSW_cjs = require('./chunk-V3VLOOSW.cjs');
5
- var chunkBMAFVZ2D_cjs = require('./chunk-BMAFVZ2D.cjs');
3
+ var chunk26YAGTXK_cjs = require('./chunk-26YAGTXK.cjs');
4
+ var chunk4AP234N6_cjs = require('./chunk-4AP234N6.cjs');
6
5
  var chunk4D4KB75Y_cjs = require('./chunk-4D4KB75Y.cjs');
7
- var chunkCBAB7GOD_cjs = require('./chunk-CBAB7GOD.cjs');
6
+ var chunkRBBEMTMA_cjs = require('./chunk-RBBEMTMA.cjs');
7
+ var chunk6BJ7XHRH_cjs = require('./chunk-6BJ7XHRH.cjs');
8
8
  var chunkMR7ZWBL6_cjs = require('./chunk-MR7ZWBL6.cjs');
9
- var chunkE7K4FTLN_cjs = require('./chunk-E7K4FTLN.cjs');
9
+ var chunk3EYBRHB2_cjs = require('./chunk-3EYBRHB2.cjs');
10
10
  var chunkTWH4PTDG_cjs = require('./chunk-TWH4PTDG.cjs');
11
- var chunkY6ROD72V_cjs = require('./chunk-Y6ROD72V.cjs');
12
- var chunkDSNPWVIG_cjs = require('./chunk-DSNPWVIG.cjs');
11
+ var chunkUIGRFDO6_cjs = require('./chunk-UIGRFDO6.cjs');
12
+ var chunkAF74UXR5_cjs = require('./chunk-AF74UXR5.cjs');
13
13
  var crypto$1 = require('crypto');
14
14
  var EventEmitter = require('events');
15
15
  var pMap = require('p-map');
@@ -139,7 +139,7 @@ function createOnScorerHook(mastra) {
139
139
  };
140
140
  }
141
141
  async function validateAndSaveScore(storage, payload) {
142
- const payloadToSave = chunkBMAFVZ2D_cjs.saveScorePayloadSchema.parse(payload);
142
+ const payloadToSave = chunk4AP234N6_cjs.saveScorePayloadSchema.parse(payload);
143
143
  await storage?.saveScore(payloadToSave);
144
144
  }
145
145
  async function findScorer(mastra, entityId, entityType, scorerId) {
@@ -169,6 +169,17 @@ async function findScorer(mastra, entityId, entityType, scorerId) {
169
169
  }
170
170
 
171
171
  // src/mastra/index.ts
172
+ function createUndefinedPrimitiveError(type, value, key) {
173
+ const typeLabel = type === "mcp-server" ? "MCP server" : type;
174
+ const errorId = `MASTRA_ADD_${type.toUpperCase().replace("-", "_")}_UNDEFINED`;
175
+ return new chunkTWH4PTDG_cjs.MastraError({
176
+ id: errorId,
177
+ domain: "MASTRA" /* MASTRA */,
178
+ category: "USER" /* USER */,
179
+ text: `Cannot add ${typeLabel}: ${typeLabel} is ${value === null ? "null" : "undefined"}. This may occur if config was spread ({ ...config }) and the original object had getters or non-enumerable properties.`,
180
+ details: { status: 400, ...key && { key } }
181
+ });
182
+ }
172
183
  var Mastra = class {
173
184
  #vectors;
174
185
  #agents;
@@ -183,6 +194,7 @@ var Mastra = class {
183
194
  #tools;
184
195
  #processors;
185
196
  #server;
197
+ #serverAdapter;
186
198
  #mcpServers;
187
199
  #bundler;
188
200
  #idGenerator;
@@ -286,7 +298,7 @@ var Mastra = class {
286
298
  * ```
287
299
  */
288
300
  constructor(config) {
289
- this.#serverCache = new chunkY6ROD72V_cjs.InMemoryServerCache();
301
+ this.#serverCache = new chunkUIGRFDO6_cjs.InMemoryServerCache();
290
302
  if (config?.pubsub) {
291
303
  this.#pubsub = config.pubsub;
292
304
  } else {
@@ -300,7 +312,7 @@ var Mastra = class {
300
312
  this.#events[topic] = config?.events?.[topic] ?? [];
301
313
  }
302
314
  }
303
- const workflowEventProcessor = new chunk556MJ7CL_cjs.WorkflowEventProcessor({ mastra: this });
315
+ const workflowEventProcessor = new chunk26YAGTXK_cjs.WorkflowEventProcessor({ mastra: this });
304
316
  const workflowEventCb = async (event, cb) => {
305
317
  try {
306
318
  await workflowEventProcessor.process(event, cb);
@@ -315,20 +327,20 @@ var Mastra = class {
315
327
  }
316
328
  let logger;
317
329
  if (config?.logger === false) {
318
- logger = chunkCBAB7GOD_cjs.noopLogger;
330
+ logger = chunk6BJ7XHRH_cjs.noopLogger;
319
331
  } else {
320
332
  if (config?.logger) {
321
333
  logger = config.logger;
322
334
  } else {
323
- const levelOnEnv = process.env.NODE_ENV === "production" && process.env.MASTRA_DEV !== "true" ? chunkDSNPWVIG_cjs.LogLevel.WARN : chunkDSNPWVIG_cjs.LogLevel.INFO;
324
- logger = new chunkDSNPWVIG_cjs.ConsoleLogger({ name: "Mastra", level: levelOnEnv });
335
+ const levelOnEnv = process.env.NODE_ENV === "production" && process.env.MASTRA_DEV !== "true" ? chunkAF74UXR5_cjs.LogLevel.WARN : chunkAF74UXR5_cjs.LogLevel.INFO;
336
+ logger = new chunkAF74UXR5_cjs.ConsoleLogger({ name: "Mastra", level: levelOnEnv });
325
337
  }
326
338
  }
327
339
  this.#logger = logger;
328
340
  this.#idGenerator = config?.idGenerator;
329
341
  let storage = config?.storage;
330
342
  if (storage) {
331
- storage = chunkV3VLOOSW_cjs.augmentWithInit(storage);
343
+ storage = chunkRBBEMTMA_cjs.augmentWithInit(storage);
332
344
  }
333
345
  if (config?.observability) {
334
346
  if (typeof config.observability.getDefaultInstance === "function") {
@@ -338,10 +350,10 @@ var Mastra = class {
338
350
  this.#logger?.warn(
339
351
  'Observability configuration error: Expected an Observability instance, but received a config object. Import and instantiate: import { Observability } from "@mastra/observability"; then pass: observability: new Observability({ default: { enabled: true } }). Observability has been disabled.'
340
352
  );
341
- this.#observability = new chunkE7K4FTLN_cjs.NoOpObservability();
353
+ this.#observability = new chunk3EYBRHB2_cjs.NoOpObservability();
342
354
  }
343
355
  } else {
344
- this.#observability = new chunkE7K4FTLN_cjs.NoOpObservability();
356
+ this.#observability = new chunk3EYBRHB2_cjs.NoOpObservability();
345
357
  }
346
358
  this.#storage = storage;
347
359
  this.#vectors = {};
@@ -355,47 +367,65 @@ var Mastra = class {
355
367
  this.#gateways = {};
356
368
  if (config?.tools) {
357
369
  Object.entries(config.tools).forEach(([key, tool]) => {
358
- this.addTool(tool, key);
370
+ if (tool != null) {
371
+ this.addTool(tool, key);
372
+ }
359
373
  });
360
374
  }
361
375
  if (config?.processors) {
362
376
  Object.entries(config.processors).forEach(([key, processor]) => {
363
- this.addProcessor(processor, key);
377
+ if (processor != null) {
378
+ this.addProcessor(processor, key);
379
+ }
364
380
  });
365
381
  }
366
382
  if (config?.vectors) {
367
383
  Object.entries(config.vectors).forEach(([key, vector]) => {
368
- this.addVector(vector, key);
384
+ if (vector != null) {
385
+ this.addVector(vector, key);
386
+ }
369
387
  });
370
388
  }
371
389
  if (config?.scorers) {
372
390
  Object.entries(config.scorers).forEach(([key, scorer]) => {
373
- this.addScorer(scorer, key);
391
+ if (scorer != null) {
392
+ this.addScorer(scorer, key);
393
+ }
374
394
  });
375
395
  }
376
396
  if (config?.workflows) {
377
397
  Object.entries(config.workflows).forEach(([key, workflow]) => {
378
- this.addWorkflow(workflow, key);
398
+ if (workflow != null) {
399
+ this.addWorkflow(workflow, key);
400
+ }
379
401
  });
380
402
  }
381
403
  if (config?.gateways) {
382
404
  Object.entries(config.gateways).forEach(([key, gateway]) => {
383
- this.addGateway(gateway, key);
405
+ if (gateway != null) {
406
+ this.addGateway(gateway, key);
407
+ }
384
408
  });
385
409
  }
386
410
  if (config?.mcpServers) {
387
411
  Object.entries(config.mcpServers).forEach(([key, server]) => {
388
- this.addMCPServer(server, key);
412
+ if (server != null) {
413
+ this.addMCPServer(server, key);
414
+ }
389
415
  });
390
416
  }
391
417
  if (config?.agents) {
392
418
  Object.entries(config.agents).forEach(([key, agent]) => {
393
- this.addAgent(agent, key);
419
+ if (agent != null) {
420
+ this.addAgent(agent, key);
421
+ }
394
422
  });
395
423
  }
396
424
  if (config?.tts) {
397
425
  Object.entries(config.tts).forEach(([key, tts]) => {
398
- this.#tts[key] = tts;
426
+ if (tts != null) {
427
+ this.#tts[key] = tts;
428
+ }
399
429
  });
400
430
  }
401
431
  if (config?.server) {
@@ -541,6 +571,9 @@ var Mastra = class {
541
571
  * ```
542
572
  */
543
573
  addAgent(agent, key) {
574
+ if (!agent) {
575
+ throw createUndefinedPrimitiveError("agent", agent, key);
576
+ }
544
577
  const agentKey = key || agent.id;
545
578
  const agents = this.#agents;
546
579
  if (agents[agentKey]) {
@@ -703,6 +736,9 @@ var Mastra = class {
703
736
  * ```
704
737
  */
705
738
  addVector(vector, key) {
739
+ if (!vector) {
740
+ throw createUndefinedPrimitiveError("vector", vector, key);
741
+ }
706
742
  const vectorKey = key || vector.id;
707
743
  const vectors = this.#vectors;
708
744
  if (vectors[vectorKey]) {
@@ -959,6 +995,9 @@ var Mastra = class {
959
995
  * ```
960
996
  */
961
997
  addScorer(scorer, key) {
998
+ if (!scorer) {
999
+ throw createUndefinedPrimitiveError("scorer", scorer, key);
1000
+ }
962
1001
  const scorerKey = key || scorer.id;
963
1002
  const scorers = this.#scorers;
964
1003
  if (scorers[scorerKey]) {
@@ -966,6 +1005,7 @@ var Mastra = class {
966
1005
  logger.debug(`Scorer with key ${scorerKey} already exists. Skipping addition.`);
967
1006
  return;
968
1007
  }
1008
+ scorer.__registerMastra(this);
969
1009
  scorers[scorerKey] = scorer;
970
1010
  }
971
1011
  /**
@@ -1186,6 +1226,9 @@ var Mastra = class {
1186
1226
  * ```
1187
1227
  */
1188
1228
  addTool(tool, key) {
1229
+ if (!tool) {
1230
+ throw createUndefinedPrimitiveError("tool", tool, key);
1231
+ }
1189
1232
  const toolKey = key || tool.id;
1190
1233
  const tools = this.#tools;
1191
1234
  if (tools[toolKey]) {
@@ -1321,6 +1364,9 @@ var Mastra = class {
1321
1364
  * ```
1322
1365
  */
1323
1366
  addProcessor(processor, key) {
1367
+ if (!processor) {
1368
+ throw createUndefinedPrimitiveError("processor", processor, key);
1369
+ }
1324
1370
  const processorKey = key || processor.id;
1325
1371
  const processors = this.#processors;
1326
1372
  if (processors[processorKey]) {
@@ -1385,6 +1431,9 @@ var Mastra = class {
1385
1431
  * ```
1386
1432
  */
1387
1433
  addWorkflow(workflow, key) {
1434
+ if (!workflow) {
1435
+ throw createUndefinedPrimitiveError("workflow", workflow, key);
1436
+ }
1388
1437
  const workflowKey = key || workflow.id;
1389
1438
  const workflows = this.#workflows;
1390
1439
  if (workflows[workflowKey]) {
@@ -1423,7 +1472,7 @@ var Mastra = class {
1423
1472
  * ```
1424
1473
  */
1425
1474
  setStorage(storage) {
1426
- this.#storage = chunkV3VLOOSW_cjs.augmentWithInit(storage);
1475
+ this.#storage = chunkRBBEMTMA_cjs.augmentWithInit(storage);
1427
1476
  }
1428
1477
  setLogger({ logger }) {
1429
1478
  this.#logger = logger;
@@ -1453,6 +1502,9 @@ var Mastra = class {
1453
1502
  this.#mcpServers?.[key]?.__setLogger(this.#logger);
1454
1503
  });
1455
1504
  }
1505
+ if (this.#serverAdapter) {
1506
+ this.#serverAdapter.__setLogger(this.#logger);
1507
+ }
1456
1508
  this.#observability.setLogger({ logger: this.#logger });
1457
1509
  }
1458
1510
  /**
@@ -1566,6 +1618,74 @@ var Mastra = class {
1566
1618
  getServer() {
1567
1619
  return this.#server;
1568
1620
  }
1621
+ /**
1622
+ * Sets the server adapter for this Mastra instance.
1623
+ *
1624
+ * The server adapter provides access to the underlying server app (e.g., Hono, Express)
1625
+ * and allows users to call routes directly via `app.fetch()` instead of making HTTP requests.
1626
+ *
1627
+ * This is typically called by `createHonoServer` or similar factory functions during
1628
+ * server initialization.
1629
+ *
1630
+ * @param adapter - The server adapter instance (e.g., MastraServer from @mastra/hono or @mastra/express)
1631
+ *
1632
+ * @example
1633
+ * ```typescript
1634
+ * const app = new Hono();
1635
+ * const adapter = new MastraServer({ app, mastra });
1636
+ * mastra.setMastraServer(adapter);
1637
+ * ```
1638
+ */
1639
+ setMastraServer(adapter) {
1640
+ if (this.#serverAdapter) {
1641
+ this.#logger?.debug(
1642
+ "Replacing existing server adapter. Only one adapter should be registered per Mastra instance."
1643
+ );
1644
+ }
1645
+ this.#serverAdapter = adapter;
1646
+ if (this.#logger) {
1647
+ adapter.__setLogger(this.#logger);
1648
+ }
1649
+ }
1650
+ /**
1651
+ * Gets the server adapter for this Mastra instance.
1652
+ *
1653
+ * @returns The server adapter, or undefined if not set
1654
+ *
1655
+ * @example
1656
+ * ```typescript
1657
+ * const adapter = mastra.getMastraServer();
1658
+ * if (adapter) {
1659
+ * const app = adapter.getApp<Hono>();
1660
+ * }
1661
+ * ```
1662
+ */
1663
+ getMastraServer() {
1664
+ return this.#serverAdapter;
1665
+ }
1666
+ /**
1667
+ * Gets the server app from the server adapter.
1668
+ *
1669
+ * This is a convenience method that calls `getMastraServer()?.getApp<T>()`.
1670
+ * Use this to access the underlying server framework's app instance (e.g., Hono, Express)
1671
+ * for direct operations like calling routes via `app.fetch()`.
1672
+ *
1673
+ * @template T - The expected type of the app (e.g., Hono, Express Application)
1674
+ * @returns The server app, or undefined if no adapter is set
1675
+ *
1676
+ * @example
1677
+ * ```typescript
1678
+ * // After createHonoServer() is called:
1679
+ * const app = mastra.getServerApp<Hono>();
1680
+ *
1681
+ * // Call routes directly without HTTP overhead
1682
+ * const response = await app?.fetch(new Request('http://localhost/health'));
1683
+ * const data = await response?.json();
1684
+ * ```
1685
+ */
1686
+ getServerApp() {
1687
+ return this.#serverAdapter?.getApp();
1688
+ }
1569
1689
  getBundlerConfig() {
1570
1690
  return this.#bundler;
1571
1691
  }
@@ -1689,6 +1809,9 @@ var Mastra = class {
1689
1809
  * ```
1690
1810
  */
1691
1811
  addMCPServer(server, key) {
1812
+ if (!server) {
1813
+ throw createUndefinedPrimitiveError("mcp-server", server, key);
1814
+ }
1692
1815
  if (key) {
1693
1816
  server.setId(key);
1694
1817
  }
@@ -1989,6 +2112,9 @@ var Mastra = class {
1989
2112
  * ```
1990
2113
  */
1991
2114
  addGateway(gateway, key) {
2115
+ if (!gateway) {
2116
+ throw createUndefinedPrimitiveError("gateway", gateway, key);
2117
+ }
1992
2118
  const gatewayKey = key || gateway.getId();
1993
2119
  const gateways = this.#gateways;
1994
2120
  if (gateways[gatewayKey]) {
@@ -2008,7 +2134,7 @@ var Mastra = class {
2008
2134
  if (process.env.MASTRA_DEV !== "true" && process.env.MASTRA_DEV !== "1") {
2009
2135
  return;
2010
2136
  }
2011
- import('./provider-registry-NBRXBOQT.cjs').then(async ({ GatewayRegistry }) => {
2137
+ import('./provider-registry-7IFOXWPR.cjs').then(async ({ GatewayRegistry }) => {
2012
2138
  const registry = GatewayRegistry.getInstance();
2013
2139
  const customGateways = Object.values(this.#gateways || {});
2014
2140
  registry.registerCustomGateways(customGateways);
@@ -2062,5 +2188,5 @@ var Mastra = class {
2062
2188
  };
2063
2189
 
2064
2190
  exports.Mastra = Mastra;
2065
- //# sourceMappingURL=chunk-KWWD3U7G.cjs.map
2066
- //# sourceMappingURL=chunk-KWWD3U7G.cjs.map
2191
+ //# sourceMappingURL=chunk-PJ7AYWAX.cjs.map
2192
+ //# sourceMappingURL=chunk-PJ7AYWAX.cjs.map