mastra 0.12.4-alpha.0 → 0.13.0-alpha.1

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 (304) hide show
  1. package/CHANGELOG.md +48 -0
  2. package/dist/{chunk-GOKV7IM3.js → chunk-FXKIG3BA.js} +47 -47
  3. package/dist/chunk-FXKIG3BA.js.map +1 -0
  4. package/dist/commands/actions/start-dev-server.d.ts.map +1 -1
  5. package/dist/commands/build/BuildBundler.d.ts +4 -1
  6. package/dist/commands/build/BuildBundler.d.ts.map +1 -1
  7. package/dist/commands/build/build.d.ts.map +1 -1
  8. package/dist/commands/create/create.js +1 -1
  9. package/dist/commands/deploy/index.d.ts.map +1 -1
  10. package/dist/commands/dev/DevBundler.d.ts.map +1 -1
  11. package/dist/commands/dev/dev.d.ts +2 -1
  12. package/dist/commands/dev/dev.d.ts.map +1 -1
  13. package/dist/commands/init/utils.d.ts +5 -2
  14. package/dist/commands/init/utils.d.ts.map +1 -1
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +49 -21
  17. package/dist/index.js.map +1 -1
  18. package/dist/playground/assets/{abap-Cw7Alc4K.js → abap-BWgKlmpe.js} +1 -1
  19. package/dist/playground/assets/{abnf-DK7sFrDW.js → abnf-DDYzL7JH.js} +1 -1
  20. package/dist/playground/assets/{actionscript-BP6B8Hbw.js → actionscript-CXTPlSA9.js} +1 -1
  21. package/dist/playground/assets/{ada-HItSzf2q.js → ada-CHBGKSVc.js} +1 -1
  22. package/dist/playground/assets/{agda-tIvRecpp.js → agda-BMH6UlWD.js} +1 -1
  23. package/dist/playground/assets/{al-CsYXrLDk.js → al-C6uHPJXU.js} +1 -1
  24. package/dist/playground/assets/{antlr4-Ci2fo-4l.js → antlr4-CKA0xV6m.js} +1 -1
  25. package/dist/playground/assets/{apacheconf-BNO1SVjl.js → apacheconf-DgPla2bW.js} +1 -1
  26. package/dist/playground/assets/{apex-syBWKseI.js → apex-XIH-65Aw.js} +1 -1
  27. package/dist/playground/assets/{apl-C2zXtpC0.js → apl-GodBGSsS.js} +1 -1
  28. package/dist/playground/assets/{applescript-C4glI0lb.js → applescript-jwbDMlik.js} +1 -1
  29. package/dist/playground/assets/{aql-V3ECrNVB.js → aql-BOJZRlos.js} +1 -1
  30. package/dist/playground/assets/{arduino-nK38LVP5.js → arduino-BNPrf0Yr.js} +1 -1
  31. package/dist/playground/assets/{arff-DnMelTxC.js → arff-D_Cj-64y.js} +1 -1
  32. package/dist/playground/assets/{asciidoc-QaS9Lv09.js → asciidoc-B-qNAfHI.js} +1 -1
  33. package/dist/playground/assets/{asm6502-BjxWoeam.js → asm6502-DgAnVW78.js} +1 -1
  34. package/dist/playground/assets/{asmatmel-DO7pw6P1.js → asmatmel-BRk0VQ2t.js} +1 -1
  35. package/dist/playground/assets/{aspnet-CxUF-Cnx.js → aspnet-CpkAtqUp.js} +1 -1
  36. package/dist/playground/assets/{autohotkey-D7jXwy9X.js → autohotkey-2pgO6uyh.js} +1 -1
  37. package/dist/playground/assets/{autoit-BOjYXd1c.js → autoit-DIeRtPNi.js} +1 -1
  38. package/dist/playground/assets/{avisynth-C8AnwIBc.js → avisynth-BwMsNcxX.js} +1 -1
  39. package/dist/playground/assets/{avro-idl-BEVnFd2z.js → avro-idl-Ciw9HgHr.js} +1 -1
  40. package/dist/playground/assets/{bash-xkOZYeeM.js → bash-DCs5BGdP.js} +1 -1
  41. package/dist/playground/assets/{basic-CimIunyc.js → basic-CC_ZctSg.js} +1 -1
  42. package/dist/playground/assets/{batch-DzQcbAF_.js → batch-BfMMiDZ4.js} +1 -1
  43. package/dist/playground/assets/{bbcode-C-ma0UDj.js → bbcode-DOsqnw3n.js} +1 -1
  44. package/dist/playground/assets/{bicep-C5ige99X.js → bicep-hpDMdxVC.js} +1 -1
  45. package/dist/playground/assets/{birb-DeDcMvxc.js → birb-ijku03XR.js} +1 -1
  46. package/dist/playground/assets/{bison-BTp7nCpm.js → bison-BLfbLbSK.js} +1 -1
  47. package/dist/playground/assets/{bnf-CUT-teDw.js → bnf-BlgE-Nsi.js} +1 -1
  48. package/dist/playground/assets/{brainfuck-orODNKhj.js → brainfuck-CQS9VCyw.js} +1 -1
  49. package/dist/playground/assets/{brightscript-DhZyaprV.js → brightscript-C1otdImm.js} +1 -1
  50. package/dist/playground/assets/{bro-CbWfb-VZ.js → bro-CkNkf3zA.js} +1 -1
  51. package/dist/playground/assets/{bsl-BLug5Cqb.js → bsl-DoXkqnCz.js} +1 -1
  52. package/dist/playground/assets/{c-6MJJkp-9.js → c-CC_wmsAM.js} +1 -1
  53. package/dist/playground/assets/{cfscript-Br_Qwd6_.js → cfscript-Dtvuh4Dj.js} +1 -1
  54. package/dist/playground/assets/{chaiscript-Dm4_UIOj.js → chaiscript-Bs_IeQA_.js} +1 -1
  55. package/dist/playground/assets/{cil-Dv9bo47X.js → cil-DIcIZnWz.js} +1 -1
  56. package/dist/playground/assets/{clike-gokfl3_s.js → clike-GHQAsS1x.js} +1 -1
  57. package/dist/playground/assets/{clojure-B_rwmOc8.js → clojure-DNHlPkfr.js} +1 -1
  58. package/dist/playground/assets/{cmake-i2z-cgif.js → cmake-6qtsG8o2.js} +1 -1
  59. package/dist/playground/assets/{cobol-Dy2Ntqib.js → cobol-Bb65e5q1.js} +1 -1
  60. package/dist/playground/assets/{coffeescript-DS2BESvD.js → coffeescript-DK9w_pRU.js} +1 -1
  61. package/dist/playground/assets/{concurnas-DsmeUUXl.js → concurnas-D7CORqzE.js} +1 -1
  62. package/dist/playground/assets/{coq-CvchndfB.js → coq-D7kWaYMf.js} +1 -1
  63. package/dist/playground/assets/{core-lwtqrLrP.js → core-tdbGsMRV.js} +1 -1
  64. package/dist/playground/assets/{cpp-RP-AFtRx.js → cpp-B42_ky_I.js} +1 -1
  65. package/dist/playground/assets/{crystal-DCLKyQIg.js → crystal-Dj7RfYUN.js} +1 -1
  66. package/dist/playground/assets/{csharp-sEpkBeuM.js → csharp-C5IN6L8J.js} +1 -1
  67. package/dist/playground/assets/{cshtml-z7ejYB5t.js → cshtml-DyR4l1JJ.js} +1 -1
  68. package/dist/playground/assets/{csp-B4go6sci.js → csp-Dqz6j7kX.js} +1 -1
  69. package/dist/playground/assets/{css-1ZRUf2qr.js → css-F_7ba4fH.js} +1 -1
  70. package/dist/playground/assets/{css-extras-Ba1YTPWa.js → css-extras-CfT33TrD.js} +1 -1
  71. package/dist/playground/assets/{csv-CAAnj_GN.js → csv-DxWJFkTu.js} +1 -1
  72. package/dist/playground/assets/{cypher-DxMFT6nm.js → cypher-BpBtBxTh.js} +1 -1
  73. package/dist/playground/assets/{d-DCQESbo_.js → d-5S3pes_s.js} +1 -1
  74. package/dist/playground/assets/{dart-BifPaH4g.js → dart-BhZgEita.js} +1 -1
  75. package/dist/playground/assets/{dataweave-B2iTE2U7.js → dataweave-D3-mjgZv.js} +1 -1
  76. package/dist/playground/assets/{dax-B3caKDDr.js → dax-BnivDwum.js} +1 -1
  77. package/dist/playground/assets/{dhall-BnHkqKC9.js → dhall-BjYOikvz.js} +1 -1
  78. package/dist/playground/assets/{diff-DHxb56WJ.js → diff-BpP3HwND.js} +1 -1
  79. package/dist/playground/assets/{django-DkHMKEEw.js → django-CHDhSy1A.js} +1 -1
  80. package/dist/playground/assets/{dns-zone-file-C0qoaC__.js → dns-zone-file-Htuq1kD4.js} +1 -1
  81. package/dist/playground/assets/{docker-Qz8sFB6F.js → docker-CybbFiYr.js} +1 -1
  82. package/dist/playground/assets/{dot-Cud9bZSa.js → dot-B4u1dkBs.js} +1 -1
  83. package/dist/playground/assets/{ebnf-NUkdpqeK.js → ebnf-DHQJNVZH.js} +1 -1
  84. package/dist/playground/assets/{editorconfig-DeE9Y6S5.js → editorconfig-Hpk1AT8q.js} +1 -1
  85. package/dist/playground/assets/{eiffel-BRxopB5I.js → eiffel-BkTZq7df.js} +1 -1
  86. package/dist/playground/assets/{ejs-D07jX9le.js → ejs-ByEaEmfl.js} +1 -1
  87. package/dist/playground/assets/{elixir-D9N-yxYq.js → elixir-D9VUvO4m.js} +1 -1
  88. package/dist/playground/assets/{elm-Za4MW8c3.js → elm-C5_tFiB-.js} +1 -1
  89. package/dist/playground/assets/{erb-BjA6qRY4.js → erb-CRlglCvb.js} +1 -1
  90. package/dist/playground/assets/{erlang-D85R3UBF.js → erlang-BCc50Y6v.js} +1 -1
  91. package/dist/playground/assets/{etlua-D35R6eoa.js → etlua-D7BB9O9R.js} +1 -1
  92. package/dist/playground/assets/{excel-formula-C7mjKX-0.js → excel-formula-CcKPOQ0K.js} +1 -1
  93. package/dist/playground/assets/{factor-DkOgHCyC.js → factor-BYsaYe1q.js} +1 -1
  94. package/dist/playground/assets/{false-zIgGE1G_.js → false-BIBk1p_P.js} +1 -1
  95. package/dist/playground/assets/{firestore-security-rules-DUSEpaor.js → firestore-security-rules-UfU71WJn.js} +1 -1
  96. package/dist/playground/assets/{flow-CF8hwPtl.js → flow-Dn_Xq58e.js} +1 -1
  97. package/dist/playground/assets/{fortran-B2cYjJma.js → fortran-Dm11Kth0.js} +1 -1
  98. package/dist/playground/assets/{fsharp-Bi388QgF.js → fsharp-IuwZKrvk.js} +1 -1
  99. package/dist/playground/assets/{ftl-BSFox_Or.js → ftl-CuiGulNK.js} +1 -1
  100. package/dist/playground/assets/{gap-CdmHYP9M.js → gap-DUp96TWS.js} +1 -1
  101. package/dist/playground/assets/{gcode-CI6Ehm-f.js → gcode-D5XQA6JF.js} +1 -1
  102. package/dist/playground/assets/{gdscript-CcCbow-V.js → gdscript-kcIrI4jd.js} +1 -1
  103. package/dist/playground/assets/{gedcom-CBT5Q3T-.js → gedcom-D1bBBW4G.js} +1 -1
  104. package/dist/playground/assets/{gherkin-BnaQvRVn.js → gherkin-hfpD3KiF.js} +1 -1
  105. package/dist/playground/assets/{git-IVeu8cWA.js → git-h8ZCxvqY.js} +1 -1
  106. package/dist/playground/assets/{glsl-Bgav52QT.js → glsl-DLstkypU.js} +1 -1
  107. package/dist/playground/assets/{gml-C8AxY4Fg.js → gml-BurBQQKQ.js} +1 -1
  108. package/dist/playground/assets/{gn-DyDrNv_A.js → gn-BSzv0udT.js} +1 -1
  109. package/dist/playground/assets/{go-DB-OcnSz.js → go-BlDJ1UL5.js} +1 -1
  110. package/dist/playground/assets/{go-module-Cpfv9lCB.js → go-module-Cm16eehd.js} +1 -1
  111. package/dist/playground/assets/{graphql-bOhkYpDC.js → graphql-DEKpWysB.js} +1 -1
  112. package/dist/playground/assets/{groovy-BSj_T5U9.js → groovy-BQJwWq7O.js} +1 -1
  113. package/dist/playground/assets/{haml-C71lW8It.js → haml-D6VcqLad.js} +1 -1
  114. package/dist/playground/assets/{handlebars-DySPI9xi.js → handlebars-DGS0gpCO.js} +1 -1
  115. package/dist/playground/assets/{haskell-ZC-5b5k5.js → haskell-Lt0uwsh9.js} +1 -1
  116. package/dist/playground/assets/{haxe-DZ46DNB8.js → haxe-Djt63RTe.js} +1 -1
  117. package/dist/playground/assets/{hcl-DEsEYxN5.js → hcl-COgCPZCA.js} +1 -1
  118. package/dist/playground/assets/{hlsl-Clvba-AP.js → hlsl-CQtv329a.js} +1 -1
  119. package/dist/playground/assets/{hoon-BcA9lXBe.js → hoon-TnjMa2NR.js} +1 -1
  120. package/dist/playground/assets/{hpkp-CnUOpFws.js → hpkp-k9uYCjy8.js} +1 -1
  121. package/dist/playground/assets/{hsts-DYcfuFaB.js → hsts-B11uxJZF.js} +1 -1
  122. package/dist/playground/assets/{http-C8iAAMvn.js → http-CZ3nLSWp.js} +1 -1
  123. package/dist/playground/assets/{ichigojam-C3qD641P.js → ichigojam-Bz_1UntJ.js} +1 -1
  124. package/dist/playground/assets/{icon-BuZLYCf1.js → icon-CcE2zpFI.js} +1 -1
  125. package/dist/playground/assets/{icu-message-format-Z4naDHI1.js → icu-message-format-Cu1otBMG.js} +1 -1
  126. package/dist/playground/assets/{idris-B7c5swJo.js → idris-e9M1oS5L.js} +1 -1
  127. package/dist/playground/assets/{iecst-DJcFLCIn.js → iecst-C8upPONn.js} +1 -1
  128. package/dist/playground/assets/{ignore-CwQTN1_3.js → ignore-BzNTytR3.js} +1 -1
  129. package/dist/playground/assets/{index-CLweaCtO.js → index-CfEs3gA7.js} +283 -304
  130. package/dist/playground/assets/{index-mB_FiDAb.js → index-D4e3eG2Y.js} +1 -1
  131. package/dist/playground/assets/{inform7-7Q94Z_8H.js → inform7-DOGLH5SQ.js} +1 -1
  132. package/dist/playground/assets/{ini-XCRToJ7l.js → ini-DjZC8rHC.js} +1 -1
  133. package/dist/playground/assets/{io-CJyBbrnH.js → io-Dl4r27BX.js} +1 -1
  134. package/dist/playground/assets/{j-DqrIrKBX.js → j-whYxpF1q.js} +1 -1
  135. package/dist/playground/assets/{java-7ufDglYX.js → java-DI1O3t8o.js} +1 -1
  136. package/dist/playground/assets/{javadoc-DlxTIeNJ.js → javadoc-adfJanrk.js} +1 -1
  137. package/dist/playground/assets/{javadoclike-h6AE06cz.js → javadoclike-CmXZcF28.js} +1 -1
  138. package/dist/playground/assets/{javascript-DbRsHbAE.js → javascript-B8W7HuKo.js} +1 -1
  139. package/dist/playground/assets/{javastacktrace-CQYqIijV.js → javastacktrace-BJfWxD3x.js} +1 -1
  140. package/dist/playground/assets/{jexl-Cb07FRfT.js → jexl-BiLjp0yE.js} +1 -1
  141. package/dist/playground/assets/{jolie-B6zA1zv5.js → jolie-BEoNBXOJ.js} +1 -1
  142. package/dist/playground/assets/{jq-BzwiBXDq.js → jq-CsXYSHmd.js} +1 -1
  143. package/dist/playground/assets/{js-extras-CzvBDsXb.js → js-extras-Bon54zjj.js} +1 -1
  144. package/dist/playground/assets/{js-templates-CnUEM8wV.js → js-templates-C8BnQjOI.js} +1 -1
  145. package/dist/playground/assets/{jsdoc-QcdwFkE5.js → jsdoc-BhI3p5Fu.js} +1 -1
  146. package/dist/playground/assets/{json-BXyJCtpx.js → json-CowNpuVF.js} +1 -1
  147. package/dist/playground/assets/{json5-CkDNS3Yv.js → json5-DLeof5RB.js} +1 -1
  148. package/dist/playground/assets/{jsonp-Dih5bIy5.js → jsonp-DvdikHnN.js} +1 -1
  149. package/dist/playground/assets/{jsstacktrace-DN1CThTD.js → jsstacktrace-DxajJHWp.js} +1 -1
  150. package/dist/playground/assets/{jsx-BVMBTz1U.js → jsx-DBsBFFdK.js} +1 -1
  151. package/dist/playground/assets/{julia-BpmAPDnl.js → julia-CIlk1RC-.js} +1 -1
  152. package/dist/playground/assets/{keepalived-DQqB4aZ9.js → keepalived-Cyduj2Vg.js} +1 -1
  153. package/dist/playground/assets/{keyman-D269kFy_.js → keyman-Cletqdh3.js} +1 -1
  154. package/dist/playground/assets/{kotlin-B20rYMXx.js → kotlin-CZRHq6tq.js} +1 -1
  155. package/dist/playground/assets/{kumir-DSGYt5mC.js → kumir-CHFLfJ2Y.js} +1 -1
  156. package/dist/playground/assets/{kusto-COjQJRhf.js → kusto-yXNrHVDx.js} +1 -1
  157. package/dist/playground/assets/{latex-BJxDTDxp.js → latex-BAEyJPJy.js} +1 -1
  158. package/dist/playground/assets/{latte-BfmvjwIl.js → latte-Cf_rwTIH.js} +1 -1
  159. package/dist/playground/assets/{less-Cvo01GMM.js → less-C--TaIXv.js} +1 -1
  160. package/dist/playground/assets/{lilypond-Bq8xE0Yr.js → lilypond-DDs0WfsH.js} +1 -1
  161. package/dist/playground/assets/{liquid-COFkwZhn.js → liquid-BR_tSxC3.js} +1 -1
  162. package/dist/playground/assets/{lisp-Ca_T16lf.js → lisp-CfWWHh9G.js} +1 -1
  163. package/dist/playground/assets/{livescript-IISZc1Nq.js → livescript-DlI1Uzmx.js} +1 -1
  164. package/dist/playground/assets/{llvm-C4NhK2I6.js → llvm-CzJq4F3k.js} +1 -1
  165. package/dist/playground/assets/{log-rGSHLip2.js → log-CTYe1X_V.js} +1 -1
  166. package/dist/playground/assets/{lolcode-BmzylalN.js → lolcode-CF2rmpLs.js} +1 -1
  167. package/dist/playground/assets/{lua-BRA6ENRv.js → lua--o9-kmdW.js} +1 -1
  168. package/dist/playground/assets/{magma-CUMOHP_c.js → magma-pOBg1Hwl.js} +1 -1
  169. package/dist/playground/assets/{makefile-DzrErd5T.js → makefile-D1spQ9Ov.js} +1 -1
  170. package/dist/playground/assets/{markdown-Dzzo_4Gh.js → markdown-DUT405J5.js} +1 -1
  171. package/dist/playground/assets/{markup-Dxq0EmZj.js → markup-CH7NpvD7.js} +1 -1
  172. package/dist/playground/assets/{markup-templating-C87waZSx.js → markup-templating-CNLXV9Et.js} +1 -1
  173. package/dist/playground/assets/{matlab-BEObSpuQ.js → matlab-1I7ezfdp.js} +1 -1
  174. package/dist/playground/assets/{maxscript-Cjj8CWwt.js → maxscript-B1BzQdDv.js} +1 -1
  175. package/dist/playground/assets/{mel-tGh1qjM3.js → mel-BdPR1Ou-.js} +1 -1
  176. package/dist/playground/assets/{mermaid-CTym-Nfv.js → mermaid-DCYBbuHk.js} +1 -1
  177. package/dist/playground/assets/{mizar-D2Hakhv0.js → mizar-DJgJxhyO.js} +1 -1
  178. package/dist/playground/assets/{mongodb-BvrzgE9L.js → mongodb-BuSzHIhK.js} +1 -1
  179. package/dist/playground/assets/{monkey-DGkiPIzn.js → monkey-tpKRSwg7.js} +1 -1
  180. package/dist/playground/assets/{moonscript--WN-AGCC.js → moonscript-DW4OWpPX.js} +1 -1
  181. package/dist/playground/assets/{n1ql-C6uJaW_w.js → n1ql-BcHykDEO.js} +1 -1
  182. package/dist/playground/assets/{n4js-CFC90Fzl.js → n4js-pnfgJXJG.js} +1 -1
  183. package/dist/playground/assets/{nand2tetris-hdl-D86F20QC.js → nand2tetris-hdl-CnJrCG_m.js} +1 -1
  184. package/dist/playground/assets/{naniscript-CK-etl0E.js → naniscript-B2CLHd3T.js} +1 -1
  185. package/dist/playground/assets/{nasm-BxBj-ijB.js → nasm-Bla9hWCt.js} +1 -1
  186. package/dist/playground/assets/{neon-CzGC3I5W.js → neon-HR0Dp6Z9.js} +1 -1
  187. package/dist/playground/assets/{nevod-D6JXjKni.js → nevod-D_pSn6m4.js} +1 -1
  188. package/dist/playground/assets/{nginx-CLVbqpdF.js → nginx-DdA3fg2d.js} +1 -1
  189. package/dist/playground/assets/{nim-B_KcBlF8.js → nim-DhffR3kJ.js} +1 -1
  190. package/dist/playground/assets/{nix-DA0XUtE3.js → nix-C7pr1BYu.js} +1 -1
  191. package/dist/playground/assets/{nsis-C-8eYe13.js → nsis-Bo8-eqyM.js} +1 -1
  192. package/dist/playground/assets/{objectivec-CY6mW2GV.js → objectivec-9oaTjRYE.js} +1 -1
  193. package/dist/playground/assets/{ocaml-DB1Y_3qT.js → ocaml-Dz2RnuFt.js} +1 -1
  194. package/dist/playground/assets/{opencl-Y4qWTCuU.js → opencl-C_aoTNn_.js} +1 -1
  195. package/dist/playground/assets/{openqasm-DiJmGxJE.js → openqasm-BGq-lHMK.js} +1 -1
  196. package/dist/playground/assets/{oz-BxuG471O.js → oz-pr1QnLJG.js} +1 -1
  197. package/dist/playground/assets/{parigp-B29xxqOa.js → parigp-DxrBcgTK.js} +1 -1
  198. package/dist/playground/assets/{parser-BITl87RS.js → parser-Dk2SUYd2.js} +1 -1
  199. package/dist/playground/assets/{pascal-BLn9QIwu.js → pascal-DuNiIVrC.js} +1 -1
  200. package/dist/playground/assets/{pascaligo-BGWob9BE.js → pascaligo-DFFXEGVI.js} +1 -1
  201. package/dist/playground/assets/{pcaxis-jboNnB4l.js → pcaxis-D7ThZGEZ.js} +1 -1
  202. package/dist/playground/assets/{peoplecode-o64woq3e.js → peoplecode-Bmxvdz6T.js} +1 -1
  203. package/dist/playground/assets/{perl-DUDLg9On.js → perl-D7j5hMNk.js} +1 -1
  204. package/dist/playground/assets/{php-extras-D4Yv-Jt3.js → php-extras-DotTYrnr.js} +1 -1
  205. package/dist/playground/assets/{php-C8Tc_Dlz.js → php-sp6SDTS0.js} +1 -1
  206. package/dist/playground/assets/{phpdoc-ZpBgiADW.js → phpdoc-CucQaZh-.js} +1 -1
  207. package/dist/playground/assets/{plsql-C2TXgbkl.js → plsql-BdKnkimZ.js} +1 -1
  208. package/dist/playground/assets/{powerquery-BWkMraua.js → powerquery-BL23cqFO.js} +1 -1
  209. package/dist/playground/assets/{powershell-DooIQDd3.js → powershell-CRXgc0Nc.js} +1 -1
  210. package/dist/playground/assets/{processing-yxz984wX.js → processing-BdCcYxNY.js} +1 -1
  211. package/dist/playground/assets/{prolog-HK8-gu8Q.js → prolog-ChQU05_-.js} +1 -1
  212. package/dist/playground/assets/{promql-B6z7xW-S.js → promql-e7314xcL.js} +1 -1
  213. package/dist/playground/assets/{properties-CWOpS5UY.js → properties-B3agntIn.js} +1 -1
  214. package/dist/playground/assets/{protobuf-B81AALD0.js → protobuf-XMbngBUH.js} +1 -1
  215. package/dist/playground/assets/{psl-CeLgAKNG.js → psl-DE753Wqm.js} +1 -1
  216. package/dist/playground/assets/{pug-CqRMvEpf.js → pug-DMSzTFuJ.js} +1 -1
  217. package/dist/playground/assets/{puppet-BBx0RzAW.js → puppet-LxPhgUXz.js} +1 -1
  218. package/dist/playground/assets/{pure-DlTgrAgi.js → pure-Ddmlk9Cc.js} +1 -1
  219. package/dist/playground/assets/{purebasic-CjmE1IWI.js → purebasic-DjUUqbhy.js} +1 -1
  220. package/dist/playground/assets/{purescript-Ch9Bdsl6.js → purescript-DAhZI670.js} +1 -1
  221. package/dist/playground/assets/{python-0_vyFNX8.js → python-Bxj0M-2d.js} +1 -1
  222. package/dist/playground/assets/{q-BDRE_0t-.js → q-DChyxz9B.js} +1 -1
  223. package/dist/playground/assets/{qml-DDQcKyLt.js → qml-C-vk3WuN.js} +1 -1
  224. package/dist/playground/assets/{qore-Boy55iqs.js → qore-DMN520Ee.js} +1 -1
  225. package/dist/playground/assets/{qsharp-mEeUkfqt.js → qsharp-DeTWNJai.js} +1 -1
  226. package/dist/playground/assets/{r-Blz_xicL.js → r-Bha88851.js} +1 -1
  227. package/dist/playground/assets/{racket-B3n5jN-d.js → racket-DWs2hYPA.js} +1 -1
  228. package/dist/playground/assets/{reason-u3YfLoHJ.js → reason-Dhzjoo13.js} +1 -1
  229. package/dist/playground/assets/{regex-7F4NBSig.js → regex-Cw9FOmce.js} +1 -1
  230. package/dist/playground/assets/{rego-BbNQ8X3J.js → rego-CB1ZiJMu.js} +1 -1
  231. package/dist/playground/assets/{renpy-DtKouPdm.js → renpy-CaW6uTev.js} +1 -1
  232. package/dist/playground/assets/{rest-B3mH1Px5.js → rest-DRSvtJUr.js} +1 -1
  233. package/dist/playground/assets/{rip-BVuFn_U2.js → rip-kv2TKxpN.js} +1 -1
  234. package/dist/playground/assets/{roboconf-B7yg97V7.js → roboconf-_qqGzwmc.js} +1 -1
  235. package/dist/playground/assets/{robotframework-DNB00KtQ.js → robotframework-BjE5ixhr.js} +1 -1
  236. package/dist/playground/assets/{ruby-BpsrsYql.js → ruby-Bb-W7YlP.js} +1 -1
  237. package/dist/playground/assets/{rust-BCSdkTdS.js → rust-VUPJclpa.js} +1 -1
  238. package/dist/playground/assets/{sas-D1Gt48c6.js → sas-CBCHiCxc.js} +1 -1
  239. package/dist/playground/assets/{sass-LRzDhT-X.js → sass-BVNesq8J.js} +1 -1
  240. package/dist/playground/assets/{scala-BPHuVMK8.js → scala-0opx0NMt.js} +1 -1
  241. package/dist/playground/assets/{scheme-DsUp1fMT.js → scheme-BRhtQdbI.js} +1 -1
  242. package/dist/playground/assets/{scss-B8OV3jR5.js → scss-DqOaWTzp.js} +1 -1
  243. package/dist/playground/assets/{shell-session-C0tsaFkH.js → shell-session-BMHm4kK9.js} +1 -1
  244. package/dist/playground/assets/{smali-Btt38m0c.js → smali-DaT56qJF.js} +1 -1
  245. package/dist/playground/assets/{smalltalk-BnS7JBUD.js → smalltalk-7-FeVtdp.js} +1 -1
  246. package/dist/playground/assets/{smarty-DSA_xdq9.js → smarty-BNRymBHf.js} +1 -1
  247. package/dist/playground/assets/{sml-CPt3CpDK.js → sml-Ck07UwIN.js} +1 -1
  248. package/dist/playground/assets/{solidity-DhGJuSnI.js → solidity-B-2OSrXy.js} +1 -1
  249. package/dist/playground/assets/{solution-file-BJxHd3b4.js → solution-file-QmvrKhgR.js} +1 -1
  250. package/dist/playground/assets/{soy-9oUXA5i8.js → soy-C0MUakQp.js} +1 -1
  251. package/dist/playground/assets/{sparql-phrpMVdr.js → sparql-JFh1VBIY.js} +1 -1
  252. package/dist/playground/assets/{splunk-spl-_H4szEnU.js → splunk-spl-Dms8ViqQ.js} +1 -1
  253. package/dist/playground/assets/{sqf-BCCnn3W6.js → sqf-B7KL8NSi.js} +1 -1
  254. package/dist/playground/assets/{sql-Ce_6UVKr.js → sql-_p1Njrzb.js} +1 -1
  255. package/dist/playground/assets/{squirrel-BzCjnGpF.js → squirrel-C2mgkgY2.js} +1 -1
  256. package/dist/playground/assets/{stan-7tWizFib.js → stan-QwxiEOAd.js} +1 -1
  257. package/dist/playground/assets/style-J09pCDlJ.css +1 -0
  258. package/dist/playground/assets/{stylus-C63EC_Ux.js → stylus-eYVOYEdd.js} +1 -1
  259. package/dist/playground/assets/{swift-DieZV4vD.js → swift-CLWZgDy9.js} +1 -1
  260. package/dist/playground/assets/{systemd-DMRNuiGy.js → systemd-Cx6uhLeQ.js} +1 -1
  261. package/dist/playground/assets/{t4-cs-D--m_s2s.js → t4-cs-BiRcVg42.js} +1 -1
  262. package/dist/playground/assets/{t4-templating-B6ZMo0S6.js → t4-templating-CdizZa2e.js} +1 -1
  263. package/dist/playground/assets/{t4-vb-8I-jrVUU.js → t4-vb-CXWLmL9p.js} +1 -1
  264. package/dist/playground/assets/{tap-CbWglN8I.js → tap-BTjY741R.js} +1 -1
  265. package/dist/playground/assets/{tcl-C8cHpfmV.js → tcl-C6k3OvfS.js} +1 -1
  266. package/dist/playground/assets/{textile-DtqOryJA.js → textile-DpEfQERA.js} +1 -1
  267. package/dist/playground/assets/{toml-C3pbFGdd.js → toml-DjMlfFsf.js} +1 -1
  268. package/dist/playground/assets/{tremor-DV51CBSP.js → tremor-XpWvmz-U.js} +1 -1
  269. package/dist/playground/assets/{tsx-SjWxOjfC.js → tsx-DIR0tyjO.js} +1 -1
  270. package/dist/playground/assets/{tt2-B9PUR0sM.js → tt2-DVnLqJ4A.js} +1 -1
  271. package/dist/playground/assets/{turtle-DK0JGDUw.js → turtle-BPb1jRkO.js} +1 -1
  272. package/dist/playground/assets/{twig-CmXIVQq2.js → twig-DamIfIEG.js} +1 -1
  273. package/dist/playground/assets/{typescript-CX6y-rix.js → typescript-C0szBkl1.js} +1 -1
  274. package/dist/playground/assets/{typoscript-BL4iRXRy.js → typoscript-5dV5HLOT.js} +1 -1
  275. package/dist/playground/assets/{unrealscript-B5eU9WPy.js → unrealscript-DzkOMEwu.js} +1 -1
  276. package/dist/playground/assets/{uorazor-BjOyqwGy.js → uorazor-Ypllr4H3.js} +1 -1
  277. package/dist/playground/assets/{uri-B2WE_zOt.js → uri-Deaq-Siu.js} +1 -1
  278. package/dist/playground/assets/{v-B7f18buR.js → v-DMco5qzB.js} +1 -1
  279. package/dist/playground/assets/{vala-cDXgjBOi.js → vala-Dzzx0LEk.js} +1 -1
  280. package/dist/playground/assets/{vbnet-C37Mo5FX.js → vbnet-D5MIzCpK.js} +1 -1
  281. package/dist/playground/assets/{velocity-b8cPtXnm.js → velocity-BNzBsmFu.js} +1 -1
  282. package/dist/playground/assets/{verilog-wi93k13N.js → verilog-Cz6HuBII.js} +1 -1
  283. package/dist/playground/assets/{vhdl-BiR186qJ.js → vhdl-1vevrEAj.js} +1 -1
  284. package/dist/playground/assets/{vim-ClV2nksM.js → vim-Dyi2qRni.js} +1 -1
  285. package/dist/playground/assets/{visual-basic-DiM_u7pK.js → visual-basic-Dbh3RJ-S.js} +1 -1
  286. package/dist/playground/assets/{warpscript-MdBoRlZe.js → warpscript-a_FnOaUy.js} +1 -1
  287. package/dist/playground/assets/{wasm-D9Za_6Lm.js → wasm-GAmRegc1.js} +1 -1
  288. package/dist/playground/assets/{web-idl-BcJ0C5Hf.js → web-idl-B2TjEBMA.js} +1 -1
  289. package/dist/playground/assets/{wiki-CkgPAJpZ.js → wiki-Wrkkccvt.js} +1 -1
  290. package/dist/playground/assets/{wolfram-DZqxFDco.js → wolfram-Bsn1mT9S.js} +1 -1
  291. package/dist/playground/assets/{wren-B1tW8Ctk.js → wren-BK8Yppso.js} +1 -1
  292. package/dist/playground/assets/{xeora-DhOO1YKx.js → xeora-CWUb7SxU.js} +1 -1
  293. package/dist/playground/assets/{xml-doc-DF7Gxspq.js → xml-doc-FPKHzOvL.js} +1 -1
  294. package/dist/playground/assets/{xojo-CzKgr4hv.js → xojo-1nYKjTqN.js} +1 -1
  295. package/dist/playground/assets/{xquery-CvbL5cv6.js → xquery-IX-1a8C7.js} +1 -1
  296. package/dist/playground/assets/{yaml-g4g0LfT7.js → yaml-EhVEKBXj.js} +1 -1
  297. package/dist/playground/assets/{yang-wGpb3_Lb.js → yang-BzChuWH0.js} +1 -1
  298. package/dist/playground/assets/{zig-DtAeO3Vs.js → zig-D5JSqMnz.js} +1 -1
  299. package/dist/playground/index.html +2 -2
  300. package/dist/utils/dev-logger.d.ts +5 -1
  301. package/dist/utils/dev-logger.d.ts.map +1 -1
  302. package/package.json +13 -12
  303. package/dist/chunk-GOKV7IM3.js.map +0 -1
  304. package/dist/playground/assets/style-wHRbMVo6.css +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,53 @@
