mastra 0.3.2-alpha.0 → 0.4.0-alpha.2
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.
- package/dist/{chunk-7BUCNWW4.js → chunk-PRZGXNSB.js} +130 -36
- package/dist/commands/create/create.d.ts +2 -1
- package/dist/commands/create/create.js +1 -1
- package/dist/index.js +20 -5
- package/package.json +3 -3
- package/src/playground/dist/assets/index-CPqlzcnY.js +614 -0
- package/src/playground/dist/assets/{index-CpjmB7C9.js → index-CQrbNHBs.js} +1 -1
- package/src/playground/dist/assets/style-DDXjYXAp.css +1 -0
- package/src/playground/dist/index.html +2 -2
- package/src/playground/dist/assets/abap-DsBKuouk.js +0 -1
- package/src/playground/dist/assets/actionscript-3-D_z4Izcz.js +0 -1
- package/src/playground/dist/assets/ada-727ZlQH0.js +0 -1
- package/src/playground/dist/assets/andromeeda-C3khCPGq.js +0 -1
- package/src/playground/dist/assets/angular-html-LfdN0zeE.js +0 -1
- package/src/playground/dist/assets/angular-ts-CKsD7JZE.js +0 -1
- package/src/playground/dist/assets/apache-Dn00JSTd.js +0 -1
- package/src/playground/dist/assets/apex-COJ4H7py.js +0 -1
- package/src/playground/dist/assets/apl-BBq3IX1j.js +0 -1
- package/src/playground/dist/assets/applescript-Bu5BbsvL.js +0 -1
- package/src/playground/dist/assets/ara-7O62HKoU.js +0 -1
- package/src/playground/dist/assets/asciidoc-BPT9niGB.js +0 -1
- package/src/playground/dist/assets/asm-Dhn9LcZ4.js +0 -1
- package/src/playground/dist/assets/astro-CqkE3fuf.js +0 -1
- package/src/playground/dist/assets/aurora-x-D-2ljcwZ.js +0 -1
- package/src/playground/dist/assets/awk-eg146-Ew.js +0 -1
- package/src/playground/dist/assets/ayu-dark-Cv9koXgw.js +0 -1
- package/src/playground/dist/assets/ballerina-Du268qiB.js +0 -1
- package/src/playground/dist/assets/bat-fje9CFhw.js +0 -1
- package/src/playground/dist/assets/beancount-BwXTMy5W.js +0 -1
- package/src/playground/dist/assets/berry-3xVqZejG.js +0 -1
- package/src/playground/dist/assets/bibtex-xW4inM5L.js +0 -1
- package/src/playground/dist/assets/bicep-DHo0CJ0O.js +0 -1
- package/src/playground/dist/assets/blade-a8OxSdnT.js +0 -1
- package/src/playground/dist/assets/bsl-Dgyn0ogV.js +0 -1
- package/src/playground/dist/assets/c-C3t2pwGQ.js +0 -1
- package/src/playground/dist/assets/cadence-DNquZEk8.js +0 -1
- package/src/playground/dist/assets/cairo--RitsXJZ.js +0 -1
- package/src/playground/dist/assets/catppuccin-frappe-CD_QflpE.js +0 -1
- package/src/playground/dist/assets/catppuccin-latte-DRW-0cLl.js +0 -1
- package/src/playground/dist/assets/catppuccin-macchiato-C-_shW-Y.js +0 -1
- package/src/playground/dist/assets/catppuccin-mocha-LGGdnPYs.js +0 -1
- package/src/playground/dist/assets/clarity-BHOwM8T6.js +0 -1
- package/src/playground/dist/assets/clojure-DxSadP1t.js +0 -1
- package/src/playground/dist/assets/cmake-DbXoA79R.js +0 -1
- package/src/playground/dist/assets/cobol-PTqiYgYu.js +0 -1
- package/src/playground/dist/assets/codeowners-Bp6g37R7.js +0 -1
- package/src/playground/dist/assets/codeql-sacFqUAJ.js +0 -1
- package/src/playground/dist/assets/coffee-dyiR41kL.js +0 -1
- package/src/playground/dist/assets/common-lisp-C7gG9l05.js +0 -1
- package/src/playground/dist/assets/coq-Dsg_Bt_b.js +0 -1
- package/src/playground/dist/assets/cpp-BksuvNSY.js +0 -1
- package/src/playground/dist/assets/crystal-DtDmRg-F.js +0 -1
- package/src/playground/dist/assets/csharp-D9R-vmeu.js +0 -1
- package/src/playground/dist/assets/css-BPhBrDlE.js +0 -1
- package/src/playground/dist/assets/csv-B0qRVHPH.js +0 -1
- package/src/playground/dist/assets/cue-DtFQj3wx.js +0 -1
- package/src/playground/dist/assets/cypher-m2LEI-9-.js +0 -1
- package/src/playground/dist/assets/d-BoXegm-a.js +0 -1
- package/src/playground/dist/assets/dark-plus-C3mMm8J8.js +0 -1
- package/src/playground/dist/assets/dart-B9wLZaAG.js +0 -1
- package/src/playground/dist/assets/dax-ClGRhx96.js +0 -1
- package/src/playground/dist/assets/desktop-DEIpsLCJ.js +0 -1
- package/src/playground/dist/assets/diff-BgYniUM_.js +0 -1
- package/src/playground/dist/assets/docker-COcR7UxN.js +0 -1
- package/src/playground/dist/assets/dotenv-BjQB5zDj.js +0 -1
- package/src/playground/dist/assets/dracula-BzJJZx-M.js +0 -1
- package/src/playground/dist/assets/dracula-soft-BXkSAIEj.js +0 -1
- package/src/playground/dist/assets/dream-maker-C-nORZOA.js +0 -1
- package/src/playground/dist/assets/edge-D5gP-w-T.js +0 -1
- package/src/playground/dist/assets/elixir-CLiX3zqd.js +0 -1
- package/src/playground/dist/assets/elm-CmHSxxaM.js +0 -1
- package/src/playground/dist/assets/emacs-lisp-BX77sIaO.js +0 -1
- package/src/playground/dist/assets/erb-BYTLMnw6.js +0 -1
- package/src/playground/dist/assets/erlang-B-DoSBHF.js +0 -1
- package/src/playground/dist/assets/everforest-dark-BgDCqdQA.js +0 -1
- package/src/playground/dist/assets/everforest-light-C8M2exoo.js +0 -1
- package/src/playground/dist/assets/fennel-bCA53EVm.js +0 -1
- package/src/playground/dist/assets/fish-w-ucz2PV.js +0 -1
- package/src/playground/dist/assets/fluent-Dayu4EKP.js +0 -1
- package/src/playground/dist/assets/fortran-fixed-form-TqA4NnZg.js +0 -1
- package/src/playground/dist/assets/fortran-free-form-DKXYxT9g.js +0 -1
- package/src/playground/dist/assets/fsharp-XplgxFYe.js +0 -1
- package/src/playground/dist/assets/gdresource-BHYsBjWJ.js +0 -1
- package/src/playground/dist/assets/gdscript-DfxzS6Rs.js +0 -1
- package/src/playground/dist/assets/gdshader-SKMF96pI.js +0 -1
- package/src/playground/dist/assets/genie-ajMbGru0.js +0 -1
- package/src/playground/dist/assets/gherkin--30QC5Em.js +0 -1
- package/src/playground/dist/assets/git-commit-i4q6IMui.js +0 -1
- package/src/playground/dist/assets/git-rebase-B-v9cOL2.js +0 -1
- package/src/playground/dist/assets/github-dark-DHJKELXO.js +0 -1
- package/src/playground/dist/assets/github-dark-default-Cuk6v7N8.js +0 -1
- package/src/playground/dist/assets/github-dark-dimmed-DH5Ifo-i.js +0 -1
- package/src/playground/dist/assets/github-dark-high-contrast-E3gJ1_iC.js +0 -1
- package/src/playground/dist/assets/github-light-DAi9KRSo.js +0 -1
- package/src/playground/dist/assets/github-light-default-D7oLnXFd.js +0 -1
- package/src/playground/dist/assets/github-light-high-contrast-BfjtVDDH.js +0 -1
- package/src/playground/dist/assets/gleam-B430Bg39.js +0 -1
- package/src/playground/dist/assets/glimmer-js-D-cwc0-E.js +0 -1
- package/src/playground/dist/assets/glimmer-ts-pgjy16dm.js +0 -1
- package/src/playground/dist/assets/glsl-DBO2IWDn.js +0 -1
- package/src/playground/dist/assets/gnuplot-CM8KxXT1.js +0 -1
- package/src/playground/dist/assets/go-B1SYOhNW.js +0 -1
- package/src/playground/dist/assets/graphql-cDcHW_If.js +0 -1
- package/src/playground/dist/assets/groovy-DkBy-JyN.js +0 -1
- package/src/playground/dist/assets/hack-D1yCygmZ.js +0 -1
- package/src/playground/dist/assets/haml-B2EZWmdv.js +0 -1
- package/src/playground/dist/assets/handlebars-BQGss363.js +0 -1
- package/src/playground/dist/assets/haskell-BILxekzW.js +0 -1
- package/src/playground/dist/assets/haxe-C5wWYbrZ.js +0 -1
- package/src/playground/dist/assets/hcl-HzYwdGDm.js +0 -1
- package/src/playground/dist/assets/hjson-T-Tgc4AT.js +0 -1
- package/src/playground/dist/assets/hlsl-ifBTmRxC.js +0 -1
- package/src/playground/dist/assets/houston-DnULxvSX.js +0 -1
- package/src/playground/dist/assets/html-C2L_23MC.js +0 -1
- package/src/playground/dist/assets/html-derivative-CSfWNPLT.js +0 -1
- package/src/playground/dist/assets/http-FRrOvY1W.js +0 -1
- package/src/playground/dist/assets/hxml-TIA70rKU.js +0 -1
- package/src/playground/dist/assets/hy-BMj5Y0dO.js +0 -1
- package/src/playground/dist/assets/imba-bv_oIlVt.js +0 -1
- package/src/playground/dist/assets/index-DicrpEkI.js +0 -612
- package/src/playground/dist/assets/index-wP3CD4jx.js +0 -13
- package/src/playground/dist/assets/ini-BjABl1g7.js +0 -1
- package/src/playground/dist/assets/java-xI-RfyKK.js +0 -1
- package/src/playground/dist/assets/javascript-ySlJ1b_l.js +0 -1
- package/src/playground/dist/assets/jinja-DGy0s7-h.js +0 -1
- package/src/playground/dist/assets/jison-BqZprYcd.js +0 -1
- package/src/playground/dist/assets/json-BQoSv7ci.js +0 -1
- package/src/playground/dist/assets/json5-w8dY5SsB.js +0 -1
- package/src/playground/dist/assets/jsonc-TU54ms6u.js +0 -1
- package/src/playground/dist/assets/jsonl-DREVFZK8.js +0 -1
- package/src/playground/dist/assets/jsonnet-BfivnA6A.js +0 -1
- package/src/playground/dist/assets/jssm-P4WzXJd0.js +0 -1
- package/src/playground/dist/assets/jsx-BAng5TT0.js +0 -1
- package/src/playground/dist/assets/julia-BBuGR-5E.js +0 -1
- package/src/playground/dist/assets/kanagawa-dragon-CkXjmgJE.js +0 -1
- package/src/playground/dist/assets/kanagawa-lotus-CfQXZHmo.js +0 -1
- package/src/playground/dist/assets/kanagawa-wave-DWedfzmr.js +0 -1
- package/src/playground/dist/assets/kotlin-B5lbUyaz.js +0 -1
- package/src/playground/dist/assets/kusto-mebxcVVE.js +0 -1
- package/src/playground/dist/assets/laserwave-DUszq2jm.js +0 -1
- package/src/playground/dist/assets/latex-C-cWTeAZ.js +0 -1
- package/src/playground/dist/assets/lean-XBlWyCtg.js +0 -1
- package/src/playground/dist/assets/less-BfCpw3nA.js +0 -1
- package/src/playground/dist/assets/light-plus-B7mTdjB0.js +0 -1
- package/src/playground/dist/assets/liquid-D3W5UaiH.js +0 -1
- package/src/playground/dist/assets/log-Cc5clBb7.js +0 -1
- package/src/playground/dist/assets/logo-IuBKFhSY.js +0 -1
- package/src/playground/dist/assets/lua-CvWAzNxB.js +0 -1
- package/src/playground/dist/assets/luau-Du5NY7AG.js +0 -1
- package/src/playground/dist/assets/make-Bvotw-X0.js +0 -1
- package/src/playground/dist/assets/markdown-UIAJJxZW.js +0 -1
- package/src/playground/dist/assets/marko-z0MBrx5-.js +0 -1
- package/src/playground/dist/assets/material-theme-D5KoaKCx.js +0 -1
- package/src/playground/dist/assets/material-theme-darker-BfHTSMKl.js +0 -1
- package/src/playground/dist/assets/material-theme-lighter-B0m2ddpp.js +0 -1
- package/src/playground/dist/assets/material-theme-ocean-CyktbL80.js +0 -1
- package/src/playground/dist/assets/material-theme-palenight-Csfq5Kiy.js +0 -1
- package/src/playground/dist/assets/matlab-D9-PGadD.js +0 -1
- package/src/playground/dist/assets/mdc-DB_EDNY_.js +0 -1
- package/src/playground/dist/assets/mdx-sdHcTMYB.js +0 -1
- package/src/playground/dist/assets/mermaid-Ci6OQyBP.js +0 -1
- package/src/playground/dist/assets/min-dark-CafNBF8u.js +0 -1
- package/src/playground/dist/assets/min-light-CTRr51gU.js +0 -1
- package/src/playground/dist/assets/mipsasm-BC5c_5Pe.js +0 -1
- package/src/playground/dist/assets/mojo-Tz6hzZYG.js +0 -1
- package/src/playground/dist/assets/monokai-D4h5O-jR.js +0 -1
- package/src/playground/dist/assets/move-DB_GagMm.js +0 -1
- package/src/playground/dist/assets/narrat-DLbgOhZU.js +0 -1
- package/src/playground/dist/assets/nextflow-B0XVJmRM.js +0 -1
- package/src/playground/dist/assets/nginx-D_VnBJ67.js +0 -1
- package/src/playground/dist/assets/night-owl-C39BiMTA.js +0 -1
- package/src/playground/dist/assets/nim-ZlGxZxc3.js +0 -1
- package/src/playground/dist/assets/nix-shcSOmrb.js +0 -1
- package/src/playground/dist/assets/nord-Ddv68eIx.js +0 -1
- package/src/playground/dist/assets/nushell-D4Tzg5kh.js +0 -1
- package/src/playground/dist/assets/objective-c-Deuh7S70.js +0 -1
- package/src/playground/dist/assets/objective-cpp-BUEGK8hf.js +0 -1
- package/src/playground/dist/assets/ocaml-BNioltXt.js +0 -1
- package/src/playground/dist/assets/one-dark-pro-GBQ2dnAY.js +0 -1
- package/src/playground/dist/assets/one-light-PoHY5YXO.js +0 -1
- package/src/playground/dist/assets/pascal-JqZropPD.js +0 -1
- package/src/playground/dist/assets/perl-CHQXSrWU.js +0 -1
- package/src/playground/dist/assets/php-B5ebYQev.js +0 -1
- package/src/playground/dist/assets/plastic-3e1v2bzS.js +0 -1
- package/src/playground/dist/assets/plsql-LKU2TuZ1.js +0 -1
- package/src/playground/dist/assets/po-BFLt1xDp.js +0 -1
- package/src/playground/dist/assets/poimandres-CS3Unz2-.js +0 -1
- package/src/playground/dist/assets/polar-DKykz6zU.js +0 -1
- package/src/playground/dist/assets/postcss-B3ZDOciz.js +0 -1
- package/src/playground/dist/assets/powerquery-CSHBycmS.js +0 -1
- package/src/playground/dist/assets/powershell-BIEUsx6d.js +0 -1
- package/src/playground/dist/assets/prisma-B48N-Iqd.js +0 -1
- package/src/playground/dist/assets/prolog-BY-TUvya.js +0 -1
- package/src/playground/dist/assets/proto-zocC4JxJ.js +0 -1
- package/src/playground/dist/assets/pug-CM9l7STV.js +0 -1
- package/src/playground/dist/assets/puppet-Cza_XSSt.js +0 -1
- package/src/playground/dist/assets/purescript-Bg-kzb6g.js +0 -1
- package/src/playground/dist/assets/python-DhUJRlN_.js +0 -1
- package/src/playground/dist/assets/qml-D8XfuvdV.js +0 -1
- package/src/playground/dist/assets/qmldir-C8lEn-DE.js +0 -1
- package/src/playground/dist/assets/qss-DhMKtDLN.js +0 -1
- package/src/playground/dist/assets/r-CwjWoCRV.js +0 -1
- package/src/playground/dist/assets/racket-CzouJOBO.js +0 -1
- package/src/playground/dist/assets/raku-B1bQXN8T.js +0 -1
- package/src/playground/dist/assets/razor-CNLDkMZG.js +0 -1
- package/src/playground/dist/assets/red-bN70gL4F.js +0 -1
- package/src/playground/dist/assets/reg-5LuOXUq_.js +0 -1
- package/src/playground/dist/assets/regexp-DWJ3fJO_.js +0 -1
- package/src/playground/dist/assets/rel-DJlmqQ1C.js +0 -1
- package/src/playground/dist/assets/riscv-QhoSD0DR.js +0 -1
- package/src/playground/dist/assets/rose-pine-CmCqftbK.js +0 -1
- package/src/playground/dist/assets/rose-pine-dawn-Ds-gbosJ.js +0 -1
- package/src/playground/dist/assets/rose-pine-moon-CjDtw9vr.js +0 -1
- package/src/playground/dist/assets/rst-4NLicBqY.js +0 -1
- package/src/playground/dist/assets/ruby-DeZ3UC14.js +0 -1
- package/src/playground/dist/assets/rust-Be6lgOlo.js +0 -1
- package/src/playground/dist/assets/sas-BmTFh92c.js +0 -1
- package/src/playground/dist/assets/sass-BJ4Li9vH.js +0 -1
- package/src/playground/dist/assets/scala-DQVVAn-B.js +0 -1
- package/src/playground/dist/assets/scheme-BJGe-b2p.js +0 -1
- package/src/playground/dist/assets/scss-C31hgJw-.js +0 -1
- package/src/playground/dist/assets/sdbl-BLhTXw86.js +0 -1
- package/src/playground/dist/assets/shaderlab-B7qAK45m.js +0 -1
- package/src/playground/dist/assets/shellscript-atvbtKCR.js +0 -1
- package/src/playground/dist/assets/shellsession-C_rIy8kc.js +0 -1
- package/src/playground/dist/assets/slack-dark-BthQWCQV.js +0 -1
- package/src/playground/dist/assets/slack-ochin-DqwNpetd.js +0 -1
- package/src/playground/dist/assets/smalltalk-DkLiglaE.js +0 -1
- package/src/playground/dist/assets/snazzy-light-Bw305WKR.js +0 -1
- package/src/playground/dist/assets/solarized-dark-DXbdFlpD.js +0 -1
- package/src/playground/dist/assets/solarized-light-L9t79GZl.js +0 -1
- package/src/playground/dist/assets/solidity-C1w2a3ep.js +0 -1
- package/src/playground/dist/assets/soy-C-lX7w71.js +0 -1
- package/src/playground/dist/assets/sparql-bYkjHRlG.js +0 -1
- package/src/playground/dist/assets/splunk-Cf8iN4DR.js +0 -1
- package/src/playground/dist/assets/sql-COK4E0Yg.js +0 -1
- package/src/playground/dist/assets/ssh-config-BknIz3MU.js +0 -1
- package/src/playground/dist/assets/stata-DorPZHa4.js +0 -1
- package/src/playground/dist/assets/style-DDEGD7OC.css +0 -1
- package/src/playground/dist/assets/stylus-BeQkCIfX.js +0 -1
- package/src/playground/dist/assets/svelte-MSaWC3Je.js +0 -1
- package/src/playground/dist/assets/swift-BSxZ-RaX.js +0 -1
- package/src/playground/dist/assets/synthwave-84-CbfX1IO0.js +0 -1
- package/src/playground/dist/assets/system-verilog-C7L56vO4.js +0 -1
- package/src/playground/dist/assets/systemd-CUnW07Te.js +0 -1
- package/src/playground/dist/assets/talonscript-C1XDQQGZ.js +0 -1
- package/src/playground/dist/assets/tasl-CQjiPCtT.js +0 -1
- package/src/playground/dist/assets/tcl-DQ1-QYvQ.js +0 -1
- package/src/playground/dist/assets/templ-dwX3ZSMB.js +0 -1
- package/src/playground/dist/assets/terraform-BbSNqyBO.js +0 -1
- package/src/playground/dist/assets/tex-rYs2v40G.js +0 -1
- package/src/playground/dist/assets/tokyo-night-DBQeEorK.js +0 -1
- package/src/playground/dist/assets/toml-CB2ApiWb.js +0 -1
- package/src/playground/dist/assets/ts-tags-CipyTH0X.js +0 -1
- package/src/playground/dist/assets/tsv-B_m7g4N7.js +0 -1
- package/src/playground/dist/assets/tsx-B6W0miNI.js +0 -1
- package/src/playground/dist/assets/turtle-BMR_PYu6.js +0 -1
- package/src/playground/dist/assets/twig-NC5TFiHP.js +0 -1
- package/src/playground/dist/assets/typescript-Dj6nwHGl.js +0 -1
- package/src/playground/dist/assets/typespec-BpWG_bgh.js +0 -1
- package/src/playground/dist/assets/typst-BVUVsWT6.js +0 -1
- package/src/playground/dist/assets/v-CAQ2eGtk.js +0 -1
- package/src/playground/dist/assets/vala-BFOHcciG.js +0 -1
- package/src/playground/dist/assets/vb-CdO5JTpU.js +0 -1
- package/src/playground/dist/assets/verilog-CJaU5se_.js +0 -1
- package/src/playground/dist/assets/vesper-BEBZ7ncR.js +0 -1
- package/src/playground/dist/assets/vhdl-DYoNaHQp.js +0 -1
- package/src/playground/dist/assets/viml-m4uW47V2.js +0 -1
- package/src/playground/dist/assets/vitesse-black-Bkuqu6BP.js +0 -1
- package/src/playground/dist/assets/vitesse-dark-D0r3Knsf.js +0 -1
- package/src/playground/dist/assets/vitesse-light-CVO1_9PV.js +0 -1
- package/src/playground/dist/assets/vue-BuYVFjOK.js +0 -1
- package/src/playground/dist/assets/vue-html-xdeiXROB.js +0 -1
- package/src/playground/dist/assets/vyper-nyqBNV6O.js +0 -1
- package/src/playground/dist/assets/wasm-C6j12Q_x.js +0 -1
- package/src/playground/dist/assets/wasm-CG6Dc4jp.js +0 -1
- package/src/playground/dist/assets/wenyan-7A4Fjokl.js +0 -1
- package/src/playground/dist/assets/wgsl-CB0Krxn9.js +0 -1
- package/src/playground/dist/assets/wikitext-DCE3LsBG.js +0 -1
- package/src/playground/dist/assets/wolfram-C3FkfJm5.js +0 -1
- package/src/playground/dist/assets/xml-e3z08dGr.js +0 -1
- package/src/playground/dist/assets/xsl-Dd0NUgwM.js +0 -1
- package/src/playground/dist/assets/yaml-CVw76BM1.js +0 -1
- package/src/playground/dist/assets/zenscript-HnGAYVZD.js +0 -1
- package/src/playground/dist/assets/zig-BVz_zdnA.js +0 -1
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as p2 from '@clack/prompts';
|
|
2
2
|
import color2 from 'picocolors';
|
|
3
3
|
import child_process from 'node:child_process';
|
|
4
4
|
import util from 'node:util';
|
|
5
5
|
import * as fs3 from 'fs';
|
|
6
|
-
import fs3__default from 'fs';
|
|
6
|
+
import fs3__default, { existsSync } from 'fs';
|
|
7
7
|
import fs4 from 'fs/promises';
|
|
8
8
|
import path, { dirname } from 'path';
|
|
9
9
|
import { fileURLToPath } from 'url';
|
|
10
10
|
import { execa } from 'execa';
|
|
11
|
-
import fsExtra3 from 'fs-extra/esm';
|
|
11
|
+
import fsExtra3, { readJSON, ensureFile, writeJSON } from 'fs-extra/esm';
|
|
12
|
+
import os from 'os';
|
|
12
13
|
import prettier from 'prettier';
|
|
13
14
|
import yoctoSpinner from 'yocto-spinner';
|
|
14
15
|
import { createLogger } from '@mastra/core/logger';
|
|
@@ -144,6 +145,62 @@ function getPackageManagerInstallCommand(pm) {
|
|
|
144
145
|
return "install";
|
|
145
146
|
}
|
|
146
147
|
}
|
|
148
|
+
function installMastraDocsMCPServer({
|
|
149
|
+
editor,
|
|
150
|
+
directory
|
|
151
|
+
}) {
|
|
152
|
+
if (!editor) return;
|
|
153
|
+
if (editor === `cursor`) return installCursorMCP(directory);
|
|
154
|
+
if (editor === `windsurf`) return installWindsurfMCP();
|
|
155
|
+
}
|
|
156
|
+
var args = ["-y", "@mastra/mcp-docs-server@latest"];
|
|
157
|
+
var mcpConfig = {
|
|
158
|
+
mcpServers: {
|
|
159
|
+
mastra: process.platform === `win32` ? {
|
|
160
|
+
command: "cmd",
|
|
161
|
+
args: ["/c", "npx", ...args]
|
|
162
|
+
} : {
|
|
163
|
+
command: "npx",
|
|
164
|
+
args
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
};
|
|
168
|
+
function makeConfig(original) {
|
|
169
|
+
return {
|
|
170
|
+
...original,
|
|
171
|
+
mcpServers: {
|
|
172
|
+
...original?.mcpServers || {},
|
|
173
|
+
...mcpConfig.mcpServers
|
|
174
|
+
}
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
async function writeMergedConfig(configPath) {
|
|
178
|
+
const configExists = existsSync(configPath);
|
|
179
|
+
const config = makeConfig(configExists ? await readJSON(configPath) : {});
|
|
180
|
+
await ensureFile(configPath);
|
|
181
|
+
await writeJSON(configPath, config, {
|
|
182
|
+
spaces: 2
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
async function installCursorMCP(directory) {
|
|
186
|
+
const configPath = path.join(directory, ".cursor", "mcp.json");
|
|
187
|
+
await writeMergedConfig(configPath);
|
|
188
|
+
}
|
|
189
|
+
async function installWindsurfMCP() {
|
|
190
|
+
const configPath = path.join(os.homedir(), ".codeium", "windsurf", "mcp_config.json");
|
|
191
|
+
const confirm2 = await p2.select({
|
|
192
|
+
message: `Windsurf only supports a global MCP config (at ${configPath}) is it ok to add/update that global config?
|
|
193
|
+
This means the Mastra docs MCP server will be available in all your Windsurf projects.`,
|
|
194
|
+
options: [
|
|
195
|
+
{ value: "skip", label: "No, skip for now" },
|
|
196
|
+
{ value: "yes", label: "Yes, I understand" }
|
|
197
|
+
]
|
|
198
|
+
});
|
|
199
|
+
if (confirm2 !== `yes`) {
|
|
200
|
+
return void 0;
|
|
201
|
+
}
|
|
202
|
+
await writeMergedConfig(configPath);
|
|
203
|
+
}
|
|
147
204
|
|
|
148
205
|
// src/services/service.env.ts
|
|
149
206
|
var EnvService = class {
|
|
@@ -273,6 +330,8 @@ var getAISDKPackage = (llmProvider) => {
|
|
|
273
330
|
return "@ai-sdk/groq";
|
|
274
331
|
case "google":
|
|
275
332
|
return "@ai-sdk/google";
|
|
333
|
+
case "cerebras":
|
|
334
|
+
return "@ai-sdk/cerebras";
|
|
276
335
|
default:
|
|
277
336
|
return "@ai-sdk/openai";
|
|
278
337
|
}
|
|
@@ -288,10 +347,13 @@ var getProviderImportAndModelItem = (llmProvider) => {
|
|
|
288
347
|
modelItem = `anthropic('claude-3-5-sonnet-20241022')`;
|
|
289
348
|
} else if (llmProvider === "groq") {
|
|
290
349
|
providerImport = `import { groq } from '${getAISDKPackage(llmProvider)}';`;
|
|
291
|
-
modelItem = `groq('llama-3.3-70b-versatile`;
|
|
350
|
+
modelItem = `groq('llama-3.3-70b-versatile')`;
|
|
292
351
|
} else if (llmProvider === "google") {
|
|
293
352
|
providerImport = `import { google } from '${getAISDKPackage(llmProvider)}';`;
|
|
294
353
|
modelItem = `google('gemini-1.5-pro-latest')`;
|
|
354
|
+
} else if (llmProvider === "cerebras") {
|
|
355
|
+
providerImport = `import { cerebras } from '${getAISDKPackage(llmProvider)}';`;
|
|
356
|
+
modelItem = `cerebras('llama-3.3-70b')`;
|
|
295
357
|
}
|
|
296
358
|
return { providerImport, modelItem };
|
|
297
359
|
};
|
|
@@ -597,16 +659,16 @@ var checkAndInstallCoreDeps = async () => {
|
|
|
597
659
|
var spinner = yoctoSpinner({ text: "Installing Mastra core dependencies\n" });
|
|
598
660
|
async function installCoreDeps() {
|
|
599
661
|
try {
|
|
600
|
-
const confirm2 = await
|
|
662
|
+
const confirm2 = await p2.confirm({
|
|
601
663
|
message: "You do not have the @mastra/core package installed. Would you like to install it?",
|
|
602
664
|
initialValue: false
|
|
603
665
|
});
|
|
604
|
-
if (
|
|
605
|
-
|
|
666
|
+
if (p2.isCancel(confirm2)) {
|
|
667
|
+
p2.cancel("Installation Cancelled");
|
|
606
668
|
process.exit(0);
|
|
607
669
|
}
|
|
608
670
|
if (!confirm2) {
|
|
609
|
-
|
|
671
|
+
p2.cancel("Installation Cancelled");
|
|
610
672
|
process.exit(0);
|
|
611
673
|
}
|
|
612
674
|
spinner.start();
|
|
@@ -629,6 +691,9 @@ var getAPIKey = async (provider) => {
|
|
|
629
691
|
case "google":
|
|
630
692
|
key = "GOOGLE_GENERATIVE_AI_API_KEY";
|
|
631
693
|
return key;
|
|
694
|
+
case "cerebras":
|
|
695
|
+
key = "CEREBRAS_API_KEY";
|
|
696
|
+
return key;
|
|
632
697
|
default:
|
|
633
698
|
return key;
|
|
634
699
|
}
|
|
@@ -660,15 +725,15 @@ var writeCodeSample = async (dirPath, component, llmProvider, importComponents)
|
|
|
660
725
|
}
|
|
661
726
|
};
|
|
662
727
|
var interactivePrompt = async () => {
|
|
663
|
-
|
|
664
|
-
const mastraProject = await
|
|
728
|
+
p2.intro(color2.inverse("Mastra Init"));
|
|
729
|
+
const mastraProject = await p2.group(
|
|
665
730
|
{
|
|
666
|
-
directory: () =>
|
|
731
|
+
directory: () => p2.text({
|
|
667
732
|
message: "Where should we create the Mastra files? (default: src/)",
|
|
668
733
|
placeholder: "src/",
|
|
669
734
|
defaultValue: "src/"
|
|
670
735
|
}),
|
|
671
|
-
components: () =>
|
|
736
|
+
components: () => p2.multiselect({
|
|
672
737
|
message: "Choose components to install:",
|
|
673
738
|
options: [
|
|
674
739
|
{ value: "agents", label: "Agents", hint: "recommended" },
|
|
@@ -678,21 +743,22 @@ var interactivePrompt = async () => {
|
|
|
678
743
|
}
|
|
679
744
|
]
|
|
680
745
|
}),
|
|
681
|
-
shouldAddTools: () =>
|
|
746
|
+
shouldAddTools: () => p2.confirm({
|
|
682
747
|
message: "Add tools?",
|
|
683
748
|
initialValue: false
|
|
684
749
|
}),
|
|
685
|
-
llmProvider: () =>
|
|
750
|
+
llmProvider: () => p2.select({
|
|
686
751
|
message: "Select default provider:",
|
|
687
752
|
options: [
|
|
688
753
|
{ value: "openai", label: "OpenAI", hint: "recommended" },
|
|
689
754
|
{ value: "anthropic", label: "Anthropic" },
|
|
690
755
|
{ value: "groq", label: "Groq" },
|
|
691
|
-
{ value: "google", label: "Google" }
|
|
756
|
+
{ value: "google", label: "Google" },
|
|
757
|
+
{ value: "cerebras", label: "Cerebras" }
|
|
692
758
|
]
|
|
693
759
|
}),
|
|
694
760
|
llmApiKey: async ({ results: { llmProvider } }) => {
|
|
695
|
-
const keyChoice = await
|
|
761
|
+
const keyChoice = await p2.select({
|
|
696
762
|
message: `Enter your ${llmProvider} API key?`,
|
|
697
763
|
options: [
|
|
698
764
|
{ value: "skip", label: "Skip for now", hint: "default" },
|
|
@@ -701,21 +767,40 @@ var interactivePrompt = async () => {
|
|
|
701
767
|
initialValue: "skip"
|
|
702
768
|
});
|
|
703
769
|
if (keyChoice === "enter") {
|
|
704
|
-
return
|
|
770
|
+
return p2.text({
|
|
705
771
|
message: "Enter your API key:",
|
|
706
772
|
placeholder: "sk-..."
|
|
707
773
|
});
|
|
708
774
|
}
|
|
709
775
|
return void 0;
|
|
710
776
|
},
|
|
711
|
-
addExample: () =>
|
|
777
|
+
addExample: () => p2.confirm({
|
|
712
778
|
message: "Add example",
|
|
713
779
|
initialValue: false
|
|
714
|
-
})
|
|
780
|
+
}),
|
|
781
|
+
configureEditorWithDocsMCP: async () => {
|
|
782
|
+
const editor = await p2.select({
|
|
783
|
+
message: `Make your AI IDE into a Mastra expert? (installs Mastra docs MCP server)`,
|
|
784
|
+
options: [
|
|
785
|
+
{ value: "skip", label: "Skip for now", hint: "default" },
|
|
786
|
+
{ value: "cursor", label: "Cursor" },
|
|
787
|
+
{ value: "windsurf", label: "Windsurf" }
|
|
788
|
+
]
|
|
789
|
+
});
|
|
790
|
+
if (editor === `skip`) return void 0;
|
|
791
|
+
if (editor === `cursor`) {
|
|
792
|
+
p2.log.message(
|
|
793
|
+
`
|
|
794
|
+
Note: you will need to go into Cursor Settings -> MCP Settings and manually enable the installed Mastra MCP server.
|
|
795
|
+
`
|
|
796
|
+
);
|
|
797
|
+
}
|
|
798
|
+
return editor;
|
|
799
|
+
}
|
|
715
800
|
},
|
|
716
801
|
{
|
|
717
802
|
onCancel: () => {
|
|
718
|
-
|
|
803
|
+
p2.cancel("Operation cancelled.");
|
|
719
804
|
process.exit(0);
|
|
720
805
|
}
|
|
721
806
|
}
|
|
@@ -742,14 +827,15 @@ var checkPkgJson = async () => {
|
|
|
742
827
|
};
|
|
743
828
|
|
|
744
829
|
// src/commands/init/init.ts
|
|
745
|
-
var s =
|
|
830
|
+
var s = p2.spinner();
|
|
746
831
|
var exec2 = util.promisify(child_process.exec);
|
|
747
832
|
var init = async ({
|
|
748
833
|
directory,
|
|
749
834
|
addExample = false,
|
|
750
835
|
components,
|
|
751
836
|
llmProvider = "openai",
|
|
752
|
-
llmApiKey
|
|
837
|
+
llmApiKey,
|
|
838
|
+
configureEditorWithDocsMCP
|
|
753
839
|
}) => {
|
|
754
840
|
s.start("Initializing Mastra");
|
|
755
841
|
try {
|
|
@@ -782,16 +868,22 @@ var init = async ({
|
|
|
782
868
|
const pm = depsService.packageManager;
|
|
783
869
|
const installCommand = getPackageManagerInstallCommand(pm);
|
|
784
870
|
await exec2(`${pm} ${installCommand} ${aiSdkPackage}`);
|
|
871
|
+
if (configureEditorWithDocsMCP) {
|
|
872
|
+
await installMastraDocsMCPServer({
|
|
873
|
+
editor: configureEditorWithDocsMCP,
|
|
874
|
+
directory: process.cwd()
|
|
875
|
+
});
|
|
876
|
+
}
|
|
785
877
|
s.stop();
|
|
786
878
|
if (!llmApiKey) {
|
|
787
|
-
|
|
879
|
+
p2.note(`
|
|
788
880
|
${color2.green("Mastra initialized successfully!")}
|
|
789
881
|
|
|
790
882
|
Add your ${color2.cyan(key)} as an environment variable
|
|
791
883
|
in your ${color2.cyan(".env.development")} file
|
|
792
884
|
`);
|
|
793
885
|
} else {
|
|
794
|
-
|
|
886
|
+
p2.note(`
|
|
795
887
|
${color2.green("Mastra initialized successfully!")}
|
|
796
888
|
`);
|
|
797
889
|
}
|
|
@@ -830,20 +922,21 @@ var execWithTimeout = async (command, timeoutMs) => {
|
|
|
830
922
|
}
|
|
831
923
|
};
|
|
832
924
|
var createMastraProject = async ({
|
|
925
|
+
projectName: name,
|
|
833
926
|
createVersionTag,
|
|
834
927
|
timeout
|
|
835
928
|
}) => {
|
|
836
|
-
|
|
837
|
-
const projectName = await
|
|
929
|
+
p2.intro(color2.inverse("Mastra Create"));
|
|
930
|
+
const projectName = name ?? await p2.text({
|
|
838
931
|
message: "What do you want to name your project?",
|
|
839
932
|
placeholder: "my-mastra-app",
|
|
840
933
|
defaultValue: "my-mastra-app"
|
|
841
934
|
});
|
|
842
|
-
if (
|
|
843
|
-
|
|
935
|
+
if (p2.isCancel(projectName)) {
|
|
936
|
+
p2.cancel("Operation cancelled");
|
|
844
937
|
process.exit(0);
|
|
845
938
|
}
|
|
846
|
-
const s2 =
|
|
939
|
+
const s2 = p2.spinner();
|
|
847
940
|
s2.start("Creating project");
|
|
848
941
|
try {
|
|
849
942
|
await fs4.mkdir(projectName);
|
|
@@ -907,19 +1000,20 @@ var createMastraProject = async ({
|
|
|
907
1000
|
await exec3(`echo .env >> .gitignore`);
|
|
908
1001
|
await exec3(`echo *.db >> .gitignore`);
|
|
909
1002
|
s2.stop(".gitignore added");
|
|
910
|
-
|
|
1003
|
+
p2.outro("Project created successfully");
|
|
911
1004
|
console.log("");
|
|
912
1005
|
return { projectName };
|
|
913
1006
|
};
|
|
914
1007
|
|
|
915
1008
|
// src/commands/create/create.ts
|
|
916
|
-
var create = async (
|
|
1009
|
+
var create = async (args2) => {
|
|
917
1010
|
const { projectName } = await createMastraProject({
|
|
918
|
-
|
|
919
|
-
|
|
1011
|
+
projectName: args2?.projectName,
|
|
1012
|
+
createVersionTag: args2?.createVersionTag,
|
|
1013
|
+
timeout: args2?.timeout
|
|
920
1014
|
});
|
|
921
1015
|
const directory = "/src";
|
|
922
|
-
if (!
|
|
1016
|
+
if (!args2.components || !args2.llmProvider || !args2.addExample) {
|
|
923
1017
|
const result = await interactivePrompt();
|
|
924
1018
|
await init({
|
|
925
1019
|
...result,
|
|
@@ -928,7 +1022,7 @@ var create = async (args) => {
|
|
|
928
1022
|
postCreate({ projectName });
|
|
929
1023
|
return;
|
|
930
1024
|
}
|
|
931
|
-
const { components = [], llmProvider = "openai", addExample = false, llmApiKey } =
|
|
1025
|
+
const { components = [], llmProvider = "openai", addExample = false, llmApiKey } = args2;
|
|
932
1026
|
await init({
|
|
933
1027
|
directory,
|
|
934
1028
|
components,
|
|
@@ -939,7 +1033,7 @@ var create = async (args) => {
|
|
|
939
1033
|
postCreate({ projectName });
|
|
940
1034
|
};
|
|
941
1035
|
var postCreate = ({ projectName }) => {
|
|
942
|
-
|
|
1036
|
+
p2.outro(`
|
|
943
1037
|
${color2.green("To start your project:")}
|
|
944
1038
|
|
|
945
1039
|
${color2.cyan("cd")} ${projectName}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
type LLMProvider = 'openai' | 'anthropic' | 'groq' | 'google';
|
|
1
|
+
type LLMProvider = 'openai' | 'anthropic' | 'groq' | 'google' | 'cerebras';
|
|
2
2
|
|
|
3
3
|
declare const create: (args: {
|
|
4
|
+
projectName?: string;
|
|
4
5
|
components?: string[];
|
|
5
6
|
llmProvider?: LLMProvider;
|
|
6
7
|
addExample?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { create } from '../../chunk-
|
|
1
|
+
export { create } from '../../chunk-PRZGXNSB.js';
|
package/dist/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#! /usr/bin/env node
|
|
2
2
|
import { PosthogAnalytics } from './chunk-SLGHDOYI.js';
|
|
3
3
|
export { PosthogAnalytics } from './chunk-SLGHDOYI.js';
|
|
4
|
-
import { DepsService, create, checkPkgJson, checkAndInstallCoreDeps, interactivePrompt, init, logger, FileService as FileService$1 } from './chunk-
|
|
5
|
-
export { create } from './chunk-
|
|
4
|
+
import { DepsService, create, checkPkgJson, checkAndInstallCoreDeps, interactivePrompt, init, logger, FileService as FileService$1 } from './chunk-PRZGXNSB.js';
|
|
5
|
+
export { create } from './chunk-PRZGXNSB.js';
|
|
6
6
|
import { Command } from 'commander';
|
|
7
7
|
import { join as join$1, dirname, basename } from 'node:path';
|
|
8
8
|
import { getWatcherInputOptions, writeTelemetryConfig, createWatcher, FileService as FileService$2 } from '@mastra/deployer/build';
|
|
@@ -178,6 +178,8 @@ var DevBundler = class extends Bundler {
|
|
|
178
178
|
}
|
|
179
179
|
}
|
|
180
180
|
}
|
|
181
|
+
const outputDir = join$1(outputDirectory, this.outputDir);
|
|
182
|
+
const copyPublic = this.copyPublic.bind(this);
|
|
181
183
|
const watcher = await createWatcher(
|
|
182
184
|
{
|
|
183
185
|
...inputOptions,
|
|
@@ -202,6 +204,15 @@ var DevBundler = class extends Bundler {
|
|
|
202
204
|
}
|
|
203
205
|
}
|
|
204
206
|
}
|
|
207
|
+
},
|
|
208
|
+
{
|
|
209
|
+
name: "public-dir-watcher",
|
|
210
|
+
buildStart() {
|
|
211
|
+
this.addWatchFile(join$1(dirname(entryFile), "public"));
|
|
212
|
+
},
|
|
213
|
+
buildEnd() {
|
|
214
|
+
return copyPublic(dirname(entryFile), outputDirectory);
|
|
215
|
+
}
|
|
205
216
|
}
|
|
206
217
|
],
|
|
207
218
|
input: {
|
|
@@ -209,7 +220,7 @@ var DevBundler = class extends Bundler {
|
|
|
209
220
|
}
|
|
210
221
|
},
|
|
211
222
|
{
|
|
212
|
-
dir:
|
|
223
|
+
dir: outputDir
|
|
213
224
|
}
|
|
214
225
|
);
|
|
215
226
|
this.logger.info("Starting watcher...");
|
|
@@ -354,7 +365,10 @@ program.version(`${version}`, "-v, --version").description(`Mastra CLI ${version
|
|
|
354
365
|
} catch {
|
|
355
366
|
}
|
|
356
367
|
});
|
|
357
|
-
program.command("create").description("Create a new Mastra project").option("--default", "Quick start with defaults(src, OpenAI, no examples)").option("-c, --components <components>", "Comma-separated list of components (agents, tools, workflows)").option("-l, --llm <model-provider>", "Default model provider (openai, anthropic, groq, or
|
|
368
|
+
program.command("create").description("Create a new Mastra project").option("--default", "Quick start with defaults(src, OpenAI, no examples)").option("-c, --components <components>", "Comma-separated list of components (agents, tools, workflows)").option("-l, --llm <model-provider>", "Default model provider (openai, anthropic, groq, google, or cerebras))").option("-k, --llm-api-key <api-key>", "API key for the model provider").option("-e, --example", "Include example code").option("-t, --timeout [timeout]", "Configurable timeout for package installation, defaults to 60000 ms").option(
|
|
369
|
+
"-p, --project-name <string>",
|
|
370
|
+
"Project name that will be used in package.json and as the project directory name."
|
|
371
|
+
).action(async (args) => {
|
|
358
372
|
await analytics.trackCommandExecution({
|
|
359
373
|
command: "create",
|
|
360
374
|
args,
|
|
@@ -374,7 +388,8 @@ program.command("create").description("Create a new Mastra project").option("--d
|
|
|
374
388
|
llmProvider: args.llm,
|
|
375
389
|
addExample: args.example,
|
|
376
390
|
llmApiKey: args["llm-api-key"],
|
|
377
|
-
timeout
|
|
391
|
+
timeout,
|
|
392
|
+
projectName: args.projectName
|
|
378
393
|
});
|
|
379
394
|
}
|
|
380
395
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mastra",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0-alpha.2",
|
|
4
4
|
"license": "ISC",
|
|
5
5
|
"description": "cli for mastra",
|
|
6
6
|
"type": "module",
|
|
@@ -55,8 +55,8 @@
|
|
|
55
55
|
"yocto-spinner": "^0.1.2",
|
|
56
56
|
"zod": "^3.24.2",
|
|
57
57
|
"zod-to-json-schema": "^3.24.3",
|
|
58
|
-
"@mastra/
|
|
59
|
-
"@mastra/
|
|
58
|
+
"@mastra/core": "^0.6.1-alpha.2",
|
|
59
|
+
"@mastra/deployer": "^0.2.1-alpha.2"
|
|
60
60
|
},
|
|
61
61
|
"devDependencies": {
|
|
62
62
|
"@microsoft/api-extractor": "^7.52.1",
|