mastra 0.1.57-alpha.9 → 0.1.57-alpha.90
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/README.md +22 -7
- package/dist/analytics/index.d.ts +31 -0
- package/dist/analytics/index.d.ts.map +1 -0
- package/dist/analytics/index.js +167 -0
- package/dist/commands/create/create.d.ts +8 -0
- package/dist/commands/create/create.d.ts.map +1 -0
- package/dist/commands/create/create.js +35 -0
- package/dist/commands/create/utils.d.ts +4 -0
- package/dist/commands/create/utils.d.ts.map +1 -0
- package/dist/commands/create/utils.js +58 -0
- package/dist/commands/deploy/cloudflare/index.d.ts +15 -0
- package/dist/commands/deploy/cloudflare/index.d.ts.map +1 -0
- package/dist/commands/deploy/cloudflare/index.js +94 -0
- package/dist/commands/deploy/deployer.d.ts +31 -0
- package/dist/commands/deploy/deployer.d.ts.map +1 -0
- package/dist/commands/deploy/deployer.js +77 -0
- package/dist/commands/deploy/index.d.ts +11 -0
- package/dist/commands/deploy/index.d.ts.map +1 -0
- package/dist/commands/deploy/index.js +237 -0
- package/dist/commands/deploy/netlify/index.d.ts +13 -0
- package/dist/commands/deploy/netlify/index.d.ts.map +1 -0
- package/dist/commands/deploy/netlify/index.js +67 -0
- package/dist/commands/deploy/server.d.ts +9 -0
- package/dist/commands/deploy/server.d.ts.map +1 -0
- package/dist/commands/deploy/server.js +14 -0
- package/dist/commands/deploy/utils.d.ts +9 -0
- package/dist/commands/deploy/utils.d.ts.map +1 -0
- package/dist/commands/deploy/utils.js +30 -0
- package/dist/commands/deploy/vercel/index.d.ts +16 -0
- package/dist/commands/deploy/vercel/index.d.ts.map +1 -0
- package/dist/commands/deploy/vercel/index.js +154 -0
- package/dist/commands/dev.d.ts +7 -0
- package/dist/commands/dev.d.ts.map +1 -0
- package/dist/commands/dev.js +197 -0
- package/dist/commands/engine/add.d.ts +2 -0
- package/dist/commands/engine/add.d.ts.map +1 -0
- package/dist/commands/engine/add.js +60 -0
- package/dist/commands/engine/down.d.ts +2 -0
- package/dist/commands/engine/down.d.ts.map +1 -0
- package/dist/commands/engine/down.js +16 -0
- package/dist/commands/{generate.d.ts → engine/generate.d.ts} +1 -0
- package/dist/commands/engine/generate.d.ts.map +1 -0
- package/dist/commands/{generate.js → engine/generate.js} +20 -1
- package/dist/commands/{migrate.d.ts → engine/migrate.d.ts} +1 -0
- package/dist/commands/engine/migrate.d.ts.map +1 -0
- package/dist/commands/{migrate.js → engine/migrate.js} +14 -11
- package/dist/commands/{provision.d.ts → engine/provision.d.ts} +1 -0
- package/dist/commands/engine/provision.d.ts.map +1 -0
- package/dist/commands/engine/provision.js +27 -0
- package/dist/commands/engine/up.d.ts +2 -0
- package/dist/commands/engine/up.d.ts.map +1 -0
- package/dist/commands/engine/up.js +16 -0
- package/dist/commands/init/init.d.ts +11 -0
- package/dist/commands/init/init.d.ts.map +1 -0
- package/dist/commands/init/init.js +51 -0
- package/dist/commands/init/utils.d.ts +39 -0
- package/dist/commands/init/utils.d.ts.map +1 -0
- package/dist/commands/init/utils.js +266 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +207 -64
- package/dist/scripts/postinstall.d.ts +2 -0
- package/dist/scripts/postinstall.d.ts.map +1 -0
- package/dist/scripts/postinstall.js +71 -4
- package/dist/services/service.deps.d.ts +16 -0
- package/dist/services/service.deps.d.ts.map +1 -0
- package/dist/services/service.deps.js +100 -0
- package/dist/services/service.docker.d.ts +27 -0
- package/dist/services/service.docker.d.ts.map +1 -0
- package/dist/services/service.docker.js +131 -0
- package/dist/services/service.env.d.ts +1 -0
- package/dist/services/service.env.d.ts.map +1 -0
- package/dist/services/service.file.d.ts +22 -0
- package/dist/services/service.file.d.ts.map +1 -0
- package/dist/services/service.file.js +47 -0
- package/dist/services/service.fileEnv.d.ts +1 -0
- package/dist/services/service.fileEnv.d.ts.map +1 -0
- package/dist/starter-files/config.ts +28 -0
- package/dist/starter-files/mastra-pg.docker-compose.yaml +15 -0
- package/dist/starter-files/tools.ts +95 -0
- package/dist/starter-files/workflow.ts +173 -0
- package/dist/templates/express-server.d.ts +4 -0
- package/dist/templates/express-server.d.ts.map +1 -0
- package/dist/templates/express-server.js +962 -0
- package/dist/templates/netlify.d.ts +3 -0
- package/dist/templates/netlify.d.ts.map +1 -0
- package/dist/templates/netlify.js +653 -0
- package/dist/templates/worker.d.ts +9 -0
- package/dist/templates/worker.d.ts.map +1 -0
- package/dist/templates/worker.js +1008 -0
- package/dist/utils/bundle.d.ts +34 -0
- package/dist/utils/bundle.d.ts.map +1 -0
- package/dist/utils/bundle.js +225 -0
- package/dist/utils/find-api-keys.d.ts +5 -0
- package/dist/utils/find-api-keys.d.ts.map +1 -0
- package/dist/utils/find-api-keys.js +7 -0
- package/dist/utils/get-engine-path.d.ts +2 -0
- package/dist/utils/get-engine-path.d.ts.map +1 -0
- package/dist/utils/get-engine-path.js +12 -0
- package/dist/utils/{getEnv.d.ts → get-env.d.ts} +1 -0
- package/dist/utils/get-env.d.ts.map +1 -0
- package/dist/utils/logger.d.ts +9 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +21 -0
- package/dist/utils/string.d.ts +2 -0
- package/dist/utils/string.d.ts.map +1 -0
- package/dist/utils/string.js +22 -0
- package/package.json +80 -41
- package/src/playground/dist/assets/abap-BwpQXVS2.js +1 -0
- package/src/playground/dist/assets/actionscript-3-Ci-La1BS.js +1 -0
- package/src/playground/dist/assets/ada-DOAn35dn.js +1 -0
- package/src/playground/dist/assets/andromeeda-C3khCPGq.js +1 -0
- package/src/playground/dist/assets/angular-html-GqBVQ6Dm.js +1 -0
- package/src/playground/dist/assets/angular-ts-MKs4dlu_.js +1 -0
- package/src/playground/dist/assets/apache-Dn00JSTd.js +1 -0
- package/src/playground/dist/assets/apex-BzwtH5UL.js +1 -0
- package/src/playground/dist/assets/apl-C6GBNg32.js +1 -0
- package/src/playground/dist/assets/applescript-DIt9OTko.js +1 -0
- package/src/playground/dist/assets/ara-CJxt7p29.js +1 -0
- package/src/playground/dist/assets/asciidoc-CcSEeikT.js +1 -0
- package/src/playground/dist/assets/asm-DPTZissz.js +1 -0
- package/src/playground/dist/assets/astro-DTSlZd1t.js +1 -0
- package/src/playground/dist/assets/aurora-x-D-2ljcwZ.js +1 -0
- package/src/playground/dist/assets/awk-BINKOAKH.js +1 -0
- package/src/playground/dist/assets/ayu-dark-Cv9koXgw.js +1 -0
- package/src/playground/dist/assets/ballerina-DCcCncrU.js +1 -0
- package/src/playground/dist/assets/bat-B9Vj0mJK.js +1 -0
- package/src/playground/dist/assets/beancount-DDUKAZWS.js +1 -0
- package/src/playground/dist/assets/berry-DnyWjya5.js +1 -0
- package/src/playground/dist/assets/bibtex-CpWBKVjh.js +1 -0
- package/src/playground/dist/assets/bicep-BWkuYGGO.js +1 -0
- package/src/playground/dist/assets/blade-CPEzV-UE.js +1 -0
- package/src/playground/dist/assets/bsl-Dgyn0ogV.js +1 -0
- package/src/playground/dist/assets/c-BhsLqr-4.js +1 -0
- package/src/playground/dist/assets/cadence-CEjiMJLT.js +1 -0
- package/src/playground/dist/assets/cairo-BM1Freo3.js +1 -0
- package/src/playground/dist/assets/catppuccin-frappe-CD_QflpE.js +1 -0
- package/src/playground/dist/assets/catppuccin-latte-DRW-0cLl.js +1 -0
- package/src/playground/dist/assets/catppuccin-macchiato-C-_shW-Y.js +1 -0
- package/src/playground/dist/assets/catppuccin-mocha-LGGdnPYs.js +1 -0
- package/src/playground/dist/assets/clarity-CXmV_HiI.js +1 -0
- package/src/playground/dist/assets/clojure-mLcCfA0-.js +1 -0
- package/src/playground/dist/assets/cmake-DbXoA79R.js +1 -0
- package/src/playground/dist/assets/cobol-NX_YbRMJ.js +1 -0
- package/src/playground/dist/assets/codeowners-Bp6g37R7.js +1 -0
- package/src/playground/dist/assets/codeql-Bdprqoiu.js +1 -0
- package/src/playground/dist/assets/coffee-CXcjgkhu.js +1 -0
- package/src/playground/dist/assets/common-lisp-CQO4gZEw.js +1 -0
- package/src/playground/dist/assets/coq-BCzYJAay.js +1 -0
- package/src/playground/dist/assets/cpp-IRqjNdQP.js +1 -0
- package/src/playground/dist/assets/crystal-DFEzbmK1.js +1 -0
- package/src/playground/dist/assets/csharp-D7v6OrNy.js +1 -0
- package/src/playground/dist/assets/css-u4bm_LMz.js +1 -0
- package/src/playground/dist/assets/csv-B0qRVHPH.js +1 -0
- package/src/playground/dist/assets/cue-DmZ-uG0V.js +1 -0
- package/src/playground/dist/assets/cypher-DfpIq38s.js +1 -0
- package/src/playground/dist/assets/d-B5L7zzq-.js +1 -0
- package/src/playground/dist/assets/dark-plus-C3mMm8J8.js +1 -0
- package/src/playground/dist/assets/dart-C4Ro8ZjH.js +1 -0
- package/src/playground/dist/assets/dax-yA8e6OR-.js +1 -0
- package/src/playground/dist/assets/desktop-DEIpsLCJ.js +1 -0
- package/src/playground/dist/assets/diff-Dnfm4U7b.js +1 -0
- package/src/playground/dist/assets/docker-COcR7UxN.js +1 -0
- package/src/playground/dist/assets/dotenv-DQxx3LPD.js +1 -0
- package/src/playground/dist/assets/dracula-BzJJZx-M.js +1 -0
- package/src/playground/dist/assets/dracula-soft-BXkSAIEj.js +1 -0
- package/src/playground/dist/assets/dream-maker-BMwgFBEQ.js +1 -0
- package/src/playground/dist/assets/edge-Cq_6DOij.js +1 -0
- package/src/playground/dist/assets/elixir-BoNJ9vXU.js +1 -0
- package/src/playground/dist/assets/elm-CTr_twwF.js +1 -0
- package/src/playground/dist/assets/emacs-lisp-CMz7PuSU.js +1 -0
- package/src/playground/dist/assets/erb-BgreK6rt.js +1 -0
- package/src/playground/dist/assets/erlang-CMOi41r9.js +1 -0
- package/src/playground/dist/assets/everforest-dark-BgDCqdQA.js +1 -0
- package/src/playground/dist/assets/everforest-light-C8M2exoo.js +1 -0
- package/src/playground/dist/assets/fennel-dZn0vQkf.js +1 -0
- package/src/playground/dist/assets/fish-CQzXS8_C.js +1 -0
- package/src/playground/dist/assets/fluent-CNRQ974Q.js +1 -0
- package/src/playground/dist/assets/fortran-fixed-form-C9lV_GL-.js +1 -0
- package/src/playground/dist/assets/fortran-free-form-B3Z_eaxm.js +1 -0
- package/src/playground/dist/assets/fsharp-Vw5t3P44.js +1 -0
- package/src/playground/dist/assets/gdresource-NFcQ0Q3Z.js +1 -0
- package/src/playground/dist/assets/gdscript-BVlVXSjx.js +1 -0
- package/src/playground/dist/assets/gdshader-BSHf-0eb.js +1 -0
- package/src/playground/dist/assets/genie-DJEtsjbi.js +1 -0
- package/src/playground/dist/assets/gherkin--30QC5Em.js +1 -0
- package/src/playground/dist/assets/git-commit-C0WNX4K0.js +1 -0
- package/src/playground/dist/assets/git-rebase-3YLVFLpI.js +1 -0
- package/src/playground/dist/assets/github-dark-DHJKELXO.js +1 -0
- package/src/playground/dist/assets/github-dark-default-Cuk6v7N8.js +1 -0
- package/src/playground/dist/assets/github-dark-dimmed-DH5Ifo-i.js +1 -0
- package/src/playground/dist/assets/github-dark-high-contrast-E3gJ1_iC.js +1 -0
- package/src/playground/dist/assets/github-light-DAi9KRSo.js +1 -0
- package/src/playground/dist/assets/github-light-default-D7oLnXFd.js +1 -0
- package/src/playground/dist/assets/github-light-high-contrast-BfjtVDDH.js +1 -0
- package/src/playground/dist/assets/gleam-C30t_gpS.js +1 -0
- package/src/playground/dist/assets/glimmer-js-D4fdoRWd.js +1 -0
- package/src/playground/dist/assets/glimmer-ts-DFoQQgBS.js +1 -0
- package/src/playground/dist/assets/glsl-bwZ1_LLM.js +1 -0
- package/src/playground/dist/assets/gnuplot-CmWLV2bY.js +1 -0
- package/src/playground/dist/assets/go-C5-9kuJc.js +1 -0
- package/src/playground/dist/assets/graphql-DqgCZ2sd.js +1 -0
- package/src/playground/dist/assets/groovy-BWslPs4p.js +1 -0
- package/src/playground/dist/assets/hack-BV5LM4CS.js +1 -0
- package/src/playground/dist/assets/haml-B1jT_oKV.js +1 -0
- package/src/playground/dist/assets/handlebars-HtVeTy3a.js +1 -0
- package/src/playground/dist/assets/haskell-ChDww4um.js +1 -0
- package/src/playground/dist/assets/haxe-BgqZeg96.js +1 -0
- package/src/playground/dist/assets/hcl-_Zu0RE-q.js +1 -0
- package/src/playground/dist/assets/hjson-D9Bn7OQI.js +1 -0
- package/src/playground/dist/assets/hlsl-DkpUthgY.js +1 -0
- package/src/playground/dist/assets/houston-DnULxvSX.js +1 -0
- package/src/playground/dist/assets/html-DG1TtFnM.js +1 -0
- package/src/playground/dist/assets/html-derivative-CDVwFiY1.js +1 -0
- package/src/playground/dist/assets/http-CYnz8shJ.js +1 -0
- package/src/playground/dist/assets/hxml-BfFmssGd.js +1 -0
- package/src/playground/dist/assets/hy-YurBl9Qv.js +1 -0
- package/src/playground/dist/assets/imba-C6vdFTm2.js +1 -0
- package/src/playground/dist/assets/index-BiEU7Tmg.js +389 -0
- package/src/playground/dist/assets/index-Cke4BidO.js +13 -0
- package/src/playground/dist/assets/ini-BjABl1g7.js +1 -0
- package/src/playground/dist/assets/java-BN40hmum.js +1 -0
- package/src/playground/dist/assets/javascript-DNgb01dh.js +1 -0
- package/src/playground/dist/assets/jinja-BORjBBXU.js +1 -0
- package/src/playground/dist/assets/jison-Ct8rtT8R.js +1 -0
- package/src/playground/dist/assets/json-DWmkr0yC.js +1 -0
- package/src/playground/dist/assets/json5-BDjtpMT8.js +1 -0
- package/src/playground/dist/assets/jsonc-B8E-_56i.js +1 -0
- package/src/playground/dist/assets/jsonl-NKd-Y1zG.js +1 -0
- package/src/playground/dist/assets/jsonnet-CpRrwcwt.js +1 -0
- package/src/playground/dist/assets/jssm-DlYXzDlu.js +1 -0
- package/src/playground/dist/assets/jsx-CM4fc1WH.js +1 -0
- package/src/playground/dist/assets/julia-Czdw582_.js +1 -0
- package/src/playground/dist/assets/kanagawa-dragon-RXHOmnpW.js +1 -0
- package/src/playground/dist/assets/kanagawa-lotus-zchoCBdH.js +1 -0
- package/src/playground/dist/assets/kanagawa-wave-2aygx1xg.js +1 -0
- package/src/playground/dist/assets/kotlin-BZRbnyjI.js +1 -0
- package/src/playground/dist/assets/kusto-plSVBvJQ.js +1 -0
- package/src/playground/dist/assets/laserwave-DUszq2jm.js +1 -0
- package/src/playground/dist/assets/latex-BpoAco4y.js +1 -0
- package/src/playground/dist/assets/lean-yLioyJ2E.js +1 -0
- package/src/playground/dist/assets/less-Dk1rBueR.js +1 -0
- package/src/playground/dist/assets/light-plus-B7mTdjB0.js +1 -0
- package/src/playground/dist/assets/liquid-DlGqZaOj.js +1 -0
- package/src/playground/dist/assets/log-B4_rEpOs.js +1 -0
- package/src/playground/dist/assets/logo-Dtn98rcr.js +1 -0
- package/src/playground/dist/assets/lua-B2--UKVN.js +1 -0
- package/src/playground/dist/assets/luau-DepYB8Ml.js +1 -0
- package/src/playground/dist/assets/make-DNDvMORL.js +1 -0
- package/src/playground/dist/assets/markdown-CNXuF1yM.js +1 -0
- package/src/playground/dist/assets/marko-BxSrAFJn.js +1 -0
- package/src/playground/dist/assets/material-theme-D5KoaKCx.js +1 -0
- package/src/playground/dist/assets/material-theme-darker-BfHTSMKl.js +1 -0
- package/src/playground/dist/assets/material-theme-lighter-B0m2ddpp.js +1 -0
- package/src/playground/dist/assets/material-theme-ocean-CyktbL80.js +1 -0
- package/src/playground/dist/assets/material-theme-palenight-Csfq5Kiy.js +1 -0
- package/src/playground/dist/assets/matlab-Kxp7UmFj.js +1 -0
- package/src/playground/dist/assets/mdc-DfEMzj3F.js +1 -0
- package/src/playground/dist/assets/mdx-Bcw97oti.js +1 -0
- package/src/playground/dist/assets/mermaid-BZ3P6AVf.js +1 -0
- package/src/playground/dist/assets/min-dark-CafNBF8u.js +1 -0
- package/src/playground/dist/assets/min-light-CTRr51gU.js +1 -0
- package/src/playground/dist/assets/mipsasm-BzaEo2Du.js +1 -0
- package/src/playground/dist/assets/mojo-B2bjgU-v.js +1 -0
- package/src/playground/dist/assets/monokai-D4h5O-jR.js +1 -0
- package/src/playground/dist/assets/move-EZUUsui8.js +1 -0
- package/src/playground/dist/assets/narrat-DLbgOhZU.js +1 -0
- package/src/playground/dist/assets/nextflow-B2uSYIFn.js +1 -0
- package/src/playground/dist/assets/nginx-Dw0nYz9L.js +1 -0
- package/src/playground/dist/assets/night-owl-DdAYiE08.js +1 -0
- package/src/playground/dist/assets/nim-NHYZZDnF.js +1 -0
- package/src/playground/dist/assets/nix-DVWcdiGS.js +1 -0
- package/src/playground/dist/assets/nord-Ddv68eIx.js +1 -0
- package/src/playground/dist/assets/nushell-ZJvK9Z2N.js +1 -0
- package/src/playground/dist/assets/objective-c-B6NdQBKR.js +1 -0
- package/src/playground/dist/assets/objective-cpp-BkG9CdHo.js +1 -0
- package/src/playground/dist/assets/ocaml-CLmbwNS9.js +1 -0
- package/src/playground/dist/assets/one-dark-pro-GBQ2dnAY.js +1 -0
- package/src/playground/dist/assets/one-light-PoHY5YXO.js +1 -0
- package/src/playground/dist/assets/pascal-JqZropPD.js +1 -0
- package/src/playground/dist/assets/perl-DLffUHFU.js +1 -0
- package/src/playground/dist/assets/php-D3VTUn6x.js +1 -0
- package/src/playground/dist/assets/plastic-3e1v2bzS.js +1 -0
- package/src/playground/dist/assets/plsql-LKU2TuZ1.js +1 -0
- package/src/playground/dist/assets/po-BFLt1xDp.js +1 -0
- package/src/playground/dist/assets/poimandres-CS3Unz2-.js +1 -0
- package/src/playground/dist/assets/postcss-DmF4-xLG.js +1 -0
- package/src/playground/dist/assets/powerquery-ByY1Guvr.js +1 -0
- package/src/playground/dist/assets/powershell-DES0gjzB.js +1 -0
- package/src/playground/dist/assets/prisma-CZzQMiei.js +1 -0
- package/src/playground/dist/assets/prolog-BNxDCkIA.js +1 -0
- package/src/playground/dist/assets/proto-hdsyEllQ.js +1 -0
- package/src/playground/dist/assets/pug-BbGfWiEl.js +1 -0
- package/src/playground/dist/assets/puppet-DWMP3yrW.js +1 -0
- package/src/playground/dist/assets/purescript-DvQyZZSe.js +1 -0
- package/src/playground/dist/assets/python-CK56Z9cH.js +1 -0
- package/src/playground/dist/assets/qml-Dhho_E4W.js +1 -0
- package/src/playground/dist/assets/qmldir-C8lEn-DE.js +1 -0
- package/src/playground/dist/assets/qss-DhMKtDLN.js +1 -0
- package/src/playground/dist/assets/r-Cqv5JV-q.js +1 -0
- package/src/playground/dist/assets/racket-CwIbMU3B.js +1 -0
- package/src/playground/dist/assets/raku-DZ4hUExO.js +1 -0
- package/src/playground/dist/assets/razor-CDyaIOPG.js +1 -0
- package/src/playground/dist/assets/red-bN70gL4F.js +1 -0
- package/src/playground/dist/assets/reg-CrOfvjVs.js +1 -0
- package/src/playground/dist/assets/regexp-DoiKbUTj.js +1 -0
- package/src/playground/dist/assets/rel-Dzwn3p-3.js +1 -0
- package/src/playground/dist/assets/riscv-BGct0Hx7.js +1 -0
- package/src/playground/dist/assets/rose-pine-CmCqftbK.js +1 -0
- package/src/playground/dist/assets/rose-pine-dawn-Ds-gbosJ.js +1 -0
- package/src/playground/dist/assets/rose-pine-moon-CjDtw9vr.js +1 -0
- package/src/playground/dist/assets/rst-BCmapc_q.js +1 -0
- package/src/playground/dist/assets/ruby-DsC6krmi.js +1 -0
- package/src/playground/dist/assets/rust-Bjs2cL5p.js +1 -0
- package/src/playground/dist/assets/sas-K_Wwm3IX.js +1 -0
- package/src/playground/dist/assets/sass-BrbOHqWv.js +1 -0
- package/src/playground/dist/assets/scala-Lp17StYA.js +1 -0
- package/src/playground/dist/assets/scheme-BbccZ3y2.js +1 -0
- package/src/playground/dist/assets/scss-BfMQ58X7.js +1 -0
- package/src/playground/dist/assets/sdbl-BLhTXw86.js +1 -0
- package/src/playground/dist/assets/shaderlab-CsYUIUcf.js +1 -0
- package/src/playground/dist/assets/shellscript-HNM5thJl.js +1 -0
- package/src/playground/dist/assets/shellsession-DU_2P5ZA.js +1 -0
- package/src/playground/dist/assets/slack-dark-BthQWCQV.js +1 -0
- package/src/playground/dist/assets/slack-ochin-DqwNpetd.js +1 -0
- package/src/playground/dist/assets/smalltalk-DsCg8CPl.js +1 -0
- package/src/playground/dist/assets/snazzy-light-Bw305WKR.js +1 -0
- package/src/playground/dist/assets/solarized-dark-DXbdFlpD.js +1 -0
- package/src/playground/dist/assets/solarized-light-L9t79GZl.js +1 -0
- package/src/playground/dist/assets/solidity-DymQr0nX.js +1 -0
- package/src/playground/dist/assets/soy-aWhPD8Nq.js +1 -0
- package/src/playground/dist/assets/sparql-B5YtT9lV.js +1 -0
- package/src/playground/dist/assets/splunk-j_FrBdja.js +1 -0
- package/src/playground/dist/assets/sql-D8nBeWSR.js +1 -0
- package/src/playground/dist/assets/ssh-config-D-RymO5g.js +1 -0
- package/src/playground/dist/assets/stata-bRt97scT.js +1 -0
- package/src/playground/dist/assets/style-7CS44jOg.css +1 -0
- package/src/playground/dist/assets/stylus-DwU8c_yx.js +1 -0
- package/src/playground/dist/assets/svelte-B94b8dMa.js +1 -0
- package/src/playground/dist/assets/swift-D2TqM893.js +1 -0
- package/src/playground/dist/assets/synthwave-84-CbfX1IO0.js +1 -0
- package/src/playground/dist/assets/system-verilog-DFQ4Xr-4.js +1 -0
- package/src/playground/dist/assets/systemd-DA0ESIWO.js +1 -0
- package/src/playground/dist/assets/talonscript-CGXjegLJ.js +1 -0
- package/src/playground/dist/assets/tasl-CQjiPCtT.js +1 -0
- package/src/playground/dist/assets/tcl-NUI3YrRW.js +1 -0
- package/src/playground/dist/assets/templ-MrK5mfgg.js +1 -0
- package/src/playground/dist/assets/terraform-rf8nNrOk.js +1 -0
- package/src/playground/dist/assets/tex-Dej6pUpk.js +1 -0
- package/src/playground/dist/assets/tokyo-night-DBQeEorK.js +1 -0
- package/src/playground/dist/assets/toml-Dwo6uFCY.js +1 -0
- package/src/playground/dist/assets/ts-tags-CiO5kd_m.js +1 -0
- package/src/playground/dist/assets/tsv-B_m7g4N7.js +1 -0
- package/src/playground/dist/assets/tsx-DqpEK-75.js +1 -0
- package/src/playground/dist/assets/turtle-C0hdQUNN.js +1 -0
- package/src/playground/dist/assets/twig-CvAdjvFj.js +1 -0
- package/src/playground/dist/assets/typescript-CVESyXxo.js +1 -0
- package/src/playground/dist/assets/typespec-B_R80ZlN.js +1 -0
- package/src/playground/dist/assets/typst-F89DG-fP.js +1 -0
- package/src/playground/dist/assets/v-DH4N8IuU.js +1 -0
- package/src/playground/dist/assets/vala-C8pgRvQH.js +1 -0
- package/src/playground/dist/assets/vb-Bv-mwDEg.js +1 -0
- package/src/playground/dist/assets/verilog-6RUVFG9U.js +1 -0
- package/src/playground/dist/assets/vesper-BEBZ7ncR.js +1 -0
- package/src/playground/dist/assets/vhdl-IBB5Tl9j.js +1 -0
- package/src/playground/dist/assets/viml-CIxipgmy.js +1 -0
- package/src/playground/dist/assets/vitesse-black-Bkuqu6BP.js +1 -0
- package/src/playground/dist/assets/vitesse-dark-D0r3Knsf.js +1 -0
- package/src/playground/dist/assets/vitesse-light-CVO1_9PV.js +1 -0
- package/src/playground/dist/assets/vue-html-59TQSa_j.js +1 -0
- package/src/playground/dist/assets/vue-srE0XGv_.js +1 -0
- package/src/playground/dist/assets/vyper-DzaHHFTY.js +1 -0
- package/src/playground/dist/assets/wasm-CG6Dc4jp.js +1 -0
- package/src/playground/dist/assets/wasm-sH2JAGjN.js +1 -0
- package/src/playground/dist/assets/wenyan-7A4Fjokl.js +1 -0
- package/src/playground/dist/assets/wgsl-CSoQzgif.js +1 -0
- package/src/playground/dist/assets/wikitext-BqtQrzRp.js +1 -0
- package/src/playground/dist/assets/wolfram-aeT0-ak7.js +1 -0
- package/src/playground/dist/assets/xml-BOQ9RtXF.js +1 -0
- package/src/playground/dist/assets/xsl-BqG2VzO2.js +1 -0
- package/src/playground/dist/assets/yaml-CIiI48o2.js +1 -0
- package/src/playground/dist/assets/zenscript-NgWrSVUg.js +1 -0
- package/src/playground/dist/assets/zig-D44NvAEk.js +1 -0
- package/src/playground/dist/index.html +14 -0
- package/src/playground/dist/vite.svg +1 -0
- package/src/scripts/postinstall.js +83 -3
- package/src/starter-files/tools.ts +95 -0
- package/src/starter-files/workflow.ts +173 -0
- package/dist/commands/agents/createNewAgent.d.ts +0 -1
- package/dist/commands/agents/createNewAgent.js +0 -78
- package/dist/commands/agents/listAgents.d.ts +0 -1
- package/dist/commands/agents/listAgents.js +0 -19
- package/dist/commands/agents/updateAgentFile.d.ts +0 -1
- package/dist/commands/agents/updateAgentFile.js +0 -46
- package/dist/commands/init.d.ts +0 -1
- package/dist/commands/init.js +0 -146
- package/dist/commands/installEngineDeps.d.ts +0 -1
- package/dist/commands/installEngineDeps.js +0 -44
- package/dist/commands/provision.js +0 -45
- package/dist/commands/serve.d.ts +0 -1
- package/dist/commands/serve.js +0 -115
- package/dist/commands/up.d.ts +0 -5
- package/dist/commands/up.js +0 -8
- package/dist/starter-files/config.d.ts +0 -2
- package/dist/starter-files/config.js +0 -25
- package/dist/utils/getPackageManager.d.ts +0 -2
- package/dist/utils/getPackageManager.js +0 -29
- package/dist/utils/getProjectName.d.ts +0 -1
- package/dist/utils/getProjectName.js +0 -13
- package/dist/utils/getUserPrompt.d.ts +0 -4
- package/dist/utils/getUserPrompt.js +0 -16
- package/dist/utils/setupConfig.d.ts +0 -4
- package/dist/utils/setupConfig.js +0 -18
- package/dist/utils/setupDockerCompose.d.ts +0 -6
- package/dist/utils/setupDockerCompose.js +0 -17
- package/dist/utils/setupEnvFile.d.ts +0 -4
- package/dist/utils/setupEnvFile.js +0 -11
- package/dist/utils/setupRoutes.d.ts +0 -1
- package/dist/utils/setupRoutes.js +0 -27
- package/dist/utils.d.ts +0 -27
- package/dist/utils.js +0 -135
- package/src/starter-files/api.ts +0 -11
- package/src/starter-files/framework-utils.ts +0 -33
- /package/dist/utils/{getEnv.js → get-env.js} +0 -0
package/README.md
CHANGED
|
@@ -1,17 +1,15 @@
|
|
|
1
1
|
# The Mastra CLI
|
|
2
2
|
|
|
3
|
-
[Mastra Cli](
|
|
3
|
+

|
|
4
4
|
|
|
5
5
|
The Mastra CLI enables you to get up and running with mastra quickly. It is not required to use mastra, but helpful for getting started and more advanced use cases.
|
|
6
6
|
|
|
7
7
|
## Installing the Mastra CLI
|
|
8
8
|
|
|
9
9
|
```bash copy
|
|
10
|
-
npm i -g mastra
|
|
10
|
+
npm i -g mastra
|
|
11
11
|
```
|
|
12
12
|
|
|
13
|
-
The Mastra CLI has the following commands:
|
|
14
|
-
|
|
15
13
|
### Setup
|
|
16
14
|
|
|
17
15
|
```bash
|
|
@@ -52,7 +50,7 @@ This creates a new agent.
|
|
|
52
50
|
|
|
53
51
|
This lists all available agents.
|
|
54
52
|
|
|
55
|
-
#### Engine
|
|
53
|
+
#### Engine
|
|
56
54
|
|
|
57
55
|
`mastra engine add`
|
|
58
56
|
|
|
@@ -72,11 +70,28 @@ This is a shortcut that runs the `docker-compose up` command using the `mastra-p
|
|
|
72
70
|
|
|
73
71
|
It is useful for cases where you don't have a dockerized `postgres` db setup.
|
|
74
72
|
|
|
75
|
-
|
|
73
|
+
#### Rest Endpoints
|
|
74
|
+
|
|
75
|
+
`mastra dev`
|
|
76
76
|
|
|
77
|
-
This spins up `REST` endpoints for all agents and
|
|
77
|
+
This spins up `REST` endpoints for all agents, all workflows, and memory.
|
|
78
78
|
|
|
79
79
|
## Local development
|
|
80
80
|
|
|
81
81
|
1. clone the repo
|
|
82
82
|
2. Run `pnpm i` to install deps
|
|
83
|
+
|
|
84
|
+
# Telemetry
|
|
85
|
+
|
|
86
|
+
This CLI collects anonymous usage data to help improve the tool. We collect:
|
|
87
|
+
|
|
88
|
+
- Commands used
|
|
89
|
+
- Command execution time
|
|
90
|
+
- Error occurrences
|
|
91
|
+
- System information (OS, Node version)
|
|
92
|
+
|
|
93
|
+
No personal or sensitive information is collected.
|
|
94
|
+
|
|
95
|
+
To opt-out of telemetry:
|
|
96
|
+
|
|
97
|
+
1. Add `NO_MASTRA_TELEMETRY=1` to commands
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export declare class PosthogAnalytics {
|
|
2
|
+
private sessionId;
|
|
3
|
+
private client?;
|
|
4
|
+
private distinctId;
|
|
5
|
+
private version;
|
|
6
|
+
constructor({ version, apiKey, host, }: {
|
|
7
|
+
version: string;
|
|
8
|
+
apiKey: string;
|
|
9
|
+
host: string;
|
|
10
|
+
});
|
|
11
|
+
private writeCliConfig;
|
|
12
|
+
private initializePostHog;
|
|
13
|
+
private isTelemetryEnabled;
|
|
14
|
+
private getDistinctId;
|
|
15
|
+
private getSystemProperties;
|
|
16
|
+
private captureSessionStart;
|
|
17
|
+
trackCommand(options: {
|
|
18
|
+
command: string;
|
|
19
|
+
args?: Record<string, unknown>;
|
|
20
|
+
durationMs?: number;
|
|
21
|
+
status?: 'success' | 'error';
|
|
22
|
+
error?: string;
|
|
23
|
+
}): void;
|
|
24
|
+
trackCommandExecution<T>({ command, args, execution, }: {
|
|
25
|
+
command: string;
|
|
26
|
+
args: Record<string, unknown>;
|
|
27
|
+
execution: () => Promise<T>;
|
|
28
|
+
}): Promise<T>;
|
|
29
|
+
shutdown(): Promise<void>;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/analytics/index.ts"],"names":[],"mappings":"AAkBA,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAC,CAAU;IACzB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,OAAO,CAAS;gBAEZ,EACV,OAAO,EACP,MAAM,EACN,IAAgC,GACjC,EAAE;QACD,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;KACd;IA+BD,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,mBAAmB;IAc3B,YAAY,CAAC,OAAO,EAAE;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,MAAM,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;QAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,IAAI;IAqCF,qBAAqB,CAAC,CAAC,EAAE,EAC7B,OAAO,EACP,IAAI,EACJ,SAAS,GACV,EAAE;QACD,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC9B,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;KAC7B,GAAG,OAAO,CAAC,CAAC,CAAC;IAiCR,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAUhC"}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import { randomUUID } from 'crypto';
|
|
2
|
+
import { existsSync, readFileSync, writeFileSync } from 'fs';
|
|
3
|
+
import os from 'os';
|
|
4
|
+
import path from 'path';
|
|
5
|
+
import { PostHog } from 'posthog-node';
|
|
6
|
+
import { fileURLToPath } from 'url';
|
|
7
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
8
|
+
const __dirname = path.dirname(__filename);
|
|
9
|
+
export class PosthogAnalytics {
|
|
10
|
+
constructor({ version, apiKey, host = 'https://app.posthog.com', }) {
|
|
11
|
+
this.version = version;
|
|
12
|
+
const cliConfigPath = path.join(__dirname, 'mastra-cli.json');
|
|
13
|
+
if (existsSync(cliConfigPath)) {
|
|
14
|
+
try {
|
|
15
|
+
const { distinctId, sessionId } = JSON.parse(readFileSync(cliConfigPath, 'utf-8'));
|
|
16
|
+
this.distinctId = distinctId;
|
|
17
|
+
this.sessionId = sessionId;
|
|
18
|
+
}
|
|
19
|
+
catch (e) {
|
|
20
|
+
this.sessionId = randomUUID();
|
|
21
|
+
this.distinctId = this.getDistinctId();
|
|
22
|
+
}
|
|
23
|
+
this.writeCliConfig({
|
|
24
|
+
distinctId: this.distinctId,
|
|
25
|
+
sessionId: this.sessionId,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
this.sessionId = randomUUID();
|
|
30
|
+
this.distinctId = this.getDistinctId();
|
|
31
|
+
this.writeCliConfig({
|
|
32
|
+
distinctId: this.distinctId,
|
|
33
|
+
sessionId: this.sessionId,
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
if (this.isTelemetryEnabled()) {
|
|
37
|
+
this.initializePostHog(apiKey, host);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
writeCliConfig({ distinctId, sessionId }) {
|
|
41
|
+
try {
|
|
42
|
+
writeFileSync(path.join(__dirname, 'mastra-cli.json'), JSON.stringify({ distinctId, sessionId }));
|
|
43
|
+
}
|
|
44
|
+
catch (e) {
|
|
45
|
+
//swallow
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
initializePostHog(apiKey, host) {
|
|
49
|
+
this.client = new PostHog(apiKey, {
|
|
50
|
+
host,
|
|
51
|
+
flushAt: 1,
|
|
52
|
+
flushInterval: 0,
|
|
53
|
+
});
|
|
54
|
+
this.captureSessionStart();
|
|
55
|
+
process.on('exit', () => {
|
|
56
|
+
this.client?.flush();
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
isTelemetryEnabled() {
|
|
60
|
+
// Check environment variable first
|
|
61
|
+
if (process.env.NO_MASTRA_TELEMETRY) {
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
// Default to enabled
|
|
65
|
+
return true;
|
|
66
|
+
}
|
|
67
|
+
getDistinctId() {
|
|
68
|
+
// Use machine-id or generate a persistent ID
|
|
69
|
+
// This helps track unique CLI installations
|
|
70
|
+
const machineId = os.hostname();
|
|
71
|
+
return `mastra-${machineId}`;
|
|
72
|
+
}
|
|
73
|
+
getSystemProperties() {
|
|
74
|
+
return {
|
|
75
|
+
os: process.platform,
|
|
76
|
+
os_version: os.release(),
|
|
77
|
+
node_version: process.version,
|
|
78
|
+
platform: process.arch,
|
|
79
|
+
session_id: this.sessionId,
|
|
80
|
+
cli_version: this.version || 'unknown',
|
|
81
|
+
machine_id: os.hostname(),
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
captureSessionStart() {
|
|
85
|
+
if (!this.client) {
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
this.client.capture({
|
|
89
|
+
distinctId: this.distinctId,
|
|
90
|
+
event: 'cli_session_start',
|
|
91
|
+
properties: {
|
|
92
|
+
...this.getSystemProperties(),
|
|
93
|
+
},
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
trackCommand(options) {
|
|
97
|
+
try {
|
|
98
|
+
if (!this.client) {
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
const commandData = {
|
|
102
|
+
command: options.command,
|
|
103
|
+
status: options.status || 'success',
|
|
104
|
+
};
|
|
105
|
+
if (options.args) {
|
|
106
|
+
commandData.args = options.args;
|
|
107
|
+
}
|
|
108
|
+
if (options.durationMs) {
|
|
109
|
+
commandData.durationMs = options.durationMs;
|
|
110
|
+
}
|
|
111
|
+
if (options.error) {
|
|
112
|
+
commandData.error = options.error;
|
|
113
|
+
}
|
|
114
|
+
this.client.capture({
|
|
115
|
+
distinctId: this.distinctId,
|
|
116
|
+
event: 'cli_command',
|
|
117
|
+
properties: {
|
|
118
|
+
...this.getSystemProperties(),
|
|
119
|
+
...commandData,
|
|
120
|
+
},
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
catch (e) {
|
|
124
|
+
//swallow
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
// Helper method to wrap command execution with timing
|
|
128
|
+
async trackCommandExecution({ command, args, execution, }) {
|
|
129
|
+
const startTime = process.hrtime();
|
|
130
|
+
try {
|
|
131
|
+
const result = await execution();
|
|
132
|
+
const [seconds, nanoseconds] = process.hrtime(startTime);
|
|
133
|
+
const durationMs = seconds * 1000 + nanoseconds / 1000000;
|
|
134
|
+
this.trackCommand({
|
|
135
|
+
command,
|
|
136
|
+
args,
|
|
137
|
+
durationMs,
|
|
138
|
+
status: 'success',
|
|
139
|
+
});
|
|
140
|
+
return result;
|
|
141
|
+
}
|
|
142
|
+
catch (error) {
|
|
143
|
+
const [seconds, nanoseconds] = process.hrtime(startTime);
|
|
144
|
+
const durationMs = seconds * 1000 + nanoseconds / 1000000;
|
|
145
|
+
this.trackCommand({
|
|
146
|
+
command,
|
|
147
|
+
args,
|
|
148
|
+
durationMs,
|
|
149
|
+
status: 'error',
|
|
150
|
+
error: error instanceof Error ? error.message : String(error),
|
|
151
|
+
});
|
|
152
|
+
throw error;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
// Ensure PostHog client is shutdown properly
|
|
156
|
+
async shutdown() {
|
|
157
|
+
if (!this.client) {
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
try {
|
|
161
|
+
await this.client.shutdown();
|
|
162
|
+
}
|
|
163
|
+
catch (e) {
|
|
164
|
+
//swallow
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/commands/create/create.ts"],"names":[],"mappings":"AAIA,OAAO,EAAqB,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAIlE,eAAO,MAAM,MAAM,SAAgB;IACjC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,kBAyBA,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import * as p from '@clack/prompts';
|
|
2
|
+
import color from 'picocolors';
|
|
3
|
+
import { init } from '../init/init.js';
|
|
4
|
+
import { interactivePrompt } from '../init/utils.js';
|
|
5
|
+
import { createMastraProject } from './utils.js';
|
|
6
|
+
export const create = async (args) => {
|
|
7
|
+
const { projectName } = await createMastraProject();
|
|
8
|
+
const directory = '/src';
|
|
9
|
+
if (!args.components || !args.llmProvider || !args.addExample) {
|
|
10
|
+
const result = await interactivePrompt();
|
|
11
|
+
await init({
|
|
12
|
+
...result,
|
|
13
|
+
llmApiKey: result?.llmApiKey,
|
|
14
|
+
});
|
|
15
|
+
postCreate({ projectName });
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
const { components = [], llmProvider = 'openai', addExample = false, llmApiKey } = args;
|
|
19
|
+
await init({
|
|
20
|
+
directory,
|
|
21
|
+
components,
|
|
22
|
+
llmProvider,
|
|
23
|
+
addExample,
|
|
24
|
+
llmApiKey,
|
|
25
|
+
});
|
|
26
|
+
postCreate({ projectName });
|
|
27
|
+
};
|
|
28
|
+
const postCreate = ({ projectName }) => {
|
|
29
|
+
p.outro(`
|
|
30
|
+
${color.green('To start your project:')}
|
|
31
|
+
|
|
32
|
+
${color.cyan('cd')} ${projectName}
|
|
33
|
+
${color.cyan('npm run dev')}
|
|
34
|
+
`);
|
|
35
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/commands/create/utils.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,mBAAmB;;EA6D/B,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import * as p from '@clack/prompts';
|
|
2
|
+
import child_process from 'node:child_process';
|
|
3
|
+
import util from 'node:util';
|
|
4
|
+
import color from 'picocolors';
|
|
5
|
+
import fs from 'fs/promises';
|
|
6
|
+
import { DepsService } from '../../services/service.deps.js';
|
|
7
|
+
import { logger } from '../../utils/logger.js';
|
|
8
|
+
const exec = util.promisify(child_process.exec);
|
|
9
|
+
export const createMastraProject = async () => {
|
|
10
|
+
p.intro(color.inverse('Mastra Create'));
|
|
11
|
+
const projectName = await p.text({
|
|
12
|
+
message: 'What do you want to name your project?',
|
|
13
|
+
placeholder: 'my-mastra-app',
|
|
14
|
+
defaultValue: 'my-mastra-app',
|
|
15
|
+
});
|
|
16
|
+
if (p.isCancel(projectName)) {
|
|
17
|
+
p.cancel('Operation cancelled');
|
|
18
|
+
process.exit(0);
|
|
19
|
+
}
|
|
20
|
+
const s = p.spinner();
|
|
21
|
+
s.start('Creating project');
|
|
22
|
+
try {
|
|
23
|
+
await fs.mkdir(projectName);
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
if (error instanceof Error && 'code' in error && error.code === 'EEXIST') {
|
|
27
|
+
s.stop(`A directory named "${projectName}" already exists. Please choose a different name or delete the existing directory.`);
|
|
28
|
+
process.exit(1);
|
|
29
|
+
}
|
|
30
|
+
throw error;
|
|
31
|
+
}
|
|
32
|
+
process.chdir(projectName);
|
|
33
|
+
s.message('Creating project');
|
|
34
|
+
await exec(`npm init -y`);
|
|
35
|
+
const depsService = new DepsService();
|
|
36
|
+
await depsService.addScriptsToPackageJson({
|
|
37
|
+
dev: 'mastra dev',
|
|
38
|
+
});
|
|
39
|
+
s.stop('Project created');
|
|
40
|
+
s.start('Installing npm dependencies');
|
|
41
|
+
await exec(`npm i zod`);
|
|
42
|
+
await exec(`npm i typescript tsx @types/node --save-dev`);
|
|
43
|
+
s.stop('NPM dependencies installed');
|
|
44
|
+
s.start('Installing mastra');
|
|
45
|
+
await exec(`npm i -D mastra`);
|
|
46
|
+
s.stop('mastra installed');
|
|
47
|
+
s.start('Installing @mastra/core');
|
|
48
|
+
await exec(`npm i @mastra/core@alpha`);
|
|
49
|
+
s.stop('@mastra/core installed');
|
|
50
|
+
s.start('Adding .gitignore');
|
|
51
|
+
await exec(`echo output.txt >> .gitignore`);
|
|
52
|
+
await exec(`echo node_modules >> .gitignore`);
|
|
53
|
+
await exec(`echo dist >> .gitignore`);
|
|
54
|
+
s.stop('.gitignore added');
|
|
55
|
+
p.outro('Project created successfully');
|
|
56
|
+
logger.break();
|
|
57
|
+
return { projectName };
|
|
58
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Deployer } from '../deployer.js';
|
|
2
|
+
export declare class CloudflareDeployer extends Deployer {
|
|
3
|
+
name: string;
|
|
4
|
+
installCli(): Promise<void>;
|
|
5
|
+
build({ dir }: {
|
|
6
|
+
dir: string;
|
|
7
|
+
useBanner: boolean;
|
|
8
|
+
}): Promise<void>;
|
|
9
|
+
writePkgJson(): Promise<void>;
|
|
10
|
+
writeFiles(): void;
|
|
11
|
+
deployCommand({ scope }: {
|
|
12
|
+
scope: string;
|
|
13
|
+
}): Promise<void>;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/deploy/cloudflare/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C,qBAAa,kBAAmB,SAAQ,QAAQ;IAC9C,IAAI,SAAgB;IAEd,UAAU;IAMV,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE;IAIlD,YAAY;IA2ClB,UAAU,IAAI,IAAI;IAgCZ,aAAa,CAAC,EAAE,KAAK,EAAE,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAajE"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { execa } from 'execa';
|
|
2
|
+
import { readFileSync, writeFileSync } from 'fs';
|
|
3
|
+
import { join } from 'path';
|
|
4
|
+
import { DepsService } from '../../../services/service.deps.js';
|
|
5
|
+
import { Deployer } from '../deployer.js';
|
|
6
|
+
import { WORKER } from '../server.js';
|
|
7
|
+
export class CloudflareDeployer extends Deployer {
|
|
8
|
+
constructor() {
|
|
9
|
+
super(...arguments);
|
|
10
|
+
this.name = 'Cloudflare';
|
|
11
|
+
}
|
|
12
|
+
async installCli() {
|
|
13
|
+
console.log('Installing Wrangler CLI...');
|
|
14
|
+
const depsService = new DepsService();
|
|
15
|
+
await depsService.installPackages(['wrangler -g']);
|
|
16
|
+
}
|
|
17
|
+
async build({ dir }) {
|
|
18
|
+
super.build({ dir, useBanner: false });
|
|
19
|
+
}
|
|
20
|
+
async writePkgJson() {
|
|
21
|
+
let projectPkg = {
|
|
22
|
+
dependencies: {},
|
|
23
|
+
};
|
|
24
|
+
try {
|
|
25
|
+
projectPkg = JSON.parse(readFileSync(join(this.dotMastraPath, '..', 'package.json'), 'utf-8'));
|
|
26
|
+
}
|
|
27
|
+
catch (_e) {
|
|
28
|
+
// no-op
|
|
29
|
+
}
|
|
30
|
+
const mastraDeps = Object.entries(projectPkg.dependencies)
|
|
31
|
+
.filter(([name]) => name.startsWith('@mastra'))
|
|
32
|
+
.reduce((acc, [name, version]) => {
|
|
33
|
+
acc[name] = version;
|
|
34
|
+
return acc;
|
|
35
|
+
}, {});
|
|
36
|
+
writeFileSync(join(this.dotMastraPath, 'package.json'), JSON.stringify({
|
|
37
|
+
name: 'server',
|
|
38
|
+
version: '1.0.0',
|
|
39
|
+
description: '',
|
|
40
|
+
main: 'index.mjs',
|
|
41
|
+
scripts: {
|
|
42
|
+
start: 'node ./index.mjs',
|
|
43
|
+
},
|
|
44
|
+
author: '',
|
|
45
|
+
license: 'ISC',
|
|
46
|
+
dependencies: {
|
|
47
|
+
...mastraDeps,
|
|
48
|
+
'itty-router': '5.0.18',
|
|
49
|
+
superjson: '^2.2.2',
|
|
50
|
+
'zod-to-json-schema': '^3.24.1',
|
|
51
|
+
},
|
|
52
|
+
}, null, 2));
|
|
53
|
+
}
|
|
54
|
+
writeFiles() {
|
|
55
|
+
const envVars = this.getEnvVars();
|
|
56
|
+
// TODO ENV KEYS
|
|
57
|
+
writeFileSync(join(this.dotMastraPath, 'wrangler.toml'), `
|
|
58
|
+
name = "mastra"
|
|
59
|
+
main = "index.mjs" # Your main worker file
|
|
60
|
+
compatibility_date = "2024-12-02"
|
|
61
|
+
compatibility_flags = ["nodejs_compat"]
|
|
62
|
+
find_additional_modules = true
|
|
63
|
+
|
|
64
|
+
[build]
|
|
65
|
+
command = "npm install"
|
|
66
|
+
|
|
67
|
+
[[build.upload]]
|
|
68
|
+
type = "javascript_module"
|
|
69
|
+
main = "mastra.mjs"
|
|
70
|
+
|
|
71
|
+
[observability.logs]
|
|
72
|
+
enabled = true
|
|
73
|
+
|
|
74
|
+
[vars]
|
|
75
|
+
${Object.entries(envVars || {})
|
|
76
|
+
?.map(([key, value]) => `${key} = "${value}"`)
|
|
77
|
+
.join('\n')}
|
|
78
|
+
`),
|
|
79
|
+
writeFileSync(join(this.dotMastraPath, 'index.mjs'), WORKER);
|
|
80
|
+
}
|
|
81
|
+
async deployCommand({ scope }) {
|
|
82
|
+
const envVars = this.getEnvVars();
|
|
83
|
+
const p2 = execa('wrangler', ['deploy'], {
|
|
84
|
+
cwd: this.dotMastraPath,
|
|
85
|
+
env: {
|
|
86
|
+
CLOUDFLARE_API_TOKEN: this.token,
|
|
87
|
+
CLOUDFLARE_ACCOUNT_ID: scope,
|
|
88
|
+
...envVars,
|
|
89
|
+
},
|
|
90
|
+
});
|
|
91
|
+
p2.stdout.pipe(process.stdout);
|
|
92
|
+
await p2;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export declare abstract class Deployer {
|
|
2
|
+
token: string;
|
|
3
|
+
dotMastraPath: string;
|
|
4
|
+
name: string;
|
|
5
|
+
constructor({ token }: {
|
|
6
|
+
token: string;
|
|
7
|
+
});
|
|
8
|
+
installCli(): Promise<void>;
|
|
9
|
+
install(): Promise<void>;
|
|
10
|
+
protected getEnvFiles(): string[];
|
|
11
|
+
getEnvVars(): Record<string, string>;
|
|
12
|
+
protected parseEnvFile(filePath: string): string[];
|
|
13
|
+
build({ dir, useBanner }: {
|
|
14
|
+
dir: string;
|
|
15
|
+
useBanner?: boolean;
|
|
16
|
+
}): Promise<void>;
|
|
17
|
+
writePkgJson(): void;
|
|
18
|
+
writeFiles(): void;
|
|
19
|
+
deployCommand({ scope, siteId, projectName }: {
|
|
20
|
+
scope: string;
|
|
21
|
+
siteId?: string;
|
|
22
|
+
projectName?: string;
|
|
23
|
+
}): Promise<void>;
|
|
24
|
+
deploy({ scope, siteId, dir, projectName, }: {
|
|
25
|
+
dir?: string;
|
|
26
|
+
scope: string;
|
|
27
|
+
siteId?: string;
|
|
28
|
+
projectName?: string;
|
|
29
|
+
}): Promise<void>;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=deployer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deployer.d.ts","sourceRoot":"","sources":["../../../src/commands/deploy/deployer.ts"],"names":[],"mappings":"AAMA,8BAAsB,QAAQ;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAM;gBAEN,EAAE,KAAK,EAAE,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE;IAMlC,UAAU;IAIV,OAAO;IASb,SAAS,CAAC,WAAW,IAAI,MAAM,EAAE;IAOjC,UAAU;IAkBV,SAAS,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE;IAS5C,KAAK,CAAC,EAAE,GAAG,EAAE,SAAgB,EAAE,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE;IAQ3E,YAAY;IAIZ,UAAU;IAIJ,aAAa,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE;IAItG,MAAM,CAAC,EACX,KAAK,EACL,MAAM,EACN,GAAG,EACH,WAAW,GACZ,EAAE;QACD,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB;CAUF"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { execa } from 'execa';
|
|
2
|
+
import { existsSync, mkdirSync, readFileSync } from 'fs';
|
|
3
|
+
import path, { join } from 'path';
|
|
4
|
+
import { bundle } from '../../utils/bundle.js';
|
|
5
|
+
export class Deployer {
|
|
6
|
+
constructor({ token }) {
|
|
7
|
+
this.name = '';
|
|
8
|
+
console.log('Deployer created');
|
|
9
|
+
this.token = token;
|
|
10
|
+
this.dotMastraPath = join(process.cwd(), '.mastra');
|
|
11
|
+
}
|
|
12
|
+
async installCli() {
|
|
13
|
+
console.log('Installing...');
|
|
14
|
+
}
|
|
15
|
+
async install() {
|
|
16
|
+
console.log('Installing dependencies...');
|
|
17
|
+
const i = execa('npm', ['install'], {
|
|
18
|
+
cwd: this.dotMastraPath,
|
|
19
|
+
});
|
|
20
|
+
i.stdout.pipe(process.stdout);
|
|
21
|
+
await i;
|
|
22
|
+
}
|
|
23
|
+
getEnvFiles() {
|
|
24
|
+
const envFiles = ['.env', '.env.development', '.env.local']
|
|
25
|
+
.map(file => join(process.cwd(), file))
|
|
26
|
+
.filter(file => existsSync(file));
|
|
27
|
+
return envFiles;
|
|
28
|
+
}
|
|
29
|
+
getEnvVars() {
|
|
30
|
+
// Get all env vars
|
|
31
|
+
const envFiles = this.getEnvFiles();
|
|
32
|
+
const envVars = {};
|
|
33
|
+
for (const file of envFiles) {
|
|
34
|
+
const vars = this.parseEnvFile(file);
|
|
35
|
+
for (const envVar of vars) {
|
|
36
|
+
const [key, value] = envVar.split('=');
|
|
37
|
+
if (key && value) {
|
|
38
|
+
envVars[key] = value;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return envVars;
|
|
43
|
+
}
|
|
44
|
+
parseEnvFile(filePath) {
|
|
45
|
+
const content = readFileSync(filePath, 'utf-8');
|
|
46
|
+
return content
|
|
47
|
+
.split('\n')
|
|
48
|
+
.map(line => line.trim())
|
|
49
|
+
.filter(line => line && !line.startsWith('#'))
|
|
50
|
+
.filter(line => line.includes('=')); // Only include valid KEY=value pairs
|
|
51
|
+
}
|
|
52
|
+
async build({ dir, useBanner = true }) {
|
|
53
|
+
if (!existsSync(this.dotMastraPath)) {
|
|
54
|
+
mkdirSync(this.dotMastraPath);
|
|
55
|
+
}
|
|
56
|
+
await bundle(dir, { useBanner });
|
|
57
|
+
}
|
|
58
|
+
writePkgJson() {
|
|
59
|
+
console.log('Writing package.json...');
|
|
60
|
+
}
|
|
61
|
+
writeFiles() {
|
|
62
|
+
console.log('Writing files...');
|
|
63
|
+
}
|
|
64
|
+
async deployCommand({ scope, siteId, projectName }) {
|
|
65
|
+
console.log(`Deploy command ${scope}...${siteId || ''} to ${projectName || 'mastra-starter'}`);
|
|
66
|
+
}
|
|
67
|
+
async deploy({ scope, siteId, dir, projectName, }) {
|
|
68
|
+
console.log('Deploying...', scope);
|
|
69
|
+
const dirPath = dir || path.join(process.cwd(), 'src/mastra');
|
|
70
|
+
await this.installCli();
|
|
71
|
+
this.writePkgJson();
|
|
72
|
+
this.writeFiles();
|
|
73
|
+
await this.install();
|
|
74
|
+
await this.build({ dir: dirPath });
|
|
75
|
+
await this.deployCommand({ scope, siteId, projectName });
|
|
76
|
+
}
|
|
77
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare function vercelDeploy({ dir, projectName }: {
|
|
2
|
+
dir?: string;
|
|
3
|
+
projectName?: string;
|
|
4
|
+
}): Promise<void>;
|
|
5
|
+
export declare function cloudflareDeploy({ dir }: {
|
|
6
|
+
dir?: string;
|
|
7
|
+
}): Promise<void>;
|
|
8
|
+
export declare function netlifyDeploy({ dir }: {
|
|
9
|
+
dir?: string;
|
|
10
|
+
}): Promise<void>;
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/deploy/index.ts"],"names":[],"mappings":"AAwCA,wBAAsB,YAAY,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,iBAmD9F;AAoBD,wBAAsB,gBAAgB,CAAC,EAAE,GAAG,EAAE,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,iBAmD/D;AAgFD,wBAAsB,aAAa,CAAC,EAAE,GAAG,EAAE,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,iBAuD5D"}
|