mastra 0.15.1 → 0.16.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 (306) hide show
  1. package/CHANGELOG.md +50 -0
  2. package/README.md +13 -102
  3. package/dist/{chunk-2HSDVDKZ.js → chunk-GK64AJRT.js} +35 -73
  4. package/dist/chunk-GK64AJRT.js.map +1 -0
  5. package/dist/commands/actions/build-project.d.ts.map +1 -1
  6. package/dist/commands/actions/start-dev-server.d.ts.map +1 -1
  7. package/dist/commands/build/build.d.ts +2 -1
  8. package/dist/commands/build/build.d.ts.map +1 -1
  9. package/dist/commands/create/create.js +1 -1
  10. package/dist/commands/dev/dev.d.ts +2 -1
  11. package/dist/commands/dev/dev.d.ts.map +1 -1
  12. package/dist/commands/init/init.d.ts.map +1 -1
  13. package/dist/commands/init/utils.d.ts +1 -6
  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 +28 -19
  17. package/dist/index.js.map +1 -1
  18. package/dist/playground/assets/{abap-24zuTgRW.js → abap-BeVh9wYO.js} +1 -1
  19. package/dist/playground/assets/{abnf-XSiD4cXk.js → abnf-bc6-zRBf.js} +1 -1
  20. package/dist/playground/assets/{actionscript-CEkK8-L1.js → actionscript-pHiBktI4.js} +1 -1
  21. package/dist/playground/assets/{ada-D-KW9d4U.js → ada-DlqMzlgX.js} +1 -1
  22. package/dist/playground/assets/{agda-B-lCJsYZ.js → agda-BFUhsrMT.js} +1 -1
  23. package/dist/playground/assets/{al-BA3W_phv.js → al-INk3pxPI.js} +1 -1
  24. package/dist/playground/assets/{antlr4-Cb2YpOUy.js → antlr4-kAP5KEYn.js} +1 -1
  25. package/dist/playground/assets/{apacheconf-YAWRuptx.js → apacheconf-BOeH4NG7.js} +1 -1
  26. package/dist/playground/assets/{apex-rnl1vjMx.js → apex-D6q20pyJ.js} +1 -1
  27. package/dist/playground/assets/{apl-BCRABYWP.js → apl-R9PgwjWx.js} +1 -1
  28. package/dist/playground/assets/{applescript-CTQMclKB.js → applescript-xpKbRWNx.js} +1 -1
  29. package/dist/playground/assets/{aql-CllZ-SAg.js → aql-B4po4gKh.js} +1 -1
  30. package/dist/playground/assets/{arduino-bmpnsbaS.js → arduino-CSW4W7a3.js} +1 -1
  31. package/dist/playground/assets/{arff-BDNc991x.js → arff-CkcO4DdF.js} +1 -1
  32. package/dist/playground/assets/{asciidoc-D3c3unMB.js → asciidoc-DhfiCxEg.js} +1 -1
  33. package/dist/playground/assets/{asm6502-BwYECdIc.js → asm6502-CLUCCjqj.js} +1 -1
  34. package/dist/playground/assets/{asmatmel-Cfv2Sa-x.js → asmatmel-C9VaW0TA.js} +1 -1
  35. package/dist/playground/assets/{aspnet-eyx9CPvN.js → aspnet-Cdd13xaq.js} +1 -1
  36. package/dist/playground/assets/{autohotkey-mToaEExe.js → autohotkey-CdgCuO2Q.js} +1 -1
  37. package/dist/playground/assets/{autoit-q16MH8jq.js → autoit-DFOPUzSO.js} +1 -1
  38. package/dist/playground/assets/{avisynth-A4ue-qS0.js → avisynth-Bdia89Xe.js} +1 -1
  39. package/dist/playground/assets/{avro-idl-CrKejSHo.js → avro-idl-CnJPAewv.js} +1 -1
  40. package/dist/playground/assets/{bash-BEtN7dqe.js → bash-yDDkoNFa.js} +1 -1
  41. package/dist/playground/assets/{basic-Bci5LIzX.js → basic-VANOpJci.js} +1 -1
  42. package/dist/playground/assets/{batch-BAlYAfF6.js → batch-CDoii6MZ.js} +1 -1
  43. package/dist/playground/assets/{bbcode-CmLSKqp4.js → bbcode-CZS3ESoo.js} +1 -1
  44. package/dist/playground/assets/{bicep-CB01YL5V.js → bicep-CZJOmbZ6.js} +1 -1
  45. package/dist/playground/assets/{birb-CCiPAefH.js → birb-CU1tWhC_.js} +1 -1
  46. package/dist/playground/assets/{bison-hnRN_nS1.js → bison-DBGGThIu.js} +1 -1
  47. package/dist/playground/assets/{bnf-B5IMhx6N.js → bnf-DKBzDIfO.js} +1 -1
  48. package/dist/playground/assets/{brainfuck-DAQkbg3n.js → brainfuck-Aq6YF_5u.js} +1 -1
  49. package/dist/playground/assets/{brightscript-WFGMuxAX.js → brightscript-CH-vfh9S.js} +1 -1
  50. package/dist/playground/assets/{bro-K32K04Ir.js → bro-BfxaKX_p.js} +1 -1
  51. package/dist/playground/assets/{bsl-D1p0afEQ.js → bsl-UGTI_hDL.js} +1 -1
  52. package/dist/playground/assets/{c-CBy4z3dp.js → c-BMxj2Tyh.js} +1 -1
  53. package/dist/playground/assets/{cfscript-D9dpI3Gz.js → cfscript-D6fJCg08.js} +1 -1
  54. package/dist/playground/assets/{chaiscript-BvrAItto.js → chaiscript-BCheiFLf.js} +1 -1
  55. package/dist/playground/assets/{cil-DnnzrMVY.js → cil-BVih9k7R.js} +1 -1
  56. package/dist/playground/assets/{clike-DZFAFy3m.js → clike-DhFXulhW.js} +1 -1
  57. package/dist/playground/assets/{clojure-DIgBo0n1.js → clojure-CLiU7PJY.js} +1 -1
  58. package/dist/playground/assets/{cmake-B-3cT2QA.js → cmake-Cn8H3Be_.js} +1 -1
  59. package/dist/playground/assets/{cobol-PNJWotW7.js → cobol-CdJvU9V7.js} +1 -1
  60. package/dist/playground/assets/{coffeescript-Kr7i2Tg-.js → coffeescript-DAoRk3OH.js} +1 -1
  61. package/dist/playground/assets/{concurnas-DLazFXSM.js → concurnas-BB4Mo4-a.js} +1 -1
  62. package/dist/playground/assets/{coq-BkCGS7x5.js → coq-BdSVWrQC.js} +1 -1
  63. package/dist/playground/assets/{core-BG7cmEir.js → core-_CW086h8.js} +1 -1
  64. package/dist/playground/assets/{cpp-KqIYjleM.js → cpp-jazXWyhl.js} +1 -1
  65. package/dist/playground/assets/{crystal-CBdhe_01.js → crystal-C6sZzoQs.js} +1 -1
  66. package/dist/playground/assets/{csharp-DlgOqxT7.js → csharp-E5LEJ_Dh.js} +1 -1
  67. package/dist/playground/assets/{cshtml-C3M5hTEQ.js → cshtml-ZItlVSDW.js} +1 -1
  68. package/dist/playground/assets/{csp-DT-QwR_1.js → csp-D2cRXZqo.js} +1 -1
  69. package/dist/playground/assets/{css-BO2DtU7-.js → css-BFBZCEaG.js} +1 -1
  70. package/dist/playground/assets/{css-extras-nDt23l9V.js → css-extras-BCidnJcx.js} +1 -1
  71. package/dist/playground/assets/{csv-C_j45PF9.js → csv-CHVe0ypk.js} +1 -1
  72. package/dist/playground/assets/{cypher-dWHPoJbO.js → cypher-D7UY7Xq0.js} +1 -1
  73. package/dist/playground/assets/{d-DDuZv01r.js → d-KYHDwIB7.js} +1 -1
  74. package/dist/playground/assets/{dart-DC0VROJc.js → dart-5pEwPiAn.js} +1 -1
  75. package/dist/playground/assets/{dataweave-Dw8xWsV2.js → dataweave-2A9x7JBV.js} +1 -1
  76. package/dist/playground/assets/{dax-ByDaEm6t.js → dax-B5F6LTt0.js} +1 -1
  77. package/dist/playground/assets/{dhall-4SpXt-vL.js → dhall-CIJUzRlp.js} +1 -1
  78. package/dist/playground/assets/{diff-2kXMywQ4.js → diff-D6Wl9krM.js} +1 -1
  79. package/dist/playground/assets/{django-DyOp5Rwg.js → django-BB0PUsOM.js} +1 -1
  80. package/dist/playground/assets/{dns-zone-file-BiGWp-HX.js → dns-zone-file-DUwY_2F2.js} +1 -1
  81. package/dist/playground/assets/{docker-CAgRxTMn.js → docker-CMx9_iSG.js} +1 -1
  82. package/dist/playground/assets/{dot-8e6NmRKU.js → dot-kbMAsqX7.js} +1 -1
  83. package/dist/playground/assets/{ebnf-BxSI_fh2.js → ebnf-ebYDd0sk.js} +1 -1
  84. package/dist/playground/assets/{editorconfig-CaqHE7rQ.js → editorconfig-D-vaGu6j.js} +1 -1
  85. package/dist/playground/assets/{eiffel-Ctc1HvIY.js → eiffel-BxvSLMmD.js} +1 -1
  86. package/dist/playground/assets/{ejs-yZPh67eF.js → ejs-Z8ViVb8a.js} +1 -1
  87. package/dist/playground/assets/{elixir-BNXxuL73.js → elixir-Bu2vTUUv.js} +1 -1
  88. package/dist/playground/assets/{elm-B3CvBHYv.js → elm-Dx1u8KX9.js} +1 -1
  89. package/dist/playground/assets/{erb-C0T17kT0.js → erb-B5spGQcx.js} +1 -1
  90. package/dist/playground/assets/{erlang-CoyezpMC.js → erlang-sBg4pIlZ.js} +1 -1
  91. package/dist/playground/assets/{etlua-uPA8Abpm.js → etlua-DIxVICdf.js} +1 -1
  92. package/dist/playground/assets/{excel-formula-CqqUOCIc.js → excel-formula-Ca9LI-7L.js} +1 -1
  93. package/dist/playground/assets/{factor-BuFoUrPv.js → factor-CLmTTBeZ.js} +1 -1
  94. package/dist/playground/assets/{false-DPmeaWdq.js → false-CJfyAx3h.js} +1 -1
  95. package/dist/playground/assets/{firestore-security-rules-Dy4A2xhI.js → firestore-security-rules-D7RLQfET.js} +1 -1
  96. package/dist/playground/assets/{flow-YlWPQqTY.js → flow-D1rRV-C2.js} +1 -1
  97. package/dist/playground/assets/{fortran-BMFquBwk.js → fortran-DA4FFCKs.js} +1 -1
  98. package/dist/playground/assets/{fsharp-DKa76psD.js → fsharp-Bsc0AZkI.js} +1 -1
  99. package/dist/playground/assets/{ftl-Fm5Iao5M.js → ftl-eQ3TUB0-.js} +1 -1
  100. package/dist/playground/assets/{gap-kX3CPfPO.js → gap-BG8HpDy-.js} +1 -1
  101. package/dist/playground/assets/{gcode-KvK6gIER.js → gcode-CLDHUGPT.js} +1 -1
  102. package/dist/playground/assets/{gdscript-BZPGeoKn.js → gdscript-DBuEendT.js} +1 -1
  103. package/dist/playground/assets/{gedcom-DtIT3aVj.js → gedcom-CokOCLjC.js} +1 -1
  104. package/dist/playground/assets/{gherkin-DpzqYTJU.js → gherkin-BrOY3WUa.js} +1 -1
  105. package/dist/playground/assets/{git-CpDjx7Yu.js → git-C6WRIHFA.js} +1 -1
  106. package/dist/playground/assets/{glsl-CDqlUDhM.js → glsl-DDIbdctQ.js} +1 -1
  107. package/dist/playground/assets/{gml-CexMCaEK.js → gml-DQNpqqRD.js} +1 -1
  108. package/dist/playground/assets/{gn-_WmtGH7F.js → gn-DagNMSah.js} +1 -1
  109. package/dist/playground/assets/{go-module-C_ZL_-S5.js → go-module-BiJnBaQg.js} +1 -1
  110. package/dist/playground/assets/{go-Cer5OQf9.js → go-wUV9ceel.js} +1 -1
  111. package/dist/playground/assets/{graphql-BAsjzh7A.js → graphql-COT_xzaB.js} +1 -1
  112. package/dist/playground/assets/{groovy-11tW5lOi.js → groovy-DttoMMyd.js} +1 -1
  113. package/dist/playground/assets/{haml-DcPgXuGx.js → haml-CeVyB6jn.js} +1 -1
  114. package/dist/playground/assets/{handlebars-iW_Oiihi.js → handlebars-D2_WbdmV.js} +1 -1
  115. package/dist/playground/assets/{haskell-CnmHaFYj.js → haskell-BL6lVmya.js} +1 -1
  116. package/dist/playground/assets/{haxe-CgsNHZxP.js → haxe-D2VIZe7V.js} +1 -1
  117. package/dist/playground/assets/{hcl-CJuWXPxP.js → hcl-BjDr52dg.js} +1 -1
  118. package/dist/playground/assets/{hlsl-BPMM1mVW.js → hlsl-D-fQ8Wer.js} +1 -1
  119. package/dist/playground/assets/{hoon-cyhABnjs.js → hoon-evUgU5ci.js} +1 -1
  120. package/dist/playground/assets/{hpkp-KiQCqS7D.js → hpkp-Dl3XSjpI.js} +1 -1
  121. package/dist/playground/assets/{hsts-UQ25pCeY.js → hsts-DMnunA2S.js} +1 -1
  122. package/dist/playground/assets/{http-Coa7aHPz.js → http-BDbezoge.js} +1 -1
  123. package/dist/playground/assets/{ichigojam-BUKE-GoW.js → ichigojam-H-vpa6rN.js} +1 -1
  124. package/dist/playground/assets/{icon-DgOJpXar.js → icon-JH63V6er.js} +1 -1
  125. package/dist/playground/assets/{icu-message-format-BV6qINmd.js → icu-message-format-DV8gn9NY.js} +1 -1
  126. package/dist/playground/assets/{idris-Cgy0wWDA.js → idris-D4_01pEI.js} +1 -1
  127. package/dist/playground/assets/{iecst-Db1-ZBam.js → iecst-D4ucjg6m.js} +1 -1
  128. package/dist/playground/assets/{ignore-KhNOIBQX.js → ignore-DIncI5_y.js} +1 -1
  129. package/dist/playground/assets/index-D37DDP_2.js +1070 -0
  130. package/dist/playground/assets/index-DYAHee2R.js +13 -0
  131. package/dist/playground/assets/{inform7-IFD31-mo.js → inform7-CluasQqA.js} +1 -1
  132. package/dist/playground/assets/{ini-CY3w99wE.js → ini-BDSiPm61.js} +1 -1
  133. package/dist/playground/assets/{io-CjvxIUAZ.js → io-BWOtIkv0.js} +1 -1
  134. package/dist/playground/assets/{j-D9OwnKKR.js → j-DHU_96rO.js} +1 -1
  135. package/dist/playground/assets/{java-Bam9xjsW.js → java-BGX5Qz_G.js} +1 -1
  136. package/dist/playground/assets/{javadoc-BRDyRyq7.js → javadoc-CrisBBvy.js} +1 -1
  137. package/dist/playground/assets/{javadoclike-w8MAwbBX.js → javadoclike-DsKbX_TE.js} +1 -1
  138. package/dist/playground/assets/{javascript-Dl-syXYU.js → javascript-pMkJ9TnX.js} +1 -1
  139. package/dist/playground/assets/{javastacktrace-BQhimbix.js → javastacktrace-BDe7CAui.js} +1 -1
  140. package/dist/playground/assets/{jexl-DZD0RSno.js → jexl-6qvsm5K0.js} +1 -1
  141. package/dist/playground/assets/{jolie-Bk0eb4vt.js → jolie-CsTQLHtr.js} +1 -1
  142. package/dist/playground/assets/{jq-CXtPmmhd.js → jq-qXtlr9ZB.js} +1 -1
  143. package/dist/playground/assets/{js-extras-Cyg9Hfcb.js → js-extras-Bdfkam9i.js} +1 -1
  144. package/dist/playground/assets/{js-templates-CgjxakgE.js → js-templates-DuBPPypw.js} +1 -1
  145. package/dist/playground/assets/{jsdoc-qJ2xCfVV.js → jsdoc-D_s3XyYE.js} +1 -1
  146. package/dist/playground/assets/{json-dnSKDZKe.js → json-Drj7ag6x.js} +1 -1
  147. package/dist/playground/assets/{json5-110Z-4nT.js → json5-CKbfZ2m-.js} +1 -1
  148. package/dist/playground/assets/{jsonp-WY_1vze6.js → jsonp-D5pJuVtU.js} +1 -1
  149. package/dist/playground/assets/{jsstacktrace-D89gz0oX.js → jsstacktrace-BTwBo2I7.js} +1 -1
  150. package/dist/playground/assets/{jsx-BfTW77sn.js → jsx-CsAaGFt-.js} +1 -1
  151. package/dist/playground/assets/{julia-CVSWvd4Q.js → julia-bMxZKAAH.js} +1 -1
  152. package/dist/playground/assets/{keepalived-BpocQjnB.js → keepalived-B5zK3xPx.js} +1 -1
  153. package/dist/playground/assets/{keyman-C4j5_9KH.js → keyman-DJdJ8FU3.js} +1 -1
  154. package/dist/playground/assets/{kotlin-BMdfSed0.js → kotlin-DSO5UI4a.js} +1 -1
  155. package/dist/playground/assets/{kumir-l3k3jUTz.js → kumir-Bc7JXabl.js} +1 -1
  156. package/dist/playground/assets/{kusto-BY9PlOwI.js → kusto-CekWY9HE.js} +1 -1
  157. package/dist/playground/assets/{latex-B46gGowb.js → latex-BPa9NjOi.js} +1 -1
  158. package/dist/playground/assets/{latte-1pjQ1rML.js → latte-H8YfYxti.js} +1 -1
  159. package/dist/playground/assets/{less-DZv3dtQG.js → less-CMBJz-zr.js} +1 -1
  160. package/dist/playground/assets/{lilypond-5ukumnJv.js → lilypond-C9K2xp-J.js} +1 -1
  161. package/dist/playground/assets/{liquid-b6gS3b59.js → liquid-imv9N8iU.js} +1 -1
  162. package/dist/playground/assets/{lisp-DBheMgpv.js → lisp-BKejkINC.js} +1 -1
  163. package/dist/playground/assets/{livescript-Bh2Hp1Mq.js → livescript-BgjwYbTD.js} +1 -1
  164. package/dist/playground/assets/{llvm-CkJ6OUKn.js → llvm-DKbR_sHV.js} +1 -1
  165. package/dist/playground/assets/{log-CMXNEQGN.js → log-DQpomHLF.js} +1 -1
  166. package/dist/playground/assets/{lolcode-B_jDCqxD.js → lolcode-ByD2sy4O.js} +1 -1
  167. package/dist/playground/assets/{lua-DDrSUSri.js → lua-7RpJWQcA.js} +1 -1
  168. package/dist/playground/assets/{magma-Bl-DyhjN.js → magma-D6QrM_bi.js} +1 -1
  169. package/dist/playground/assets/{makefile-CsTVT63a.js → makefile-DwOLzIra.js} +1 -1
  170. package/dist/playground/assets/{markdown-CD1c-nTG.js → markdown-DRkB8bZ-.js} +1 -1
  171. package/dist/playground/assets/{markup-BBJPAZ8P.js → markup-CwLOI5_s.js} +1 -1
  172. package/dist/playground/assets/{markup-templating-Euro3TZE.js → markup-templating-BbgXhMmb.js} +1 -1
  173. package/dist/playground/assets/{matlab-CrLeCvR4.js → matlab-BWWJDLvM.js} +1 -1
  174. package/dist/playground/assets/{maxscript-Cl7MRi_p.js → maxscript-Bk65HfnH.js} +1 -1
  175. package/dist/playground/assets/{mel-DymVYhMc.js → mel-BlV1PMgZ.js} +1 -1
  176. package/dist/playground/assets/{mermaid-t_8zTZV9.js → mermaid-spZDb7FE.js} +1 -1
  177. package/dist/playground/assets/{mizar-Cj1dlcZf.js → mizar-08nMZjrP.js} +1 -1
  178. package/dist/playground/assets/{mongodb-CfXlYvpQ.js → mongodb-BnVg3UbX.js} +1 -1
  179. package/dist/playground/assets/{monkey-C7d4a1Ee.js → monkey-CRpKwccu.js} +1 -1
  180. package/dist/playground/assets/{moonscript-BC-sBPzz.js → moonscript-BzdnPok6.js} +1 -1
  181. package/dist/playground/assets/{n1ql-DkPE_KHg.js → n1ql-DZmVp6R_.js} +1 -1
  182. package/dist/playground/assets/{n4js-CZSfSUeP.js → n4js-sL02SVWk.js} +1 -1
  183. package/dist/playground/assets/{nand2tetris-hdl-C6Z63MS5.js → nand2tetris-hdl-DKVCSp6b.js} +1 -1
  184. package/dist/playground/assets/{naniscript-CYM6bRSN.js → naniscript-BTTsKhPU.js} +1 -1
  185. package/dist/playground/assets/{nasm-BwBCWY-U.js → nasm-D3GkTc2V.js} +1 -1
  186. package/dist/playground/assets/{neon--hKmRb8X.js → neon-DogQL_p2.js} +1 -1
  187. package/dist/playground/assets/{nevod-DbkLzINM.js → nevod-CnHPr1Ml.js} +1 -1
  188. package/dist/playground/assets/{nginx-C5aEASV-.js → nginx-CHr9YSXh.js} +1 -1
  189. package/dist/playground/assets/{nim-CYkNg4_n.js → nim-BfLV_TrH.js} +1 -1
  190. package/dist/playground/assets/{nix-BQshxmJA.js → nix-BdSkzbLY.js} +1 -1
  191. package/dist/playground/assets/{nsis-Dvi4L-b-.js → nsis-CabA7aqN.js} +1 -1
  192. package/dist/playground/assets/{objectivec-CKA9KosY.js → objectivec-BbytJVwh.js} +1 -1
  193. package/dist/playground/assets/{ocaml-gEPuOleU.js → ocaml-DuAKwJTW.js} +1 -1
  194. package/dist/playground/assets/{opencl-CMwYY-TT.js → opencl-CVwfb9m6.js} +1 -1
  195. package/dist/playground/assets/{openqasm-UUrjwOEb.js → openqasm-B1RmJZJM.js} +1 -1
  196. package/dist/playground/assets/{oz-DQKKl5vs.js → oz-BRds7xws.js} +1 -1
  197. package/dist/playground/assets/{parigp-CJW1oytk.js → parigp-aKwbmZfe.js} +1 -1
  198. package/dist/playground/assets/{parser-D0Js-VuP.js → parser-B4nYxiGi.js} +1 -1
  199. package/dist/playground/assets/{pascal-7gov4t7M.js → pascal-fvdAvizw.js} +1 -1
  200. package/dist/playground/assets/{pascaligo-BB61fDxi.js → pascaligo-Dgd8-wAU.js} +1 -1
  201. package/dist/playground/assets/{pcaxis-BeQH9-ai.js → pcaxis-CGfHRdK8.js} +1 -1
  202. package/dist/playground/assets/{peoplecode-C86KC00e.js → peoplecode-CjQAQWA4.js} +1 -1
  203. package/dist/playground/assets/{perl-C0F6ZqPy.js → perl-DLz7_ETf.js} +1 -1
  204. package/dist/playground/assets/{php-B0NXLB-g.js → php-DW3xtft_.js} +1 -1
  205. package/dist/playground/assets/{php-extras-DYchE3pz.js → php-extras-C3tujuom.js} +1 -1
  206. package/dist/playground/assets/{phpdoc-CGtIETX3.js → phpdoc-Dwx5qUcW.js} +1 -1
  207. package/dist/playground/assets/{plsql-ccv2lLdy.js → plsql-IxxMebL2.js} +1 -1
  208. package/dist/playground/assets/{powerquery-DmInIMEt.js → powerquery-Cm-kRFVv.js} +1 -1
  209. package/dist/playground/assets/{powershell-2kdPAKZU.js → powershell-BbKqpZgB.js} +1 -1
  210. package/dist/playground/assets/{processing-BJPOGzVP.js → processing-ClTvPQgI.js} +1 -1
  211. package/dist/playground/assets/{prolog-DatgSjkj.js → prolog-4t6l26pC.js} +1 -1
  212. package/dist/playground/assets/{promql-C0yURe3p.js → promql-BzxAkgEP.js} +1 -1
  213. package/dist/playground/assets/{properties-KSYVLMdV.js → properties-Do_adEt9.js} +1 -1
  214. package/dist/playground/assets/{protobuf-DlF48zRr.js → protobuf-BMu4qteV.js} +1 -1
  215. package/dist/playground/assets/{psl-Be979Bx4.js → psl-DhK_zZFE.js} +1 -1
  216. package/dist/playground/assets/{pug-DSjzi154.js → pug-D6u54t0o.js} +1 -1
  217. package/dist/playground/assets/{puppet-BdHRd-rS.js → puppet-B2VtngUT.js} +1 -1
  218. package/dist/playground/assets/{pure-CA88tQtT.js → pure-BGHW50o9.js} +1 -1
  219. package/dist/playground/assets/{purebasic-3sKQxFTR.js → purebasic-BEVT_NtP.js} +1 -1
  220. package/dist/playground/assets/{purescript-4eegQWUm.js → purescript-B_2XNZmo.js} +1 -1
  221. package/dist/playground/assets/{python-DR5EIizJ.js → python-DsOV0ZxY.js} +1 -1
  222. package/dist/playground/assets/{q-DR8sog7K.js → q-DaBl6Tn9.js} +1 -1
  223. package/dist/playground/assets/{qml-RP14oVw-.js → qml-C6-s5iRC.js} +1 -1
  224. package/dist/playground/assets/{qore-DMLXjGV3.js → qore-DDbySqFZ.js} +1 -1
  225. package/dist/playground/assets/{qsharp-D4GrZsIn.js → qsharp-D6gHiRyA.js} +1 -1
  226. package/dist/playground/assets/{r-C3Q86mla.js → r-DfN8wHkH.js} +1 -1
  227. package/dist/playground/assets/{racket-C5lL4IxO.js → racket-BD3rm2uQ.js} +1 -1
  228. package/dist/playground/assets/{reason-DmNQG0VS.js → reason-C0OgfHev.js} +1 -1
  229. package/dist/playground/assets/{regex-C7tDwZby.js → regex-CwRHu-qf.js} +1 -1
  230. package/dist/playground/assets/{rego-D-uewyXt.js → rego-CIDysNoZ.js} +1 -1
  231. package/dist/playground/assets/{renpy-DPPS_AFP.js → renpy-gGnAZobJ.js} +1 -1
  232. package/dist/playground/assets/{rest-BWsEi4r9.js → rest-BWbZe4fM.js} +1 -1
  233. package/dist/playground/assets/{rip-CyeMvPFK.js → rip-B-6CLTEZ.js} +1 -1
  234. package/dist/playground/assets/{roboconf-CGRlB49B.js → roboconf-bfiwMI_z.js} +1 -1
  235. package/dist/playground/assets/{robotframework-Dh24TWLp.js → robotframework-BEWF3d6M.js} +1 -1
  236. package/dist/playground/assets/{ruby-BnNsypI8.js → ruby-BZHM-l1c.js} +1 -1
  237. package/dist/playground/assets/{rust-ByuFNsjs.js → rust-B4MbAIK2.js} +1 -1
  238. package/dist/playground/assets/{sas-BUGthKyL.js → sas-BgTju6ie.js} +1 -1
  239. package/dist/playground/assets/{sass-L0W2Ku8b.js → sass-DmxKqTPW.js} +1 -1
  240. package/dist/playground/assets/{scala-L37wpayk.js → scala-DO1tcH4S.js} +1 -1
  241. package/dist/playground/assets/{scheme-DcwmuI4_.js → scheme-CTN8O8h3.js} +1 -1
  242. package/dist/playground/assets/{scss-aeqUhw96.js → scss-C7_g7ZUN.js} +1 -1
  243. package/dist/playground/assets/{shell-session-DHP-Fn8S.js → shell-session-CYuWdWUa.js} +1 -1
  244. package/dist/playground/assets/{smali-BzI7pHlv.js → smali-BMdf76M3.js} +1 -1
  245. package/dist/playground/assets/{smalltalk-DzLk0q7H.js → smalltalk-CqnUnhnK.js} +1 -1
  246. package/dist/playground/assets/{smarty-zWm0miv-.js → smarty-C16vBj9e.js} +1 -1
  247. package/dist/playground/assets/{sml-Btg8OBkr.js → sml-DsRtcMBb.js} +1 -1
  248. package/dist/playground/assets/{solidity-ewpGpEYM.js → solidity-C4VR-uAi.js} +1 -1
  249. package/dist/playground/assets/{solution-file-D4nhLjH2.js → solution-file-54OIUEFV.js} +1 -1
  250. package/dist/playground/assets/{soy-B1rvKrjf.js → soy-BN_0aSaf.js} +1 -1
  251. package/dist/playground/assets/{sparql-BoUZP27i.js → sparql-0HNFG_LO.js} +1 -1
  252. package/dist/playground/assets/{splunk-spl-CHcZHN0X.js → splunk-spl-BshoDF6X.js} +1 -1
  253. package/dist/playground/assets/{sqf-CCdYd1QK.js → sqf-in6AW-6g.js} +1 -1
  254. package/dist/playground/assets/{sql-Czi9vyV1.js → sql-Cx68n1WT.js} +1 -1
  255. package/dist/playground/assets/{squirrel-DDGbUrsA.js → squirrel-BLvosXX5.js} +1 -1
  256. package/dist/playground/assets/{stan-D6uyGhJk.js → stan-C4FRtvbb.js} +1 -1
  257. package/dist/playground/assets/style-D4Qdw4ns.css +1 -0
  258. package/dist/playground/assets/{stylus-DhGxEK3L.js → stylus-CdjcxVsh.js} +1 -1
  259. package/dist/playground/assets/{swift-DocWJvhV.js → swift-CrnfwH-_.js} +1 -1
  260. package/dist/playground/assets/{systemd-BW7O126m.js → systemd-CqFXrTw0.js} +1 -1
  261. package/dist/playground/assets/{t4-cs-7AYKtHmL.js → t4-cs-4lbo24Gk.js} +1 -1
  262. package/dist/playground/assets/{t4-templating-D-cYZnHX.js → t4-templating-DCUWL9S2.js} +1 -1
  263. package/dist/playground/assets/{t4-vb-Bp2YjzMH.js → t4-vb-CT_9VyNP.js} +1 -1
  264. package/dist/playground/assets/{tap-Xg--D3ut.js → tap-jpQRQYDR.js} +1 -1
  265. package/dist/playground/assets/{tcl-B8ehoc80.js → tcl-BAq5hu1g.js} +1 -1
  266. package/dist/playground/assets/{textile-B_RIjpT5.js → textile-DACOdKkk.js} +1 -1
  267. package/dist/playground/assets/{toml-C_c1NWFa.js → toml-CrAxnvu3.js} +1 -1
  268. package/dist/playground/assets/{tremor-oXSmmGAK.js → tremor-S0FYfXp4.js} +1 -1
  269. package/dist/playground/assets/{tsx-DK1w9jLS.js → tsx-JEf1Jz4Q.js} +1 -1
  270. package/dist/playground/assets/{tt2-qf-3EqpJ.js → tt2-CnHGXHXh.js} +1 -1
  271. package/dist/playground/assets/{turtle-BiHmZvFu.js → turtle-tbyHfZ8d.js} +1 -1
  272. package/dist/playground/assets/{twig-BZnMKa5k.js → twig-BA_0IMhb.js} +1 -1
  273. package/dist/playground/assets/{typescript-OjYsPUtR.js → typescript-DPJm1p2Z.js} +1 -1
  274. package/dist/playground/assets/{typoscript-AJcav8Lb.js → typoscript-Bdpc5Oxs.js} +1 -1
  275. package/dist/playground/assets/{unrealscript-Dycvf77r.js → unrealscript-6jIWtm7n.js} +1 -1
  276. package/dist/playground/assets/{uorazor-f4q5__zS.js → uorazor-BOEaf2xT.js} +1 -1
  277. package/dist/playground/assets/{uri-BAKcqKJX.js → uri-DU408NbV.js} +1 -1
  278. package/dist/playground/assets/{v-Cd6-mBxv.js → v-0BSYWUJO.js} +1 -1
  279. package/dist/playground/assets/{vala-C6nfXzKp.js → vala-LdQfScnG.js} +1 -1
  280. package/dist/playground/assets/{vbnet-BLI9u44K.js → vbnet-CrQC2PTx.js} +1 -1
  281. package/dist/playground/assets/{velocity-CMrS8by1.js → velocity-DF683JjC.js} +1 -1
  282. package/dist/playground/assets/{verilog-4YHe0cVz.js → verilog-CFCnJ5V1.js} +1 -1
  283. package/dist/playground/assets/{vhdl-B3CAq63t.js → vhdl-D-XdeEl1.js} +1 -1
  284. package/dist/playground/assets/{vim-BDGmYp28.js → vim-CdjqpykQ.js} +1 -1
  285. package/dist/playground/assets/{visual-basic-CV0OTkp5.js → visual-basic-CyO6M8Yn.js} +1 -1
  286. package/dist/playground/assets/{warpscript-DQsnUeF4.js → warpscript-BqP6PVmh.js} +1 -1
  287. package/dist/playground/assets/{wasm-jSd19EPP.js → wasm-C33NIyKR.js} +1 -1
  288. package/dist/playground/assets/{web-idl-DDqsG_TK.js → web-idl-gbc_RGVF.js} +1 -1
  289. package/dist/playground/assets/{wiki-BJy2yYr9.js → wiki-76tnlQI5.js} +1 -1
  290. package/dist/playground/assets/{wolfram-BX3lfdBc.js → wolfram-9sWCTyDZ.js} +1 -1
  291. package/dist/playground/assets/{wren-lE8oivn1.js → wren-D0Eeyo1v.js} +1 -1
  292. package/dist/playground/assets/{xeora-B0ar6f1H.js → xeora-BGSd0LxL.js} +1 -1
  293. package/dist/playground/assets/{xml-doc-CRdQbaYA.js → xml-doc-BzjM0M_Z.js} +1 -1
  294. package/dist/playground/assets/{xojo-DGQBWk8x.js → xojo-C9kAlVSu.js} +1 -1
  295. package/dist/playground/assets/{xquery-abyPLMd2.js → xquery-CNrYbVsf.js} +1 -1
  296. package/dist/playground/assets/{yaml-BbmD-xiu.js → yaml-Cs7l_osE.js} +1 -1
  297. package/dist/playground/assets/{yang-vJGGthtJ.js → yang-DVQNXSWo.js} +1 -1
  298. package/dist/playground/assets/{zig-lek4eF-n.js → zig-OWOZw6E5.js} +1 -1
  299. package/dist/playground/index.html +2 -2
  300. package/dist/utils/logger.d.ts +1 -0
  301. package/dist/utils/logger.d.ts.map +1 -1
  302. package/package.json +10 -10
  303. package/dist/chunk-2HSDVDKZ.js.map +0 -1
  304. package/dist/playground/assets/index-4QJh5siJ.js +0 -13
  305. package/dist/playground/assets/index-DC6QEaiT.js +0 -1031
  306. package/dist/playground/assets/style-R7_he_hy.css +0 -1
