@mastra/core 1.0.0-beta.13 → 1.0.0-beta.15

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 (442) hide show
  1. package/CHANGELOG.md +477 -0
  2. package/dist/agent/agent-legacy.d.ts.map +1 -1
  3. package/dist/agent/agent.d.ts +2 -2
  4. package/dist/agent/agent.d.ts.map +1 -1
  5. package/dist/agent/agent.types.d.ts +6 -7
  6. package/dist/agent/agent.types.d.ts.map +1 -1
  7. package/dist/agent/index.cjs +17 -9
  8. package/dist/agent/index.d.ts +1 -1
  9. package/dist/agent/index.d.ts.map +1 -1
  10. package/dist/agent/index.js +2 -2
  11. package/dist/agent/message-list/index.cjs +3 -3
  12. package/dist/agent/message-list/index.d.ts +1 -1
  13. package/dist/agent/message-list/index.d.ts.map +1 -1
  14. package/dist/agent/message-list/index.js +1 -1
  15. package/dist/agent/message-list/prompt/attachments-to-parts.d.ts.map +1 -1
  16. package/dist/agent/trip-wire.d.ts +2 -2
  17. package/dist/agent/trip-wire.d.ts.map +1 -1
  18. package/dist/agent/utils.d.ts +4 -1
  19. package/dist/agent/utils.d.ts.map +1 -1
  20. package/dist/agent/workflows/prepare-stream/index.d.ts +3 -3
  21. package/dist/agent/workflows/prepare-stream/index.d.ts.map +1 -1
  22. package/dist/agent/workflows/prepare-stream/map-results-step.d.ts +3 -3
  23. package/dist/agent/workflows/prepare-stream/map-results-step.d.ts.map +1 -1
  24. package/dist/agent/workflows/prepare-stream/prepare-memory-step.d.ts +3 -3
  25. package/dist/agent/workflows/prepare-stream/prepare-memory-step.d.ts.map +1 -1
  26. package/dist/agent/workflows/prepare-stream/prepare-tools-step.d.ts +3 -3
  27. package/dist/agent/workflows/prepare-stream/prepare-tools-step.d.ts.map +1 -1
  28. package/dist/bundler/types.d.ts +1 -0
  29. package/dist/bundler/types.d.ts.map +1 -1
  30. package/dist/chunk-2AU5ZHBL.js +79 -0
  31. package/dist/chunk-2AU5ZHBL.js.map +1 -0
  32. package/dist/{chunk-7HEAVZRS.cjs → chunk-2OOMJRXZ.cjs} +15 -15
  33. package/dist/{chunk-7HEAVZRS.cjs.map → chunk-2OOMJRXZ.cjs.map} +1 -1
  34. package/dist/chunk-37YWZMBX.js +27 -0
  35. package/dist/chunk-37YWZMBX.js.map +1 -0
  36. package/dist/{chunk-VETAQUW3.js → chunk-3HDRO3GG.js} +790 -1206
  37. package/dist/chunk-3HDRO3GG.js.map +1 -0
  38. package/dist/{chunk-MRRFTNF4.js → chunk-4DFWV4IR.js} +3 -4
  39. package/dist/chunk-4DFWV4IR.js.map +1 -0
  40. package/dist/{chunk-373OC54J.js → chunk-4HP7CS6L.js} +7 -6
  41. package/dist/chunk-4HP7CS6L.js.map +1 -0
  42. package/dist/{chunk-62Q7K656.js → chunk-4J4M2Q5R.js} +125 -121
  43. package/dist/chunk-4J4M2Q5R.js.map +1 -0
  44. package/dist/{chunk-HWMMIRIF.cjs → chunk-4U7ZLI36.cjs} +3 -2
  45. package/dist/chunk-4U7ZLI36.cjs.map +1 -0
  46. package/dist/{chunk-Z55SJVEC.cjs → chunk-6HJFCSJ4.cjs} +7 -6
  47. package/dist/chunk-6HJFCSJ4.cjs.map +1 -0
  48. package/dist/{chunk-Y7MZ5LJT.cjs → chunk-AAX7ZOM7.cjs} +101 -102
  49. package/dist/chunk-AAX7ZOM7.cjs.map +1 -0
  50. package/dist/{chunk-WPTTKULS.js → chunk-AR5CF3IN.js} +4 -4
  51. package/dist/{chunk-WPTTKULS.js.map → chunk-AR5CF3IN.js.map} +1 -1
  52. package/dist/{chunk-5VZGJTPR.js → chunk-BAZHNX5P.js} +57 -11
  53. package/dist/chunk-BAZHNX5P.js.map +1 -0
  54. package/dist/{chunk-MLKE7HRS.cjs → chunk-BC2VKOH4.cjs} +43 -21
  55. package/dist/chunk-BC2VKOH4.cjs.map +1 -0
  56. package/dist/{chunk-2IU4RGU5.js → chunk-BCUKD2XG.js} +59 -19
  57. package/dist/chunk-BCUKD2XG.js.map +1 -0
  58. package/dist/{chunk-WYGUWVTF.js → chunk-CBQ6WDUJ.js} +9 -9
  59. package/dist/chunk-CBQ6WDUJ.js.map +1 -0
  60. package/dist/chunk-CBVHOGXX.cjs +674 -0
  61. package/dist/chunk-CBVHOGXX.cjs.map +1 -0
  62. package/dist/{chunk-PJAK4U6R.cjs → chunk-CBY37FTP.cjs} +28 -28
  63. package/dist/chunk-CBY37FTP.cjs.map +1 -0
  64. package/dist/{chunk-BQDZIQ3G.js → chunk-D2IFWD7A.js} +365 -137
  65. package/dist/chunk-D2IFWD7A.js.map +1 -0
  66. package/dist/{chunk-R5AJGM55.cjs → chunk-DDK3URK2.cjs} +987 -519
  67. package/dist/chunk-DDK3URK2.cjs.map +1 -0
  68. package/dist/chunk-DRJTNGI4.cjs +263 -0
  69. package/dist/chunk-DRJTNGI4.cjs.map +1 -0
  70. package/dist/{chunk-X6IBA7FP.cjs → chunk-EMLEZXTQ.cjs} +22 -120
  71. package/dist/chunk-EMLEZXTQ.cjs.map +1 -0
  72. package/dist/{chunk-OWIEOL55.cjs → chunk-F75EQ574.cjs} +695 -254
  73. package/dist/chunk-F75EQ574.cjs.map +1 -0
  74. package/dist/{chunk-YPLZDWG7.js → chunk-FJEVLHJT.js} +3 -2
  75. package/dist/chunk-FJEVLHJT.js.map +1 -0
  76. package/dist/chunk-GVAPYQRO.cjs +252 -0
  77. package/dist/chunk-GVAPYQRO.cjs.map +1 -0
  78. package/dist/{chunk-MXBVP7HX.cjs → chunk-GXMJ5URG.cjs} +227 -181
  79. package/dist/chunk-GXMJ5URG.cjs.map +1 -0
  80. package/dist/chunk-H2NHG7QL.cjs +32 -0
  81. package/dist/chunk-H2NHG7QL.cjs.map +1 -0
  82. package/dist/chunk-HAYBGFPA.js +259 -0
  83. package/dist/chunk-HAYBGFPA.js.map +1 -0
  84. package/dist/{chunk-GIWC35YQ.js → chunk-IHISDRFV.js} +299 -49
  85. package/dist/chunk-IHISDRFV.js.map +1 -0
  86. package/dist/{chunk-VEPP75C4.cjs → chunk-IRTICXRZ.cjs} +101 -61
  87. package/dist/chunk-IRTICXRZ.cjs.map +1 -0
  88. package/dist/{chunk-ARAQIW6E.js → chunk-K66U47VL.js} +617 -188
  89. package/dist/chunk-K66U47VL.js.map +1 -0
  90. package/dist/{chunk-LGB4VNZI.cjs → chunk-LOV5NNGK.cjs} +811 -1235
  91. package/dist/chunk-LOV5NNGK.cjs.map +1 -0
  92. package/dist/{chunk-E5BQRAJK.js → chunk-NGWTSHNA.js} +823 -362
  93. package/dist/chunk-NGWTSHNA.js.map +1 -0
  94. package/dist/{chunk-72YCRTEX.cjs → chunk-O2CAMK4A.cjs} +13 -2
  95. package/dist/chunk-O2CAMK4A.cjs.map +1 -0
  96. package/dist/{chunk-4BC5FUAO.js → chunk-O7M7DR4E.js} +6 -5
  97. package/dist/chunk-O7M7DR4E.js.map +1 -0
  98. package/dist/chunk-OTIGV7CL.js +10215 -0
  99. package/dist/chunk-OTIGV7CL.js.map +1 -0
  100. package/dist/{chunk-WYWRMIQC.js → chunk-QXL3F3T2.js} +9 -105
  101. package/dist/chunk-QXL3F3T2.js.map +1 -0
  102. package/dist/{chunk-U4CSOY6T.cjs → chunk-RA2CHJCY.cjs} +399 -171
  103. package/dist/chunk-RA2CHJCY.cjs.map +1 -0
  104. package/dist/chunk-RMV5HJM7.cjs +10237 -0
  105. package/dist/chunk-RMV5HJM7.cjs.map +1 -0
  106. package/dist/{chunk-AGHLXC4I.cjs → chunk-S23TNDXG.cjs} +300 -50
  107. package/dist/chunk-S23TNDXG.cjs.map +1 -0
  108. package/dist/{chunk-H4VUIOWU.cjs → chunk-SSB4AVHU.cjs} +20 -19
  109. package/dist/chunk-SSB4AVHU.cjs.map +1 -0
  110. package/dist/chunk-ST7NBF4H.cjs +84 -0
  111. package/dist/chunk-ST7NBF4H.cjs.map +1 -0
  112. package/dist/{chunk-SZYSDJTN.cjs → chunk-T2LVULCK.cjs} +142 -137
  113. package/dist/chunk-T2LVULCK.cjs.map +1 -0
  114. package/dist/chunk-VE6HQ7H6.js +250 -0
  115. package/dist/chunk-VE6HQ7H6.js.map +1 -0
  116. package/dist/{chunk-RCJLMMTO.js → chunk-XJB7J4UT.js} +30 -8
  117. package/dist/chunk-XJB7J4UT.js.map +1 -0
  118. package/dist/chunk-YV43YEZ6.js +598 -0
  119. package/dist/chunk-YV43YEZ6.js.map +1 -0
  120. package/dist/{chunk-Y36Y5MTD.js → chunk-ZGIVAQRI.js} +13 -3
  121. package/dist/chunk-ZGIVAQRI.js.map +1 -0
  122. package/dist/error/index.cjs +6 -6
  123. package/dist/error/index.d.ts +1 -0
  124. package/dist/error/index.d.ts.map +1 -1
  125. package/dist/error/index.js +1 -1
  126. package/dist/evals/index.cjs +49 -9
  127. package/dist/evals/index.js +2 -2
  128. package/dist/evals/run/index.d.ts.map +1 -1
  129. package/dist/evals/scoreTraces/index.cjs +70 -22
  130. package/dist/evals/scoreTraces/index.cjs.map +1 -1
  131. package/dist/evals/scoreTraces/index.js +63 -15
  132. package/dist/evals/scoreTraces/index.js.map +1 -1
  133. package/dist/evals/scoreTraces/scoreTracesWorkflow.d.ts.map +1 -1
  134. package/dist/evals/scoreTraces/utils.d.ts.map +1 -1
  135. package/dist/evals/types.d.ts +568 -116
  136. package/dist/evals/types.d.ts.map +1 -1
  137. package/dist/index.cjs +2 -2
  138. package/dist/index.js +1 -1
  139. package/dist/integration/index.cjs +2 -2
  140. package/dist/integration/index.js +1 -1
  141. package/dist/llm/index.cjs +21 -21
  142. package/dist/llm/index.js +5 -5
  143. package/dist/llm/model/aisdk/generate-to-stream.d.ts +20 -0
  144. package/dist/llm/model/aisdk/generate-to-stream.d.ts.map +1 -0
  145. package/dist/llm/model/aisdk/v5/model.d.ts +4 -0
  146. package/dist/llm/model/aisdk/v5/model.d.ts.map +1 -1
  147. package/dist/llm/model/aisdk/v6/model.d.ts +43 -0
  148. package/dist/llm/model/aisdk/v6/model.d.ts.map +1 -0
  149. package/dist/llm/model/embedding-router.d.ts +1 -1
  150. package/dist/llm/model/model.d.ts.map +1 -1
  151. package/dist/llm/model/model.loop.d.ts +1 -1
  152. package/dist/llm/model/model.loop.d.ts.map +1 -1
  153. package/dist/llm/model/provider-options.d.ts +2 -1
  154. package/dist/llm/model/provider-options.d.ts.map +1 -1
  155. package/dist/llm/model/provider-types.generated.d.ts +126 -17
  156. package/dist/llm/model/resolve-model.d.ts +2 -2
  157. package/dist/llm/model/resolve-model.d.ts.map +1 -1
  158. package/dist/llm/model/shared.types.d.ts +18 -7
  159. package/dist/llm/model/shared.types.d.ts.map +1 -1
  160. package/dist/loop/index.cjs +2 -2
  161. package/dist/loop/index.js +1 -1
  162. package/dist/loop/network/index.d.ts +8 -8
  163. package/dist/loop/network/index.d.ts.map +1 -1
  164. package/dist/loop/test-utils/MastraLanguageModelV2Mock.d.ts +1 -1
  165. package/dist/loop/test-utils/MastraLanguageModelV2Mock.d.ts.map +1 -1
  166. package/dist/loop/test-utils/MastraLanguageModelV3Mock.d.ts +29 -0
  167. package/dist/loop/test-utils/MastraLanguageModelV3Mock.d.ts.map +1 -0
  168. package/dist/loop/test-utils/fullStream.d.ts +2 -1
  169. package/dist/loop/test-utils/fullStream.d.ts.map +1 -1
  170. package/dist/loop/test-utils/resultObject.d.ts +2 -1
  171. package/dist/loop/test-utils/resultObject.d.ts.map +1 -1
  172. package/dist/loop/test-utils/streamObject.d.ts.map +1 -1
  173. package/dist/loop/test-utils/utils-v3.d.ts +55 -0
  174. package/dist/loop/test-utils/utils-v3.d.ts.map +1 -0
  175. package/dist/loop/types.d.ts +10 -8
  176. package/dist/loop/types.d.ts.map +1 -1
  177. package/dist/loop/workflows/agentic-execution/index.d.ts +36 -36
  178. package/dist/loop/workflows/agentic-execution/llm-execution-step.d.ts +25 -25
  179. package/dist/loop/workflows/agentic-execution/llm-execution-step.d.ts.map +1 -1
  180. package/dist/loop/workflows/agentic-execution/llm-mapping-step.d.ts +12 -12
  181. package/dist/loop/workflows/agentic-execution/tool-call-step.d.ts.map +1 -1
  182. package/dist/loop/workflows/agentic-loop/index.d.ts +36 -36
  183. package/dist/loop/workflows/agentic-loop/index.d.ts.map +1 -1
  184. package/dist/loop/workflows/run-state.d.ts +2 -2
  185. package/dist/loop/workflows/run-state.d.ts.map +1 -1
  186. package/dist/loop/workflows/schema.d.ts +12 -12
  187. package/dist/mastra/hooks.d.ts.map +1 -1
  188. package/dist/mastra/index.cjs +2 -2
  189. package/dist/mastra/index.d.ts +7 -2
  190. package/dist/mastra/index.d.ts.map +1 -1
  191. package/dist/mastra/index.js +1 -1
  192. package/dist/mcp/index.cjs +4 -4
  193. package/dist/mcp/index.js +1 -1
  194. package/dist/memory/index.cjs +26 -6
  195. package/dist/memory/index.d.ts +1 -0
  196. package/dist/memory/index.d.ts.map +1 -1
  197. package/dist/memory/index.js +1 -1
  198. package/dist/memory/memory.d.ts +9 -8
  199. package/dist/memory/memory.d.ts.map +1 -1
  200. package/dist/memory/mock.d.ts +2 -1
  201. package/dist/memory/mock.d.ts.map +1 -1
  202. package/dist/memory/types.d.ts +3 -4
  203. package/dist/memory/types.d.ts.map +1 -1
  204. package/dist/memory/working-memory-utils.d.ts +20 -0
  205. package/dist/memory/working-memory-utils.d.ts.map +1 -0
  206. package/dist/models-dev-26XLUKVK.cjs +12 -0
  207. package/dist/{models-dev-D3EKFGAO.cjs.map → models-dev-26XLUKVK.cjs.map} +1 -1
  208. package/dist/models-dev-HUFLQFPB.js +3 -0
  209. package/dist/{models-dev-EO22XOXQ.js.map → models-dev-HUFLQFPB.js.map} +1 -1
  210. package/dist/netlify-CUYK2MZ2.cjs +12 -0
  211. package/dist/{netlify-WE42TZIT.cjs.map → netlify-CUYK2MZ2.cjs.map} +1 -1
  212. package/dist/netlify-J4QPOROO.js +3 -0
  213. package/dist/{netlify-AE4LNCAI.js.map → netlify-J4QPOROO.js.map} +1 -1
  214. package/dist/observability/index.cjs +14 -10
  215. package/dist/observability/index.js +1 -1
  216. package/dist/observability/types/tracing.d.ts +32 -19
  217. package/dist/observability/types/tracing.d.ts.map +1 -1
  218. package/dist/processors/index.cjs +37 -37
  219. package/dist/processors/index.d.ts +9 -7
  220. package/dist/processors/index.d.ts.map +1 -1
  221. package/dist/processors/index.js +1 -1
  222. package/dist/processors/memory/message-history.d.ts +7 -1
  223. package/dist/processors/memory/message-history.d.ts.map +1 -1
  224. package/dist/processors/processors/language-detector.d.ts.map +1 -1
  225. package/dist/processors/processors/moderation.d.ts.map +1 -1
  226. package/dist/processors/processors/pii-detector.d.ts.map +1 -1
  227. package/dist/processors/processors/prompt-injection-detector.d.ts.map +1 -1
  228. package/dist/processors/processors/token-limiter.d.ts +5 -2
  229. package/dist/processors/processors/token-limiter.d.ts.map +1 -1
  230. package/dist/processors/runner.d.ts +2 -0
  231. package/dist/processors/runner.d.ts.map +1 -1
  232. package/dist/processors/step-schema.d.ts +26 -26
  233. package/dist/processors/step-schema.d.ts.map +1 -1
  234. package/dist/provider-registry-6CIGRQVZ.js +3 -0
  235. package/dist/{provider-registry-6LF3NGC5.js.map → provider-registry-6CIGRQVZ.js.map} +1 -1
  236. package/dist/provider-registry-7O7FJ4BS.cjs +40 -0
  237. package/dist/{provider-registry-73FKMXJV.cjs.map → provider-registry-7O7FJ4BS.cjs.map} +1 -1
  238. package/dist/provider-registry.json +295 -45
  239. package/dist/relevance/index.cjs +3 -3
  240. package/dist/relevance/index.cjs.map +1 -1
  241. package/dist/relevance/index.js +2 -2
  242. package/dist/relevance/index.js.map +1 -1
  243. package/dist/server/index.cjs +5 -5
  244. package/dist/server/index.js +1 -1
  245. package/dist/storage/base.d.ts +40 -292
  246. package/dist/storage/base.d.ts.map +1 -1
  247. package/dist/storage/constants.cjs +60 -0
  248. package/dist/storage/constants.cjs.map +1 -0
  249. package/dist/storage/constants.d.ts +6 -1
  250. package/dist/storage/constants.d.ts.map +1 -1
  251. package/dist/storage/constants.js +3 -0
  252. package/dist/storage/constants.js.map +1 -0
  253. package/dist/storage/domains/agents/base.d.ts +2 -2
  254. package/dist/storage/domains/agents/base.d.ts.map +1 -1
  255. package/dist/storage/domains/agents/inmemory.d.ts +5 -4
  256. package/dist/storage/domains/agents/inmemory.d.ts.map +1 -1
  257. package/dist/storage/domains/base.d.ts +20 -0
  258. package/dist/storage/domains/base.d.ts.map +1 -0
  259. package/dist/storage/domains/index.d.ts +3 -0
  260. package/dist/storage/domains/index.d.ts.map +1 -1
  261. package/dist/storage/domains/inmemory-db.d.ts +57 -0
  262. package/dist/storage/domains/inmemory-db.d.ts.map +1 -0
  263. package/dist/storage/domains/memory/base.d.ts +2 -2
  264. package/dist/storage/domains/memory/base.d.ts.map +1 -1
  265. package/dist/storage/domains/memory/inmemory.d.ts +5 -13
  266. package/dist/storage/domains/memory/inmemory.d.ts.map +1 -1
  267. package/dist/storage/domains/observability/base.d.ts +24 -29
  268. package/dist/storage/domains/observability/base.d.ts.map +1 -1
  269. package/dist/storage/domains/observability/index.d.ts +1 -0
  270. package/dist/storage/domains/observability/index.d.ts.map +1 -1
  271. package/dist/storage/domains/observability/inmemory.d.ts +46 -35
  272. package/dist/storage/domains/observability/inmemory.d.ts.map +1 -1
  273. package/dist/storage/domains/observability/types.d.ts +2365 -0
  274. package/dist/storage/domains/observability/types.d.ts.map +1 -0
  275. package/dist/storage/domains/scores/base.d.ts +9 -20
  276. package/dist/storage/domains/scores/base.d.ts.map +1 -1
  277. package/dist/storage/domains/scores/inmemory.d.ts +11 -22
  278. package/dist/storage/domains/scores/inmemory.d.ts.map +1 -1
  279. package/dist/storage/domains/shared.d.ts +76 -0
  280. package/dist/storage/domains/shared.d.ts.map +1 -0
  281. package/dist/storage/domains/workflows/base.d.ts +4 -2
  282. package/dist/storage/domains/workflows/base.d.ts.map +1 -1
  283. package/dist/storage/domains/workflows/inmemory.d.ts +10 -9
  284. package/dist/storage/domains/workflows/inmemory.d.ts.map +1 -1
  285. package/dist/storage/index.cjs +272 -59
  286. package/dist/storage/index.js +2 -1
  287. package/dist/storage/mock.d.ts +28 -174
  288. package/dist/storage/mock.d.ts.map +1 -1
  289. package/dist/storage/types.d.ts +39 -44
  290. package/dist/storage/types.d.ts.map +1 -1
  291. package/dist/storage/utils.d.ts +5 -0
  292. package/dist/storage/utils.d.ts.map +1 -1
  293. package/dist/stream/MastraAgentNetworkStream.d.ts +1 -1
  294. package/dist/stream/MastraAgentNetworkStream.d.ts.map +1 -1
  295. package/dist/stream/MastraWorkflowStream.d.ts +1 -1
  296. package/dist/stream/MastraWorkflowStream.d.ts.map +1 -1
  297. package/dist/stream/RunOutput.d.ts.map +1 -1
  298. package/dist/stream/aisdk/v5/execute.d.ts +4 -4
  299. package/dist/stream/aisdk/v5/execute.d.ts.map +1 -1
  300. package/dist/stream/aisdk/v5/output.d.ts +2 -2
  301. package/dist/stream/aisdk/v5/output.d.ts.map +1 -1
  302. package/dist/stream/aisdk/v5/transform.d.ts.map +1 -1
  303. package/dist/stream/base/output.d.ts +7 -5
  304. package/dist/stream/base/output.d.ts.map +1 -1
  305. package/dist/stream/index.cjs +12 -12
  306. package/dist/stream/index.js +2 -2
  307. package/dist/stream/types.d.ts +32 -21
  308. package/dist/stream/types.d.ts.map +1 -1
  309. package/dist/test-utils/llm-mock.cjs +4 -4
  310. package/dist/test-utils/llm-mock.cjs.map +1 -1
  311. package/dist/test-utils/llm-mock.js +1 -1
  312. package/dist/test-utils/llm-mock.js.map +1 -1
  313. package/dist/token-6GSAFR2W-LTZ7QQUP.js +61 -0
  314. package/dist/token-6GSAFR2W-LTZ7QQUP.js.map +1 -0
  315. package/dist/token-6GSAFR2W-UEEINYAN.cjs +63 -0
  316. package/dist/token-6GSAFR2W-UEEINYAN.cjs.map +1 -0
  317. package/dist/token-util-NEHG7TUY-QTFZ26EN.js +8 -0
  318. package/dist/token-util-NEHG7TUY-QTFZ26EN.js.map +1 -0
  319. package/dist/token-util-NEHG7TUY-WZL2DNCG.cjs +10 -0
  320. package/dist/token-util-NEHG7TUY-WZL2DNCG.cjs.map +1 -0
  321. package/dist/tool-loop-agent/index.cjs +20 -0
  322. package/dist/tool-loop-agent/index.cjs.map +1 -0
  323. package/dist/tool-loop-agent/index.d.ts +36 -0
  324. package/dist/tool-loop-agent/index.d.ts.map +1 -0
  325. package/dist/tool-loop-agent/index.js +3 -0
  326. package/dist/tool-loop-agent/index.js.map +1 -0
  327. package/dist/tool-loop-agent/tool-loop-processor.d.ts +30 -0
  328. package/dist/tool-loop-agent/tool-loop-processor.d.ts.map +1 -0
  329. package/dist/tool-loop-agent/utils.d.ts +17 -0
  330. package/dist/tool-loop-agent/utils.d.ts.map +1 -0
  331. package/dist/tools/index.cjs +4 -4
  332. package/dist/tools/index.js +1 -1
  333. package/dist/tools/is-vercel-tool.cjs +2 -2
  334. package/dist/tools/is-vercel-tool.js +1 -1
  335. package/dist/tools/tool-builder/builder.d.ts.map +1 -1
  336. package/dist/tools/toolchecks.d.ts +1 -1
  337. package/dist/tools/toolchecks.d.ts.map +1 -1
  338. package/dist/tools/validation.d.ts +1 -1
  339. package/dist/tools/validation.d.ts.map +1 -1
  340. package/dist/utils/zod-utils.d.ts +34 -0
  341. package/dist/utils/zod-utils.d.ts.map +1 -0
  342. package/dist/utils.cjs +39 -22
  343. package/dist/utils.d.ts +3 -3
  344. package/dist/utils.d.ts.map +1 -1
  345. package/dist/utils.js +2 -1
  346. package/dist/vector/embed.d.ts +1 -0
  347. package/dist/vector/embed.d.ts.map +1 -1
  348. package/dist/vector/index.cjs +18 -5
  349. package/dist/vector/index.cjs.map +1 -1
  350. package/dist/vector/index.js +9 -2
  351. package/dist/vector/index.js.map +1 -1
  352. package/dist/vector/vector.d.ts +26 -3
  353. package/dist/vector/vector.d.ts.map +1 -1
  354. package/dist/voice/composite-voice.d.ts.map +1 -1
  355. package/dist/voice/index.cjs +6 -6
  356. package/dist/voice/index.js +1 -1
  357. package/dist/workflows/default.d.ts +2 -0
  358. package/dist/workflows/default.d.ts.map +1 -1
  359. package/dist/workflows/evented/execution-engine.d.ts +1 -0
  360. package/dist/workflows/evented/execution-engine.d.ts.map +1 -1
  361. package/dist/workflows/evented/index.cjs +10 -10
  362. package/dist/workflows/evented/index.js +1 -1
  363. package/dist/workflows/evented/step-executor.d.ts +5 -0
  364. package/dist/workflows/evented/step-executor.d.ts.map +1 -1
  365. package/dist/workflows/evented/workflow-event-processor/index.d.ts +20 -4
  366. package/dist/workflows/evented/workflow-event-processor/index.d.ts.map +1 -1
  367. package/dist/workflows/evented/workflow-event-processor/loop.d.ts +2 -2
  368. package/dist/workflows/evented/workflow-event-processor/loop.d.ts.map +1 -1
  369. package/dist/workflows/evented/workflow-event-processor/parallel.d.ts +2 -2
  370. package/dist/workflows/evented/workflow-event-processor/parallel.d.ts.map +1 -1
  371. package/dist/workflows/evented/workflow-event-processor/sleep.d.ts +2 -2
  372. package/dist/workflows/evented/workflow-event-processor/sleep.d.ts.map +1 -1
  373. package/dist/workflows/evented/workflow.d.ts +10 -2
  374. package/dist/workflows/evented/workflow.d.ts.map +1 -1
  375. package/dist/workflows/execution-engine.d.ts +1 -0
  376. package/dist/workflows/execution-engine.d.ts.map +1 -1
  377. package/dist/workflows/handlers/control-flow.d.ts +4 -0
  378. package/dist/workflows/handlers/control-flow.d.ts.map +1 -1
  379. package/dist/workflows/handlers/entry.d.ts +3 -2
  380. package/dist/workflows/handlers/entry.d.ts.map +1 -1
  381. package/dist/workflows/handlers/step.d.ts +1 -0
  382. package/dist/workflows/handlers/step.d.ts.map +1 -1
  383. package/dist/workflows/index.cjs +23 -23
  384. package/dist/workflows/index.js +1 -1
  385. package/dist/workflows/types.d.ts +23 -3
  386. package/dist/workflows/types.d.ts.map +1 -1
  387. package/dist/workflows/utils.d.ts +1 -0
  388. package/dist/workflows/utils.d.ts.map +1 -1
  389. package/dist/workflows/workflow.d.ts +26 -9
  390. package/dist/workflows/workflow.d.ts.map +1 -1
  391. package/package.json +20 -12
  392. package/src/llm/model/provider-types.generated.d.ts +126 -17
  393. package/storage/constants.d.ts +1 -0
  394. package/tool-loop-agent.d.ts +1 -0
  395. package/dist/chunk-2IU4RGU5.js.map +0 -1
  396. package/dist/chunk-373OC54J.js.map +0 -1
  397. package/dist/chunk-4BC5FUAO.js.map +0 -1
  398. package/dist/chunk-5VZGJTPR.js.map +0 -1
  399. package/dist/chunk-62Q7K656.js.map +0 -1
  400. package/dist/chunk-72YCRTEX.cjs.map +0 -1
  401. package/dist/chunk-ADADLFDR.js +0 -42
  402. package/dist/chunk-ADADLFDR.js.map +0 -1
  403. package/dist/chunk-AGHLXC4I.cjs.map +0 -1
  404. package/dist/chunk-ARAQIW6E.js.map +0 -1
  405. package/dist/chunk-BQDZIQ3G.js.map +0 -1
  406. package/dist/chunk-E5BQRAJK.js.map +0 -1
  407. package/dist/chunk-GIWC35YQ.js.map +0 -1
  408. package/dist/chunk-H4VUIOWU.cjs.map +0 -1
  409. package/dist/chunk-HWMMIRIF.cjs.map +0 -1
  410. package/dist/chunk-IXZ2T2QX.cjs +0 -448
  411. package/dist/chunk-IXZ2T2QX.cjs.map +0 -1
  412. package/dist/chunk-LGB4VNZI.cjs.map +0 -1
  413. package/dist/chunk-MLKE7HRS.cjs.map +0 -1
  414. package/dist/chunk-MRRFTNF4.js.map +0 -1
  415. package/dist/chunk-MXBVP7HX.cjs.map +0 -1
  416. package/dist/chunk-OWIEOL55.cjs.map +0 -1
  417. package/dist/chunk-PJAK4U6R.cjs.map +0 -1
  418. package/dist/chunk-R5AJGM55.cjs.map +0 -1
  419. package/dist/chunk-RCJLMMTO.js.map +0 -1
  420. package/dist/chunk-SZYSDJTN.cjs.map +0 -1
  421. package/dist/chunk-T2VLUFGG.cjs +0 -47
  422. package/dist/chunk-T2VLUFGG.cjs.map +0 -1
  423. package/dist/chunk-U4CSOY6T.cjs.map +0 -1
  424. package/dist/chunk-UBSPZTQX.js +0 -434
  425. package/dist/chunk-UBSPZTQX.js.map +0 -1
  426. package/dist/chunk-VEPP75C4.cjs.map +0 -1
  427. package/dist/chunk-VETAQUW3.js.map +0 -1
  428. package/dist/chunk-WYGUWVTF.js.map +0 -1
  429. package/dist/chunk-WYWRMIQC.js.map +0 -1
  430. package/dist/chunk-X6IBA7FP.cjs.map +0 -1
  431. package/dist/chunk-Y36Y5MTD.js.map +0 -1
  432. package/dist/chunk-Y7MZ5LJT.cjs.map +0 -1
  433. package/dist/chunk-YPLZDWG7.js.map +0 -1
  434. package/dist/chunk-Z55SJVEC.cjs.map +0 -1
  435. package/dist/llm/model/is-v2-model.d.ts +0 -3
  436. package/dist/llm/model/is-v2-model.d.ts.map +0 -1
  437. package/dist/models-dev-D3EKFGAO.cjs +0 -12
  438. package/dist/models-dev-EO22XOXQ.js +0 -3
  439. package/dist/netlify-AE4LNCAI.js +0 -3
  440. package/dist/netlify-WE42TZIT.cjs +0 -12
  441. package/dist/provider-registry-6LF3NGC5.js +0 -3
  442. package/dist/provider-registry-73FKMXJV.cjs +0 -40