1
1
  # mastra
2
2
 
3
+ ## 0.13.0-alpha.1
4
+
5
+ ### Minor Changes
6
+
7
+ - Improved workspace dependency resolution during development and builds. This makes the build process more reliable when working with monorepos and workspace packages, reducing potential bundling errors and improving development experience. ([#7619](https://github.com/mastra-ai/mastra/pull/7619))
8
+
9
+ ### Patch Changes
10
+
11
+ - Improve the `mastra init` CLI. ([#7837](https://github.com/mastra-ai/mastra/pull/7837))
12
+
13
+ Previously, when you ran `mastra init` in a directory without a `package.json` file you'd receive no output. Now the CLI shows an error with next steps. Additionally, `mastra init` now also installs `zod` if not present already.
14
+
15
+ - Add support for running the Mastra dev server over HTTPS for local development. ([#7871](https://github.com/mastra-ai/mastra/pull/7871))
16
+ - Add `--https` flag for `mastra dev`. This automatically creates a local key and certificate for you.
17
+ - Alternatively, you can provide your own key and cert through `server.https`:
18
+
19
+ ```ts
20
+ // src/mastra/index.ts
21
+ import { Mastra } from '@mastra/core/mastra';
22
+ import fs from 'node:fs';
23
+
24
+ export const mastra = new Mastra({
25
+ server: {
26
+ https: {
27
+ key: fs.readFileSync('path/to/key.pem'),
28
+ cert: fs.readFileSync('path/to/cert.pem'),
29
+ },
30
+ },
31
+ });
32
+ ```
33
+
34
+ - avoid refetching on error when resolving a workflow in cloud ([#7842](https://github.com/mastra-ai/mastra/pull/7842))
35
+
36
+ - dependencies updates: ([#7810](https://github.com/mastra-ai/mastra/pull/7810))
37
+ - Updated dependency [`strip-json-comments@^5.0.3` ↗︎](https://www.npmjs.com/package/strip-json-comments/v/5.0.3) (from `^5.0.2`, in `dependencies`)
38
+
39
+ - fix markdown rendering in agent in agent text-delta ([#7851](https://github.com/mastra-ai/mastra/pull/7851))
40
+
41
+ - fix workflows runs fetching and displaying ([#7852](https://github.com/mastra-ai/mastra/pull/7852))
42
+
43
+ - fix empty state for scorers on agent page ([#7846](https://github.com/mastra-ai/mastra/pull/7846))
44
+
45
+ - Updated dependencies [[`b1c155b`](https://github.com/mastra-ai/mastra/commit/b1c155b57ce702674f207f1d4c6a4ebf94225f44), [`790f7d1`](https://github.com/mastra-ai/mastra/commit/790f7d17895d7a5f75b6b5d2d794c2e820b99d4c), [`3cd6538`](https://github.com/mastra-ai/mastra/commit/3cd6538811fc94f84a19dbd1064f46cb42e38c1d), [`a1bb887`](https://github.com/mastra-ai/mastra/commit/a1bb887e8bfae44230f487648da72e96ef824561), [`8a3f5e4`](https://github.com/mastra-ai/mastra/commit/8a3f5e4212ec36b302957deb4bd47005ab598382), [`7e82fbf`](https://github.com/mastra-ai/mastra/commit/7e82fbf3715175e274d2015eb59fb7f57dc9b09d), [`a0f5f1c`](https://github.com/mastra-ai/mastra/commit/a0f5f1ca39c3c5c6d26202e9fcab986b4fe14568), [`b356f5f`](https://github.com/mastra-ai/mastra/commit/b356f5f7566cb3edb755d91f00b72fc1420b2a37), [`f5ce05f`](https://github.com/mastra-ai/mastra/commit/f5ce05f831d42c69559bf4c0fdb46ccb920fc3a3), [`9f6f30f`](https://github.com/mastra-ai/mastra/commit/9f6f30f04ec6648bbca798ea8aad59317c40d8db), [`d706fad`](https://github.com/mastra-ai/mastra/commit/d706fad6e6e4b72357b18d229ba38e6c913c0e70), [`8a3f5e4`](https://github.com/mastra-ai/mastra/commit/8a3f5e4212ec36b302957deb4bd47005ab598382), [`5c3768f`](https://github.com/mastra-ai/mastra/commit/5c3768fa959454232ad76715c381f4aac00c6881), [`8a3f5e4`](https://github.com/mastra-ai/mastra/commit/8a3f5e4212ec36b302957deb4bd47005ab598382)]:
46
+ - @mastra/deployer@0.17.0-alpha.3
47
+ - @mastra/core@0.17.0-alpha.3
48
+ - @mastra/loggers@0.10.12-alpha.0
49
+ - @mastra/mcp@0.12.1-alpha.0
50
+
3
51
  ## 0.12.4-alpha.0
4
52
 
5
53
  ### Patch Changes
@@ -1,7 +1,7 @@
1
1
  import { getAnalytics } from './chunk-OQQFOUQW.js';
2
2
  import * as p2 from '@clack/prompts';
3
3
  import color2 from 'picocolors';
4
- import fs from 'fs/promises';
4
+ import fs5 from 'fs/promises';
5
5
  import child_process from 'child_process';
6
6
  import util from 'util';
7
7
  import path3 from 'path';
@@ -12,7 +12,7 @@ import * as fs4 from 'fs';
12
12
  import fs4__default, { existsSync } from 'fs';
13
13
  import { execa } from 'execa';
14
14
  import os from 'os';
15
- import fsExtra2, { readJSON, ensureFile, writeJSON } from 'fs-extra/esm';
15
+ import fsExtra, { readJSON, ensureFile, writeJSON } from 'fs-extra/esm';
16
16
  import prettier from 'prettier';
17
17
  import { fileURLToPath } from 'url';
18
18
 
@@ -60,7 +60,7 @@ async function cloneTemplate(options) {
60
60
  await updatePackageJson(projectPath, projectName);
61
61
  const envExamplePath = path3.join(projectPath, ".env.example");
62
62
  if (await fileExists(envExamplePath)) {
63
- await fs.copyFile(envExamplePath, path3.join(projectPath, ".env"));
63
+ await fs5.copyFile(envExamplePath, path3.join(projectPath, ".env"));
64
64
  }
65
65
  spinner5.success(`Template "${template.title}" cloned successfully to ${projectName}`);
66
66
  return projectPath;
@@ -71,7 +71,7 @@ async function cloneTemplate(options) {
71
71
  }
72
72
  async function directoryExists(dirPath) {
73
73
  try {
74
- const stat = await fs.stat(dirPath);
74
+ const stat = await fs5.stat(dirPath);
75
75
  return stat.isDirectory();
76
76
  } catch {
77
77
  return false;
@@ -79,14 +79,14 @@ async function directoryExists(dirPath) {
79
79
  }
80
80
  async function fileExists(filePath) {
81
81
  try {
82
- const stat = await fs.stat(filePath);
82
+ const stat = await fs5.stat(filePath);
83
83
  return stat.isFile();
84
84
  } catch {
85
85
  return false;
86
86
  }
87
87
  }
88
88
  async function cloneRepositoryWithoutGit(repoUrl, targetPath) {
89
- await fs.mkdir(targetPath, { recursive: true });
89
+ await fs5.mkdir(targetPath, { recursive: true });
90
90
  try {
91
91
  const degitRepo = repoUrl.replace("https://github.com/", "");
92
92
  const degitCommand = shellQuote.quote(["npx", "degit", degitRepo, targetPath]);
@@ -101,7 +101,7 @@ async function cloneRepositoryWithoutGit(repoUrl, targetPath) {
101
101
  });
102
102
  const gitDir = path3.join(targetPath, ".git");
103
103
  if (await directoryExists(gitDir)) {
104
- await fs.rm(gitDir, { recursive: true, force: true });
104
+ await fs5.rm(gitDir, { recursive: true, force: true });
105
105
  }
106
106
  } catch (gitError) {
107
107
  throw new Error(`Failed to clone repository: ${gitError instanceof Error ? gitError.message : "Unknown error"}`);
@@ -111,10 +111,10 @@ async function cloneRepositoryWithoutGit(repoUrl, targetPath) {
111
111
  async function updatePackageJson(projectPath, projectName) {
112
112
  const packageJsonPath = path3.join(projectPath, "package.json");
113
113
  try {
114
- const packageJsonContent = await fs.readFile(packageJsonPath, "utf-8");
114
+ const packageJsonContent = await fs5.readFile(packageJsonPath, "utf-8");
115
115
  const packageJson = JSON.parse(packageJsonContent);
116
116
  packageJson.name = projectName;
117
- await fs.writeFile(packageJsonPath, JSON.stringify(packageJson, null, 2), "utf-8");
117
+ await fs5.writeFile(packageJsonPath, JSON.stringify(packageJson, null, 2), "utf-8");
118
118
  } catch (error) {
119
119
  logger.warn(`Could not update package.json: ${error instanceof Error ? error.message : "Unknown error"}`);
120
120
  }
@@ -261,11 +261,11 @@ var DepsService = class {
261
261
  try {
262
262
  const packageJsonPath = path3.join(process.cwd(), "package.json");
263
263
  try {
264
- await fs.access(packageJsonPath);
264
+ await fs5.access(packageJsonPath);
265
265
  } catch {
266
266
  return "No package.json file found in the current directory";
267
267
  }
268
- const packageJson = JSON.parse(await fs.readFile(packageJsonPath, "utf-8"));
268
+ const packageJson = JSON.parse(await fs5.readFile(packageJsonPath, "utf-8"));
269
269
  for (const dependency of dependencies) {
270
270
  if (!packageJson.dependencies || !packageJson.dependencies[dependency]) {
271
271
  return `Please install ${dependency} before running this command (${this.packageManager} install ${dependency})`;
@@ -280,7 +280,7 @@ var DepsService = class {
280
280
  async getProjectName() {
281
281
  try {
282
282
  const packageJsonPath = path3.join(process.cwd(), "package.json");
283
- const packageJson = await fs.readFile(packageJsonPath, "utf-8");
283
+ const packageJson = await fs5.readFile(packageJsonPath, "utf-8");
284
284
  const pkg = JSON.parse(packageJson);
285
285
  return pkg.name;
286
286
  } catch (err) {
@@ -288,12 +288,12 @@ var DepsService = class {
288
288
  }
289
289
  }
290
290
  async addScriptsToPackageJson(scripts) {
291
- const packageJson = JSON.parse(await fs.readFile("package.json", "utf-8"));
291
+ const packageJson = JSON.parse(await fs5.readFile("package.json", "utf-8"));
292
292
  packageJson.scripts = {
293
293
  ...packageJson.scripts,
294
294
  ...scripts
295
295
  };
296
- await fs.writeFile("package.json", JSON.stringify(packageJson, null, 2));
296
+ await fs5.writeFile("package.json", JSON.stringify(packageJson, null, 2));
297
297
  }
298
298
  };
299
299
  var args = ["-y", "@mastra/mcp-docs-server"];
@@ -492,12 +492,12 @@ var FileService = class {
492
492
  console.log(`${outputFilePath} already exists`);
493
493
  return false;
494
494
  }
495
- await fsExtra2.outputFile(outputFilePath, fileString);
495
+ await fsExtra.outputFile(outputFilePath, fileString);
496
496
  return true;
497
497
  }
498
498
  async setupEnvFile({ dbUrl }) {
499
499
  const envPath = path3.join(process.cwd(), ".env.development");
500
- await fsExtra2.ensureFile(envPath);
500
+ await fsExtra.ensureFile(envPath);
501
501
  const fileEnvService = new FileEnvService(envPath);
502
502
  await fileEnvService.setEnvValue("DB_URL", dbUrl);
503
503
  }
@@ -612,8 +612,8 @@ export const weatherAgent = new Agent({
612
612
  parser: "typescript",
613
613
  singleQuote: true
614
614
  });
615
- await fs.writeFile(destPath, "");
616
- await fs.writeFile(destPath, formattedContent);
615
+ await fs5.writeFile(destPath, "");
616
+ await fs5.writeFile(destPath, formattedContent);
617
617
  }
618
618
  async function writeWorkflowSample(destPath) {
619
619
  const content = `import { createStep, createWorkflow } from '@mastra/core/workflows';
@@ -806,7 +806,7 @@ export { weatherWorkflow };`;
806
806
  semi: true,
807
807
  singleQuote: true
808
808
  });
809
- await fs.writeFile(destPath, formattedContent);
809
+ await fs5.writeFile(destPath, formattedContent);
810
810
  }
811
811
  async function writeToolSample(destPath) {
812
812
  const fileService = new FileService();
@@ -826,7 +826,7 @@ async function writeCodeSampleForComponents(llmprovider, component, destPath, im
826
826
  }
827
827
  var createComponentsDir = async (dirPath, component) => {
828
828
  const componentPath = dirPath + `/${component}`;
829
- await fsExtra2.ensureDir(componentPath);
829
+ await fsExtra.ensureDir(componentPath);
830
830
  };
831
831
  var writeIndexFile = async ({
832
832
  dirPath,
@@ -837,13 +837,13 @@ var writeIndexFile = async ({
837
837
  const indexPath = dirPath + "/index.ts";
838
838
  const destPath = path3.join(indexPath);
839
839
  try {
840
- await fs.writeFile(destPath, "");
840
+ await fs5.writeFile(destPath, "");
841
841
  const filteredExports = [
842
842
  addWorkflow ? `workflows: { weatherWorkflow },` : "",
843
843
  addAgent ? `agents: { weatherAgent },` : ""
844
844
  ].filter(Boolean);
845
845
  if (!addExample) {
846
- await fs.writeFile(
846
+ await fs5.writeFile(
847
847
  destPath,
848
848
  `
849
849
  import { Mastra } from '@mastra/core';
@@ -853,7 +853,7 @@ export const mastra = new Mastra()
853
853
  );
854
854
  return;
855
855
  }
856
- await fs.writeFile(
856
+ await fs5.writeFile(
857
857
  destPath,
858
858
  `
859
859
  import { Mastra } from '@mastra/core/mastra';
@@ -880,20 +880,24 @@ export const mastra = new Mastra({
880
880
  }
881
881
  };
882
882
  var checkAndInstallCoreDeps = async (addExample) => {
883
- const depsService = new DepsService();
884
- let depCheck = await depsService.checkDependencies(["@mastra/core"]);
885
- if (depCheck !== "ok") {
883
+ const depService = new DepsService();
884
+ const needsCore = await depService.checkDependencies(["@mastra/core"]) !== `ok`;
885
+ const needsZod = await depService.checkDependencies(["zod"]) !== `ok`;
886
+ if (needsCore) {
886
887
  await installCoreDeps("@mastra/core");
887
888
  }
889
+ if (needsZod) {
890
+ await installCoreDeps("zod", "^3");
891
+ }
888
892
  if (addExample) {
889
- depCheck = await depsService.checkDependencies(["@mastra/libsql"]);
890
- if (depCheck !== "ok") {
893
+ const needsLibsql = await depService.checkDependencies(["@mastra/libsql"]) !== `ok`;
894
+ if (needsLibsql) {
891
895
  await installCoreDeps("@mastra/libsql");
892
896
  }
893
897
  }
894
898
  };
895
899
  var spinner = yoctoSpinner({ text: "Installing Mastra core dependencies\n" });
896
- async function installCoreDeps(pkg) {
900
+ async function installCoreDeps(pkg, version = "latest") {
897
901
  try {
898
902
  const confirm2 = await p2.confirm({
899
903
  message: `You do not have the ${pkg} package installed. Would you like to install it?`,
@@ -909,8 +913,8 @@ async function installCoreDeps(pkg) {
909
913
  }
910
914
  spinner.start();
911
915
  const depsService = new DepsService();
912
- await depsService.installPackages([`${pkg}@latest`]);
913
- spinner.success("@mastra/core installed successfully");
916
+ await depsService.installPackages([`${pkg}@${version}`]);
917
+ spinner.success(`${pkg} installed successfully`);
914
918
  } catch (err) {
915
919
  console.error(err);
916
920
  }
@@ -950,10 +954,10 @@ var createMastraDir = async (directory) => {
950
954
  let dir = directory.trim().split("/").filter((item) => item !== "");
951
955
  const dirPath = path3.join(process.cwd(), ...dir, "mastra");
952
956
  try {
953
- await fs.access(dirPath);
957
+ await fs5.access(dirPath);
954
958
  return { ok: false };
955
959
  } catch {
956
- await fsExtra2.ensureDir(dirPath);
960
+ await fsExtra.ensureDir(dirPath);
957
961
  return { ok: true, dirPath };
958
962
  }
959
963
  };
@@ -1087,21 +1091,17 @@ This means the Mastra docs MCP server will be available in all your Windsurf pro
1087
1091
  );
1088
1092
  return mastraProject;
1089
1093
  };
1090
- var checkPkgJson = async () => {
1094
+ var checkForPkgJson = async () => {
1091
1095
  const cwd = process.cwd();
1092
1096
  const pkgJsonPath = path3.join(cwd, "package.json");
1093
- let isPkgJsonPresent = false;
1094
1097
  try {
1095
- await fsExtra2.readJSON(pkgJsonPath);
1096
- isPkgJsonPresent = true;
1098
+ await fs5.access(pkgJsonPath);
1097
1099
  } catch {
1098
- isPkgJsonPresent = false;
1099
- }
1100
- if (isPkgJsonPresent) {
1101
- return;
1100
+ p2.log.error(
1101
+ 'No package.json file found in the current directory. Please run "npm init -y" to create one, or run "npx create-mastra@latest" to create a new Mastra project.'
1102
+ );
1103
+ process.exit(1);
1102
1104
  }
1103
- logger.debug('package.json not found, create one or run "mastra create" to create a new project');
1104
- process.exit(0);
1105
1105
  };
1106
1106
 
1107
1107
  // src/commands/init/init.ts
@@ -1253,7 +1253,7 @@ var createMastraProject = async ({
1253
1253
  try {
1254
1254
  s2.start("Creating project");
1255
1255
  try {
1256
- await fs.mkdir(projectName);
1256
+ await fs5.mkdir(projectName);
1257
1257
  } catch (error) {
1258
1258
  if (error instanceof Error && "code" in error && error.code === "EEXIST") {
1259
1259
  s2.stop(`A directory named "${projectName}" already exists. Please choose a different name.`);
@@ -1565,6 +1565,6 @@ async function createFromTemplate(args2) {
1565
1565
  }
1566
1566
  }
1567
1567
 
1568
- export { DepsService, FileService, checkAndInstallCoreDeps, checkPkgJson, create, init, interactivePrompt, logger };
1569
- //# sourceMappingURL=chunk-GOKV7IM3.js.map
1570
- //# sourceMappingURL=chunk-GOKV7IM3.js.map
1568
+ export { DepsService, FileService, checkAndInstallCoreDeps, checkForPkgJson, create, init, interactivePrompt, logger };
1569
+ //# sourceMappingURL=chunk-FXKIG3BA.js.map
1570
+ //# sourceMappingURL=chunk-FXKIG3BA.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/commands/utils.ts","../src/utils/logger.ts","../src/utils/clone-template.ts","../src/utils/template-utils.ts","../src/utils/package-manager.ts","../src/services/service.deps.ts","../src/commands/init/mcp-docs-server-install.ts","../src/services/service.env.ts","../src/services/service.fileEnv.ts","../src/services/service.file.ts","../src/commands/init/utils.ts","../src/commands/init/init.ts","../src/commands/create/utils.ts","../src/commands/create/create.ts"],"names":["path","spinner","fs","p","fsPromises","hasMastraMCP","fs3","exec","util","child_process","fsExtra","yoctoSpinner","confirm","shellQuote","color","p3","p4","s","args","analytics","p5"],"mappings":"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","file":"chunk-FXKIG3BA.js","sourcesContent":["import type { PackageManager } from '../utils/package-manager';\n\nexport function getPackageManager(): PackageManager {\n const userAgent = process.env.npm_config_user_agent || '';\n const execPath = process.env.npm_execpath || '';\n\n // Check user agent first\n if (userAgent.includes('yarn')) {\n return 'yarn';\n }\n if (userAgent.includes('pnpm')) {\n return 'pnpm';\n }\n if (userAgent.includes('npm')) {\n return 'npm';\n }\n\n // Fallback to execpath check\n if (execPath.includes('yarn')) {\n return 'yarn';\n }\n if (execPath.includes('pnpm')) {\n return 'pnpm';\n }\n if (execPath.includes('npm')) {\n return 'npm';\n }\n\n return 'npm'; // Default fallback\n}\n","import { PinoLogger } from '@mastra/loggers';\n\nexport const logger = new PinoLogger({\n name: 'Mastra CLI',\n level: 'info',\n});\n","import fs from 'fs/promises';\nimport child_process from 'node:child_process';\nimport util from 'node:util';\nimport path from 'path';\nimport shellQuote from 'shell-quote';\nimport yoctoSpinner from 'yocto-spinner';\nimport { getPackageManager } from '../commands/utils';\nimport { logger } from './logger';\nimport type { Template } from './template-utils';\n\nconst exec = util.promisify(child_process.exec);\n\nexport interface CloneTemplateOptions {\n template: Template;\n projectName: string;\n targetDir?: string;\n}\n\nexport async function cloneTemplate(options: CloneTemplateOptions): Promise<string> {\n const { template, projectName, targetDir } = options;\n const projectPath = targetDir ? path.resolve(targetDir, projectName) : path.resolve(projectName);\n\n const spinner = yoctoSpinner({ text: `Cloning template \"${template.title}\"...` }).start();\n\n try {\n // Check if directory already exists\n if (await directoryExists(projectPath)) {\n spinner.error(`Directory ${projectName} already exists`);\n throw new Error(`Directory ${projectName} already exists`);\n }\n\n // Clone the repository without git history\n await cloneRepositoryWithoutGit(template.githubUrl, projectPath);\n\n // Update package.json with new project name\n await updatePackageJson(projectPath, projectName);\n\n // Copy .env.example to .env if it exists\n const envExamplePath = path.join(projectPath, '.env.example');\n if (await fileExists(envExamplePath)) {\n await fs.copyFile(envExamplePath, path.join(projectPath, '.env'));\n }\n\n spinner.success(`Template \"${template.title}\" cloned successfully to ${projectName}`);\n return projectPath;\n } catch (error) {\n spinner.error(`Failed to clone template: ${error instanceof Error ? error.message : 'Unknown error'}`);\n throw error;\n }\n}\n\nasync function directoryExists(dirPath: string): Promise<boolean> {\n try {\n const stat = await fs.stat(dirPath);\n return stat.isDirectory();\n } catch {\n return false;\n }\n}\n\nasync function fileExists(filePath: string): Promise<boolean> {\n try {\n const stat = await fs.stat(filePath);\n return stat.isFile();\n } catch {\n return false;\n }\n}\n\nasync function cloneRepositoryWithoutGit(repoUrl: string, targetPath: string): Promise<void> {\n // Create target directory\n await fs.mkdir(targetPath, { recursive: true });\n\n try {\n // First try using degit if available (similar to Next.js)\n const degitRepo = repoUrl.replace('https://github.com/', '');\n const degitCommand = shellQuote.quote(['npx', 'degit', degitRepo, targetPath]);\n await exec(degitCommand, {\n cwd: process.cwd(),\n });\n } catch {\n // Fallback to git clone + remove .git\n try {\n const gitCommand = shellQuote.quote(['git', 'clone', repoUrl, targetPath]);\n await exec(gitCommand, {\n cwd: process.cwd(),\n });\n\n // Remove .git directory\n const gitDir = path.join(targetPath, '.git');\n if (await directoryExists(gitDir)) {\n await fs.rm(gitDir, { recursive: true, force: true });\n }\n } catch (gitError) {\n throw new Error(`Failed to clone repository: ${gitError instanceof Error ? gitError.message : 'Unknown error'}`);\n }\n }\n}\n\nasync function updatePackageJson(projectPath: string, projectName: string): Promise<void> {\n const packageJsonPath = path.join(projectPath, 'package.json');\n\n try {\n const packageJsonContent = await fs.readFile(packageJsonPath, 'utf-8');\n const packageJson = JSON.parse(packageJsonContent);\n\n // Update the name field\n packageJson.name = projectName;\n\n // Write back the updated package.json\n await fs.writeFile(packageJsonPath, JSON.stringify(packageJson, null, 2), 'utf-8');\n } catch (error) {\n // It's okay if package.json doesn't exist or can't be updated\n logger.warn(`Could not update package.json: ${error instanceof Error ? error.message : 'Unknown error'}`);\n }\n}\n\nexport async function installDependencies(projectPath: string, packageManager?: string): Promise<void> {\n const spinner = yoctoSpinner({ text: 'Installing dependencies...' }).start();\n\n try {\n // Use provided package manager or detect from environment/globally\n const pm = packageManager || getPackageManager();\n\n const installCommand = shellQuote.quote([pm, 'install']);\n\n await exec(installCommand, {\n cwd: projectPath,\n });\n\n spinner.success('Dependencies installed successfully');\n } catch (error) {\n spinner.error(`Failed to install dependencies: ${error instanceof Error ? error.message : 'Unknown error'}`);\n throw error;\n }\n}\n","import * as p from '@clack/prompts';\n\nexport interface Template {\n githubUrl: string;\n title: string;\n slug: string;\n agents: string[];\n mcp: string[];\n tools: string[];\n networks: string[];\n workflows: string[];\n}\n\nconst TEMPLATES_API_URL = process.env.MASTRA_TEMPLATES_API_URL || 'https://mastra.ai/api/templates.json';\n\nexport async function loadTemplates(): Promise<Template[]> {\n try {\n const response = await fetch(TEMPLATES_API_URL);\n if (!response.ok) {\n throw new Error(`Failed to fetch templates: ${response.statusText}`);\n }\n const templates = (await response.json()) as Template[];\n return templates;\n } catch (error) {\n console.error('Error loading templates:', error);\n throw new Error('Failed to load templates. Please check your internet connection and try again.');\n }\n}\n\nfunction pluralize(count: number, singular: string, plural?: string): string {\n return count === 1 ? singular : plural || `${singular}s`;\n}\n\nexport async function selectTemplate(templates: Template[]): Promise<Template | null> {\n const choices = templates.map(template => {\n const parts = [];\n if (template.agents?.length) {\n parts.push(`${template.agents.length} ${pluralize(template.agents.length, 'agent')}`);\n }\n if (template.tools?.length) {\n parts.push(`${template.tools.length} ${pluralize(template.tools.length, 'tool')}`);\n }\n if (template.workflows?.length) {\n parts.push(`${template.workflows.length} ${pluralize(template.workflows.length, 'workflow')}`);\n }\n if (template.mcp?.length) {\n parts.push(`${template.mcp.length} ${pluralize(template.mcp.length, 'MCP server')}`);\n }\n if (template.networks?.length) {\n parts.push(`${template.networks.length} ${pluralize(template.networks.length, 'agent network')}`);\n }\n\n return {\n value: template,\n label: template.title,\n hint: parts.join(', ') || 'Template components',\n };\n });\n\n const selected = await p.select({\n message: 'Select a template:',\n options: choices,\n });\n\n if (p.isCancel(selected)) {\n return null;\n }\n\n return selected as Template;\n}\n\nexport function findTemplateByName(templates: Template[], templateName: string): Template | null {\n // First try to find by exact slug match\n let template = templates.find(t => t.slug === templateName);\n if (template) return template;\n\n // Then try to find by slug without \"template-\" prefix\n const slugWithPrefix = `template-${templateName}`;\n template = templates.find(t => t.slug === slugWithPrefix);\n if (template) return template;\n\n // Finally try case-insensitive name match\n template = templates.find(t => t.title.toLowerCase() === templateName.toLowerCase());\n if (template) return template;\n\n return null;\n}\n\nexport function getDefaultProjectName(template: Template): string {\n // Remove \"template-\" prefix from slug if it exists\n return template.slug.replace(/^template-/, '');\n}\n","export type PackageManager = 'npm' | 'yarn' | 'pnpm' | 'bun';\n\nexport function getPackageManagerAddCommand(pm: PackageManager): string {\n switch (pm) {\n case 'npm':\n return 'install --audit=false --fund=false --loglevel=error --progress=false --update-notifier=false';\n case 'yarn':\n return 'add';\n case 'pnpm':\n return 'add --loglevel=error';\n case 'bun':\n return 'add';\n default:\n return 'add';\n }\n}\n","import fs from 'fs';\nimport fsPromises from 'fs/promises';\nimport path from 'path';\nimport { execa } from 'execa';\nimport { getPackageManagerAddCommand } from '../utils/package-manager';\nimport type { PackageManager } from '../utils/package-manager';\n\nexport class DepsService {\n readonly packageManager: PackageManager;\n\n constructor() {\n this.packageManager = this.getPackageManager();\n }\n\n private findLockFile(dir: string): string | null {\n const lockFiles = ['pnpm-lock.yaml', 'package-lock.json', 'yarn.lock', 'bun.lock'];\n for (const file of lockFiles) {\n if (fs.existsSync(path.join(dir, file))) {\n return file;\n }\n }\n const parentDir = path.resolve(dir, '..');\n if (parentDir !== dir) {\n return this.findLockFile(parentDir);\n }\n return null;\n }\n\n private getPackageManager(): PackageManager {\n const lockFile = this.findLockFile(process.cwd());\n switch (lockFile) {\n case 'pnpm-lock.yaml':\n return 'pnpm';\n case 'package-lock.json':\n return 'npm';\n case 'yarn.lock':\n return 'yarn';\n case 'bun.lock':\n return 'bun';\n default:\n return 'npm';\n }\n }\n\n public async installPackages(packages: string[]) {\n const pm = this.packageManager;\n const installCommand = getPackageManagerAddCommand(pm);\n\n const packageList = packages.join(' ');\n return execa(`${pm} ${installCommand} ${packageList}`, {\n all: true,\n shell: true,\n stdio: 'inherit',\n });\n }\n\n public async checkDependencies(dependencies: string[]): Promise<string> {\n try {\n const packageJsonPath = path.join(process.cwd(), 'package.json');\n\n try {\n await fsPromises.access(packageJsonPath);\n } catch {\n return 'No package.json file found in the current directory';\n }\n\n const packageJson = JSON.parse(await fsPromises.readFile(packageJsonPath, 'utf-8'));\n for (const dependency of dependencies) {\n if (!packageJson.dependencies || !packageJson.dependencies[dependency]) {\n return `Please install ${dependency} before running this command (${this.packageManager} install ${dependency})`;\n }\n }\n\n return 'ok';\n } catch (err) {\n console.error(err);\n return 'Could not check dependencies';\n }\n }\n\n public async getProjectName() {\n try {\n const packageJsonPath = path.join(process.cwd(), 'package.json');\n const packageJson = await fsPromises.readFile(packageJsonPath, 'utf-8');\n const pkg = JSON.parse(packageJson);\n return pkg.name;\n } catch (err) {\n throw err;\n }\n }\n\n public async addScriptsToPackageJson(scripts: Record<string, string>) {\n const packageJson = JSON.parse(await fsPromises.readFile('package.json', 'utf-8'));\n packageJson.scripts = {\n ...packageJson.scripts,\n ...scripts,\n };\n await fsPromises.writeFile('package.json', JSON.stringify(packageJson, null, 2));\n }\n}\n","import { existsSync } from 'fs';\nimport os from 'os';\nimport path from 'path';\nimport { ensureFile, readJSON, writeJSON } from 'fs-extra/esm';\n\nconst args = ['-y', '@mastra/mcp-docs-server'];\nconst createMcpConfig = (editor: Editor) => {\n if (editor === 'vscode') {\n return {\n servers: {\n mastra:\n process.platform === `win32`\n ? {\n command: 'cmd',\n args: ['/c', 'npx', ...args],\n type: 'stdio',\n }\n : {\n command: 'npx',\n args,\n type: 'stdio',\n },\n },\n };\n }\n return {\n mcpServers: {\n mastra: {\n command: 'npx',\n args,\n },\n },\n };\n};\n\nfunction makeConfig(\n original: { mcpServers?: Record<string, unknown>; servers?: Record<string, unknown> },\n editor: Editor,\n) {\n if (editor === 'vscode') {\n return {\n ...original,\n servers: {\n ...(original?.servers || {}),\n ...createMcpConfig(editor).servers,\n },\n };\n }\n return {\n ...original,\n mcpServers: {\n ...(original?.mcpServers || {}),\n ...createMcpConfig(editor).mcpServers,\n },\n };\n}\n\nasync function writeMergedConfig(configPath: string, editor: Editor) {\n const configExists = existsSync(configPath);\n const config = makeConfig(configExists ? await readJSON(configPath) : {}, editor);\n await ensureFile(configPath);\n await writeJSON(configPath, config, {\n spaces: 2,\n });\n}\n\nexport const windsurfGlobalMCPConfigPath = path.join(os.homedir(), '.codeium', 'windsurf', 'mcp_config.json');\nexport const cursorGlobalMCPConfigPath = path.join(os.homedir(), '.cursor', 'mcp.json');\nexport const vscodeMCPConfigPath = path.join(process.cwd(), '.vscode', 'mcp.json');\nexport const vscodeGlobalMCPConfigPath = path.join(\n os.homedir(),\n process.platform === 'win32'\n ? path.join('AppData', 'Roaming', 'Code', 'User', 'settings.json')\n : process.platform === 'darwin'\n ? path.join('Library', 'Application Support', 'Code', 'User', 'settings.json')\n : path.join('.config', 'Code', 'User', 'settings.json'),\n);\n\nexport type Editor = 'cursor' | 'cursor-global' | 'windsurf' | 'vscode';\n\nexport async function installMastraDocsMCPServer({ editor, directory }: { editor?: Editor; directory: string }) {\n if (editor === `cursor`) {\n await writeMergedConfig(path.join(directory, '.cursor', 'mcp.json'), 'cursor');\n }\n if (editor === `vscode`) {\n await writeMergedConfig(path.join(directory, '.vscode', 'mcp.json'), 'vscode');\n }\n if (editor === `cursor-global`) {\n const alreadyInstalled = await globalMCPIsAlreadyInstalled(editor);\n if (alreadyInstalled) {\n return;\n }\n await writeMergedConfig(cursorGlobalMCPConfigPath, 'cursor-global');\n }\n\n if (editor === `windsurf`) {\n const alreadyInstalled = await globalMCPIsAlreadyInstalled(editor);\n if (alreadyInstalled) {\n return;\n }\n await writeMergedConfig(windsurfGlobalMCPConfigPath, editor);\n }\n}\n\nexport async function globalMCPIsAlreadyInstalled(editor: Editor) {\n let configPath: string = ``;\n\n if (editor === 'windsurf') {\n configPath = windsurfGlobalMCPConfigPath;\n } else if (editor === 'cursor-global') {\n configPath = cursorGlobalMCPConfigPath;\n } else if (editor === 'vscode') {\n configPath = vscodeGlobalMCPConfigPath;\n }\n\n if (!configPath || !existsSync(configPath)) {\n return false;\n }\n\n try {\n const configContents = await readJSON(configPath);\n\n if (!configContents) return false;\n\n if (editor === 'vscode') {\n if (!configContents.servers) return false;\n const hasMastraMCP = Object.values(configContents.servers).some((server?: any) =>\n server?.args?.find((arg?: string) => arg?.includes(`@mastra/mcp-docs-server`)),\n );\n return hasMastraMCP;\n }\n\n if (!configContents?.mcpServers) return false;\n const hasMastraMCP = Object.values(configContents.mcpServers).some((server?: any) =>\n server?.args?.find((arg?: string) => arg?.includes(`@mastra/mcp-docs-server`)),\n );\n\n return hasMastraMCP;\n } catch {\n return false;\n }\n}\n","export abstract class EnvService {\n abstract getEnvValue(key: string): Promise<string | null>;\n abstract setEnvValue(key: string, value: string): Promise<void>;\n}\n","import * as fs from 'fs';\n\nimport { EnvService } from './service.env';\n\n// TODO: Refactor (copied from admin)\nexport class FileEnvService extends EnvService {\n private filePath: string;\n\n constructor(filePath: string) {\n super();\n this.filePath = filePath;\n }\n\n private readFile(filePath: string): Promise<string> {\n return new Promise((resolve, reject) => {\n fs.readFile(filePath, 'utf8', (err: NodeJS.ErrnoException | null, data: string) => {\n if (err) reject(err);\n else resolve(data);\n });\n });\n }\n\n private writeFile({ filePath, data }: { filePath: string; data: string }): Promise<void> {\n return new Promise((resolve, reject) => {\n fs.writeFile(filePath, data, 'utf8', (err: NodeJS.ErrnoException | null) => {\n if (err) reject(err);\n else resolve();\n });\n });\n }\n\n private async updateEnvData({\n key,\n value,\n filePath = this.filePath,\n data,\n }: {\n key: string;\n value: string;\n filePath?: string;\n data: string;\n }): Promise<string> {\n const regex = new RegExp(`^${key}=.*$`, 'm');\n if (data.match(regex)) {\n data = data.replace(regex, `${key}=${value}`);\n } else {\n data += `\\n${key}=${value}`;\n }\n await this.writeFile({ filePath, data });\n console.log(`${key} set to ${value} in ENV file.`);\n return data;\n }\n\n async getEnvValue(key: string): Promise<string | null> {\n try {\n const data = await this.readFile(this.filePath);\n const regex = new RegExp(`^${key}=(.*)$`, 'm');\n const match = data.match(regex);\n return match?.[1] || null;\n } catch (err) {\n console.error(`Error reading ENV value: ${err}`);\n return null;\n }\n }\n\n async setEnvValue(key: string, value: string): Promise<void> {\n try {\n const data = await this.readFile(this.filePath);\n await this.updateEnvData({ key, value, data });\n } catch (err) {\n console.error(`Error writing ENV value: ${err}`);\n }\n }\n}\n","import fs from 'fs';\nimport path from 'path';\nimport { fileURLToPath } from 'url';\n\nimport fsExtra from 'fs-extra/esm';\n\nimport { FileEnvService } from './service.fileEnv';\n\nexport class FileService {\n /**\n *\n * @param inputFile the file in the starter files directory to copy\n * @param outputFilePath the destination path\n * @param replaceIfExists flag to replace if it exists\n * @returns\n */\n public async copyStarterFile(inputFile: string, outputFilePath: string, replaceIfExists?: boolean) {\n const __filename = fileURLToPath(import.meta.url);\n const __dirname = path.dirname(__filename);\n const filePath = path.resolve(__dirname, 'starter-files', inputFile);\n const fileString = fs.readFileSync(filePath, 'utf8');\n\n if (fs.existsSync(outputFilePath) && !replaceIfExists) {\n console.log(`${outputFilePath} already exists`);\n return false;\n }\n\n await fsExtra.outputFile(outputFilePath, fileString);\n\n return true;\n }\n\n public async setupEnvFile({ dbUrl }: { dbUrl: string }) {\n const envPath = path.join(process.cwd(), '.env.development');\n\n await fsExtra.ensureFile(envPath);\n\n const fileEnvService = new FileEnvService(envPath);\n await fileEnvService.setEnvValue('DB_URL', dbUrl);\n }\n\n public getFirstExistingFile(files: string[]): string {\n for (const f of files) {\n if (fs.existsSync(f)) {\n return f;\n }\n }\n\n throw new Error('Missing required file, checked the following paths: ' + files.join(', '));\n }\n\n public replaceValuesInFile({\n filePath,\n replacements,\n }: {\n filePath: string;\n replacements: { search: string; replace: string }[];\n }) {\n let fileContent = fs.readFileSync(filePath, 'utf8');\n replacements.forEach(({ search, replace }) => {\n fileContent = fileContent.replaceAll(search, replace);\n });\n\n fs.writeFileSync(filePath, fileContent);\n }\n}\n","import fs from 'fs/promises';\nimport child_process from 'node:child_process';\nimport util from 'node:util';\nimport path from 'path';\nimport * as p from '@clack/prompts';\nimport fsExtra from 'fs-extra/esm';\nimport color from 'picocolors';\nimport prettier from 'prettier';\nimport shellQuote from 'shell-quote';\nimport yoctoSpinner from 'yocto-spinner';\n\nimport { DepsService } from '../../services/service.deps';\nimport { FileService } from '../../services/service.file';\nimport {\n cursorGlobalMCPConfigPath,\n globalMCPIsAlreadyInstalled,\n windsurfGlobalMCPConfigPath,\n} from './mcp-docs-server-install';\n\nconst exec = util.promisify(child_process.exec);\n\nexport type LLMProvider = 'openai' | 'anthropic' | 'groq' | 'google' | 'cerebras' | 'mistral';\nexport type Components = 'agents' | 'workflows' | 'tools';\n\n// TODO: Once the switch to AI SDK v5 is complete, this needs to be updated\nexport const getAISDKPackageVersion = (llmProvider: LLMProvider) => {\n switch (llmProvider) {\n case 'cerebras':\n return '^0.2.14';\n default:\n return '^1.0.0';\n }\n};\nexport const getAISDKPackage = (llmProvider: LLMProvider) => {\n switch (llmProvider) {\n case 'openai':\n return '@ai-sdk/openai';\n case 'anthropic':\n return '@ai-sdk/anthropic';\n case 'groq':\n return '@ai-sdk/groq';\n case 'google':\n return '@ai-sdk/google';\n case 'cerebras':\n return '@ai-sdk/cerebras';\n case 'mistral':\n return '@ai-sdk/mistral';\n default:\n return '@ai-sdk/openai';\n }\n};\n\nexport const getProviderImportAndModelItem = (llmProvider: LLMProvider) => {\n let providerImport = '';\n let modelItem = '';\n\n if (llmProvider === 'openai') {\n providerImport = `import { openai } from '${getAISDKPackage(llmProvider)}';`;\n modelItem = `openai('gpt-4o-mini')`;\n } else if (llmProvider === 'anthropic') {\n providerImport = `import { anthropic } from '${getAISDKPackage(llmProvider)}';`;\n modelItem = `anthropic('claude-3-5-sonnet-20241022')`;\n } else if (llmProvider === 'groq') {\n providerImport = `import { groq } from '${getAISDKPackage(llmProvider)}';`;\n modelItem = `groq('llama-3.3-70b-versatile')`;\n } else if (llmProvider === 'google') {\n providerImport = `import { google } from '${getAISDKPackage(llmProvider)}';`;\n modelItem = `google('gemini-2.5-pro')`;\n } else if (llmProvider === 'cerebras') {\n providerImport = `import { cerebras } from '${getAISDKPackage(llmProvider)}';`;\n modelItem = `cerebras('llama-3.3-70b')`;\n } else if (llmProvider === 'mistral') {\n providerImport = `import { mistral } from '${getAISDKPackage(llmProvider)}';`;\n modelItem = `mistral('mistral-medium-2508')`;\n }\n return { providerImport, modelItem };\n};\n\nexport async function writeAgentSample(llmProvider: LLMProvider, destPath: string, addExampleTool: boolean) {\n const { providerImport, modelItem } = getProviderImportAndModelItem(llmProvider);\n\n const instructions = `\n You are a helpful weather assistant that provides accurate weather information and can help planning activities based on the weather.\n\n Your primary function is to help users get weather details for specific locations. When responding:\n - Always ask for a location if none is provided\n - If the location name isn't in English, please translate it\n - If giving a location with multiple parts (e.g. \"New York, NY\"), use the most relevant part (e.g. \"New York\")\n - Include relevant details like humidity, wind conditions, and precipitation\n - Keep responses concise but informative\n - If the user asks for activities and provides the weather forecast, suggest activities based on the weather forecast.\n - If the user asks for activities, respond in the format they request.\n\n ${addExampleTool ? 'Use the weatherTool to fetch current weather data.' : ''}\n`;\n const content = `\n${providerImport}\nimport { Agent } from '@mastra/core/agent';\nimport { Memory } from '@mastra/memory';\nimport { LibSQLStore } from '@mastra/libsql';\n${addExampleTool ? `import { weatherTool } from '../tools/weather-tool';` : ''}\n\nexport const weatherAgent = new Agent({\n name: 'Weather Agent',\n instructions: \\`${instructions}\\`,\n model: ${modelItem},\n ${addExampleTool ? 'tools: { weatherTool },' : ''}\n memory: new Memory({\n storage: new LibSQLStore({\n url: \"file:../mastra.db\", // path is relative to the .mastra/output directory\n })\n })\n});\n `;\n const formattedContent = await prettier.format(content, {\n parser: 'typescript',\n singleQuote: true,\n });\n\n await fs.writeFile(destPath, '');\n await fs.writeFile(destPath, formattedContent);\n}\n\nexport async function writeWorkflowSample(destPath: string) {\n const content = `import { createStep, createWorkflow } from '@mastra/core/workflows';\nimport { z } from 'zod';\n\nconst forecastSchema = z.object({\n date: z.string(),\n maxTemp: z.number(),\n minTemp: z.number(),\n precipitationChance: z.number(),\n condition: z.string(),\n location: z.string(),\n})\n\nfunction getWeatherCondition(code: number): string {\n const conditions: Record<number, string> = {\n 0: 'Clear sky',\n 1: 'Mainly clear',\n 2: 'Partly cloudy',\n 3: 'Overcast',\n 45: 'Foggy',\n 48: 'Depositing rime fog',\n 51: 'Light drizzle',\n 53: 'Moderate drizzle',\n 55: 'Dense drizzle',\n 61: 'Slight rain',\n 63: 'Moderate rain',\n 65: 'Heavy rain',\n 71: 'Slight snow fall',\n 73: 'Moderate snow fall',\n 75: 'Heavy snow fall',\n 95: 'Thunderstorm',\n }\n return conditions[code] || 'Unknown'\n}\n\nconst fetchWeather = createStep({\n id: 'fetch-weather',\n description: 'Fetches weather forecast for a given city',\n inputSchema: z.object({\n city: z.string().describe('The city to get the weather for'),\n }),\n outputSchema: forecastSchema,\n execute: async ({ inputData }) => {\n if (!inputData) {\n throw new Error('Input data not found');\n }\n\n const geocodingUrl = \\`https://geocoding-api.open-meteo.com/v1/search?name=\\${encodeURIComponent(inputData.city)}&count=1\\`;\n const geocodingResponse = await fetch(geocodingUrl);\n const geocodingData = (await geocodingResponse.json()) as {\n results: { latitude: number; longitude: number; name: string }[];\n };\n\n if (!geocodingData.results?.[0]) {\n throw new Error(\\`Location '\\${inputData.city}' not found\\`);\n }\n\n const { latitude, longitude, name } = geocodingData.results[0];\n\n const weatherUrl = \\`https://api.open-meteo.com/v1/forecast?latitude=\\${latitude}&longitude=\\${longitude}&current=precipitation,weathercode&timezone=auto,&hourly=precipitation_probability,temperature_2m\\`;\n const response = await fetch(weatherUrl);\n const data = (await response.json()) as {\n current: {\n time: string\n precipitation: number\n weathercode: number\n }\n hourly: {\n precipitation_probability: number[]\n temperature_2m: number[]\n }\n }\n\n const forecast = {\n date: new Date().toISOString(),\n maxTemp: Math.max(...data.hourly.temperature_2m),\n minTemp: Math.min(...data.hourly.temperature_2m),\n condition: getWeatherCondition(data.current.weathercode),\n precipitationChance: data.hourly.precipitation_probability.reduce(\n (acc, curr) => Math.max(acc, curr),\n 0\n ),\n location: name\n }\n\n return forecast;\n },\n});\n\n\nconst planActivities = createStep({\n id: 'plan-activities',\n description: 'Suggests activities based on weather conditions',\n inputSchema: forecastSchema,\n outputSchema: z.object({\n activities: z.string(),\n }),\n execute: async ({ inputData, mastra }) => {\n const forecast = inputData\n\n if (!forecast) {\n throw new Error('Forecast data not found')\n }\n\n const agent = mastra?.getAgent('weatherAgent');\n if (!agent) {\n throw new Error('Weather agent not found');\n }\n\n const prompt = \\`Based on the following weather forecast for \\${forecast.location}, suggest appropriate activities:\n \\${JSON.stringify(forecast, null, 2)}\n For each day in the forecast, structure your response exactly as follows:\n\n 📅 [Day, Month Date, Year]\n ═══════════════════════════\n\n 🌡️ WEATHER SUMMARY\n • Conditions: [brief description]\n • Temperature: [X°C/Y°F to A°C/B°F]\n • Precipitation: [X% chance]\n\n 🌅 MORNING ACTIVITIES\n Outdoor:\n • [Activity Name] - [Brief description including specific location/route]\n Best timing: [specific time range]\n Note: [relevant weather consideration]\n\n 🌞 AFTERNOON ACTIVITIES\n Outdoor:\n • [Activity Name] - [Brief description including specific location/route]\n Best timing: [specific time range]\n Note: [relevant weather consideration]\n\n 🏠 INDOOR ALTERNATIVES\n • [Activity Name] - [Brief description including specific venue]\n Ideal for: [weather condition that would trigger this alternative]\n\n ⚠️ SPECIAL CONSIDERATIONS\n • [Any relevant weather warnings, UV index, wind conditions, etc.]\n\n Guidelines:\n - Suggest 2-3 time-specific outdoor activities per day\n - Include 1-2 indoor backup options\n - For precipitation >50%, lead with indoor activities\n - All activities must be specific to the location\n - Include specific venues, trails, or locations\n - Consider activity intensity based on temperature\n - Keep descriptions concise but informative\n\n Maintain this exact formatting for consistency, using the emoji and section headers as shown.\\`;\n\n const response = await agent.stream([\n {\n role: 'user',\n content: prompt,\n },\n ]);\n\n let activitiesText = '';\n\n for await (const chunk of response.textStream) {\n process.stdout.write(chunk);\n activitiesText += chunk;\n }\n\n return {\n activities: activitiesText,\n };\n },\n});\n\nconst weatherWorkflow = createWorkflow({\n id: 'weather-workflow',\n inputSchema: z.object({\n city: z.string().describe('The city to get the weather for'),\n }),\n outputSchema: z.object({\n activities: z.string(),\n })\n})\n .then(fetchWeather)\n .then(planActivities);\n\nweatherWorkflow.commit();\n\nexport { weatherWorkflow };`;\n\n const formattedContent = await prettier.format(content, {\n parser: 'typescript',\n semi: true,\n singleQuote: true,\n });\n\n await fs.writeFile(destPath, formattedContent);\n}\n\nexport async function writeToolSample(destPath: string) {\n const fileService = new FileService();\n await fileService.copyStarterFile('tools.ts', destPath);\n}\n\nexport async function writeCodeSampleForComponents(\n llmprovider: LLMProvider,\n component: Components,\n destPath: string,\n importComponents: Components[],\n) {\n switch (component) {\n case 'agents':\n return writeAgentSample(llmprovider, destPath, importComponents.includes('tools'));\n case 'tools':\n return writeToolSample(destPath);\n case 'workflows':\n return writeWorkflowSample(destPath);\n default:\n return '';\n }\n}\n\nexport const createComponentsDir = async (dirPath: string, component: string) => {\n const componentPath = dirPath + `/${component}`;\n\n await fsExtra.ensureDir(componentPath);\n};\n\nexport const writeIndexFile = async ({\n dirPath,\n addAgent,\n addExample,\n addWorkflow,\n}: {\n dirPath: string;\n addExample: boolean;\n addWorkflow: boolean;\n addAgent: boolean;\n}) => {\n const indexPath = dirPath + '/index.ts';\n const destPath = path.join(indexPath);\n try {\n await fs.writeFile(destPath, '');\n const filteredExports = [\n addWorkflow ? `workflows: { weatherWorkflow },` : '',\n addAgent ? `agents: { weatherAgent },` : '',\n ].filter(Boolean);\n if (!addExample) {\n await fs.writeFile(\n destPath,\n `\nimport { Mastra } from '@mastra/core';\n\nexport const mastra = new Mastra()\n `,\n );\n\n return;\n }\n await fs.writeFile(\n destPath,\n `\nimport { Mastra } from '@mastra/core/mastra';\nimport { PinoLogger } from '@mastra/loggers';\nimport { LibSQLStore } from '@mastra/libsql';\n${addWorkflow ? `import { weatherWorkflow } from './workflows/weather-workflow';` : ''}\n${addAgent ? `import { weatherAgent } from './agents/weather-agent';` : ''}\n\nexport const mastra = new Mastra({\n ${filteredExports.join('\\n ')}\n storage: new LibSQLStore({\n // stores telemetry, evals, ... into memory storage, if it needs to persist, change to file:../mastra.db\n url: \":memory:\",\n }),\n logger: new PinoLogger({\n name: 'Mastra',\n level: 'info',\n }),\n});\n`,\n );\n } catch (err) {\n throw err;\n }\n};\n\nexport const checkInitialization = async (dirPath: string) => {\n try {\n await fs.access(dirPath);\n return true;\n } catch {\n return false;\n }\n};\n\nexport const checkAndInstallCoreDeps = async (addExample: boolean) => {\n const depService = new DepsService();\n const needsCore = (await depService.checkDependencies(['@mastra/core'])) !== `ok`;\n const needsZod = (await depService.checkDependencies(['zod'])) !== `ok`;\n\n if (needsCore) {\n await installCoreDeps('@mastra/core');\n }\n\n if (needsZod) {\n // TODO: Once the switch to AI SDK v5 is complete, this needs to be updated\n await installCoreDeps('zod', '^3');\n }\n\n if (addExample) {\n const needsLibsql = (await depService.checkDependencies(['@mastra/libsql'])) !== `ok`;\n\n if (needsLibsql) {\n await installCoreDeps('@mastra/libsql');\n }\n }\n};\n\nconst spinner = yoctoSpinner({ text: 'Installing Mastra core dependencies\\n' });\nexport async function installCoreDeps(pkg: string, version = 'latest') {\n try {\n const confirm = await p.confirm({\n message: `You do not have the ${pkg} package installed. Would you like to install it?`,\n initialValue: false,\n });\n\n if (p.isCancel(confirm)) {\n p.cancel('Installation Cancelled');\n process.exit(0);\n }\n\n if (!confirm) {\n p.cancel('Installation Cancelled');\n process.exit(0);\n }\n\n spinner.start();\n\n const depsService = new DepsService();\n\n await depsService.installPackages([`${pkg}@${version}`]);\n spinner.success(`${pkg} installed successfully`);\n } catch (err) {\n console.error(err);\n }\n}\n\nexport const getAPIKey = async (provider: LLMProvider) => {\n let key = 'OPENAI_API_KEY';\n switch (provider) {\n case 'anthropic':\n key = 'ANTHROPIC_API_KEY';\n return key;\n case 'groq':\n key = 'GROQ_API_KEY';\n return key;\n case 'google':\n key = 'GOOGLE_GENERATIVE_AI_API_KEY';\n return key;\n case 'cerebras':\n key = 'CEREBRAS_API_KEY';\n return key;\n case 'mistral':\n key = 'MISTRAL_API_KEY';\n return key;\n default:\n return key;\n }\n};\n\nexport const writeAPIKey = async ({\n provider,\n apiKey = 'your-api-key',\n}: {\n provider: LLMProvider;\n apiKey?: string;\n}) => {\n const key = await getAPIKey(provider);\n const escapedKey = shellQuote.quote([key]);\n const escapedApiKey = shellQuote.quote([apiKey]);\n await exec(`echo ${escapedKey}=${escapedApiKey} >> .env`);\n};\nexport const createMastraDir = async (directory: string): Promise<{ ok: true; dirPath: string } | { ok: false }> => {\n let dir = directory\n .trim()\n .split('/')\n .filter(item => item !== '');\n\n const dirPath = path.join(process.cwd(), ...dir, 'mastra');\n\n try {\n await fs.access(dirPath);\n return { ok: false };\n } catch {\n await fsExtra.ensureDir(dirPath);\n return { ok: true, dirPath };\n }\n};\n\nexport const writeCodeSample = async (\n dirPath: string,\n component: Components,\n llmProvider: LLMProvider,\n importComponents: Components[],\n) => {\n const destPath = dirPath + `/${component}/weather-${component.slice(0, -1)}.ts`;\n\n try {\n await writeCodeSampleForComponents(llmProvider, component, destPath, importComponents);\n } catch (err) {\n throw err;\n }\n};\n\nexport const interactivePrompt = async () => {\n p.intro(color.inverse(' Mastra Init '));\n const mastraProject = await p.group(\n {\n directory: () =>\n p.text({\n message: 'Where should we create the Mastra files? (default: src/)',\n placeholder: 'src/',\n defaultValue: 'src/',\n }),\n llmProvider: () =>\n p.select({\n message: 'Select default provider:',\n options: [\n { value: 'openai', label: 'OpenAI', hint: 'recommended' },\n { value: 'anthropic', label: 'Anthropic' },\n { value: 'groq', label: 'Groq' },\n { value: 'google', label: 'Google' },\n { value: 'cerebras', label: 'Cerebras' },\n { value: 'mistral', label: 'Mistral' },\n ] satisfies { value: LLMProvider; label: string; hint?: string }[],\n }),\n llmApiKey: async ({ results: { llmProvider } }) => {\n const keyChoice = await p.select({\n message: `Enter your ${llmProvider} API key?`,\n options: [\n { value: 'skip', label: 'Skip for now', hint: 'default' },\n { value: 'enter', label: 'Enter API key' },\n ],\n initialValue: 'skip',\n });\n\n if (keyChoice === 'enter') {\n return p.text({\n message: 'Enter your API key:',\n placeholder: 'sk-...',\n });\n }\n return undefined;\n },\n configureEditorWithDocsMCP: async () => {\n const windsurfIsAlreadyInstalled = await globalMCPIsAlreadyInstalled(`windsurf`);\n const cursorIsAlreadyInstalled = await globalMCPIsAlreadyInstalled(`cursor`);\n const vscodeIsAlreadyInstalled = await globalMCPIsAlreadyInstalled(`vscode`);\n\n const editor = await p.select({\n message: `Make your AI IDE into a Mastra expert? (installs Mastra docs MCP server)`,\n options: [\n { value: 'skip', label: 'Skip for now', hint: 'default' },\n {\n value: 'cursor',\n label: 'Cursor (project only)',\n hint: cursorIsAlreadyInstalled ? `Already installed globally` : undefined,\n },\n {\n value: 'cursor-global',\n label: 'Cursor (global, all projects)',\n hint: cursorIsAlreadyInstalled ? `Already installed` : undefined,\n },\n {\n value: 'windsurf',\n label: 'Windsurf',\n hint: windsurfIsAlreadyInstalled ? `Already installed` : undefined,\n },\n {\n value: 'vscode',\n label: 'VSCode',\n hint: vscodeIsAlreadyInstalled ? `Already installed` : undefined,\n },\n ],\n });\n\n if (editor === `skip`) return undefined;\n if (editor === `windsurf` && windsurfIsAlreadyInstalled) {\n p.log.message(`\\nWindsurf is already installed, skipping.`);\n return undefined;\n }\n if (editor === `vscode` && vscodeIsAlreadyInstalled) {\n p.log.message(`\\nVSCode is already installed, skipping.`);\n return undefined;\n }\n\n if (editor === `cursor`) {\n p.log.message(\n `\\nNote: you will need to go into Cursor Settings -> MCP Settings and manually enable the installed Mastra MCP server.\\n`,\n );\n }\n\n if (editor === `cursor-global`) {\n const confirm = await p.select({\n message: `Global install will add/update ${cursorGlobalMCPConfigPath} and make the Mastra docs MCP server available in all your Cursor projects. Continue?`,\n options: [\n { value: 'yes', label: 'Yes, I understand' },\n { value: 'skip', label: 'No, skip for now' },\n ],\n });\n if (confirm !== `yes`) {\n return undefined;\n }\n }\n\n if (editor === `windsurf`) {\n const confirm = await p.select({\n message: `Windsurf only supports a global MCP config (at ${windsurfGlobalMCPConfigPath}) is it ok to add/update that global config?\\nThis means the Mastra docs MCP server will be available in all your Windsurf projects.`,\n options: [\n { value: 'yes', label: 'Yes, I understand' },\n { value: 'skip', label: 'No, skip for now' },\n ],\n });\n if (confirm !== `yes`) {\n return undefined;\n }\n }\n\n return editor;\n },\n },\n {\n onCancel: () => {\n p.cancel('Operation cancelled.');\n process.exit(0);\n },\n },\n );\n\n return mastraProject;\n};\n\n/**\n * Check if the current directory has a package.json file. If not, we should alert the user to create one or run \"mastra create\" to create a new project. The package.json file is required to install dependencies in the next steps.\n */\nexport const checkForPkgJson = async () => {\n const cwd = process.cwd();\n const pkgJsonPath = path.join(cwd, 'package.json');\n\n try {\n await fs.access(pkgJsonPath);\n\n // Do nothing\n } catch {\n p.log.error(\n 'No package.json file found in the current directory. Please run \"npm init -y\" to create one, or run \"npx create-mastra@latest\" to create a new Mastra project.',\n );\n\n process.exit(1);\n }\n};\n","import child_process from 'node:child_process';\nimport util from 'node:util';\nimport * as p from '@clack/prompts';\nimport color from 'picocolors';\n\nimport { DepsService } from '../../services/service.deps';\nimport { getPackageManagerAddCommand } from '../../utils/package-manager';\n\nimport { installMastraDocsMCPServer } from './mcp-docs-server-install';\nimport type { Editor } from './mcp-docs-server-install';\nimport {\n createComponentsDir,\n createMastraDir,\n getAISDKPackage,\n getAISDKPackageVersion,\n getAPIKey,\n writeAPIKey,\n writeCodeSample,\n writeIndexFile,\n} from './utils';\nimport type { Components, LLMProvider } from './utils';\n\nconst s = p.spinner();\n\nconst exec = util.promisify(child_process.exec);\n\nexport const init = async ({\n directory,\n addExample = false,\n components,\n llmProvider = 'openai',\n llmApiKey,\n configureEditorWithDocsMCP,\n}: {\n directory: string;\n components: string[];\n llmProvider: LLMProvider;\n addExample: boolean;\n llmApiKey?: string;\n configureEditorWithDocsMCP?: Editor;\n}) => {\n s.start('Initializing Mastra');\n\n try {\n const result = await createMastraDir(directory);\n\n if (!result.ok) {\n s.stop(color.inverse(' Mastra already initialized '));\n return { success: false };\n }\n\n const dirPath = result.dirPath;\n\n await Promise.all([\n writeIndexFile({\n dirPath,\n addExample,\n addWorkflow: components.includes('workflows'),\n addAgent: components.includes('agents'),\n }),\n ...components.map(component => createComponentsDir(dirPath, component)),\n writeAPIKey({ provider: llmProvider, apiKey: llmApiKey }),\n ]);\n\n if (addExample) {\n await Promise.all([\n ...components.map(component =>\n writeCodeSample(dirPath, component as Components, llmProvider, components as Components[]),\n ),\n ]);\n\n const depService = new DepsService();\n const needsLibsql = (await depService.checkDependencies(['@mastra/libsql'])) !== `ok`;\n if (needsLibsql) {\n await depService.installPackages(['@mastra/libsql']);\n }\n const needsMemory =\n components.includes(`agents`) && (await depService.checkDependencies(['@mastra/memory'])) !== `ok`;\n if (needsMemory) {\n await depService.installPackages(['@mastra/memory']);\n }\n\n const needsLoggers = (await depService.checkDependencies(['@mastra/loggers'])) !== `ok`;\n if (needsLoggers) {\n await depService.installPackages(['@mastra/loggers']);\n }\n }\n\n const key = await getAPIKey(llmProvider || 'openai');\n\n const aiSdkPackage = getAISDKPackage(llmProvider);\n const aiSdkPackageVersion = getAISDKPackageVersion(llmProvider);\n const depsService = new DepsService();\n const pm = depsService.packageManager;\n const installCommand = getPackageManagerAddCommand(pm);\n await exec(`${pm} ${installCommand} ${aiSdkPackage}@${aiSdkPackageVersion}`);\n\n if (configureEditorWithDocsMCP) {\n await installMastraDocsMCPServer({\n editor: configureEditorWithDocsMCP,\n directory: process.cwd(),\n });\n }\n\n s.stop();\n if (!llmApiKey) {\n p.note(`\n ${color.green('Mastra initialized successfully!')}\n\n Add your ${color.cyan(key)} as an environment variable\n in your ${color.cyan('.env')} file\n `);\n } else {\n p.note(`\n ${color.green('Mastra initialized successfully!')}\n `);\n }\n return { success: true };\n } catch (err) {\n s.stop(color.inverse('An error occurred while initializing Mastra'));\n console.error(err);\n return { success: false };\n }\n};\n","import fs from 'fs/promises';\nimport child_process from 'node:child_process';\nimport util from 'node:util';\nimport * as p from '@clack/prompts';\nimport color from 'picocolors';\n\nimport { DepsService } from '../../services/service.deps.js';\nimport { getPackageManagerAddCommand } from '../../utils/package-manager.js';\nimport type { PackageManager } from '../../utils/package-manager.js';\nimport { getPackageManager } from '../utils.js';\n\nconst exec = util.promisify(child_process.exec);\n\nconst execWithTimeout = async (command: string, timeoutMs?: number) => {\n try {\n const promise = exec(command, { killSignal: 'SIGTERM' });\n\n if (!timeoutMs) {\n return await promise;\n }\n\n let timeoutId: NodeJS.Timeout;\n const timeout = new Promise((_, reject) => {\n timeoutId = setTimeout(() => reject(new Error('Command timed out')), timeoutMs);\n });\n\n try {\n const result = await Promise.race([promise, timeout]);\n clearTimeout(timeoutId!);\n return result;\n } catch (error) {\n clearTimeout(timeoutId!);\n if (error instanceof Error && error.message === 'Command timed out') {\n throw new Error('Something went wrong during installation, please try again.');\n }\n throw error;\n }\n } catch (error: unknown) {\n throw error;\n }\n};\n\nasync function installMastraDependency(\n pm: PackageManager,\n dependency: string,\n versionTag: string,\n isDev: boolean,\n timeout?: number,\n) {\n let installCommand = getPackageManagerAddCommand(pm);\n\n if (isDev) {\n /**\n * All our package managers support -D for devDependencies. We can't use --save-dev across the board because yarn and bun don't alias it.\n * npm: -D, --save-dev. pnpm: -D, --save-dev. yarn: -D, --dev. bun: -D, --dev\n */\n installCommand = `${installCommand} -D`;\n }\n\n try {\n await execWithTimeout(`${pm} ${installCommand} ${dependency}${versionTag}`, timeout);\n } catch (err) {\n if (versionTag === '@latest') {\n throw new Error(\n `Failed to install ${dependency}@latest: ${err instanceof Error ? err.message : 'Unknown error'}`,\n );\n }\n try {\n await execWithTimeout(`${pm} ${installCommand} ${dependency}@latest`, timeout);\n } catch (fallbackErr) {\n throw new Error(\n `Failed to install ${dependency} (tried ${versionTag} and @latest): ${fallbackErr instanceof Error ? fallbackErr.message : 'Unknown error'}`,\n );\n }\n }\n}\n\nexport const createMastraProject = async ({\n projectName: name,\n createVersionTag,\n timeout,\n}: {\n projectName?: string;\n createVersionTag?: string;\n timeout?: number;\n}) => {\n p.intro(color.inverse(' Mastra Create '));\n\n const projectName =\n name ??\n (await p.text({\n message: 'What do you want to name your project?',\n placeholder: 'my-mastra-app',\n defaultValue: 'my-mastra-app',\n }));\n\n if (p.isCancel(projectName)) {\n p.cancel('Operation cancelled');\n process.exit(0);\n }\n\n const s = p.spinner();\n\n try {\n s.start('Creating project');\n try {\n await fs.mkdir(projectName);\n } catch (error) {\n if (error instanceof Error && 'code' in error && error.code === 'EEXIST') {\n s.stop(`A directory named \"${projectName}\" already exists. Please choose a different name.`);\n process.exit(1);\n }\n throw new Error(\n `Failed to create project directory: ${error instanceof Error ? error.message : 'Unknown error'}`,\n );\n }\n\n process.chdir(projectName);\n const pm = getPackageManager();\n const installCommand = getPackageManagerAddCommand(pm);\n\n s.message('Initializing project structure');\n try {\n await exec(`npm init -y`);\n await exec(`npm pkg set type=\"module\"`);\n await exec(`npm pkg set engines.node=\">=20.9.0\"`);\n const depsService = new DepsService();\n await depsService.addScriptsToPackageJson({\n dev: 'mastra dev',\n build: 'mastra build',\n start: 'mastra start',\n });\n } catch (error) {\n throw new Error(\n `Failed to initialize project structure: ${error instanceof Error ? error.message : 'Unknown error'}`,\n );\n }\n\n s.stop('Project structure created');\n\n s.start(`Installing ${pm} dependencies`);\n try {\n await exec(`${pm} ${installCommand} zod@^3`);\n await exec(`${pm} ${installCommand} typescript @types/node --save-dev`);\n await exec(`echo '{\n \"compilerOptions\": {\n \"target\": \"ES2022\",\n \"module\": \"ES2022\",\n \"moduleResolution\": \"bundler\",\n \"esModuleInterop\": true,\n \"forceConsistentCasingInFileNames\": true,\n \"strict\": true,\n \"skipLibCheck\": true,\n \"noEmit\": true,\n \"outDir\": \"dist\"\n },\n \"include\": [\n \"src/**/*\"\n ]\n}' > tsconfig.json`);\n } catch (error) {\n throw new Error(\n `Failed to install basic dependencies: ${error instanceof Error ? error.message : 'Unknown error'}`,\n );\n }\n\n s.stop(`${pm} dependencies installed`);\n\n s.start('Installing mastra');\n const versionTag = createVersionTag ? `@${createVersionTag}` : '@latest';\n\n try {\n await installMastraDependency(pm, 'mastra', versionTag, true, timeout);\n } catch (error) {\n throw new Error(`Failed to install Mastra CLI: ${error instanceof Error ? error.message : 'Unknown error'}`);\n }\n s.stop('mastra installed');\n\n s.start('Installing dependencies');\n try {\n await installMastraDependency(pm, '@mastra/core', versionTag, false, timeout);\n await installMastraDependency(pm, '@mastra/libsql', versionTag, false, timeout);\n await installMastraDependency(pm, '@mastra/memory', versionTag, false, timeout);\n } catch (error) {\n throw new Error(\n `Failed to install Mastra dependencies: ${error instanceof Error ? error.message : 'Unknown error'}`,\n );\n }\n s.stop('Mastra dependencies installed');\n\n s.start('Adding .gitignore');\n try {\n await exec(`echo output.txt >> .gitignore`);\n await exec(`echo node_modules >> .gitignore`);\n await exec(`echo dist >> .gitignore`);\n await exec(`echo .mastra >> .gitignore`);\n await exec(`echo .env.development >> .gitignore`);\n await exec(`echo .env >> .gitignore`);\n await exec(`echo *.db >> .gitignore`);\n await exec(`echo *.db-* >> .gitignore`);\n } catch (error) {\n throw new Error(`Failed to create .gitignore: ${error instanceof Error ? error.message : 'Unknown error'}`);\n }\n s.stop('.gitignore added');\n\n p.outro('Project created successfully');\n console.log('');\n\n return { projectName };\n } catch (error) {\n s.stop();\n\n const errorMessage = error instanceof Error ? error.message : 'An unexpected error occurred';\n p.cancel(`Project creation failed: ${errorMessage}`);\n\n process.exit(1);\n }\n};\n","import * as p from '@clack/prompts';\nimport color from 'picocolors';\nimport type { PosthogAnalytics } from '../../analytics/index';\n\nimport { getAnalytics } from '../../analytics/index';\nimport { cloneTemplate, installDependencies } from '../../utils/clone-template';\nimport { loadTemplates, selectTemplate, findTemplateByName, getDefaultProjectName } from '../../utils/template-utils';\nimport type { Template } from '../../utils/template-utils';\nimport { init } from '../init/init';\nimport { interactivePrompt } from '../init/utils';\nimport type { LLMProvider } from '../init/utils';\nimport { getPackageManager } from '../utils.js';\n\nimport { createMastraProject } from './utils';\n\nexport const create = async (args: {\n projectName?: string;\n components?: string[];\n llmProvider?: LLMProvider;\n addExample?: boolean;\n llmApiKey?: string;\n createVersionTag?: string;\n timeout?: number;\n directory?: string;\n mcpServer?: 'windsurf' | 'cursor' | 'cursor-global';\n template?: string | boolean;\n analytics?: PosthogAnalytics;\n}) => {\n if (args.template !== undefined) {\n await createFromTemplate({ ...args, injectedAnalytics: args.analytics });\n return;\n }\n\n const { projectName } = await createMastraProject({\n projectName: args?.projectName,\n createVersionTag: args?.createVersionTag,\n timeout: args?.timeout,\n });\n const directory = args.directory || 'src/';\n\n // We need to explicitly check for undefined instead of using the falsy (!)\n // check because the user might have passed args that are explicitly set\n // to false (in this case, no example code) and we need to distinguish\n // between those and the case where the args were not passed at all.\n if (args.components === undefined || args.llmProvider === undefined || args.addExample === undefined) {\n const result = await interactivePrompt();\n\n // Track model provider selection from interactive prompt\n const analytics = getAnalytics();\n if (analytics && result?.llmProvider) {\n analytics.trackEvent('cli_model_provider_selected', {\n provider: result.llmProvider,\n selection_method: 'interactive',\n });\n }\n\n await init({\n ...result,\n llmApiKey: result?.llmApiKey as string,\n components: ['agents', 'tools', 'workflows'],\n addExample: true,\n });\n postCreate({ projectName });\n return;\n }\n\n const { components = [], llmProvider = 'openai', addExample = false, llmApiKey } = args;\n\n // Track model provider selection from CLI args\n const analytics = getAnalytics();\n if (analytics) {\n analytics.trackEvent('cli_model_provider_selected', {\n provider: llmProvider,\n selection_method: 'cli_args',\n });\n }\n\n await init({\n directory,\n components,\n llmProvider,\n addExample,\n llmApiKey,\n configureEditorWithDocsMCP: args.mcpServer,\n });\n\n postCreate({ projectName });\n};\n\nconst postCreate = ({ projectName }: { projectName: string }) => {\n const packageManager = getPackageManager();\n p.outro(`\n ${color.green('To start your project:')}\n\n ${color.cyan('cd')} ${projectName}\n ${color.cyan(`${packageManager} run dev`)}\n `);\n};\n\nfunction isGitHubUrl(url: string): boolean {\n try {\n const parsedUrl = new URL(url);\n return parsedUrl.hostname === 'github.com' && parsedUrl.pathname.split('/').length >= 3;\n } catch {\n return false;\n }\n}\n\nasync function validateGitHubProject(githubUrl: string): Promise<{ isValid: boolean; errors: string[] }> {\n const errors: string[] = [];\n\n try {\n // Extract owner and repo from GitHub URL\n const urlParts = new URL(githubUrl).pathname.split('/').filter(Boolean);\n const owner = urlParts[0];\n const repo = urlParts[1]?.replace('.git', ''); // Remove .git if present\n\n if (!owner || !repo) {\n throw new Error('Invalid GitHub URL format');\n }\n\n // Try to fetch from main branch first, fallback to master\n const branches = ['main', 'master'];\n let packageJsonContent: string | null = null;\n let indexContent: string | null = null;\n\n for (const branch of branches) {\n try {\n // Fetch package.json\n const packageJsonUrl = `https://raw.githubusercontent.com/${owner}/${repo}/${branch}/package.json`;\n const packageJsonResponse = await fetch(packageJsonUrl);\n\n if (packageJsonResponse.ok) {\n packageJsonContent = await packageJsonResponse.text();\n\n // If package.json found, try to fetch index.ts from same branch\n const indexUrl = `https://raw.githubusercontent.com/${owner}/${repo}/${branch}/src/mastra/index.ts`;\n const indexResponse = await fetch(indexUrl);\n\n if (indexResponse.ok) {\n indexContent = await indexResponse.text();\n }\n\n break; // Found files, no need to check other branches\n }\n } catch {\n // Continue to next branch\n }\n }\n\n if (!packageJsonContent) {\n errors.push('Could not fetch package.json from repository');\n return { isValid: false, errors };\n }\n\n // Check for @mastra/core dependency\n try {\n const packageJson = JSON.parse(packageJsonContent);\n const hasMastraCore =\n packageJson.dependencies?.['@mastra/core'] ||\n packageJson.devDependencies?.['@mastra/core'] ||\n packageJson.peerDependencies?.['@mastra/core'];\n\n if (!hasMastraCore) {\n errors.push('Missing @mastra/core dependency in package.json');\n }\n } catch {\n errors.push('Invalid package.json format');\n }\n\n // Check for src/mastra/index.ts\n if (!indexContent) {\n errors.push('Missing src/mastra/index.ts file');\n } else {\n // Check if it exports a Mastra instance\n const hasMastraExport =\n indexContent.includes('export') && (indexContent.includes('new Mastra') || indexContent.includes('Mastra('));\n\n if (!hasMastraExport) {\n errors.push('src/mastra/index.ts does not export a Mastra instance');\n }\n }\n\n return { isValid: errors.length === 0, errors };\n } catch (error) {\n errors.push(`Failed to validate GitHub repository: ${error instanceof Error ? error.message : 'Unknown error'}`);\n return { isValid: false, errors };\n }\n}\n\nasync function createFromGitHubUrl(url: string): Promise<Template> {\n // Extract owner and repo from GitHub URL\n const urlParts = new URL(url).pathname.split('/').filter(Boolean);\n const owner = urlParts[0] || 'unknown';\n const repo = urlParts[1] || 'unknown';\n\n // Create a temporary Template object for GitHub URLs\n return {\n githubUrl: url,\n title: `${owner}/${repo}`,\n slug: repo,\n agents: [],\n mcp: [],\n tools: [],\n networks: [],\n workflows: [],\n };\n}\n\nasync function createFromTemplate(args: {\n projectName?: string;\n template?: string | boolean;\n timeout?: number;\n injectedAnalytics?: PosthogAnalytics;\n}) {\n let selectedTemplate: Template | undefined;\n\n if (args.template === true) {\n // Interactive template selection\n const templates = await loadTemplates();\n const selected = await selectTemplate(templates);\n if (!selected) {\n p.log.info('No template selected. Exiting.');\n return;\n }\n selectedTemplate = selected;\n } else if (args.template && typeof args.template === 'string') {\n // Check if it's a GitHub URL\n if (isGitHubUrl(args.template)) {\n // Validate GitHub project before cloning\n const spinner = p.spinner();\n spinner.start('Validating GitHub repository...');\n\n const validation = await validateGitHubProject(args.template);\n\n if (!validation.isValid) {\n spinner.stop('Validation failed');\n p.log.error('This does not appear to be a valid Mastra project:');\n validation.errors.forEach(error => p.log.error(` - ${error}`));\n throw new Error('Invalid Mastra project');\n }\n\n spinner.stop('Valid Mastra project ✓');\n selectedTemplate = await createFromGitHubUrl(args.template);\n } else {\n // Template name provided, find it from the list\n const templates = await loadTemplates();\n const found = findTemplateByName(templates, args.template);\n if (!found) {\n p.log.error(`Template \"${args.template}\" not found. Available templates:`);\n templates.forEach((t: Template) => p.log.info(` - ${t.title} (use: ${t.slug.replace('template-', '')})`));\n throw new Error(`Template \"${args.template}\" not found`);\n }\n selectedTemplate = found;\n }\n }\n\n if (!selectedTemplate) {\n throw new Error('No template selected');\n }\n\n // Get project name\n let projectName = args.projectName;\n if (!projectName) {\n const defaultName = getDefaultProjectName(selectedTemplate);\n const response = await p.text({\n message: 'What is your project name?',\n defaultValue: defaultName,\n placeholder: defaultName,\n });\n\n if (p.isCancel(response)) {\n p.log.info('Project creation cancelled.');\n return;\n }\n\n projectName = response as string;\n }\n\n try {\n // Track template usage\n const analytics = args.injectedAnalytics || getAnalytics();\n if (analytics) {\n analytics.trackEvent('cli_template_used', {\n template_slug: selectedTemplate.slug,\n template_title: selectedTemplate.title,\n });\n }\n\n // Clone the template\n const projectPath = await cloneTemplate({\n template: selectedTemplate,\n projectName,\n });\n\n // Install dependencies\n await installDependencies(projectPath);\n\n p.note(`\n ${color.green('Mastra template installed!')}\n\n Add the necessary environment\n variables in your ${color.cyan('.env')} file\n `);\n\n // Show completion message\n postCreate({ projectName });\n } catch (error) {\n p.log.error(`Failed to create project from template: ${error instanceof Error ? error.message : 'Unknown error'}`);\n throw error;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"start-dev-server.d.ts","sourceRoot":"","sources":["../../../src/commands/actions/start-dev-server.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,cAAc,GAAU,MAAM,GAAG,kBAqB7C,CAAC"}
1
+ {"version":3,"file":"start-dev-server.d.ts","sourceRoot":"","sources":["../../../src/commands/actions/start-dev-server.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,cAAc,GAAU,MAAM,GAAG,kBAsB7C,CAAC"}
@@ -3,7 +3,10 @@ export declare class BuildBundler extends Bundler {
3
3
  constructor();
4
4
  getEnvFiles(): Promise<string[]>;
5
5
  prepare(outputDirectory: string): Promise<void>;
6
- bundle(entryFile: string, outputDirectory: string, toolsPaths: (string | string[])[]): Promise<void>;
6
+ bundle(entryFile: string, outputDirectory: string, { toolsPaths, projectRoot }: {
7
+ toolsPaths: (string | string[])[];
8
+ projectRoot: string;
9
+ }): Promise<void>;
7
10
  protected getEntry(): string;
8
11
  lint(entryFile: string, outputDirectory: string, toolsPaths: (string | string[])[]): Promise<void>;
9
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BuildBundler.d.ts","sourceRoot":"","sources":["../../../src/commands/build/BuildBundler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAEnD,qBAAa,YAAa,SAAQ,OAAO;;IAKvC,WAAW,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAe1B,OAAO,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/C,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1G,SAAS,CAAC,QAAQ,IAAI,MAAM;IA0DtB,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAGzG"}
1
+ {"version":3,"file":"BuildBundler.d.ts","sourceRoot":"","sources":["../../../src/commands/build/BuildBundler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAEnD,qBAAa,YAAa,SAAQ,OAAO;;IAKvC,WAAW,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAe1B,OAAO,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/C,MAAM,CACV,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,MAAM,EACvB,EAAE,UAAU,EAAE,WAAW,EAAE,EAAE;QAAE,UAAU,EAAE,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,GACtF,OAAO,CAAC,IAAI,CAAC;IAIhB,SAAS,CAAC,QAAQ,IAAI,MAAM;IA0DtB,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAGzG"}