@@ -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","args","color","p3","p4","fsSync","s","analytics","p5"],"mappings":"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","file":"chunk-GK64AJRT.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 = createLogger(false);\n\nexport function createLogger(debug: boolean = false) {\n return new PinoLogger({\n name: 'Mastra CLI',\n level: debug ? 'debug' : 'info',\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 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.info(`${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.info(`${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\nexport const getModelIdentifier = (llmProvider: LLMProvider) => {\n if (llmProvider === 'openai') {\n return `'openai/gpt-4o-mini'`;\n } else if (llmProvider === 'anthropic') {\n return `'anthropic/claude-3-5-sonnet-20241022'`;\n } else if (llmProvider === 'groq') {\n return `'groq/llama-3.3-70b-versatile'`;\n } else if (llmProvider === 'google') {\n return `'google/gemini-2.5-pro'`;\n } else if (llmProvider === 'cerebras') {\n return `'cerebras/llama-3.3-70b'`;\n } else if (llmProvider === 'mistral') {\n return `'mistral/mistral-medium-2508'`;\n }\n};\n\nexport async function writeAgentSample(llmProvider: LLMProvider, destPath: string, addExampleTool: boolean) {\n const modelString = getModelIdentifier(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 = `\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: ${modelString},\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 observability, scores, ... 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 telemetry: {\n // Telemetry is deprecated and will be removed in the Nov 4th release\n enabled: false, \n },\n observability: {\n // Enables DefaultExporter and CloudExporter for AI tracing\n default: { enabled: true }, \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 ({ provider, apiKey }: { provider: LLMProvider; apiKey?: string }) => {\n /**\n * If people skip entering an API key (because they e.g. have it in their environment already), we write to .env.example instead of .env so that they can immediately run Mastra without having to delete an .env file with an invalid key.\n */\n const envFileName = apiKey ? '.env' : '.env.example';\n\n const key = await getAPIKey(provider);\n const escapedKey = shellQuote.quote([key]);\n const escapedApiKey = shellQuote.quote([apiKey ? apiKey : 'your-api-key']);\n await exec(`echo ${escapedKey}=${escapedApiKey} >> ${envFileName}`);\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\nconst LLM_PROVIDERS: { value: LLMProvider; label: string; hint?: string }[] = [\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];\n\ninterface InteractivePromptArgs {\n options?: {\n showBanner?: boolean;\n };\n skip?: {\n llmProvider?: boolean;\n llmApiKey?: boolean;\n };\n}\n\nexport const interactivePrompt = async (args: InteractivePromptArgs = {}) => {\n const { skip = {}, options: { showBanner = true } = {} } = args;\n\n if (showBanner) {\n p.intro(color.inverse(' Mastra Init '));\n }\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 skip?.llmProvider\n ? undefined\n : p.select({\n message: 'Select a default provider:',\n options: LLM_PROVIDERS,\n }),\n llmApiKey: async ({ results: { llmProvider } }) => {\n if (skip?.llmApiKey) return undefined;\n\n const llmName = LLM_PROVIDERS.find(p => p.value === llmProvider)?.label || 'provider';\n const keyChoice = await p.select({\n message: `Enter your ${llmName} 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 validate: value => {\n if (value.length === 0) return 'API key cannot be empty';\n },\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 IDE into a Mastra expert? (Installs Mastra's 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 * as p from '@clack/prompts';\nimport color from 'picocolors';\n\nimport { DepsService } from '../../services/service.deps';\n\nimport { installMastraDocsMCPServer } from './mcp-docs-server-install';\nimport type { Editor } from './mcp-docs-server-install';\nimport { createComponentsDir, createMastraDir, getAPIKey, writeAPIKey, writeCodeSample, writeIndexFile } from './utils';\nimport type { Components, LLMProvider } from './utils';\n\nconst s = p.spinner();\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 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 fsSync from 'fs';\nimport 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 { interactivePrompt } from '../init/utils.js';\nimport type { LLMProvider } from '../init/utils.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 llmProvider,\n llmApiKey,\n needsInteractive,\n}: {\n projectName?: string;\n createVersionTag?: string;\n timeout?: number;\n llmProvider?: LLMProvider;\n llmApiKey?: string;\n needsInteractive?: boolean;\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 validate: value => {\n if (value.length === 0) return 'Project name cannot be empty';\n if (fsSync.existsSync(value)) {\n return `A directory named \"${value}\" already exists. Please choose a different name.`;\n }\n },\n }));\n\n if (p.isCancel(projectName)) {\n p.cancel('Operation cancelled');\n process.exit(0);\n }\n\n let result;\n\n if (needsInteractive) {\n result = await interactivePrompt({\n options: { showBanner: false },\n skip: { llmProvider: llmProvider !== undefined, llmApiKey: llmApiKey !== undefined },\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 CLI');\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 CLI installed');\n\n s.start('Installing Mastra 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.info('');\n\n return { projectName, result };\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 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 /**\n * We need to explicitly check for undefined instead of using the falsy (!) check because the user might have passed args that are explicitly set to false (in this case, no example code) and we need to distinguish between those and the case where the args were not passed at all.\n */\n const needsInteractive =\n args.components === undefined || args.llmProvider === undefined || args.addExample === undefined;\n\n const { projectName, result } = await createMastraProject({\n projectName: args?.projectName,\n createVersionTag: args?.createVersionTag,\n timeout: args?.timeout,\n llmProvider: args?.llmProvider,\n llmApiKey: args?.llmApiKey,\n needsInteractive,\n });\n const directory = args.directory || 'src/';\n\n if (needsInteractive && result) {\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 | undefined,\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":"build-project.d.ts","sourceRoot":"","sources":["../../../src/commands/actions/build-project.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,YAAY,GAAU,MAAM,GAAG,kBAc3C,CAAC"}
1
+ {"version":3,"file":"build-project.d.ts","sourceRoot":"","sources":["../../../src/commands/actions/build-project.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,YAAY,GAAU,MAAM,GAAG,kBAe3C,CAAC"}
@@ -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,kBAsB7C,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,kBAuB7C,CAAC"}
@@ -1,7 +1,8 @@
1
- export declare function build({ dir, tools, root, env, }: {
1
+ export declare function build({ dir, tools, root, env, debug, }: {
2
2
  dir?: string;
3
3
  tools?: string[];
4
4
  root?: string;
5
5
  env?: string;
6
+ debug?: boolean;
6
7
  }): Promise<void>;
7
8
  //# sourceMappingURL=build.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../src/commands/build/build.ts"],"names":[],"mappings":"AAQA,wBAAsB,KAAK,CAAC,EAC1B,GAAG,EACH,KAAK,EACL,IAAI,EACJ,GAAG,GACJ,EAAE;IACD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,iBAwDA"}
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../src/commands/build/build.ts"],"names":[],"mappings":"AASA,wBAAsB,KAAK,CAAC,EAC1B,GAAG,EACH,KAAK,EACL,IAAI,EACJ,GAAG,EACH,KAAK,GACN,EAAE;IACD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,iBA4DA"}
@@ -1,4 +1,4 @@
1
- export { create } from '../../chunk-2HSDVDKZ.js';
1
+ export { create } from '../../chunk-GK64AJRT.js';
2
2
  import '../../chunk-OQQFOUQW.js';
3
3
  //# sourceMappingURL=create.js.map
4
4
  //# sourceMappingURL=create.js.map
@@ -1,4 +1,4 @@
1
- export declare function dev({ port, dir, root, tools, env, inspect, inspectBrk, customArgs, https, }: {
1
+ export declare function dev({ port, dir, root, tools, env, inspect, inspectBrk, customArgs, https, debug, }: {
2
2
  dir?: string;
3
3
  root?: string;
4
4
  port: number | null;
@@ -8,5 +8,6 @@ export declare function dev({ port, dir, root, tools, env, inspect, inspectBrk,
8
8
  inspectBrk?: boolean;
9
9
  customArgs?: string[];
10
10
  https?: boolean;
11
+ debug?: boolean;
11
12
  }): Promise<void>;
12
13
  //# sourceMappingURL=dev.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../../src/commands/dev/dev.ts"],"names":[],"mappings":"AAgSA,wBAAsB,GAAG,CAAC,EACxB,IAAI,EACJ,GAAG,EACH,IAAI,EACJ,KAAK,EACL,GAAG,EACH,OAAO,EACP,UAAU,EACV,UAAU,EACV,KAAK,GACN,EAAE;IACD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,iBA4GA"}
1
+ {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../../src/commands/dev/dev.ts"],"names":[],"mappings":"AAgSA,wBAAsB,GAAG,CAAC,EACxB,IAAI,EACJ,GAAG,EACH,IAAI,EACJ,KAAK,EACL,GAAG,EACH,OAAO,EACP,UAAU,EACV,UAAU,EACV,KAAK,EACL,KAAK,GACN,EAAE;IACD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,iBA4GA"}
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/commands/init/init.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAWxD,OAAO,KAAK,EAAc,WAAW,EAAE,MAAM,SAAS,CAAC;AAMvD,eAAO,MAAM,IAAI,GAAU,4FAOxB;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,EAAE,WAAW,CAAC;IACzB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0BAA0B,CAAC,EAAE,MAAM,CAAC;CACrC;;EAmFA,CAAC"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/commands/init/init.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAExD,OAAO,KAAK,EAAc,WAAW,EAAE,MAAM,SAAS,CAAC;AAIvD,eAAO,MAAM,IAAI,GAAU,4FAOxB;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,EAAE,WAAW,CAAC;IACzB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0BAA0B,CAAC,EAAE,MAAM,CAAC;CACrC;;EA4EA,CAAC"}
@@ -1,11 +1,6 @@
1
1
  export type LLMProvider = 'openai' | 'anthropic' | 'groq' | 'google' | 'cerebras' | 'mistral';
2
2
  export type Components = 'agents' | 'workflows' | 'tools';
3
- export declare const getAISDKPackageVersion: (llmProvider: LLMProvider) => string;
4
- export declare const getAISDKPackage: (llmProvider: LLMProvider) => "@ai-sdk/openai" | "@ai-sdk/anthropic" | "@ai-sdk/groq" | "@ai-sdk/google" | "@ai-sdk/cerebras" | "@ai-sdk/mistral";
5
- export declare const getProviderImportAndModelItem: (llmProvider: LLMProvider) => {
6
- providerImport: string;
7
- modelItem: string;
8
- };
3
+ export declare const getModelIdentifier: (llmProvider: LLMProvider) => "'openai/gpt-4o-mini'" | "'anthropic/claude-3-5-sonnet-20241022'" | "'groq/llama-3.3-70b-versatile'" | "'google/gemini-2.5-pro'" | "'cerebras/llama-3.3-70b'" | "'mistral/mistral-medium-2508'" | undefined;
9
4
  export declare function writeAgentSample(llmProvider: LLMProvider, destPath: string, addExampleTool: boolean): Promise<void>;
10
5
  export declare function writeWorkflowSample(destPath: string): Promise<void>;
11
6
  export declare function writeToolSample(destPath: string): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/commands/init/utils.ts"],"names":[],"mappings":"AAqBA,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,WAAW,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;AAC9F,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,WAAW,GAAG,OAAO,CAAC;AAG1D,eAAO,MAAM,sBAAsB,GAAI,aAAa,WAAW,WAK9D,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,aAAa,WAAW,wHAiBvD,CAAC;AAEF,eAAO,MAAM,6BAA6B,GAAI,aAAa,WAAW;;;CAwBrE,CAAC;AAEF,wBAAsB,gBAAgB,CAAC,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,iBA2CzG;AAED,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,iBAkMzD;AAED,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,iBAGrD;AAED,wBAAsB,4BAA4B,CAChD,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,UAAU,EACrB,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,UAAU,EAAE,sBAY/B;AAED,eAAO,MAAM,mBAAmB,GAAU,SAAS,MAAM,EAAE,WAAW,MAAM,kBAI3E,CAAC;AAEF,eAAO,MAAM,cAAc,GAAU,iDAKlC;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;CACnB,kBAsDA,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAU,SAAS,MAAM,qBAOxD,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAU,YAAY,OAAO,kBAqBhE,CAAC;AAGF,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,SAAW,iBA0BpE;AAED,eAAO,MAAM,SAAS,GAAU,UAAU,WAAW,oBAqBpD,CAAC;AAEF,eAAO,MAAM,WAAW,GAAU,sBAAsB;IAAE,QAAQ,EAAE,WAAW,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,kBAUjG,CAAC;AACF,eAAO,MAAM,eAAe,GAAU,WAAW,MAAM,KAAG,OAAO,CAAC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAA;CAAE,CAe9G,CAAC;AAEF,eAAO,MAAM,eAAe,GAC1B,SAAS,MAAM,EACf,WAAW,UAAU,EACrB,aAAa,WAAW,EACxB,kBAAkB,UAAU,EAAE,kBAS/B,CAAC;AAWF,UAAU,qBAAqB;IAC7B,OAAO,CAAC,EAAE;QACR,UAAU,CAAC,EAAE,OAAO,CAAC;KACtB,CAAC;IACF,IAAI,CAAC,EAAE;QACL,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,CAAC;CACH;AAED,eAAO,MAAM,iBAAiB,GAAU,OAAM,qBAA0B;;;;;EAmIvE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,qBAe3B,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/commands/init/utils.ts"],"names":[],"mappings":"AAqBA,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,WAAW,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;AAC9F,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,WAAW,GAAG,OAAO,CAAC;AAE1D,eAAO,MAAM,kBAAkB,GAAI,aAAa,WAAW,gNAc1D,CAAC;AAEF,wBAAsB,gBAAgB,CAAC,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,iBA0CzG;AAED,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,iBAkMzD;AAED,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,iBAGrD;AAED,wBAAsB,4BAA4B,CAChD,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,UAAU,EACrB,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,UAAU,EAAE,sBAY/B;AAED,eAAO,MAAM,mBAAmB,GAAU,SAAS,MAAM,EAAE,WAAW,MAAM,kBAI3E,CAAC;AAEF,eAAO,MAAM,cAAc,GAAU,iDAKlC;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;CACnB,kBAsDA,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAU,SAAS,MAAM,qBAOxD,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAU,YAAY,OAAO,kBAqBhE,CAAC;AAGF,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,SAAW,iBA0BpE;AAED,eAAO,MAAM,SAAS,GAAU,UAAU,WAAW,oBAqBpD,CAAC;AAEF,eAAO,MAAM,WAAW,GAAU,sBAAsB;IAAE,QAAQ,EAAE,WAAW,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,kBAUjG,CAAC;AACF,eAAO,MAAM,eAAe,GAAU,WAAW,MAAM,KAAG,OAAO,CAAC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAA;CAAE,CAe9G,CAAC;AAEF,eAAO,MAAM,eAAe,GAC1B,SAAS,MAAM,EACf,WAAW,UAAU,EACrB,aAAa,WAAW,EACxB,kBAAkB,UAAU,EAAE,kBAS/B,CAAC;AAWF,UAAU,qBAAqB;IAC7B,OAAO,CAAC,EAAE;QACR,UAAU,CAAC,EAAE,OAAO,CAAC;KACtB,CAAC;IACF,IAAI,CAAC,EAAE;QACL,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,CAAC;CACH;AAED,eAAO,MAAM,iBAAiB,GAAU,OAAM,qBAA0B;;;;;EAmIvE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,qBAe3B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAgB,MAAM,mBAAmB,CAAC;AAYnE,eAAO,MAAM,OAAO,oBAAoB,CAAC;AAEzC,eAAO,MAAM,SAAS,kBAIpB,CAAC;AAMH,eAAO,MAAM,MAAM,EAA0C,UAAU,CAAC;AA8GxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAgB,MAAM,mBAAmB,CAAC;AAYnE,eAAO,MAAM,OAAO,oBAAoB,CAAC;AAEzC,eAAO,MAAM,SAAS,kBAIpB,CAAC;AAMH,eAAO,MAAM,MAAM,EAA0C,UAAU,CAAC;AAgHxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC"}
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  #! /usr/bin/env node
2
- import { create, checkForPkgJson, checkAndInstallCoreDeps, interactivePrompt, init, logger, FileService, DepsService } from './chunk-2HSDVDKZ.js';
3
- export { create } from './chunk-2HSDVDKZ.js';
2
+ import { create, checkForPkgJson, checkAndInstallCoreDeps, interactivePrompt, init, logger, FileService, createLogger, DepsService } from './chunk-GK64AJRT.js';
3
+ export { create } from './chunk-GK64AJRT.js';
4
4
  import { PosthogAnalytics, setAnalytics } from './chunk-OQQFOUQW.js';
5
5
  export { PosthogAnalytics } from './chunk-OQQFOUQW.js';
6
6
  import { Command } from 'commander';
@@ -11,6 +11,7 @@ import path, { join, posix, dirname } from 'path';
11
11
  import { getServerOptions, FileService as FileService$2, getBundlerOptions, getWatcherInputOptions, writeTelemetryConfig, createWatcher } from '@mastra/deployer/build';
12
12
  import { Bundler } from '@mastra/deployer/bundler';
13
13
  import { getDeployer, FileService as FileService$1 } from '@mastra/deployer';
14
+ import { MastraError } from '@mastra/core/error';
14
15
  import { config } from 'dotenv';
15
16
  import stripJsonComments from 'strip-json-comments';
16
17
  import process2 from 'process';
@@ -25,7 +26,7 @@ import { spawn } from 'child_process';
25
26
 
26
27
  // package.json
27
28
  var package_default = {
28
- version: "0.15.1-alpha.1"};
29
+ version: "0.16.0-alpha.1"};
29
30
 
30
31
  // src/commands/scorers/available-scorers.ts
31
32
  var AVAILABLE_SCORERS = [
@@ -562,13 +563,15 @@ async function build({
562
563
  dir: dir2,
563
564
  tools,
564
565
  root,
565
- env
566
+ env,
567
+ debug
566
568
  }) {
567
569
  const rootDir = root || process.cwd();
568
570
  const mastraDir = dir2 ? dir2.startsWith("/") ? dir2 : join(rootDir, dir2) : join(rootDir, "src", "mastra");
569
571
  const outputDirectory = join(rootDir, ".mastra");
572
+ const logger2 = createLogger(debug);
570
573
  if (env) {
571
- logger.warn(`The --env flag is deprecated. To start the build output with a custom env use the mastra start --env <env> command instead.
574
+ logger2.warn(`The --env flag is deprecated. To start the build output with a custom env use the mastra start --env <env> command instead.
572
575
  `);
573
576
  }
574
577
  const normalizedMastraDir = mastraDir.replaceAll("\\", "/");
@@ -585,29 +588,32 @@ async function build({
585
588
  const platformDeployer = await getDeployer(mastraEntryFile, outputDirectory);
586
589
  if (!platformDeployer) {
587
590
  const deployer = new BuildBundler();
588
- deployer.__setLogger(logger);
591
+ deployer.__setLogger(logger2);
589
592
  await deployer.prepare(outputDirectory);
590
593
  await deployer.bundle(mastraEntryFile, outputDirectory, {
591
594
  toolsPaths: discoveredTools,
592
595
  projectRoot: rootDir
593
596
  });
594
- logger.info(`Build successful, you can now deploy the .mastra/output directory to your target platform.`);
595
- logger.info(
597
+ logger2.info(`Build successful, you can now deploy the .mastra/output directory to your target platform.`);
598
+ logger2.info(
596
599
  `To start the server, run: node --import=./.mastra/output/instrumentation.mjs .mastra/output/index.mjs`
597
600
  );
598
601
  return;
599
602
  }
600
- logger.info("Deployer found, preparing deployer build...");
601
- platformDeployer.__setLogger(logger);
603
+ logger2.info("Deployer found, preparing deployer build...");
604
+ platformDeployer.__setLogger(logger2);
602
605
  await platformDeployer.prepare(outputDirectory);
603
606
  await platformDeployer.bundle(mastraEntryFile, outputDirectory, {
604
607
  toolsPaths: discoveredTools,
605
608
  projectRoot: rootDir
606
609
  });
607
- logger.info("You can now deploy the .mastra/output directory to your target platform.");
610
+ logger2.info("You can now deploy the .mastra/output directory to your target platform.");
608
611
  } catch (error) {
609
- if (error instanceof Error) {
610
- logger.error(`Mastra Build failed`, { error });
612
+ if (error instanceof MastraError) {
613
+ const { message, ...details } = error.toJSONDetails();
614
+ logger2.error(`${message}`, details);
615
+ } else if (error instanceof Error) {
616
+ logger2.error(`Mastra Build failed`, { error });
611
617
  }
612
618
  process.exit(1);
613
619
  }
@@ -623,7 +629,8 @@ var buildProject = async (args) => {
623
629
  dir: args?.dir,
624
630
  root: args?.root,
625
631
  tools: args?.tools ? args.tools.split(",") : [],
626
- env: args?.env
632
+ env: args?.env,
633
+ debug: args?.debug || false
627
634
  });
628
635
  },
629
636
  origin: origin2
@@ -1455,7 +1462,8 @@ async function dev({
1455
1462
  inspect,
1456
1463
  inspectBrk,
1457
1464
  customArgs,
1458
- https
1465
+ https,
1466
+ debug
1459
1467
  }) {
1460
1468
  const rootDir = root || process2.cwd();
1461
1469
  const mastraDir = dir2 ? dir2.startsWith("/") ? dir2 : join(process2.cwd(), dir2) : join(process2.cwd(), "src", "mastra");
@@ -1471,7 +1479,7 @@ async function dev({
1471
1479
  const fileService = new FileService$1();
1472
1480
  const entryFile = fileService.getFirstExistingFile([join(mastraDir, "index.ts"), join(mastraDir, "index.js")]);
1473
1481
  const bundler = new DevBundler(env);
1474
- bundler.__setLogger(logger);
1482
+ bundler.__setLogger(createLogger(debug));
1475
1483
  const loadedEnv = await bundler.loadEnvVars();
1476
1484
  for (const [key, value] of loadedEnv.entries()) {
1477
1485
  process2.env[key] = value;
@@ -1555,7 +1563,8 @@ var startDevServer = async (args) => {
1555
1563
  inspect: args?.inspect && !args?.inspectBrk,
1556
1564
  inspectBrk: args?.inspectBrk,
1557
1565
  customArgs: args?.customArgs ? args.customArgs.split(",") : [],
1558
- https: args?.https
1566
+ https: args?.https,
1567
+ debug: args?.debug || false
1559
1568
  }).catch((err) => {
1560
1569
  logger.error(err.message);
1561
1570
  });
@@ -1648,8 +1657,8 @@ program.command("lint").description("Lint your Mastra project").option("-d, --di
1648
1657
  program.command("dev").description("Start mastra server").option("-d, --dir <dir>", "Path to your mastra folder").option("-r, --root <root>", "Path to your root folder").option("-t, --tools <toolsDirs>", "Comma-separated list of paths to tool files to include").option("-p, --port <port>", "deprecated: Port number for the development server (defaults to 4111)").option("-e, --env <env>", "Custom env file to include in the dev server").option("-i, --inspect", "Start the dev server in inspect mode").option("-b, --inspect-brk", "Start the dev server in inspect mode and break at the beginning of the script").option(
1649
1658
  "-c, --custom-args <args>",
1650
1659
  "Comma-separated list of custom arguments to pass to the dev server. IE: --experimental-transform-types"
1651
- ).option("-s, --https", "Enable local HTTPS").action(startDevServer);
1652
- program.command("build").description("Build your Mastra project").option("-d, --dir <path>", "Path to your Mastra Folder").option("-r, --root <path>", "Path to your root folder").option("-t, --tools <toolsDirs>", "Comma-separated list of paths to tool files to include").option("-e, --env <env>", "Custom env file to include in the build").action(buildProject);
1660
+ ).option("-s, --https", "Enable local HTTPS").option("--debug", "Enable debug logs", false).action(startDevServer);
1661
+ program.command("build").description("Build your Mastra project").option("-d, --dir <path>", "Path to your Mastra Folder").option("-r, --root <path>", "Path to your root folder").option("-t, --tools <toolsDirs>", "Comma-separated list of paths to tool files to include").option("-e, --env <env>", "Custom env file to include in the build").option("--debug", "Enable debug logs", false).action(buildProject);
1653
1662
  program.command("deploy").description("Deploy your Mastra project").option("-d, --dir <path>", "Path to directory").action(deployProject);
1654
1663
  program.command("start").description("Start your built Mastra application").option("-d, --dir <path>", "Path to your built Mastra output directory (default: .mastra/output)").option("-e, --env <env>", "Custom env file to include in the start").option("-nt, --no-telemetry", "Disable telemetry on start").action(startProject);
1655
1664
  var scorersCommand = program.command("scorers").description("Manage scorers for evaluating AI outputs");