@@ -1,6 +1,7 @@
1
+ import { isZodArray, isZodObject } from './chunk-37YWZMBX.js';
1
2
  import { RequestContext } from './chunk-6TBWJV35.js';
2
- import { z } from 'zod';
3
3
 
4
+ // src/tools/validation.ts
4
5
  function truncateForLogging(data, maxLength = 200) {
5
6
  try {
6
7
  const stringified = JSON.stringify(data, null, 2);
@@ -35,10 +36,10 @@ function normalizeNullishInput(schema, input) {
35
36
  if (input !== void 0 && input !== null) {
36
37
  return input;
37
38
  }
38
- if (schema instanceof z.ZodArray) {
39
+ if (isZodArray(schema)) {
39
40
  return [];
40
41
  }
41
- if (schema instanceof z.ZodObject) {
42
+ if (isZodObject(schema)) {
42
43
  return {};
43
44
  }
44
45
  return input;
@@ -260,9 +261,9 @@ function createTool(opts) {
260
261
 
261
262
  // src/tools/toolchecks.ts
262
263
  function isVercelTool(tool) {
263
- return !!(tool && !(tool instanceof Tool) && "parameters" in tool);
264
+ return !!(tool && !(tool instanceof Tool) && ("parameters" in tool || "execute" in tool && typeof tool.execute === "function" && "inputSchema" in tool));
264
265
  }
265
266
 
266
267
  export { Tool, createTool, isVercelTool, validateToolInput, validateToolOutput, validateToolSuspendData };
267
- //# sourceMappingURL=chunk-373OC54J.js.map
268
- //# sourceMappingURL=chunk-373OC54J.js.map
268
+ //# sourceMappingURL=chunk-4HP7CS6L.js.map
269
+ //# sourceMappingURL=chunk-4HP7CS6L.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/tools/validation.ts","../src/tools/tool.ts","../src/tools/toolchecks.ts"],"names":["resumeData"],"mappings":"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","file":"chunk-4HP7CS6L.js","sourcesContent":["import type { z } from 'zod';\nimport type { ZodLikeSchema } from '../types/zod-compat';\nimport { isZodArray, isZodObject } from '../utils/zod-utils';\n\nexport interface ValidationError<T = any> {\n error: true;\n message: string;\n validationErrors: z.ZodFormattedError<T>;\n}\n\n/**\n * Safely truncates data for error messages to avoid exposing sensitive information.\n * @param data The data to truncate\n * @param maxLength Maximum length of the truncated string (default: 200)\n * @returns Truncated string representation\n */\nfunction truncateForLogging(data: unknown, maxLength: number = 200): string {\n try {\n const stringified = JSON.stringify(data, null, 2);\n if (stringified.length <= maxLength) {\n return stringified;\n }\n return stringified.slice(0, maxLength) + '... (truncated)';\n } catch {\n return '[Unable to serialize data]';\n }\n}\n\n/**\n * Validates raw suspend data against a Zod schema.\n *\n * @param schema The Zod schema to validate against\n * @param suspendData The raw suspend data to validate\n * @param toolId Optional tool ID for better error messages\n * @returns The validated data or a validation error\n */\nexport function validateToolSuspendData<T = any>(\n schema: ZodLikeSchema | undefined,\n suspendData: unknown,\n toolId?: string,\n): { data: T | unknown; error?: ValidationError<T> } {\n // If no schema, return suspend data as-is\n if (!schema || !('safeParse' in schema)) {\n return { data: suspendData };\n }\n\n // Validate the input directly - no unwrapping needed in v1.0\n const validation = schema.safeParse(suspendData);\n\n if (validation.success) {\n return { data: validation.data };\n }\n\n // Validation failed, return error\n const errorMessages = validation.error.issues\n .map((e: z.ZodIssue) => `- ${e.path?.join('.') || 'root'}: ${e.message}`)\n .join('\\n');\n\n const error: ValidationError<T> = {\n error: true,\n message: `Tool suspension data validation failed${toolId ? ` for ${toolId}` : ''}. Please fix the following errors and try again:\\n${errorMessages}\\n\\nProvided arguments: ${truncateForLogging(suspendData)}`,\n validationErrors: validation.error.format() as z.ZodFormattedError<T>,\n };\n\n return { data: suspendData, error };\n}\n\n/**\n * Normalizes undefined/null input to an appropriate default value based on schema type.\n * This handles LLMs (Claude Sonnet 4.5, Gemini 2.4, etc.) that send undefined/null\n * instead of {} or [] when all parameters are optional.\n *\n * @param schema The Zod schema to check\n * @param input The input to normalize\n * @returns The normalized input (original value, {}, or [])\n */\nfunction normalizeNullishInput(schema: ZodLikeSchema, input: unknown): unknown {\n if (input !== undefined && input !== null) {\n return input;\n }\n\n // Check if schema is an array type (using typeName to avoid dual-package hazard)\n if (isZodArray(schema as z.ZodTypeAny)) {\n return [];\n }\n\n // Check if schema is an object type (using typeName to avoid dual-package hazard)\n if (isZodObject(schema as z.ZodTypeAny)) {\n return {};\n }\n\n // For other schema types, return the original input and let Zod validate\n return input;\n}\n\n/**\n * Validates raw input data against a Zod schema.\n *\n * @param schema The Zod schema to validate against\n * @param input The raw input data to validate\n * @param toolId Optional tool ID for better error messages\n * @returns The validated data or a validation error\n */\nexport function validateToolInput<T = any>(\n schema: ZodLikeSchema | undefined,\n input: unknown,\n toolId?: string,\n): { data: T | unknown; error?: ValidationError<T> } {\n // If no schema, return input as-is\n if (!schema || !('safeParse' in schema)) {\n return { data: input };\n }\n\n // Normalize undefined/null input to appropriate default for the schema type\n // This handles LLMs that send undefined instead of {} or [] for optional parameters\n const normalizedInput = normalizeNullishInput(schema, input);\n\n // Validate the normalized input\n const validation = schema.safeParse(normalizedInput);\n\n if (validation.success) {\n return { data: validation.data };\n }\n\n // Validation failed, return error\n const errorMessages = validation.error.issues\n .map((e: z.ZodIssue) => `- ${e.path?.join('.') || 'root'}: ${e.message}`)\n .join('\\n');\n\n const error: ValidationError<T> = {\n error: true,\n message: `Tool input validation failed${toolId ? ` for ${toolId}` : ''}. Please fix the following errors and try again:\\n${errorMessages}\\n\\nProvided arguments: ${truncateForLogging(input)}`,\n validationErrors: validation.error.format() as z.ZodFormattedError<T>,\n };\n\n return { data: input, error };\n}\n\n/**\n * Validates tool output data against a Zod schema.\n *\n * @param schema The Zod schema to validate against\n * @param output The output data to validate\n * @param toolId Optional tool ID for better error messages\n * @returns The validated data or a validation error\n */\nexport function validateToolOutput<T = any>(\n schema: ZodLikeSchema | undefined,\n output: unknown,\n toolId?: string,\n suspendCalled?: boolean,\n): { data: T | unknown; error?: ValidationError<T> } {\n // If no schema, return output as-is\n if (!schema || !('safeParse' in schema) || suspendCalled) {\n return { data: output };\n }\n\n // Validate the output\n const validation = schema.safeParse(output);\n\n if (validation.success) {\n return { data: validation.data };\n }\n\n // Validation failed, return error\n const errorMessages = validation.error.issues\n .map((e: z.ZodIssue) => `- ${e.path?.join('.') || 'root'}: ${e.message}`)\n .join('\\n');\n\n const error: ValidationError<T> = {\n error: true,\n message: `Tool output validation failed${toolId ? ` for ${toolId}` : ''}. The tool returned invalid output:\\n${errorMessages}\\n\\nReturned output: ${truncateForLogging(output)}`,\n validationErrors: validation.error.format() as z.ZodFormattedError<T>,\n };\n\n return { data: output, error };\n}\n","import type { Mastra } from '../mastra';\nimport { RequestContext } from '../request-context';\nimport type { ZodLikeSchema, InferZodLikeSchema, InferZodLikeSchemaInput } from '../types/zod-compat';\nimport type { SuspendOptions } from '../workflows';\nimport type { ToolAction, ToolExecutionContext } from './types';\nimport { validateToolInput, validateToolOutput, validateToolSuspendData } from './validation';\n\n/**\n * A type-safe tool that agents and workflows can call to perform specific actions.\n *\n * @template TSchemaIn - Input schema type\n * @template TSchemaOut - Output schema type\n * @template TSuspendSchema - Suspend operation schema type\n * @template TResumeSchema - Resume operation schema type\n * @template TContext - Execution context type\n *\n * @example Basic tool with validation\n * ```typescript\n * const weatherTool = createTool({\n * id: 'get-weather',\n * description: 'Get weather for a location',\n * inputSchema: z.object({\n * location: z.string(),\n * units: z.enum(['celsius', 'fahrenheit']).optional()\n * }),\n * execute: async (inputData) => {\n * return await fetchWeather(inputData.location, inputData.units);\n * }\n * });\n * ```\n *\n * @example Tool requiring approval\n * ```typescript\n * const deleteFileTool = createTool({\n * id: 'delete-file',\n * description: 'Delete a file',\n * requireApproval: true,\n * inputSchema: z.object({ filepath: z.string() }),\n * execute: async (inputData) => {\n * await fs.unlink(inputData.filepath);\n * return { deleted: true };\n * }\n * });\n * ```\n *\n * @example Tool with Mastra integration\n * ```typescript\n * const saveTool = createTool({\n * id: 'save-data',\n * description: 'Save data to storage',\n * inputSchema: z.object({ key: z.string(), value: z.any() }),\n * execute: async (inputData, context) => {\n * const storage = context?.mastra?.getStorage();\n * await storage?.set(inputData.key, inputData.value);\n * return { saved: true };\n * }\n * });\n * ```\n */\nexport class Tool<\n TSchemaIn extends ZodLikeSchema | undefined = undefined,\n TSchemaOut extends ZodLikeSchema | undefined = undefined,\n TSuspendSchema extends ZodLikeSchema = any,\n TResumeSchema extends ZodLikeSchema = any,\n TContext extends ToolExecutionContext<TSuspendSchema, TResumeSchema> = ToolExecutionContext<\n TSuspendSchema,\n TResumeSchema\n >,\n TId extends string = string,\n> implements ToolAction<TSchemaIn, TSchemaOut, TSuspendSchema, TResumeSchema, TContext, TId>\n{\n /** Unique identifier for the tool */\n id: TId;\n\n /** Description of what the tool does */\n description: string;\n\n /** Schema for validating input parameters */\n inputSchema?: TSchemaIn;\n\n /** Schema for validating output structure */\n outputSchema?: TSchemaOut;\n\n /** Schema for suspend operation data */\n suspendSchema?: TSuspendSchema;\n\n /** Schema for resume operation data */\n resumeSchema?: TResumeSchema;\n\n /**\n * Tool execution function\n * @param inputData - The raw, validated input data\n * @param context - Optional execution context with metadata\n * @returns Promise resolving to tool output or a ValidationError if input validation fails\n */\n execute?: ToolAction<TSchemaIn, TSchemaOut, TSuspendSchema, TResumeSchema, TContext>['execute'];\n\n /** Parent Mastra instance for accessing shared resources */\n mastra?: Mastra;\n\n /**\n * Whether the tool requires explicit user approval before execution\n * @example\n * ```typescript\n * // For destructive operations\n * requireApproval: true\n * ```\n */\n requireApproval?: boolean;\n\n /**\n * Provider-specific options passed to the model when this tool is used.\n * Keys are provider names (e.g., 'anthropic', 'openai'), values are provider-specific configs.\n * @example\n * ```typescript\n * providerOptions: {\n * anthropic: {\n * cacheControl: { type: 'ephemeral' }\n * }\n * }\n * ```\n */\n providerOptions?: Record<string, Record<string, unknown>>;\n\n /**\n * Creates a new Tool instance with input validation wrapper.\n *\n * @param opts - Tool configuration and execute function\n * @example\n * ```typescript\n * const tool = new Tool({\n * id: 'my-tool',\n * description: 'Does something useful',\n * inputSchema: z.object({ name: z.string() }),\n * execute: async (inputData) => ({ greeting: `Hello ${inputData.name}` })\n * });\n * ```\n */\n constructor(opts: ToolAction<TSchemaIn, TSchemaOut, TSuspendSchema, TResumeSchema, TContext, TId>) {\n this.id = opts.id;\n this.description = opts.description;\n this.inputSchema = opts.inputSchema;\n this.outputSchema = opts.outputSchema;\n this.suspendSchema = opts.suspendSchema;\n this.resumeSchema = opts.resumeSchema;\n this.mastra = opts.mastra;\n this.requireApproval = opts.requireApproval || false;\n this.providerOptions = opts.providerOptions;\n\n // Tools receive two parameters:\n // 1. input - The raw, validated input data\n // 2. context - Execution metadata (mastra, suspend, etc.)\n if (opts.execute) {\n const originalExecute = opts.execute;\n this.execute = async (inputData: unknown, context?: any) => {\n // Validate input if schema exists\n const { data, error } = validateToolInput(this.inputSchema, inputData, this.id);\n if (error) {\n return error as any;\n }\n\n let suspendData = null;\n\n const baseContext = context\n ? {\n ...context,\n ...(context.suspend\n ? {\n suspend: (args: any, suspendOptions?: SuspendOptions) => {\n suspendData = args;\n return context.suspend?.(args, suspendOptions);\n },\n }\n : {}),\n }\n : {};\n\n // Organize context based on execution source\n let organizedContext = baseContext;\n if (!context) {\n // No context provided - create a minimal context with requestContext\n organizedContext = {\n requestContext: new RequestContext(),\n mastra: undefined,\n };\n } else {\n // Check if this is agent execution (has toolCallId and messages)\n const isAgentExecution = baseContext.toolCallId && baseContext.messages;\n\n // Check if this is workflow execution (has workflow properties)\n // Agent execution takes precedence - don't treat as workflow if it's an agent call\n const isWorkflowExecution = !isAgentExecution && (baseContext.workflow || baseContext.workflowId);\n\n if (isAgentExecution && !baseContext.agent) {\n // Reorganize agent context - nest agent-specific properties under 'agent' key\n const { toolCallId, messages, suspend, resumeData, threadId, resourceId, writableStream, ...rest } =\n baseContext;\n organizedContext = {\n ...rest,\n agent: {\n toolCallId,\n messages,\n suspend,\n resumeData,\n threadId,\n resourceId,\n writableStream,\n },\n // Ensure requestContext is always present\n requestContext: rest.requestContext || new RequestContext(),\n };\n } else if (isWorkflowExecution && !baseContext.workflow) {\n // Reorganize workflow context - nest workflow-specific properties under 'workflow' key\n const { workflowId, runId, state, setState, suspend, resumeData, ...rest } = baseContext;\n organizedContext = {\n ...rest,\n workflow: {\n workflowId,\n runId,\n state,\n setState,\n suspend,\n resumeData,\n },\n // Ensure requestContext is always present\n requestContext: rest.requestContext || new RequestContext(),\n };\n } else {\n // Ensure requestContext is always present even for direct execution\n organizedContext = {\n ...baseContext,\n agent: baseContext.agent\n ? {\n ...baseContext.agent,\n suspend: (args: any, suspendOptions?: SuspendOptions) => {\n suspendData = args;\n return baseContext.agent?.suspend?.(args, suspendOptions);\n },\n }\n : baseContext.agent,\n workflow: baseContext.workflow\n ? {\n ...baseContext.workflow,\n suspend: (args: any, suspendOptions?: SuspendOptions) => {\n suspendData = args;\n return baseContext.workflow?.suspend?.(args, suspendOptions);\n },\n }\n : baseContext.workflow,\n requestContext: baseContext.requestContext || new RequestContext(),\n };\n }\n }\n\n const resumeData =\n organizedContext.agent?.resumeData ?? organizedContext.workflow?.resumeData ?? organizedContext?.resumeData;\n\n if (resumeData) {\n const resumeValidation = validateToolInput(this.resumeSchema, resumeData, this.id);\n if (resumeValidation.error) {\n return resumeValidation.error as any;\n }\n }\n\n // Call the original execute with validated input and organized context\n const output = await originalExecute(data as any, organizedContext);\n\n if (suspendData) {\n const suspendValidation = validateToolSuspendData(this.suspendSchema, suspendData, this.id);\n if (suspendValidation.error) {\n return suspendValidation.error as any;\n }\n }\n\n const skiptOutputValidation = !!(typeof output === 'undefined' && suspendData);\n\n // Validate output if schema exists\n const outputValidation = validateToolOutput(this.outputSchema, output, this.id, skiptOutputValidation);\n if (outputValidation.error) {\n return outputValidation.error as any;\n }\n\n return outputValidation.data;\n };\n }\n }\n}\n\n/**\n * Creates a type-safe tool with automatic input validation.\n *\n * @template TSchemaIn - Input schema type\n * @template TSchemaOut - Output schema type\n * @template TSuspendSchema - Suspend operation schema type\n * @template TResumeSchema - Resume operation schema type\n * @template TContext - Execution context type\n * @template TExecute - Execute function type\n *\n * @param opts - Tool configuration including schemas and execute function\n * @returns Type-safe Tool instance with conditional typing based on schemas\n *\n * @example Simple tool\n * ```typescript\n * const greetTool = createTool({\n * id: 'greet',\n * description: 'Say hello',\n * execute: async () => ({ message: 'Hello!' })\n * });\n * ```\n *\n * @example Tool with input validation\n * ```typescript\n * const calculateTool = createTool({\n * id: 'calculate',\n * description: 'Perform calculations',\n * inputSchema: z.object({\n * operation: z.enum(['add', 'subtract']),\n * a: z.number(),\n * b: z.number()\n * }),\n * execute: async (inputData) => {\n * const result = inputData.operation === 'add'\n * ? inputData.a + inputData.b\n * : inputData.a - inputData.b;\n * return { result };\n * }\n * });\n * ```\n *\n * @example Tool with output schema\n * ```typescript\n * const userTool = createTool({\n * id: 'get-user',\n * description: 'Get user data',\n * inputSchema: z.object({ userId: z.string() }),\n * outputSchema: z.object({\n * id: z.string(),\n * name: z.string(),\n * email: z.string()\n * }),\n * execute: async (inputData) => {\n * return await fetchUser(inputData.userId);\n * }\n * });\n * ```\n *\n * @example Tool with external API\n * ```typescript\n * const weatherTool = createTool({\n * id: 'weather',\n * description: 'Get weather data',\n * inputSchema: z.object({\n * city: z.string(),\n * units: z.enum(['metric', 'imperial']).default('metric')\n * }),\n * execute: async (inputData) => {\n * const response = await fetch(\n * `https://api.weather.com/v1/weather?q=${inputData.city}&units=${inputData.units}`\n * );\n * return response.json();\n * }\n * });\n * ```\n */\nexport function createTool<\n TId extends string = string,\n TSchemaIn extends ZodLikeSchema | undefined = undefined,\n TSchemaOut extends ZodLikeSchema | undefined = undefined,\n TSuspendSchema extends ZodLikeSchema = any,\n TResumeSchema extends ZodLikeSchema = any,\n TContext extends ToolExecutionContext<TSuspendSchema, TResumeSchema> = ToolExecutionContext<\n TSuspendSchema,\n TResumeSchema\n >,\n TExecute extends ToolAction<\n TSchemaIn,\n TSchemaOut,\n TSuspendSchema,\n TResumeSchema,\n TContext,\n TId\n >['execute'] = ToolAction<TSchemaIn, TSchemaOut, TSuspendSchema, TResumeSchema, TContext, TId>['execute'],\n>(\n opts: ToolAction<TSchemaIn, TSchemaOut, TSuspendSchema, TResumeSchema, TContext, TId> & {\n execute?: TExecute;\n },\n): [TSchemaIn, TSchemaOut, TExecute] extends [ZodLikeSchema, ZodLikeSchema, Function]\n ? Tool<TSchemaIn, TSchemaOut, TSuspendSchema, TResumeSchema, TContext, TId> & {\n inputSchema: TSchemaIn;\n outputSchema: TSchemaOut;\n execute: (\n inputData: TSchemaIn extends ZodLikeSchema ? InferZodLikeSchema<TSchemaIn> : unknown,\n context?: TContext,\n ) => Promise<TSchemaOut extends ZodLikeSchema ? InferZodLikeSchemaInput<TSchemaOut> : unknown>;\n }\n : Tool<TSchemaIn, TSchemaOut, TSuspendSchema, TResumeSchema, TContext, TId> {\n return new Tool(opts) as any;\n}\n","import { Tool } from './tool';\nimport type { ToolToConvert } from './tool-builder/builder';\nimport type { VercelTool } from './types';\n\n/**\n * Checks if a tool is a Vercel Tool (AI SDK tool)\n * @param tool - The tool to check\n * @returns True if the tool is a Vercel Tool, false otherwise\n */\nexport function isVercelTool(tool?: ToolToConvert): tool is VercelTool {\n // Checks if this tool is not an instance of Mastra's Tool class\n // AI SDK tools must have an execute function and either:\n // - 'parameters' (v4) or 'inputSchema' (v5/v6)\n // This prevents plain objects with inputSchema (like client tools) from being treated as VercelTools\n return !!(\n tool &&\n !(tool instanceof Tool) &&\n ('parameters' in tool || ('execute' in tool && typeof tool.execute === 'function' && 'inputSchema' in tool))\n );\n}\n"]}
@@ -1,11 +1,11 @@
1
1
  import { output_exports, generateText, generateObject, streamText, streamObject } from './chunk-5PTZG26U.js';
2
- import { isZodType, delay } from './chunk-RCJLMMTO.js';
3
- import { executeWithContext, executeWithContextSync } from './chunk-Y36Y5MTD.js';
4
- import { MastraError } from './chunk-YPLZDWG7.js';
2
+ import { isZodType, delay } from './chunk-XJB7J4UT.js';
3
+ import { executeWithContext, executeWithContextSync } from './chunk-ZGIVAQRI.js';
4
+ import { MastraError } from './chunk-FJEVLHJT.js';
5
+ import { isZodArray, getZodDef } from './chunk-37YWZMBX.js';
5
6
  import { MastraBase } from './chunk-LSHPJWM5.js';
6
7
  import { OpenAIReasoningSchemaCompatLayer, OpenAISchemaCompatLayer, GoogleSchemaCompatLayer, AnthropicSchemaCompatLayer, DeepSeekSchemaCompatLayer, MetaSchemaCompatLayer, applyCompatLayer, jsonSchema } from '@mastra/schema-compat';
7
8
  import { zodToJsonSchema } from '@mastra/schema-compat/zod-to-json';
8
- import { z } from 'zod';
9
9
  import { randomUUID } from 'crypto';
10
10
 
11
11
  // src/stream/aisdk/v4/usage.ts
@@ -107,8 +107,8 @@ var MastraLLMV1 = class extends MastraBase {
107
107
  });
108
108
  if (isZodType(experimental_output)) {
109
109
  schema = experimental_output;
110
- if (schema instanceof z.ZodArray) {
111
- schema = schema._def.type;
110
+ if (isZodArray(schema)) {
111
+ schema = getZodDef(schema).type;
112
112
  }
113
113
  const jsonSchemaToUse = zodToJsonSchema(schema, "jsonSchema7");
114
114
  schema = jsonSchema(jsonSchemaToUse);
@@ -278,9 +278,9 @@ var MastraLLMV1 = class extends MastraBase {
278
278
  });
279
279
  try {
280
280
  let output = "object";
281
- if (structuredOutput instanceof z.ZodArray) {
281
+ if (isZodArray(structuredOutput)) {
282
282
  output = "array";
283
- structuredOutput = structuredOutput._def.type;
283
+ structuredOutput = getZodDef(structuredOutput).type;
284
284
  }
285
285
  const processedSchema = this._applySchemaCompat(structuredOutput);
286
286
  llmSpan?.update({
@@ -384,8 +384,8 @@ var MastraLLMV1 = class extends MastraBase {
384
384
  });
385
385
  if (typeof experimental_output.parse === "function") {
386
386
  schema = experimental_output;
387
- if (schema instanceof z.ZodArray) {
388
- schema = schema._def.type;
387
+ if (isZodArray(schema)) {
388
+ schema = getZodDef(schema).type;
389
389
  }
390
390
  } else {
391
391
  schema = jsonSchema(experimental_output);
@@ -588,9 +588,9 @@ var MastraLLMV1 = class extends MastraBase {
588
588
  });
589
589
  try {
590
590
  let output = "object";
591
- if (structuredOutput instanceof z.ZodArray) {
591
+ if (isZodArray(structuredOutput)) {
592
592
  output = "array";
593
- structuredOutput = structuredOutput._def.type;
593
+ structuredOutput = getZodDef(structuredOutput).type;
594
594
  }
595
595
  const processedSchema = this._applySchemaCompat(structuredOutput);
596
596
  llmSpan?.update({
@@ -763,6 +763,115 @@ var MastraLLMV1 = class extends MastraBase {
763
763
  });
764
764
  }
765
765
  };
766
+ function createStreamFromGenerateResult(result) {
767
+ return new ReadableStream({
768
+ start(controller) {
769
+ controller.enqueue({ type: "stream-start", warnings: result.warnings });
770
+ controller.enqueue({
771
+ type: "response-metadata",
772
+ id: result.response?.id,
773
+ modelId: result.response?.modelId,
774
+ timestamp: result.response?.timestamp
775
+ });
776
+ for (const message of result.content) {
777
+ if (message.type === "tool-call") {
778
+ const toolCall = message;
779
+ controller.enqueue({
780
+ type: "tool-input-start",
781
+ id: toolCall.toolCallId,
782
+ toolName: toolCall.toolName
783
+ });
784
+ controller.enqueue({
785
+ type: "tool-input-delta",
786
+ id: toolCall.toolCallId,
787
+ delta: toolCall.input
788
+ });
789
+ controller.enqueue({
790
+ type: "tool-input-end",
791
+ id: toolCall.toolCallId
792
+ });
793
+ controller.enqueue(toolCall);
794
+ } else if (message.type === "tool-result") {
795
+ controller.enqueue(message);
796
+ } else if (message.type === "text") {
797
+ const text = message;
798
+ const id = `msg_${randomUUID()}`;
799
+ controller.enqueue({
800
+ type: "text-start",
801
+ id,
802
+ providerMetadata: text.providerMetadata
803
+ });
804
+ controller.enqueue({
805
+ type: "text-delta",
806
+ id,
807
+ delta: text.text
808
+ });
809
+ controller.enqueue({
810
+ type: "text-end",
811
+ id
812
+ });
813
+ } else if (message.type === "reasoning") {
814
+ const id = `reasoning_${randomUUID()}`;
815
+ const reasoning = message;
816
+ controller.enqueue({
817
+ type: "reasoning-start",
818
+ id,
819
+ providerMetadata: reasoning.providerMetadata
820
+ });
821
+ controller.enqueue({
822
+ type: "reasoning-delta",
823
+ id,
824
+ delta: reasoning.text,
825
+ providerMetadata: reasoning.providerMetadata
826
+ });
827
+ controller.enqueue({
828
+ type: "reasoning-end",
829
+ id,
830
+ providerMetadata: reasoning.providerMetadata
831
+ });
832
+ } else if (message.type === "file") {
833
+ const file = message;
834
+ controller.enqueue({
835
+ type: "file",
836
+ mediaType: file.mediaType,
837
+ data: file.data
838
+ });
839
+ } else if (message.type === "source") {
840
+ const source = message;
841
+ if (source.sourceType === "url") {
842
+ controller.enqueue({
843
+ type: "source",
844
+ id: source.id,
845
+ sourceType: "url",
846
+ url: source.url,
847
+ title: source.title,
848
+ providerMetadata: source.providerMetadata
849
+ });
850
+ } else {
851
+ controller.enqueue({
852
+ type: "source",
853
+ id: source.id,
854
+ sourceType: "document",
855
+ mediaType: source.mediaType,
856
+ filename: source.filename,
857
+ title: source.title,
858
+ providerMetadata: source.providerMetadata
859
+ });
860
+ }
861
+ }
862
+ }
863
+ controller.enqueue({
864
+ type: "finish",
865
+ finishReason: result.finishReason,
866
+ usage: result.usage,
867
+ providerMetadata: result.providerMetadata
868
+ });
869
+ controller.close();
870
+ }
871
+ });
872
+ }
873
+
874
+ // src/llm/model/aisdk/v5/model.ts
766
875
  var AISDKV5LanguageModel = class {
767
876
  /**
768
877
  * The language model must specify which language model interface version it implements.
@@ -798,112 +907,7 @@ var AISDKV5LanguageModel = class {
798
907
  return {
799
908
  request: result.request,
800
909
  response: result.response,
801
- stream: new ReadableStream({
802
- start(controller) {
803
- controller.enqueue({ type: "stream-start", warnings: result.warnings });
804
- controller.enqueue({
805
- type: "response-metadata",
806
- id: result.response?.id,
807
- modelId: result.response?.modelId,
808
- timestamp: result.response?.timestamp
809
- });
810
- for (const message of result.content) {
811
- if (message.type === "tool-call") {
812
- const toolCall = message;
813
- controller.enqueue({
814
- type: "tool-input-start",
815
- id: toolCall.toolCallId,
816
- toolName: toolCall.toolName
817
- });
818
- controller.enqueue({
819
- type: "tool-input-delta",
820
- id: toolCall.toolCallId,
821
- delta: toolCall.input
822
- });
823
- controller.enqueue({
824
- type: "tool-input-end",
825
- id: toolCall.toolCallId
826
- });
827
- controller.enqueue(toolCall);
828
- } else if (message.type === "tool-result") {
829
- const toolResult = message;
830
- controller.enqueue(toolResult);
831
- } else if (message.type === "text") {
832
- const text = message;
833
- const id = `msg_${randomUUID()}`;
834
- controller.enqueue({
835
- type: "text-start",
836
- id,
837
- providerMetadata: text.providerMetadata
838
- });
839
- controller.enqueue({
840
- type: "text-delta",
841
- id,
842
- delta: text.text
843
- });
844
- controller.enqueue({
845
- type: "text-end",
846
- id
847
- });
848
- } else if (message.type === "reasoning") {
849
- const id = `reasoning_${randomUUID()}`;
850
- const reasoning = message;
851
- controller.enqueue({
852
- type: "reasoning-start",
853
- id,
854
- providerMetadata: reasoning.providerMetadata
855
- });
856
- controller.enqueue({
857
- type: "reasoning-delta",
858
- id,
859
- delta: reasoning.text,
860
- providerMetadata: reasoning.providerMetadata
861
- });
862
- controller.enqueue({
863
- type: "reasoning-end",
864
- id,
865
- providerMetadata: reasoning.providerMetadata
866
- });
867
- } else if (message.type === "file") {
868
- const file = message;
869
- controller.enqueue({
870
- type: "file",
871
- mediaType: file.mediaType,
872
- data: file.data
873
- });
874
- } else if (message.type === "source") {
875
- const source = message;
876
- if (source.sourceType === "url") {
877
- controller.enqueue({
878
- type: "source",
879
- id: source.id,
880
- sourceType: "url",
881
- url: source.url,
882
- title: source.title,
883
- providerMetadata: source.providerMetadata
884
- });
885
- } else {
886
- controller.enqueue({
887
- type: "source",
888
- id: source.id,
889
- sourceType: "document",
890
- mediaType: source.mediaType,
891
- filename: source.filename,
892
- title: source.title,
893
- providerMetadata: source.providerMetadata
894
- });
895
- }
896
- }
897
- }
898
- controller.enqueue({
899
- type: "finish",
900
- finishReason: result.finishReason,
901
- usage: result.usage,
902
- providerMetadata: result.providerMetadata
903
- });
904
- controller.close();
905
- }
906
- })
910
+ stream: createStreamFromGenerateResult(result)
907
911
  };
908
912
  }
909
913
  async doStream(options) {
@@ -911,6 +915,6 @@ var AISDKV5LanguageModel = class {
911
915
  }
912
916
  };
913
917
 
914
- export { AISDKV5LanguageModel, MastraLLMV1 };
915
- //# sourceMappingURL=chunk-62Q7K656.js.map
916
- //# sourceMappingURL=chunk-62Q7K656.js.map
918
+ export { AISDKV5LanguageModel, MastraLLMV1, createStreamFromGenerateResult };
919
+ //# sourceMappingURL=chunk-4J4M2Q5R.js.map
920
+ //# sourceMappingURL=chunk-4J4M2Q5R.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/stream/aisdk/v4/usage.ts","../src/llm/model/model.ts","../src/llm/model/aisdk/generate-to-stream.ts","../src/llm/model/aisdk/v5/model.ts"],"names":[],"mappings":"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","file":"chunk-4J4M2Q5R.js","sourcesContent":["import type { UsageStats } from '../../../observability/types/tracing';\n\n/**\n * AI SDK v4 LanguageModelUsage type definition\n * (matches the ai package's LanguageModelUsage)\n */\ninterface LanguageModelUsageV4 {\n promptTokens: number;\n completionTokens: number;\n totalTokens?: number;\n}\n\n/**\n * Converts AI SDK v4 LanguageModelUsage to our UsageStats format.\n *\n * @param usage - The LanguageModelUsage from AI SDK v4\n * @returns Normalized UsageStats\n */\nexport function convertV4Usage(usage: LanguageModelUsageV4 | undefined): UsageStats {\n if (!usage) {\n return {};\n }\n\n return {\n inputTokens: usage.promptTokens,\n outputTokens: usage.completionTokens,\n };\n}\n","import { generateObject, generateText, Output, streamObject, streamText } from '@internal/ai-sdk-v4';\nimport type {\n CoreMessage,\n LanguageModelV1 as LanguageModel,\n StreamObjectOnFinishCallback,\n StreamTextOnFinishCallback,\n} from '@internal/ai-sdk-v4';\nimport type { JSONSchema7, Schema } from '@mastra/schema-compat';\nimport {\n AnthropicSchemaCompatLayer,\n applyCompatLayer,\n DeepSeekSchemaCompatLayer,\n GoogleSchemaCompatLayer,\n MetaSchemaCompatLayer,\n OpenAIReasoningSchemaCompatLayer,\n OpenAISchemaCompatLayer,\n jsonSchema,\n} from '@mastra/schema-compat';\nimport { zodToJsonSchema } from '@mastra/schema-compat/zod-to-json';\nimport type { ZodSchema, z } from 'zod';\nimport type { MastraPrimitives } from '../../action';\nimport { MastraBase } from '../../base';\nimport { MastraError, ErrorDomain, ErrorCategory } from '../../error';\nimport type { Mastra } from '../../mastra';\nimport { SpanType } from '../../observability';\nimport { executeWithContext, executeWithContextSync } from '../../observability/utils';\nimport { convertV4Usage } from '../../stream/aisdk/v4/usage';\nimport { delay, isZodType } from '../../utils';\nimport { isZodArray, getZodDef } from '../../utils/zod-utils';\n\nimport type {\n GenerateObjectWithMessagesArgs,\n GenerateTextResult,\n GenerateObjectResult,\n GenerateTextWithMessagesArgs,\n OriginalGenerateTextOptions,\n ToolSet,\n GenerateReturn,\n OriginalGenerateObjectOptions,\n StreamTextWithMessagesArgs,\n StreamTextResult,\n OriginalStreamTextOptions,\n StreamObjectWithMessagesArgs,\n OriginalStreamObjectOptions,\n StreamObjectResult,\n StreamReturn,\n} from './base.types';\nimport type { inferOutput, MastraModelOptions } from './shared.types';\n\nexport class MastraLLMV1 extends MastraBase {\n #model: LanguageModel;\n #mastra?: Mastra;\n #options?: MastraModelOptions;\n\n constructor({ model, mastra, options }: { model: LanguageModel; mastra?: Mastra; options?: MastraModelOptions }) {\n super({ name: 'aisdk' });\n\n this.#model = model;\n this.#options = options;\n\n if (mastra) {\n this.#mastra = mastra;\n if (mastra.getLogger()) {\n this.__setLogger(this.#mastra.getLogger());\n }\n }\n }\n\n __registerPrimitives(p: MastraPrimitives) {\n if (p.logger) {\n this.__setLogger(p.logger);\n }\n }\n\n __registerMastra(p: Mastra) {\n this.#mastra = p;\n }\n\n getProvider() {\n return this.#model.provider;\n }\n\n getModelId() {\n return this.#model.modelId;\n }\n\n getModel() {\n return this.#model;\n }\n\n private _applySchemaCompat(schema: ZodSchema | JSONSchema7): Schema {\n const model = this.#model;\n\n const schemaCompatLayers = [];\n\n if (model) {\n const modelInfo = {\n modelId: model.modelId,\n supportsStructuredOutputs: model.supportsStructuredOutputs ?? false,\n provider: model.provider,\n };\n schemaCompatLayers.push(\n new OpenAIReasoningSchemaCompatLayer(modelInfo),\n new OpenAISchemaCompatLayer(modelInfo),\n new GoogleSchemaCompatLayer(modelInfo),\n new AnthropicSchemaCompatLayer(modelInfo),\n new DeepSeekSchemaCompatLayer(modelInfo),\n new MetaSchemaCompatLayer(modelInfo),\n );\n }\n\n return applyCompatLayer({\n schema: schema,\n compatLayers: schemaCompatLayers,\n mode: 'aiSdkSchema',\n });\n }\n\n async __text<Tools extends ToolSet, Z extends ZodSchema | JSONSchema7 | undefined>({\n runId,\n messages,\n maxSteps = 5,\n tools = {},\n temperature,\n toolChoice = 'auto',\n onStepFinish,\n experimental_output,\n threadId,\n resourceId,\n requestContext,\n tracingContext,\n ...rest\n }: GenerateTextWithMessagesArgs<Tools, Z>): Promise<GenerateTextResult<Tools, Z>> {\n const model = this.#model;\n\n this.logger.debug(`[LLM] - Generating text`, {\n runId,\n messages,\n maxSteps,\n threadId,\n resourceId,\n tools: Object.keys(tools),\n });\n\n let schema: z.ZodType<inferOutput<Z>> | Schema<inferOutput<Z>> | undefined = undefined;\n\n if (experimental_output) {\n this.logger.debug('[LLM] - Using experimental output', {\n runId,\n });\n\n if (isZodType(experimental_output)) {\n schema = experimental_output as z.ZodType<inferOutput<Z>>;\n if (isZodArray(schema)) {\n schema = getZodDef(schema).type as z.ZodType<inferOutput<Z>>;\n }\n\n const jsonSchemaToUse = zodToJsonSchema(schema, 'jsonSchema7');\n\n schema = jsonSchema<inferOutput<Z>>(jsonSchemaToUse);\n } else {\n schema = jsonSchema<inferOutput<Z>>(experimental_output);\n }\n }\n\n const llmSpan = tracingContext.currentSpan?.createChildSpan({\n name: `llm: '${model.modelId}'`,\n type: SpanType.MODEL_GENERATION,\n input: {\n messages,\n schema,\n },\n attributes: {\n model: model.modelId,\n provider: model.provider,\n parameters: {\n temperature,\n maxOutputTokens: rest.maxTokens,\n topP: rest.topP,\n frequencyPenalty: rest.frequencyPenalty,\n presencePenalty: rest.presencePenalty,\n },\n streaming: false,\n },\n metadata: {\n runId,\n threadId,\n resourceId,\n },\n tracingPolicy: this.#options?.tracingPolicy,\n });\n\n const argsForExecute: OriginalGenerateTextOptions<Tools, Z> = {\n ...rest,\n messages,\n model,\n temperature,\n tools: {\n ...(tools as Tools),\n },\n toolChoice,\n maxSteps,\n onStepFinish: async props => {\n try {\n await onStepFinish?.({ ...props, runId: runId! });\n } catch (e: unknown) {\n const mastraError = new MastraError(\n {\n id: 'LLM_TEXT_ON_STEP_FINISH_CALLBACK_EXECUTION_FAILED',\n domain: ErrorDomain.LLM,\n category: ErrorCategory.USER,\n details: {\n modelId: model.modelId,\n modelProvider: model.provider,\n runId: runId ?? 'unknown',\n threadId: threadId ?? 'unknown',\n resourceId: resourceId ?? 'unknown',\n finishReason: props?.finishReason,\n toolCalls: props?.toolCalls ? JSON.stringify(props.toolCalls) : '',\n toolResults: props?.toolResults ? JSON.stringify(props.toolResults) : '',\n usage: props?.usage ? JSON.stringify(props.usage) : '',\n },\n },\n e,\n );\n throw mastraError;\n }\n\n this.logger.debug('[LLM] - Text Step Change:', {\n text: props?.text,\n toolCalls: props?.toolCalls,\n toolResults: props?.toolResults,\n finishReason: props?.finishReason,\n usage: props?.usage,\n runId,\n });\n\n const remainingTokens = parseInt(props?.response?.headers?.['x-ratelimit-remaining-tokens'] ?? '', 10);\n if (!isNaN(remainingTokens) && remainingTokens > 0 && remainingTokens < 2000) {\n this.logger.warn('Rate limit approaching, waiting 10 seconds', { runId });\n await delay(10 * 1000);\n }\n },\n experimental_output: schema\n ? Output.object({\n schema,\n })\n : undefined,\n };\n\n try {\n const result: GenerateTextResult<Tools, Z> = await executeWithContext({\n span: llmSpan,\n fn: () => generateText(argsForExecute),\n });\n\n if (schema && result.finishReason === 'stop') {\n result.object = (result as any).experimental_output;\n }\n llmSpan?.end({\n output: {\n text: result.text,\n object: result.object,\n reasoning: result.reasoningDetails,\n reasoningText: result.reasoning,\n files: result.files,\n sources: result.sources,\n warnings: result.warnings,\n },\n attributes: {\n finishReason: result.finishReason,\n usage: convertV4Usage(result.usage),\n },\n });\n\n return result;\n } catch (e: unknown) {\n const mastraError = new MastraError(\n {\n id: 'LLM_GENERATE_TEXT_AI_SDK_EXECUTION_FAILED',\n domain: ErrorDomain.LLM,\n category: ErrorCategory.THIRD_PARTY,\n details: {\n modelId: model.modelId,\n modelProvider: model.provider,\n runId: runId ?? 'unknown',\n threadId: threadId ?? 'unknown',\n resourceId: resourceId ?? 'unknown',\n },\n },\n e,\n );\n llmSpan?.error({ error: mastraError });\n throw mastraError;\n }\n }\n\n async __textObject<Z extends ZodSchema | JSONSchema7>({\n messages,\n structuredOutput,\n runId,\n threadId,\n resourceId,\n requestContext,\n tracingContext,\n ...rest\n }: GenerateObjectWithMessagesArgs<Z>): Promise<GenerateObjectResult<Z>> {\n const model = this.#model;\n\n this.logger.debug(`[LLM] - Generating a text object`, { runId });\n\n const llmSpan = tracingContext.currentSpan?.createChildSpan({\n name: `llm: '${model.modelId}'`,\n type: SpanType.MODEL_GENERATION,\n input: {\n messages,\n },\n attributes: {\n model: model.modelId,\n provider: model.provider,\n parameters: {\n temperature: rest.temperature,\n maxOutputTokens: rest.maxTokens,\n topP: rest.topP,\n frequencyPenalty: rest.frequencyPenalty,\n presencePenalty: rest.presencePenalty,\n },\n streaming: false,\n },\n metadata: {\n runId,\n threadId,\n resourceId,\n },\n tracingPolicy: this.#options?.tracingPolicy,\n });\n\n try {\n let output: 'object' | 'array' = 'object';\n if (isZodArray(structuredOutput)) {\n output = 'array';\n structuredOutput = getZodDef(structuredOutput).type;\n }\n\n const processedSchema = this._applySchemaCompat(structuredOutput!);\n llmSpan?.update({\n input: {\n messages,\n schema: processedSchema,\n },\n });\n\n const argsForExecute: OriginalGenerateObjectOptions<Z> = {\n ...rest,\n messages,\n model,\n // @ts-expect-error - output in our implementation can only be object or array\n output,\n schema: processedSchema as Schema<Z>,\n };\n\n try {\n // @ts-expect-error - output in our implementation can only be object or array\n const result = await generateObject(argsForExecute);\n\n llmSpan?.end({\n output: {\n object: result.object,\n warnings: result.warnings,\n },\n attributes: {\n finishReason: result.finishReason,\n usage: convertV4Usage(result.usage),\n },\n });\n\n // @ts-expect-error - output in our implementation can only be object or array\n return result;\n } catch (e: unknown) {\n const mastraError = new MastraError(\n {\n id: 'LLM_GENERATE_OBJECT_AI_SDK_EXECUTION_FAILED',\n domain: ErrorDomain.LLM,\n category: ErrorCategory.THIRD_PARTY,\n details: {\n modelId: model.modelId,\n modelProvider: model.provider,\n runId: runId ?? 'unknown',\n threadId: threadId ?? 'unknown',\n resourceId: resourceId ?? 'unknown',\n },\n },\n e,\n );\n llmSpan?.error({ error: mastraError });\n throw mastraError;\n }\n } catch (e: unknown) {\n if (e instanceof MastraError) {\n throw e;\n }\n\n const mastraError = new MastraError(\n {\n id: 'LLM_GENERATE_OBJECT_AI_SDK_SCHEMA_CONVERSION_FAILED',\n domain: ErrorDomain.LLM,\n category: ErrorCategory.USER,\n details: {\n modelId: model.modelId,\n modelProvider: model.provider,\n runId: runId ?? 'unknown',\n threadId: threadId ?? 'unknown',\n resourceId: resourceId ?? 'unknown',\n },\n },\n e,\n );\n llmSpan?.error({ error: mastraError });\n throw mastraError;\n }\n }\n\n __stream<Tools extends ToolSet, Z extends ZodSchema | JSONSchema7 | undefined = undefined>({\n messages,\n onStepFinish,\n onFinish,\n maxSteps = 5,\n tools = {},\n runId,\n temperature,\n toolChoice = 'auto',\n experimental_output,\n threadId,\n resourceId,\n requestContext,\n tracingContext,\n ...rest\n }: StreamTextWithMessagesArgs<Tools, Z>): StreamTextResult<Tools, Z> {\n const model = this.#model;\n this.logger.debug(`[LLM] - Streaming text`, {\n runId,\n threadId,\n resourceId,\n messages,\n maxSteps,\n tools: Object.keys(tools || {}),\n });\n\n let schema: z.ZodType<Z> | Schema<Z> | undefined;\n if (experimental_output) {\n this.logger.debug('[LLM] - Using experimental output', {\n runId,\n });\n if (typeof (experimental_output as any).parse === 'function') {\n schema = experimental_output as z.ZodType<Z>;\n if (isZodArray(schema)) {\n schema = getZodDef(schema).type as z.ZodType<Z>;\n }\n } else {\n schema = jsonSchema(experimental_output as JSONSchema7) as Schema<Z>;\n }\n }\n\n const llmSpan = tracingContext.currentSpan?.createChildSpan({\n name: `llm: '${model.modelId}'`,\n type: SpanType.MODEL_GENERATION,\n input: {\n messages,\n },\n attributes: {\n model: model.modelId,\n provider: model.provider,\n parameters: {\n temperature,\n maxOutputTokens: rest.maxTokens,\n topP: rest.topP,\n frequencyPenalty: rest.frequencyPenalty,\n presencePenalty: rest.presencePenalty,\n },\n streaming: true,\n },\n metadata: {\n runId,\n threadId,\n resourceId,\n },\n tracingPolicy: this.#options?.tracingPolicy,\n });\n\n const argsForExecute: OriginalStreamTextOptions<Tools, Z> = {\n model,\n temperature,\n tools: {\n ...(tools as Tools),\n },\n maxSteps,\n toolChoice,\n onStepFinish: async props => {\n try {\n await onStepFinish?.({ ...props, runId: runId! });\n } catch (e: unknown) {\n const mastraError = new MastraError(\n {\n id: 'LLM_STREAM_ON_STEP_FINISH_CALLBACK_EXECUTION_FAILED',\n domain: ErrorDomain.LLM,\n category: ErrorCategory.USER,\n details: {\n modelId: model.modelId,\n modelProvider: model.provider,\n runId: runId ?? 'unknown',\n threadId: threadId ?? 'unknown',\n resourceId: resourceId ?? 'unknown',\n finishReason: props?.finishReason,\n toolCalls: props?.toolCalls ? JSON.stringify(props.toolCalls) : '',\n toolResults: props?.toolResults ? JSON.stringify(props.toolResults) : '',\n usage: props?.usage ? JSON.stringify(props.usage) : '',\n },\n },\n e,\n );\n this.logger.trackException(mastraError);\n llmSpan?.error({ error: mastraError });\n throw mastraError;\n }\n\n this.logger.debug('[LLM] - Stream Step Change:', {\n text: props?.text,\n toolCalls: props?.toolCalls,\n toolResults: props?.toolResults,\n finishReason: props?.finishReason,\n usage: props?.usage,\n runId,\n });\n\n const remainingTokens = parseInt(props?.response?.headers?.['x-ratelimit-remaining-tokens'] ?? '', 10);\n if (!isNaN(remainingTokens) && remainingTokens > 0 && remainingTokens < 2000) {\n this.logger.warn('Rate limit approaching, waiting 10 seconds', { runId });\n await delay(10 * 1000);\n }\n },\n onFinish: async props => {\n // End the model generation span BEFORE calling the user's onFinish callback\n // This ensures the model span ends before the agent span\n llmSpan?.end({\n output: {\n text: props?.text,\n reasoning: props?.reasoningDetails,\n reasoningText: props?.reasoning,\n files: props?.files,\n sources: props?.sources,\n warnings: props?.warnings,\n },\n attributes: {\n finishReason: props?.finishReason,\n usage: convertV4Usage(props?.usage),\n },\n });\n\n try {\n await onFinish?.({ ...props, runId: runId! });\n } catch (e: unknown) {\n const mastraError = new MastraError(\n {\n id: 'LLM_STREAM_ON_FINISH_CALLBACK_EXECUTION_FAILED',\n domain: ErrorDomain.LLM,\n category: ErrorCategory.USER,\n details: {\n modelId: model.modelId,\n modelProvider: model.provider,\n runId: runId ?? 'unknown',\n threadId: threadId ?? 'unknown',\n resourceId: resourceId ?? 'unknown',\n finishReason: props?.finishReason,\n toolCalls: props?.toolCalls ? JSON.stringify(props.toolCalls) : '',\n toolResults: props?.toolResults ? JSON.stringify(props.toolResults) : '',\n usage: props?.usage ? JSON.stringify(props.usage) : '',\n },\n },\n e,\n );\n llmSpan?.error({ error: mastraError });\n this.logger.trackException(mastraError);\n throw mastraError;\n }\n\n this.logger.debug('[LLM] - Stream Finished:', {\n text: props?.text,\n toolCalls: props?.toolCalls,\n toolResults: props?.toolResults,\n finishReason: props?.finishReason,\n usage: props?.usage,\n runId,\n threadId,\n resourceId,\n });\n },\n ...rest,\n messages,\n experimental_output: schema\n ? (Output.object({\n schema,\n }) as any)\n : undefined,\n };\n\n try {\n return executeWithContextSync({ span: llmSpan, fn: () => streamText(argsForExecute) });\n } catch (e: unknown) {\n const mastraError = new MastraError(\n {\n id: 'LLM_STREAM_TEXT_AI_SDK_EXECUTION_FAILED',\n domain: ErrorDomain.LLM,\n category: ErrorCategory.THIRD_PARTY,\n details: {\n modelId: model.modelId,\n modelProvider: model.provider,\n runId: runId ?? 'unknown',\n threadId: threadId ?? 'unknown',\n resourceId: resourceId ?? 'unknown',\n },\n },\n e,\n );\n llmSpan?.error({ error: mastraError });\n throw mastraError;\n }\n }\n\n __streamObject<T extends ZodSchema | JSONSchema7>({\n messages,\n runId,\n requestContext,\n threadId,\n resourceId,\n onFinish,\n structuredOutput,\n tracingContext,\n ...rest\n }: StreamObjectWithMessagesArgs<T>): StreamObjectResult<T> {\n const model = this.#model;\n this.logger.debug(`[LLM] - Streaming structured output`, {\n runId,\n messages,\n });\n\n const llmSpan = tracingContext.currentSpan?.createChildSpan({\n name: `llm: '${model.modelId}'`,\n type: SpanType.MODEL_GENERATION,\n input: {\n messages,\n },\n attributes: {\n model: model.modelId,\n provider: model.provider,\n parameters: {\n temperature: rest.temperature,\n maxOutputTokens: rest.maxTokens,\n topP: rest.topP,\n frequencyPenalty: rest.frequencyPenalty,\n presencePenalty: rest.presencePenalty,\n },\n streaming: true,\n },\n metadata: {\n runId,\n threadId,\n resourceId,\n },\n tracingPolicy: this.#options?.tracingPolicy,\n });\n\n try {\n let output: 'object' | 'array' = 'object';\n if (isZodArray(structuredOutput)) {\n output = 'array';\n structuredOutput = getZodDef(structuredOutput).type;\n }\n\n const processedSchema = this._applySchemaCompat(structuredOutput!);\n llmSpan?.update({\n input: {\n messages,\n schema: processedSchema,\n },\n });\n\n const argsForExecute: OriginalStreamObjectOptions<T> = {\n ...rest,\n model,\n onFinish: async (props: any) => {\n // End the model generation span BEFORE calling the user's onFinish callback\n // This ensures the model span ends before the agent span\n llmSpan?.end({\n output: {\n text: props?.text,\n object: props?.object,\n reasoning: props?.reasoningDetails,\n reasoningText: props?.reasoning,\n files: props?.files,\n sources: props?.sources,\n warnings: props?.warnings,\n },\n attributes: {\n finishReason: props?.finishReason,\n usage: props?.usage,\n },\n });\n\n try {\n await onFinish?.({ ...props, runId: runId! });\n } catch (e: unknown) {\n const mastraError = new MastraError(\n {\n id: 'LLM_STREAM_OBJECT_ON_FINISH_CALLBACK_EXECUTION_FAILED',\n domain: ErrorDomain.LLM,\n category: ErrorCategory.USER,\n details: {\n modelId: model.modelId,\n modelProvider: model.provider,\n runId: runId ?? 'unknown',\n threadId: threadId ?? 'unknown',\n resourceId: resourceId ?? 'unknown',\n toolCalls: '',\n toolResults: '',\n finishReason: '',\n usage: props?.usage ? JSON.stringify(props.usage) : '',\n },\n },\n e,\n );\n this.logger.trackException(mastraError);\n llmSpan?.error({ error: mastraError });\n throw mastraError;\n }\n\n this.logger.debug('[LLM] - Object Stream Finished:', {\n usage: props?.usage,\n runId,\n threadId,\n resourceId,\n });\n },\n messages,\n // @ts-expect-error - output in our implementation can only be object or array\n output,\n schema: processedSchema as Schema<inferOutput<T>>,\n };\n\n try {\n return streamObject(argsForExecute as any);\n } catch (e: unknown) {\n const mastraError = new MastraError(\n {\n id: 'LLM_STREAM_OBJECT_AI_SDK_EXECUTION_FAILED',\n domain: ErrorDomain.LLM,\n category: ErrorCategory.THIRD_PARTY,\n details: {\n modelId: model.modelId,\n modelProvider: model.provider,\n runId: runId ?? 'unknown',\n threadId: threadId ?? 'unknown',\n resourceId: resourceId ?? 'unknown',\n },\n },\n e,\n );\n llmSpan?.error({ error: mastraError });\n throw mastraError;\n }\n } catch (e: unknown) {\n if (e instanceof MastraError) {\n llmSpan?.error({ error: e });\n throw e;\n }\n\n const mastraError = new MastraError(\n {\n id: 'LLM_STREAM_OBJECT_AI_SDK_SCHEMA_CONVERSION_FAILED',\n domain: ErrorDomain.LLM,\n category: ErrorCategory.USER,\n details: {\n modelId: model.modelId,\n modelProvider: model.provider,\n runId: runId ?? 'unknown',\n threadId: threadId ?? 'unknown',\n resourceId: resourceId ?? 'unknown',\n },\n },\n e,\n );\n llmSpan?.error({ error: mastraError });\n throw mastraError;\n }\n }\n\n convertToMessages(messages: string | string[] | CoreMessage[]): CoreMessage[] {\n if (Array.isArray(messages)) {\n return messages.map(m => {\n if (typeof m === 'string') {\n return {\n role: 'user',\n content: m,\n };\n }\n return m;\n });\n }\n\n return [\n {\n role: 'user',\n content: messages,\n },\n ];\n }\n\n async generate<\n Output extends ZodSchema | JSONSchema7 | undefined = undefined,\n StructuredOutput extends ZodSchema | JSONSchema7 | undefined = undefined,\n Tools extends ToolSet = ToolSet,\n >(\n messages: string | string[] | CoreMessage[],\n {\n output,\n ...rest\n }: Omit<\n Output extends undefined\n ? GenerateTextWithMessagesArgs<Tools, StructuredOutput>\n : Omit<GenerateObjectWithMessagesArgs<NonNullable<Output>>, 'structuredOutput' | 'output'>,\n 'messages'\n > & { output?: Output },\n ): Promise<GenerateReturn<Tools, Output, StructuredOutput>> {\n const msgs = this.convertToMessages(messages);\n\n if (!output) {\n const { maxSteps, onStepFinish, ...textOptions } = rest as Omit<\n GenerateTextWithMessagesArgs<Tools, StructuredOutput>,\n 'messages'\n >;\n return (await this.__text<Tools, StructuredOutput>({\n messages: msgs,\n maxSteps,\n onStepFinish,\n ...textOptions,\n })) as unknown as GenerateReturn<Tools, Output, StructuredOutput>;\n }\n\n return (await this.__textObject({\n messages: msgs,\n structuredOutput: output as NonNullable<Output>,\n ...rest,\n })) as unknown as GenerateReturn<Tools, Output, StructuredOutput>;\n }\n\n stream<\n Output extends ZodSchema | JSONSchema7 | undefined = undefined,\n StructuredOutput extends ZodSchema | JSONSchema7 | undefined = undefined,\n Tools extends ToolSet = ToolSet,\n >(\n messages: string | string[] | CoreMessage[],\n {\n maxSteps = 5,\n output,\n onFinish,\n ...rest\n }: Omit<\n Output extends undefined\n ? StreamTextWithMessagesArgs<Tools, StructuredOutput>\n : Omit<StreamObjectWithMessagesArgs<NonNullable<Output>>, 'structuredOutput' | 'output'> & { maxSteps?: never },\n 'messages'\n > & { output?: Output },\n ): StreamReturn<Tools, Output, StructuredOutput> {\n const msgs = this.convertToMessages(messages);\n\n if (!output) {\n return this.__stream({\n messages: msgs,\n maxSteps,\n onFinish: onFinish as StreamTextOnFinishCallback<Tools> | undefined,\n ...rest,\n }) as unknown as StreamReturn<Tools, Output, StructuredOutput>;\n }\n\n return this.__streamObject({\n messages: msgs,\n structuredOutput: output as NonNullable<Output>,\n onFinish: onFinish as StreamObjectOnFinishCallback<inferOutput<Output>> | undefined,\n ...rest,\n }) as unknown as StreamReturn<Tools, Output, StructuredOutput>;\n }\n}\n","import { randomUUID } from 'node:crypto';\n\n/**\n * Converts a doGenerate result to a ReadableStream format.\n * This is shared between V2 and V3 model wrappers since the content/result structure is compatible.\n */\nexport function createStreamFromGenerateResult(result: {\n warnings: unknown[];\n response?: {\n id?: string;\n modelId?: string;\n timestamp?: Date;\n };\n content: Array<{\n type: string;\n [key: string]: unknown;\n }>;\n finishReason: unknown;\n usage: unknown;\n providerMetadata?: unknown;\n}): ReadableStream {\n return new ReadableStream({\n start(controller) {\n controller.enqueue({ type: 'stream-start', warnings: result.warnings });\n controller.enqueue({\n type: 'response-metadata',\n id: result.response?.id,\n modelId: result.response?.modelId,\n timestamp: result.response?.timestamp,\n });\n\n for (const message of result.content) {\n if (message.type === 'tool-call') {\n const toolCall = message as {\n type: 'tool-call';\n toolCallId: string;\n toolName: string;\n input: unknown;\n };\n controller.enqueue({\n type: 'tool-input-start',\n id: toolCall.toolCallId,\n toolName: toolCall.toolName,\n });\n controller.enqueue({\n type: 'tool-input-delta',\n id: toolCall.toolCallId,\n delta: toolCall.input,\n });\n controller.enqueue({\n type: 'tool-input-end',\n id: toolCall.toolCallId,\n });\n controller.enqueue(toolCall);\n } else if (message.type === 'tool-result') {\n controller.enqueue(message);\n } else if (message.type === 'text') {\n const text = message as {\n type: 'text';\n text: string;\n providerMetadata?: unknown;\n };\n const id = `msg_${randomUUID()}`;\n controller.enqueue({\n type: 'text-start',\n id,\n providerMetadata: text.providerMetadata,\n });\n controller.enqueue({\n type: 'text-delta',\n id,\n delta: text.text,\n });\n controller.enqueue({\n type: 'text-end',\n id,\n });\n } else if (message.type === 'reasoning') {\n const id = `reasoning_${randomUUID()}`;\n const reasoning = message as {\n type: 'reasoning';\n text: string;\n providerMetadata?: unknown;\n };\n controller.enqueue({\n type: 'reasoning-start',\n id,\n providerMetadata: reasoning.providerMetadata,\n });\n controller.enqueue({\n type: 'reasoning-delta',\n id,\n delta: reasoning.text,\n providerMetadata: reasoning.providerMetadata,\n });\n controller.enqueue({\n type: 'reasoning-end',\n id,\n providerMetadata: reasoning.providerMetadata,\n });\n } else if (message.type === 'file') {\n const file = message as {\n type: 'file';\n mediaType: string;\n data: unknown;\n };\n controller.enqueue({\n type: 'file',\n mediaType: file.mediaType,\n data: file.data,\n });\n } else if (message.type === 'source') {\n const source = message as {\n type: 'source';\n sourceType: 'url' | 'document';\n id: string;\n url?: string;\n mediaType?: string;\n filename?: string;\n title?: string;\n providerMetadata?: unknown;\n };\n if (source.sourceType === 'url') {\n controller.enqueue({\n type: 'source',\n id: source.id,\n sourceType: 'url',\n url: source.url,\n title: source.title,\n providerMetadata: source.providerMetadata,\n });\n } else {\n controller.enqueue({\n type: 'source',\n id: source.id,\n sourceType: 'document',\n mediaType: source.mediaType,\n filename: source.filename,\n title: source.title,\n providerMetadata: source.providerMetadata,\n });\n }\n }\n }\n\n controller.enqueue({\n type: 'finish',\n finishReason: result.finishReason,\n usage: result.usage,\n providerMetadata: result.providerMetadata,\n });\n\n controller.close();\n },\n });\n}\n","import type { LanguageModelV2, LanguageModelV2CallOptions } from '@ai-sdk/provider-v5';\nimport type { MastraLanguageModelV2 } from '../../shared.types';\nimport { createStreamFromGenerateResult } from '../generate-to-stream';\n\ntype StreamResult = Awaited<ReturnType<LanguageModelV2['doStream']>>;\n\n/**\n * Wrapper class for AI SDK V5 (LanguageModelV2) that converts doGenerate to return\n * a stream format for consistency with Mastra's streaming architecture.\n */\nexport class AISDKV5LanguageModel implements MastraLanguageModelV2 {\n /**\n * The language model must specify which language model interface version it implements.\n */\n readonly specificationVersion: 'v2' = 'v2';\n /**\n * Name of the provider for logging purposes.\n */\n readonly provider: string;\n /**\n * Provider-specific model ID for logging purposes.\n */\n readonly modelId: string;\n /**\n * Supported URL patterns by media type for the provider.\n *\n * The keys are media type patterns or full media types (e.g. `*\\/*` for everything, `audio/*`, `video/*`, or `application/pdf`).\n * and the values are arrays of regular expressions that match the URL paths.\n * The matching should be against lower-case URLs.\n * Matched URLs are supported natively by the model and are not downloaded.\n * @returns A map of supported URL patterns by media type (as a promise or a plain object).\n */\n supportedUrls: PromiseLike<Record<string, RegExp[]>> | Record<string, RegExp[]>;\n\n #model: LanguageModelV2;\n\n constructor(config: LanguageModelV2) {\n this.#model = config;\n this.provider = this.#model.provider;\n this.modelId = this.#model.modelId;\n this.supportedUrls = this.#model.supportedUrls;\n }\n\n async doGenerate(options: LanguageModelV2CallOptions) {\n const result = await this.#model.doGenerate(options);\n\n return {\n request: result.request!,\n response: result.response as unknown as StreamResult['response'],\n stream: createStreamFromGenerateResult(result),\n };\n }\n\n async doStream(options: LanguageModelV2CallOptions) {\n return await this.#model.doStream(options);\n }\n}\n"]}
@@ -99,6 +99,7 @@ var ErrorDomain = /* @__PURE__ */ ((ErrorDomain2) => {
99
99
  ErrorDomain2["MASTRA_WORKFLOW"] = "MASTRA_WORKFLOW";
100
100
  ErrorDomain2["MASTRA_VOICE"] = "MASTRA_VOICE";
101
101
  ErrorDomain2["MASTRA_VECTOR"] = "MASTRA_VECTOR";
102
+ ErrorDomain2["MASTRA_MEMORY"] = "MASTRA_MEMORY";
102
103
  ErrorDomain2["LLM"] = "LLM";
103
104
  ErrorDomain2["EVAL"] = "EVAL";
104
105
  ErrorDomain2["SCORER"] = "SCORER";
@@ -172,5 +173,5 @@ exports.ErrorDomain = ErrorDomain;
172
173
  exports.MastraBaseError = MastraBaseError;
173
174
  exports.MastraError = MastraError;
174
175
  exports.getErrorFromUnknown = getErrorFromUnknown;
175
- //# sourceMappingURL=chunk-HWMMIRIF.cjs.map
176
- //# sourceMappingURL=chunk-HWMMIRIF.cjs.map
176
+ //# sourceMappingURL=chunk-4U7ZLI36.cjs.map
177
+ //# sourceMappingURL=chunk-4U7ZLI36.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/error/utils.ts","../src/error/index.ts"],"names":["ErrorDomain","ErrorCategory"],"mappings":"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","file":"chunk-4U7ZLI36.cjs","sourcesContent":["/**\n * Safely converts an object to a string representation.\n * Uses JSON.stringify first, but falls back to String() if:\n * - JSON.stringify fails (e.g., circular references)\n * - JSON.stringify returns \"{}\" (e.g., Error objects with no enumerable properties)\n */\nexport function safeParseErrorObject(obj: unknown): string {\n if (typeof obj !== 'object' || obj === null) {\n return String(obj);\n }\n\n try {\n const stringified = JSON.stringify(obj);\n // If JSON.stringify returns \"{}\", fall back to String() for better representation\n if (stringified === '{}') {\n return String(obj);\n }\n return stringified;\n } catch {\n // Fallback to String() if JSON.stringify fails (e.g., circular references)\n return String(obj);\n }\n}\n\n/**\n * Represents a serialized error structure for JSON output.\n */\nexport type SerializedError = {\n name: string;\n message: string;\n stack?: string;\n cause?: SerializedError | unknown;\n} & Record<string, any>;\n\n/**\n * An Error instance with a toJSON method for proper serialization.\n */\nexport type SerializableError = Error & {\n toJSON: () => SerializedError;\n};\n\n/**\n * Safely converts an unknown error to an Error instance.\n */\nexport function getErrorFromUnknown<SERIALIZABLE extends boolean = true>(\n unknown: unknown,\n options: {\n /**\n * The fallback error message to use if the unknown error cannot be parsed.\n */\n fallbackMessage?: string;\n /**\n * The maximum depth to parse the cause of the error.\n */\n maxDepth?: number;\n /**\n * Whether to add .toJSON() method to the error instance to support serialization. (JSON.stringify)\n * @example\n * const error = getErrorFromUnknown(new Error('test'), { supportSerialization: true });\n * JSON.stringify(error) // { message: 'test', name: 'Error', stack: 'Error: test\\n at ...' }\n */\n supportSerialization?: SERIALIZABLE;\n /**\n * Whether to include the stack in JSON serialization.\n * The stack is always preserved on the Error instance for debugging.\n * This option only controls whether it appears in toJSON() output.\n * @default true\n */\n serializeStack?: boolean;\n } = {},\n): SERIALIZABLE extends true ? SerializableError : Error {\n const defaultOptions = {\n fallbackMessage: 'Unknown error',\n maxDepth: 5,\n supportSerialization: true,\n serializeStack: true,\n };\n const mergedOptions = options ? { ...defaultOptions, ...options } : defaultOptions;\n const { fallbackMessage, maxDepth, supportSerialization, serializeStack } = mergedOptions;\n\n if (unknown && unknown instanceof Error) {\n // Stack is always preserved on the instance for debugging\n // serializeStack only controls whether it appears in toJSON() output\n if (supportSerialization) {\n addErrorToJSON(unknown, serializeStack, { maxDepth });\n }\n return unknown as SERIALIZABLE extends true ? SerializableError : Error;\n }\n\n let error: Error | undefined;\n\n if (unknown && typeof unknown === 'object') {\n const errorMessage =\n unknown && 'message' in unknown && typeof unknown.message === 'string'\n ? unknown.message\n : safeParseErrorObject(unknown);\n\n const errorCause =\n 'cause' in unknown && unknown.cause !== undefined\n ? unknown.cause instanceof Error\n ? unknown.cause\n : maxDepth > 0 // Only process cause if we haven't exceeded max depth\n ? getErrorFromUnknown(unknown.cause, { ...mergedOptions, maxDepth: maxDepth - 1 })\n : undefined\n : undefined;\n\n error = new Error(errorMessage, errorCause ? { cause: errorCause } : undefined);\n\n Object.assign(error as Error, unknown);\n error.stack = 'stack' in unknown && typeof unknown.stack === 'string' ? unknown.stack : undefined;\n } else if (unknown && typeof unknown === 'string') {\n error = new Error(unknown);\n error.stack = undefined;\n } else {\n error = new Error(fallbackMessage);\n }\n\n if (supportSerialization) {\n addErrorToJSON(error, serializeStack, { maxDepth });\n }\n return error as SERIALIZABLE extends true ? SerializableError : Error;\n}\n\nconst DEFAULT_MAX_DEPTH = 5;\n\n/**\n * Adds a toJSON method to an Error instance for proper serialization.\n * Ensures that message, name, cause, and custom properties are all serialized.\n * Stack is only included in JSON output if serializeStack is true.\n * Recursively adds toJSON to the cause chain for proper nested error serialization.\n */\nfunction addErrorToJSON(\n error: Error,\n serializeStack: boolean = true,\n options?: { maxDepth?: number; currentDepth?: number },\n): void {\n const maxDepth = options?.maxDepth ?? DEFAULT_MAX_DEPTH;\n const currentDepth = options?.currentDepth ?? 0;\n\n // Skip if error already has toJSON - preserves custom implementations\n // and avoids re-processing (first call's options win)\n if ((error as SerializableError).toJSON) {\n return;\n }\n\n // Recursively add toJSON to cause chain (with depth protection)\n if (error.cause instanceof Error && currentDepth < maxDepth) {\n addErrorToJSON(error.cause, serializeStack, { maxDepth, currentDepth: currentDepth + 1 });\n }\n\n // Define toJSON as non-enumerable to avoid interfering with object comparisons\n Object.defineProperty(error, 'toJSON', {\n value: function (this: Error) {\n const json: SerializedError = {\n message: this.message,\n name: this.name,\n };\n // Only include stack in JSON if serializeStack is true\n if (serializeStack && this.stack !== undefined) {\n json.stack = this.stack;\n }\n\n // Serialize cause if it's an Error and has a toJSON method, else include as is\n if (this.cause !== undefined) {\n if (this.cause instanceof Error && 'toJSON' in this.cause && typeof this.cause.toJSON === 'function') {\n json.cause = this.cause.toJSON();\n } else {\n json.cause = this.cause;\n }\n }\n\n // Include all enumerable custom properties\n const errorAsAny = this as any;\n for (const key in errorAsAny) {\n if (errorAsAny.hasOwnProperty(key) && !(key in json) && key !== 'toJSON') {\n json[key] = errorAsAny[key];\n }\n }\n\n return json;\n },\n enumerable: false,\n writable: true,\n configurable: true,\n });\n}\n","import { getErrorFromUnknown } from './utils.js';\nimport type { SerializableError, SerializedError } from './utils.js';\n\nexport { getErrorFromUnknown };\nexport type { SerializableError, SerializedError };\n\nexport enum ErrorDomain {\n TOOL = 'TOOL',\n AGENT = 'AGENT',\n MCP = 'MCP',\n AGENT_NETWORK = 'AGENT_NETWORK',\n MASTRA_SERVER = 'MASTRA_SERVER',\n MASTRA_OBSERVABILITY = 'MASTRA_OBSERVABILITY',\n MASTRA_WORKFLOW = 'MASTRA_WORKFLOW',\n MASTRA_VOICE = 'MASTRA_VOICE',\n MASTRA_VECTOR = 'MASTRA_VECTOR',\n MASTRA_MEMORY = 'MASTRA_MEMORY',\n LLM = 'LLM',\n EVAL = 'EVAL',\n SCORER = 'SCORER',\n A2A = 'A2A',\n MASTRA_INSTANCE = 'MASTRA_INSTANCE',\n MASTRA = 'MASTRA',\n DEPLOYER = 'DEPLOYER',\n STORAGE = 'STORAGE',\n MODEL_ROUTER = 'MODEL_ROUTER',\n}\n\nexport enum ErrorCategory {\n UNKNOWN = 'UNKNOWN',\n USER = 'USER',\n SYSTEM = 'SYSTEM',\n THIRD_PARTY = 'THIRD_PARTY',\n}\n\ntype Scalar = null | boolean | number | string;\n\ntype Json<T> = [T] extends [Scalar | undefined]\n ? Scalar\n : [T] extends [{ [x: number]: unknown }]\n ? { [K in keyof T]: Json<T[K]> }\n : never;\n\n/**\n * Defines the structure for an error's metadata.\n * This is used to create instances of MastraError.\n */\nexport interface IErrorDefinition<DOMAIN, CATEGORY> {\n /** Unique identifier for the error. */\n id: Uppercase<string>;\n /**\n * Optional custom error message that overrides the original error message.\n * If not provided, the original error message will be used, or 'Unknown error' if no error is provided.\n */\n text?: string;\n /**\n * Functional domain of the error (e.g., CONFIG, BUILD, API).\n */\n domain: DOMAIN;\n /** Broad category of the error (e.g., USER, SYSTEM, THIRD_PARTY). */\n category: CATEGORY;\n\n details?: Record<string, Json<Scalar>>;\n}\n\n/**\n * JSON representation of a MastraError for serialization\n */\nexport interface MastraErrorJSON<DOMAIN = string, CATEGORY = string> {\n message: string;\n code: Uppercase<string>;\n category: CATEGORY;\n domain: DOMAIN;\n details?: Record<string, Json<Scalar>>;\n cause?: ReturnType<SerializableError['toJSON']>;\n}\n\n/**\n * Base error class for the Mastra ecosystem.\n * It standardizes error reporting and can be extended for more specific error types.\n */\nexport class MastraBaseError<DOMAIN, CATEGORY> extends Error {\n public readonly id: Uppercase<string>;\n public readonly domain: DOMAIN;\n public readonly category: CATEGORY;\n public readonly details?: Record<string, Json<Scalar>> = {};\n public readonly message: string;\n public cause?: SerializableError;\n\n constructor(\n errorDefinition: IErrorDefinition<DOMAIN, CATEGORY>,\n originalError?: string | Error | MastraBaseError<DOMAIN, CATEGORY> | unknown,\n ) {\n const error = originalError\n ? getErrorFromUnknown(originalError, {\n serializeStack: false,\n fallbackMessage: 'Unknown error',\n })\n : undefined;\n\n const message = errorDefinition.text ?? error?.message ?? 'Unknown error';\n\n super(message, { cause: error });\n this.id = errorDefinition.id;\n this.domain = errorDefinition.domain;\n this.category = errorDefinition.category;\n this.details = errorDefinition.details ?? {};\n this.message = message;\n this.cause = error;\n\n Object.setPrototypeOf(this, new.target.prototype);\n }\n\n /**\n * Returns a structured representation of the error, useful for logging or API responses.\n */\n public toJSONDetails() {\n return {\n message: this.message,\n domain: this.domain,\n category: this.category,\n details: this.details,\n };\n }\n\n public toJSON(): MastraErrorJSON<DOMAIN, CATEGORY> {\n return {\n message: this.message,\n domain: this.domain,\n category: this.category,\n code: this.id,\n details: this.details,\n cause: this.cause?.toJSON?.(),\n };\n }\n\n public toString() {\n return JSON.stringify(this.toJSON());\n }\n}\n\nexport class MastraError extends MastraBaseError<`${ErrorDomain}`, `${ErrorCategory}`> {}\n"]}
@@ -1,8 +1,9 @@
1
1
  'use strict';
2
2
 
3
+ var chunkH2NHG7QL_cjs = require('./chunk-H2NHG7QL.cjs');
3
4
  var chunkUVHSM2GU_cjs = require('./chunk-UVHSM2GU.cjs');
4
- var zod = require('zod');
5
5
 
6
+ // src/tools/validation.ts
6
7
  function truncateForLogging(data, maxLength = 200) {
7
8
  try {
8
9
  const stringified = JSON.stringify(data, null, 2);
@@ -37,10 +38,10 @@ function normalizeNullishInput(schema, input) {
37
38
  if (input !== void 0 && input !== null) {
38
39
  return input;
39
40
  }
40
- if (schema instanceof zod.z.ZodArray) {
41
+ if (chunkH2NHG7QL_cjs.isZodArray(schema)) {
41
42
  return [];
42
43
  }
43
- if (schema instanceof zod.z.ZodObject) {
44
+ if (chunkH2NHG7QL_cjs.isZodObject(schema)) {
44
45
  return {};
45
46
  }
46
47
  return input;
@@ -262,7 +263,7 @@ function createTool(opts) {
262
263
 
263
264
  // src/tools/toolchecks.ts
264
265
  function isVercelTool(tool) {
265
- return !!(tool && !(tool instanceof Tool) && "parameters" in tool);
266
+ return !!(tool && !(tool instanceof Tool) && ("parameters" in tool || "execute" in tool && typeof tool.execute === "function" && "inputSchema" in tool));
266
267
  }
267
268
 
268
269
  exports.Tool = Tool;
@@ -271,5 +272,5 @@ exports.isVercelTool = isVercelTool;
271
272
  exports.validateToolInput = validateToolInput;
272
273
  exports.validateToolOutput = validateToolOutput;
273
274
  exports.validateToolSuspendData = validateToolSuspendData;
274
- //# sourceMappingURL=chunk-Z55SJVEC.cjs.map
275
- //# sourceMappingURL=chunk-Z55SJVEC.cjs.map
275
+ //# sourceMappingURL=chunk-6HJFCSJ4.cjs.map
276
+ //# sourceMappingURL=chunk-6HJFCSJ4.cjs.map